From 851c3f3158f51afe3628006de03009151df9cb26 Mon Sep 17 00:00:00 2001 From: Piotr Kowalczyk Date: Tue, 9 Jun 2026 13:55:00 +0000 Subject: [PATCH 1/8] [test][gpu]: PAtoken ids unit tests refactorring. --- .../test_cases/paged_attention_gpu_test.cpp | 109 +- .../paged_attention_token_type_test_data.cpp | 16062 ++++++++++++++++ .../paged_attention_token_type_test_data.h | 27 + 3 files changed, 16195 insertions(+), 3 deletions(-) create mode 100644 src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.cpp create mode 100644 src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp index c970f2743f63..c8103564ec5f 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp @@ -14,15 +14,16 @@ #include #include #include -#include #include +#include +#include + #include "openvino/runtime/properties.hpp" #include "openvino/runtime/tensor.hpp" #include "primitive_inst.h" #include "random_generator.hpp" #include "test_utils.h" - -#include +#include "test_utils/test_data/paged_attention_token_type_test_data.h" using namespace cldnn; using namespace ov::intel_gpu; @@ -1811,6 +1812,32 @@ struct PagedAttentionTest : public ::testing::TestWithParam { rg.set_seed(GET_SUITE_NAME); } + static std::vector to_float16(const std::vector& data) { + std::vector result(data.size()); + std::transform(data.begin(), data.end(), result.begin(), [](float value) { + return ov::float16(value); + }); + return result; + } + + void apply_token_type_test_data(PagedAttentionManager& pam, const T& p, const test::TestData& data) { + ASSERT_EQ(p.subsequences.size(), 1); + ASSERT_EQ(p.subsequences[0].past_len, 0); + + const size_t seq_len = data.tokenTypes.size(); + const size_t hidden_dim = static_cast(p.num_heads) * static_cast(p.k_head_size); + ASSERT_EQ(static_cast(p.subsequences[0].num_tokens), seq_len); + ASSERT_EQ(data.qData.size(), seq_len * hidden_dim); + ASSERT_EQ(data.kData.size(), seq_len * hidden_dim); + ASSERT_EQ(data.vData.size(), seq_len * hidden_dim); + ASSERT_EQ(data.expectedOutput.size(), seq_len * hidden_dim); + + pam.query_data = {to_float16(data.qData)}; + pam.key_data = {to_float16(data.kData)}; + pam.value_data = {to_float16(data.vData)}; + pam.token_type_ids.assign(data.tokenTypes.begin(), data.tokenTypes.end()); + } + void execute(T& p, bool run_reference = true) { ov::element::Type kv_cache_precision = p.kv_cache_precision; @@ -1879,6 +1906,10 @@ struct PagedAttentionTest : public ::testing::TestWithParam { ASSERT_EQ(pam.token_type_ids.size(), static_cast(pam.subsequence_descs.back().num_tokens + pam.subsequence_descs.back().past_len)); } + if (p.token_type_test_data.has_value()) { + apply_token_type_test_data(pam, p, p.token_type_test_data.value()); + } + if (p.kv_cache_compression) { // INT4 quantization has larger error than INT8 (~17x larger step size) tolerance = (kv_cache_precision == ov::element::u4 || kv_cache_precision == ov::element::i4) ? 75e-3 : 25e-3; @@ -2187,6 +2218,11 @@ struct PagedAttentionTest : public ::testing::TestWithParam { output_diversity_mem = outputs.at("output_diversity").get_memory(); } + if (p.token_type_test_data.has_value()) { + compare_token_type_output(output_data_mem, p.token_type_test_data->expectedOutput); + return; + } + // Verify KV cache was correctly written (CM PA path only) // NOTE: This verification is specific to CM PA layout and should NOT run for OCL micro_sdpa // because they use different layouts (key cache is [N,K,H,B] in OCL vs [N,K,B,H] in CM) @@ -2228,6 +2264,16 @@ struct PagedAttentionTest : public ::testing::TestWithParam { } } + void compare_token_type_output(memory::ptr data_output_mem, const std::vector& expected_output) { + ASSERT_TRUE(data_output_mem); + ASSERT_EQ(data_output_mem->count(), expected_output.size()); + mem_lock mem_ptr(data_output_mem, get_test_stream()); + constexpr float token_type_tolerance = 1e-2f; + for (size_t i = 0; i < data_output_mem->count(); i++) { + ASSERT_NEAR(static_cast(mem_ptr[i]), expected_output[i], token_type_tolerance) << " at index=" << i; + } + } + void compare_xattention(memory::ptr data_output_mem, memory::ptr scores_output_mem, std::tuple, std::vector, std::vector> ref_data, size_t num_heads, size_t head_size) { if (data_output_mem) { ASSERT_EQ(data_output_mem->count(), std::get<0>(ref_data).size()); @@ -2855,6 +2901,9 @@ struct paged_attention_test_params { // optional token_type_ids passed to PagedAttention; if set (non-empty), it is forwarded // to the op as the TOKEN_TYPE_IDS input. When std::nullopt, a default {0} buffer is used. std::optional> token_type_ids = std::nullopt; + + // optional deterministic data for token type feature validation + std::optional token_type_test_data = std::nullopt; }; class paged_attention_test : public PagedAttentionTest {}; @@ -2916,6 +2965,13 @@ TEST_P(qq_bias_test, basic) { execute(p); } +class paged_attention_token_type_test : public PagedAttentionTest {}; +TEST_P(paged_attention_token_type_test, basic) { + auto p = GetParam(); + + execute(p); +} + const auto ENABLE_CACHE_COMPRESSION = true; const auto DISABLE_CACHE_COMPRESSION = false; const auto DISABLE_SCORES = ScoresMode::DISABLED; @@ -2937,6 +2993,42 @@ static paged_attention_test_params disable_reference_compare(paged_attention_tes return p; } +static paged_attention_test_params make_token_type_test_param(const test::TestData& data, int sliding_window_size, bool disable_flashattn_v2) { + paged_attention_test_params p{{{static_cast(data.tokenTypes.size()), 0}}, + 1, + 1, + 32, + 32, + 16, + sliding_window_size, + DISABLE_CACHE_COMPRESSION, + ov::internal::CacheQuantMode::BY_TOKEN, + STATIC_INPUT_PAD, + DISABLE_SCORES, + DISABLE_ROTATION, + disable_flashattn_v2}; + p.token_type_ids = std::vector(data.tokenTypes.begin(), data.tokenTypes.end()); + p.token_type_test_data = data; + return p; +} + +static std::vector make_token_type_test_params(const std::vector& test_data, int sliding_window_size) { + std::vector params; + params.reserve(test_data.size() * 2); + for (const auto& data : test_data) { + params.push_back(make_token_type_test_param(data, sliding_window_size, ENABLE_FA_V2)); + params.push_back(make_token_type_test_param(data, sliding_window_size, DISABLE_FA_V2)); + } + return params; +} + +static std::string get_token_type_test_name(const testing::TestParamInfo& obj) { + const auto& p = obj.param; + OPENVINO_ASSERT(p.token_type_test_data.has_value()); + return p.token_type_test_data->name + "_SW" + std::to_string(p.sliding_window_size) + + (p.disable_flashattn_v2 == DISABLE_FA_V2 ? "_FlashAttnV2Disabled" : "_FlashAttnV2Enabled"); +} + static std::vector gen_tokens_ids_test_data(size_t seq_len, int num_images, size_t avg_img_len) { std::vector v(seq_len, 0); size_t gap = seq_len / (num_images + 1); @@ -2953,6 +3045,17 @@ static std::vector gen_tokens_ids_test_data(size_t seq_len, int num_ima return v; } +INSTANTIATE_TEST_SUITE_P(smoke_paged_attention_token_type, + paged_attention_token_type_test, + ::testing::ValuesIn(make_token_type_test_params(test::PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1(), 0)), + get_token_type_test_name); + +INSTANTIATE_TEST_SUITE_P( + smoke_paged_attention_token_type_sliding_window, + paged_attention_token_type_test, + ::testing::ValuesIn(make_token_type_test_params(test::PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1SlidingWindowSize5(), 5)), + get_token_type_test_name); + INSTANTIATE_TEST_SUITE_P(smoke_paged_attention, paged_attention_test, ::testing::ValuesIn(std::vector{ /* with scores output, use SnapKV */ paged_attention_test_params{ {{10, 0}}, 2, 2, 64, 64, 16, 0, DISABLE_CACHE_COMPRESSION, ov::internal::CacheQuantMode::BY_TOKEN, STATIC_INPUT_PAD, ENABLE_SCORES_SNAPKV, DISABLE_ROTATION, ENABLE_FA_V2, false, 0, {}, false }, // 1st token diff --git a/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.cpp b/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.cpp new file mode 100644 index 000000000000..335d91ae7c3a --- /dev/null +++ b/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.cpp @@ -0,0 +1,16062 @@ +// Copyright (C) 2018-2026 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "paged_attention_token_type_test_data.h" + +namespace test { + +std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1() { + std::vector testData; + + { + const std::string name = "plain_casual"; + const std::vector token_types{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554}; + const std::vector k_data{ + -0.695035, -0.206077, 0.740584, 0.512646, -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, + -0.247297, 0.674877, 0.167382, -0.760605, -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, + -0.462812, -0.10904, -0.087044, -0.236583, -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, + -0.483015, -0.671528, 0.242394, 0.27561, 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, + 0.605753, -0.092425, -0.589279, 0.95334, -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, + 0.221363, 0.19775, -0.758387, -0.933887, 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, + -0.737184, -0.482423, 0.181098, 0.544538, 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, + 0.846245, 0.014042, 0.909809, -0.852051, -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, + 0.689306, 0.490503, 0.32045, -0.561964, -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, + 0.675368, 0.07966, 0.045118, -0.246101, -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, + -0.291111, -0.391222, 0.95343, 0.348323, 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, + -0.653704, -0.0483, -0.365761, -0.749658, 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, + -0.364239, 0.254586, 0.471531, -0.126418, -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, + 0.015305, -0.197616, 0.121239, -0.302198, 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, + -0.729509, 0.802302, 0.783614, -0.763547, -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, + 0.211981, -0.272165, 0.922578, 0.142978, -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, + 0.37479, -0.510882, -0.83094, -0.546207, 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, + -0.13385, -0.550228, 0.499657, -0.518183, -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, + -0.588566, 0.134893, -0.589433, -0.651061, 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, + 0.344158, 0.230284, 0.015661, -0.072732, 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, + -0.242165, -0.483124, 0.170039, 0.746448, 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, + -0.184324, 0.082248, -0.917971, 0.311245, -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, + 0.754367, -0.033617, -0.116299, 0.625479, -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, + 0.188779, 0.215012, 0.145991, 0.273531, -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, + -0.940531, 0.043828, -0.680974, 0.813192, -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, + 0.095019, 0.579164, 0.776222, 0.807311, -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, + -0.218468, -0.678252, 0.407043, 0.153318, 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, + -0.860213, -0.701527, -0.621174, -0.881248, -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, + -0.613812, 0.381309, 0.834053, -0.297463, -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, + -0.871302, 0.122275, 0.883382, 0.171486, 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, + 0.388546, 0.868928, -0.763299, 0.029975, -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, + 0.115815, -0.538958, 0.522579, -0.946428, -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, + 0.758765, 0.965654, 0.636262, -0.597124, -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, + -0.803697, -0.333885, 0.962618, -0.246632, -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, + -0.12401, 0.406959, -0.978177, 0.297012, -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, + -0.410569, -0.904236, -0.515658, -0.875637, -0.228871}; + const std::vector v_data{ + 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, -0.108976, + -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, -0.569343, + -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, 0.429193, + 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, 0.769097, + -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, -0.320644, + 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, 0.980358, + 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, -0.477203, + -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, 0.456818, + 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, -0.256998, + 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, -0.518889, + 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, 0.512987, + 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, -0.68424, + -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, 0.007862, + 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, 0.563852, + 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, -0.150954, + -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, 0.37714, + -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, 0.507329, + -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, 0.39719, + -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, -0.492104, + 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, 0.711457, + 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, 0.500654, + -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, -0.083318, + 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, 0.143193, + -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, 0.508876, + 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, -0.472354, + 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, 0.085618, + -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, 0.159464, + 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, -0.260825, + -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, 0.899223, + 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, -0.560654, + -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, -0.165227, + -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, 0.603313, + -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, -0.518932, + 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, 0.215429, + -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, 0.573391, + -0.949507, -0.7171, -0.377511, 0.826098, 0.1023}; + const std::vector wanted_output{ + 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, -0.108976, + -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, -0.569343, + -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, 0.429193, + 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.64103, -0.138678, -0.010089, 0.705599, + -0.561737, -0.331865, -0.35548, -0.178943, 0.341543, -0.125363, 0.038463, -0.080604, 0.194633, + 0.532796, -0.388949, 0.175243, -0.606733, -0.472477, 0.101513, 0.8947, -0.239793, 0.642772, + -0.332406, 0.553682, 0.607997, 0.480344, -0.116592, 0.507917, 0.582279, -0.612781, -0.329174, + -0.264123, 0.478623, -0.419567, 0.179105, 0.55136, -0.691299, -0.09878, -0.232797, 0.069125, + 0.42217, -0.47257, 0.399467, 0.268102, 0.288519, -0.0437, -0.363164, 0.007057, -0.459919, + -0.069299, 0.198046, 0.852704, -0.303876, 0.513567, -0.077969, 0.010794, -0.014631, 0.079579, + 0.209136, -0.070476, 0.013414, -0.158039, 0.014741, 0.176898, 0.191931, -0.555727, 0.338912, + 0.619919, -0.472904, -0.087897, -0.046189, 0.218728, 0.144117, -0.47694, 0.521389, -0.015729, + 0.190898, 0.107124, -0.155582, 0.162154, -0.411133, -0.10843, 0.299648, 0.55498, -0.298323, + 0.466021, -0.306325, 0.250905, -0.082902, -0.001549, 0.150656, -0.195855, -0.135807, -0.078763, + 0.055396, 0.000805, 0.192693, -0.300266, 0.330923, 0.601778, -0.591573, -0.234455, -0.089733, + 0.018452, 0.061653, -0.328125, 0.394645, -0.088245, 0.274995, 0.103033, -0.117091, 0.25966, + -0.437907, -0.355905, 0.223239, 0.637419, -0.372955, 0.542066, -0.398, 0.38208, 0.196983, + -0.008576, 0.206648, -0.120447, 0.049316, -0.293778, -0.148973, 0.154431, 0.115901, 0.076314, + -0.07586, 0.61773, -0.343621, -0.239297, -0.216487, 0.168942, 0.205604, -0.276611, 0.06696, + 0.063414, 0.020915, 0.258161, -0.126936, 0.015735, -0.416065, -0.161127, 0.310638, 0.543254, + -0.084048, 0.73022, -0.245822, 0.296073, 0.123815, 0.023991, 0.120466, -0.175358, -0.036005, + -0.146489, -0.075169, -0.079956, 0.00461, -0.168126, -0.063681, 0.587044, -0.480059, -0.240636, + -0.072938, 0.081346, 0.247624, -0.449282, 0.080117, -0.070582, 0.107832, 0.105924, -0.037863, + 0.04318, -0.215723, 0.028007, 0.233414, 0.48542, -0.243327, 0.607902, -0.339792, 0.23261, + 0.12094, 0.049046, 0.307239, -0.078716, 0.043634, -0.256542, 0.118065, -0.027787, -0.149304, + -0.094786, 0.112823, 0.541051, -0.405048, -0.335949, 0.020827, 0.276954, 0.208455, -0.436886, + 0.138419, -0.111007, 0.224469, 0.054853, 0.160942, 0.05655, -0.051495, 0.11972, 0.202712, + 0.474599, -0.116555, 0.624004, -0.271468, 0.103895, -0.127852, -0.039189, 0.339097, -0.284529, + -0.0525, -0.16304, 0.254097, 0.100039, -0.26261, -0.09529, 0.025233, 0.452777, -0.333523, + -0.276263, 0.084893, 0.123701, 0.188266, -0.375079, -0.10026, -0.249232, 0.153913, -0.035829, + 0.09225, 0.103395, 0.074846, 0.192051, 0.281198, 0.306925, -0.224666, 0.594828, -0.246129, + 0.18258, -0.028065, 0.075514, 0.309897, -0.030024, 0.096733, -0.289847, 0.259847, 0.077396, + -0.216889, -0.165674, 0.114659, 0.420869, -0.310004, -0.219591, 0.058677, 0.111571, 0.075767, + -0.308003, 0.027901, -0.193572, 0.030041, -0.003273, -0.011198, 0.11971, -0.113571, 0.096788, + 0.267463, 0.206419, -0.269637, 0.570271, -0.336993, 0.193851, 0.012757, 0.050464, 0.260114, + -0.194947, -0.03562, -0.219055, 0.196855, 0.047158}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "all_type1"; + const std::vector token_types{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554}; + const std::vector k_data{ + -0.695035, -0.206077, 0.740584, 0.512646, -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, + -0.247297, 0.674877, 0.167382, -0.760605, -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, + -0.462812, -0.10904, -0.087044, -0.236583, -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, + -0.483015, -0.671528, 0.242394, 0.27561, 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, + 0.605753, -0.092425, -0.589279, 0.95334, -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, + 0.221363, 0.19775, -0.758387, -0.933887, 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, + -0.737184, -0.482423, 0.181098, 0.544538, 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, + 0.846245, 0.014042, 0.909809, -0.852051, -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, + 0.689306, 0.490503, 0.32045, -0.561964, -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, + 0.675368, 0.07966, 0.045118, -0.246101, -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, + -0.291111, -0.391222, 0.95343, 0.348323, 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, + -0.653704, -0.0483, -0.365761, -0.749658, 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, + -0.364239, 0.254586, 0.471531, -0.126418, -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, + 0.015305, -0.197616, 0.121239, -0.302198, 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, + -0.729509, 0.802302, 0.783614, -0.763547, -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, + 0.211981, -0.272165, 0.922578, 0.142978, -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, + 0.37479, -0.510882, -0.83094, -0.546207, 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, + -0.13385, -0.550228, 0.499657, -0.518183, -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, + -0.588566, 0.134893, -0.589433, -0.651061, 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, + 0.344158, 0.230284, 0.015661, -0.072732, 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, + -0.242165, -0.483124, 0.170039, 0.746448, 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, + -0.184324, 0.082248, -0.917971, 0.311245, -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, + 0.754367, -0.033617, -0.116299, 0.625479, -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, + 0.188779, 0.215012, 0.145991, 0.273531, -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, + -0.940531, 0.043828, -0.680974, 0.813192, -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, + 0.095019, 0.579164, 0.776222, 0.807311, -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, + -0.218468, -0.678252, 0.407043, 0.153318, 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, + -0.860213, -0.701527, -0.621174, -0.881248, -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, + -0.613812, 0.381309, 0.834053, -0.297463, -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, + -0.871302, 0.122275, 0.883382, 0.171486, 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, + 0.388546, 0.868928, -0.763299, 0.029975, -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, + 0.115815, -0.538958, 0.522579, -0.946428, -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, + 0.758765, 0.965654, 0.636262, -0.597124, -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, + -0.803697, -0.333885, 0.962618, -0.246632, -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, + -0.12401, 0.406959, -0.978177, 0.297012, -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, + -0.410569, -0.904236, -0.515658, -0.875637, -0.228871}; + const std::vector v_data{ + 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, -0.108976, + -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, -0.569343, + -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, 0.429193, + 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, 0.769097, + -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, -0.320644, + 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, 0.980358, + 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, -0.477203, + -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, 0.456818, + 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, -0.256998, + 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, -0.518889, + 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, 0.512987, + 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, -0.68424, + -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, 0.007862, + 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, 0.563852, + 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, -0.150954, + -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, 0.37714, + -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, 0.507329, + -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, 0.39719, + -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, -0.492104, + 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, 0.711457, + 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, 0.500654, + -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, -0.083318, + 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, 0.143193, + -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, 0.508876, + 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, -0.472354, + 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, 0.085618, + -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, 0.159464, + 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, -0.260825, + -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, 0.899223, + 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, -0.560654, + -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, -0.165227, + -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, 0.603313, + -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, -0.518932, + 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, 0.215429, + -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, 0.573391, + -0.949507, -0.7171, -0.377511, 0.826098, 0.1023}; + const std::vector wanted_output{ + -0.175838, 0.016697, 0.15666, 0.349271, -0.248797, -0.306118, -0.004698, 0.245937, 0.183448, + -0.218217, -0.039783, -0.089684, 0.080935, -0.006742, 0.007498, 0.011234, -0.056402, 0.203465, + 0.199141, 0.297066, -0.085545, 0.63908, -0.128741, -0.011411, -0.154474, 0.102288, 0.202446, + -0.272516, -0.048646, -0.152994, 0.298031, 0.10506, -0.221309, 0.012984, 0.116994, 0.325906, + -0.336302, -0.316166, -0.012819, 0.068091, 0.088015, -0.192799, -0.075064, -0.161464, -0.012961, + -0.026597, -0.027152, 0.035027, -0.136596, 0.125634, 0.149527, 0.183665, -0.236886, 0.622707, + -0.285377, 0.081369, 0.078208, 0.113089, 0.285954, -0.250469, -0.034982, -0.259227, 0.249897, + 0.092055, -0.258099, -0.112729, 0.133836, 0.289291, -0.177905, -0.170367, 0.102099, 0.134966, + 0.070023, -0.19432, -0.070391, -0.137384, -0.017718, -0.08931, -0.088676, 0.131879, -0.051004, + 0.167259, 0.306056, 0.106722, -0.228251, 0.57407, -0.250128, 0.080146, -0.10492, 0.071963, + 0.179815, -0.257986, -0.031041, -0.175335, 0.204648, 0.125992, -0.231739, -0.048178, 0.229479, + 0.292331, -0.318455, -0.269136, 0.039497, 0.093194, 0.03521, -0.180325, 0.008046, -0.141549, + 0.034809, -0.102873, -0.040458, 0.105305, -0.127898, 0.086574, 0.19446, 0.177143, -0.264642, + 0.590144, -0.274043, 0.06419, -0.010966, 0.047243, 0.269263, -0.327099, -0.074912, -0.213584, + 0.208384, 0.199532, -0.045791, -0.118352, 0.27842, 0.415293, -0.447489, -0.330907, -0.034155, + 0.079329, 0.098736, -0.230267, 0.125766, -0.15629, 0.161739, 0.02234, -0.029663, 0.122738, + -0.213597, -0.033995, 0.126561, 0.400748, -0.263632, 0.580575, -0.290708, 0.150429, 0.081279, + 0.103895, 0.247083, -0.188142, 0.028237, -0.290404, 0.147005, 0.141057, -0.157457, -0.0015, + 0.040635, 0.332619, -0.258236, -0.232203, -0.045882, 0.055348, 0.122834, -0.16428, -0.138518, + -0.125157, -0.079999, 0.008831, -0.140723, 0.027119, -0.176955, 0.122982, 0.235196, 0.170705, + -0.222553, 0.627373, -0.224595, 0.125049, 0.083851, 0.170466, 0.179337, -0.139124, 2.9e-05, + -0.241423, 0.191791, 0.00895, -0.129039, -0.078863, 0.173402, 0.319332, -0.374163, -0.296869, + -0.042589, 0.059766, 0.111933, -0.196115, -0.002879, -0.128146, -0.01335, -0.018087, -0.093409, + 0.018241, -0.202733, 0.126441, 0.109241, 0.216307, -0.258259, 0.587924, -0.271465, 0.045638, + 0.08073, 0.160433, 0.260374, -0.23851, -0.042284, -0.253336, 0.266567, 0.07031, -0.201115, + -0.131876, 0.170733, 0.311619, -0.285978, -0.259115, 0.090471, 0.151082, 0.117777, -0.238435, + 0.011368, -0.112658, 0.065598, -0.065106, -0.02415, 0.109382, -0.052235, 0.17303, 0.177608, + 0.213503, -0.209869, 0.568864, -0.299482, 0.003848, -0.099552, 0.0684, 0.25418, -0.327949, + -0.010597, -0.207008, 0.256053, 0.161058, -0.27026, -0.094604, 0.091399, 0.389943, -0.361336, + -0.296901, 0.058519, 0.080134, 0.136761, -0.318343, -0.080581, -0.25439, 0.086121, -0.056151, + 0.054795, 0.072165, 0.003693, 0.193753, 0.207209, 0.227852, -0.267808, 0.581905, -0.272049, + 0.139222, 0.031066, 0.108685, 0.329087, -0.09699, 0.037462, -0.296231, 0.301087, 0.07921, + -0.216889, -0.165674, 0.114659, 0.420869, -0.310004, -0.219591, 0.058677, 0.111571, 0.075767, + -0.308003, 0.027901, -0.193572, 0.030041, -0.003273, -0.011198, 0.11971, -0.113571, 0.096788, + 0.267463, 0.206419, -0.269637, 0.570271, -0.336993, 0.193851, 0.012757, 0.050464, 0.260114, + -0.194947, -0.03562, -0.219055, 0.196855, 0.047158}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "middle_segment"; + const std::vector token_types{0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, + 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, + 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, + 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, -0.184324, 0.082248, -0.917971}; + const std::vector k_data{ + 0.311245, -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, + 0.625479, -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, + 0.273531, -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, + 0.813192, -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, + 0.807311, -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, + 0.153318, 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, + -0.881248, -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, + -0.297463, -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, + 0.171486, 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, + 0.029975, -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, + -0.946428, -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, + -0.597124, -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, + -0.246632, -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, + 0.297012, -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, + -0.875637, -0.228871, 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, + -0.20546, -0.108976, -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, + -0.164766, -0.569343, -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, + 0.042392, 0.429193, 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, + -0.727174, 0.769097, -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, + 0.307812, -0.320644, 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, + 0.167946, 0.980358, 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, + -0.467579, -0.477203, -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, + -0.081331, 0.456818, 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, + -0.289809, -0.256998, 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, + -0.97002, -0.518889, 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, + -0.7319, 0.512987, 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, + 0.699467, -0.68424, -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, + -0.60022, 0.007862, 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, + -0.981265, 0.563852, 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, + -0.438396, -0.150954, -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, + 0.260252, 0.37714, -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, + 0.675747, 0.507329, -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, + -0.20058, 0.39719, -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, + -0.610793, -0.492104, 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, + -0.261222, 0.711457, 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, + -0.570863, 0.500654, -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, + -0.670548, -0.083318, 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, + -0.364297, 0.143193, -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, + -0.495458, 0.508876, 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, + -0.474496, -0.472354, 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, + 0.254659, 0.085618, -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, + 0.41277, 0.159464, 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, + -0.008728, -0.260825, -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, + -0.386503, 0.899223, 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, + -0.06689, -0.560654, -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, + 0.378619, -0.165227, -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, + -0.315192, 0.603313, -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, + -0.474499, -0.518932, 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, + -0.902123, 0.215429, -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, + 0.530964, 0.573391, -0.949507, -0.7171, -0.377511, 0.826098, 0.1023, -0.747897, 0.006262, + -0.776671, -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, -0.288666, 0.3929, + 0.395564, 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, 0.815057, 0.99516, + 0.296258, -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, 0.18636, 0.413585, + -0.206588, -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, -0.109859, 0.094326, + -0.060097, -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, -0.46216, -0.33695, + -0.375678, -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, 0.139068, 0.552292, + -0.702444, 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, -0.632811}; + const std::vector v_data{ + 0.556983, -0.149319, 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, + -0.867631, 0.003304, 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, + 0.016121, 0.210597, -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, + -0.147204, -0.612415, -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, -0.842229, + -0.794683, 0.585289, 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, 0.721554, + 0.773871, 0.720051, 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, -0.016791, + -0.870379, -0.261475, -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, 0.910749, + 0.583554, -0.518337, -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, 0.060577, + -0.602459, 0.819876, 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, -0.4237, + 0.602567, 0.200242, 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, 0.783539, + -0.26327, 0.314318, -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, 0.037649, + -0.586658, 0.822194, -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, 0.961893, + -0.171048, -0.934408, 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, 0.162617, + -0.133854, 0.230342, -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, 0.192636, + -0.845443, 0.793552, 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, -0.77887, + 0.912821, 0.07751, 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, 0.074966, + -0.698764, -0.219233, -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, 0.55947, + 0.400247, 0.774181, -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, -0.39125, + -0.01835, -0.229459, 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, -0.772226, + -0.809075, -0.54802, -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, 0.981038, + -0.370629, -0.716001, 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, 0.642863, + 0.839239, -0.493832, 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, 0.25278, + 0.298125, -0.653559, 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, 0.486671, + 0.170416, 0.271919, 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, 0.806378, + -0.525239, -0.036417, 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, -0.453557, + 0.097171, -0.116216, -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, 0.642417, + 0.247718, -0.844133, 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, -0.557894, + 0.601745, -0.127932, -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, 0.693016, + 0.852534, 0.551467, 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, -0.73862, + 0.672618, 0.678645, -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, -0.32739, + 0.700386, 0.813401, -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, -0.001452, + 0.253108, -0.53735, 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, 0.931584, + 0.293263, -0.227222, 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, -0.678475, + 0.102821, 0.095808, 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, 0.370394, + -0.736122, 0.062691, 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, 0.968727, + -0.397175, -0.232716, -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, 0.340153, + -0.876826, -0.155735, -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, -0.631138, + 0.706552, 0.139649, -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, -0.8772, + -0.654672, -0.718926, 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, 0.349295, + 0.354269, 0.980382, -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, -0.852453, + 0.896511, -0.041441, -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, 0.778847, + -0.30743, 0.593968, 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, -0.931854, + -0.466351, 0.046006, -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, -0.14036, + 0.285996, 0.045167, -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, 0.387979, + 0.236666, 0.748384, -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, -0.379444, + -0.369984, 0.918921, 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, 0.66429, + -0.795854, 0.35589, -0.569686, -0.039074, -0.20867, -0.834965, -0.953914, -0.657898, 0.453771, + 0.457435, -0.869764, -0.375542, 0.016334, -0.864583, 0.563455, 0.905732, 0.176862, -0.743015, + 0.233186, 0.363014, 0.791843, -0.53207, -0.89591, 0.439351, 0.062256, -0.325826, -0.419022, + -0.515616, 0.809497, -0.172539, 0.721207, 0.89265, 0.126676, 0.213018, -0.068105, 0.686815, + -0.901088, 0.397683, -0.162929, 0.456616, -0.004454, -0.370266, -0.10795, 0.539993, -0.69453, + -0.632099, -0.223996, -0.362725, 0.392839, 0.67297, -0.107099, 0.945574, -0.41782, -0.561159, + -0.447694, -0.688972, -0.700934, -0.891016, -0.886279, 0.260999, 0.609854, 0.938847, 0.851797, + -0.057594, 0.194047, -0.59832, 0.386521, -0.958841, 0.471673, 0.183416, 0.307304, 0.366148, + -0.459105, 0.858106, 0.477252, 0.656895, 0.132079, 0.627987, 0.673001, 0.453235, 0.761769, + -0.181378, 0.657536, 0.230399, 0.601696, 0.973999, 0.226437, -0.371167, -0.099496, 0.281528, + 0.168609, -0.27317, 0.783518, 0.600807, -0.621154, -0.081481, -0.095994, -0.626731}; + const std::vector wanted_output{ + 0.556983, -0.149319, 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, + -0.867631, 0.003304, 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, + 0.016121, 0.210597, -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, + -0.147204, -0.612415, -0.467713, 0.984421, 4.8e-05, 0.212526, -0.282006, 0.083173, -0.713915, + -0.318757, -0.013059, 0.676692, 0.254631, -0.485054, -0.16726, -0.306119, 0.773991, 0.602816, + 0.116567, 0.364806, 0.255939, -0.395074, 0.62268, -0.169796, 0.322397, -0.362842, -0.243597, + -0.349896, 0.055855, -0.148723, -0.410031, 0.170584, -0.521254, -0.275514, 0.08756, 0.947788, + 0.290196, -0.136014, -0.6168, 0.218719, -0.11484, -0.578714, 0.169093, 0.758332, 0.171339, + -0.543156, 0.306269, 0.035771, 0.71923, 0.001332, 0.343586, -0.124936, 0.605997, -0.403725, + 0.611295, 0.002416, 0.29667, -0.263622, 0.067454, -0.387494, -0.418436, -0.264114, 0.153375, + -0.04335, -0.131846, -0.315941, 0.40641, 0.782723, 0.323229, -0.06644, -0.350182, 0.067589, + -0.225134, -0.152207, -0.012256, 0.207219, 0.203985, -0.011247, 0.152306, 0.030845, 0.439261, + -0.084651, 0.007949, 0.153105, 0.123021, -0.237987, 0.260389, -0.219726, 0.09523, -0.058037, + -0.113547, -0.063927, -0.10685, 0.030187, 0.16732, 0.020123, -0.197278, 0.099435, 0.142751, + -0.024299, 0.341711, 0.13679, -0.19682, 0.125781, -0.240029, -0.18193, 0.05681, 0.135404, + 0.045288, 0.117491, 0.00685, 0.17626, 0.441731, -0.040654, -0.094024, 0.152452, 0.128678, + -0.131384, 0.164849, -0.054344, 0.062915, -0.062892, -0.048392, -0.039613, 0.110547, -0.031928, + 0.098961, 0.099174, -0.189235, 0.167891, 0.078632, -0.193383, 0.205958, 0.008894, -0.306698, + 0.134912, -0.207565, -0.117414, -0.053831, 0.190652, 0.131667, 0.053459, 0.030019, -0.027213, + 0.357584, -0.076664, -0.08717, 0.106336, 0.068751, -0.17586, 0.213577, -0.160509, 0.136362, + -0.086635, -0.147044, -0.033334, -0.063083, 0.044138, 0.144999, 0.05446, -0.188397, 0.116251, + 0.151765, -0.058809, 0.344083, -0.039668, -0.278616, 0.078727, -0.306946, -0.139684, 0.000655, + 0.203317, 0.1343, 0.107639, 0.07597, 0.081755, 0.408365, 0.019966, -0.090148, 0.184149, + 0.074649, -0.165457, 0.208513, -0.140018, 0.102986, -0.111348, -0.141476, 0.005553, 0.000162, + -0.036867, 0.136429, 0.047884, -0.233759, 0.19486, 0.149892, -0.121067, 0.349746, -0.032092, + -0.308002, 0.109152, -0.202046, -0.125073, -0.0011, 0.208682, 0.149952, 0.049319, 0.146443, + 0.024013, 0.364812, -0.082419, -0.03363, 0.084877, 0.134527, -0.170026, 0.193551, -0.151205, + 0.147003, -0.077486, -0.102205, -0.065966, -0.094188, -0.008767, 0.1532, 0.021479, -0.180764, + 0.103098, 0.162417, -0.048684, 0.331116, 0.070174, -0.22973, 0.138144, -0.235074, -0.16926, + -0.067909, 0.237266, 0.009469, -0.047734, -0.017226, 0.05481, 0.492931, 0.074146, -0.034393, + 0.133299, 0.087382, -0.169722, 0.189572, -0.078414, 0.096216, -0.140766, -0.118249, -0.027026, + 0.067879, -0.01553, 0.08626, 0.051562, -0.179969, 0.05779, 0.097496, 0.025678, 0.258639, + 0.10727, -0.251642, 0.130838, -0.160706, -0.135341, -0.002829, 0.137362, 0.027845, 0.082813, + -0.028982, 0.098276, 0.387227, -0.105588, -0.078858, 0.07558, 0.096439, -0.241991, 0.15344, + -0.115264, 0.135402, -0.072711, -0.1234, -0.02364, 0.020659, 0.08627, 0.159987, 0.172752, + -0.14041, 0.063906, 0.059255, -0.072704, 0.251596, 0.102756, -0.207877, 0.124914, -0.260463, + -0.260524, 0.064593, 0.198437, -0.027606, 0.086449, 0.029922, 0.223227, 0.457423, 0.02929, + -0.076161, 0.176217, 0.169569, -0.158427, 0.161737, -0.047358, 0.09133, -0.078023, -0.051432, + -0.088943, 0.099537, -0.074668, 0.107236, 0.094348, -0.175753, 0.126667, 0.049455, -0.093849, + 0.235907, 0.016822, -0.292125, 0.142708, -0.191985, -0.144466, 0.031474, 0.103259, 0.117395, + 0.046985, 0.063017, 0.034368, 0.334647, -0.143712, -0.11567, 0.142785, 0.154052, -0.258839, + 0.137897, -0.190943, 0.145182, -0.018909, -0.066893, -0.070656, -0.009149, 0.085558, 0.183923, + 0.146959, -0.219133, 0.104644, 0.107814, -0.093854, 0.340238, -0.005963, -0.308055, 0.118693, + -0.185905, -0.217554, 0.020676, 0.149794, 0.174286, -0.078359, 0.119645, -0.013156, 0.3058, + -0.114839, 0.046441, 0.092264, 0.146049, -0.189031, 0.198526, -0.225618, 0.181636, -0.031645, + -0.110775, -0.145112, -0.061438, 0.063189, 0.190988, 0.013298, -0.149886, 0.072972, 0.150723, + 0.04136, 0.338247, -0.005189, -0.298349, 0.1157, -0.118862, -0.172465, -0.020169, 0.120771, + 0.118412, -0.021157, 0.03765, 0.036175, 0.232891, -0.18673, 0.024558, 0.018888, 0.088127, + -0.257135, 0.137404, -0.126365, 0.143814, -0.080994, -0.071623, -0.047738, -0.09454, 0.115869, + 0.205266, 0.199475, -0.119787, 0.070694, 0.157325, -0.034629, 0.298934, -0.014727, -0.201685, + 0.028975, -0.203957, -0.135696, -0.060303, 0.181921, 0.096857, -0.025622, 0.004232, -0.022664, + 0.204993, -0.043869, -0.00716, 0.064871, 0.039816, -0.216239, 0.247496, -0.083904, 0.075159, + -0.199562, -0.154897, -0.022834, -0.111604, -0.007464, 0.103568, 0.255516, -0.090897, 0.146907, + 0.160706, 0.021498, 0.230583, -0.011191, -0.273444, 0.039193, -0.173898, -0.192652, 0.022415, + 0.124981, 0.204197, -0.058794, 0.098339, -0.011927, 0.211357, -0.041711, 0.098862, 0.119303, + 0.067251, -0.152045, 0.27265, -0.10156, 0.138649, -0.130894, -0.155933, -0.095668, -0.104816, + 0.008138, 0.12806, 0.215425, -0.036746, 0.117335, 0.172523, 0.036049, 0.197724}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "casual_indirectly"; + const std::vector token_types{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, + 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, + 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, + 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, -0.184324, 0.082248, -0.917971}; + const std::vector k_data{ + 0.311245, -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, + 0.625479, -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, + 0.273531, -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, + 0.813192, -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, + 0.807311, -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, + 0.153318, 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, + -0.881248, -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, + -0.297463, -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, + 0.171486, 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, + 0.029975, -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, + -0.946428, -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, + -0.597124, -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, + -0.246632, -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, + 0.297012, -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, + -0.875637, -0.228871, 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, + -0.20546, -0.108976, -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, + -0.164766, -0.569343, -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, + 0.042392, 0.429193, 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, + -0.727174, 0.769097, -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, + 0.307812, -0.320644, 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, + 0.167946, 0.980358, 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, + -0.467579, -0.477203, -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, + -0.081331, 0.456818, 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, + -0.289809, -0.256998, 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, + -0.97002, -0.518889, 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, + -0.7319, 0.512987, 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, + 0.699467, -0.68424, -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, + -0.60022, 0.007862, 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, + -0.981265, 0.563852, 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, + -0.438396, -0.150954, -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, + 0.260252, 0.37714, -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, + 0.675747, 0.507329, -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, + -0.20058, 0.39719, -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, + -0.610793, -0.492104, 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, + -0.261222, 0.711457, 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, + -0.570863, 0.500654, -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, + -0.670548, -0.083318, 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, + -0.364297, 0.143193, -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, + -0.495458, 0.508876, 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, + -0.474496, -0.472354, 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, + 0.254659, 0.085618, -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, + 0.41277, 0.159464, 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, + -0.008728, -0.260825, -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, + -0.386503, 0.899223, 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, + -0.06689, -0.560654, -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, + 0.378619, -0.165227, -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, + -0.315192, 0.603313, -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, + -0.474499, -0.518932, 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, + -0.902123, 0.215429, -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, + 0.530964, 0.573391, -0.949507, -0.7171, -0.377511, 0.826098, 0.1023, -0.747897, 0.006262, + -0.776671, -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, -0.288666, 0.3929, + 0.395564, 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, 0.815057, 0.99516, + 0.296258, -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, 0.18636, 0.413585, + -0.206588, -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, -0.109859, 0.094326, + -0.060097, -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, -0.46216, -0.33695, + -0.375678, -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, 0.139068, 0.552292, + -0.702444, 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, -0.632811}; + const std::vector v_data{ + 0.556983, -0.149319, 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, + -0.867631, 0.003304, 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, + 0.016121, 0.210597, -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, + -0.147204, -0.612415, -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, -0.842229, + -0.794683, 0.585289, 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, 0.721554, + 0.773871, 0.720051, 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, -0.016791, + -0.870379, -0.261475, -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, 0.910749, + 0.583554, -0.518337, -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, 0.060577, + -0.602459, 0.819876, 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, -0.4237, + 0.602567, 0.200242, 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, 0.783539, + -0.26327, 0.314318, -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, 0.037649, + -0.586658, 0.822194, -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, 0.961893, + -0.171048, -0.934408, 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, 0.162617, + -0.133854, 0.230342, -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, 0.192636, + -0.845443, 0.793552, 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, -0.77887, + 0.912821, 0.07751, 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, 0.074966, + -0.698764, -0.219233, -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, 0.55947, + 0.400247, 0.774181, -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, -0.39125, + -0.01835, -0.229459, 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, -0.772226, + -0.809075, -0.54802, -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, 0.981038, + -0.370629, -0.716001, 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, 0.642863, + 0.839239, -0.493832, 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, 0.25278, + 0.298125, -0.653559, 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, 0.486671, + 0.170416, 0.271919, 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, 0.806378, + -0.525239, -0.036417, 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, -0.453557, + 0.097171, -0.116216, -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, 0.642417, + 0.247718, -0.844133, 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, -0.557894, + 0.601745, -0.127932, -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, 0.693016, + 0.852534, 0.551467, 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, -0.73862, + 0.672618, 0.678645, -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, -0.32739, + 0.700386, 0.813401, -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, -0.001452, + 0.253108, -0.53735, 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, 0.931584, + 0.293263, -0.227222, 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, -0.678475, + 0.102821, 0.095808, 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, 0.370394, + -0.736122, 0.062691, 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, 0.968727, + -0.397175, -0.232716, -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, 0.340153, + -0.876826, -0.155735, -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, -0.631138, + 0.706552, 0.139649, -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, -0.8772, + -0.654672, -0.718926, 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, 0.349295, + 0.354269, 0.980382, -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, -0.852453, + 0.896511, -0.041441, -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, 0.778847, + -0.30743, 0.593968, 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, -0.931854, + -0.466351, 0.046006, -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, -0.14036, + 0.285996, 0.045167, -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, 0.387979, + 0.236666, 0.748384, -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, -0.379444, + -0.369984, 0.918921, 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, 0.66429, + -0.795854, 0.35589, -0.569686, -0.039074, -0.20867, -0.834965, -0.953914, -0.657898, 0.453771, + 0.457435, -0.869764, -0.375542, 0.016334, -0.864583, 0.563455, 0.905732, 0.176862, -0.743015, + 0.233186, 0.363014, 0.791843, -0.53207, -0.89591, 0.439351, 0.062256, -0.325826, -0.419022, + -0.515616, 0.809497, -0.172539, 0.721207, 0.89265, 0.126676, 0.213018, -0.068105, 0.686815, + -0.901088, 0.397683, -0.162929, 0.456616, -0.004454, -0.370266, -0.10795, 0.539993, -0.69453, + -0.632099, -0.223996, -0.362725, 0.392839, 0.67297, -0.107099, 0.945574, -0.41782, -0.561159, + -0.447694, -0.688972, -0.700934, -0.891016, -0.886279, 0.260999, 0.609854, 0.938847, 0.851797, + -0.057594, 0.194047, -0.59832, 0.386521, -0.958841, 0.471673, 0.183416, 0.307304, 0.366148, + -0.459105, 0.858106, 0.477252, 0.656895, 0.132079, 0.627987, 0.673001, 0.453235, 0.761769, + -0.181378, 0.657536, 0.230399, 0.601696, 0.973999, 0.226437, -0.371167, -0.099496, 0.281528, + 0.168609, -0.27317, 0.783518, 0.600807, -0.621154, -0.081481, -0.095994, -0.626731}; + const std::vector wanted_output{ + 0.556983, -0.149319, 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, + -0.867631, 0.003304, 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, + 0.016121, 0.210597, -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, + -0.147204, -0.612415, -0.467713, 0.984421, 4.8e-05, 0.212526, -0.282006, 0.083173, -0.713915, + -0.318757, -0.013059, 0.676692, 0.254631, -0.485054, -0.16726, -0.306119, 0.773991, 0.602816, + 0.116567, 0.364806, 0.255939, -0.395074, 0.62268, -0.169796, 0.322397, -0.362842, -0.243597, + -0.349896, 0.055855, -0.148723, -0.410031, 0.170584, -0.521254, -0.275514, 0.08756, 0.947788, + 0.290196, -0.136014, -0.6168, 0.218719, -0.11484, -0.578714, 0.169093, 0.758332, 0.171339, + -0.543156, 0.306269, 0.035771, 0.71923, 0.001332, 0.343586, -0.124936, 0.605997, -0.403725, + 0.611295, 0.002416, 0.29667, -0.263622, 0.067454, -0.387494, -0.418436, -0.264114, 0.153375, + -0.04335, -0.131846, -0.315941, 0.40641, 0.782723, 0.323229, -0.241984, -0.6502, 0.114719, + -0.358418, -0.117502, -0.18294, 0.658306, 0.509304, -0.207941, 0.310907, -0.363032, 0.79309, + 0.031059, -0.058731, 0.334055, 0.253528, -0.260484, 0.700958, -0.264724, -0.02402, -0.132048, + -0.022036, -0.217874, -0.520731, -0.180727, -0.11202, -0.226299, -0.47086, -0.004242, 0.337455, + 0.261786, 0.49729, -0.037942, -0.338311, -0.15973, -0.304725, 0.219866, 0.121813, 0.204767, + 0.706158, -0.134668, 0.346107, -0.077922, 0.804339, -0.114636, 0.265405, 0.116856, 0.176479, + -0.365146, 0.394065, -0.235315, -0.033724, -0.156229, -0.021297, 0.122825, -0.115064, 0.039816, + -0.03329, 0.061485, -0.428243, 0.052752, 0.291676, -0.063608, 0.09925, -0.070907, -0.498201, + 0.058418, -0.280994, 0.057933, 0.021212, 0.319838, 0.522102, 0.018881, 0.031384, -0.300913, + 0.493955, -0.148853, -0.083578, 0.118344, 0.114767, -0.3945, 0.425974, -0.236855, 0.17689, + -0.196831, -0.17647, 0.054333, -0.278797, 0.106707, 0.070574, 0.182718, -0.442901, 0.083218, + 0.367525, 0.050538, 0.42572, 0.077069, -0.375549, 0.086845, -0.333423, -0.018712, 0.02219, + 0.277725, 0.37623, 0.14346, -0.077193, -0.085065, 0.669583, -0.060946, -0.197925, 0.269375, + 0.079518, -0.226578, 0.419484, -0.077976, -0.051929, -0.167654, -0.063607, 0.109865, -0.053064, + -0.023693, -0.012477, 0.121041, -0.457484, 0.254135, 0.289998, -0.269457, 0.283249, -0.077581, + -0.372225, 0.036153, -0.336665, -0.080518, 0.088277, 0.226488, 0.509673, -0.004393, 0.153442, + -0.0456, 0.411741, -0.100708, 0.092364, 0.023818, 0.075846, -0.118709, 0.452327, -0.167595, + 0.129292, -0.170537, -0.169719, 0.053921, -0.111829, -0.051468, 0.132283, -0.032142, -0.250089, + 0.25599, 0.403345, -0.08095, 0.310569, 0.048602, -0.273727, 0.094274, -0.444862, -0.237166, + 0.098845, 0.369677, 0.132478, -0.039458, -0.046298, 0.125351, 0.608929, 0.211814, -0.043473, + 0.186692, 0.181245, -0.274406, 0.363886, -0.019692, 0.149733, -0.262383, -0.127582, 0.000705, + 0.102054, -0.141335, 0.01129, 0.183186, -0.328345, 0.099736, 0.198469, 0.144161, 0.276681, + 0.068887, -0.267033, 0.153447, -0.345089, -0.156071, 0.167516, 0.120869, 0.181632, 0.017562, + -0.047949, 0.148689, 0.457083, -0.059656, -0.15255, 0.125658, 0.212346, -0.362803, 0.264551, + -0.090518, 0.15958, -0.127618, -0.046199, 0.044135, 0.158826, 0.023235, 0.132227, 0.347863, + -0.317493, 0.144195, 0.186184, -0.05127, 0.271173, 0.048068, -0.237455, 0.076299, -0.363427, + -0.363993, 0.185246, 0.162585, 0.048072, 0.040268, 0.034567, 0.337797, 0.476831, 0.042435, + -0.033496, 0.234547, 0.212523, -0.269688, 0.239085, -0.103055, 0.105011, -0.076151, -0.060993, + -0.077274, 0.166507, -0.066754, 0.169697, 0.186769, -0.209932, 0.178532, 0.067508, -0.057466, + 0.263538, 0.056794, -0.316029, 0.162599, -0.225573, -0.157792, 0.068776, 0.134707, 0.126454, + 0.094134, 0.061944, 0.041745, 0.3309, -0.170441, -0.176386, 0.155135, 0.216799, -0.308439, + 0.195077, -0.194702, 0.178138, 0.006425, -0.045595, -0.140193, -0.050018, 0.072096, 0.130867, + 0.220965, -0.245871, 0.067012, 0.068711, -0.044525, 0.339138, -0.005963, -0.308055, 0.118693, + -0.185905, -0.217554, 0.020676, 0.149794, 0.174286, -0.078359, 0.119645, -0.013156, 0.3058, + -0.114839, 0.046441, 0.092264, 0.146049, -0.189031, 0.198526, -0.225618, 0.181636, -0.031645, + -0.110775, -0.145112, -0.061438, 0.063189, 0.190988, 0.013298, -0.149886, 0.072972, 0.150723, + 0.04136, 0.338247, -0.005189, -0.298349, 0.1157, -0.118862, -0.172465, -0.020169, 0.120771, + 0.118412, -0.021157, 0.03765, 0.036175, 0.232891, -0.18673, 0.024558, 0.018888, 0.088127, + -0.257135, 0.137404, -0.126365, 0.143814, -0.080994, -0.071623, -0.047738, -0.09454, 0.115869, + 0.205266, 0.199475, -0.119787, 0.070694, 0.157325, -0.034629, 0.298934, -0.014727, -0.201685, + 0.028975, -0.203957, -0.135696, -0.060303, 0.181921, 0.096857, -0.025622, 0.004232, -0.022664, + 0.204993, -0.043869, -0.00716, 0.064871, 0.039816, -0.216239, 0.247496, -0.083904, 0.075159, + -0.199562, -0.154897, -0.022834, -0.111604, -0.007464, 0.103568, 0.255516, -0.090897, 0.146907, + 0.160706, 0.021498, 0.230583, -0.011191, -0.273444, 0.039193, -0.173898, -0.192652, 0.022415, + 0.124981, 0.204197, -0.058794, 0.098339, -0.011927, 0.211357, -0.041711, 0.098862, 0.119303, + 0.067251, -0.152045, 0.27265, -0.10156, 0.138649, -0.130894, -0.155933, -0.095668, -0.104816, + 0.008138, 0.12806, 0.215425, -0.036746, 0.117335, 0.172523, 0.036049, 0.197724}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "casual_long_sequence"; + const std::vector token_types{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, + 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, + 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, + 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, -0.184324, 0.082248, -0.917971, 0.311245, + -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, 0.625479, + -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, 0.273531, + -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, 0.813192, + -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, 0.807311, + -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, 0.153318, + 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, -0.881248, + -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, -0.297463, + -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, 0.171486, + 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, 0.029975, + -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, -0.946428, + -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, -0.597124, + -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, -0.246632, + -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, 0.297012, + -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, -0.875637, + -0.228871, 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, + -0.108976, -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, + -0.569343, -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, + 0.429193, 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, + 0.769097, -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, + -0.320644, 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, + 0.980358, 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, + -0.477203, -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, + 0.456818, 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, + -0.256998, 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, + -0.518889, 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, + 0.512987, 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, + -0.68424, -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, + 0.007862, 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, + 0.563852, 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, + -0.150954, -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, + 0.37714, -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, + 0.507329, -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, + 0.39719, -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, + -0.492104, 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, + 0.711457, 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, + 0.500654, -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, + -0.083318, 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, + 0.143193, -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, + 0.508876, 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, + -0.472354, 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, + 0.085618, -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, + 0.159464, 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, + -0.260825, -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, + 0.899223, 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, + -0.560654, -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, + -0.165227, -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, + 0.603313, -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, + -0.518932, 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, + 0.215429, -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, + 0.573391, -0.949507, -0.7171, -0.377511, 0.826098, 0.1023, -0.747897, 0.006262, -0.776671, + -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, -0.288666, 0.3929, 0.395564, + 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, 0.815057, 0.99516, 0.296258, + -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, 0.18636, 0.413585, -0.206588, + -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, -0.109859, 0.094326, -0.060097, + -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, -0.46216, -0.33695, -0.375678, + -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, 0.139068, 0.552292, -0.702444, + 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, -0.632811, 0.556983, -0.149319, + 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, -0.867631, 0.003304, + 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, 0.016121, 0.210597, + -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, -0.147204, -0.612415, + -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, -0.842229, -0.794683, 0.585289, + 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, 0.721554, 0.773871, 0.720051, + 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, -0.016791, -0.870379, -0.261475, + -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, 0.910749, 0.583554, -0.518337, + -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, 0.060577, -0.602459, 0.819876, + 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, -0.4237, 0.602567, 0.200242, + 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, 0.783539, -0.26327, 0.314318, + -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, 0.037649, -0.586658, 0.822194, + -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, 0.961893, -0.171048, -0.934408, + 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, 0.162617, -0.133854, 0.230342, + -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, 0.192636, -0.845443, 0.793552, + 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, -0.77887, 0.912821, 0.07751, + 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, 0.074966, -0.698764, -0.219233, + -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, 0.55947, 0.400247, 0.774181, + -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, -0.39125, -0.01835, -0.229459, + 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, -0.772226, -0.809075, -0.54802, + -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, 0.981038, -0.370629, -0.716001, + 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, 0.642863, 0.839239, -0.493832, + 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, 0.25278, 0.298125, -0.653559, + 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, 0.486671, 0.170416, 0.271919, + 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, 0.806378, -0.525239, -0.036417, + 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, -0.453557, 0.097171, -0.116216, + -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, 0.642417, 0.247718, -0.844133, + 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, -0.557894, 0.601745, -0.127932, + -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, 0.693016, 0.852534, 0.551467, + 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, -0.73862, 0.672618, 0.678645, + -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, -0.32739, 0.700386, 0.813401, + -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, -0.001452, 0.253108, -0.53735, + 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, 0.931584, 0.293263, -0.227222, + 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, -0.678475, 0.102821, 0.095808, + 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, 0.370394, -0.736122, 0.062691, + 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, 0.968727, -0.397175, -0.232716, + -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, 0.340153, -0.876826, -0.155735, + -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, -0.631138, 0.706552, 0.139649, + -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, -0.8772, -0.654672, -0.718926, + 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, 0.349295, 0.354269, 0.980382, + -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, -0.852453, 0.896511, -0.041441, + -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, 0.778847, -0.30743, 0.593968, + 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, -0.931854, -0.466351, 0.046006, + -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, -0.14036, 0.285996, 0.045167, + -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, 0.387979, 0.236666, 0.748384, + -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, -0.379444, -0.369984, 0.918921, + 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, 0.66429, -0.795854, 0.35589, + -0.569686, -0.039074, -0.20867, -0.834965, -0.953914, -0.657898, 0.453771, 0.457435, -0.869764, + -0.375542, 0.016334, -0.864583, 0.563455, 0.905732, 0.176862, -0.743015, 0.233186, 0.363014, + 0.791843, -0.53207, -0.89591, 0.439351, 0.062256, -0.325826, -0.419022, -0.515616, 0.809497, + -0.172539, 0.721207, 0.89265, 0.126676, 0.213018, -0.068105, 0.686815, -0.901088, 0.397683, + -0.162929, 0.456616, -0.004454, -0.370266, -0.10795, 0.539993, -0.69453, -0.632099, -0.223996, + -0.362725, 0.392839, 0.67297, -0.107099, 0.945574, -0.41782, -0.561159, -0.447694, -0.688972, + -0.700934, -0.891016, -0.886279, 0.260999, 0.609854, 0.938847, 0.851797, -0.057594, 0.194047, + -0.59832, 0.386521, -0.958841, 0.471673, 0.183416, 0.307304, 0.366148, -0.459105, 0.858106, + 0.477252, 0.656895, 0.132079, 0.627987, 0.673001, 0.453235, 0.761769, -0.181378, 0.657536, + 0.230399, 0.601696, 0.973999, 0.226437, -0.371167, -0.099496, 0.281528, 0.168609, -0.27317, + 0.783518, 0.600807, -0.621154, -0.081481, -0.095994, -0.626731, 0.145855, -0.306993, -0.516261, + -0.321547, -0.356549, 0.95664, 0.383572, 0.984113, 0.274196, 0.226431, 0.411094, 0.171633, + -0.784771, -0.591354, -0.242279, 0.015033, 0.376714, 0.385048, 0.793313, 0.203573, -0.341293, + -0.752026, -0.732411, -0.597337, 0.301604, 0.540272, 0.874913, -0.316312, -0.078883, -0.296963, + -0.003654, 0.321001, -0.021971, 0.046295, 0.126687, 0.372418, -0.303401, -0.596298, 0.235925, + -0.118406, -0.453028, 0.419963, 0.009069, -0.145465, -0.484084, -0.131566, -0.850325, 0.22749, + 0.015007, 0.606836, 0.06457, 0.079952, 0.272413, 0.760938, -0.472558, 0.597005, 0.244562, + -0.667117, 0.348187, -0.599733, -0.314781, -0.476669, -0.680314, 0.787571, -0.893821, 0.500015, + -0.900012, -0.121706, 0.059642, 0.710911, -0.361894, 0.287827, 0.154906, 0.588385, 0.059452, + 0.374445, -0.604091, -0.694911, 0.891078, -0.728667, -0.17024, -0.12088, 0.97788, -0.216114, + -0.761304, -0.253499, 0.515821, 0.39629, 0.827292, -0.204717, 0.471045, -0.94104, 0.38694, + 0.459464, 0.645087, -0.573442, -0.266978, 0.24193, -0.710615, -0.795481, -0.962043, 0.055823, + 0.620988, 0.25686, 0.060965, 0.348426, -0.628404, 0.105426, -0.248424, -0.495144, 0.862373, + -0.773653, 0.146548, -0.878713, -0.033927, -0.444362, 0.329147, -0.561538, 0.64004, -0.811467, + 0.600636, -0.751179, 0.535585, -0.421066, -0.00233, -0.182503, 0.64903, 0.327728, -0.881204, + 0.091941, -0.689862, 0.747561, 0.1643, -0.257181, -0.510169, 0.346129, -0.598897, 0.474262, + 0.545675, 0.613803, 0.261238, -0.875369, 0.719317, -0.310223, -0.295636, -0.107439, 0.731135, + 0.768927, 0.154412, 0.477152, -0.931997, 0.002362, -0.884684, 0.34035, -0.712449, -0.356405, + 0.699031, 0.955696, -0.60038, -0.555011, 0.123846, 0.393105, -0.162872, -0.31229, -0.656844, + 0.426876, 0.979762, -0.484079, 0.471664, 0.488395, 0.803797, -0.113854, 0.031498, 0.734699, + 0.632114, 0.987707, -0.28657, 0.395687, 0.698276, -0.678816, 0.198659, -0.223753, 0.642824, + -0.449127, 0.070139, 0.598311, -0.916117, -0.844362, -0.512184, 0.641417, 0.670528, -0.68297, + 0.190687, -0.529881, -0.464153, 0.862417, 0.483009, -0.273483, 0.147202, 0.193757, 0.234241, + -0.342279, -0.588886, 0.662064, 0.134373, 0.41855, -0.37873, 0.48437, 0.727766, 0.608173, + 0.271896, 0.983883, -0.002187, 0.212897, 0.95013, 0.971897, -0.42222, 0.900803, 0.36906, + -0.111938, 0.873146, -0.518029, 0.649749, 0.990944, -0.689702, -0.590093, -0.990914, -0.179962, + -0.908204, -0.334922, 0.303595, 0.706878, 0.557035, 0.555081, 0.414864, -0.620233, -0.793995, + 0.041454, 0.949583, 0.056306, -0.08601, -0.678737, -0.495838, -0.770864, 0.800668, -0.16293, + -0.883409, 0.107275, 0.072568, -0.123549, 0.357964, 0.537779, -0.94041, -0.766092, -0.04804, + -0.927138, -0.90836, 0.88291, -0.076059, -0.49439, -0.343017, -0.780722, 0.780366, -0.216839, + -0.562238, -0.758413, 0.58449, -0.138231, -0.105057, -0.260633, -0.482723, 0.17789, 0.76937, + -0.57958, 0.047913, -0.760513, -0.468897, 0.87777, 0.010485, 0.963319, -0.175204, -0.545044, + -0.597488, 0.886315, -0.768987, 0.524794, 0.248582, 0.295107, 0.56424, -0.261623, 0.618764, + -0.796723, -0.351841, 0.732041, 0.29678, -0.133173, -0.233531, -0.610615, 0.608092, -0.0318, + -0.033834, 0.236493, 0.737948, -0.510183, -0.344397, 0.677631, 0.564772, -0.491936, -0.98926, + 0.185511, 0.525894, 0.238857, 0.709314, -0.793474, 0.504286, -0.621679, 0.562807, 0.743714, + 0.316716, 0.809075, -0.659152, -0.894376, -0.961505, 0.627831, 0.35031, -0.732267, 0.484281, + 0.912412, -0.986084, 0.725421, 0.153373, 0.093021, 0.899793, 0.90559, 0.421351, 0.790135, + 0.416024, 0.162942, -0.879011, 0.186783, -0.711446, 0.307866, 0.176434, 0.022466, -0.683727, + -0.606197, 0.739138, 0.487019, 0.52724, -0.297977, -0.172196, -0.256278, 0.687693, -0.431688, + 0.629865, 0.689494, -0.914556, 0.006107, -0.190454, -0.552822, 0.431718, -0.121495, 0.875508, + -0.625904, 0.464631, -0.853793, -0.501222, 0.068213, 0.790093, 0.526719, -0.821085, 0.110765, + -0.58949, 0.04333, -0.833073, -0.293373, 0.685866, -0.917536, -0.953423, 0.182144, 0.137084, + -0.182886, 0.873212, -0.602089, -0.60708, -0.747476, -0.186123, -0.255205, 0.618747, -0.056149, + 0.319354, -0.415557, 0.811192, 0.843019, -0.895569, -0.257, -0.848497, 0.424827, -0.873683, + -0.472812, 0.999172, -0.954919, 0.737805, 0.084479, 0.799635, -0.507489, 0.656829, 0.120654, + 0.076912, 0.682532, -0.950527, -0.805451, 0.965763, -0.600497, -0.720808, -0.048895, -0.320102, + -0.136812, -0.669986, 0.360819, -0.860482, 0.080993, 0.583539, 0.192136, 0.13287, 0.146264, + -0.292951, -0.190498, -0.421693, -0.675529, -0.529456, 0.988561, -0.167356, 0.350296, 0.691554, + -0.078118, -0.537974, -0.677539, -0.368403, 0.356936, -0.842159, -0.122097, 0.380387, 0.815855, + 0.300931, 0.197767, 0.684591, 0.462088, 0.338314, -0.310047, -0.801899, -0.216002, -0.181364, + 0.073437, -0.10998, 0.404289, 0.66455, -0.40542, -0.948861, -0.51306, -0.478476, 0.56684, + -0.645044, -0.094057, -0.211939, -0.606932, 0.453285, -0.416556, -0.051732, -0.703085, -0.10086, + 0.142086, -0.040693, -0.373648, 0.297084, -0.259098, -0.554399, -0.737433, -0.21183, -0.944678, + 0.83002, -0.477728, -0.414418, 0.092439, 0.259233, -0.094292, 0.686023, -0.58295, 0.358381, + -0.002255, -0.813471, -0.387295, 0.254487, 0.191042, 0.727135, 0.668993, -0.545423, -0.427029, + -0.212041, -0.716421, -0.26999, -0.818313, 0.380342, 0.707559, 0.079176, -0.715881, -0.757308, + -0.389299, 0.290853, 0.024392, 0.181822, 0.942481, 0.464442, 0.215023, -0.202322, 0.473049, + 0.365841, -0.900102, -0.590709, 0.033566, 0.379442, 0.486503, -0.595279, -0.992114, -0.052092, + -0.114317, 0.29018, -0.275006, 0.764523, 0.066724, 0.730247, -0.696314, 0.400036, 0.119156, + -0.500148, 0.495748, -0.984019, 0.808467, 0.080588, 0.096553, 0.462446, 0.083012, 0.428652, + 0.636214, -0.780458, 0.66156, -0.149739, -0.232549, 0.201282, 0.782152, -0.543615, -0.673931, + 0.620607, -0.469668, 0.32195, -0.147326, 0.275253, 0.763115, -0.506799, -0.485264, 0.490621, + 0.054752, -0.110058, -0.878388, 0.847258, -0.037871, -0.184187, -0.41049, -0.197338, 0.486034, + -0.022983, 0.855209, -0.057735, -0.143458, 0.564452, -0.025876, -0.199593, 0.334227, 0.788631, + 0.24955, 0.696318, 0.648038, 0.282798, 0.347689, 0.322684, 0.103727, 0.850736, 0.923141, + 0.355989, -0.049939, 0.896594, -0.778321, 0.734784, 0.529826, 0.642136, -0.076836, -0.746098, + 0.713339, -0.437256, 0.263113, 0.566545, -0.934526, 0.066364, -0.355226, 0.709755, -0.636701, + 0.60717, 0.62357, 0.551715, 0.960012, 0.151451, -0.906381, 0.713865, 0.091547, 0.019845, + -0.952589, -0.224756, -0.485368, 0.979411, 0.712029, 0.745988, 0.684837, -0.619874, -0.42947, + -0.39135, -0.400882, 0.778432, 0.339767, 0.801354, -0.046779, -0.891427, -0.290123, 0.702795, + 0.608806, 0.309572, -0.293328, -0.933371, -0.537327, 0.52138, -0.403358, 0.478339, 0.273041, + -0.384087, 0.609078, -0.321333, -0.033223, -0.380913, -0.948572, 0.161238, 0.288969, -0.503481, + 0.613447, -0.897056, -0.963977, -0.617649, -0.345605, -0.111058, -0.193248, 0.456388, -0.877625, + 0.147248, 0.017318, 0.26413, 0.99408, 0.615448, -0.553705, -0.819453, -0.242101, -0.501627, + 0.349305, 0.009167, 0.804324, 0.392806, -0.18387, 0.03437, 0.239486, -0.124087, 0.806935, + -0.7819, 0.487406, -0.637444, -0.876081, -0.205297, 0.487305, 0.706562, 0.250942, -0.086429, + -0.056059, -0.405381, -0.089737, -0.069094, 0.850963, 0.585244, -0.800224, 0.004137, -0.61507, + -0.158741, -0.794768, 0.259961, -0.721078, 0.987221, 0.755203, -0.688359, -0.941464, 0.039018, + -0.279152, 0.293567, -0.676914, 0.409341, -0.863749, -0.52777, -0.525702, 0.483891, -0.026181, + -0.961029, -0.57112, -0.462777, -0.92783, 0.128047, 0.356338, -0.183478, -0.397945, -0.006065, + -0.794282, -0.608902, -0.022806, 0.888377, -0.307508, 0.495659, -0.39355, -0.266198, -0.951944, + 0.828485, 0.973728, -0.021003, 0.63537, 0.817942, 0.496718, 0.515019, -0.951991, -0.939671, + -0.76754, 0.312786, -0.864977, -0.763345, -0.484703, -0.921685, 0.001347, 0.144268, -0.5852, + 0.654765, -0.379645, -0.281527, 0.761875, 0.858552, -0.11472, -0.717878, -0.501669, 0.127339, + 0.586192, 0.497845, -0.441582, -0.945367, -0.875147, -0.318156, 0.012544, -0.449176, -0.790705, + 0.105388, -0.793741, -0.767924, -0.812946, -0.270973, 0.883258, 0.390919, -0.118569, 0.205811, + 0.398209, 0.005826, -0.806574, -0.616113, -0.679353, -0.025392, -0.915402, -0.181821, -0.365672, + 0.98137, 0.812824, 0.580854, 0.056082, -0.323773, 0.25507, -0.69093, -0.426504, -0.200885, + -0.234955, -0.947302, 0.397531, 0.823482, -0.551573, 0.269566, -0.115974, -0.036472, 0.05829, + 0.866583, 0.133991, -0.632677, -0.359714, 0.488527, 0.312055, 0.019436, -0.131977, -0.389077, + -0.354927, -0.527486, 0.163862, 0.280842, 0.765745, -0.225913, 0.071589, 0.646289, 0.434991, + 0.128488, 0.307279, 0.051906, -0.857792, 0.038551, -0.218579, 0.902412, 0.902628, 0.198391, + 0.893803, -0.515019, 0.869174, 0.860985, -0.038221, -0.802509, -0.322696, -0.267427, 0.016518, + -0.906651, 0.185326, -0.415892, -0.256041, -0.516492, -0.211134, -0.928725, -0.530168, 0.092125, + 0.655276, 0.908748, -0.756456, 0.419921, -0.563696, -0.773157, -0.044035, -0.573647, -0.861246, + -0.934536, -0.669348, 0.821736, 0.557708, -0.395847, -0.669321, -0.769242, -0.590521, -0.411498, + 0.600589, 0.327256, -0.385372, 0.688431, -0.621233, -0.814688, 0.21825, -0.551401, 0.284478, + 0.847236, -0.472905, -0.697812, 0.3764, -0.903147, 0.892178, -0.472256, 0.48346, -0.795172, + -0.676868, 0.110155, 0.355405, 0.775395, 0.836336, -0.057512, -0.128567, 0.165302, -0.232291, + 0.034041, -0.947048, -0.820907, 0.685262, -0.584357, 0.787485, 0.109744, 0.243585, 0.908878, + -0.55619, -0.157858, 0.177169, 0.341642, -0.973214, 0.355419, -0.589726, 0.13135, 0.67655, + -0.099615, -0.031635, -0.074715, 0.834483, 0.568329, 0.168169, -0.601815, -0.543037, 0.796555, + 0.719421, 0.57901, -0.779717, 0.778793, -0.095592, 0.736757, 0.868549, 0.109611, -0.416118, + 0.940651, -0.52112, 0.653415, -0.95889, -0.314513, -0.871855, -0.448576, 0.424619, -0.716528, + -0.864804, 0.715035, 0.533821, -0.010935, -0.704961, -0.264936, -0.323781, 0.61759, -0.327087, + -0.288016, -0.708859, -0.470988, 0.541449, 0.644286, 0.145287, -0.375198, 0.960491, 0.19738, + -0.385996, -0.346597, -0.139951, 0.474098, 0.365768, 0.724961, -0.045057, 0.827093, -0.406187, + -0.460553, -0.369297, -0.938208, -0.65644, -0.904875, -0.059098, 0.009427, -0.259542, -0.683384, + 0.907289, -0.33134, 0.476553, 0.69641, -0.657357, -0.125023, 0.577967, 0.969359, -0.126161, + 0.724623, -0.784866, -0.649739, 0.822335, -0.09468, 0.987923, 0.072717, -0.414709, 0.949715, + 0.874484, 0.092806, -0.606205, -0.043297, -0.480917, 0.728681, 0.046324, 0.210521, 0.606465, + 0.331241, -0.624266, 0.830724, 0.614345, -0.617336, 0.756103, 0.283703, -0.196849, -0.715163, + -0.165923, -0.980443, 0.570761, 0.724254, -0.287898, 0.92705, -0.370291, 0.171248, -0.696894, + -0.042278, 0.40423, 0.430735, -0.033533, -0.504262, 0.698985, 0.662066, 0.16048, -0.459876, + 0.212026, 0.002674, 0.913603, 0.148193, 0.077129, 0.068359, 0.532009, -0.012356, 0.857144, + 0.52099, -0.755627, -1.1e-05, -0.848807, -0.767809, 0.194293, 0.224719, -0.087512, 0.950462, + -0.537212, -0.419086, -0.160146, 0.006063, -0.084702, 0.900389, -0.422346, -0.523075, 0.08595, + 0.751082, 0.237356, 0.538733, 0.193585, 0.852288, 0.600624, 0.715569, -0.13469, -0.827896, + -0.474364, 0.340668, 0.701547, -0.390704, 0.827419, 0.143726, 0.003972, 0.038984, -0.176673, + 0.936189, 0.043435, 0.612509, -0.844014, -0.515221, 0.112437, 0.7985, 0.476087, 0.190459, + -0.987992, 0.0188, -0.660102, -0.853872, 0.136743, -0.632705, 0.907639, -0.543542, 0.322268, + 0.586963, -0.777237, 0.51178, -0.133896, 0.518163, 0.967735, -0.426165, -0.433104, 0.794549, + 0.1112, -0.099733, 0.758668, -0.483144, -0.049376, 0.686876, 0.390811, -0.646815, 0.259917, + -0.762437, -0.543073, 0.643012, -0.266512, -0.509357, 0.070882, 0.24437, -0.621617, -0.674363, + -0.968469, 0.258384, -0.645229, 0.076208, -0.223658, -0.65386, -0.319099, -0.76869, -0.529333, + -0.031171, -0.854915, -0.877033, 0.749061, 0.094098, -0.442254, -0.033249, 0.741565, -0.834266, + -0.530184, -0.72314, -0.072701, -0.034413, -0.779306, 0.694084, -0.76792, 0.933636, -0.688369, + -0.137046, 0.186987, -0.444477, 0.919642, -0.689434, -0.055428, -0.734261, 0.277591, 0.852587, + 0.927586, 0.118714, -0.500645, 0.971845, 0.07463, 0.676577, -0.519417, -0.464093, -0.830133, + 0.920126, 0.165884, -0.718189, 0.085889, -0.428905, 0.049956, 0.331923, -0.496235, 0.174499, + -0.631382, 0.192696, -0.965536, 0.159351, 0.993519, 0.921113, 0.364781, 0.735829, 0.972258, + 0.283369, 0.333518, 0.130034, 0.88533, 0.859041, -0.47026, -0.04111, -0.503843, 0.35883, + -0.968992, 0.353868, -0.274448, 0.362652, 0.312106, -0.497619, 0.518811, 0.42465, -0.850041, + 0.997752, 0.860753, 0.622182, -0.1015, 0.354288, -0.541016, -0.339799, 0.471959, 0.445168, + 0.395985, -0.953738, 0.828679, -0.417687, 0.865416, 0.823951, 0.370651, 0.99629, 0.57422, + 0.586486, -0.339572, 0.927485, 0.262095, 0.590836, -0.226108, 0.724221, 0.887102, -0.766251, + 0.819804, -0.66089, -0.688473, -0.835686, 0.28896, -0.750827, -0.376434, -0.502686, 0.267265, + -0.981761, -0.458441, 0.007316, 0.089802, -0.451624, 0.358264, -0.659754, -0.84689, -0.142165, + -0.540648, 0.630333, -0.683519, -0.083952, 0.415354, -0.875739, 0.77412, -0.454375, -0.272116, + -0.611714, -0.372638, -0.38559, -0.889877, 0.341708, -0.003204, 0.978231, 0.674676, 0.869934, + 0.294227, 0.525459, 0.936385, 0.82104, -0.768399, -0.224229, -0.964465, 0.037831, -0.35319, + 0.867917, 0.158105, 0.011006, -0.723352, -0.784731, 0.157424, -0.496882, -0.459252, 0.701434, + -0.521319, -0.445105, 0.767808, 0.390699, -0.568208, 0.302848, 0.504137, -0.888201, 0.186807, + 0.22847, -0.038947, 0.958801, -0.660976, 0.542117, -0.531217, -0.856106, 0.681519, -0.479722, + 0.047001, 0.525902, -0.834659, -0.855989, 0.340461, 0.871926, -0.105816, 0.704222, 0.351401, + 0.285303, -0.637572, 0.951718, 0.458041, 0.154624, 0.707304, -0.859227, 0.215484, -0.470729, + -0.101548, 0.327633, 0.442897, 0.229406, -0.773953, -0.625833, 0.017461, -0.173191, -0.837014, + 0.985166, 0.125783, -0.71055, 0.438586, 0.434499, -0.490566, 0.501444, -0.620343, 0.346481, + 0.949905, 0.660131, 0.493689, -0.203451, 0.187735, 0.348966, 0.244247, -0.202592, 0.139527, + -0.405031, -0.565267, -0.922836, -0.815309, -0.627715, 0.95589, 0.200115, -0.904621, -0.511169, + 0.233579, -0.299306, -0.28306, -0.375515, -0.24424, 0.115027, 0.059218, 0.642482, 0.639943, + 0.822991, -0.031811, -0.44652, 0.003412, -0.662214, 0.409122, -0.12065, -0.320276, -0.847812, + 0.481916, 0.558175, 0.912227, -0.35427, 0.301311, 0.037695, -0.63697, -0.625149, 0.512085, + -0.574323, 0.728184, 0.349359, 0.341509, 0.658576, 0.489416, 0.431283, 0.518842, -0.424367, + -0.530281, -0.183201, 0.555168, 0.699827, 0.736412, -0.315437, -0.126885, -0.68682, 0.616596, + -0.663127, -0.411489, 0.825765, 0.243013, -0.418632, -0.673372, -0.687674, 0.807026, -0.914004, + 0.864129, 0.799965, 0.061962, -0.080155, 0.777722, 0.440977, 0.945511, 0.807812, -0.65576, + 0.617119, 0.50433, -0.710012, 0.480272, -0.519412, -0.595792, 0.018656, -0.122881, -0.268882, + -0.655807, 0.547038, 0.99707, -0.221582, -0.673774, -0.051564, -0.86881, -0.812056, -0.333122, + 0.628305, -0.766114, -0.159583, -0.51927, -0.920789, -0.225111, -0.058251, -0.168141, 0.731135, + 0.400562, 0.622595, 0.391689, 0.104918, 0.542759, -0.63795, 0.509534, 0.476314, -0.424407, + -0.034321, -0.756477, -0.875048, -0.001105, 0.179055, -0.215706, 0.30895, -0.772002, -0.549682, + 0.690196, -0.973172, 0.157021, 0.769873, 0.749687, 0.341118, -0.910901, 0.128737, -0.351658, + -0.28111, 0.766192, -0.339842, -0.716171, -0.802738, 0.631384, 0.048253, 0.987665, 0.204503, + -0.931919, 0.247408, 0.915044, 0.62023, 0.30009, -0.751304, -0.599635, 0.679014, -0.668658, + 0.228133, -0.128123, 0.335081, 0.065432, -0.76167, -0.398608, 0.872191, 0.117716, 0.507055, + -0.504503, 0.791641, -0.214064, -0.337064, 0.202855, -0.358313, -0.40185, -0.143095, -0.05709, + -0.568754, 0.341814, -0.969182, 0.613863, 0.927464, 0.161783, -0.233658, -0.915901, 0.469602, + 0.81938, 0.854926, 0.08917, 0.332462, 0.95821, 0.149259, -0.48277, -0.949428, 0.437211, + 0.389543, 0.888684, -0.509105, 0.429523, -0.330854, -0.248535, 0.583487, -0.916678, 0.737137, + 0.465099, -0.594319, 0.510296, -0.251532, 0.089997, -0.267658, -0.979113, -0.103568, 0.48792, + -0.116347, -0.492413, 0.031686, 0.182487, -0.279016, -0.775484, -0.536143, -0.163033, 0.360143, + 0.889274, 0.018559, 0.358042, 0.575371, -0.436052, -0.331817, 0.663306, 0.715988, 0.236959, + -0.772782, 0.567586, -0.826495, 0.499822, 0.118514, 0.323015, -0.974748, -0.351575, 0.424697, + 0.769686, -0.286291, 0.89175, -0.223159, -0.603146, -0.433043, 0.062227, -0.177733, 0.484004, + -0.553422, -0.284471, -0.991013, 0.816243, -0.188163, -0.788312, -0.048254, -0.001825, 0.277728, + -0.109761, 0.629063, -0.345024, -0.299311, -0.23747, 0.17853, 0.80122, -0.046013, 0.769429, + 0.785546, -0.52065, -0.08592, -0.472059, 0.415974, -0.351569, 0.30505, 0.059745, -0.656465, + -0.672294, -0.976725, -0.559381, 0.279354, 0.060926, 0.752102, -0.879314, -0.029222, -0.89665, + 0.005854, 0.364337, -0.897043, 0.883152, -0.310591, 0.886036, -0.167851, 0.567315, 0.909077, + -0.364074, -0.243087, 0.524529, -0.856131, 0.591928, -0.628113, 0.928763, -0.655365, -0.411511, + 0.746185, -0.435387, 0.857151, 0.68802, 0.914011, -0.969282, 0.011208, -0.328914, 0.238204, + -0.755051, 0.410054, -0.047374, -0.472689, -0.899604, 0.523068, -0.361905, 0.737876, 0.178014, + 0.30414, -0.151664, -0.138524, -0.33971, -0.865901, 0.628696, -0.629741, 0.582838, -0.337283, + 0.626469, 0.857022, -0.611606, 0.825726, 0.024372, -0.763931, 0.408212, 0.566239, 0.881512, + -0.95192, 0.902962, 0.758107, 0.983762, 0.545006, -0.486113, 0.758612, 0.913917, -0.38237, + -0.16346, 0.782532, 0.804983, 0.660587, 0.766132, -0.513898, -0.172515, -0.399509, 0.519738, + 0.249212, -0.772453, -0.125612, -0.815455, -0.941117, 0.911628, -0.503021, 0.44633, -0.222679, + -0.202499, -0.000646, 0.779928, -0.138336, 0.827466, 0.585108, 0.686009, -0.90694, -0.467595, + -0.814724, -0.212389, -0.207122, 0.203204, 0.895971, 0.448905, -0.695858, -0.627143, 0.755105, + 0.099544, 0.282505, -0.523035, -0.121949, 0.284705, -0.656225, 0.652661, 0.498344, -0.583172, + -0.410081, -0.235101, 0.155626, -0.36682, 0.956621, -0.963209, -0.565199, -0.606979, 0.27038, + 0.141907, -0.284956, 0.853458, -0.863253, 0.35245, -0.550252, -0.227709, -0.963, -0.746507, + -0.848449, 0.436274, -0.375507, 0.523101, -0.541949, -0.247765, 0.121047, 0.837925, -0.269514, + 0.579722, 0.275872, 0.608203, 0.631708, 0.405816, -0.301547, -0.280666, 0.389301, 0.545043, + -0.053373, 0.501275, -0.601619, 0.563658, -0.122715, -0.688172, -0.485884, -0.763698, 0.201717, + -0.593061, -0.286363, -0.062655, -0.610161, 0.025678, -0.126913, 0.316742, 0.722408, -0.603669, + 0.546746, -0.021187, -0.571555, -0.453514, 0.254538, 0.208213, -0.0323, -0.497846, 0.504296, + 0.148371, -0.972131, -0.176727, -0.271312, -0.42671, -0.554698, -0.811262, 0.984904, -0.913415, + 0.929577, -0.786104, -0.242617, -0.409667, -0.53525, 0.355536, 0.579595, -0.656902, -0.46575, + 0.510427, -0.120876, 0.243549, 0.522853, -0.369632, -0.554974, 0.368097, -0.366195, -0.665642, + -0.504416, -0.464965, 0.995718, 0.192323, 0.430673, 0.134325, -0.674146, 0.721638, -0.155449, + -0.258931, 0.814957, -0.509411, 0.203058, -0.850684, 0.512423, 0.397211, -0.822296, 0.558137, + 0.110049, -0.516365, 0.852633, 0.429473, 0.351416, -0.371426, -0.54832, -0.538075, 0.375703, + 0.269386, -0.598498, 0.909952, 0.582617, -0.381808, 0.517379, -0.423898, 0.313828, 0.832333, + -0.884532, -0.497207, -0.056516, 0.149126, -0.822374, -0.657902, -0.095779, -0.144178, 0.215695, + 0.127068, 0.205142, 0.066293, 0.114937, -0.057719, 0.359123, 0.682496, -0.49905, -0.518051, + 0.438915, -0.723134, 0.649858, 0.461979, 0.144632, -0.434141, 0.029986, -0.790654, -0.899682, + 0.941704, -0.896926, -0.829754, -0.388447, 0.056157, 0.229034, -0.492782, -0.097039, -0.22331, + 0.836725, 0.867954, 0.411009, -0.006164, 0.749933, -0.807384, 0.417817, -0.581258, 0.779862, + -0.883988, 0.371553, -0.822183, 0.583648, 0.18285, 0.858039, -0.754217, 0.643609, -0.667363, + -0.539785, 0.380357, -0.168323, -0.789533, -0.850913, -0.259625, 0.276878, 0.878355, 0.735457, + 0.016389, -0.613394, -0.891554, 0.893402, -0.557545, -0.175872, -0.806915, -0.691211, 0.194035, + -0.247221, 0.114514, -0.007648, 0.050949, -0.198145, -0.03867, 0.434668, 0.730519, 0.84523, + -0.815868, -0.845309, -0.149454, -0.076287, 0.551938, 0.941359, 0.256798, -0.710259, -0.11319, + 0.646728, 0.368954, -0.707214, 0.058368, -0.965565, -0.402959, 0.699403, -0.433784, 0.610562, + -0.815674, 0.884104, 0.477005, 0.64801, 0.273093, 0.070847, -0.492485, -0.551793, -0.686719, + 0.826445, -0.34708, 0.024362, -0.940107, 0.268388, -0.340886, -0.799828, 0.123763, -0.921214, + -0.098526, -0.816643, 0.632204, -0.794164, 0.163325, 0.495146, -0.799014, 0.647364, 0.814414, + -0.612997, 0.083737, 0.303243, 0.828205, 0.781269, -0.838812, -0.815067, -0.884218, -0.444741, + -0.201857, -0.358803, 0.658923, -0.689172, -0.798126, -0.781717, -0.590257, 0.979465, 0.126281, + -0.175087, -0.29388, -0.765924, -0.339281, 0.526824, 0.675852, 0.72128, 0.071194, -0.545199, + -0.590367, 0.971854, -0.9026, 0.236745, -0.094416, 0.928469, 0.585759, -0.252638, -0.82976, + 0.13136, -0.69944, -0.105467, 0.25038, 0.488328, -0.270457, -0.675034, -0.851669, -0.947198, + 0.125433, -0.608639, 0.036266, -0.473754, -0.676729, 0.674293, 0.565918, 0.70214, 0.959256, + -0.723539, -0.532315, -0.752845, 0.671477, 0.589207, 0.810639, -0.699715, -0.536291, 0.974877, + -0.794077, -0.666006, 0.368151, -0.874154, -0.282735, 0.424907, 0.819234, -0.11347, -0.884941, + 0.56609, 0.996938, -0.742378, -0.044179, -0.723377, -0.510619, 0.336526, 0.467187, 0.413512, + -0.941884, -0.242427, 0.426193, -0.092822, -0.309152, -0.516553, 0.948178, -0.800458, -0.787718, + 0.728714, -0.607404, 0.604281, -0.551242, -0.135278, -0.483166, 0.826215, 0.693264, 0.048051, + 0.023978, -0.377394, -0.534521, -0.378249, 0.327452, -0.179867, 0.678778, 0.143979, 0.011039, + -0.621429, 0.403412, -0.925007, 0.233641, 0.358806, 0.18097, 0.703773, 0.240007, -0.27618, + -0.699755, -0.928105, 0.504682, 0.544338, -0.762777, 0.267727, -0.367721, 0.842255, -0.344684, + 0.827746, 0.707314, 0.553093, 0.683405, 0.31188, 0.338982, -0.850153, -0.228298, -0.113358, + 0.485207, -0.387503, 0.458203, 0.678975, 0.431178, 0.514693, -0.133287, 0.479026, -0.342926, + 0.866255, -0.025664, -0.058332, -0.880413, 0.924882, -0.139912, 0.744809, -0.654205, -0.836625, + -0.160063, -0.7996, 0.192158, 0.013469, -0.366713, 0.626133, 0.647861, -0.88295, -0.801121, + 0.585023, -0.60736, 0.192964, -0.266325, 0.178822, -0.551832, 0.003196, -0.354011, -0.450482, + -0.491641, 0.223365, 0.647073, -0.024644, -0.009766, 0.825068, 0.806105, -0.14517, -0.818849, + 0.234668, 0.298579, -0.791296, -0.897074, 0.104893, 0.976492, -0.89445, -0.489977, -0.344865, + -0.883314, -0.615726, 0.784927, 0.764835, -0.735691, 0.021437, -0.814449, 0.415342, -0.683013, + -0.509616, -0.463511, 0.147402, 0.668231, -0.418532, 0.184448, 0.796221, -0.060593, 0.103257, + 0.074255, -0.012775, 0.60037, 0.541093, -0.535566, 0.954862, 0.575405, -0.15647, 0.870636, + 0.053782, 0.631915, -0.849093, 0.897624, 0.94269, -0.747212, -0.895047, -0.291045, -0.614813, + 0.267182, 0.445133, -0.127416, 0.701715, 0.037894, -0.293912, -0.853571, 0.317821, -0.942206, + -0.00342, 0.146167, -0.560048, 0.30042, 0.194391, 0.669222, 0.625448, -0.809276, -0.741982, + -0.367023, -0.7194, 0.313538, -0.65519, -0.763475, 0.291262, 0.603518, -0.290722, -0.996457, + 0.141331, 0.512464, 0.781172, 0.094882, 0.694229, -0.894138, 0.956678, -0.645736, -0.682574, + 0.717673, -0.222212, 0.617135, -0.700424, 0.756574, 0.948395, 0.302796, 0.806694, -0.714126, + -0.220813, 0.304379, 0.56509, -0.533959, 0.636335, -0.329121, -0.533755, 0.195613, -0.796508, + -0.917799, 0.332504, 0.340612, 0.384549, -0.131139, -0.731335, -0.803337, 0.956899, -0.86693, + 0.301393, 0.812181, 0.763976, -0.630504, -0.322439, -0.799533, 0.627269, -0.938439, -0.920587, + -0.667601, 0.815699, 0.648187, 0.670045, 0.767287, -0.466381, -0.557687, -0.614335, 0.329958, + 0.388986, 0.207506, -0.769319, 0.088833, -0.530641, -0.196647, -0.154809, 0.049708, -0.876819, + 0.853599, -0.425521, 0.312452, 0.688644, 0.40297, 0.70032, 0.564683, 0.732242, 0.211058, + 0.638699, -0.434674, -0.538845, 0.477505, 0.262385, -0.0375, -0.843509, 0.326764, 0.647753, + -0.115455, 0.229741, 0.445181, -0.987579, -0.164528, -0.370965, -0.511118, 0.611208, 0.991488, + 0.15956, 0.622384, -0.741882, 0.176174, -0.129332, -0.61676, 0.205043, 0.318326, -0.0483, + 0.424644, 0.480109, 0.907042, 0.057968, 0.035628, -0.014313, 0.138003, -0.648418, -0.123089, + -0.845632, -0.701429, -0.851788, 0.741599, -0.5747, -0.080702, 0.106909, 0.883217, 0.45384, + -0.712133, 0.978076, -0.947187, 0.130018, 0.913705, 0.867252, -0.231774, -0.667362, 0.439101, + 0.770862, -0.5331, -0.158241, -0.608152, 0.381887, 0.21285, 0.495694, -0.343098, -0.96531, + -0.421129, -0.782083, -0.24091, 0.363421, -0.831932, -0.046678, -0.97838, -0.708649, -0.700139, + -0.340485, -0.506678, 0.153924, 0.611304, 0.754028, 0.315077, -0.006617, -0.178204, 0.679003, + -0.57273, 0.722809, -0.962812, -0.74637, 0.265264, -0.41187, 0.186571, 0.8713, 0.456732, + 0.978769, -0.423569, -0.47753, -0.126971, -0.2014, -0.43987, -0.062086, 0.90342, -0.548158, + 0.561583, 0.464546, 0.579118, 0.269781, -0.369415, 0.412714, -0.470996, -0.613817, 0.934795, + 0.828888, -0.722703, 0.812253, 0.20736, 0.256327, 0.963866, -0.052508, -0.318048, 0.627776, + -0.258314, -0.240062, -0.403255, 0.984289, 0.477161, -0.162111, -0.01995, 0.069988, -0.592796, + 0.283925, -0.776128, -0.046625, -0.187635, -0.408316, 0.924888, 0.28006, 0.481732, -0.658256, + 0.159373, 0.267975, 0.519119, -0.295078, -0.196376, -0.811891, 0.607777, 0.667557, 0.469088, + 0.508216, 0.59895, 0.942605, 0.327489, 0.360983, 0.314535, -0.564721, 0.250898, 0.301292, + -0.795953, -0.295956, -0.616995, -0.638959, 0.694942, 0.786686, -0.137853, 0.306507, -0.234204, + 0.212018, -0.167407, -0.520214, -0.420736, 0.993312, 0.168565, -0.546856, 0.113517, -0.997655, + 0.008821, 0.767653, 0.115342, 0.23826, -0.941969, -0.188089, 0.590084, -0.733203, -0.467809, + 0.675806, 0.287179, 0.467473, -0.932517, 0.636449, -0.218113, 0.210166, 0.808301, -0.92156, + 0.286112, -0.904023, 0.740339, 0.293632, 0.111269, -0.400612, 0.377035, -0.519054, 0.191158, + 0.839783, -0.750602, -0.285324, 0.233568, 0.173578, 0.013752, 0.86032, -0.259864, 0.257952, + 0.529963, -0.193892, 0.653433, 0.6531, 0.4453, -0.243968, 0.86861, -0.577822, 0.309066, + 0.20079, 0.705827, -0.819665, 0.174336, -0.57589, 0.530032, 0.343393, -0.777885, -0.062607, + 0.279734, 0.42599, 0.889637, 0.449092, 0.19071, 0.533434, -0.946245, 0.666728, -0.117574, + 0.565964, 0.286363, -0.052735, 0.70391, -0.582957, 0.282001, 0.438376, -0.355882, 0.362267, + -0.989151, -0.505069, 0.486205, 0.51542, -0.917898, 0.346068, 0.094028, 0.976145, -0.975385, + -0.238335, -0.566338, -0.608478, -0.163327, -0.919076, 0.783452, -0.353801, 0.350392, -0.58843, + 0.005392, -0.708433, 0.804882, 0.843377, 0.78729, -0.350074, 0.622387, -0.835503, 0.45884, + -0.123434, -0.828674, -0.802551, -0.935789, 0.187391, -0.361688, -0.460564, 0.952005, -0.304676, + 0.337297, -0.176043, 0.603079, 0.298416, 0.63326, 0.261119, -0.219168, 0.88383, -0.071291, + -0.598643, 0.311192, -0.121346, -0.741631, 0.130815, -0.232349, -0.398232, -0.477266, -0.42556, + -0.404963, 0.098259, 0.966068, -0.586135, -0.46652, -0.670347, -0.037946, 0.070114, -0.686393, + 0.45677, -0.896867, 0.925563, 0.188188, -0.100785, -0.358066, 0.449, 0.730234, -0.654088, + -0.250658, 0.736156, -0.187407, -0.73634, -0.321366, 0.034543, -0.186687, -0.685296, -0.626492, + 0.270389, 0.68614, 0.909721, -0.113029, 0.384753, -0.794221, 0.532867, 0.955551, 0.520745, + -0.395381, 0.815319, -0.947078, -0.119997, -0.247776, -0.997466, -0.570476, -0.728586, 0.268771, + -0.08318, 0.459274, -0.224954, 0.82488, 0.113268, 0.828942, 0.812048, -0.848052, -0.671571, + 0.602327, 0.944772, -0.853515, 0.014636, -0.384461, 0.941463, 0.830724, 0.727803, 0.538144, + -0.093801, 0.922738, -0.46795, 0.049424, -0.263117, -0.729506, -0.473887, 0.24246, -0.089221, + -0.662451, -0.127131, 0.172706, -0.699651, 0.603936, -0.850188, 0.009567, -0.818023, -0.901754, + -0.124222, 0.907575, 0.945343, 0.359409, 0.775099, -0.546649, 0.562993, 0.610165, -0.9557, + -0.766331, 0.432022, 0.092406, -0.67688, -0.789123, 0.722729, 0.109241, -0.002213, -0.966715, + 0.877393, -0.66106, 0.445588, -0.120243, 0.032586, 0.49101, -0.266389, -0.280546, 0.797184, + -0.76628, 0.445009, -0.258071, -0.334132, 0.669417, 0.168825, -0.931015, 0.893623, -0.496203, + 0.864486, -0.313844, 0.975039, 0.295002, -0.048308, 0.381733, -0.031097, -0.495984}; + const std::vector k_data{ + 0.547009, 0.64862, -0.125279, 0.94062, 0.063506, -0.528854, -0.544949, 0.672829, -0.405087, + 0.631607, -0.971394, 0.034447, -0.690946, 0.354723, 0.812122, 0.393512, -0.343827, -0.938111, + -0.4738, -0.589817, 0.954917, -0.537663, 0.386653, 0.802766, 0.360518, -0.877506, -0.113596, + -0.296798, 0.644312, -0.093804, -0.052745, 0.889571, 0.237962, 0.463555, -0.321909, 0.653974, + 0.143781, -0.200873, 0.192713, -0.787145, 0.03677, 0.458613, -0.936386, -0.53118, 0.626521, + 0.022678, -0.034062, 0.102049, -0.44882, 0.826923, -0.099153, -0.36411, 0.52639, -0.832348, + -0.184453, 0.100788, -0.310342, 0.544254, -0.853999, -0.288294, -0.420298, 0.925333, 0.399085, + -0.745963, 0.387565, -0.021207, 0.915426, 0.551865, -0.584028, 0.89139, -0.178855, -0.227709, + 0.299028, 0.993511, 0.301729, -0.964864, -0.319225, 0.931187, -0.352453, -0.481095, -0.797087, + -0.552013, -0.546745, 0.238827, 0.399526, 0.954375, 0.656268, 0.014776, 0.539296, 0.571587, + -0.862525, 0.504595, -0.684067, 0.772217, -0.434943, 0.207488, -0.01064, 0.463943, 0.15554, + -0.725395, 0.405091, 0.589896, -0.520764, -0.648707, -0.680934, -0.486555, -0.126076, 0.07477, + -0.007053, -0.264489, 0.620558, 0.052847, -0.580653, -0.26465, -0.587935, -0.352787, -0.943305, + 0.17473, -0.774837, 0.386765, 0.68504, -0.743928, -0.527731, -0.790137, 0.266871, 0.193495, + -0.516148, 0.604081, 0.414947, -0.903538, -0.054395, -0.430489, -0.17339, 0.556805, -0.10756, + -0.694514, 0.703435, -0.914046, -0.343433, 0.385314, 0.883889, 0.970543, -0.23492, 0.333697, + -0.878231, -0.19458, -0.311056, 0.283874, -0.655203, 0.216047, 0.516635, 0.779347, -0.169088, + 0.913606, -0.944806, -0.283374, 0.379115, 0.256426, 0.470938, -0.663575, 0.615732, -0.938525, + -0.685678, -0.068008, -0.971507, -0.950529, -0.887733, 0.803989, 0.219355, -0.319071, -0.041099, + -0.871619, -0.944451, -0.697379, -0.967438, 0.657913, -0.349931, -0.269944, -0.861146, 0.165621, + -0.150034, -0.680788, 0.641161, 0.84291, -0.712779, 0.56658, -0.162377, -0.009441, 0.425649, + -0.182318, 0.849643, 0.615266, -0.649132, -0.608562, -0.9908, 0.320166, -0.752187, -0.838179, + -0.640967, -0.988672, -0.814243, 0.891965, 0.558585, 0.886026, -0.485081, -0.410151, -0.350868, + 0.019531, -0.717765, 0.146602, -0.640899, 0.15802, 0.915998, 0.168899, 0.729444, -0.712209, + -0.141124, -0.617478, -0.110947, -0.397797, -0.567788, -0.965941, -0.370793, 0.133918, -0.17592, + -0.931345, 0.751178, 0.741487, -0.602901, 0.101655, 0.664009, -0.949648, -0.8836, 0.554865, + -0.019806, 0.318438, -0.415855, 0.181311, 0.663241, -0.244648, -0.323005, -0.952189, -0.154308, + 0.633666, -0.945069, -0.077247, 0.728935, -0.285415, -0.369468, -0.301632, -0.405157, 0.119686, + -0.962804, 0.382137, -0.252556, -0.127319, -0.067469, 0.558635, -0.621165, -0.909984, -0.723349, + -0.73359, -0.486869, 0.789816, -0.773615, -0.587828, -0.815204, -0.502363, -0.028073, -0.609766, + 0.01057, 0.337939, -0.170138, 0.43146, 0.229468, 0.966008, -0.051054, 0.866759, 0.748493, + 0.478049, 0.565934, -0.669702, -0.669746, 0.427043, 0.363101, 0.902436, -0.130201, -0.183829, + 0.685537, 0.032295, 0.938822, -0.510073, -0.328102, 0.043208, 0.533344, -0.876668, -0.279916, + 0.726239, 0.208221, 0.706979, -0.338735, -0.630382, -0.682708, -0.56223, -0.751508, 0.495569, + 0.268785, -0.639824, 0.916597, 0.284699, 0.372157, -0.421353, 0.692338, -0.705389, 0.728927, + -0.543414, 0.424736, -0.361764, 0.649669, -0.838671, -0.194979, -0.269916, -0.597972, -0.491194, + -0.280605, 0.103689, 0.709806, -0.164327, 0.980201, -0.47587, -0.514815, -0.052163, -0.181033, + 0.317633, 0.923986, 0.34239, -0.836769, -0.341659, -0.198664, -0.910596, 0.309188, 0.872906, + 0.496654, -0.019801, -0.076131, -0.468294, -0.111094, 0.877037, -0.514122, 0.159986, -0.733721, + -0.273462, 0.057907, -0.755099, 0.271699, -0.858724, -0.408504, 0.695898, 0.938054, -0.078184, + -0.714742, -0.821073, -0.245752, -0.510308, 0.794911, -0.712869, 0.601933, 0.190129, -0.304152, + 0.815147, 0.556489, -0.034975, -0.677778, -0.294326, 0.322427, 0.86647, -0.337458, -0.415583, + -0.977051, 0.614644, 0.976026, 0.688479, -0.557212, 0.716378, -0.303168, 0.522819, 0.584715, + -0.815295, 0.247468, 0.399223, -0.601168, 0.924549, 0.780675, 0.835765, -0.009021, -0.535039, + -0.546479, 0.353447, -0.198669, 0.794818, 0.837505, 0.077169, -0.818685, 0.39693, 0.894895, + -0.251169, -0.523351, -0.233927, 0.14327, -0.741964, 0.534037, 0.427446, -0.382332, -0.370445, + -0.474491, 0.781696, 0.593094, 0.28423, -0.044851, 0.249814, 0.9648, 0.316618, -0.49873, + 0.38683, -0.396841, -0.035509, -0.644077, -0.029257, 0.052169, -0.606477, 0.6429, 0.923589, + -0.836437, 0.289765, -0.690804, -0.198758, 0.479016, -0.017554, 0.303032, -0.323999, 0.954324, + -0.469489, 0.187165, 0.102647, 0.681177, 0.102118, 0.602919, 0.257653, 0.637618, 0.012639, + 0.333682, 0.98642, -0.325796, -0.406928, 0.725909, 0.382399, -0.943909, 0.355663, -0.980754, + -0.542923, 0.391344, 0.526775, -0.225795, 0.846466, 0.993784, 0.779775, -0.918457, -0.363738, + 0.060841, 0.812772, -0.167747, 0.208899, 0.526342, -0.523199, -0.605595, 0.988934, -0.022314, + 0.707588, -0.975092, -0.381699, 0.701687, -0.096814, 0.336825, -0.83772, 0.973327, -0.499111, + -0.050564, -0.654996, -0.443673, -0.857287, -0.875288, -0.204296, -0.441089, 0.738698, -0.004838, + 0.777596, -0.16749, 0.212155, 0.960403, -0.7738, -0.433205, 0.854902, -0.229267, -0.269314, + 0.080254, -0.536842, 0.071918, -0.415629, 0.31724, -0.212276, -0.335564, -0.376706, 0.259808, + 0.50184, -0.91424, -0.69743, -0.959718, 0.466796, 0.749976, -0.960801, 0.259961, 0.202804, + -0.536633, 0.216052, 0.771077, 0.980869, 0.432425, -0.198285, -0.568981, -0.380859, 0.008202, + -0.073436, 0.729682, -0.903709, 0.089256, -0.318049, 0.083392, 0.961642, 0.029254, -0.173438, + -0.338936, -0.997938, -0.90601, 0.435719, -0.610667, 0.567747, -0.283512, 0.360774, 0.729995, + 0.146287, 0.343359, 0.845076, -0.314235, 0.73542, -0.841026, 0.915696, -0.328014, -0.037638, + 0.560988, 0.073417, 0.874414, -0.439517, -0.55117, 0.892704, -0.603592, 0.688185, 0.963117, + 0.676932, -0.378074, -0.014782, -0.9012, -0.544515, -0.206979, -0.660698, 0.576913, 0.523992, + -0.286163, -0.157269, 0.965961, -0.061594, 0.849364, 0.926313, -0.350777, -0.955083, 0.932767, + -0.537653, 0.956274, -0.638397, 0.181373, 0.295669, -0.23622, 0.779814, -0.906674, -0.415538, + -0.157413, 0.765884, 0.46315, 0.643254, 0.43044, 0.899429, -0.249042, -0.308712, -0.137319, + 0.393387, -0.293251, 0.367281, 0.274169, 0.235131, 0.814741, 0.159275, 0.663583, -0.278802, + -0.89863, 0.61116, 0.414732, 0.840075, 0.382093, 0.019985, -0.721804, -0.948087, 0.200692, + 0.815804, -0.077739, -0.326236, 0.50028, -0.484145, 0.352863, -0.81148, -0.90627, -0.583398, + -0.17122, 0.337199, 0.505972, -0.63295, -0.205378, 0.329266, -0.220532, 0.015028, 0.647406, + -0.288484, 0.515562, 0.812541, 0.333364, -0.177689, -0.633181, -0.660947, -0.1943, 0.312516, + 0.546918, -0.04824, 0.805845, -0.396072, 0.199413, -0.511971, 0.26871, 0.853469, 0.350399, + 0.067003, -0.368029, -0.820454, -0.68431, -0.857792, 0.710745, -0.417176, -0.149626, -0.896106, + -0.27884, 0.850565, 0.18385, -0.178563, 0.521209, 0.770953, 0.778167, -0.739897, 0.071797, + -0.82117, -0.689474, 0.767884, -0.796719, -0.490417, 0.47957, 0.972973, -0.971416, -0.64528, + -0.392133, 0.774658, 0.582771, 0.623424, 0.640761, -0.250263, 0.737336, -0.0281, 0.093954, + -0.265192, 0.424211, 0.446562, -0.106, 0.880339, -0.258986, 0.25311, 0.90826, 0.563416, + -0.364141, -0.452981, 0.192995, -0.007579, 0.070379, 0.644164, 0.34955, -0.560844, -0.816465, + 0.945418, -0.11009, -0.393964, -0.734461, 0.960279, 0.504606, -0.633936, -0.863667, 0.868722, + 0.430542, -0.14689, -0.831086, 0.606106, -0.678821, 0.491403, -0.94978, -0.89161, -0.959325, + 0.906543, 0.908739, -0.853284, 0.773034, -0.607826, -0.929353, 0.481261, 0.566862, 0.566828, + 0.175497, 0.959708, -0.861456, 0.461391, -0.316885, 0.049388, 0.689688, -0.716105, 0.438232, + -0.19974, 0.64682, -0.02626, 0.496137, 0.959492, -0.35705, -0.985047, 0.943276, -0.550559, + 0.228529, 0.621938, -0.155294, 0.781534, 0.648054, -0.201328, 0.262188, 0.075784, 0.978289, + 0.692329, -0.666042, 0.096352, 0.539359, 0.764504, 0.341432, 0.424917, -0.184634, 0.02169, + -0.692105, 0.823241, 0.787439, -0.550646, -0.856144, 0.779788, -0.886311, 0.641322, -0.97404, + -0.511253, -0.423395, 0.939805, -0.169215, 0.862587, 0.290542, 0.968783, 0.662348, 0.736474, + 0.871849, -0.295451, -0.274945, 0.322209, 0.880942, -0.368008, -0.786614, -0.782261, -0.462, + 0.159565, -0.115721, -0.26668, -0.467498, 0.260104, -0.823717, 0.983823, -0.154868, 0.186588, + 0.329423, -0.389091, 0.789192, -0.007412, 0.082034, -0.951961, 0.123779, 0.343126, 0.139348, + -0.099104, 0.755093, 0.790604, 0.688462, -0.173562, 0.172745, -0.698218, -0.748642, -0.174774, + 0.111775, -0.582454, -0.834694, 0.454918, 0.365613, -0.660703, 0.665437, -0.747463, 0.75646, + 0.531244, -0.337967, 0.952057, -0.561474, -0.456791, 0.79704, -0.257682, -0.403888, 0.154733, + -0.168976, 0.629991, 0.816429, 0.444818, 0.216268, 0.251217, 0.026035, 0.117437, 0.018989, + 0.681895, 0.559219, -0.100543, 0.377626, 0.055306, 0.353383, 0.821001, -0.680375, 0.142109, + -0.208041, -0.977616, -0.971724, -0.130939, 0.715721, -0.659386, 0.325737, 0.57635, -0.72888, + 0.429465, 0.188734, -0.910412, -0.019227, -0.938808, 0.874303, 0.468682, 0.383164, 0.767726, + 0.764764, 0.992751, 0.412582, -0.721978, 0.928836, 0.277785, -0.3942, -0.372165, 0.935736, + 0.222142, 0.726845, 0.07799, 0.923734, -0.731732, 0.238333, 0.238618, -0.011533, 0.889574, + 0.200812, 0.054171, 0.682532, -0.078946, -0.064611, -0.824459, -0.006552, -0.466775, 0.578982, + 0.869938, -0.93293, -0.579215, 0.96277, -0.426822, 0.889336, 0.984564, -0.250787, -0.809492, + 0.500019, 0.454573, 0.86902, 0.14443, 0.54375, -0.857439, 0.137816, 0.235358, 0.626758, + -0.5353, -0.119504, -0.596066, -0.673012, 0.416291, 0.15249, 0.397346, -0.022771, -0.024566, + -0.038397, 0.540162, -0.691941, 0.215564, 0.548334, 0.579991, -0.479879, 0.774382, -0.666462, + 0.521438, 0.818002, 0.032086, 0.30636, -0.947321, -0.39556, -0.392892, -0.931034, -0.211763, + 0.698119, -0.095479, 0.988177, -0.900175, 0.398815, 0.86471, 0.971959, -0.387915, -0.902913, + -0.367543, 0.741308, 0.087617, 0.9558, -0.730178, -0.626182, 0.509633, 0.342879, -0.649681, + 0.930316, -0.385663, -0.831099, 0.277907, -0.560234, -0.475878, -0.558637, 0.271989, 0.468494, + 0.672566, -0.565867, -0.233711, 0.933422, -0.513693, -0.361464, -0.192285, -0.885481, -0.739126, + 0.89089, 0.184594, 0.186842, 0.39643, 0.608148, 0.671713, 0.716237, 0.403612, 0.753867, + 0.653376, -0.16721, 0.090076, -0.523815, -0.752465, 0.948482, -0.744664, -0.625169, -0.965951, + -0.766005, 0.227316, 0.479983, -0.833532, 0.079577, -0.738253, 0.189332, 0.597302, -0.383678, + -0.439023, 0.651349, -0.644469, -0.204374, -0.832588, 0.700735, 0.318942, -0.397267, 0.711633, + 0.946841, 0.408183, -0.706182, -0.218054, 0.804399, 0.726719, -0.328761, 0.66173, -0.654163, + 0.268248, 0.881506, 0.1815, -0.794613, 0.299927, 0.557317, 0.695477, -0.657801, -0.179506, + -0.052046, -0.174835, -0.22193, -0.360325, 0.344388, 0.475202, -0.19423, 0.785821, -0.005374, + 0.243776, 0.250269, -0.340488, -0.043898, -0.111683, 0.378177, -0.537247, -0.459044, -0.965255, + -0.435019, 0.318745, 0.808282, -0.985864, -0.35975, 0.629145, -0.540775, 0.675183, 0.040357, + -0.940206, 0.169088, -0.599398, 0.194355, -0.89601, 0.939662, -0.426665, 0.639558, -0.629177, + -0.838102, 0.393433, 0.6012, -0.008994, -0.845706, -0.274302, -0.692976, 0.283267, 0.161923, + 0.694922, 0.998221, -0.462273, 0.790081, 0.694766, 0.153716, -0.980441, -0.693577, 0.435731, + 0.743079, 0.53443, 0.094252, -0.608148, -0.878707, -0.571466, 0.007451, 0.131811, 0.765875, + -0.721244, 0.523016, 0.847108, -0.90385, -0.532825, -0.279081, 0.191864, 0.895747, 0.204081, + 0.676617, 0.809129, 0.785051, -0.912029, -0.653333, -0.065384, -0.003649, 0.084302, 0.84009, + 0.905733, -0.292581, -0.462297, 0.080996, 0.126529, 0.616719, 0.355273, 0.311612, 0.328292, + 0.744529, 0.595561, -0.098361, -0.697777, 0.674296, -0.081529, -0.716412, -0.166655, 0.7358, + -0.459661, -0.096423, 0.337352, 0.719077, -0.149665, -0.718289, -0.418031, -0.322793, 0.10909, + -0.678994, 0.881124, 0.263637, -0.72037, 0.546101, 0.050465, 0.978409, -0.020095, -0.013188, + -0.965122, -0.82599, 0.003497, 0.848637, -0.618402, 0.195792, -0.689147, -0.775056, -0.3677, + -0.66948, -0.827391, -0.306944, -0.136633, 0.497869, 0.459761, -0.013126, -0.2284, -0.212447, + -0.821384, 0.695143, 0.897009, -0.919379, -0.954815, -0.936972, -0.161285, -0.002415, -0.652959, + 0.552577, 0.065856, -0.506171, -0.967402, 0.778712, 0.991828, 0.09285, -0.478931, 0.635765, + 0.589344, -0.143497, 0.937763, -0.738941, -0.114597, 0.847461, -0.61875, -0.308462, -0.425156, + -0.409368, 0.880849, 0.616359, -0.909118, -0.611623, -0.013049, -0.325149, -0.550706, -0.982955, + 0.737525, 0.559887, 0.290156, -0.225046, -0.969321, -0.062605, 0.382297, -0.290219, 0.787142, + 0.228543, -0.04962, 0.39521, 0.521129, -0.733462, 0.304101, -0.908893, -0.209542, -0.324216, + 0.763553, -0.96321, 0.355285, -0.911219, 0.433512, 0.244905, -0.3935, 0.295371, 0.959771, + 0.608807, -0.912468, -0.259157, 0.907085, 0.154712, 0.123285, 0.071347, -0.351585, -0.261591, + 0.066366, 0.752753, -0.281848, -0.261693, 0.19036, -0.366006, 0.87226, 0.752264, 0.042011, + -0.64667, 0.279867, 0.848051, 0.32944, 0.419157, -0.529314, -0.985107, -0.376028, 0.031958, + 0.888471, 0.208795, -0.18332, -0.251275, -0.191204, -0.537729, -0.418651, 0.185779, 0.677212, + 0.849367, 0.385097, -0.690972, 0.924453, 0.965609, -0.297175, 0.034478, 0.905198, -0.35165, + 0.474067, 0.166331, 0.557426, 0.348414, 0.992136, 0.847497, -0.682337, 0.601793, -0.19785, + -0.523228, 0.167725, -0.136113, -0.651672, -0.882679, -0.557311, 0.102956, 0.609434, 0.589261, + 0.266675, 0.948627, -0.856482, -0.629427, 0.430459, -0.910849, 0.943121, 0.13788, -0.36855, + 0.892291, 0.466245, 0.841012, 0.753377, -0.17404, 0.907784, 0.132061, 0.096832, 0.347479, + -0.782876, -0.597923, 0.94625, -0.654408, 0.540336, 0.604369, -0.81185, -0.114608, -0.0107, + 0.741893, -0.273649, 0.9032, -0.839116, 0.417762, 0.546002, -0.360246, -0.328863, -0.636945, + 0.265305, 0.335114, -0.351489, 0.808699, -0.153225, -0.155816, 0.781021, 0.175213, 0.535311, + 0.589429, -0.654567, -0.012666, 0.883158, -0.618355, 0.13097, 0.742827, 0.110413, -0.224226, + 0.361615, -0.827148, 0.82159, 0.785564, -0.280033, -0.361758, -0.195607, 0.994972, -0.38386, + 0.299443, -0.949392, 0.302268, 0.605906, 0.32368, -0.047518, 0.072978, 0.865978, 0.43458, + -0.231074, -0.803206, 0.72881, -0.372306, 0.623478, -0.200977, 0.016597, -0.788635, -0.380963, + 0.082509, -0.9664, -0.20579, 0.581049, 0.702845, 0.736592, -0.304963, 0.078717, -0.802452, + 0.518012, 0.177056, 0.837026, -0.155568, 0.956393, 0.495434, 0.853412, -0.06508, -0.784626, + -0.784248, -0.942889, 0.166215, -0.773295, -0.326659, 0.508145, 0.909089, -0.250802, 0.692351, + -0.075776, -0.200116, -0.118343, -0.453432, 0.273697, -0.005413, -0.487233, 0.636058, -0.446738, + -0.677279, 0.347145, -0.061407, -0.550489, -0.816331, -0.29961, -0.765667, 0.543896, -0.124559, + 0.515057, 0.486766, 0.080546, -0.153967, -0.515745, 0.22513, -0.869547, -0.487291, 0.797466, + -0.194097, 0.806723, 0.592174, -0.210806, -0.804893, 0.803093, 0.084242, 0.945038, -0.904412, + 0.206073, -0.86159, -0.121412, -0.876512, -0.910177, 0.050447, 0.985877, 0.076623, -0.092647, + 0.932141, 0.091538, -0.558366, 0.635887, 0.713549, 0.867098, 0.786419, 0.929564, -0.370883, + 0.143788, -0.364903, -0.13311, 0.790612, -0.790131, 0.546464, -0.577783, 0.005484, -0.119062, + -0.450428, 0.085275, -0.506558, 0.905745, -0.362013, 0.632947, -0.238198, -0.78733, 0.776281, + -0.276124, -0.414268, 0.074969, -0.010188, 0.282181, -0.242628, -0.288519, 0.547135, 0.458346, + 0.883893, 0.110361, -0.259596, -0.213045, -0.203783, -0.316027, -0.341282, -0.281753, 0.301579, + 0.395674, 0.761126, -0.973131, 0.775464, -0.201472, -0.977185, 0.653745, -0.566957, -0.450627, + 0.331887, 0.163802, 0.681673, -0.697757, 0.543263, 0.521225, 0.618981, -0.332842, 0.169833, + 0.294345, 0.942876, -0.607674, -0.91819, -0.9044, 0.132443, -0.760014, -0.185117, -0.467466, + 0.18115, -0.708618, 0.616677, -0.982387, -0.54786, 0.20635, -0.983587, 0.246481, -0.374116, + -0.505052, 0.71683, -0.322894, 0.236397, -0.386128, 0.467804, 0.910666, 0.959938, -0.604899, + -0.994042, -0.69928, 0.281707, 0.401451, 0.525214, 0.434243, 0.972821, -0.758325, -0.78398, + -0.313151, 0.77617, -0.767871, 0.749745, 0.166392, 0.618568, 0.990748, 0.973328, 0.960007, + -0.245401, -0.426717, 0.424536, 0.852776, 0.024898, -0.236716, -0.161739, -0.356935, 0.480163, + -0.994579, 0.850919, -0.036723, -0.606208, -0.356703, -0.613851, -0.86892, 0.100622, -0.227108, + -0.448891, -0.170307, -0.137876, 0.440565, -0.808911, -0.023447, -0.013647, -0.817483, 0.921798, + -0.474062, 0.79338, 0.766485, 0.027083, 0.744595, -0.752498, -0.109923, -0.824891, -0.608762, + 0.315943, 0.745154, -0.593427, -0.40406, -0.560701, -0.086882, -0.830621, -0.791505, -0.217556, + 0.960805, 0.172265, -0.416256, 0.66851, 0.738056, 0.683441, 0.009308, -0.108336, 0.64953, + 0.537553, 0.758236, 0.720216, -0.283849, 0.846984, 0.19565, 0.995583, 0.994818, 0.838675, + 0.665663, 0.785174, -0.470017, -0.389295, -0.233051, -0.511829, 0.734709, 0.093483, -0.253273, + -0.448033, -0.890314, 0.071751, 0.879038, 0.657529, 0.792587, 0.683238, 0.420799, -0.028796, + -0.739775, 0.735241, -0.703685, -0.601334, 0.401269, 0.549194, -0.520388, 0.632861, -0.935868, + 0.238301, 0.441467, 0.185745, -0.562707, -0.675344, 0.799244, 0.220306, -0.429606, 0.963192, + -0.208732, -0.18492, 0.257393, 0.832551, -0.44515, 0.005041, -0.448946, -0.452942, -0.136312, + -0.00103, 0.5362, -0.746939, 0.580305, 0.781271, -0.114001, -0.089578, 0.246605, -0.91552, + 0.735819, -0.174934, 0.040218, 0.474092, 0.416394, -0.462704, -0.734516, -0.964707, -0.835029, + -0.210218, -0.776323, -0.100973, -0.528315, 0.566634, 0.68401, 0.846005, -0.655753, -0.705712, + 0.346897, -0.228361, 0.758381, -0.917397, 0.927336, -0.693618, -0.801915, -0.106042, -0.443005, + -0.630392, 0.570908, 0.772323, 0.556759, 0.122061, -0.143901, -0.545614, 0.953124, -0.544655, + -0.876777, 0.848422, -0.080649, 0.671921, -0.331912, 0.778871, -0.705172, 0.601784, 0.778312, + -0.013981, 0.663164, 0.035486, -0.915579, 0.438094, -0.7774, 0.031427, -0.899526, -0.476118, + -0.297962, -0.388618, -0.985057, -0.496686, -0.926575, -0.836015, -0.997678, -0.576067, -0.224084, + 0.900876, -0.703513, -0.760436, -0.814062, 0.935538, -0.127885, -0.26606, 0.548292, -0.590849, + -0.264283, 0.916575, 0.532614, -0.775732, -0.274843, 0.0982, 0.361306, -0.460068, 0.700191, + 0.015638, -0.864623, 0.267959, -0.970758, 0.069619, -0.989028, -0.285245, -0.232405, -0.898268, + -0.282852, 0.033581, -0.563415, 0.141913, 0.528064, 0.118021, -0.981559, -0.00316, -0.468644, + 0.285041, -0.802364, -0.691735, -0.033197, 0.576643, -0.267154, -0.052732, -0.099035, -0.782447, + -0.079118, -0.028145, 0.165523, 0.447576, 0.29781, 0.557671, -0.190639, -0.43199, 0.849253, + 0.797324, 0.545213, 0.728464, 0.489772, 0.883974, 0.869899, -0.813062, -0.942368, -0.518823, + 0.764583, 0.902923, 0.065234, -0.739377, -0.469998, 0.475382, 0.931495, 0.193689, -0.657672, + 0.948798, 0.878098, -0.438695, -0.540337, 0.574909, -0.722632, 0.834719, -0.201866, -0.01361, + -0.534234, -0.988609, 0.226245, -0.356285, -0.586345, 0.797112, 0.185434, -0.268132, -0.922186, + -0.562938, -0.326426, 0.420375, -0.911417, 0.577539, 0.909615, 0.309448, -0.992874, 0.130464, + -0.403553, 0.316325, -0.03738, 0.489282, -0.08136, 0.180374, 0.39841, -0.740897, 0.166768, + 0.891116, 0.69826, 0.062246, -0.175851, 0.413487, -0.879369, -0.30119, 0.867368, 0.128689, + -0.012937, -0.787114, -0.648128, 0.138297, -0.751691, -0.289172, -0.492628, 0.308176, 0.152767, + -0.965533, 0.330055, -0.090161, -0.48446, 0.736668, -0.658338, -0.912132, 0.109025, -0.542761, + -0.406094, -0.874541, -0.248527, 0.794491, -0.907307, -0.676203, -0.218833, -0.791415, 0.187186, + -0.198719, 0.756477, -0.993836, 0.033478, 0.440967, 0.129815, -0.272331, 0.937815, -0.776227, + 0.931392, 0.272248, 0.476172, 0.704965, 0.099525, 0.106036, -0.202768, -0.90716, 0.421252, + 0.747909, 0.41812, -0.156034, -0.89516, -0.016529, 0.260059, -0.782712, 0.850339, -0.026333, + 0.273125, 0.882185, 0.434118, -0.541862, 0.368775, 0.587988, 0.498918, -0.469829, 0.101572, + -0.718521, -0.112349, -0.69392, 0.571664, 0.978422, -0.9685, -0.467212, -0.422985, -0.700222, + 0.909943, -0.77244, -0.522807, -0.830732, -0.003318, -0.74019, -0.673611, 0.994391, 0.446859, + 0.424244, 0.709196, 0.17279, 0.162272, -0.751084, 0.280932, -0.781262, -0.004351, -0.539641, + -0.566818, -0.585499, -0.484086, -0.594718, -0.546887, -0.36427, -0.913709, 0.800444, 0.33604, + -0.994658, -0.999507, -0.503617, 0.385869, 0.915303, -0.155771, 0.594996, -0.53937, -0.207561, + -0.155025, -0.973589, 0.005217, 0.264666, 0.60951, -0.773747, -0.301096, 0.037725, 0.106079, + 0.168648, -0.742832, 0.776122, -0.903643, -0.34716, 0.498327, -0.249399, -0.481838, -0.986537, + 0.688745, -0.022454, 0.483023, 0.159539, -0.743676, -0.353356, 0.713032, -0.489707, -0.460753, + 0.54838, -0.4334, 0.163244, -0.486146, 0.307817, 0.101725, -0.793758, -0.758469, 0.367708, + -0.327495, 0.547782, 0.05204, -0.341971, -0.174012, -0.455607, 0.493454, 0.793206, -0.031146, + -0.644676, 0.718871, 0.813704, 0.681712, -0.018099, 0.24582, 0.050864, -0.379824, -0.990176, + -0.122229, 0.432504, 0.583313, 0.237839, 0.456006, 0.625957, -0.193324, 0.652998, -0.021004, + -0.354153, -0.388325, -0.582803, -0.770198, 0.229081, 0.924051, 0.142157, 0.135154, -0.375143, + -0.394195, -0.313424, 0.346137, 0.172406, -0.367417, 0.195945, -0.174716, -0.068116, 0.709065, + -0.416698, 0.933058, -0.546967, 0.926465, 0.375676, 0.401529, -0.228749, -0.27252, -0.731464, + -0.958977, 0.700152, 0.970032, 0.28676, -0.391152, 0.219626, -0.037451, -0.86441, -0.800878, + 0.347198, -0.291976, -0.237847, -0.602923, 0.441016, -0.504628, -0.319358, 0.53503, 0.961328, + 0.891495, 0.393653, 0.035523, 0.751581, 0.884144, 0.448942, 0.29396, 0.241135, 0.101758, + 0.660039, 0.282877, -0.843142, -0.59071, -0.908126, -0.300539, 0.05111, -0.42397, -0.919675, + -0.650362, 0.425591, -0.070442, -0.167651, 0.161901, -0.211233, -0.544973, -0.458889, -0.4076, + -0.936027, -0.922226, -0.378883, 0.375261, 0.977958, -0.027066, 0.682898, 0.330655, -0.796445, + -0.500287, -0.274381, -0.824212, 0.140053, 0.237533, -0.779535, -0.210469, -0.882062, 0.995817, + 0.591468, -0.377222, 0.859684, -0.625909, 0.841289, -0.384841, 0.292179, 0.694898, 0.465573, + 0.242331, -0.115313, 0.007362, 0.853856, -0.326803, -0.324451, 0.12779, -0.485204, -0.378075, + 0.078141, 0.752076, 0.326048, -0.617907, 0.603825, -0.368282, 0.257891, 0.058888, 0.714186, + -0.223358, -0.406321, -0.199208, 0.009089, -0.471915, 0.687312, -0.536139, 0.158196, -0.767773, + -0.124169, -0.21547, -0.40006, 0.522759, -0.89291, 0.104887, -0.093547, -0.52007, 0.777666, + 0.627766, 0.30219, 0.019453, 0.554258, -0.439257, -0.813733, 0.9596, -0.374342, 0.200591, + 0.019971, 0.841868, 0.994682, -0.672794, -0.010665, -0.810717, 0.645876, 0.954784, -0.382245, + 0.181243, -0.220181, -0.24226, 0.794031, -0.929123, -0.136935, -0.004101, -0.881968, 0.411192, + 0.666864, -0.794358, 0.386918, -0.064699, 0.936889, -0.942369, 0.848988, -0.371502, 0.84298, + -0.510104, 0.169376, 0.233278, 0.620386, 0.468709, 0.558867, -0.210505, -0.79117, 0.011612, + 0.912127, 0.865004, -0.588392, 0.687912, 0.449756, -0.180951, 0.545846, -0.041705, 0.121765, + -0.655257, -0.123148, 0.978916, 0.619499, -0.80817, -0.056638, 0.636986, -0.427939, -0.125255, + 0.4988, 0.840451, 0.90728, -0.722424, -0.94227, 0.706707, -0.077455, 0.902849, 0.709807, + -0.390396, 0.286488, 0.336437, -0.35792, 0.898466, 0.082056, -0.326838, -0.913401, 0.800322, + -0.9916, 0.761146, -0.350232, -0.18307, 0.135086, 0.983012, -0.658292, -0.710203, 0.601083, + -0.485686, -0.368003, 0.578097, -0.414515, 0.595635, -0.390014, 0.769202, 0.996191, 0.138318, + -0.33291, 0.562523, 0.279509, 0.004341, 0.892153, -0.057841, 0.351504, -0.297822, -0.181427, + -0.043045, 0.067285, 0.43732, 0.754347, 0.613034, -0.420605, 0.896335, 0.67546, 0.360491, + 0.109134, -0.565942, -0.596844, 0.005013, -0.743821, 0.350806, -0.907738, -0.891713, -0.449159, + 0.575389, 0.782999, -0.840526, -0.631532, 0.221845, -0.18226, -0.819505, 0.277799, -0.832374, + 0.062585, 0.407642, 0.922404, -0.853437, 0.746697, 0.13915, 0.870656, 0.984346, -0.249405, + -0.155745, -0.241739, 0.786489, -0.433041, 0.660407, 0.411282, 0.940264, 0.708304, 0.811569, + -0.821955, -0.526344, -0.709507, 0.496537, 0.203433, 0.381165, 0.375329, 0.042326, 0.381614, + -0.542255, 0.649693, -0.860922, -0.918858, 0.339613, 0.938819, -0.365839, 0.941976, -0.354971, + -0.75991, -0.155478, 0.553045, -0.520509, 0.937784, -0.447202, -0.442635, -0.416478, -0.761643, + 0.932828, -0.564976, -0.449913, -0.302999, 0.841797, 0.466513, 0.368189, -0.262962, 0.505376, + 0.181403, 0.796744, 0.221992, 0.733963, 0.690124, 0.174751, -0.958269, 0.20347, -0.754502, + 0.17181, -0.111987, 0.795666, -0.717793, -0.83601, 0.445707, 0.660263, -0.217644, 0.27066, + 0.802557, 0.099473, -0.2795, 0.578205, 0.90126, -0.169742, 0.678504, 0.083434, -0.209387, + -0.087275, -0.970777, 0.479725, -0.544295, -0.851661, -0.138642, -0.407433, -0.636493, -0.210528, + -0.10554, 0.303932, 0.137059, -0.13361, 0.22013, -0.647035, 0.846155, 0.489666, 0.632626, + -0.891943, 0.682579, 0.176763, -0.966366, 0.949531, -0.020927, 0.191783, 0.827302, 0.644882, + 0.889675, -0.933364, 0.988636, 0.243583, 0.012987, -0.785719, -0.537755, 0.970821, 0.743515, + 0.779513, -0.084038, -0.557027, 0.233494, -0.476504, -0.650943, 0.322966, 0.784358, -0.767144, + -0.883922, 0.13511, -0.352336, -0.534737, -0.20468, -0.05783, -0.277337, 0.740541, 0.554139, + 0.314526, -0.320672, -0.089135, 0.64832, 0.082914, -0.96473, 0.095017, 0.523632, -0.256504, + -0.186682, -0.135665, 0.614538, 0.825731, -0.784765, 0.658853, 0.409494, 0.350062, -0.568054, + -0.570902, 0.992967, 0.255903, -0.222554, -0.202543, 0.669512, -0.249108, 0.675625, -0.283525, + 0.236374, 0.263435, -0.512233, 0.024718, 0.199735, -0.978004, -0.196941, 0.095207, 0.823635, + 0.221443, -0.84996, -0.293095, 0.990072, -0.130131, 0.754413, 0.114733, 0.656173, -0.429736, + 0.982393, 0.211047, -0.204731, 0.768906, 0.493136, -0.672171, -0.071903, 0.716727, 0.24914, + -0.31626, -0.651077, -0.70026, 0.55588, 0.452498, -0.886131, -0.205327, 0.253092, -0.884766, + 0.861798, -0.106649, -0.406226, 0.111347, 0.36127, 0.222215, 0.948334, 0.562947, -0.096855, + 0.17023, 0.242318, -0.396622, -0.856885, -0.106373, -0.380901, -0.944632, 0.356629, -0.419579, + 0.957412, 0.357641, 0.425863, 0.291464, 0.39, 0.640285, 0.734626, -0.054644, -0.283486, + 0.270934, -0.451205, -0.050812, 0.29198, 0.446831, -0.967273, 0.387216, -0.38718, -0.704359, + -0.425873, -0.021575, 0.492471, -0.890629, 0.271628, 0.900985, -0.564972, 0.238957, -0.402018, + 0.245853, 0.433016, -0.616011, 0.239293, 0.988395, 0.070163, -0.709828, 0.012508, 0.220527, + 0.307916, -0.07209, -0.214312, -0.497212, 0.646199, -0.5649, -0.340376, 0.6635, -0.469941, + -0.130522, -0.398699, -0.886379, 0.482054, -0.444037, -0.461465, -0.22035, 0.273985, 0.878043, + 0.884515, 0.01366, -0.857666, 0.073791, 0.023107, 0.844542, -0.206692, -0.939626, 0.363301, + -0.219311, 0.348932, 0.300891, 0.356459, 0.553152, -0.701054, -0.814533, 0.936268, 0.914023, + -0.394751, 0.957489, 0.197416, -0.262765, -0.541584, -0.532165, 0.802393, -0.614662, -0.410177, + 0.995498, -0.488509, 0.983927, 0.446597, 0.496102, 0.227729, -0.179013, 0.445846, 0.297854, + -0.545573, -0.823799, -0.812735, -0.121026, 0.286, -0.633832, 0.184237, 0.576055, 0.58816, + -0.373677, 0.229236, -0.886641, 0.719434, -0.799198, 0.055503, -0.314145, -0.829139, -0.866799, + -0.642419, -0.725967, 0.763129, -0.153608, -0.667632, 0.003607, -0.451431, -0.144807, 0.859999, + -0.882548, -0.868719, 0.245076, 0.697009, -0.950072, 0.314172, 0.990757, -0.160659, -0.590065, + 0.490587, 0.564838, -0.103814, -0.815591, 0.038782, -0.647599, -0.853704, 0.624154, 0.6868, + 0.401479, -0.815963, 0.848063, 0.732594, 0.859443, -0.066468, -0.185201, -0.896853, 0.737937, + -0.052436, -0.999891, 0.977762, -0.129295, 0.601448, -0.147605, -0.157318, 0.879662, 0.830278, + -0.466724, 0.031244, 0.679247, 0.04806, -0.180208, 0.893423, 0.890467, -0.268055, 0.757131, + -0.099043, 0.029715, 0.802172, -0.077585, -0.099474, -0.217297, -0.834916, 0.774299, -0.784541, + -0.767554, 0.135347, -0.105312, 0.039199, 0.078677, 0.991115, -0.970928, -0.601242, 0.184467, + -0.890237, -0.790028, 0.766246, 0.387208, -0.310187, 0.263893, 0.174901, -0.09852, 0.830411, + -0.000267, 0.709446, -0.77839, -0.406308, 0.169137, 0.534173, -0.406878, 0.721425, -0.829615, + -0.381452, 0.751788, -0.747192, -0.937863, -0.252406, -0.833135, 0.297474, -0.175817, -0.294357, + 0.553019, 0.05818, -0.901559, -0.947615, 0.628042, 0.431251, 0.549527, -0.849303, -0.193243, + 0.854375, 0.807731, 0.679838, 0.928336, -0.313364, -0.774152, 0.562155, 0.637599, -0.301992, + -0.093353, -0.048157, -0.887076, -0.414196, -0.316873, 0.373316, -0.291774, 0.451322, 0.900446, + -0.213167, -0.243748, -0.628099, -0.076318, -0.91513, 0.675928, 0.862621, 0.266707, 0.945766, + 0.503706, 0.662875, 0.923629, -0.687534, -0.078454, 0.375685, -0.267668, -0.70936, -0.313993, + -0.49572, -0.350734, -0.761799, -0.301648, 0.572985, -0.438906, 0.425966, -0.822376, -0.630136, + 0.103646, 0.926069, -0.923516, 0.435276, 0.174896, -0.817106, -0.726068, 0.503827, -0.499669, + 0.700791, -0.69154, 0.755438, -0.510161, 0.405087, 0.299204, -0.784683, -0.52444, -0.242234, + 0.003173, 0.493871, -0.411063, 0.14713, -0.542452, -0.475335, 0.652575, -0.273883, -0.876235, + 0.042005, -0.142555, 0.284287, -0.510121, 0.043071, -0.493341, -0.604363, 0.228593, 0.309087, + 0.185001, 0.923712, 0.092701, 0.085037, -0.130736, -0.966801, 0.391117, 0.779553, 0.099094, + -0.779897, 0.897889, 0.224025, 0.723307, 0.434318, 0.157735, -0.294632, 0.205302, 0.321762, + -0.060624, -0.638738, -0.525541, -0.91655, -0.39111, -0.16121, 0.817872, -0.534917, -0.983973, + 0.548107, 0.862205, -0.779975, -0.009987, 0.317929, 0.644685, -0.179515, 0.455459, 0.768339, + 0.585193, 0.487225, 0.608144, -0.896105, 0.212623, 0.771171, -0.792318, -0.87657, -0.825798, + 0.307036, 0.928066, -0.090702, -0.397525, 0.05918, -0.824533, 0.173108, -0.657449, -0.673074, + -0.729465, -0.283111, 0.651705, 0.203111, 0.695933, -0.964762, -0.81439, 0.612715, 0.787713, + 0.849233, -0.928724, 0.447923, -0.986071, -0.295744, 0.020258, 0.467628, -0.305482, -0.864665, + -0.971739, -0.401022, 0.762089, 0.433885, 0.494634, -0.808759, -0.898534, 0.925258, 0.653193, + -0.431021, 0.084085, 0.720423, 0.90017, -0.804634, -0.495627, 0.388601, 0.764042, 0.173975, + -0.061715, 0.038735, 0.910003, -0.785129, 0.455572, -0.71594, 0.095079, -0.94465, 0.647679, + -0.557167, 0.066428, -0.627156, 0.091579, -0.486962, -0.511417, -0.433363, 0.620466, 0.13975, + -0.25757, 0.851712, 0.195969, -0.323614, -0.045218, -0.390992, -0.396706, -0.312276, 0.238313, + -0.890431, -0.778772, 0.67128, -0.239503, -0.036922, 0.349252, -0.447293, 0.70054, -0.22636, + 0.060935, -0.693546, 0.406639, -0.710765, 0.608168, -0.141575, -0.365228, -0.334751, 0.381523, + 0.979419, 0.271683, 0.612943, -0.842927, -0.235996, -0.566321, -0.717725, 0.171703, -0.312623, + 0.226369, -0.39762, -0.911836, -0.51464, -0.961205, 0.216575, -0.750732, 0.768701, 0.432804, + -0.561085, -0.285781, -0.89595, 0.720428, -0.447182, -0.210074, 0.073874, 0.48545, -0.298123, + 0.490276, 0.514313, -0.123558, 0.663047, -0.876917, -0.544515, -0.078476, -0.101817, 0.35477, + 0.722259, -0.722082, 0.524749, 0.239939, 0.830502, 0.533737, -0.217359, -0.1418, -0.665465, + 0.220647, 0.782547, 0.344106, 0.808546, 0.399405, 0.192416, -0.216493, -0.863928, -0.18746, + 0.848868, 0.869496, -0.338322, 0.820786, 0.824327, -0.853278, -0.986418, -0.498059, -0.101189, + 0.387368, 0.418699, 0.63351, -0.489733, 0.668856, 0.227987, -0.709922, -0.739043, 0.355506, + 0.931087, -0.663927, 0.118491, -0.946684, 0.651356, 0.294827, -0.254702, 0.528339, 0.414729, + 0.674034, 0.100008, 0.009871, 0.479859, 0.337248, -0.84757, -0.38385, 0.618273, -0.509365, + 0.773541, -0.191893, 0.957836, -0.587831, 0.707241, -0.441622, 0.707164, 0.552164, 0.402681, + 0.292623, 0.597407, -0.39861, -0.322431, 0.271681, -0.709283, 0.059427, 0.417348, -0.908514, + -0.05388, 0.056658, -0.769874, 0.785056, 0.045251, -0.940997, -0.346867, 0.18122, 0.724421, + -0.322952, 0.874716, -0.422985, -0.806103, -0.273217, -0.652551, 0.332353, 0.660361, -0.844073, + -0.732056, 0.555791, -0.214512, 0.911844, 0.907848, -0.663611, 0.589021, -0.964382, 0.402559, + -0.57054, -0.00568, 0.971097, 0.135614, -0.537477, 0.459586, -0.160781, 0.897469, -0.747845, + -0.170021, -0.840178, -0.567223, -0.285388, -0.659763, -0.68127, -0.248085, -0.571184, -0.605941, + 0.054028, -0.751017, 0.57603, 0.658968, 0.920101, 0.309864, -0.094422, -0.174717, -0.475378, + 0.680155, 0.553761, 0.722094, -0.194146, -0.690872, 0.333537, 0.876577, -0.158618, 0.807606, + 0.706113, 0.351585, -0.270448, -0.335351, -0.175086, -0.075046, -0.20582, -0.974094, -0.685869, + -0.317122, 0.768412, 0.413183, -0.910749, -0.715929, -0.586738, 0.948372, 0.247571, 0.801005, + -0.807513, 0.934162, 0.81372, 0.069368, -0.467651, 0.391985, -0.537332, -0.414554, 0.375125, + -0.768074, 0.243352, -0.053331, 0.009312, 0.04582, 0.241118, -0.597709, 0.411585, -0.938084, + 0.420675, -0.812587, 0.962361, 0.240485, 0.277009, 0.265662, 0.194282, -0.382412, -0.973028, + 0.598035, 0.605618, -0.182954, 0.050132, -0.064272, -0.22582, 0.682273, -0.59787, -0.934406, + -0.165316, -0.583026, -0.66044, -0.287354, -0.038479, 0.656845, 0.562734, 0.81399, 0.748388, + 0.300755, -0.006519, -0.031929, -0.758978, 0.09533, -0.233831, -0.275427, 0.84062, 0.458847, + 0.627431, 0.645933, -0.578992, 0.28859, -0.125445, 0.348986, 0.587912, -0.251029, 0.7504, + 0.041804, -0.190263, 0.655107, 0.774747, -0.282163, 0.575134, -0.222805, -0.030571, -0.710786, + -0.426404, 0.131652, -0.230638, -0.100222, 0.240365, -0.397305, 0.528429, 0.980461, 0.796796, + 0.88025, -0.277441, 0.032204, -0.335431, -0.487182, -0.223976, 0.608634, -0.935147, -0.529974, + 0.513563, 0.521517, -0.255718, -0.226996, -0.139148, 0.724082, 0.7226, -0.466885, 0.165731, + -0.967998, -0.660161, -0.091511, -0.334421, -0.471822, 0.821794, 0.497737, 0.077042, -0.294423, + 0.014852, 0.820578, -0.186724, 0.076187, 0.309722, 0.592235, 0.612496, -0.468182, 0.393051, + 0.159103, 0.144061, -0.861699, 0.925394, 0.445974, 0.117262, 0.384242, -0.248357, -0.717965, + -0.261475, -0.895084, 0.864851, 0.428013, 0.26242, -0.676375, -0.651368, 0.570342, -0.810198, + 0.193961, 0.748163, -0.871912, 0.705935, -0.824369, -0.194219, 0.690536, 0.741561, 0.908188, + 0.827401, -0.964525, 0.167585, -0.893664, 0.569257, 0.296057, 0.770564, 0.234612, 0.685558, + -0.043882, -0.803144, -0.657719, -0.014072, -0.898107, 0.849225, -0.600385, -0.758766, 0.97387, + -0.64117, -0.446382, 0.016862, 0.318889, -0.358499, 0.535276, -0.640174, 0.194152, -0.983863, + -0.897881, 0.354027, 0.480713, -0.446549, 0.35098, -0.261514, 0.558631, 0.109196, -0.220941, + 0.189994, -0.949069, 0.560162, 0.924297, 0.852929, -0.576102, -0.402642, -0.438143, 0.152039, + -0.700264, -0.750934, -0.388955, 0.875342, 0.263431, -0.905547, -0.466557, -0.792224, -0.128317, + 0.031728, -0.667775, -0.779944, -0.19716, 0.058343, 0.7351, 0.362907, -0.582345, -0.922989, + 0.194998, -0.143468, 0.58641, -0.691822, -0.04853, -0.729419, -0.501499, -0.590005, -0.208257, + -0.083779, 0.929624, 0.886311, 0.77896, 0.239078, 0.015814, 0.952006, -0.690238, -0.923721, + -0.540353, 0.749056, 0.97907, -0.410938, -0.647204, -0.888382, 0.463356, -0.402741, 0.747459, + -0.353579, 0.914878, 0.644704, 0.65874, 0.5319, -0.803564, 0.13721, -0.596599, -0.3073, + 0.619382, -0.508154, 0.630616, 0.051597, -0.474161, -0.485624, -0.972105, 0.343016, 0.038402, + 0.890337, 0.36043, 0.310567, -0.053122, 0.467344, -0.148367, 0.40093, -0.454742, 0.632344, + 0.274213, 0.528261, 0.067533, 0.474618, 0.903739, 0.153887, 0.695288, -0.915589, -0.079129, + -0.869109, 0.071501, 0.187793, 0.282378, -0.42566, 0.468098, -0.420769, -0.254394, 0.749962, + -0.920293, 0.202949, -0.860376, 0.429736, -0.835057, -0.938732, -0.278561, 0.79978, 0.50525, + 0.642696, -0.232969, 0.883347, -0.45597, -0.07, -0.918282, 0.050383, 0.229265, -0.959793, + 0.84067, 0.18814, 0.953676, -0.430487, 0.046632, -0.320937, 0.845505, -0.559016, 0.575545, + -0.702223, 0.751467, -0.931084, -0.497134, -0.451327, -0.169802, -0.012401, 0.32316, 0.896778, + 0.589098, -0.482191, 0.939648, -0.147259, -0.557629, 0.373794, -0.174265, 0.954351, 0.111554, + 0.661853, 0.257484, -0.653519, 0.210466, -0.578696, -0.267779, -0.322138, -0.792351, 0.387005, + 0.707615, -0.985454, 0.544328, -0.789558, -0.978661, 0.344864, -0.022169, -0.613048, 0.895368, + 0.081598, -0.62723, 0.45874, 0.070778, -0.16006, -0.711892, -0.072546, 0.5787, -0.488539, + 0.460594, -0.982742, -0.378367, -0.314595, -0.879727, 0.357403, -0.782931, 0.578758, 0.204746, + 0.013275, -0.533113, -0.340316, 0.24277, 0.961397, -0.478984, -0.680401, -0.44358, -0.718326, + -0.131648, -0.712776, 0.725068, 0.709786, -0.636293, 0.88194, 0.207319, -0.636218, 0.332151, + -0.907578, -0.531823, -0.721808, -0.556156, -0.216458, 0.227716, 0.190823, -0.977461, -0.95717, + -0.15171, 0.853499, 0.370449, 0.892628, -0.473809, 0.278759, -0.870585, 0.520431, -0.024638, + -0.075849, -0.539985, -0.873738, -0.368179, -0.094491, -0.531052, 0.417968, -0.173525, 0.098462, + -0.931274, 0.281627, -0.488904, -0.755615, -0.401333, -0.909472, -0.763288, 0.745577, 0.818532, + -0.694596, 0.216869, -0.515082, 0.935757, 0.610498, 0.397608, -0.815307, -0.491869, -0.21016, + -0.894059, -0.584419, 0.263283, -0.814074, 0.266069, -0.022853, -0.08235, -0.292103, -0.537429, + -0.934944, -0.680488, 0.755228, -0.074122, 0.973749, 0.05272, -0.11787, 0.599696, -0.941468, + -0.619819, 0.573643, -0.260801, 0.791161, -0.091314, 0.713153, 0.048567, 0.10385, -0.844634, + -0.345587, 0.05014, 0.456906, 0.194031, -0.217116, 0.006751, 0.859628, 0.667063, 0.341219, + -0.720676, -0.336241, 0.638441, 0.900176, -0.472751, 0.424905, -0.234159, 0.634362, -0.150259, + -0.794907, -0.989847, -0.037467, 0.294805, -0.589494, 0.786774, 0.47433, 0.603031, 0.460727, + -0.96449, -0.183353, 0.519437, 0.495025, -0.909868, -0.566836, 0.728885, -0.827933, 0.757898, + -0.192935, 0.073363, 0.48773, 0.269202, -0.641041, 0.325728, -0.858567, -0.504649, -0.175656, + -0.200034, 0.727947, -0.545885, 0.839117, 0.465786, 0.32541, 0.71217, -0.682929, -0.861632, + 0.037302, 0.492968, 0.504786, 0.041585, 0.956406, 0.355284, 0.432093, -0.484688, 0.305038, + -0.374321, -0.807831, -0.650534, -0.603745, -0.150782, -0.418829, 0.918707, 0.413451, -0.831382, + 0.042086, 0.862333, -0.040315, 0.162295, 0.273007, -0.329957, -0.647439, -0.374776, -0.260908, + 0.786896, -0.812875, 0.134443, -0.382266, -0.106394, -0.088839, -0.387903, 0.230748, 0.236337, + -0.574257, 0.614419, 0.902085, -0.414188, 0.203826, -0.370285, 0.685481, -0.077538, -0.891614, + 0.2327, 0.828684, 0.003906, -0.256095, -0.027435, 0.566246, 0.857649, -0.250261, 0.532705, + 0.557197, 0.89343, 0.716415, -0.825926, -0.826155, -0.829865, 0.628362, -0.507811, 0.552376, + -0.148896, -0.412054, 0.752486, -0.193142, -0.539678, -0.153258, -0.636009, -0.96288, -0.175207, + -0.056301, -0.569974, 0.886305, -0.223408, -0.254008, 0.792489, 0.111279, -0.235241, 0.229937, + -0.903517, 0.983125, 0.263787, 0.351693, -0.737551, 0.764548, -0.821885, -0.347489, -0.641201, + -0.505032, 0.213402, -0.991713, -0.978977, 0.228445, 0.32958, 0.014334, -0.379911, -0.27973, + -0.13811, -0.202756, -0.618645, 0.752705, 0.202396, -0.66903, -0.203249, -0.723599, -0.584272, + 0.759555, 0.305276, 0.438087, -0.129741, -0.249527, 0.12926, -0.710423, -0.995024, 0.70302, + 0.020379, 0.606558, 0.752423, 0.437381, -0.341792, -0.183378, -0.05219, 0.059818, 0.038896, + -0.78181, -0.549706, 0.728743, 0.032009, -0.453388, 0.676089, -0.296793, -0.406747, 0.698896, + -0.788952, -0.478904, 0.756802, -0.09778, -0.412367, 0.829777, 0.152169, -0.939561, -0.739474, + -0.2535, -0.054879, -0.752912, -0.37683, 0.338047, -0.932571, -0.937128, 0.259989, 0.190857, + -0.965711, -0.93044, 0.830886, 0.997995, -0.437053, 0.996127, 0.690665, 0.888893, -0.430302, + -0.244715, 0.589573, 0.37092, -0.798121, 0.598466, 0.975171, -0.63506, -0.928451, -0.952568, + -0.632673, -0.440371, -0.565129, -0.875836, 0.624557, 0.978047, 0.837211, 0.6262, 0.443992, + -0.394238, -0.806967, -0.590626, 0.45278, 0.218784, 0.127663, -0.606911, -0.470476, -0.421737, + -0.126938, -0.188698, 0.10575, -0.333013, -0.11331, -0.636006, 0.494158, -0.831053, 0.182531, + -0.951366, -0.570283, 0.966907, -0.187121, -0.183705, 0.515884, -0.862685, -0.230363, -0.032186, + 0.112549, -0.165611, -0.705396, -0.916521, 0.010779, 0.835069, -0.448902, 0.126429, 0.635647, + -0.977057, 0.884929, 0.844601, -0.437462, 0.871649, 0.683101, 0.83071, 0.86604, 0.229333, + 0.549484, -0.535449, 0.167941, 0.958954, -0.344592, 0.235659, -0.510938, 0.369622, 0.325597, + 0.75498, 0.005513, 0.477456, 0.60626, 0.161034, -0.943358, 0.709008, -0.640323, 0.463229, + -0.748186, 0.291281, -0.187141, -0.895533, 0.456621, -0.232681, -0.4161, -0.310708, 0.679935, + 0.587595, 0.27242, 0.41843, 0.513644, 0.413708, 0.851486, 0.602143, -0.514596, -0.152308, + 0.466405, 0.79562, -0.830954, -0.495973, -0.495929, 0.944502, 0.981511, -0.446985, -0.309032, + 0.017729, 0.058557, -0.285006, -0.729551, -0.532205, -0.08344, 0.108244, 0.038373, -0.918301, + 0.885442, -0.58248, -0.244854, 0.927631, 0.006526, -0.799367, 0.576088, -0.376219, 0.969411, + -0.290153, -0.747489, -0.743916, 0.005395, -0.161071, 0.778545, 0.059875, -0.601108, 0.11202, + -0.739652, 0.149297, 0.264167, -0.942802, -0.684044, -0.502268, -0.349656, -0.181682, 0.41936, + -0.789308, 0.5172, -0.693191, 0.878132, -0.570733, -0.765005, 0.716698, 0.813388, -0.338804, + 0.876771, 0.112622, 0.363178, -0.058675, -0.273179, -0.361713, -0.857389, 0.729846, 0.529771, + 0.908521, -0.983054, 0.988019, 0.666948, 0.27267, -0.429213, 0.705647, 0.64125, 0.860633, + -0.825644, 0.151995, 0.360106, -0.983711, 0.936039, 0.624227, -0.803051, -0.858518, 0.040796, + 0.802078, 0.290384, 0.140617, -0.064777, -0.9936, 0.601893, 0.637829, -0.703136, -0.184214, + 0.972187, -0.383283, -0.686582, 0.572056, 0.461937, 0.861407, -0.430607, 0.243146, 0.240737, + 0.813646, 0.560386, 0.234978, -0.140693, -0.178388, -0.539661, 0.420622, 0.852228, -0.508334, + -0.683354, 0.744592, 0.134362, -0.471388, 0.64757, -0.814779, -0.491335, -0.32134, -0.031844, + 0.213172, 0.478234, -0.349177, -0.096951, -0.521544, -0.657527, 0.218187, 0.737386, 0.862952, + -0.780459, 0.473211, -0.308521, -0.049835, -0.041735, 0.863742, 0.837935, -0.809713, 0.21687, + 0.584808, 0.268295, -0.023169, -0.472067, -0.705561, -0.984272, -0.01938, -0.38583, 0.236004, + -0.422758, 0.830623, -0.705557, 0.887342, -0.396493, 0.154564, -0.366704, 0.421482, 0.789174, + 0.935045, -0.692597, 0.686488, 0.661412, -0.820602, 0.404199, 0.193332, 0.548867, 0.876159, + 0.022876, -0.370167, -0.450712, 0.129143, -0.146739, -0.716209, 0.027892, 0.572597, 0.033153, + 0.628671, -0.377778, 0.784256, 0.238245, -0.33607, 0.482157, 0.491772, -0.428763, -0.181895, + 0.516111, -0.88128, 0.381022, 0.219232, -0.681653, -0.123285, 0.292689, 0.695619, 0.731274, + -0.645078, -0.650202, 0.472893, 0.986595, 0.853988, 0.393806, 0.948172, -0.459093, -0.028305, + -0.815695, -0.613685, -0.676281, -0.907125, 0.282143, 0.258302, 0.402591, 0.662733, -0.796518, + -0.288616, 0.786881, -0.884987, 0.702839, 0.307946, -0.811833, 0.215742, 0.032129, 0.19314, + -0.286913, 0.45267, 0.777719, 0.69698, -0.095977, -0.919893, 0.979003, 0.278292, 0.887585, + 0.360225, 0.016439, 0.538106, 0.559648, -0.064711, 0.153098, -0.040597, 0.685191, 0.455257, + -0.166742, 0.931898, 0.958243, 0.81236, 0.179179, 0.061162, -0.522192, 0.728997, -0.718507, + -0.861915, 0.301732, -0.935445, 0.318815, -0.481615, -0.01257, -0.385267, 0.808629, -0.743277, + 0.183704, 0.014176, -0.951536, 0.773246, 0.197779, -0.802401, -0.992488, 0.44219, 0.820894, + -0.227881, -0.295414, -0.852731, 0.675287, -0.376738, -0.459638, 0.380498, 0.874561, 0.462831, + 0.288426, 0.885082, 0.042531, 0.154696, -0.073067, -0.626602, 0.183706, -0.519304, 0.578702, + -0.689775, -0.817393, -0.193211, 0.742867, -0.759784, -0.318698, -0.076621, -0.437325, 0.472418, + 0.873519, 0.54125, -0.210893, -0.785125, -0.825652, -0.239459, -0.315026, -0.758384, 0.247302, + -0.37892, 0.289996, -0.531024, -0.090105, -0.300948, 0.614248, -0.912653, -0.394334, 0.213551, + -0.281733, -0.017114, 0.675853, 0.143152, 0.123275, 0.292146, -0.538014, -0.399369, 0.479018, + 0.144965, 0.652335, -0.127672, 0.939406, 0.597199, -0.280143, -0.511051, 0.201941, -0.834228, + -0.457964, 0.30635, 0.08722, 0.452556, -0.418283, 0.84155, -0.549901, -0.5124, 0.669039, + -0.192934, 0.286075, -0.177645, -0.707232, -0.040002, 0.453677, 0.673938, 0.762824, -0.035214, + 0.724299, 0.282085, 0.037007, 0.018892, -0.095419, 0.285588, -0.051663, 0.643108}; + const std::vector v_data{ + -0.152311, -0.555305, 0.290613, -0.560336, 0.621021, 0.81671, 0.160533, -0.200602, -0.045157, + 0.468336, -0.763917, -0.267674, -0.609262, -0.904498, -0.715503, -0.642518, 0.761419, 0.611228, + -0.678887, -0.789155, 0.895537, 0.237365, 0.460499, 0.156166, -0.373647, -0.540257, 0.538022, + -0.987853, -0.83212, 0.301981, -0.262243, 0.191282, 0.533345, -0.574668, -0.562911, -0.61506, + -0.874954, -0.06769, 0.849166, -0.061121, 0.548428, -0.497319, 0.099219, -0.750896, -0.066101, + 0.219449, -0.427866, 0.918113, 0.282337, 0.500183, 0.995226, 0.423905, -0.078562, 0.477599, + 0.985438, -0.962738, -0.188538, 0.485604, -0.242375, -0.813578, -0.580512, -0.519753, 0.414585, + 0.636659, -0.113801, -0.81825, 0.142084, 0.279576, -0.377207, 0.344817, -0.408494, 0.336644, + 0.715488, 0.498722, -0.094504, 0.960494, -0.087934, -0.891949, 0.71881, 0.929859, 0.456362, + 0.876385, 0.540106, 0.408172, 0.579002, -0.768185, -0.011932, -0.427196, 0.275087, -0.884334, + 0.059118, 0.391225, -0.371587, -0.40333, -0.648555, 0.275327, -0.839401, -0.205258, 0.055622, + 0.285311, -0.858496, 0.20179, -0.392321, -0.116423, -0.72971, -0.785427, 0.136416, 0.16981, + 0.859457, 0.940948, 0.730645, 0.387481, 0.66507, 0.427047, -0.931588, 0.727763, 0.121409, + -0.249379, -0.297396, 0.797654, 0.697823, -0.09289, -0.373817, -0.537641, 0.576487, -0.606443, + -0.662952, -0.600111, 0.290355, 0.766571, 0.199872, 0.372745, -0.807649, -0.726573, -0.58569, + -0.639899, -0.446384, -0.606261, -0.327196, -0.619038, 0.29787, 0.025807, 0.050889, 0.423979, + -0.900342, -0.391501, -0.033967, -0.934384, 0.531391, -0.750888, 0.675987, 0.989638, 0.206087, + -0.486725, 0.705771, -0.655582, 0.047347, 0.626974, 0.937491, 0.073275, -0.075897, -0.086776, + -0.969523, 0.177698, -0.793734, 0.089894, -0.237621, 0.635886, -0.400402, 0.710737, -0.23829, + -0.193409, -0.910355, 0.869081, 0.086495, -0.901261, 0.056238, 0.409569, -0.211321, 0.816052, + 0.489086, -0.128179, 0.999758, 0.705254, -0.12266, -0.08638, 0.306901, -0.34846, 0.615603, + -0.962098, -0.535745, 0.458384, -0.959771, -0.33133, -0.531721, 0.541729, 0.050279, -0.710246, + 0.805835, -0.456028, -0.110325, 0.337424, -0.666795, -0.092234, -0.336883, -0.237191, -0.362742, + 0.640093, -0.491406, -0.674873, 0.431971, 0.323998, 0.010442, 0.082404, 0.981502, -0.334542, + -0.892417, -0.984956, 0.259251, 0.389754, 0.014131, -0.831062, -0.78114, -0.681382, 0.643781, + 0.195969, -0.556967, -0.945708, 0.574504, 0.010746, 0.994013, -0.819332, -0.811096, 0.172532, + 0.67024, 0.660557, 0.994211, 0.636638, 0.446673, -0.61486, 0.985459, -0.442565, 0.643065, + 0.411391, -0.592733, -0.089335, -0.083267, 0.755087, 0.765208, 0.214409, -0.568293, 0.284806, + 0.819316, -0.529905, 0.801431, 0.225975, 0.55316, 0.343019, 0.631324, -0.85079, 0.413003, + -0.867189, -0.068238, 0.782021, -0.820067, -0.760642, -0.438281, 0.037624, -0.138255, -0.78494, + 0.130298, -0.251207, -0.467044, 0.010915, 0.3396, 0.160432, -0.662905, 0.677881, 0.188673, + -0.409461, 0.865592, 0.201582, 0.520015, 0.707068, -0.017821, 0.824138, -0.004461, 0.80001, + 0.121295, 0.460142, 0.503584, -0.554221, 0.873891, 0.030323, 0.367537, -0.737821, -0.373271, + 0.651871, -0.631106, 0.138543, 0.878103, -0.949826, -0.011045, 0.162498, 0.655412, -0.335994, + -0.977316, -0.618924, 0.300127, -0.736413, -0.856026, -0.025231, 0.262382, -0.627064, -0.388407, + 0.547004, -0.676129, -0.822552, -0.302233, 0.803483, -0.293185, -0.67786, -0.709417, -0.23502, + 0.710262, 0.375862, -0.333887, -0.867524, -0.606815, 0.21118, 0.840859, 0.515002, -0.127822, + 0.530457, 0.072016, 0.137423, 0.466238, -0.246158, 0.291332, 0.089162, 0.305086, -0.213905, + 0.646426, -0.900861, 0.664199, -0.825094, -0.672808, -0.614889, -0.09655, -0.099128, -0.972413, + 0.530614, 0.246016, 0.977072, -0.713646, -0.804129, 0.240293, 0.77038, 0.667616, 0.405653, + 0.168181, 0.498465, -0.397986, -0.997419, -0.832515, -0.639529, 0.223303, 0.895328, 0.645353, + -0.652708, 0.278853, 0.884588, 0.024587, -0.186315, -0.54172, -0.07267, 0.752508, -0.282359, + -0.151017, 0.485194, -0.383344, -0.461984, 0.168883, 0.724032, 0.106669, -0.040274, -0.794381, + 0.597133, 0.045635, -0.440194, -0.8798, -0.474453, -0.702772, 0.204776, 0.732772, -0.197672, + 0.608673, -0.21251, -0.475931, -0.915157, -0.670117, 0.750683, 0.673535, 0.964859, -0.100895, + 0.338033, -0.122732, 0.989781, -0.797385, -0.271531, -0.958822, 0.098754, -0.778528, -0.701337, + 0.231264, 0.994937, 0.833494, 0.687062, -0.247506, -0.030192, -0.898981, 0.672219, 0.273221, + 0.848807, -0.972169, -0.243871, -0.644033, -0.765286, -0.594516, 0.315928, 0.664783, 0.451596, + -0.342522, 0.441117, 0.984942, 0.048903, -0.359856, -0.789632, 0.706899, -0.228534, -0.784559, + 0.578289, 0.19936, -0.403616, -0.984317, 0.125445, -0.296163, -0.173407, -0.333591, 0.822497, + 0.530799, 0.792798, 0.377551, 0.285381, 0.986913, -0.00355, 0.574885, 0.406627, -0.957048, + 0.679357, -0.098064, -0.675241, 0.673909, -0.809921, 0.468878, -0.82258, -0.286825, -0.938191, + 0.715165, 0.247234, 0.815995, 0.305205, -0.495837, 0.150367, 0.676731, -0.77313, -0.667104, + -0.254359, -0.624743, -0.181666, 0.94697, 0.556051, -0.81075, -0.539594, 0.802502, -0.076692, + -0.421068, 0.195506, -0.158766, 0.336917, 0.018422, 0.568596, 0.550479, 0.351081, 0.309752, + -0.256801, -0.925521, -0.096274, -0.759492, -0.799927, -0.88055, -0.249893, -0.739512, 0.169076, + 0.431841, 0.594093, -0.96519, 0.8414, 0.297545, 0.811507, 0.484539, 0.181789, -0.191938, + 0.836611, -0.650862, 0.780022, 0.872221, 0.163313, -0.428849, -0.80782, -0.054965, 0.849735, + 0.046226, -0.251709, -0.497318, 0.074725, 0.55303, 0.194815, 0.172424, -0.692002, 0.483945, + 0.103939, -0.982869, 0.831774, 0.635952, 0.007839, -0.197523, 0.898181, 0.992762, 0.162967, + 0.928285, 0.422751, 0.477232, -0.059226, -0.073044, 0.639531, -0.438001, -0.714298, 0.624378, + -0.240011, 0.706022, -0.166156, -0.609201, -0.01692, -0.115291, 0.229533, -0.7715, -0.846674, + 0.051713, 0.90259, -0.632127, -0.503044, 0.09544, 0.748883, 0.766363, -0.208804, -0.052425, + -0.787319, 0.976682, 0.607545, 0.25568, -0.971437, 0.565276, -0.563444, 0.041618, 0.479808, + -0.039827, -0.487748, 0.675454, 0.677791, 0.097414, -0.624939, -0.518044, -0.898296, -0.535216, + -0.893237, -0.088241, -0.710187, 0.569504, -0.809179, -0.689421, -0.616194, -0.262745, 0.391341, + 0.719702, 0.991829, -0.238496, 0.234772, 0.070406, 0.551523, 0.469927, 0.587965, 0.682099, + 0.832469, 0.051088, 0.700043, -0.5619, -0.210009, -0.27938, -0.299416, 0.057262, -0.940845, + -0.566772, -0.093742, 0.201109, 0.708519, -0.686602, 0.243988, 0.461488, -0.533574, 0.170058, + -0.524138, -0.026661, -0.549503, -0.279847, -0.395594, 0.865221, 0.241352, -0.97017, 0.126543, + 0.54532, -0.435482, -0.598014, -0.196351, -0.883302, -0.372062, 0.122839, -0.74607, -0.949814, + -0.594514, -0.730493, 0.029365, 0.361422, 0.630078, 0.999242, 0.522682, -0.45148, -0.132833, + -0.513532, 0.601032, 0.333398, 0.460933, -0.671854, 0.779564, -0.880372, 0.502041, -0.872304, + 0.76572, -0.592844, -0.778226, 0.500333, 0.886618, -0.072729, 0.418516, 0.914932, -0.812665, + 0.406618, 0.230178, -0.568988, 0.593837, 0.89076, 0.768965, -0.718559, 0.884239, 0.841148, + 0.380261, -0.137136, 0.769479, -0.648088, -0.607565, 0.54995, 0.667031, -0.100958, 0.919642, + 0.526588, 0.489128, 0.810724, 0.984481, 0.699384, 0.814857, 0.094255, 0.783737, 0.537379, + -0.491778, 0.558876, 0.069704, -0.345189, 0.750181, 0.261588, 0.77924, 0.215598, 0.298616, + 0.600454, -0.249334, 0.621441, -0.516895, -0.141662, 0.091739, 0.691218, 0.44071, 0.964839, + -0.53697, -0.079088, -0.083375, 0.814969, 0.944052, 0.252389, -0.808142, -0.725377, 0.183542, + -0.880922, -0.348806, -0.749812, 0.51285, -0.137245, -0.782938, 0.653436, -0.886596, -0.09776, + 0.962831, 0.501286, -0.86639, 0.107898, -0.148864, 0.4453, 0.923937, 0.85232, -0.095443, + 0.460727, -0.982041, 0.787829, 0.531424, -0.70339, -0.289225, -0.388776, -0.584677, 0.412051, + -0.29158, 0.415907, -0.303849, 0.776791, -0.393399, -0.173233, -0.310904, 0.04604, -0.368508, + -0.702383, -0.950327, 0.62202, 0.138754, -0.64282, 0.518134, 0.104636, -0.361102, -0.065525, + 0.109962, 0.71647, -0.919168, -0.776151, -0.806261, -0.785191, 0.006312, 0.555305, 0.261391, + 0.423692, 0.120313, -0.019058, -0.905926, 0.892601, 0.966454, -0.0057, 0.180663, 0.185143, + 0.989628, -0.001908, -0.164505, -0.544465, 0.258573, 0.461011, -0.844054, 0.342075, 0.249756, + 0.443568, 0.468805, -0.261814, 0.133904, -0.700663, 0.601939, -0.841365, -0.877305, -0.741599, + -0.557948, 0.041731, 0.656239, -0.131754, 0.718086, -0.163395, 0.84792, 0.690183, 0.631553, + 0.408249, -0.673559, 0.979946, -0.951731, -0.701004, -0.604303, -0.263889, 0.434326, 0.207075, + -0.860636, 0.965507, 0.938549, 0.493178, -0.979582, 0.558647, 0.285322, -0.123627, -0.837731, + 0.847217, -0.298939, -0.808867, 0.771835, 0.390262, 0.294386, 0.646319, 0.348368, -0.217646, + -0.17389, 0.826746, -0.032778, -0.835287, -0.691031, -0.754691, 0.095584, 0.731233, 0.598211, + 0.2645, 0.333281, -0.473662, 0.935983, 0.381394, -0.630288, -0.666193, -0.89588, -0.284503, + 0.731426, 0.058711, -0.473941, 0.278362, -0.69413, 0.298084, 0.68277, 0.486232, -0.30446, + -0.340242, 0.416841, 0.598755, -0.245052, -0.002266, -0.112784, -0.117526, -0.887411, -0.825089, + 0.857341, -0.481556, 0.73939, 0.620421, -0.152107, -0.483708, 0.033202, -0.173352, -0.5933, + 0.972015, -0.078992, -0.153743, -0.677489, 0.162644, 0.138591, 0.986121, -0.308792, 0.562403, + 0.048504, 0.530878, 0.017528, -0.172418, 0.391979, -0.445424, 0.605997, -0.837575, -0.716866, + 0.952727, -0.376829, -0.795131, -0.731021, 0.969698, -0.139856, -0.841477, -0.14415, -0.487474, + -0.670787, -0.489347, 0.757425, 0.403373, 0.584288, 0.082535, -0.418075, -0.408132, -0.671153, + -0.722477, -0.862202, 0.177659, 0.524729, 0.816037, -0.025395, -0.145713, -0.083122, 0.393999, + -0.158394, -0.351378, -0.275537, -0.976855, -0.770122, -0.428043, 0.096887, -0.628089, 0.382985, + -0.546914, 0.967507, -0.883758, 0.557599, -0.519214, -0.354574, -0.933739, -0.926793, -0.946378, + -0.019207, 0.921073, 0.458515, 0.626149, 0.223907, -0.38637, -0.389454, -0.297056, -0.934287, + 0.549675, -0.297257, -0.565662, 0.248108, 2.6e-05, 0.543839, -0.654876, 0.993423, -0.398062, + 0.377841, 0.91036, -0.057366, -0.878719, -0.96751, 0.983676, -0.936267, -0.370959, 0.682059, + -0.777805, 0.934532, 0.097115, 0.310829, 0.156916, 0.109959, 0.561229, -0.866472, 0.216169, + -0.452581, 0.946418, 0.827955, -0.392821, 0.556083, -0.170286, 0.527671, -0.282843, -0.585192, + 0.421902, 0.495137, 0.900426, 0.316917, -0.446238, 0.255487, 0.06019, 0.869951, 0.410266, + 0.852927, 0.074278, -0.758084, -0.64029, 0.902935, 0.895606, 0.301232, -0.713646, 0.730721, + 0.414824, -0.789045, 0.290723, 0.963837, -0.660487, 0.075997, 0.2857, -0.359925, 0.658226, + 0.88929, 0.973447, -0.895044, 0.05567, 0.816267, 0.85185, -0.257596, 0.662463, 0.746394, + -0.063254, 0.685853, 0.57492, -0.148752, -0.417746, -0.53036, -0.805734, -0.597695, 0.261069, + 0.356835, -0.286728, -0.0827, 0.692134, 0.14812, -0.693859, 0.847268, 0.603401, 0.115195, + 0.476591, -0.845293, 0.58649, 0.243332, -0.08845, -0.320808, 0.807627, 0.215449, -0.558617, + 0.449668, 0.176871, -0.350609, 0.706127, 0.995674, -0.044155, -0.41248, -0.53668, -0.521918, + 0.513087, 0.627212, -0.60603, 0.553892, 0.039845, -0.034846, -0.318043, -0.92115, -0.857723, + 0.733295, -0.163805, -0.043653, -0.603059, -0.182603, -0.390104, 0.090001, -0.954543, 0.09698, + -0.885137, -0.710791, -0.021349, -0.106515, -0.281095, 0.581536, 0.072211, 0.207259, 0.409167, + 0.056464, -0.885752, -0.371891, 0.627903, 0.573622, 0.345932, 0.882675, -0.519922, -0.297994, + -0.148991, -0.245765, 0.862538, -0.999229, 0.189474, 0.981552, -0.555882, 0.794772, -0.861581, + 0.16913, -0.569277, 0.31639, 0.218757, 0.219855, -0.226848, -0.30975, -0.968405, 0.165889, + 0.954597, -0.752491, -0.384696, 0.262413, 0.511495, 0.363192, 0.647933, 0.126426, -0.24603, + -0.833572, -0.999522, -0.765787, 0.502358, 0.898694, 0.951883, 0.748921, 0.051611, 0.688596, + 0.380181, -0.6771, -0.187674, -0.928099, 0.858437, 0.217358, 0.918291, -0.121094, 0.794068, + 0.468069, -0.122056, -0.033072, 0.712704, -0.131514, 0.777566, 0.219378, -0.39175, -0.463519, + -0.48641, 0.641617, 0.755911, -0.470125, -0.912782, 0.566779, -0.227394, -0.918188, 0.209948, + -0.099502, 0.720464, 0.212292, -0.616544, -0.180845, -0.718091, 0.467584, 0.292527, 0.590311, + -0.740107, -0.556638, -0.608548, -0.829212, -0.932745, -0.806575, 0.696607, -0.30169, -0.184487, + 0.301418, 0.263206, 0.449593, -0.706078, 0.888565, -0.079889, -0.47487, 0.645458, -0.831442, + -0.59612, 0.563573, 0.387648, -0.396032, -0.079916, -0.182629, 0.406634, 0.200627, 0.366464, + 0.825997, -0.687764, -0.769238, -0.23724, -0.455372, -0.711162, 0.92806, 0.835406, 0.807442, + -0.615906, -0.118249, -0.778072, -0.360562, 0.833323, 0.125371, 0.346909, -0.994067, 0.411987, + 0.674263, -0.384001, 0.759909, 0.450405, -0.730163, -0.749622, 0.014039, -0.96453, -0.698842, + 0.39114, -0.329022, -0.035434, -0.408582, 0.647232, 0.821159, 0.721582, -0.889271, -0.295646, + 0.484328, 0.591453, -0.224123, 0.547567, -0.029566, 0.111076, 0.673791, 0.684089, -0.705969, + -0.607112, 0.354252, 0.601015, -0.232842, 0.886798, -0.115201, -0.507116, -0.102074, -0.851138, + 0.309837, -0.919374, 0.927909, -0.758774, 0.650955, -0.750087, -0.145738, -0.553809, 0.510988, + 0.579988, -0.935109, -0.858495, 0.131645, -0.021512, 0.005798, 0.304008, -0.197636, 0.843868, + 0.07113, -0.460685, 0.346988, -0.775867, -0.478251, 0.291555, -0.419542, -0.954692, 0.500493, + 0.257375, 0.291057, 0.347585, -0.986773, -0.435655, -0.485767, 0.956865, -0.4213, -0.656955, + -0.350976, 0.096085, 0.402996, 0.736434, 0.721923, 0.102699, 0.911006, 0.531693, 0.533547, + -0.857504, 0.081697, -0.212389, -0.950342, -0.493853, 0.760875, 0.366719, 0.924186, 0.681848, + -0.00765, 0.89876, 0.210924, -0.14689, -0.427624, 0.644549, 0.448312, 0.694318, -0.173719, + -0.925505, 0.18134, 0.109434, -0.650915, 0.242444, -0.121027, 0.853159, 0.04706, -0.493888, + 0.801149, 0.029715, -0.16795, 0.477627, 0.964615, 0.455973, 0.028198, 0.819018, -0.438554, + 0.883773, -0.569758, 0.018323, 0.910108, 0.398225, -0.20957, 0.616098, 0.589862, -0.901396, + -0.111455, -0.786991, -0.215547, -0.120542, -0.400044, -0.365488, 0.540835, -0.029698, -0.994977, + 0.171893, -0.983439, -0.686024, 0.611258, 0.764444, -0.354801, -0.607217, 0.45253, -0.955269, + 0.61694, 0.688817, 0.421969, 0.305208, 0.206785, -0.766613, -0.400565, 0.645041, 0.842246, + 0.02671, 0.256912, -0.948504, 0.705938, -0.582452, -0.536054, 0.986737, -0.286658, -0.505212, + 0.137555, 0.788069, 0.908644, 0.08371, 0.680791, 0.713171, -0.167133, -0.790175, 0.026904, + -0.339699, 0.35044, -0.732689, -0.670761, -0.753107, -0.748105, 0.760652, -0.996446, -0.03681, + -0.61717, -0.420602, -0.288184, 0.469135, 0.672421, -0.224995, 0.032609, -0.011, 0.910662, + 0.446939, -0.207633, 0.677152, -0.807455, 0.396337, 0.775714, -0.519032, 0.374185, 0.45852, + -0.83897, 0.287662, 0.75624, 0.091833, -0.193273, -0.391899, -0.663704, 0.24285, -0.945305, + -0.855988, -0.361829, -0.946967, 0.933777, -0.322218, -0.531664, 0.251377, 0.430365, 0.753068, + -0.403722, -0.174739, -0.755138, -0.873198, -0.43511, 0.112513, -0.495743, -0.27605, 0.366544, + 0.206332, 0.617022, 0.46178, 0.527319, -0.516971, 0.536366, -0.896294, 0.30795, -0.630683, + 0.276133, -0.914908, -0.165625, 0.615084, -0.500082, 0.619049, -0.155481, 0.938156, 0.942154, + -0.590017, -0.23422, -0.204385, -0.378107, 0.32872, -0.910501, -0.5997, -0.156764, -0.889732, + -0.957825, 0.410107, -0.834952, 0.6644, -0.580648, -0.079754, 0.602971, -0.986145, -0.973605, + 0.041642, -0.406012, 0.46743, 0.349041, 0.12308, 0.375368, 0.855531, 0.158713, 0.661636, + -0.563814, 0.82394, -0.177812, 0.541388, -0.831058, -0.600944, -0.585392, 0.528265, -0.033323, + -0.917755, 0.980723, 0.260638, 0.919745, 0.12483, 0.143353, 0.7208, -0.680343, 0.944389, + -0.64318, 0.090638, -0.650374, -0.662575, 0.769699, -0.264115, -0.187675, 0.781314, 0.979697, + -0.901943, -0.017455, 0.285555, 0.960129, -0.398671, -0.325446, -0.586119, 0.255511, 0.24663, + -0.015769, -0.101423, -0.696183, -0.410735, -0.380321, 0.262673, 0.441602, 0.466853, -0.763321, + -0.077083, -0.190843, 0.997499, 0.721617, -0.746458, -0.549468, -0.755416, -0.25027, -0.874957, + 0.469985, -0.441012, -0.501888, 0.047261, -0.319518, 0.755447, 0.906481, -0.892866, 0.448357, + 0.020866, 0.524868, -0.374895, -0.075714, -0.018706, 0.342877, 0.498597, 0.390004, 0.122728, + -0.797748, -0.57445, -0.569692, -0.996557, 0.9579, -0.452743, -0.664694, -0.452857, 0.542971, + -0.626877, -0.83557, -0.747427, 0.219766, -0.040913, -0.902252, -0.684035, -0.866623, 0.343054, + 0.452546, 0.170341, -0.320382, -0.535782, 0.395341, -0.229636, -0.160522, -0.327819, 0.173797, + 0.234575, 0.821609, 0.888098, -0.257724, 0.148622, -0.668401, -0.750707, 0.829237, 0.117799, + -0.497219, 0.502742, 0.403424, 0.357965, 0.423126, 0.053407, -0.72745, -0.888986, 0.976286, + 0.698115, -0.780172, 0.783648, -0.935275, 0.665197, 0.696346, 0.628255, 0.42322, -0.605687, + -0.428853, 0.214371, 0.394395, 0.876602, 0.044482, 0.411793, -0.755214, -0.202974, 0.594688, + 0.081731, 0.790537, -0.802424, -0.667258, 0.314376, -0.041817, -0.854447, 0.426682, 0.041216, + 0.241827, 0.219755, -0.68954, -0.670789, -0.800104, 0.72635, -0.548936, 0.900231, -0.319349, + 0.221343, 0.955086, -0.536642, -0.94848, 0.14421, -0.721431, 0.551021, 0.397556, 0.72454, + -0.10388, -0.653329, -0.921544, -0.645898, 0.890715, -0.214069, -0.018317, -0.212183, -0.510585, + 0.818637, -0.259086, -0.485339, 0.923949, 0.598532, 0.532949, 0.716617, -0.635043, 0.325656, + -0.278317, 0.035745, 0.471041, -0.331943, 0.981208, 0.004904, 0.576199, 0.092025, -0.963826, + -0.598088, -0.833279, 0.1175, -0.670844, -0.795261, 0.21439, -0.875341, -0.544159, -0.64691, + 0.488119, 0.916859, 0.349881, -0.559666, 0.756907, 0.928196, -0.270944, 0.737898, 0.252807, + -0.695588, -0.261183, -0.797533, 0.301727, 0.552989, -0.983573, -0.408707, 0.021671, 0.800741, + -0.544885, -0.05873, -0.02828, -0.502878, -0.448221, -0.267562, -0.298805, -0.321877, 0.095607, + -0.083599, -0.486675, 0.605581, 0.715394, -0.156764, -0.188771, -0.974632, -0.731074, -0.045545, + -0.190649, 0.292569, -0.497456, -0.207121, 0.149528, 0.981601, 0.786773, -0.6578, -0.083288, + -0.163719, -0.031966, 0.416598, -0.402279, -0.213159, -0.990602, -0.355239, -0.980772, 0.354011, + -0.769762, -0.49414, -0.725171, 0.760425, -0.293558, 0.86902, -0.496908, 0.757053, -0.196625, + -0.75121, 0.836255, -0.680314, -0.588052, 0.548003, -0.093354, -0.015189, 0.991562, -0.793586, + -0.361193, 0.406818, -0.192556, 0.016916, -0.338077, -0.154912, 0.798211, -0.185882, 0.402176, + 0.754513, 0.774155, 0.474155, 0.687373, -0.259389, 0.079736, -0.428953, -0.969831, 0.84142, + -0.956025, -0.630227, -0.356406, -0.91473, -0.77603, -0.523075, 0.118333, -0.874328, -0.718817, + -0.584556, -0.751978, 0.23472, 0.033834, 0.219443, 0.902143, -0.437845, -0.374922, 0.319013, + 0.877044, 0.319168, -0.085723, 0.324834, -0.984997, -0.684033, -0.42049, -0.905243, -0.755232, + -0.769076, 0.287075, 0.302958, -0.024085, -0.231133, 0.026963, 0.604249, -0.752978, 0.710452, + 0.434928, -0.349071, 0.701617, -0.000828, -0.458272, 0.901182, 0.29556, 0.754667, -0.271364, + -0.856908, 0.801938, 0.057851, 0.474908, -0.259198, 0.472976, -0.790144, 0.035274, 0.7593, + -0.268524, 0.858895, 0.367749, 0.49296, 0.988117, -0.24331, -0.232806, 0.628833, -0.506068, + -0.737319, 0.652049, -0.872516, -0.473602, 0.242308, 0.147259, -0.606236, -0.25299, 0.641908, + -0.647972, 0.573599, -0.107088, -0.35795, -0.952603, -0.262292, 0.822277, -0.547828, -0.793644, + -0.07802, 0.708889, -0.271262, 0.980298, 0.963208, 0.916181, -0.571978, -0.711846, -0.937186, + -0.194449, -0.65124, 0.46587, 0.090187, 0.793112, -0.92767, -0.840324, -0.18609, 0.263562, + 0.841943, -0.083606, 0.854584, -0.270715, -0.141166, -0.385051, -0.425004, -0.378828, -0.864421, + -0.122755, -0.337188, -0.647435, -0.74175, -0.964334, -0.224085, -0.814147, 0.899095, -0.268434, + 0.268799, -0.716938, 0.102038, -0.93984, 0.450192, 0.472264, -0.971768, 0.436061, 0.127313, + -0.624561, -0.457836, 0.982922, -0.520149, 0.87494, 0.20124, 0.458167, -0.50334, 0.325063, + 0.215321, 0.797546, -0.988884, -0.363572, 0.024901, -0.717747, 0.170423, 0.644769, 0.602631, + -0.515645, 0.404225, -0.727631, 0.621633, -0.817331, -0.906592, 0.347049, -0.094401, 0.2465, + 0.93049, 0.95796, 0.563851, -0.907123, -0.153964, 0.109314, -0.973735, 0.836285, 0.656215, + -0.461943, -0.208696, -0.580048, 0.384624, 0.172465, -0.346691, 0.534628, -0.216166, 0.10739, + 0.692372, -0.469838, -0.922297, 0.539726, -0.65353, 0.378039, -0.300641, 0.67128, -0.038034, + -0.455315, -0.705451, 0.671975, -0.625709, 0.283473, 0.764755, -0.803278, -0.839299, 0.102017, + -0.392549, -0.734085, 0.661251, -0.930269, -0.455944, -0.830645, 0.264302, 0.086248, 0.41712, + 0.418676, -0.003956, -0.300302, 0.884242, 0.041586, 0.238082, -0.82343, -0.980093, -0.488442, + -0.524004, 0.289728, -0.444472, 0.104434, 0.92669, -0.294989, 0.255485, 0.012264, 0.658079, + 0.437366, -0.046459, 0.546959, -0.050878, -0.17, -0.389791, -0.815782, 0.835326, -0.633699, + -0.953309, -0.448533, 0.202002, -0.09075, 0.455237, 0.572932, 0.588111, -0.839027, 0.407696, + 0.495, -0.55476, 0.004844, 0.149882, 0.125395, 0.536612, 0.849009, 0.960474, 0.223895, + 0.584796, 0.427553, -0.540996, 0.66881, -0.071051, 0.408098, -0.663698, 0.800053, 0.223184, + 0.22661, -0.889599, -0.086909, -0.349684, 0.944116, -0.91552, -0.246776, -0.49599, -0.72492, + 0.384619, -0.690428, 0.4727, 0.120031, -0.529418, -0.113801, 0.086721, -0.445665, -0.642509, + -0.563538, 0.241276, -0.881142, 0.629677, 0.656745, 0.919526, 0.846065, -0.562007, -0.433925, + 0.731927, -0.129367, -0.736274, -0.47902, 0.701951, -0.568663, 0.351727, -0.834965, 0.660331, + 0.27504, 0.68978, 0.034106, 0.507615, 0.819481, -0.126149, -0.755754, -0.7056, 0.586313, + -0.637685, -0.875363, -0.846715, -0.442865, 0.185517, -0.906111, -0.463371, 0.957404, -0.170083, + -0.337456, 0.472957, -0.8229, -0.780831, 0.14298, 0.316121, -0.985453, 0.878608, -0.389387, + 0.152768, 0.710852, 0.382771, 0.310503, -0.912375, -0.932984, 0.371899, 0.037162, 0.61404, + 0.500432, -0.802256, 0.184056, -0.784501, -0.552783, 0.274812, -0.055897, -0.638641, 0.339087, + 0.693954, -0.98278, 0.93798, 0.552028, -0.084287, -0.969716, -0.423325, 0.305185, -0.426049, + -0.328707, -0.412969, 0.859785, 0.8463, -0.779971, -0.308511, 0.905765, -0.057599, -0.486877, + 0.120925, 0.791232, -0.127256, -0.943613, -0.334266, 0.497687, -0.147755, 0.706545, 0.343918, + 0.00877, 0.381981, -0.134982, -0.857254, -0.857005, -0.786588, -0.159275, -0.723056, 0.14655, + 0.114662, 0.760882, 0.056228, 0.170438, 0.355588, -0.282717, -0.498285, -0.940679, -0.973947, + 0.065755, -0.472888, 0.276837, 0.24853, 0.779929, -0.122079, -0.004229, 0.690181, 0.169579, + 0.457686, -0.539995, -0.722785, 0.762388, 0.71284, -0.378638, 0.166117, -0.889344, 0.069985, + -0.928434, 0.565211, -0.991151, -0.241225, 0.932997, -0.338784, -0.579646, 0.902104, -0.505822, + 0.220553, 0.558877, 0.268679, -0.690884, 0.907583, 0.479523, -0.628838, -0.570732, -0.23064, + 0.33362, 0.378115, 0.128762, 0.655812, 0.994806, 0.205733, 0.391692, 0.568694, 0.198235, + 0.061655, 0.899113, 0.690373, 0.653127, -0.389109, -0.478103, -0.54224, -0.837415, -0.1016, + 0.563434, 0.146509, -0.353737, -0.138341, -0.766324, -0.642341, 0.092064, -0.581018, 0.123248, + 0.824709, 0.256081, 0.76552, -0.633555, 0.026008, -0.982336, 0.006929, -0.736669, 0.93854, + -0.854885, 0.341838, -0.598181, 0.276806, -0.005216, -0.127905, -0.388107, 0.642984, -0.180508, + 0.085235, -0.30136, -0.728728, -0.41676, 0.896594, 0.951866, -0.4646, 0.099659, 0.162318, + 0.882175, 0.139551, 0.046552, -0.290885, 0.210894, -0.995689, -0.997716, -0.115915, -0.693591, + -0.694504, -0.169738, 0.554815, 0.494918, -0.347436, -0.070667, 0.928337, 0.216321, 0.680038, + -0.414205, -0.89488, -0.46364, 0.087881, -0.242199, -0.546017, 0.961635, -0.923033, 0.02539, + 0.398518, -0.269785, 0.433712, 0.00355, -0.594432, -0.543754, -0.449853, -0.976383, 0.62326, + 0.916645, -0.513694, 0.049427, 0.334154, 0.283141, -0.555049, -0.607674, 0.973449, 0.582322, + 0.934814, 0.701989, -0.074404, 0.704003, -0.032074, -0.006204, -0.433285, 0.779856, -0.2126, + 0.145189, -0.797398, 0.343036, -0.475464, -0.22581, -0.089422, 0.37072, 0.04082, 0.174243, + -0.649512, -0.755592, 0.360135, -0.41178, -0.862165, -0.412701, -0.981046, 0.199804, 0.074267, + 0.923446, -0.551433, -0.517175, 0.238778, -0.262762, 0.779307, 0.152125, -0.021729, -0.383651, + 0.604209, -0.468098, 0.402116, 0.642408, -0.784408, -0.886035, -0.563944, 0.479833, -0.551593, + 0.094528, 0.150987, 0.209943, -0.509931, 0.034966, 0.692941, 0.518366, 0.191036, -0.795275, + 0.470473, -0.398191, 0.699852, 0.415322, -0.183556, 0.386571, -0.415837, 0.172606, -0.049897, + 0.015868, 0.352111, 0.973874, -0.441392, 0.976521, -0.183509, 0.951109, 0.225033, 0.081548, + -0.334435, -0.526956, -0.983414, -0.545849, -0.089533, 0.84128, 0.541147, 0.174355, -0.967813, + 0.70451, 0.688475, -0.449535, 0.405022, -0.833191, -0.50559, -0.301778, -0.90673, -0.06109, + 0.204781, 0.291076, 0.93583, 0.577526, -0.914957, -0.313887, 0.560242, -0.959807, -0.061845, + 0.378395, -0.670532, 0.857804, -0.659274, -0.733571, -0.759092, -0.175165, 0.333939, 0.28805, + -0.494102, 0.87463, -0.535895, 0.784654, 0.335902, -0.322669, 0.739588, 0.331576, -0.850278, + 0.508237, 0.94574, -0.748029, -0.210824, -0.806949, 0.670441, 0.530556, 0.729369, 0.280865, + -0.164897, -0.097574, -0.74508, 0.634617, -0.401188, 0.109748, 0.034009, 0.302302, -0.80331, + -0.158392, 0.461342, -0.739161, -0.429587, -0.550642, -0.846112, 0.976349, 0.863985, 0.626637, + -0.828891, -0.009127, 0.183636, 0.443583, 0.201413, -0.612945, 0.031707, -0.808646, 0.501486, + 0.629891, -0.357813, -0.875325, 0.009298, 0.51123, -0.682317, 0.422183, 0.696455, -0.828967, + 0.553031, 0.452248, -0.514621, 0.839286, -0.480904, 0.760057, -0.766515, 0.788765, -0.224844, + -0.88335, 0.532658, -0.081908, 0.282445, 0.46067, 0.106772, 0.319395, -0.842864, -0.882628, + -0.46959, -0.522834, -0.942585, 0.156135, -0.079341, -0.220231, -0.046469, 0.480545, -0.371073, + 0.063175, -0.089325, 0.482894, -0.106384, 0.359218, -0.391539, 0.774643, 0.168313, 0.168227, + 0.484153, -0.99684, 0.441877, 0.803358, 0.598896, 0.649361, -0.80326, 0.865543, 0.223581, + -0.974703, 0.904885, 0.779783, -0.159538, 0.980599, 0.062963, 0.802055, -0.883984, -0.93231, + 0.278617, -0.007481, -0.848886, -0.560736, 0.560534, 0.637498, -0.75846, -0.447078, 0.005816, + -0.001276, -0.736525, 0.739541, -0.698258, 0.711413, -0.61852, -0.993563, 0.249154, -0.478374, + 0.674149, -0.331543, 0.095484, 0.744364, -0.649465, -0.411703, 0.680877, 0.84355, 0.174297, + 0.768746, 0.604939, 0.565435, -0.039423, 0.965488, -0.317899, 0.068068, -0.301852, -0.074935, + 0.600949, 0.75815, 0.149068, 0.657393, 0.700972, 0.486058, -0.272526, 0.583464, 0.839412, + 0.827248, 0.259111, 0.737985, -0.690837, 0.189407, -0.87858, 0.513341, 0.045908, -0.192373, + 0.637478, -0.153074, 0.408301, 0.538006, -0.496074, -0.86626, 0.089313, -0.611511, -0.567097, + 0.470933, 0.23763, -0.222235, -0.363549, -0.739524, -0.427324, 0.064098, -0.584207, -0.907871, + -0.968836, -0.943037, -0.459989, 0.269432, -0.457295, 0.660625, 0.547279, -0.782412, 0.246204, + -0.430676, 0.829361, 0.757752, 0.458669, -0.500788, 0.144598, -0.630471, 0.149724, 0.988579, + -0.192815, -0.575078, -0.487461, -0.62066, 0.506578, -0.589817, 0.699969, 0.583807, 0.601604, + -0.047956, -0.208755, 0.362251, -0.149373, 0.401877, 0.22322, 0.347777, -0.427469, 0.62, + -0.191803, 0.568222, -0.061645, -0.982789, -0.085198, -0.318844, -0.495805, -0.039122, -0.382069, + 0.078351, -0.295236, -0.620459, 0.367114, -0.818974, -0.774168, -0.157283, -0.087071, -0.935413, + 0.508184, 0.082527, 0.421703, -0.009868, -0.218268, -0.351916, -0.089315, -0.785874, 0.439171, + 0.284233, 0.715161, -0.93417, -0.104168, -0.392163, 0.031079, 0.152695, -0.148892, -0.081172, + -0.165103, 0.243235, -0.546638, -0.115883, 0.494269, 0.673325, 0.111841, -0.109848, 0.167539, + 0.460388, 0.183952, -0.581916, -0.788017, 0.46518, -0.429901, 0.3745, -0.859231, 0.546902, + 0.420433, -0.197338, -0.763915, -0.112902, 0.566293, 0.755696, -0.03705, -0.082754, 0.820318, + 0.174253, 0.954934, 0.904661, -0.649332, -0.705032, -0.331916, -0.152908, 0.905393, -0.752171, + 0.446006, 0.767329, 0.062864, -0.83846, -0.754978, 0.148712, 0.289335, 0.232303, 0.622262, + 0.642487, -0.871369, 0.471224, 0.621108, -0.505049, -0.623871, -0.897993, -0.986644, 0.522492, + 0.284293, -0.543207, -0.89394, -0.929625, 0.907332, 0.329126, 0.163489, -0.082675, 0.408221, + 0.108376, 0.431693, 0.255145, -0.515178, -0.467397, 0.263389, 0.253395, 0.706054, -0.739704, + 0.485738, -0.917333, 0.085679, -0.811957, -0.491851, -0.571583, 0.892165, 0.890038, -0.443504, + -0.041934, -0.838071, -0.819312, -0.506304, 0.097289, -0.900154, -0.20815, 0.137871, 0.01126, + -0.031644, 0.179963, 0.989143, -0.85409, -0.721432, 0.522642, 0.306304, 0.849681, 0.795896, + -0.742705, -0.227141, -0.900441, 0.403033, 0.596849, -0.79324, -0.544374, 0.534128, 0.243626, + -0.625112, -0.004961, -0.664689, 0.387761, 0.185221, 0.271584, -0.047193, 0.054372, -0.741733, + 0.933483, -0.040915, 0.027905, 0.090381, -0.940622, 0.258381, 0.860859, 0.581789, 0.139205, + 0.29031, 0.177672, 0.002572, 0.437896, 0.329406, 0.324779, -0.603002, -0.121832, 0.623485, + 0.65839, -0.562998, 0.326391, -0.667247, 0.260616, 0.347072, -0.602195, 0.742274, 0.714015, + 0.718186, 0.274236, 0.411576, -0.018428, -0.529705, 0.304547, -0.431607, 0.257941, -0.513209, + -0.423485, -0.787778, -0.269645, 0.603255, 0.310901, -0.080917, 0.634715, 0.713723, -0.428294, + -0.740121, 0.770099, -0.907022, -0.771836, -0.820305, -0.644775, -0.676682, 0.030311, -0.438072, + 0.769598, -0.891411, -0.754784, -0.922059, -0.881216, 0.242625, -0.692261, -0.218482, -0.510175, + -0.269435, -0.418653, 0.636609, -0.442807, -0.498858, 0.568507, 0.909004, 0.813957, -0.149023, + 0.178558, -0.518814, -0.097887, 0.112868, -0.584383, -0.146061, 0.47804, 0.249815, 0.930634, + -0.343256, -0.419091, -0.944175, 0.477198, -0.48377, -0.932015, 0.117856, -0.38357, -0.604504, + 0.590189, -0.602242, 0.499331, 0.850891, 0.625665, -0.403866, 0.756045, -0.682797, 0.808773, + -0.166021, -0.44971, 0.066652, 0.904731, -0.284918, 0.730253, 0.234122, -0.720801, -0.738661, + 0.851717, 0.915862, 0.598141, 0.966523, -0.660805, -0.528342, -0.375768, -0.555162, -0.24395, + 0.361486, 0.143288, 0.601498, -0.304884, 0.853807, 0.189584, 0.631464, 0.77264, -0.053577, + 0.942418, 0.528684, -0.612039, 0.072169, -0.486457, 0.189246, -0.603877, -0.371551, -0.411658, + -0.968993, 0.918219, -0.342343, -0.306377, -0.020771, 0.017599, -0.839895, 0.278198, -0.623416, + -0.794205, -0.600288, -0.779797, 0.783402, 0.382357, 0.87628, -0.804735, -0.793865, 0.396702, + -0.468136, -0.306479, -0.587524, -0.841408, -0.589105, -0.628841, 0.512342, -0.026394, 0.624915, + 0.869389, 0.660399, -0.813913, 0.586146, 0.569528, -0.452905, -0.210623, 0.336128, -0.102134, + -0.611618, -0.17721, -0.275937, 0.611781, 0.435621, 0.625135, -0.042314, -0.910358, 0.97634, + 0.030926, 0.426472, -0.567131, -0.049526, 0.266928, -0.406717, -0.553778, 0.281057, 0.802912, + 0.780232, 0.340441, 0.085147, 0.449471, -0.312376, 0.771191, 0.527634, -0.997096, 0.911816, + 0.047064, -0.756099, -0.382657, 0.971289, -0.834889, 0.250193, -0.336332, -0.821371, 0.386375, + 0.582599, 0.983061, -0.815787, 0.489071, 0.711664, -0.024591, 0.771496, 0.912903, -0.809847, + 0.502462, 0.23831, 0.113145, 0.73719, 0.053692, -0.372425, 0.853995, 0.579449, 0.485099, + -0.269228, -0.834116, -0.13941, -0.187317, -0.201082, -0.510341, 0.718043, -0.166367, -0.979587, + -0.641165, -0.989302, 0.553391, -0.11473, -0.509701, -0.766921, 0.487337, -0.86429, -0.909545, + -0.090107, 0.597092, -0.789633, -0.647401, 0.3224, -0.971432, 0.664437, 0.534566, 0.488016, + 0.851204, 0.868749, -0.461871, 0.564897, 0.546072, 0.452747, -0.272953, -0.550281, -0.649214, + 0.214601, -0.027398, 0.05062, 0.895633, -0.812516, 0.231337, 0.179987, -0.044324, 0.662004, + 0.649216, -0.673265, 0.177816, -0.601788, -0.552939, -0.835469, 0.372834, -0.102285, -0.635164, + -0.198556, -0.07374, 0.377828, 0.85098, -0.663977, -0.062491, 0.967928, 0.659409, 0.460936, + -0.300951, 0.174324, 0.067975, 0.014686, 0.6526, -0.340647, -0.246478, 0.696985, 0.253776, + -0.949433, -0.196104, 0.674628, 0.60597, 0.667354, -0.586022, -0.747196, 0.319391, 0.767418, + 0.817488, 0.38421, 0.590313, -0.690297, 0.240363, -0.103054, -0.011169, 0.472265, -0.749134, + 0.096464, -0.350357, 0.501876, -0.892875, -0.551647, -0.714289, 0.748857, 0.622342, 0.829227, + 0.987217, 0.304641, 0.12751, 0.279361, 0.160414, 0.119409, -0.754757, 0.769364, -0.67719, + 0.697593, 0.45877, 0.25925, 0.374619, 0.21947, -0.490677, -0.531731, -0.50824, -0.602, + 0.455635, 0.074405, -0.010294, 0.267717, 0.923672, -0.077479, -0.480144, -0.725305, 0.826228, + -0.88362, 0.487991, 0.875175, 0.534148, -0.007716, -0.129862, 0.633613, -0.531735, 0.353513, + -0.309077, 0.526871, -0.221394, -0.667364, -0.381857, 0.588087, 0.364937, -0.706048, -0.650256, + -0.205226, -0.095542, -0.281159, 0.672339, 0.069417, -0.267166, -0.057378, 0.457905, -0.701297, + -0.982632, -0.803336, 0.439667, 0.108575, -0.894426, 0.817328, 0.535622, -0.933058, 0.614441, + -0.038815, 0.084022, 0.82106, 0.773364, 0.218451, -0.477882, 0.75205, 0.831321, -0.147622, + -0.7969, 0.936864, -0.432288, -0.597414, -0.944156, 0.403862, 0.384095, -0.430438, -0.969074, + 0.700069, 0.060869, 0.887766, -0.093494, 0.902417, -0.253793, -0.464167, 0.584539, 0.249545, + 0.89791, 0.075156, -0.765385, -0.708544, -0.224551, -0.149872, -0.548539, 0.848251, -0.545834, + 0.09488, 0.571484, 0.205665, 0.05113, 0.38981, -0.518663, -0.990324, 0.294858, -0.739713, + -0.858244, -0.731842, 0.809427, -0.671057, 0.778793, 0.66459, 0.173121, -0.587072, -0.906628, + -0.77386, 0.645504, -0.659909, -0.130124, 0.162193, -0.121206, 0.223862, -0.790048, 0.821126, + -0.721386, -0.584453, -0.833047, 0.650899, -0.495144, -0.340826, 0.52493, -0.103765, 0.825146, + 0.305708, -0.084898, -0.671293, -0.953658, 0.276797, 0.076641, 0.910707, -0.919303, 0.200882, + 0.372327, 0.551601, 0.485579, -0.07093, -0.952188, -0.198575, 0.987809, -0.750181, -0.667608, + 0.909944, -0.065014, -0.334637, 0.113965, 0.419772, 0.088604, 0.804899, -0.014158, -0.420687, + -0.467271, -0.077053, -0.19534, 0.676165, 0.466272, 0.770329, 0.783558, 0.853961, -0.949991, + -0.22657, -0.095613, 0.716115, -0.008316, 0.379072, -0.092941, -0.981135, 0.07984, -0.021404, + -0.617175, 0.974025, -0.802168, -0.847424, -0.718089, -0.908073, -0.201542, -0.534324, 0.82004, + 0.535369, 0.475151, 0.859119, -0.825784, -0.600822, 0.843011, 0.728289, 0.15811, 0.559174, + 0.256045, -0.075694, -0.334761, 0.35072, -0.812025, 0.985507, -0.882135, -0.757123, 0.732534, + -0.579536, -0.488635, -0.237192, -0.872975, -0.04753, -0.14298, -0.200412, -0.004714, -0.671693, + -0.173379, -0.119111, -0.989074, -0.742178, 0.769904, -0.957901, -0.198377, -0.588286, 0.993191, + 0.735968, 0.492332, -0.511104, -0.882229, -0.15665, 0.611588, 0.117065, -0.546878, -0.897142, + 0.844657, 0.200539, 0.682952, -0.873118, 0.13192, 0.933897, -0.971998, -0.94503, -0.919531, + -0.491626, -0.101523, 0.489912, -0.346991, 0.79152, 0.817971, 0.672685, -0.808579, 0.39143, + 0.568047, 0.732537, -0.903793, -0.209096, -0.507374, -0.376274, 0.291263, -0.055822, 0.434266, + -0.743124, -0.311122, 0.42836, -0.368984, 0.123189, -0.668005, 0.86315, -0.002072, 0.367565, + 0.053881, 0.097699, 0.948747, -0.420717, 0.874488, -0.414408, -0.031247, -0.63319, 0.255674, + -0.982301, 0.278642, -0.502831, 0.880413, 0.974431, 0.633054, -0.938441, 0.449915, -0.750754, + 0.062002, -0.607765, 0.63155, -0.115959, 0.322356, 0.315521, 0.654742, 0.631007, -0.035545, + -0.71165, 0.36713, -0.374773, -0.135837, 0.063449, 0.893741, 0.749169, -0.14203, -0.477377, + 0.915497, 0.540866, -0.86532, -0.031395, -0.738107, -0.255943, -0.860414, -0.834126, -0.69972, + -0.212722, 0.356785, -0.897512, -0.379255, 0.198821, 0.269142, -0.017408, -0.776822, -0.057696, + 0.322799, -0.89109, -0.641237, 0.180054, 0.002019, 0.74516, 0.302921, 0.53655, -0.757689, + -0.226242, -0.139115, -0.242595, -0.167664, 0.484587, -0.607803, -0.326163, -0.380344, 0.151086, + 0.156853, -0.133393, 0.517858, -0.778966, 0.722926, 0.267963, 0.700448, -0.955031, 0.728648, + 0.557161, 0.641243, 0.528393, -0.469075, -0.246462, 0.027947, 0.241542, -0.956555, -0.194256, + -0.946483, -0.683155, -0.375101, -0.311809, 0.224379, 0.70779, -0.327157, -0.170895, 0.34662, + 0.247721, 0.982589, 0.17543, 0.098142, -0.768481, 0.358951, 0.320645, 0.350464, -0.035053, + -0.128406, 0.200625, -0.062615, -0.200027, -0.902017, 0.511831, -0.566366, 0.296245, 0.417605, + 0.471588, -0.109459, -0.026851, 0.673907, -0.569094, -0.701962, 0.64885, 0.958205, 0.756214, + 0.618289, -0.531196, 0.602742, -0.516603, 0.447914, 0.907558, -0.298889, -0.738184, -0.710357, + -0.333983, 0.074084, 0.915513, 0.182562, -0.511609, -0.099023, -0.282915, 0.247227, 0.403116, + -0.582569, 0.324006, 0.484615, -0.061551, -0.689471, 0.637842, -0.952554, 0.491049, 0.157828, + -0.2751, -0.380875, 0.221045, -0.576849, -0.042797, 0.745614, -0.062078, -0.666614, 0.779509, + 0.622944, 0.824975, -0.308324, -0.979257, -0.335912, 0.678771, 0.287844, 0.81024, 0.465681, + -0.992148, -0.989417, -0.118182, -0.678714, -0.649348, 0.104198, -0.190318, 0.782989, -0.550907, + 0.458953, -0.499913, -0.513079, 0.880224, 0.12148, 0.998124, -0.831424, -0.361635, -0.848821, + 0.796799, 0.485678, 0.046579, 0.944663, -0.693543, -0.731571, 0.923948, -0.261534, 0.64951, + 0.479979, 0.271339, -0.628013, -0.330541, 0.869043, 0.394063, -0.267173, 0.323153, -0.248419, + -0.077478, 0.174334, 0.696992, 0.956604, 0.910533, -0.211372, 0.080573, -0.961999, -0.09857, + 0.05801, -0.639526, 0.89532, -0.421881, -0.92706, -0.459516, -0.173982, -0.832182, 0.636362, + 0.143606, -0.587917, 0.088031, -0.864286, 0.315477, -0.033292, -0.078851, 0.081418, -0.457037, + 0.668235, -0.727248, -0.015065, 0.825533, 0.210712, -0.719999, 0.993124, -0.592853, -0.425119, + 0.614084, -0.601263, 0.039996, 0.36895, 0.553922, -0.618313, 0.954068, 0.744077, -0.397764, + 0.00599, -0.350475, -0.515392, 0.867149, 0.743399, 0.259523, 0.899599, -0.971349, 0.073769, + -0.494999, 0.541945, 0.079175, -0.785824, 0.031321, 0.409778, -0.307655, -0.094626, -0.71128, + 0.861857, -0.968038, -0.591857, -0.78896, -0.444655, -0.544042, 0.315483, 0.864471, 0.043483, + 0.228927, 0.755354, -0.998465, 0.066529, 0.45035, 0.182583, -0.416383, -0.334715, -0.523265, + 0.989502, -0.441832, -0.171535, 0.019011, -0.75073, -0.654825, -0.674815, 0.20242, -0.606569, + -0.78787, -0.56918, -0.344874, -0.271591, -0.624517, 0.2858, -0.125684, -0.722699, 0.46595, + 0.230668, 0.159618, 0.984915, -0.171288, 0.630726, -0.506317, -0.489019, 0.242913, -0.52196, + 0.431271, -0.942437, -0.366608, 0.997204, -0.050636, 0.54331, 0.901638, -0.285776, -0.233099, + -0.143527, -0.498166, -0.030137, 0.476549, 0.863097, 0.691794, 0.984826, -0.50503, -0.689362, + -0.986009, 0.58881, 0.443354, -0.239342, 0.826778, -0.719754, -0.161792, -0.026157, 0.402132, + 0.833971, -0.568576, 0.997486, 0.952484, 0.266044, -0.658144, 0.329715, 0.208387, -0.362587, + 0.962706, -0.803242, -0.355222, -0.3751, -0.277554, 0.741164, -0.049765, 0.139143, -0.891859, + -0.676387, 0.628146, -0.305648, 0.357726, -0.770725, -0.567833, 0.481179, 0.704211, 0.062155, + -0.905536, -0.62914, -0.363836, 0.465442, -0.813226, -0.642232, -0.993793, -0.705416, 0.723869, + -0.373076, -0.235867, 0.030813, -0.197817, -0.342654, -0.020252, -0.501347, 0.634349, -0.040235, + 0.447313, 0.120546, 0.753467, 0.48644, -0.502735, -0.235027, 0.230768, -0.360775, -0.693163, + 0.838331, 0.671619, -0.499591, 0.23085, 0.725108, -0.605925, -0.164766, -0.824661, -0.915014, + 0.794775, 0.349995, -0.64993, -0.074212, -0.465138, -0.182268, -0.216208, 0.31676, 0.173034, + -0.678017, 0.500991, 0.073686, -0.52229, -0.580916, -0.022068, 0.348055, -0.923532, -0.232544, + -0.722589, -0.935072, 0.535903, -0.343543, -0.953129, -0.287978, -0.552311, 0.540574, -0.157021, + -0.606097, -0.408759, -0.221214, 0.765341, 0.090932, -0.791373, -0.25892, 0.921558, -0.854483, + -0.374965, 0.871066, -0.403318, 0.761705, -0.654887, 0.75696, 0.660792, -0.186945, -0.927602, + -0.338239, 0.25045, -0.334917, -0.798098, -0.883854, 0.476172, 0.720843, -0.378767, 0.038216, + -0.612152, 0.577388, -0.657126, -0.567145, -0.407165, -0.18364, 0.123579, -0.942699, -0.365711, + -0.434003, -0.203133, -0.056929, 0.046856, 0.510613, -0.569307, 0.021818, 0.908752, 0.128275, + -0.742854, 0.684459, -0.887424, 0.406434, 0.827906, 0.12533, 0.536385, 0.793504, 0.456616, + -0.300414, 0.217435, 0.808815, 0.234467, -0.794752, 0.870166, 0.969104, 0.580301, 0.543636, + 0.561845, -0.607151, -0.300152, 0.432207, 0.25469, 0.424945, -0.018927, -0.963696, 0.473997, + -0.62899, -0.826372, 0.988932, 0.440827, 0.496982, -0.438131, 0.36851, 0.084988, 0.682113, + 0.116977, 0.89378, -0.234218, 0.92281, 0.990362, 0.11828, -0.733191, 0.000392, 0.795989, + -0.683225, -0.357384, 0.361605, 0.203191, 0.940042, 0.16471, -0.007647, 0.131427, -0.205691, + -0.920609, -0.350745, -0.906507, 0.731684, 0.060505, 0.116441, -0.069402, -0.513095, -0.705486, + -0.153062, 0.302562, -0.547236, -0.61868, 0.649703, -0.347204, 0.563379, 0.957331, 0.939906, + -0.77316, 0.074174, -0.784106, 0.041274, 0.139066, -0.432825, 0.296807, -0.313491, 0.563411, + 0.009533, 0.694123, 0.6759, 0.223303, 0.186688, -0.452603, -0.660361, 0.674206, 0.65992, + 0.15682, 0.839023, 0.522147, 0.653233, -0.191807, 0.142945, -0.899094, -0.913707, 0.475475, + -0.602794, 0.761619, -0.806903, -0.827824, -0.820862, 0.641779, -0.662836, -0.857576, 0.422421, + -0.201706, -0.952456, 0.709223, 0.724775, 0.802137, 0.627734, -0.775268, -0.440219, -0.392987, + -0.972511, 0.69883, -0.404681, 0.343227, -0.508501, 0.896115, 0.70462, 0.690173, 0.489451, + 0.837065, 0.326949, 0.170884, -0.225482, 0.812599, -0.96491, 0.714204, -0.094617, -0.066201, + -0.657417, -0.437212, 0.188633, -0.407489, 0.356005, 0.140876, -0.851256, 0.546545, -0.440294, + -0.361303, -0.368037, 0.395117, -0.986063, -0.720675, 0.402438, -0.302995, -0.189749, -0.898486, + 0.101413, 0.470629, -0.360957, 0.07643, 0.02836, -0.211752, 0.806583, 0.25752, 0.190072, + -0.031105, -0.020958, 0.536986, 0.057513, 0.226288, 0.811557, 0.707057, -0.36699, -0.81885, + 0.263391, -0.682995, -0.994539, 0.686692, -0.828817, 0.987033, -0.921262, -0.814239, 0.574933, + 0.077161, -0.435858, 0.379571, -0.649729, -0.551178, -0.96305, -0.512231, -0.858917, 0.856885, + -0.434724, 0.169667, -0.449465, -0.2291, 0.730514, 0.203518, 0.482819, 0.326745, -0.81502, + 0.600556, 0.810222, 0.298855, 0.796594, -0.476475, -0.654269, -0.803201, -0.158118, -0.098896, + -0.568391, -0.341988, -0.322041, 0.96443, -0.071411, 0.810697, 0.096328, 0.356336, 0.576261, + -0.920423, -0.450749, -0.759991, 0.971466, 0.366971, -0.41913, -0.754116, 0.553772, 0.232121, + -0.49197, -0.725746, -0.521879, 0.243515, -0.841949, -0.105523, 0.593541, 0.53413, 0.107926, + 0.106246, 0.233653, 0.390553, 0.789274, 0.27163, 0.549738, 0.697073, -0.77572, -0.533743, + 0.54904, 0.200351, -0.577232, 0.295501, -0.909096, -0.372079, 0.504263, -0.026349, -0.675785, + 0.494299, 0.069491, -0.143111, -0.96171, -0.360717, 0.110448, -0.543429, 0.168293, -0.710382, + 0.771642, 0.770024, 0.589005, -0.118799, -0.996532, -0.390477, -0.081013, -0.921657, 0.787296, + 0.284649, 0.758676, -0.894686, -0.513443, 0.225374, -0.01524, -0.581583, 0.731184, 0.41239, + -0.047685, 0.952997, -0.975255, -0.908324, 0.199436, 0.907524, 0.565321, -0.550297, 0.717432, + 0.519579, 0.056846, 0.63267, 0.197899, 0.001313, -0.276885, -0.531282, -0.630358, -0.131455, + -0.683882, 0.423836, 0.282381, -0.974999, -0.735567, 0.714635, -0.524245, -0.010314, -0.64051, + -0.218706, 0.493192, 0.254174, 0.490831, -0.058226, -0.797866, -0.012586, 0.592855, 0.233908, + 0.206813, 0.196901, 0.820488, 0.50447, -0.163555, -0.542537, 0.813727, -0.520238, -0.668494, + 0.312375, -0.638574, -0.862872, -0.809769, 0.246589, -0.628404, 0.884629, -0.040131, -0.42471, + -0.613188, -0.298951, 0.87241, -0.638327, -0.925882, 0.297535, 0.339093, -0.847262, -0.448873, + 0.866783, -0.472681, 0.419565, -0.480026, -0.88281, -0.964665, 0.762796, 0.306571, 0.284389, + 0.344184, 0.385387, 0.660179, 0.767211, 0.77113, 0.321336, 0.17859, 0.214676, -0.809937, + 0.445868, 0.246609, 0.434674, -0.246758, 0.830595, 0.120128, -0.237033, -0.028266, -0.399142, + -0.146931, 0.848752, 0.331705, -0.111764, 0.037764, 0.228428, -0.577107, -0.548505, 0.881765, + 0.005449, 0.297623, -0.460188, -0.735058, 0.198375, 0.540114, -0.941861, -0.989022, -0.333508, + 0.646684, -0.893528, 0.798917, 0.904352, -0.224422, 0.063876, -0.041301, 0.97426, 0.111126, + 0.244348, -0.34216, -0.012214, -0.530308, 0.050276, -0.138762, 0.186382, 0.194415, -0.818198, + 0.66809, 0.550059, 0.70442, 0.736454, 0.258023, 0.546659, 0.492904, 0.596235, -0.602197, + 0.473801, -0.080122, 0.386798, 0.367589, -0.745381, -0.454912, -0.711902, -0.265864}; + const std::vector wanted_output{ + -0.152311, -0.555305, 0.290613, -0.560336, 0.621021, 0.81671, 0.160533, -0.200602, -0.045157, + 0.468336, -0.763917, -0.267674, -0.609262, -0.904498, -0.715503, -0.642518, 0.761419, 0.611228, + -0.678887, -0.789155, 0.895537, 0.237365, 0.460499, 0.156166, -0.373647, -0.540257, 0.538022, + -0.987853, -0.83212, 0.301981, -0.262243, 0.191282, 0.120005, -0.562995, -0.048374, -0.58207, + 0.026877, 0.46546, 0.434032, -0.145205, 0.190593, 0.084814, -0.421112, -0.459592, -0.393539, + -0.458109, -0.601264, -0.022695, 0.571146, 0.567125, -0.013993, -0.307374, 0.508662, 0.332777, + 0.668985, -0.28822, -0.300129, -0.132824, 0.228078, -0.918638, -0.732191, -0.02438, 0.006567, + 0.368169, 0.080807, -0.647488, -0.032461, -0.303376, -0.186447, 0.377999, 0.19601, 0.019882, + 0.394409, 0.167682, -0.267478, -0.021615, -0.264145, -0.538898, -0.154122, 0.373431, 0.507609, + 0.66219, 0.258043, -0.007597, 0.478761, -0.014075, 0.474903, -0.394407, -0.102043, -0.322783, + 0.13047, -0.480989, -0.60065, -0.192877, -0.170835, 0.362003, -0.224874, -0.478057, -0.014371, + -0.150133, -0.398346, 0.322661, 0.042594, -0.05641, -0.028085, -0.190642, -0.145215, -0.04097, + 0.109748, 0.004391, 0.075185, 0.323136, 0.568739, 0.5615, -0.187583, 0.20725, 0.348693, + -0.029531, 0.247439, 0.027845, 0.14234, -0.196092, -0.036147, -0.579278, -0.211802, -0.315307, + -0.302011, 0.032918, -0.068888, -0.282074, 0.009816, -0.074136, -0.464057, 0.125006, -0.042403, + -0.143544, -0.017541, -0.216512, -0.183015, -0.138553, 0.090931, -0.071518, 0.04739, 0.383582, + 0.28061, 0.405423, -0.050884, -0.013197, 0.389724, -0.164837, 0.367519, 0.111884, 0.119823, + -0.261509, 0.11453, -0.561877, -0.224357, -0.138108, -0.047476, 0.103444, -0.038621, -0.207167, + -0.141235, 0.007387, -0.560446, 0.05956, -0.110637, -0.030746, -0.066087, -0.084468, -0.18175, + -0.14107, -0.049647, 0.070344, 0.086854, 0.233474, 0.170486, 0.372947, -0.023784, 0.098065, + 0.404551, -0.216222, 0.47884, 0.220392, 0.097622, -0.255228, 0.165398, -0.492931, -0.075683, + -0.244874, -0.075568, 0.170656, -0.229319, -0.254024, -0.199378, 0.077959, -0.503107, 0.003254, + 0.005329, -0.065277, -0.120992, -0.068905, -0.211758, -0.106643, -0.033163, 0.123098, 0.074594, + 0.271957, 0.166872, 0.27176, -0.046112, 0.221397, 0.324855, -0.150438, 0.482894, 0.176029, + 0.013198, -0.312592, 0.113434, -0.390847, -0.008719, -0.386921, -0.247243, 0.008434, -0.118694, + -0.249154, -0.318415, -0.043165, -0.309231, -0.009558, 0.200242, -0.108899, -0.126471, 0.115219, + -0.183916, -0.039381, -0.093272, 0.089387, 0.014448, 0.115322, 0.209354, 0.169417, 0.127003, + 0.242669, 0.244809, -0.097404, 0.544056, 0.140463, -0.042026, -0.303731, 0.095655, -0.261534, + 0.029457, -0.449198, -0.174034, 0.082618, -0.019839, -0.168829, -0.219352, -0.212386, -0.1034, + -0.085106, 0.307961, -0.184035, -0.261556, 0.000846, -0.091288, 0.092633, 0.122938, 0.04239, + 0.096352, 0.088358, 0.273745, 0.055704, 0.212335, 0.244829, 0.038308, -0.036689, 0.377989, + 0.136308, 0.14378, -0.231399, 0.014145, -0.085086, 0.101874, -0.34424, -0.055723, 0.08976, + 0.062904, -0.022746, -0.115468, -0.210509, -0.127544, -0.150444, 0.134996, -0.048818, -0.287668, + 0.037708, -0.238039, -0.024879, 0.018868, -0.081724, 0.057627, 0.023311, 0.128544, 0.077348, + 0.041271, 0.127507, 0.124121, -0.095156, 0.353344, 0.126397, 0.163207, -0.234847, 0.115934, + -0.05267, 0.000536, -0.28976, -0.089526, 0.299891, -0.128217, -0.128899, -0.216251, -0.166611, + 0.041046, -0.094308, 0.302798, -0.287368, -0.310423, 0.128956, -0.158304, 0.090252, 0.137089, + -0.013707, 0.046378, 0.105414, 0.262089, -0.065677, 0.048325, 0.174226, 0.091149, -0.115773, + 0.311504, 0.059089, 0.09104, -0.366544, -0.049326, -0.015025, 0.028113, -0.464708, -0.232765, + 0.121045, -0.028616, -0.023654, -0.127684, -0.236391, -0.077396, 0.028627, 0.09419, -0.07993, + -0.282233, 0.007558, -0.218282, -0.115375, -0.040666, -0.086461, 0.045347, 0.106587, 0.237925, + 0.067206, -0.062326, 0.127416, 0.192535, -0.088201, 0.275597, 0.098437, 0.229904, -0.281196, + 0.067505, -0.181516, -0.077759, -0.232659, -0.157611, 0.264017, 0.020659, -0.073655, -0.249952, + -0.173944, -0.121195, -0.023772, 0.087215, -0.147816, -0.233024, 0.033556, -0.090787, -0.133837, + 0.034915, -0.062627, -0.013471, 0.122452, 0.17264, 0.128074, 0.108242, 0.235397, 0.148739, + -0.058222, 0.288407, 0.063729, 0.106479, -0.254115, -0.080438, -0.166575, -0.168182, -0.356893, + -0.10174, 0.361757, 0.050968, -0.004218, -0.295261, -0.096697, -0.131565, 0.019434, -0.045561, + 0.003995, -0.360419, 0.070738, -0.093825, -0.128945, -0.10436, -0.045266, 0.059783, 0.00048, + 0.058902, 0.176175, 0.188543, 0.306246, 0.117533, -0.090995, 0.317517, 0.133077, 0.0549, + -0.245492, -0.040641, -0.120109, -0.183318, -0.278133, -0.174471, 0.355279, -0.019266, -0.010676, + -0.155102, -0.05258, 0.032912, 0.07154, 0.111638, -0.10707, -0.199697, 0.174703, -0.172144, + 0.084322, -0.020801, -0.210399, 0.14341, 0.04363, 0.203664, 0.045231, 0.13421, 0.116546, + 0.202205, -0.147645, 0.286262, 0.046482, 0.053956, -0.327434, -0.007036, -0.099328, -0.240722, + -0.305393, -0.259355, 0.277654, 0.079427, 0.083081, -0.202759, -0.107641, -0.044988, 0.006645, + 0.173739, -0.110564, -0.187515, 0.097352, -0.203177, -0.040582, 0.007755, -0.101993, 0.099152, + 0.080044, 0.107851, -0.01342, 0.099408, 0.029381, 0.136835, -0.127194, 0.326509, 0.055424, + 0.044296, -0.194036, -0.009586, -0.146518, -0.203856, -0.257481, -0.113511, 0.271283, 0.081854, + 0.171883, -0.284185, -0.126191, 0.128082, 0.046394, 0.142464, -0.130735, -0.246277, 0.150708, + -0.139758, -0.015291, -0.0339, -0.067166, 0.162733, 0.071802, 0.109153, -0.126337, 0.127, + 0.070455, -0.008719, -0.063449, 0.266275, 0.02165, 0.123764, -0.12986, -0.028588, -0.039256, + -0.100778, -0.16461, -0.105079, 0.254729, 0.139775, 0.177857, -0.256892, -0.144803, 0.028241, + 0.079841, 0.201223, -0.054023, -0.20649, 0.090601, -0.184247, -0.034157, -0.031217, -0.098102, + 0.136332, 0.05328, 0.065513, 0.001106, 0.089629, 0.057258, 0.073746, -0.057169, 0.25991, + 0.032174, 0.052166, 0.028624, -0.037427, -0.216102, -0.181105, -0.202919, -0.056605, 0.258892, + 0.048133, 0.130443, -0.277917, -0.077842, 0.093128, 0.028169, 0.078632, -0.146743, -0.282404, + 0.111286, -0.146812, -0.080733, -0.130275, -0.116578, 0.080289, 0.064602, 0.019328, -0.024936, + 0.138526, 0.146021, 0.064682, -0.017659, 0.323333, 0.01532, 0.091673, -0.00694, 0.085687, + -0.183654, -0.05331, -0.141528, -0.097382, 0.236939, 0.020514, 0.142642, -0.190083, -0.092045, + 0.068156, -0.022827, 0.024085, -0.164916, -0.31336, 0.097534, -0.050527, -0.02114, 0.073525, + -0.143514, 0.172844, 0.05654, 0.034617, -0.086969, 0.154306, 0.1498, -0.072449, -0.064921, + 0.201049, 0.073517, 0.144596, -0.029018, -0.022715, -0.066981, 0.039023, -0.173875, -0.112469, + 0.151462, -0.004645, 0.130213, -0.153348, -0.044684, 0.074398, 0.026201, 0.044029, -0.118471, + -0.320069, 0.113195, -0.089035, -0.05927, -0.021662, -0.099457, 0.066563, -0.003353, 0.006568, + -0.01819, 0.12791, 0.138061, 0.015579, -0.016616, 0.222565, 0.160108, 0.166372, -0.090154, + 0.042012, -0.038639, -0.048089, -0.140395, -0.086852, 0.193384, -0.019166, 0.128229, -0.05117, + -0.003585, 0.030107, 0.025827, -0.041154, -0.144218, -0.195458, 0.126458, -0.143872, 0.047257, + -0.01226, -0.1545, 0.144316, 0.130788, 0.020716, 0.066596, 0.159724, 0.111718, 0.091311, + -0.092712, 0.321408, 0.040462, 0.088562, -0.049788, 0.124589, -0.025551, -0.062177, -0.055084, + -0.074372, 0.172992, 0.030673, 0.071744, -0.148577, -0.051786, 0.148133, 0.029535, 0.129155, + -0.195349, -0.316269, 0.108944, -0.011155, 0.045785, 0.0146, -0.142376, -0.027537, 0.085942, + -0.080757, -0.028106, 0.064738, 0.216786, 0.018012, -0.102957, 0.250698, 0.031729, 0.15749, + -0.022375, 0.07047, -0.037982, -0.026011, -0.168367, -0.020299, 0.28335, 0.088652, 0.070902, + -0.085922, -0.157398, 0.124283, 0.071448, 0.037966, -0.155583, -0.265409, 0.041798, -0.022967, + 0.01296, 0.076772, -0.159696, 0.109092, 0.022428, 0.004987, -0.006202, 0.130601, 0.136161, + -0.023554, -0.129143, 0.253781, 0.038939, 0.107849, 0.029704, -0.003574, -0.072005, -0.05884, + -0.104892, -0.042709, 0.138059, 0.026685, 0.019425, -0.091608, -0.142933, 0.220618, 0.104382, + 0.045517, -0.163376, -0.315595, -0.000969, 0.013044, 0.076331, 0.061971, -0.155383, 0.101141, + 0.050596, -0.011034, -0.013563, 0.010989, 0.142134, -0.019649, -0.143852, 0.245465, 0.049925, + 0.102422, 0.042117, 0.032969, -0.100319, -0.061009, -0.094466, -0.056923, 0.087728, -0.004224, + 0.004148, -0.157758, -0.04805, 0.204568, 0.120766, 0.102265, -0.10555, -0.220056, 0.041827, + 0.065657, 0.083092, 0.02379, -0.202656, 0.002362, 0.093331, -0.12653, -0.024312, 0.021722, + 0.098427, 0.071746, -0.111139, 0.349089, -0.083768, 0.086868, 0.126537, 0.068204, -0.188149, + -0.066471, -0.0711, -0.08064, 0.192757, 0.009309, 0.088766, -0.110612, -0.091667, 0.122792, + 0.109176, 0.068089, -0.069821, -0.256649, 0.05021, -0.004619, 0.025456, 0.045306, -0.089959, + 0.096972, 0.082138, -0.051778, 0.000503, 0.083061, 0.078275, -0.002978, -0.127178, 0.29163, + 0.017881, 0.11098, 0.036041, 0.017968, -0.109489, -0.043902, -0.0601, -0.065579, 0.133339, + -0.028885, 0.040219, -0.054407, -0.059583, 0.162796, 0.091616, 0.089542, -0.101412, -0.265854, + 0.084877, -0.01785, 0.077741, 0.072268, -0.220629, -0.02812, 0.076507, -0.117074, 0.032193, + 0.139031, 0.077274, 0.083769, -0.099597, 0.272785, -0.046573, 0.189847, 0.04395, 0.088329, + -0.164864, -0.022403, -0.064572, -0.083866, 0.228826, 0.01345, 0.16716, -0.106746, -0.091633, + 0.182581, 0.115273, 0.081368, -0.152434, -0.214935, 0.097927, -0.059083, 0.076904, 0.066584, + -0.159003, 0.033087, 0.150013, -0.078219, 0.000386, 0.086482, 0.087942, 0.004016, -0.187434, + 0.201119, -0.026711, 0.167688, 0.094429, 0.078143, -0.116331, -0.012775, -0.048909, 0.010029, + 0.200092, -0.049182, 0.040476, -0.134921, -0.0841, 0.118823, 0.060065, 0.053777, -0.150082, + -0.258716, 0.125856, -0.085127, 0.088565, 0.105201, -0.134119, 0.013832, 0.081204, -0.032273, + 0.038072, 0.067157, 0.079748, 0.025196, -0.165282, 0.182458, 0.01016, 0.106214, -0.060633, + 0.035557, -0.076706, -0.042875, -0.157092, -0.092855, 0.163785, -0.075159, 0.146357, -0.148477, + -0.118452, 0.145486, 0.0807, -0.014087, -0.164186, -0.224916, 0.107302, -0.119976, 0.014905, + -0.004929, -0.160195, -0.0261, 0.123892, -0.058617, -0.021498, 0.231328, 0.121537, 0.047719, + -0.121197, 0.205094, -0.014529, 0.204384, -0.001314, 0.146287, -0.071536, 0.002139, -0.049348, + -0.0164, 0.203204, -0.004549, 0.101151, -0.1654, -0.074515, 0.1694, 0.099201, 0.00115, + -0.187845, -0.209438, 0.050033, -0.052663, 0.137511, 0.12474, -0.055663, 0.017716, 0.115044, + -0.002525, -0.024731, 0.142384, 0.105099, -0.022542, -0.169169, 0.218778, 0.025023, 0.163293, + 0.030919, 0.065077, -0.071787, -0.003745, -0.035386, 0.007641, 0.138546, 0.018758, 0.191013, + -0.164489, -0.077764, 0.198383, 0.081838, -0.003703, -0.161739, -0.230823, -0.000323, -0.161619, + 0.127076, 0.060428, -0.070056, -0.045573, 0.142654, -0.061445, -0.020618, 0.151158, 0.047894, + -0.019518, -0.195748, 0.193176, 0.023718, 0.163558, 0.033423, 0.151243, -0.080252, -0.076902, + -0.022903, 0.042886, 0.159846, 0.01155, 0.214578, -0.156675, -0.086123, 0.13347, 0.083471, + 0.020203, -0.115937, -0.238769, 0.053711, -0.115519, 0.097135, -0.009696, -0.133664, 0.004725, + 0.11554, -0.088154, 0.010888, 0.200026, 0.097789, 0.040973, -0.144763, 0.224708, -0.000459, + 0.109755, 0.015731, 0.147392, -0.1436, -0.057281, -0.045226, 0.030997, 0.179556, 0.036405, + 0.153319, -0.180539, -0.051807, 0.169336, 0.068616, 0.052923, -0.140236, -0.228908, 0.057522, + -0.103768, 0.159346, 0.060711, -0.164667, 0.028314, 0.139929, -0.082298, 0.068429, 0.173861, + 0.096998, 0.031583, -0.17906, 0.233725, 0.037643, 0.057079, -0.057525, 0.105755, -0.058902, + -0.039588, -0.092247, -0.00117, 0.155866, 0.041827, 0.152873, -0.157409, -0.067371, 0.146, + 0.103042, 0.083445, -0.069035, -0.259195, 0.098365, -0.066427, 0.126072, 0.027073, -0.163162, + -0.066007, 0.13591, -0.109777, -0.000356, 0.094304, 0.079563, 0.06362, -0.126288, 0.20984, + -0.034514, 0.087996, -0.016071, 0.113034, -0.182046, -0.049984, -0.032459, -0.045804, 0.195273, + 0.004029, 0.106068, -0.091641, -0.052013, 0.119063, 0.063159, -0.025944, -0.142023, -0.186798, + 0.013217, -0.01022, 0.172409, 0.070941, -0.133784, -0.006769, 0.164195, -0.088204, 0.070612, + 0.091449, 0.048779, 0.041069, -0.240705, 0.199175, 0.029149, 0.075028, -0.002045, 0.116744, + -0.103671, -0.021342, 0.034815, -0.085382, 0.074555, 0.026619, 0.144954, -0.081772, -0.098267, + 0.044653, 0.10487, -0.038145, -0.117785, -0.207504, 0.027652, -0.0315, 0.117545, 0.025478, + -0.096303, -0.049199, 0.112211, -0.073406, 0.083076, 0.09392, 0.117464, 0.00039, -0.207383, + 0.164887, 0.007554, 0.077212, 0.022742, 0.162937, -0.116502, -0.005485, 0.005882, -0.020938, + 0.154188, 0.04194, 0.195185, -0.041812, -0.157812, 0.114216, 0.132035, -0.041737, -0.162724, + -0.194211, 0.02357, 4.4e-05, 0.072342, 0.099428, -0.098817, 0.009826, 0.125821, -0.069428, + 0.020577, 0.032363, 0.045344, -0.01286, -0.179407, 0.118125, 0.035219, 0.109727, -0.035994, + 0.083985, -0.046035, 0.038729, -0.006709, 0.031805, 0.13159, -0.045997, 0.185736, -0.081292, + -0.060599, 0.0163, 0.110047, -0.067216, -0.08772, -0.193015, 0.050347, -0.069451, 0.099557, + 0.056026, -0.115711, -0.038314, 0.067638, -0.10881, 0.120443, 0.170483, 0.092209, 0.102341, + -0.108084, 0.168562, 0.042821, 0.082605, -0.065265, 0.137306, -0.084856, -0.026935, -0.034443, + 0.017333, 0.18951, 0.019193, 0.113384, -0.098677, -0.11716, 0.098043, 0.054842, -0.14915, + -0.24819, -0.176432, 0.072914, 0.02992, 0.141334, 0.087237, 0.004246, -0.00809, 0.072474, + -0.121046, -0.028714, 0.143658, 0.070273, 0.041467, -0.063327, 0.177697, 0.119222, 0.097656, + -0.041129, 0.214613, -0.03499, 0.068264, -0.064825, 0.084763, 0.164168, 0.02525, 0.085242, + -0.120513, -0.074065, 0.085897, 0.091295, -0.051282, -0.124316, -0.215961, 0.014843, -0.06534, + 0.144346, 0.114998, -0.073066, -0.004433, 0.089557, -0.109415, 0.082491, 0.084922, 0.027381, + 0.062995, -0.137551, 0.175342, 0.12721, 0.04627, -0.061651, 0.113715, -0.057258, -0.071887, + -0.078182, -0.023585, 0.160545, -0.034568, 0.107153, -0.186959, -0.007377, 0.074375, 0.024899, + -0.083987, -0.196158, -0.154106, 0.11596, -0.036073, 0.139376, 0.002162, -0.041585, -0.033912, + 0.112829, -0.060544, 0.048131, 0.189767, 0.055194, 0.078848, -0.094806, 0.235846, 0.116468, + 0.000746, -0.085861, 0.145456, -0.016226, -0.059402, -0.092781, 0.010984, 0.130022, 0.042859, + 0.134557, -0.157964, -0.080482, 0.151562, 0.062689, 0.011182, -0.175126, -0.177344, 0.046991, + -0.019511, 0.184015, 0.050014, -0.092136, -0.088531, 0.134035, -0.049276, 0.017823, 0.07745, + 0.006003, 0.006539, -0.138504, 0.159337, 0.078587, 0.053467, -0.002537, 0.067003, -0.02341, + -0.07499, -0.071232, 0.05307, 0.152298, 0.003193, 0.140854, -0.10128, -0.07161, 0.070478, + 0.056656, -0.018103, -0.135674, -0.14145, 0.055455, -0.027341, 0.129165, 0.023683, -0.131784, + -0.050178, 0.131573, -0.047658, 0.065749, 0.090491, -0.012457, 0.078379, -0.121009, 0.17965, + 0.059669, 0.089923, -0.056201, 0.135985, -0.06468, -0.019897, -0.047464, 0.024134, 0.129092, + 0.024318, 0.190625, -0.08735, -0.116217, 0.078405, 0.077368, -0.05186, -0.087242, -0.200915, + 0.075867, -0.057281, 0.099098, 0.071468, -0.13335, -0.058528, 0.094643, -0.056792, 0.063953, + 0.088513, -0.019591, -0.026589, -0.110989, 0.131907, 0.024844, 0.114708, -0.068906, 0.051158, + -0.035597, 0.006503, -0.050715, 0.049249, 0.14691, 0.015636, 0.151186, -0.139325, -0.051451, + 0.056557, 0.090643, -0.029689, -0.123306, -0.221106, 0.114218, -0.048783, 0.133272, 0.03159, + -0.095926, -0.067904, 0.08387, -0.057079, 0.059454, 0.125489, 0.028897, 0.038036, -0.11181, + 0.221409, 0.053242, 0.029302, -0.034036, 0.080648, -0.065947, -0.046565, -0.094383, 0.088882, + 0.128303, 0.023679, 0.118069, -0.123328, -0.035139, 0.075791, 0.014638, -0.022035, -0.121241, + -0.207374, 0.086872, -0.013929, 0.188318, 0.096462, -0.123897, -0.049822, 0.090273, -0.035526, + 0.03741, 0.141246, -0.02332, 0.037715, -0.153419, 0.165375, 0.130596, 0.069673, -0.041936, + 0.105657, -0.04815, 0.019394, -0.060244, 0.055803, 0.056674, 0.003363, 0.121249, -0.175685, + -0.027721, 0.045268, 0.018199, -0.052234, -0.10003, -0.18155, 0.121782, -0.059442, 0.180682, + 0.082537, -0.071207, -0.058106, 0.067161, -0.060436, 0.072924, 0.121109, -0.007519, 0.016076, + -0.157771, 0.14505, 0.096556, 0.032765, -0.035679, 0.057507, -0.079139, 0.034014, -0.069643, + 0.06349, 0.046631, -0.029485, 0.109984, -0.157322, -0.034685, 0.086564, 0.017228, 0.030451, + -0.078393, -0.165945, 0.049657, -0.068657, 0.161688, 0.064024, -0.136812, -0.086731, 0.051545, + -0.040343, 0.056379, 0.060466, -0.031679, 0.05925, -0.125614, 0.155252, 0.098746, 0.022675, + -0.044584, 0.062284, -0.055934, -0.006148, -0.103846, 0.030106, 0.06116, -0.059707, 0.129526, + -0.104907, -0.108106, 0.026028, -0.003929, -0.04534, -0.088184, -0.14841, 0.108649, -0.096293, + 0.156576, 0.090346, -0.064311, -0.035679, 0.108011, 0.003585, 0.070199, 0.094041, -0.0132, + 0.019993, -0.154932, 0.078018, 0.032611, 0.07031, -0.017228, 0.039767, -0.079997, 0.044683, + -0.049915, 0.034137, -0.000863, -0.082678, 0.132238, -0.122784, -0.105907, 0.085721, -0.010061, + -0.000711, -0.051222, -0.181949, 0.115845, -0.064368, 0.119182, 0.040025, -0.091966, -0.054676, + 0.0933, 0.000528, 0.019671, 0.088172, -0.007273, 0.016346, -0.100202, 0.086847, 0.039551, + 0.070729, -0.068145, 0.037915, -0.030758, 0.029983, -0.037296, 0.035579, 0.032206, -0.047782, + 0.093924, -0.084011, -0.10259, 0.076585, 0.032015, 0.042841, -0.027809, -0.165325, 0.019547, + -0.081449, 0.096882, 0.102306, -0.137737, -0.041951, 0.101376, -0.072551, -0.010009, 0.052739, + 0.053439, 0.053298, -0.117979, 0.099964, 0.011286, 0.107987, -0.026751, 0.058891, -0.045066, + 0.042335, -0.043341, 0.034342, 0.046253, -0.028895, 0.097576, -0.106147, -0.043646, 0.050669, + 0.00841, -0.038763, -0.094812, -0.142485, 0.050894, -0.073867, 0.10062, 0.0662, -0.072041, + -0.013866, 0.110962, 0.010145, 0.029554, 0.108881, 0.001361, 0.036763, -0.142379, 0.117908, + 0.07609, 0.071545, -0.054802, 0.049124, 0.008385, 0.027731, -0.031334, 0.054439, 0.003703, + -0.034128, 0.13017, -0.130644, -0.084535, 0.097163, -0.024804, 0.015352, -0.063831, -0.166566, + 0.035377, -0.123959, 0.092931, 0.018879, -0.132994, -0.063124, 0.074969, -0.06112, -0.012903, + 0.063154, 0.066664, 0.068832, -0.169542, 0.119558, 0.04304, 0.115838, 0.005703, 0.100093, + -0.064573, 0.020883, -0.019212, 0.065865, 0.02751, -0.079994, 0.089703, -0.118786, -0.017417, + 0.080141, 0.02922, 0.003242, -0.060458, -0.187775, 0.084994, -0.07609, 0.095897, 0.057937, + -0.116668, -0.07561, 0.012586, -0.01212, -0.026314, 0.082339, 0.027346, 0.033726, -0.114921, + 0.121889, 0.056971, 0.022935, -0.086171, 0.041259, -0.007528, 0.016216, -0.067113, -0.005561, + 0.039837, -0.032028, 0.146446, -0.074562, -0.089661, 0.09202, -0.011569, -0.019094, -0.050683, + -0.17115, -0.004716, -0.098746, 0.043513, 0.084045, -0.134123, -0.014922, 0.028033, -0.019664, + 0.052264, 0.005385, 0.028586, -0.00304, -0.128643, 0.08895, 0.027807, 0.109774, -0.046685, + -0.008659, -0.013079, 0.02321, -0.038681, 0.008892, 0.066934, -0.029287, 0.093791, -0.074712, + -0.115324, 0.073891, -0.000317, -0.010712, -0.020126, -0.196442, 0.010121, -0.048992, 0.037816, + 0.076901, -0.055961, -0.031414, 0.055958, 0.019703, 0.059949, -0.001505, -0.002998, -0.041811, + -0.193179, 0.074952, 0.101803, 0.143836, -0.089277, -0.026622, 0.041456, 0.044954, -0.028826, + 0.019093, 0.043112, -0.058755, 0.136102, -0.077716, -0.054241, 0.093544, -0.009725, 0.032397, + -0.066543, -0.202596, 0.075437, -0.104478, 0.117188, 0.030539, -0.137575, -0.071362, -0.004522, + -0.043506, -0.052854, 0.076197, 0.036947, 0.071469, -0.147767, 0.128393, 0.046092, 0.096818, + -0.053435, 0.063897, -0.028502, -0.00779, -0.041838, 0.021163, 0.061489, -0.052425, 0.106968, + -0.055542, -0.037325, 0.105869, -0.027753, 0.013845, 0.006446, -0.19788, -0.010099, -0.073843, + 0.052538, 0.011528, -0.090351, -0.061801, 0.045343, 0.016777, 0.061105, 0.025723, -0.009475, + 0.029913, -0.163385, 0.114026, 0.080232, 0.072933, -0.102999, -0.000936, 0.041948, -0.005923, + -0.087806, 0.007453, 0.015498, -0.043379, 0.105169, -0.092967, -0.061638, 0.056901, -0.035498, + -0.008384, -0.05994, -0.114852, 0.039194, -0.092147, 0.074887, 0.047289, -0.111246, -0.042943, + 0.080951, 0.015995, 0.019968, 0.022403, 0.085197, 0.045802, -0.166823, 0.072574, 0.013983, + 0.04929, -0.024802, 0.030815, 0.016647, 0.010571, -0.053714, 0.007906, 0.030231, -0.020048, + 0.092377, -0.115473, -0.069824, 0.042295, -0.019914, 0.012955, -0.028628, -0.2264, 0.08404, + -0.103745, 0.040304, -0.011986, -0.061821, -0.080558, -0.00891, 0.011318, 0.038691, 0.081233, + 0.090331, 0.001802, -0.148556, 0.118447, 0.027878, 0.068947, -0.097614, -0.013395, -0.00189, + -0.019322, -0.065181, 0.035104, 0.055563, -0.004331, 0.087716, -0.10248, -0.053949, 0.037147, + 0.004753, 0.004825, -0.040833, -0.193065, 0.031038, -0.068023, 0.033189, 0.040815, -0.127028, + -0.097159, -0.008156, 0.025462, -0.000587, 0.051519, 0.054587, -0.001114, -0.180042, 0.130249, + 0.049076, 0.052163, -0.082583, -0.018249, 0.011368, -0.004635, -0.025197, 0.010886, 0.043749, + -0.004645, 0.091509, -0.096608, -0.046323, 0.033797, 0.049484, 0.006061, -0.039218, -0.197889, + 0.031154, -0.086044, 0.004716, -0.011058, -0.068533, -0.127726, 0.017892, 0.030013, -0.004359, + 0.056701, 0.041436, 0.041855, -0.132705, 0.117754, 0.074552, 0.067334, -0.088255, 0.011735, + -0.020346, -0.035764, -0.070615, 0.048928, 0.077342, 0.019342, 0.094389, -0.116269, -0.054199, + 0.069613, 0.027393, 0.011538, 0.006187, -0.173866, 0.036442, -0.098264, 0.00555, 0.058363, + -0.111297, -0.103304, -0.002531, 0.011551, 0.044826, 0.02915, 0.045782, 0.015631, -0.14642, + 0.108198, 0.004227, 0.023629, -0.079424, -0.010391, -0.040565, -0.021882, -0.028992, 0.035979, + 0.06703, 0.021463, 0.072237, -0.10528, -0.033096, 0.084878, -0.036608, -0.01587, -0.009331, + -0.160456, 0.025154, -0.053268, 6e-05, 0.05257, -0.097471, -0.07565, 0.035112, -0.010179, + 0.045411, 0.040047, 0.052833, 0.014063, -0.131078, 0.082688, 0.028342, 0.025387, -0.108098, + -0.026056, 0.020588, 0.010754, -0.027185, 0.021191, 0.03636, 0.047717, 0.062842, -0.12689, + -0.072924, 0.101626, -0.002816, -0.007295, -0.01929, -0.192128, 0.0283, -0.054934, 0.019808, + 0.067258, -0.071758, -0.081068, 0.018583, -0.014405, 0.066972, 0.001101, 0.023219, 0.004451, + -0.138477, 0.071774, 0.041366, 0.07097, -0.108537, -0.036532, -0.048614, 0.029074, -0.015358, + 0.024666, 0.048638, 0.023761, 0.118647, -0.110128, -0.062081, 0.111881, -0.037133, -0.053081, + -0.074024, -0.142749, -0.007125, -0.077743, 0.023807, 0.064177, -0.073555, -0.034378, 0.042367, + -0.014787, 0.029811, -0.003204, 0.035264, -0.012304, -0.147374, 0.101075, 0.057854, 0.032089, + -0.096452, -0.03109, 0.038638, 0.042063, -0.032405, 0.049704, 0.046344, 0.020287, 0.047731, + -0.100854, -0.064465, 0.087057, -0.008813, 0.051442, -0.01588, -0.158169, 0.009502, -0.07614, + -0.009803, 0.033826, -0.070004, -0.04887, 0.019231, 0.050872, 0.051351, -0.017741, 0.055488, + 0.023394, -0.12661, 0.115723, 0.025583, -9.1e-05, -0.121851, -0.030776, -0.052589, -0.024687, + -0.041413, 0.030459, 0.033591, 0.039425, 0.089784, -0.076863, -0.065157, 0.064435, -0.028765, + 0.025977, -0.018482, -0.162879, -0.002734, -0.07103, 0.027508, 0.048841, -0.111451, -0.018794, + 0.053534, 0.011611, 0.014185, 0.029207, 0.033847, -0.005367, -0.161356, 0.078893, 0.014911, + 0.058147, -0.090964, -0.002886, -0.054399, 0.003586, 0.03493, 0.024044, 0.010097, 0.026224, + 0.077023, -0.099678, -0.068762, 0.02673, -0.047222, 0.017619, -0.039647, -0.145983, -0.008706, + -0.093967, -0.007657, 0.06542, -0.070066, -0.019159, 0.003333, 0.055923, 0.075929, -0.009151, + 0.050776, -0.0241, -0.166258, 0.082108, 0.013857, 0.015895, -0.083425, -0.059383, -0.079408, + 0.008399, 0.038831, 0.007199, 0.026266, 0.011169, 0.110386, -0.076984, -0.087757, 0.039875, + 0.021522, 0.018824, -0.038272, -0.150389, -0.006138, -0.105161, -0.044859, 0.071212, -0.086491, + -0.005895, 0.020395, 0.083371, 0.02487, -0.01309, 0.038972, -0.059451, -0.154476, 0.082863, + -0.000208, 0.04116, -0.079375, -0.096081, -0.046625, 0.029976, -0.001298, 0.027944, 0.056282, + 0.004332, 0.079242, -0.104495, -0.062118, 0.048546, -0.017338, -0.000214, -0.06627, -0.151001, + 0.024126, -0.097928, -0.009777, 0.078797, -0.100942, -0.022877, 0.012187, 0.098313, 0.038177, + 0.078337, 0.061287, -0.017264, -0.156999, 0.114629, 0.022794, 0.000365, -0.089595, -0.055722, + -0.034241, 0.048179, -0.009335, 0.024473, 0.025094, 0.016253, 0.046965, -0.101996, -0.063556, + 0.054212, -0.033124, 0.013469, -0.011702, -0.164175, 0.003173, -0.108642, -0.00112, 0.077431, + -0.079694, -0.011416, 0.044454, 0.009824, 0.091281, 0.045439, 0.055387, 0.022791, -0.115363, + 0.076502, 0.033535, -0.015069, -0.090336, -0.048749, -0.043806, -0.018887, 0.021338, -0.010587, + 0.040137, 0.043741, 0.06798, -0.088255, -0.075098, 0.050033, -0.0225, 0.015049, 0.000567, + -0.141369, 0.012729, -0.10426, -0.006902, 0.066768, -0.145578, -0.002764, 0.033378, 0.057977, + 0.067518, -0.015587, 0.045657, -0.054352, -0.148749, 0.055284, -0.044239, -0.008955, -0.068789, + -0.09697, -0.05862, 0.022055, -0.012162, -0.019441, 0.038155, 0.038268, 0.093098, -0.091542, + -0.079718, 0.038856, -0.053121, -0.001023, -0.067265, -0.123683, 0.004402, -0.117949, 0.010015, + 0.023599, -0.039251, 0.01576, 0.049874, 0.024645, 0.009569, 0.056278, 0.074533, -0.018515, + -0.129093, 0.098896, -0.019739, 0.026065, -0.067389, -0.061111, -0.01634, 0.014792, 0.013376, + 0.044254, 0.03604, 0.051609, 0.070986, -0.110175, -0.057497, 0.091128, -0.082, -0.004698, + -0.034205, -0.129572, 0.000335, -0.106818, 0.022289, 0.007407, -0.06046, -0.001471, 0.021948, + 0.035065, 0.053264, 0.066974, 0.068001, -0.03408, -0.114234, 0.081648, -0.016167, -0.026177, + -0.095977, -0.034136, -0.03341, 0.034958, 0.046691, 0.027411, 0.003504, 0.024038, 0.05608, + -0.091076, -0.098405, 0.015867, -0.044404, -0.001107, -0.048279, -0.133948, 0.034637, -0.084922, + 0.023052, 0.053533, -0.046845, 0.007956, 0.028037, 0.043801, 0.071415, 0.012748, 0.102637, + -0.018337, -0.122757, 0.091764, 0.010592, -0.013387, -0.086982, -0.097142, -0.004565, 0.031652, + 0.012889, 0.001631, 0.05731, 0.042597, 0.11141, -0.082974, -0.0916, 0.047887, -0.060664, + 0.012488, -0.022022, -0.138431, -0.001695, -0.114742, 0.016612, 0.044468, -0.073709, 0.039, + 0.036303, 0.028713, 0.091191, 0.000881, 0.044381, -0.049312, -0.164673, 0.067352, -0.000814, + 0.023994, -0.045497, -0.10754, 0.021449, -0.008813, 0.021855, 0.011778, 0.048274, 0.016651, + 0.08195, -0.101222, -0.054418, 0.033965, -0.072219, -0.031416, -0.036862, -0.126739, -0.019911, + -0.059921, 0.036862, 0.0075, -0.056319, 0.041733, 0.011532, -0.008176, 0.11553, 0.025115, + 0.041651, -0.022367, -0.146683, 0.081092, 0.016604, 0.021021, -0.102888, -0.07866, 0.026596, + 0.014525, 0.032552, 0.026307, 0.070361, 0.045884, 0.032701, -0.096588, -0.069467, 0.049462, + -0.053557, -0.00647, -0.013129, -0.148361, 0.044616, -0.021467, 0.045057, 0.009212, -0.097464, + -0.008498, 0.047523, -0.016196, 0.075987, 0.011407, 0.092288, 0.01394, -0.096154, 0.044324, + -0.020913, 0.018553, -0.107401, -0.057334, -0.012983, 0.032029, 0.045579, -0.001535, 0.064004, + 0.035923, 0.062778, -0.103596, -0.068469, 0.036729, -0.039899, -0.024229, -0.038113, -0.12035, + 0.021143, -0.094675, 0.053793, 0.025658, -0.067685, 0.008229, 0.050982, -0.007681, 0.064917, + 0.024167, 0.064828, -0.028481, -0.1562, 0.046154, 0.003445, -0.012092, -0.0552, -0.058104, + -0.001935, 0.044715, 0.00216, 0.036194, 0.054485, 0.009563, 0.031334, -0.100893, -0.09563, + 0.037495, -0.060399, 0.009034, -0.066022, -0.124679, 0.007905, -0.053304, 0.060046, 0.010753, + -0.041981, 0.004922, 0.005664, -0.020431, 0.093558, 0.023068, 0.121346, -0.020175, -0.141118, + 0.075653, -0.023303, -0.028128, -0.052827, -0.058819, 0.00192, 0.017216, 0.004023, 0.032184, + 0.053612, 0.005809, 0.0637, -0.075092, -0.105596, 0.038958, -0.036997, 0.022843, -0.02068, + -0.143345, -0.007361, -0.057351, 0.012069, 0.019506, -0.013751, 0.026372, 0.013748, -0.0005, + 0.076494, 0.029911, 0.117502, -0.020914, -0.135679, 0.04557, 0.009881, 0.001987, -0.094711, + -0.047323, 0.037397, 0.012078, 0.004049, 0.037575, 0.074632, 0.051666, 0.060828, -0.110823, + -0.086504, 0.025568, -0.077569, 0.018859, -0.015992, -0.114398, -0.025621, -0.094975, 0.039893, + 0.016777, -0.069251, 0.00285, 0.025686, 0.021122, 0.102266, 0.043942, 0.128394, -0.056633, + -0.195664, 0.057891, -0.045456, 0.01574, -0.078753, -0.015555, 0.012805, 0.013658, 0.015878, + 0.042359, 0.035595, 6.1e-05, 0.028242, -0.0891, -0.108898, 0.036746, -0.013842, 0.026965, + 0.016885, -0.142916, -0.011766, -0.108518, -0.014761, 0.019254, -0.042162, -0.01044, 0.021156, + 0.003791, 0.127973, 0.028051, 0.11875, -0.000409, -0.162844, 0.058185, 0.007633, 0.002686, + -0.12244, -0.08944, 0.0451, 0.026283, -0.030099, 0.032278, 0.082813, 0.058203, 0.030549, + -0.13022, -0.10213, 0.024771, -0.023386, -0.01553, -0.050723, -0.124156, -0.039342, -0.100688, + 0.041502, 0.029081, -0.065989, 0.029307, 0.019669, 0.016938, 0.131017, 0.01881, 0.104677, + -0.036294, -0.148548, 0.065983, 0.022377, -0.000893, -0.055977, -0.06815, -0.030493, 0.051883, + 0.00589, 0.02382, 0.038161, 0.006984, 0.034243, -0.096782, -0.078079, 0.033168, 0.023824, + 0.023626, 0.007576, -0.12861, -0.014624, -0.105892, 0.031969, -0.001989, -0.028135, -0.023509, + -0.044986, -0.012013, 0.05098, 0.066528, 0.081052, -0.034366, -0.130274, 0.076483, 0.000651, + 0.02652, -0.076343, -0.056421, 0.010271, 0.050447, -0.007414, 0.041759, 0.061988, 0.010512, + 0.065466, -0.10973, -0.084369, 0.021578, -0.003602, 0.031518, -0.01687, -0.169614, -0.021037, + -0.121806, 0.052866, -0.015633, -0.035247, -0.018105, -0.001953, 0.016663, 0.090296, 0.068301, + 0.11233, -0.025431, -0.123923, 0.112265, 0.007901, 0.001691, -0.074972, -0.044152, -0.016892, + 0.000751, -0.010621, 0.036042, 0.082501, 0.005902, 0.068529, -0.060446, -0.100883, -0.0056, + 0.042959, 0.003422, -0.022189, -0.145744, -0.010926, -0.117957, 0.021798, -0.005227, -0.046616, + -0.018105, -0.017358, 0.058044, 0.113681, 0.056798, 0.109564, -0.030887, -0.14127, 0.075794, + -0.013558, -0.004987, -0.051918, -0.03658, -0.017865, 0.015723, -0.02573, 0.02041, 0.057817, + -0.023469, 0.082837, -0.069058, -0.115676, 0.013805, 0.014275, 0.023673, -0.016156, -0.141837, + 0.022962, -0.113437, 0.008207, 0.016995, -0.040866, 0.006612, -0.019979, 0.055406, 0.092974, + 0.053066, 0.145805, -0.029125, -0.145995, 0.050692, 0.014963, -0.016084, -0.061572, -0.082253, + -0.002428, 0.025287, -0.052924, 0.020994, 0.06586, 0.019335, 0.013023, -0.112105, -0.094714, + 0.028177, -0.017017, 0.017256, -0.018958, -0.106179, -0.016861, -0.070181, 0.029797, 0.038289, + -0.009493, 0.040101, -0.059222, 0.019, 0.11182, 0.036818, 0.090389, -0.000526, -0.123247, + 0.057487, 0.013957, -0.032154, -0.062674, -0.055938, -0.011717, 0.024285, -0.042824, 0.018252, + 0.052392, 0.039814, 0.020471, -0.121863, -0.110415, 0.038815, -0.039757, 0.033791, -0.054087, + -0.120021, -0.004134, -0.080848, 0.075256, 0.01757, -0.048802, -0.022096, -0.020507, 0.04175, + 0.094167, 0.033781, 0.13204, -0.051252, -0.143991, 0.05594, 0.010398, -0.025402, -0.029609, + -0.018437, -0.006706, 0.027726, -0.011744, 0.024478, 0.031097, 0.068579, 0.013508, -0.144182, + -0.060198, 0.03179, -0.031966, 0.007033, 0.021268, -0.081643, -0.013663, -0.092296, 0.066387, + 0.037653, -0.045381, 0.029418, -0.054128, 0.03137, 0.113274, 0.011387, 0.068352, -0.048985, + -0.166646, 0.05706, 0.004119, -0.019412, -0.05062, -0.070842, -0.040961, 0.030584, -0.037589, + -0.00933, 0.052014, 0.010186, 0.003068, -0.106992, -0.096583, 0.027063, -0.044534, 0.048843, + -0.017603, -0.117111, 0.005244, -0.080041, 0.071654, 0.035138, 0.010429, 0.010797, -0.056471, + 0.052298, 0.073137, 0.060972, 0.127779, -0.024032, -0.146457, 0.034914, 0.044784, -0.000774, + -0.071988, -0.071466, 0.032644, 0.009668, -0.033131, 0.032273, 0.041755, 0.033312, 0.051334, + -0.081199, -0.090018, 0.053572, 0.012847, 0.007577, -0.019225, -0.120029, -0.0057, -0.051241, + 0.041986, 0.02323, -0.048178, 0.011542, -0.056063, 0.00923, 0.054509, 0.038434, 0.108052, + -0.054576, -0.13007, 0.038402, -8.5e-05, -0.007539, -0.047079, -0.053479, 0.013266, 0.016322, + -0.052217, 0.037596, 0.069525, -0.006447, 0.051714, -0.073536, -0.068995, -0.003614, 0.002596, + -0.001379, -0.030895, -0.089723, 0.013395, -0.090099, 0.051568, 0.045467, -0.036101, 0.01998, + -0.029325, 0.068832, 0.094732, 0.057709, 0.130482, -0.029439, -0.161514, 0.062311, -0.003998, + 0.00127, -0.029172, -0.082531, 0.031527, 0.014987, -0.051206, -0.009284, 0.05326, -0.006907, + 0.001999, -0.114922, -0.085585, 0.030294, -0.001393, 0.050258, 0.010842, -0.101324, 0.011786, + -0.109801, 0.055274, 0.023047, -0.057096, -0.007211, -0.012246, 0.052385, 0.118114, 0.022871, + 0.132115, -0.013687, -0.173859, 0.080014, -0.009694, -0.003419, -0.036307, -0.067275, 0.021797, + -0.026198, -0.046786, -0.011715, 0.048329, -0.000655, 0.010408, -0.096479, -0.058525, 0.006597, + -0.046667, 0.036829, 0.013519, -0.074114, -0.031102, -0.077906, 0.046974, 0.020328, -0.007754, + 0.045325, -0.024552, 0.063124, 0.092093, 0.061003, 0.127474, 0.007811, -0.151695, 0.072886, + 0.001481, 0.053194, -0.063875, -0.059086, 0.074082, 0.005237, -0.038325, -0.02274, 0.06393, + 0.020744, 0.022458, -0.09975, -0.071828, 0.029713, 0.007054, -0.009982, 0.030532, -0.092974, + 0.027437, -0.093999, 0.035906, 0.006112, -0.035888, -0.035926, -0.012172, 0.046013, 0.09492, + 0.048675, 0.135212, -0.03595, -0.153614, 0.058193, -0.005002, 0.038403, -0.054486, -0.105089, + -0.038727, -0.006222, -0.017256, -0.026246, 0.083021, 0.047597, 0.014569, -0.102489, -0.080612, + 0.041042, -0.012622, -0.015539, 0.01579, -0.099491, 0.024827, -0.056298, 0.038842, 0.032991, + 0.004132, 0.02245, -0.047326, 0.075364, 0.097519, 0.056592, 0.095013, 0.0196, -0.104035, + 0.011263, -0.018462, 0.014961, -0.07859, -0.071145, 0.011721, -0.004802, -0.043226, -0.000527, + 0.051202, 0.03658, 0.040714, -0.124319, -0.101016, 0.050096, 0.046978, -0.024037, 0.003572, + -0.089698, -0.012549, -0.106207, 0.038879, 0.058018, -0.031742, 0.012447, -0.021212, 0.048936, + 0.082082, 0.045152, 0.089222, -0.02968, -0.133118, 0.062651, 0.006778, 0.045867, -0.043141, + -0.120329, -0.014482, 0.024725, -0.048264, 0.002356, 0.076734, 0.037868, 0.049499, -0.082869, + -0.098479, 0.017679, -0.002372, -0.04522, -0.018259, -0.111826, -0.032999, -0.106297, 0.051058, + 0.047326, -0.037254, 0.062407, -0.055985, 0.085486, 0.1089, 0.065081, 0.102653, 0.007578, + -0.114818, 0.066618, 0.009512, 0.023984, -0.082983, -0.043929, -0.029125, 0.030373, -0.021877, + -0.013863, 0.029882, -0.007529, 0.019174, -0.088137, -0.095835, 0.034765, -0.001013, 0.02289, + -0.001486, -0.094243, 7.9e-05, -0.084728, 0.029036, 0.025778, -0.046102, -0.009905, -0.033507, + 0.051704, 0.074157, 0.012966, 0.107229, -0.004924, -0.10737, 0.062716, -0.044472, -0.015496, + -0.061845, -0.100135, 0.015674, -0.016365, -0.058123, -0.004159, 0.053074, 0.008153, 0.019713, + -0.095177, -0.129428, 0.015873, 0.012619, -0.018612, 0.006432, -0.109919, -0.001921, -0.069645, + 0.02381, 0.026248, -0.042226, 0.012503, -0.01474, 0.042203, 0.107923, 0.024915, 0.102836, + -0.010912, -0.130161, 0.08597, 0.020879, 0.021097, -0.094492, -0.084774, 0.009621, 0.004474, + -0.00108, -0.004573, 0.079337, -0.011727, -0.003326, -0.102341, -0.097752, 0.019219, 0.012939, + -0.014548, -0.012482, -0.108229, 0.012904, -0.063895, 0.06407, 0.010627, -0.025929, -0.027265, + -0.032899, 0.071412, 0.09295, 0.061401, 0.118031, -0.005749, -0.1035, 0.09454, 0.021187, + 0.003308, -0.087134, -0.048431, 0.014861, 0.016328, -0.037599, 0.006004, 0.070901, 0.010961, + 0.051306, -0.104806, -0.113189, 0.010586, -0.025466, -0.057787, -0.007082, -0.109647, -0.038632, + -0.074334, 0.066509, -0.001975, -0.029126, 0.020577, -0.040265, 0.042104, 0.11146, 0.046933, + 0.108282, -0.03352, -0.120505, 0.048724, -0.012595, 0.046558, -0.076207, -0.038805, -0.024536, + -0.004263, 0.017259, 0.009811, 0.062059, -0.017365, 0.030065, -0.11285, -0.08089, 0.058196, + -0.024549, -0.01315, -0.023051, -0.081351, -0.014746, -0.05344, 0.081819, 0.02157, -0.042565, + -0.030342, -0.02646, -0.000457, 0.056233, 0.043768, 0.107634, -0.02614, -0.103865, 0.099625, + 0.013482, 0.009069, -0.084551, -0.073506, 0.012051, 0.017282, -0.027347, -0.027004, 0.082804, + 0.032391, 0.040977, -0.10638, -0.145302, 0.000617, -0.011682, -0.046109, -0.018877, -0.138692, + -0.016627, -0.055205, 0.06556, 0.000262, -0.043104, 0.005175, -0.054809, 0.064371, 0.128103, + 0.040835, 0.095776, -0.044635, -0.115848, 0.054799, -0.040794, -0.015806, -0.049761, -0.043471, + -0.029224, 0.020693, 0.039444, 0.006571, 0.039756, 0.007771, 0.053333, -0.095059, -0.117134, + 0.036924, 0.011674, 0.002722, -0.023738, -0.096386, -0.01378, -0.089655, 0.086417, 0.028142, + -0.05301, -0.007724, -0.056241, 0.019993, 0.061656, 0.035867, 0.085277, -0.028995, -0.108367, + 0.073626, -0.020653, -0.027031, -0.044284, -0.07873, 0.007188, 0.013277, -0.048028, -0.003313, + 0.074553, 0.001766, 0.043557, -0.094952, -0.154099, 0.029017, 0.027034, -0.006696, -0.027358, + -0.130579, -0.016369, -0.074646, 0.042895, 0.000482, -0.063104, -0.004745, -0.049044, 0.065161, + 0.063365, 0.040602, 0.082507, -0.046341, -0.106852, 0.072713, -0.049685, 0.011771, -0.067326, + -0.041796, 0.000146, 0.011412, -0.005833, 0.019732, 0.080072, -0.003351, -0.026603, -0.14273, + -0.095598, 0.040964, 0.001461, 0.029023, 0.038243, -0.148668, -0.002261, -0.076, 0.053269, + -0.029503, -0.013609, -0.041355, -0.049542, -0.000462, 0.087252, 0.056458, 0.115497, 0.035947, + -0.073806, 0.089121, -0.02312, -0.035606, -0.131251, -0.005855, 0.029362, -0.024984, -0.044859, + -0.008556, 0.079346, 0.007477, 0.004752, -0.107609, -0.130762, 0.044114, -0.005562, 0.005165, + 0.009411, -0.099444, -0.035885, -0.078066, 0.048832, 0.005862, -0.030729, 0.012571, -0.027903, + 0.055824, 0.041476, 0.04036, 0.092682, -0.001284, -0.115928, 0.075392, -0.013928, 0.003823, + -0.087872, -0.040581, 0.00039, 0.014315, -0.016975, 0.010055, 0.073709, -0.009767, 0.003075, + -0.088209, -0.119825, 0.023968, 0.01405, -0.008796, 0.021566, -0.109784, -0.005788, -0.064278, + 0.066055, -0.020454, -0.066013, -0.00021, -0.025697, 0.09687, 0.081478, 0.039162, 0.086696, + 0.026241, -0.108772, 0.09274, -0.027419, -0.024327, -0.076583, -0.041786, -0.00342, 0.002773, + -0.004117, -0.003146, 0.0507, 0.012191, 0.032489, -0.11554, -0.101987, 0.064176, -0.019238, + -0.034241, 0.007772, -0.088082, -0.030139, -0.06534, 0.09288, 3.2e-05, -0.066267, 0.009526, + -0.000114, 0.033905, 0.100293, 0.033994, 0.069592, -0.04448, -0.120775, 0.067544, -0.026782, + 0.015727, -0.067531, -0.08938, 0.017609, -0.005574, 0.013408, -0.009365, 0.067631, 0.039863, + 0.006978, -0.128632, -0.10098, 0.035694, -0.010615, -0.007655, 0.028642, -0.112192, -0.028687, + -0.068146, 0.09046, -0.011529, -0.029397, 0.016275, -0.053789, 0.065987, 0.066064, 0.042398, + 0.076477, -0.020564, -0.0954, 0.052554, -0.024082, -0.01191, -0.087299, -0.025074, -0.027901, + 0.021431, -0.011334, -0.000585, 0.045698, 0.043345, -0.001998, -0.112757, -0.126919, -0.01336, + -0.024461, -0.060177, 0.019496, -0.12494, -0.033687, -0.071966, 0.098919, 0.00081, -0.010111, + 0.031147, -0.049963, 0.045663, 0.118398, 0.058938, 0.069155, -0.02588, -0.093615, 0.072037, + -0.001543, 0.032937, -0.07878, -0.085262, 0.012406, 0.02669, 0.049677, -0.014794, 0.047272, + 0.010628, 0.023163, -0.093294, -0.120889, 0.039294, -0.024532, 0.009674, -0.017489, -0.139167, + -0.015644, -0.080077, 0.07835, -0.013543, -0.016593, 0.009508, -0.032482, 0.069464, 0.057089, + 0.047976, 0.111461, -0.026646, -0.121167, 0.064147, -0.034599, -0.033767, -0.073742, -0.035747, + 0.007799, 0.006114, -0.043113, 0.029595, 0.046739, 0.002328, 0.014959, -0.076763, -0.094858, + 0.019498, 0.011021, -0.003156, 0.024721, -0.111839, -0.008643, -0.071439, 0.06833, 0.006979, + -0.074527, -0.017024, 0.009602, 0.062119, 0.087244, 0.028712, 0.067156, -0.033331, -0.111207, + 0.056011, -0.008903, -0.036019, -0.071176, -0.096195, 0.009197, -0.015446, -0.021864, -0.026051, + 0.061486, 0.037033, 0.015995, -0.114354, -0.119424, 0.013931, -0.008687, 0.01939, 0.028195, + -0.131262, -0.033367, -0.074526, 0.05875, -0.004671, -0.056096, 0.0189, -0.032927, 0.056734, + 0.093627, 0.036156, 0.088668, -0.003308, -0.10472, 0.076967, -0.005123, -0.005588, -0.057442, + -0.06497, 0.021714, 0.001133, 0.00717, -0.011305, 0.043864, 0.038411, 0.009921, -0.110091, + -0.113164, 0.031465, -0.014597, -0.035029, -0.003407, -0.124894, -0.058848, -0.080533, 0.087987, + 0.026999, -0.018122, 0.021904, -0.033844, 0.015103, 0.071147, 0.059308, 0.082866, -0.00902, + -0.086857, 0.053956, 0.00214, 0.060357, -0.08119, -0.070123, 0.027218, 0.033253, 0.014144, + -0.02068, 0.047363, 0.007958, 0.014768, -0.111469, -0.111541, 0.050516, 0.017634, -0.00403, + -0.008789, -0.126724, -0.027103, -0.081327, 0.096815, 0.015465, -0.056641, -0.029004, -0.038883, + 0.011494, 0.057326, 0.040682, 0.088086, -0.028635, -0.105497, 0.050133, -0.044608, 0.024476, + -0.063444, -0.065137, 0.013894, 0.007881, 0.006147, 0.002043, 0.062254, 0.003501, 0.05624, + -0.094665, -0.118025, 0.022376, -0.013353, -0.018151, -0.024391, -0.123753, -0.014098, -0.077601, + 0.105274, 0.012062, -0.013573, 0.02148, -0.061038, 0.043092, 0.078097, 0.082165, 0.101143, + -0.012767, -0.095059, 0.045048, -0.004867, 0.014636, -0.052443, -0.023529, -0.001834, 0.005009, + 0.008645, 0.005646, 0.065571, 0.011258, 0.024235, -0.091933, -0.153632, 0.028169, -0.020699, + 0.010158, -0.034829, -0.126468, 0.002899, -0.037033, 0.079163, 0.016099, -0.031045, 0.005085, + -0.046673, 0.056337, 0.072235, 0.04502, 0.101629, -0.031886, -0.10651, 0.052278, 0.017341, + -0.001392, -0.065799, -0.06851, 0.013351, 0.046832, 0.007711, 0.03079, 0.058193, 0.049736, + 0.000485, -0.121124, -0.11931, -0.037883, -0.002516, -0.026164, -0.02595, -0.108346, -0.023263, + -0.025583, 0.096488, 0.015598, 0.001845, 0.006135, -0.037019, 0.02399, 0.076061, 0.040149, + 0.079086, -0.002233, -0.061749, 0.082874, -0.002274, 0.010174, -0.029928, -0.068046, 0.008098, + 0.017276, 0.015176, 0.026662, 0.046396, 0.006072, 0.062134, -0.075658, -0.13935, 0.009477, + 0.025546, -0.006568, -0.029951, -0.114072, -0.015457, -0.061297, 0.079253, -0.003987, -0.055036, + -0.004432, -0.096128, 0.043944, 0.057239, 0.023509, 0.09078, -0.021736, -0.087315, 0.073009, + -0.009656, -0.033744, -0.029303, -0.076703, -0.028373, 0.022555, -0.003045, 0.02178, 0.030642, + 0.021932, 0.063186, -0.093662, -0.128662, -0.014007, -0.013267, -0.03361, -0.071837, -0.128619, + -0.030231, -0.057613, 0.055946, 0.00157, -0.016549, 0.012749, -0.035789, 0.030055, 0.074973, + 0.031803, 0.072709, -0.032376, -0.1039, 0.08675, 0.010684, -0.001918, -0.041292, -0.067782, + 0.006361, 1.1e-05, 0.023264, 0.048466, 0.049403, 0.030465, 0.053165, -0.109548, -0.098379, + 0.002285, -0.002529, -0.012164, -0.017346, -0.085364, -0.006455, -0.058934, 0.091693, 0.003119, + -0.026933, 0.024864, -0.03765, 0.054925, 0.055823, 0.039527, 0.080912, -0.010787, -0.108244, + 0.074092, -0.010276, 0.0051, -0.043423, -0.041417, 0.001576, 0.003821, -0.015864, -0.010533, + 0.042471, 0.062235, 0.037658, -0.093168, -0.08996, -0.013844, 0.000566, -0.040864, 0.015194, + -0.099221, -0.024453, -0.06852, 0.067701, -0.00088, -0.047558, 0.008933, -0.048329, 0.074598, + 0.063913, 0.043966, 0.058918, -0.018262, -0.092763, 0.111522, -0.013739, -0.011161, -0.041477, + -0.045338, -0.000257, 0.026777, -0.010467, 0.012614, 0.016105, 0.025634, 0.030983, -0.093543, + -0.110024, 0.001096, -0.00053, -0.037174, -0.037291, -0.107947, -0.011612, -0.046895, 0.061783, + -0.014216, -0.017379, -0.008119, -0.074567, 0.058294, 0.015782, 0.050761, 0.088936, -0.016143, + -0.092487, 0.082699, 0.014672, 0.023655, -0.068726, -0.028765, -0.001771, 0.046139, -0.006259, + 0.033204, 0.043926, 0.024867, 0.058237, -0.067141, -0.113731, 0.018951, -0.012888, -0.021542, + -0.02873, -0.073674, -0.024236, -0.072689, 0.05827, 0.0214, -0.07492, -0.011187, -0.076798, + 0.037298, 0.063799, 0.02692, 0.07639, -0.028872, -0.105065, 0.072636, 0.037421, -0.00567, + -0.071801, -0.053654, -0.00349, 0.029993, 0.0082, 0.006006, 0.037425, 0.016792, 0.023038, + -0.09746, -0.094191, 0.005554, -0.002667, 0.002138, -0.022008, -0.099086, -0.021553, -0.074319, + 0.056358, -0.031693, -0.031952, -0.005321, -0.066326, 0.053713, 0.035178, 0.020147, 0.057926, + -0.007615, -0.101547, 0.110894, 0.021804, 0.005683, -0.051122, -0.070778, 0.033952, -0.019706, + -0.015848, 0.016003, 0.045126, 0.023018, 0.015174, -0.065717, -0.138058, 0.032354, -0.053117, + 0.036639, -0.014603, -0.107071, -0.001154, -0.071759, 0.043341, 0.019358, -0.01315, -0.004735, + -0.001274, 0.064109, 0.022396, 0.038025, 0.100135, -0.015358, -0.094546, 0.048992, -0.004058, + 0.018969, -0.068489, -0.095415, 0.03516, -0.006241, 0.009353, 0.028247, 0.030636}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "long_sequence"; + const std::vector token_types{ + 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, + 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, + 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, + 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, + 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, + 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, -0.184324, 0.082248, -0.917971, 0.311245, + -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, 0.625479, + -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, 0.273531, + -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, 0.813192, + -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, 0.807311, + -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, 0.153318, + 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, -0.881248, + -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, -0.297463, + -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, 0.171486, + 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, 0.029975, + -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, -0.946428, + -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, -0.597124, + -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, -0.246632, + -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, 0.297012, + -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, -0.875637, + -0.228871, 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, + -0.108976, -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, + -0.569343, -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, + 0.429193, 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, + 0.769097, -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, + -0.320644, 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, + 0.980358, 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, + -0.477203, -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, + 0.456818, 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, + -0.256998, 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, + -0.518889, 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, + 0.512987, 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, + -0.68424, -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, + 0.007862, 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, + 0.563852, 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, + -0.150954, -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, + 0.37714, -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, + 0.507329, -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, + 0.39719, -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, + -0.492104, 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, + 0.711457, 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, + 0.500654, -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, + -0.083318, 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, + 0.143193, -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, + 0.508876, 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, + -0.472354, 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, + 0.085618, -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, + 0.159464, 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, + -0.260825, -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, + 0.899223, 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, + -0.560654, -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, + -0.165227, -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, + 0.603313, -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, + -0.518932, 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, + 0.215429, -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, + 0.573391, -0.949507, -0.7171, -0.377511, 0.826098, 0.1023, -0.747897, 0.006262, -0.776671, + -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, -0.288666, 0.3929, 0.395564, + 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, 0.815057, 0.99516, 0.296258, + -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, 0.18636, 0.413585, -0.206588, + -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, -0.109859, 0.094326, -0.060097, + -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, -0.46216, -0.33695, -0.375678, + -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, 0.139068, 0.552292, -0.702444, + 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, -0.632811, 0.556983, -0.149319, + 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, -0.867631, 0.003304, + 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, 0.016121, 0.210597, + -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, -0.147204, -0.612415, + -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, -0.842229, -0.794683, 0.585289, + 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, 0.721554, 0.773871, 0.720051, + 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, -0.016791, -0.870379, -0.261475, + -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, 0.910749, 0.583554, -0.518337, + -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, 0.060577, -0.602459, 0.819876, + 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, -0.4237, 0.602567, 0.200242, + 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, 0.783539, -0.26327, 0.314318, + -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, 0.037649, -0.586658, 0.822194, + -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, 0.961893, -0.171048, -0.934408, + 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, 0.162617, -0.133854, 0.230342, + -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, 0.192636, -0.845443, 0.793552, + 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, -0.77887, 0.912821, 0.07751, + 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, 0.074966, -0.698764, -0.219233, + -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, 0.55947, 0.400247, 0.774181, + -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, -0.39125, -0.01835, -0.229459, + 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, -0.772226, -0.809075, -0.54802, + -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, 0.981038, -0.370629, -0.716001, + 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, 0.642863, 0.839239, -0.493832, + 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, 0.25278, 0.298125, -0.653559, + 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, 0.486671, 0.170416, 0.271919, + 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, 0.806378, -0.525239, -0.036417, + 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, -0.453557, 0.097171, -0.116216, + -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, 0.642417, 0.247718, -0.844133, + 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, -0.557894, 0.601745, -0.127932, + -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, 0.693016, 0.852534, 0.551467, + 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, -0.73862, 0.672618, 0.678645, + -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, -0.32739, 0.700386, 0.813401, + -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, -0.001452, 0.253108, -0.53735, + 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, 0.931584, 0.293263, -0.227222, + 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, -0.678475, 0.102821, 0.095808, + 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, 0.370394, -0.736122, 0.062691, + 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, 0.968727, -0.397175, -0.232716, + -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, 0.340153, -0.876826, -0.155735, + -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, -0.631138, 0.706552, 0.139649, + -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, -0.8772, -0.654672, -0.718926, + 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, 0.349295, 0.354269, 0.980382, + -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, -0.852453, 0.896511, -0.041441, + -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, 0.778847, -0.30743, 0.593968, + 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, -0.931854, -0.466351, 0.046006, + -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, -0.14036, 0.285996, 0.045167, + -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, 0.387979, 0.236666, 0.748384, + -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, -0.379444, -0.369984, 0.918921, + 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, 0.66429, -0.795854, 0.35589, + -0.569686, -0.039074, -0.20867, -0.834965, -0.953914, -0.657898, 0.453771, 0.457435, -0.869764, + -0.375542, 0.016334, -0.864583, 0.563455, 0.905732, 0.176862, -0.743015, 0.233186, 0.363014, + 0.791843, -0.53207, -0.89591, 0.439351, 0.062256, -0.325826, -0.419022, -0.515616, 0.809497, + -0.172539, 0.721207, 0.89265, 0.126676, 0.213018, -0.068105, 0.686815, -0.901088, 0.397683, + -0.162929, 0.456616, -0.004454, -0.370266, -0.10795, 0.539993, -0.69453, -0.632099, -0.223996, + -0.362725, 0.392839, 0.67297, -0.107099, 0.945574, -0.41782, -0.561159, -0.447694, -0.688972, + -0.700934, -0.891016, -0.886279, 0.260999, 0.609854, 0.938847, 0.851797, -0.057594, 0.194047, + -0.59832, 0.386521, -0.958841, 0.471673, 0.183416, 0.307304, 0.366148, -0.459105, 0.858106, + 0.477252, 0.656895, 0.132079, 0.627987, 0.673001, 0.453235, 0.761769, -0.181378, 0.657536, + 0.230399, 0.601696, 0.973999, 0.226437, -0.371167, -0.099496, 0.281528, 0.168609, -0.27317, + 0.783518, 0.600807, -0.621154, -0.081481, -0.095994, -0.626731, 0.145855, -0.306993, -0.516261, + -0.321547, -0.356549, 0.95664, 0.383572, 0.984113, 0.274196, 0.226431, 0.411094, 0.171633, + -0.784771, -0.591354, -0.242279, 0.015033, 0.376714, 0.385048, 0.793313, 0.203573, -0.341293, + -0.752026, -0.732411, -0.597337, 0.301604, 0.540272, 0.874913, -0.316312, -0.078883, -0.296963, + -0.003654, 0.321001, -0.021971, 0.046295, 0.126687, 0.372418, -0.303401, -0.596298, 0.235925, + -0.118406, -0.453028, 0.419963, 0.009069, -0.145465, -0.484084, -0.131566, -0.850325, 0.22749, + 0.015007, 0.606836, 0.06457, 0.079952, 0.272413, 0.760938, -0.472558, 0.597005, 0.244562, + -0.667117, 0.348187, -0.599733, -0.314781, -0.476669, -0.680314, 0.787571, -0.893821, 0.500015, + -0.900012, -0.121706, 0.059642, 0.710911, -0.361894, 0.287827, 0.154906, 0.588385, 0.059452, + 0.374445, -0.604091, -0.694911, 0.891078, -0.728667, -0.17024, -0.12088, 0.97788, -0.216114, + -0.761304, -0.253499, 0.515821, 0.39629, 0.827292, -0.204717, 0.471045, -0.94104, 0.38694, + 0.459464, 0.645087, -0.573442, -0.266978, 0.24193, -0.710615, -0.795481, -0.962043, 0.055823, + 0.620988, 0.25686, 0.060965, 0.348426, -0.628404, 0.105426, -0.248424, -0.495144, 0.862373, + -0.773653, 0.146548, -0.878713, -0.033927, -0.444362, 0.329147, -0.561538, 0.64004, -0.811467, + 0.600636, -0.751179, 0.535585, -0.421066, -0.00233, -0.182503, 0.64903, 0.327728, -0.881204, + 0.091941, -0.689862, 0.747561, 0.1643, -0.257181, -0.510169, 0.346129, -0.598897, 0.474262, + 0.545675, 0.613803, 0.261238, -0.875369, 0.719317, -0.310223, -0.295636, -0.107439, 0.731135, + 0.768927, 0.154412, 0.477152, -0.931997, 0.002362, -0.884684, 0.34035, -0.712449, -0.356405, + 0.699031, 0.955696, -0.60038, -0.555011, 0.123846, 0.393105, -0.162872, -0.31229, -0.656844, + 0.426876, 0.979762, -0.484079, 0.471664, 0.488395, 0.803797, -0.113854, 0.031498, 0.734699, + 0.632114, 0.987707, -0.28657, 0.395687, 0.698276, -0.678816, 0.198659, -0.223753, 0.642824, + -0.449127, 0.070139, 0.598311, -0.916117, -0.844362, -0.512184, 0.641417, 0.670528, -0.68297, + 0.190687, -0.529881, -0.464153, 0.862417, 0.483009, -0.273483, 0.147202, 0.193757, 0.234241, + -0.342279, -0.588886, 0.662064, 0.134373, 0.41855, -0.37873, 0.48437, 0.727766, 0.608173, + 0.271896, 0.983883, -0.002187, 0.212897, 0.95013, 0.971897, -0.42222, 0.900803, 0.36906, + -0.111938, 0.873146, -0.518029, 0.649749, 0.990944, -0.689702, -0.590093, -0.990914, -0.179962, + -0.908204, -0.334922, 0.303595, 0.706878, 0.557035, 0.555081, 0.414864, -0.620233, -0.793995, + 0.041454, 0.949583, 0.056306, -0.08601, -0.678737, -0.495838, -0.770864, 0.800668, -0.16293, + -0.883409, 0.107275, 0.072568, -0.123549, 0.357964, 0.537779, -0.94041, -0.766092, -0.04804, + -0.927138, -0.90836, 0.88291, -0.076059, -0.49439, -0.343017, -0.780722, 0.780366, -0.216839, + -0.562238, -0.758413, 0.58449, -0.138231, -0.105057, -0.260633, -0.482723, 0.17789, 0.76937, + -0.57958, 0.047913, -0.760513, -0.468897, 0.87777, 0.010485, 0.963319, -0.175204, -0.545044, + -0.597488, 0.886315, -0.768987, 0.524794, 0.248582, 0.295107, 0.56424, -0.261623, 0.618764, + -0.796723, -0.351841, 0.732041, 0.29678, -0.133173, -0.233531, -0.610615, 0.608092, -0.0318, + -0.033834, 0.236493, 0.737948, -0.510183, -0.344397, 0.677631, 0.564772, -0.491936, -0.98926, + 0.185511, 0.525894, 0.238857, 0.709314, -0.793474, 0.504286, -0.621679, 0.562807, 0.743714, + 0.316716, 0.809075, -0.659152, -0.894376, -0.961505, 0.627831, 0.35031, -0.732267, 0.484281, + 0.912412, -0.986084, 0.725421, 0.153373, 0.093021, 0.899793, 0.90559, 0.421351, 0.790135, + 0.416024, 0.162942, -0.879011, 0.186783, -0.711446, 0.307866, 0.176434, 0.022466, -0.683727, + -0.606197, 0.739138, 0.487019, 0.52724, -0.297977, -0.172196, -0.256278, 0.687693, -0.431688, + 0.629865, 0.689494, -0.914556, 0.006107, -0.190454, -0.552822, 0.431718, -0.121495, 0.875508, + -0.625904, 0.464631, -0.853793, -0.501222, 0.068213, 0.790093, 0.526719, -0.821085, 0.110765, + -0.58949, 0.04333, -0.833073, -0.293373, 0.685866, -0.917536, -0.953423, 0.182144, 0.137084, + -0.182886, 0.873212, -0.602089, -0.60708, -0.747476, -0.186123, -0.255205, 0.618747, -0.056149, + 0.319354, -0.415557, 0.811192, 0.843019, -0.895569, -0.257, -0.848497, 0.424827, -0.873683, + -0.472812, 0.999172, -0.954919, 0.737805, 0.084479, 0.799635, -0.507489, 0.656829, 0.120654, + 0.076912, 0.682532, -0.950527, -0.805451, 0.965763, -0.600497, -0.720808, -0.048895, -0.320102, + -0.136812, -0.669986, 0.360819, -0.860482, 0.080993, 0.583539, 0.192136, 0.13287, 0.146264, + -0.292951, -0.190498, -0.421693, -0.675529, -0.529456, 0.988561, -0.167356, 0.350296, 0.691554, + -0.078118, -0.537974, -0.677539, -0.368403, 0.356936, -0.842159, -0.122097, 0.380387, 0.815855, + 0.300931, 0.197767, 0.684591, 0.462088, 0.338314, -0.310047, -0.801899, -0.216002, -0.181364, + 0.073437, -0.10998, 0.404289, 0.66455, -0.40542, -0.948861, -0.51306, -0.478476, 0.56684, + -0.645044, -0.094057, -0.211939, -0.606932, 0.453285, -0.416556, -0.051732, -0.703085, -0.10086, + 0.142086, -0.040693, -0.373648, 0.297084, -0.259098, -0.554399, -0.737433, -0.21183, -0.944678, + 0.83002, -0.477728, -0.414418, 0.092439, 0.259233, -0.094292, 0.686023, -0.58295, 0.358381, + -0.002255, -0.813471, -0.387295, 0.254487, 0.191042, 0.727135, 0.668993, -0.545423, -0.427029, + -0.212041, -0.716421, -0.26999, -0.818313, 0.380342, 0.707559, 0.079176, -0.715881, -0.757308, + -0.389299, 0.290853, 0.024392, 0.181822, 0.942481, 0.464442, 0.215023, -0.202322, 0.473049, + 0.365841, -0.900102, -0.590709, 0.033566, 0.379442, 0.486503, -0.595279, -0.992114, -0.052092, + -0.114317, 0.29018, -0.275006, 0.764523, 0.066724, 0.730247, -0.696314, 0.400036, 0.119156, + -0.500148, 0.495748, -0.984019, 0.808467, 0.080588, 0.096553, 0.462446, 0.083012, 0.428652, + 0.636214, -0.780458, 0.66156, -0.149739, -0.232549, 0.201282, 0.782152, -0.543615, -0.673931, + 0.620607, -0.469668, 0.32195, -0.147326, 0.275253, 0.763115, -0.506799, -0.485264, 0.490621, + 0.054752, -0.110058, -0.878388, 0.847258, -0.037871, -0.184187, -0.41049, -0.197338, 0.486034, + -0.022983, 0.855209, -0.057735, -0.143458, 0.564452, -0.025876, -0.199593, 0.334227, 0.788631, + 0.24955, 0.696318, 0.648038, 0.282798, 0.347689, 0.322684, 0.103727, 0.850736, 0.923141, + 0.355989, -0.049939, 0.896594, -0.778321, 0.734784, 0.529826, 0.642136, -0.076836, -0.746098, + 0.713339, -0.437256, 0.263113, 0.566545, -0.934526, 0.066364, -0.355226, 0.709755, -0.636701, + 0.60717, 0.62357, 0.551715, 0.960012, 0.151451, -0.906381, 0.713865, 0.091547, 0.019845, + -0.952589, -0.224756, -0.485368, 0.979411, 0.712029, 0.745988, 0.684837, -0.619874, -0.42947, + -0.39135, -0.400882, 0.778432, 0.339767, 0.801354, -0.046779, -0.891427, -0.290123, 0.702795, + 0.608806, 0.309572, -0.293328, -0.933371, -0.537327, 0.52138, -0.403358, 0.478339, 0.273041, + -0.384087, 0.609078, -0.321333, -0.033223, -0.380913, -0.948572, 0.161238, 0.288969, -0.503481, + 0.613447, -0.897056, -0.963977, -0.617649, -0.345605, -0.111058, -0.193248, 0.456388, -0.877625, + 0.147248, 0.017318, 0.26413, 0.99408, 0.615448, -0.553705, -0.819453, -0.242101, -0.501627, + 0.349305, 0.009167, 0.804324, 0.392806, -0.18387, 0.03437, 0.239486, -0.124087, 0.806935, + -0.7819, 0.487406, -0.637444, -0.876081, -0.205297, 0.487305, 0.706562, 0.250942, -0.086429, + -0.056059, -0.405381, -0.089737, -0.069094, 0.850963, 0.585244, -0.800224, 0.004137, -0.61507, + -0.158741, -0.794768, 0.259961, -0.721078, 0.987221, 0.755203, -0.688359, -0.941464, 0.039018, + -0.279152, 0.293567, -0.676914, 0.409341, -0.863749, -0.52777, -0.525702, 0.483891, -0.026181, + -0.961029, -0.57112, -0.462777, -0.92783, 0.128047, 0.356338, -0.183478, -0.397945, -0.006065, + -0.794282, -0.608902, -0.022806, 0.888377, -0.307508, 0.495659, -0.39355, -0.266198, -0.951944, + 0.828485, 0.973728, -0.021003, 0.63537, 0.817942, 0.496718, 0.515019, -0.951991, -0.939671, + -0.76754, 0.312786, -0.864977, -0.763345, -0.484703, -0.921685, 0.001347, 0.144268, -0.5852, + 0.654765, -0.379645, -0.281527, 0.761875, 0.858552, -0.11472, -0.717878, -0.501669, 0.127339, + 0.586192, 0.497845, -0.441582, -0.945367, -0.875147, -0.318156, 0.012544, -0.449176, -0.790705, + 0.105388, -0.793741, -0.767924, -0.812946, -0.270973, 0.883258, 0.390919, -0.118569, 0.205811, + 0.398209, 0.005826, -0.806574, -0.616113, -0.679353, -0.025392, -0.915402, -0.181821, -0.365672, + 0.98137, 0.812824, 0.580854, 0.056082, -0.323773, 0.25507, -0.69093, -0.426504, -0.200885, + -0.234955, -0.947302, 0.397531, 0.823482, -0.551573, 0.269566, -0.115974, -0.036472, 0.05829, + 0.866583, 0.133991, -0.632677, -0.359714, 0.488527, 0.312055, 0.019436, -0.131977, -0.389077, + -0.354927, -0.527486, 0.163862, 0.280842, 0.765745, -0.225913, 0.071589, 0.646289, 0.434991, + 0.128488, 0.307279, 0.051906, -0.857792, 0.038551, -0.218579, 0.902412, 0.902628, 0.198391, + 0.893803, -0.515019, 0.869174, 0.860985, -0.038221, -0.802509, -0.322696, -0.267427, 0.016518, + -0.906651, 0.185326, -0.415892, -0.256041, -0.516492, -0.211134, -0.928725, -0.530168, 0.092125, + 0.655276, 0.908748, -0.756456, 0.419921, -0.563696, -0.773157, -0.044035, -0.573647, -0.861246, + -0.934536, -0.669348, 0.821736, 0.557708, -0.395847, -0.669321, -0.769242, -0.590521, -0.411498, + 0.600589, 0.327256, -0.385372, 0.688431, -0.621233, -0.814688, 0.21825, -0.551401, 0.284478, + 0.847236, -0.472905, -0.697812, 0.3764, -0.903147, 0.892178, -0.472256, 0.48346, -0.795172, + -0.676868, 0.110155, 0.355405, 0.775395, 0.836336, -0.057512, -0.128567, 0.165302, -0.232291, + 0.034041, -0.947048, -0.820907, 0.685262, -0.584357, 0.787485, 0.109744, 0.243585, 0.908878, + -0.55619, -0.157858, 0.177169, 0.341642, -0.973214, 0.355419, -0.589726, 0.13135, 0.67655, + -0.099615, -0.031635, -0.074715, 0.834483, 0.568329, 0.168169, -0.601815, -0.543037, 0.796555, + 0.719421, 0.57901, -0.779717, 0.778793, -0.095592, 0.736757, 0.868549, 0.109611, -0.416118, + 0.940651, -0.52112, 0.653415, -0.95889, -0.314513, -0.871855, -0.448576, 0.424619, -0.716528, + -0.864804, 0.715035, 0.533821, -0.010935, -0.704961, -0.264936, -0.323781, 0.61759, -0.327087, + -0.288016, -0.708859, -0.470988, 0.541449, 0.644286, 0.145287, -0.375198, 0.960491, 0.19738, + -0.385996, -0.346597, -0.139951, 0.474098, 0.365768, 0.724961, -0.045057, 0.827093, -0.406187, + -0.460553, -0.369297, -0.938208, -0.65644, -0.904875, -0.059098, 0.009427, -0.259542, -0.683384, + 0.907289, -0.33134, 0.476553, 0.69641, -0.657357, -0.125023, 0.577967, 0.969359, -0.126161, + 0.724623, -0.784866, -0.649739, 0.822335, -0.09468, 0.987923, 0.072717, -0.414709, 0.949715, + 0.874484, 0.092806, -0.606205, -0.043297, -0.480917, 0.728681, 0.046324, 0.210521, 0.606465, + 0.331241, -0.624266, 0.830724, 0.614345, -0.617336, 0.756103, 0.283703, -0.196849, -0.715163, + -0.165923, -0.980443, 0.570761, 0.724254, -0.287898, 0.92705, -0.370291, 0.171248, -0.696894, + -0.042278, 0.40423, 0.430735, -0.033533, -0.504262, 0.698985, 0.662066, 0.16048, -0.459876, + 0.212026, 0.002674, 0.913603, 0.148193, 0.077129, 0.068359, 0.532009, -0.012356, 0.857144, + 0.52099, -0.755627, -1.1e-05, -0.848807, -0.767809, 0.194293, 0.224719, -0.087512, 0.950462, + -0.537212, -0.419086, -0.160146, 0.006063, -0.084702, 0.900389, -0.422346, -0.523075, 0.08595, + 0.751082, 0.237356, 0.538733, 0.193585, 0.852288, 0.600624, 0.715569, -0.13469, -0.827896, + -0.474364, 0.340668, 0.701547, -0.390704, 0.827419, 0.143726, 0.003972, 0.038984, -0.176673, + 0.936189, 0.043435, 0.612509, -0.844014, -0.515221, 0.112437, 0.7985, 0.476087, 0.190459, + -0.987992, 0.0188, -0.660102, -0.853872, 0.136743, -0.632705, 0.907639, -0.543542, 0.322268, + 0.586963, -0.777237, 0.51178, -0.133896, 0.518163, 0.967735, -0.426165, -0.433104, 0.794549, + 0.1112, -0.099733, 0.758668, -0.483144, -0.049376, 0.686876, 0.390811, -0.646815, 0.259917, + -0.762437, -0.543073, 0.643012, -0.266512, -0.509357, 0.070882, 0.24437, -0.621617, -0.674363, + -0.968469, 0.258384, -0.645229, 0.076208, -0.223658, -0.65386, -0.319099, -0.76869, -0.529333, + -0.031171, -0.854915, -0.877033, 0.749061, 0.094098, -0.442254, -0.033249, 0.741565, -0.834266, + -0.530184, -0.72314, -0.072701, -0.034413, -0.779306, 0.694084, -0.76792, 0.933636, -0.688369, + -0.137046, 0.186987, -0.444477, 0.919642, -0.689434, -0.055428, -0.734261, 0.277591, 0.852587, + 0.927586, 0.118714, -0.500645, 0.971845, 0.07463, 0.676577, -0.519417, -0.464093, -0.830133, + 0.920126, 0.165884, -0.718189, 0.085889, -0.428905, 0.049956, 0.331923, -0.496235, 0.174499, + -0.631382, 0.192696, -0.965536, 0.159351, 0.993519, 0.921113, 0.364781, 0.735829, 0.972258, + 0.283369, 0.333518, 0.130034, 0.88533, 0.859041, -0.47026, -0.04111, -0.503843, 0.35883, + -0.968992, 0.353868, -0.274448, 0.362652, 0.312106, -0.497619, 0.518811, 0.42465, -0.850041, + 0.997752, 0.860753, 0.622182, -0.1015, 0.354288, -0.541016, -0.339799, 0.471959, 0.445168, + 0.395985, -0.953738, 0.828679, -0.417687, 0.865416, 0.823951, 0.370651, 0.99629, 0.57422, + 0.586486, -0.339572, 0.927485, 0.262095, 0.590836, -0.226108, 0.724221, 0.887102, -0.766251, + 0.819804, -0.66089, -0.688473, -0.835686, 0.28896, -0.750827, -0.376434, -0.502686, 0.267265, + -0.981761, -0.458441, 0.007316, 0.089802, -0.451624, 0.358264, -0.659754, -0.84689, -0.142165, + -0.540648, 0.630333, -0.683519, -0.083952, 0.415354, -0.875739, 0.77412, -0.454375, -0.272116, + -0.611714, -0.372638, -0.38559, -0.889877, 0.341708, -0.003204, 0.978231, 0.674676, 0.869934, + 0.294227, 0.525459, 0.936385, 0.82104, -0.768399, -0.224229, -0.964465, 0.037831, -0.35319, + 0.867917, 0.158105, 0.011006, -0.723352, -0.784731, 0.157424, -0.496882, -0.459252, 0.701434, + -0.521319, -0.445105, 0.767808, 0.390699, -0.568208, 0.302848, 0.504137, -0.888201, 0.186807, + 0.22847, -0.038947, 0.958801, -0.660976, 0.542117, -0.531217, -0.856106, 0.681519, -0.479722, + 0.047001, 0.525902, -0.834659, -0.855989, 0.340461, 0.871926, -0.105816, 0.704222, 0.351401, + 0.285303, -0.637572, 0.951718, 0.458041, 0.154624, 0.707304, -0.859227, 0.215484, -0.470729, + -0.101548, 0.327633, 0.442897, 0.229406, -0.773953, -0.625833, 0.017461, -0.173191, -0.837014, + 0.985166, 0.125783, -0.71055, 0.438586, 0.434499, -0.490566, 0.501444, -0.620343, 0.346481, + 0.949905, 0.660131, 0.493689, -0.203451, 0.187735, 0.348966, 0.244247, -0.202592, 0.139527, + -0.405031, -0.565267, -0.922836, -0.815309, -0.627715, 0.95589, 0.200115, -0.904621, -0.511169, + 0.233579, -0.299306, -0.28306, -0.375515, -0.24424, 0.115027, 0.059218, 0.642482, 0.639943, + 0.822991, -0.031811, -0.44652, 0.003412, -0.662214, 0.409122, -0.12065, -0.320276, -0.847812, + 0.481916, 0.558175, 0.912227, -0.35427, 0.301311, 0.037695, -0.63697, -0.625149, 0.512085, + -0.574323, 0.728184, 0.349359, 0.341509, 0.658576, 0.489416, 0.431283, 0.518842, -0.424367, + -0.530281, -0.183201, 0.555168, 0.699827, 0.736412, -0.315437, -0.126885, -0.68682, 0.616596, + -0.663127, -0.411489, 0.825765, 0.243013, -0.418632, -0.673372, -0.687674, 0.807026, -0.914004, + 0.864129, 0.799965, 0.061962, -0.080155, 0.777722, 0.440977, 0.945511, 0.807812, -0.65576, + 0.617119, 0.50433, -0.710012, 0.480272, -0.519412, -0.595792, 0.018656, -0.122881, -0.268882, + -0.655807, 0.547038, 0.99707, -0.221582, -0.673774, -0.051564, -0.86881, -0.812056, -0.333122, + 0.628305, -0.766114, -0.159583, -0.51927, -0.920789, -0.225111, -0.058251, -0.168141, 0.731135, + 0.400562, 0.622595, 0.391689, 0.104918, 0.542759, -0.63795, 0.509534, 0.476314, -0.424407, + -0.034321, -0.756477, -0.875048, -0.001105, 0.179055, -0.215706, 0.30895, -0.772002, -0.549682, + 0.690196, -0.973172, 0.157021, 0.769873, 0.749687, 0.341118, -0.910901, 0.128737, -0.351658, + -0.28111, 0.766192, -0.339842, -0.716171, -0.802738, 0.631384, 0.048253, 0.987665, 0.204503, + -0.931919, 0.247408, 0.915044, 0.62023, 0.30009, -0.751304, -0.599635, 0.679014, -0.668658, + 0.228133, -0.128123, 0.335081, 0.065432, -0.76167, -0.398608, 0.872191, 0.117716, 0.507055, + -0.504503, 0.791641, -0.214064, -0.337064, 0.202855, -0.358313, -0.40185, -0.143095, -0.05709, + -0.568754, 0.341814, -0.969182, 0.613863, 0.927464, 0.161783, -0.233658, -0.915901, 0.469602, + 0.81938, 0.854926, 0.08917, 0.332462, 0.95821, 0.149259, -0.48277, -0.949428, 0.437211, + 0.389543, 0.888684, -0.509105, 0.429523, -0.330854, -0.248535, 0.583487, -0.916678, 0.737137, + 0.465099, -0.594319, 0.510296, -0.251532, 0.089997, -0.267658, -0.979113, -0.103568, 0.48792, + -0.116347, -0.492413, 0.031686, 0.182487, -0.279016, -0.775484, -0.536143, -0.163033, 0.360143, + 0.889274, 0.018559, 0.358042, 0.575371, -0.436052, -0.331817, 0.663306, 0.715988, 0.236959, + -0.772782, 0.567586, -0.826495, 0.499822, 0.118514, 0.323015, -0.974748, -0.351575, 0.424697, + 0.769686, -0.286291, 0.89175, -0.223159, -0.603146, -0.433043, 0.062227, -0.177733, 0.484004, + -0.553422, -0.284471, -0.991013, 0.816243, -0.188163, -0.788312, -0.048254, -0.001825, 0.277728, + -0.109761, 0.629063, -0.345024, -0.299311, -0.23747, 0.17853, 0.80122, -0.046013, 0.769429, + 0.785546, -0.52065, -0.08592, -0.472059, 0.415974, -0.351569, 0.30505, 0.059745, -0.656465, + -0.672294, -0.976725, -0.559381, 0.279354, 0.060926, 0.752102, -0.879314, -0.029222, -0.89665, + 0.005854, 0.364337, -0.897043, 0.883152, -0.310591, 0.886036, -0.167851, 0.567315, 0.909077, + -0.364074, -0.243087, 0.524529, -0.856131, 0.591928, -0.628113, 0.928763, -0.655365, -0.411511, + 0.746185, -0.435387, 0.857151, 0.68802, 0.914011, -0.969282, 0.011208, -0.328914, 0.238204, + -0.755051, 0.410054, -0.047374, -0.472689, -0.899604, 0.523068, -0.361905, 0.737876, 0.178014, + 0.30414, -0.151664, -0.138524, -0.33971, -0.865901, 0.628696, -0.629741, 0.582838, -0.337283, + 0.626469, 0.857022, -0.611606, 0.825726, 0.024372, -0.763931, 0.408212, 0.566239, 0.881512, + -0.95192, 0.902962, 0.758107, 0.983762, 0.545006, -0.486113, 0.758612, 0.913917, -0.38237, + -0.16346, 0.782532, 0.804983, 0.660587, 0.766132, -0.513898, -0.172515, -0.399509, 0.519738, + 0.249212, -0.772453, -0.125612, -0.815455, -0.941117, 0.911628, -0.503021, 0.44633, -0.222679, + -0.202499, -0.000646, 0.779928, -0.138336, 0.827466, 0.585108, 0.686009, -0.90694, -0.467595, + -0.814724, -0.212389, -0.207122, 0.203204, 0.895971, 0.448905, -0.695858, -0.627143, 0.755105, + 0.099544, 0.282505, -0.523035, -0.121949, 0.284705, -0.656225, 0.652661, 0.498344, -0.583172, + -0.410081, -0.235101, 0.155626, -0.36682, 0.956621, -0.963209, -0.565199, -0.606979, 0.27038, + 0.141907, -0.284956, 0.853458, -0.863253, 0.35245, -0.550252, -0.227709, -0.963, -0.746507, + -0.848449, 0.436274, -0.375507, 0.523101, -0.541949, -0.247765, 0.121047, 0.837925, -0.269514, + 0.579722, 0.275872, 0.608203, 0.631708, 0.405816, -0.301547, -0.280666, 0.389301, 0.545043, + -0.053373, 0.501275, -0.601619, 0.563658, -0.122715, -0.688172, -0.485884, -0.763698, 0.201717, + -0.593061, -0.286363, -0.062655, -0.610161, 0.025678, -0.126913, 0.316742, 0.722408, -0.603669, + 0.546746, -0.021187, -0.571555, -0.453514, 0.254538, 0.208213, -0.0323, -0.497846, 0.504296, + 0.148371, -0.972131, -0.176727, -0.271312, -0.42671, -0.554698, -0.811262, 0.984904, -0.913415, + 0.929577, -0.786104, -0.242617, -0.409667, -0.53525, 0.355536, 0.579595, -0.656902, -0.46575, + 0.510427, -0.120876, 0.243549, 0.522853, -0.369632, -0.554974, 0.368097, -0.366195, -0.665642, + -0.504416, -0.464965, 0.995718, 0.192323, 0.430673, 0.134325, -0.674146, 0.721638, -0.155449, + -0.258931, 0.814957, -0.509411, 0.203058, -0.850684, 0.512423, 0.397211, -0.822296, 0.558137, + 0.110049, -0.516365, 0.852633, 0.429473, 0.351416, -0.371426, -0.54832, -0.538075, 0.375703, + 0.269386, -0.598498, 0.909952, 0.582617, -0.381808, 0.517379, -0.423898, 0.313828, 0.832333, + -0.884532, -0.497207, -0.056516, 0.149126, -0.822374, -0.657902, -0.095779, -0.144178, 0.215695, + 0.127068, 0.205142, 0.066293, 0.114937, -0.057719, 0.359123, 0.682496, -0.49905, -0.518051, + 0.438915, -0.723134, 0.649858, 0.461979, 0.144632, -0.434141, 0.029986, -0.790654, -0.899682, + 0.941704, -0.896926, -0.829754, -0.388447, 0.056157, 0.229034, -0.492782, -0.097039, -0.22331, + 0.836725, 0.867954, 0.411009, -0.006164, 0.749933, -0.807384, 0.417817, -0.581258, 0.779862, + -0.883988, 0.371553, -0.822183, 0.583648, 0.18285, 0.858039, -0.754217, 0.643609, -0.667363, + -0.539785, 0.380357, -0.168323, -0.789533, -0.850913, -0.259625, 0.276878, 0.878355, 0.735457, + 0.016389, -0.613394, -0.891554, 0.893402, -0.557545, -0.175872, -0.806915, -0.691211, 0.194035, + -0.247221, 0.114514, -0.007648, 0.050949, -0.198145, -0.03867, 0.434668, 0.730519, 0.84523, + -0.815868, -0.845309, -0.149454, -0.076287, 0.551938, 0.941359, 0.256798, -0.710259, -0.11319, + 0.646728, 0.368954, -0.707214, 0.058368, -0.965565, -0.402959, 0.699403, -0.433784, 0.610562, + -0.815674, 0.884104, 0.477005, 0.64801, 0.273093, 0.070847, -0.492485, -0.551793, -0.686719, + 0.826445, -0.34708, 0.024362, -0.940107, 0.268388, -0.340886, -0.799828, 0.123763, -0.921214, + -0.098526, -0.816643, 0.632204, -0.794164, 0.163325, 0.495146, -0.799014, 0.647364, 0.814414, + -0.612997, 0.083737, 0.303243, 0.828205, 0.781269, -0.838812, -0.815067, -0.884218, -0.444741, + -0.201857, -0.358803, 0.658923, -0.689172, -0.798126, -0.781717, -0.590257, 0.979465, 0.126281, + -0.175087, -0.29388, -0.765924, -0.339281, 0.526824, 0.675852, 0.72128, 0.071194, -0.545199, + -0.590367, 0.971854, -0.9026, 0.236745, -0.094416, 0.928469, 0.585759, -0.252638, -0.82976, + 0.13136, -0.69944, -0.105467, 0.25038, 0.488328, -0.270457, -0.675034, -0.851669, -0.947198, + 0.125433, -0.608639, 0.036266, -0.473754, -0.676729, 0.674293, 0.565918, 0.70214, 0.959256, + -0.723539, -0.532315, -0.752845, 0.671477, 0.589207, 0.810639, -0.699715, -0.536291, 0.974877, + -0.794077, -0.666006, 0.368151, -0.874154, -0.282735, 0.424907, 0.819234, -0.11347, -0.884941, + 0.56609, 0.996938, -0.742378, -0.044179, -0.723377, -0.510619, 0.336526, 0.467187, 0.413512, + -0.941884, -0.242427, 0.426193, -0.092822, -0.309152, -0.516553, 0.948178, -0.800458, -0.787718, + 0.728714, -0.607404, 0.604281, -0.551242, -0.135278, -0.483166, 0.826215, 0.693264, 0.048051, + 0.023978, -0.377394, -0.534521, -0.378249, 0.327452, -0.179867, 0.678778, 0.143979, 0.011039, + -0.621429, 0.403412, -0.925007, 0.233641, 0.358806, 0.18097, 0.703773, 0.240007, -0.27618, + -0.699755, -0.928105, 0.504682, 0.544338, -0.762777, 0.267727, -0.367721, 0.842255, -0.344684, + 0.827746, 0.707314, 0.553093, 0.683405, 0.31188, 0.338982, -0.850153, -0.228298, -0.113358, + 0.485207, -0.387503, 0.458203, 0.678975, 0.431178, 0.514693, -0.133287, 0.479026, -0.342926, + 0.866255, -0.025664, -0.058332, -0.880413, 0.924882, -0.139912, 0.744809, -0.654205, -0.836625, + -0.160063, -0.7996, 0.192158, 0.013469, -0.366713, 0.626133, 0.647861, -0.88295, -0.801121, + 0.585023, -0.60736, 0.192964, -0.266325, 0.178822, -0.551832, 0.003196, -0.354011, -0.450482, + -0.491641, 0.223365, 0.647073, -0.024644, -0.009766, 0.825068, 0.806105, -0.14517, -0.818849, + 0.234668, 0.298579, -0.791296, -0.897074, 0.104893, 0.976492, -0.89445, -0.489977, -0.344865, + -0.883314, -0.615726, 0.784927, 0.764835, -0.735691, 0.021437, -0.814449, 0.415342, -0.683013, + -0.509616, -0.463511, 0.147402, 0.668231, -0.418532, 0.184448, 0.796221, -0.060593, 0.103257, + 0.074255, -0.012775, 0.60037, 0.541093, -0.535566, 0.954862, 0.575405, -0.15647, 0.870636, + 0.053782, 0.631915, -0.849093, 0.897624, 0.94269, -0.747212, -0.895047, -0.291045, -0.614813, + 0.267182, 0.445133, -0.127416, 0.701715, 0.037894, -0.293912, -0.853571, 0.317821, -0.942206, + -0.00342, 0.146167, -0.560048, 0.30042, 0.194391, 0.669222, 0.625448, -0.809276, -0.741982, + -0.367023, -0.7194, 0.313538, -0.65519, -0.763475, 0.291262, 0.603518, -0.290722, -0.996457, + 0.141331, 0.512464, 0.781172, 0.094882, 0.694229, -0.894138, 0.956678, -0.645736, -0.682574, + 0.717673, -0.222212, 0.617135, -0.700424, 0.756574, 0.948395, 0.302796, 0.806694, -0.714126, + -0.220813, 0.304379, 0.56509, -0.533959, 0.636335, -0.329121, -0.533755, 0.195613, -0.796508, + -0.917799, 0.332504, 0.340612, 0.384549, -0.131139, -0.731335, -0.803337, 0.956899, -0.86693, + 0.301393, 0.812181, 0.763976, -0.630504, -0.322439, -0.799533, 0.627269, -0.938439, -0.920587, + -0.667601, 0.815699, 0.648187, 0.670045, 0.767287, -0.466381, -0.557687, -0.614335, 0.329958, + 0.388986, 0.207506, -0.769319, 0.088833, -0.530641, -0.196647, -0.154809, 0.049708, -0.876819, + 0.853599, -0.425521, 0.312452, 0.688644, 0.40297, 0.70032, 0.564683, 0.732242, 0.211058, + 0.638699, -0.434674, -0.538845, 0.477505, 0.262385, -0.0375, -0.843509, 0.326764, 0.647753, + -0.115455, 0.229741, 0.445181, -0.987579, -0.164528, -0.370965, -0.511118, 0.611208, 0.991488, + 0.15956, 0.622384, -0.741882, 0.176174, -0.129332, -0.61676, 0.205043, 0.318326, -0.0483, + 0.424644, 0.480109, 0.907042, 0.057968, 0.035628, -0.014313, 0.138003, -0.648418, -0.123089, + -0.845632, -0.701429, -0.851788, 0.741599, -0.5747, -0.080702, 0.106909, 0.883217, 0.45384, + -0.712133, 0.978076, -0.947187, 0.130018, 0.913705, 0.867252, -0.231774, -0.667362, 0.439101, + 0.770862, -0.5331, -0.158241, -0.608152, 0.381887, 0.21285, 0.495694, -0.343098, -0.96531, + -0.421129, -0.782083, -0.24091, 0.363421, -0.831932, -0.046678, -0.97838, -0.708649, -0.700139, + -0.340485, -0.506678, 0.153924, 0.611304, 0.754028, 0.315077, -0.006617, -0.178204, 0.679003, + -0.57273, 0.722809, -0.962812, -0.74637, 0.265264, -0.41187, 0.186571, 0.8713, 0.456732, + 0.978769, -0.423569, -0.47753, -0.126971, -0.2014, -0.43987, -0.062086, 0.90342, -0.548158, + 0.561583, 0.464546, 0.579118, 0.269781, -0.369415, 0.412714, -0.470996, -0.613817, 0.934795, + 0.828888, -0.722703, 0.812253, 0.20736, 0.256327, 0.963866, -0.052508, -0.318048, 0.627776, + -0.258314, -0.240062, -0.403255, 0.984289, 0.477161, -0.162111, -0.01995, 0.069988, -0.592796, + 0.283925, -0.776128, -0.046625, -0.187635, -0.408316, 0.924888, 0.28006, 0.481732, -0.658256, + 0.159373, 0.267975, 0.519119, -0.295078, -0.196376, -0.811891, 0.607777, 0.667557, 0.469088, + 0.508216, 0.59895, 0.942605, 0.327489, 0.360983, 0.314535, -0.564721, 0.250898, 0.301292, + -0.795953, -0.295956, -0.616995, -0.638959, 0.694942, 0.786686, -0.137853, 0.306507, -0.234204, + 0.212018, -0.167407, -0.520214, -0.420736, 0.993312, 0.168565, -0.546856, 0.113517, -0.997655, + 0.008821, 0.767653, 0.115342, 0.23826, -0.941969, -0.188089, 0.590084, -0.733203, -0.467809, + 0.675806, 0.287179, 0.467473, -0.932517, 0.636449, -0.218113, 0.210166, 0.808301, -0.92156, + 0.286112, -0.904023, 0.740339, 0.293632, 0.111269, -0.400612, 0.377035, -0.519054, 0.191158, + 0.839783, -0.750602, -0.285324, 0.233568, 0.173578, 0.013752, 0.86032, -0.259864, 0.257952, + 0.529963, -0.193892, 0.653433, 0.6531, 0.4453, -0.243968, 0.86861, -0.577822, 0.309066, + 0.20079, 0.705827, -0.819665, 0.174336, -0.57589, 0.530032, 0.343393, -0.777885, -0.062607, + 0.279734, 0.42599, 0.889637, 0.449092, 0.19071, 0.533434, -0.946245, 0.666728, -0.117574, + 0.565964, 0.286363, -0.052735, 0.70391, -0.582957, 0.282001, 0.438376, -0.355882, 0.362267, + -0.989151, -0.505069, 0.486205, 0.51542, -0.917898, 0.346068, 0.094028, 0.976145, -0.975385, + -0.238335, -0.566338, -0.608478, -0.163327, -0.919076, 0.783452, -0.353801, 0.350392, -0.58843, + 0.005392, -0.708433, 0.804882, 0.843377, 0.78729, -0.350074, 0.622387, -0.835503, 0.45884, + -0.123434, -0.828674, -0.802551, -0.935789, 0.187391, -0.361688, -0.460564, 0.952005, -0.304676, + 0.337297, -0.176043, 0.603079, 0.298416, 0.63326, 0.261119, -0.219168, 0.88383, -0.071291, + -0.598643, 0.311192, -0.121346, -0.741631, 0.130815, -0.232349, -0.398232, -0.477266, -0.42556, + -0.404963, 0.098259, 0.966068, -0.586135, -0.46652, -0.670347, -0.037946, 0.070114, -0.686393, + 0.45677, -0.896867, 0.925563, 0.188188, -0.100785, -0.358066, 0.449, 0.730234, -0.654088, + -0.250658, 0.736156, -0.187407, -0.73634, -0.321366, 0.034543, -0.186687, -0.685296, -0.626492, + 0.270389, 0.68614, 0.909721, -0.113029, 0.384753, -0.794221, 0.532867, 0.955551, 0.520745, + -0.395381, 0.815319, -0.947078, -0.119997, -0.247776, -0.997466, -0.570476, -0.728586, 0.268771, + -0.08318, 0.459274, -0.224954, 0.82488, 0.113268, 0.828942, 0.812048, -0.848052, -0.671571, + 0.602327, 0.944772, -0.853515, 0.014636, -0.384461, 0.941463, 0.830724, 0.727803, 0.538144, + -0.093801, 0.922738, -0.46795, 0.049424, -0.263117, -0.729506, -0.473887, 0.24246, -0.089221, + -0.662451, -0.127131, 0.172706, -0.699651, 0.603936, -0.850188, 0.009567, -0.818023, -0.901754, + -0.124222, 0.907575, 0.945343, 0.359409, 0.775099, -0.546649, 0.562993, 0.610165, -0.9557, + -0.766331, 0.432022, 0.092406, -0.67688, -0.789123, 0.722729, 0.109241, -0.002213, -0.966715, + 0.877393, -0.66106, 0.445588, -0.120243, 0.032586, 0.49101, -0.266389, -0.280546, 0.797184, + -0.76628, 0.445009, -0.258071, -0.334132, 0.669417, 0.168825, -0.931015, 0.893623, -0.496203, + 0.864486, -0.313844, 0.975039, 0.295002, -0.048308, 0.381733, -0.031097, -0.495984, 0.547009, + 0.64862, -0.125279, 0.94062, 0.063506, -0.528854, -0.544949, 0.672829, -0.405087, 0.631607, + -0.971394, 0.034447, -0.690946, 0.354723, 0.812122, 0.393512, -0.343827, -0.938111, -0.4738, + -0.589817, 0.954917, -0.537663, 0.386653, 0.802766, 0.360518, -0.877506, -0.113596, -0.296798, + 0.644312, -0.093804, -0.052745, 0.889571, 0.237962, 0.463555, -0.321909, 0.653974, 0.143781, + -0.200873, 0.192713, -0.787145, 0.03677, 0.458613, -0.936386, -0.53118, 0.626521, 0.022678, + -0.034062, 0.102049, -0.44882, 0.826923, -0.099153, -0.36411, 0.52639, -0.832348, -0.184453, + 0.100788, -0.310342, 0.544254, -0.853999, -0.288294, -0.420298, 0.925333, 0.399085, -0.745963, + 0.387565, -0.021207, 0.915426, 0.551865, -0.584028, 0.89139, -0.178855, -0.227709, 0.299028, + 0.993511, 0.301729, -0.964864, -0.319225, 0.931187, -0.352453, -0.481095, -0.797087, -0.552013, + -0.546745, 0.238827, 0.399526, 0.954375, 0.656268, 0.014776, 0.539296, 0.571587, -0.862525, + 0.504595, -0.684067, 0.772217, -0.434943, 0.207488, -0.01064, 0.463943, 0.15554, -0.725395, + 0.405091, 0.589896, -0.520764, -0.648707, -0.680934, -0.486555, -0.126076, 0.07477, -0.007053, + -0.264489, 0.620558, 0.052847, -0.580653, -0.26465, -0.587935, -0.352787, -0.943305, 0.17473, + -0.774837, 0.386765, 0.68504, -0.743928, -0.527731, -0.790137, 0.266871, 0.193495, -0.516148, + 0.604081, 0.414947, -0.903538, -0.054395, -0.430489, -0.17339, 0.556805, -0.10756, -0.694514, + 0.703435, -0.914046, -0.343433, 0.385314, 0.883889, 0.970543, -0.23492, 0.333697, -0.878231, + -0.19458, -0.311056, 0.283874, -0.655203, 0.216047, 0.516635, 0.779347, -0.169088, 0.913606, + -0.944806, -0.283374, 0.379115, 0.256426, 0.470938, -0.663575, 0.615732, -0.938525, -0.685678, + -0.068008, -0.971507, -0.950529, -0.887733, 0.803989, 0.219355, -0.319071, -0.041099, -0.871619, + -0.944451, -0.697379, -0.967438, 0.657913, -0.349931, -0.269944, -0.861146, 0.165621, -0.150034, + -0.680788, 0.641161, 0.84291, -0.712779, 0.56658, -0.162377, -0.009441, 0.425649, -0.182318, + 0.849643, 0.615266, -0.649132, -0.608562, -0.9908, 0.320166, -0.752187, -0.838179, -0.640967, + -0.988672, -0.814243, 0.891965, 0.558585, 0.886026, -0.485081, -0.410151, -0.350868, 0.019531, + -0.717765, 0.146602, -0.640899, 0.15802, 0.915998, 0.168899, 0.729444, -0.712209, -0.141124, + -0.617478, -0.110947, -0.397797, -0.567788, -0.965941, -0.370793, 0.133918, -0.17592, -0.931345, + 0.751178, 0.741487, -0.602901, 0.101655, 0.664009, -0.949648, -0.8836, 0.554865, -0.019806, + 0.318438, -0.415855, 0.181311, 0.663241, -0.244648, -0.323005, -0.952189, -0.154308, 0.633666, + -0.945069, -0.077247, 0.728935, -0.285415, -0.369468, -0.301632, -0.405157, 0.119686, -0.962804, + 0.382137, -0.252556, -0.127319, -0.067469, 0.558635, -0.621165, -0.909984, -0.723349, -0.73359, + -0.486869, 0.789816, -0.773615, -0.587828, -0.815204, -0.502363, -0.028073, -0.609766, 0.01057, + 0.337939, -0.170138, 0.43146, 0.229468, 0.966008, -0.051054, 0.866759, 0.748493, 0.478049, + 0.565934, -0.669702, -0.669746, 0.427043, 0.363101, 0.902436, -0.130201, -0.183829, 0.685537, + 0.032295, 0.938822, -0.510073, -0.328102, 0.043208, 0.533344, -0.876668, -0.279916, 0.726239, + 0.208221, 0.706979, -0.338735, -0.630382, -0.682708, -0.56223, -0.751508, 0.495569, 0.268785, + -0.639824, 0.916597, 0.284699, 0.372157, -0.421353, 0.692338, -0.705389, 0.728927, -0.543414, + 0.424736, -0.361764, 0.649669, -0.838671, -0.194979, -0.269916, -0.597972, -0.491194, -0.280605, + 0.103689, 0.709806, -0.164327, 0.980201, -0.47587, -0.514815, -0.052163, -0.181033, 0.317633, + 0.923986, 0.34239, -0.836769, -0.341659, -0.198664, -0.910596, 0.309188, 0.872906, 0.496654, + -0.019801, -0.076131, -0.468294, -0.111094, 0.877037, -0.514122, 0.159986, -0.733721, -0.273462, + 0.057907, -0.755099, 0.271699, -0.858724, -0.408504, 0.695898, 0.938054, -0.078184, -0.714742, + -0.821073, -0.245752, -0.510308, 0.794911, -0.712869, 0.601933, 0.190129, -0.304152, 0.815147, + 0.556489, -0.034975, -0.677778, -0.294326, 0.322427, 0.86647, -0.337458, -0.415583, -0.977051, + 0.614644, 0.976026, 0.688479, -0.557212, 0.716378, -0.303168, 0.522819, 0.584715, -0.815295, + 0.247468, 0.399223, -0.601168, 0.924549, 0.780675, 0.835765, -0.009021, -0.535039, -0.546479, + 0.353447, -0.198669, 0.794818, 0.837505, 0.077169, -0.818685, 0.39693, 0.894895, -0.251169, + -0.523351, -0.233927, 0.14327, -0.741964, 0.534037, 0.427446, -0.382332, -0.370445, -0.474491, + 0.781696, 0.593094, 0.28423, -0.044851, 0.249814, 0.9648, 0.316618, -0.49873, 0.38683, + -0.396841, -0.035509, -0.644077, -0.029257, 0.052169, -0.606477, 0.6429, 0.923589, -0.836437, + 0.289765, -0.690804, -0.198758, 0.479016, -0.017554, 0.303032, -0.323999, 0.954324, -0.469489, + 0.187165, 0.102647, 0.681177, 0.102118, 0.602919, 0.257653, 0.637618, 0.012639, 0.333682, + 0.98642, -0.325796, -0.406928, 0.725909, 0.382399, -0.943909, 0.355663, -0.980754, -0.542923, + 0.391344, 0.526775, -0.225795, 0.846466, 0.993784, 0.779775, -0.918457, -0.363738, 0.060841, + 0.812772, -0.167747, 0.208899, 0.526342, -0.523199, -0.605595, 0.988934, -0.022314, 0.707588, + -0.975092, -0.381699, 0.701687, -0.096814, 0.336825, -0.83772, 0.973327, -0.499111, -0.050564, + -0.654996, -0.443673, -0.857287, -0.875288, -0.204296, -0.441089, 0.738698, -0.004838, 0.777596, + -0.16749, 0.212155, 0.960403, -0.7738, -0.433205, 0.854902, -0.229267, -0.269314, 0.080254, + -0.536842, 0.071918, -0.415629, 0.31724, -0.212276, -0.335564, -0.376706, 0.259808, 0.50184, + -0.91424, -0.69743, -0.959718, 0.466796, 0.749976, -0.960801, 0.259961, 0.202804, -0.536633, + 0.216052, 0.771077, 0.980869, 0.432425, -0.198285, -0.568981, -0.380859, 0.008202, -0.073436, + 0.729682, -0.903709, 0.089256, -0.318049, 0.083392, 0.961642, 0.029254, -0.173438, -0.338936, + -0.997938, -0.90601, 0.435719, -0.610667, 0.567747, -0.283512, 0.360774, 0.729995, 0.146287, + 0.343359, 0.845076, -0.314235, 0.73542, -0.841026, 0.915696, -0.328014, -0.037638, 0.560988, + 0.073417, 0.874414, -0.439517, -0.55117, 0.892704, -0.603592, 0.688185, 0.963117, 0.676932, + -0.378074, -0.014782, -0.9012, -0.544515, -0.206979, -0.660698, 0.576913, 0.523992, -0.286163, + -0.157269, 0.965961, -0.061594, 0.849364, 0.926313, -0.350777, -0.955083, 0.932767, -0.537653, + 0.956274, -0.638397, 0.181373, 0.295669, -0.23622, 0.779814, -0.906674, -0.415538, -0.157413, + 0.765884, 0.46315, 0.643254, 0.43044, 0.899429, -0.249042, -0.308712, -0.137319, 0.393387, + -0.293251, 0.367281, 0.274169, 0.235131, 0.814741, 0.159275, 0.663583, -0.278802, -0.89863, + 0.61116, 0.414732, 0.840075, 0.382093, 0.019985, -0.721804, -0.948087, 0.200692, 0.815804, + -0.077739, -0.326236, 0.50028, -0.484145, 0.352863, -0.81148, -0.90627, -0.583398, -0.17122, + 0.337199, 0.505972, -0.63295, -0.205378, 0.329266, -0.220532, 0.015028, 0.647406, -0.288484, + 0.515562, 0.812541, 0.333364, -0.177689, -0.633181, -0.660947, -0.1943, 0.312516, 0.546918, + -0.04824, 0.805845, -0.396072, 0.199413, -0.511971, 0.26871, 0.853469, 0.350399, 0.067003, + -0.368029, -0.820454, -0.68431, -0.857792, 0.710745, -0.417176, -0.149626, -0.896106, -0.27884, + 0.850565, 0.18385, -0.178563, 0.521209, 0.770953, 0.778167, -0.739897, 0.071797, -0.82117, + -0.689474, 0.767884, -0.796719, -0.490417, 0.47957, 0.972973, -0.971416, -0.64528, -0.392133, + 0.774658, 0.582771, 0.623424, 0.640761, -0.250263, 0.737336, -0.0281, 0.093954, -0.265192, + 0.424211, 0.446562, -0.106, 0.880339, -0.258986, 0.25311, 0.90826, 0.563416, -0.364141, + -0.452981, 0.192995, -0.007579, 0.070379, 0.644164, 0.34955, -0.560844, -0.816465, 0.945418, + -0.11009, -0.393964, -0.734461, 0.960279, 0.504606, -0.633936, -0.863667, 0.868722, 0.430542, + -0.14689, -0.831086, 0.606106, -0.678821, 0.491403, -0.94978, -0.89161, -0.959325, 0.906543, + 0.908739, -0.853284, 0.773034, -0.607826, -0.929353, 0.481261, 0.566862, 0.566828, 0.175497, + 0.959708, -0.861456, 0.461391, -0.316885, 0.049388, 0.689688, -0.716105, 0.438232, -0.19974, + 0.64682, -0.02626, 0.496137, 0.959492, -0.35705, -0.985047, 0.943276, -0.550559, 0.228529, + 0.621938, -0.155294, 0.781534, 0.648054, -0.201328, 0.262188, 0.075784, 0.978289, 0.692329, + -0.666042, 0.096352, 0.539359, 0.764504, 0.341432, 0.424917, -0.184634, 0.02169, -0.692105, + 0.823241, 0.787439, -0.550646, -0.856144, 0.779788, -0.886311, 0.641322, -0.97404, -0.511253, + -0.423395, 0.939805, -0.169215, 0.862587, 0.290542, 0.968783, 0.662348, 0.736474, 0.871849, + -0.295451, -0.274945, 0.322209, 0.880942, -0.368008, -0.786614, -0.782261, -0.462, 0.159565, + -0.115721, -0.26668, -0.467498, 0.260104, -0.823717, 0.983823, -0.154868, 0.186588, 0.329423, + -0.389091, 0.789192, -0.007412, 0.082034, -0.951961, 0.123779, 0.343126, 0.139348, -0.099104, + 0.755093, 0.790604, 0.688462, -0.173562, 0.172745, -0.698218, -0.748642, -0.174774, 0.111775, + -0.582454, -0.834694, 0.454918, 0.365613, -0.660703, 0.665437, -0.747463, 0.75646, 0.531244, + -0.337967, 0.952057, -0.561474, -0.456791, 0.79704, -0.257682, -0.403888, 0.154733, -0.168976, + 0.629991, 0.816429, 0.444818, 0.216268, 0.251217, 0.026035, 0.117437, 0.018989, 0.681895, + 0.559219, -0.100543, 0.377626, 0.055306, 0.353383, 0.821001, -0.680375, 0.142109, -0.208041, + -0.977616, -0.971724, -0.130939, 0.715721, -0.659386, 0.325737, 0.57635, -0.72888, 0.429465, + 0.188734, -0.910412, -0.019227, -0.938808, 0.874303, 0.468682, 0.383164, 0.767726, 0.764764, + 0.992751, 0.412582, -0.721978, 0.928836, 0.277785, -0.3942, -0.372165, 0.935736, 0.222142, + 0.726845, 0.07799, 0.923734, -0.731732, 0.238333, 0.238618, -0.011533, 0.889574, 0.200812, + 0.054171, 0.682532, -0.078946, -0.064611, -0.824459, -0.006552, -0.466775, 0.578982, 0.869938, + -0.93293, -0.579215, 0.96277, -0.426822, 0.889336, 0.984564, -0.250787, -0.809492, 0.500019, + 0.454573, 0.86902, 0.14443, 0.54375, -0.857439, 0.137816, 0.235358, 0.626758, -0.5353, + -0.119504, -0.596066, -0.673012, 0.416291, 0.15249, 0.397346, -0.022771, -0.024566, -0.038397, + 0.540162, -0.691941, 0.215564, 0.548334, 0.579991, -0.479879, 0.774382, -0.666462, 0.521438, + 0.818002, 0.032086, 0.30636, -0.947321, -0.39556, -0.392892, -0.931034, -0.211763, 0.698119, + -0.095479, 0.988177, -0.900175, 0.398815, 0.86471, 0.971959, -0.387915, -0.902913, -0.367543, + 0.741308, 0.087617, 0.9558, -0.730178, -0.626182, 0.509633, 0.342879, -0.649681, 0.930316, + -0.385663, -0.831099, 0.277907, -0.560234, -0.475878, -0.558637, 0.271989, 0.468494, 0.672566, + -0.565867, -0.233711, 0.933422, -0.513693, -0.361464, -0.192285, -0.885481, -0.739126, 0.89089, + 0.184594, 0.186842, 0.39643, 0.608148, 0.671713, 0.716237, 0.403612, 0.753867, 0.653376, + -0.16721, 0.090076, -0.523815, -0.752465, 0.948482, -0.744664, -0.625169, -0.965951, -0.766005, + 0.227316, 0.479983, -0.833532, 0.079577, -0.738253, 0.189332, 0.597302, -0.383678, -0.439023, + 0.651349, -0.644469, -0.204374, -0.832588, 0.700735, 0.318942, -0.397267, 0.711633, 0.946841, + 0.408183, -0.706182, -0.218054, 0.804399, 0.726719, -0.328761, 0.66173, -0.654163, 0.268248, + 0.881506, 0.1815, -0.794613, 0.299927, 0.557317, 0.695477, -0.657801, -0.179506, -0.052046, + -0.174835, -0.22193, -0.360325, 0.344388, 0.475202, -0.19423, 0.785821, -0.005374, 0.243776, + 0.250269, -0.340488, -0.043898, -0.111683, 0.378177, -0.537247, -0.459044, -0.965255, -0.435019, + 0.318745, 0.808282, -0.985864, -0.35975, 0.629145, -0.540775, 0.675183, 0.040357, -0.940206, + 0.169088, -0.599398, 0.194355, -0.89601, 0.939662, -0.426665, 0.639558, -0.629177, -0.838102, + 0.393433, 0.6012, -0.008994, -0.845706, -0.274302, -0.692976, 0.283267, 0.161923, 0.694922, + 0.998221, -0.462273, 0.790081, 0.694766, 0.153716, -0.980441, -0.693577, 0.435731, 0.743079, + 0.53443, 0.094252, -0.608148, -0.878707, -0.571466, 0.007451, 0.131811, 0.765875, -0.721244, + 0.523016, 0.847108, -0.90385, -0.532825, -0.279081, 0.191864, 0.895747, 0.204081, 0.676617, + 0.809129, 0.785051, -0.912029, -0.653333, -0.065384, -0.003649, 0.084302, 0.84009, 0.905733, + -0.292581, -0.462297, 0.080996, 0.126529, 0.616719, 0.355273, 0.311612, 0.328292, 0.744529, + 0.595561, -0.098361, -0.697777, 0.674296, -0.081529, -0.716412, -0.166655, 0.7358, -0.459661, + -0.096423, 0.337352, 0.719077, -0.149665, -0.718289, -0.418031, -0.322793, 0.10909, -0.678994, + 0.881124, 0.263637, -0.72037, 0.546101, 0.050465, 0.978409, -0.020095, -0.013188, -0.965122, + -0.82599, 0.003497, 0.848637, -0.618402, 0.195792, -0.689147, -0.775056, -0.3677, -0.66948, + -0.827391, -0.306944, -0.136633, 0.497869, 0.459761, -0.013126, -0.2284, -0.212447, -0.821384, + 0.695143, 0.897009, -0.919379, -0.954815, -0.936972, -0.161285, -0.002415, -0.652959, 0.552577, + 0.065856, -0.506171, -0.967402, 0.778712, 0.991828, 0.09285, -0.478931, 0.635765, 0.589344, + -0.143497, 0.937763, -0.738941, -0.114597, 0.847461, -0.61875, -0.308462, -0.425156, -0.409368, + 0.880849, 0.616359, -0.909118, -0.611623, -0.013049, -0.325149, -0.550706, -0.982955, 0.737525, + 0.559887, 0.290156, -0.225046, -0.969321, -0.062605, 0.382297, -0.290219, 0.787142, 0.228543, + -0.04962, 0.39521, 0.521129, -0.733462, 0.304101, -0.908893, -0.209542, -0.324216, 0.763553, + -0.96321, 0.355285, -0.911219, 0.433512, 0.244905, -0.3935, 0.295371, 0.959771, 0.608807, + -0.912468, -0.259157, 0.907085, 0.154712, 0.123285}; + const std::vector k_data{ + 0.071347, -0.351585, -0.261591, 0.066366, 0.752753, -0.281848, -0.261693, 0.19036, -0.366006, + 0.87226, 0.752264, 0.042011, -0.64667, 0.279867, 0.848051, 0.32944, 0.419157, -0.529314, + -0.985107, -0.376028, 0.031958, 0.888471, 0.208795, -0.18332, -0.251275, -0.191204, -0.537729, + -0.418651, 0.185779, 0.677212, 0.849367, 0.385097, -0.690972, 0.924453, 0.965609, -0.297175, + 0.034478, 0.905198, -0.35165, 0.474067, 0.166331, 0.557426, 0.348414, 0.992136, 0.847497, + -0.682337, 0.601793, -0.19785, -0.523228, 0.167725, -0.136113, -0.651672, -0.882679, -0.557311, + 0.102956, 0.609434, 0.589261, 0.266675, 0.948627, -0.856482, -0.629427, 0.430459, -0.910849, + 0.943121, 0.13788, -0.36855, 0.892291, 0.466245, 0.841012, 0.753377, -0.17404, 0.907784, + 0.132061, 0.096832, 0.347479, -0.782876, -0.597923, 0.94625, -0.654408, 0.540336, 0.604369, + -0.81185, -0.114608, -0.0107, 0.741893, -0.273649, 0.9032, -0.839116, 0.417762, 0.546002, + -0.360246, -0.328863, -0.636945, 0.265305, 0.335114, -0.351489, 0.808699, -0.153225, -0.155816, + 0.781021, 0.175213, 0.535311, 0.589429, -0.654567, -0.012666, 0.883158, -0.618355, 0.13097, + 0.742827, 0.110413, -0.224226, 0.361615, -0.827148, 0.82159, 0.785564, -0.280033, -0.361758, + -0.195607, 0.994972, -0.38386, 0.299443, -0.949392, 0.302268, 0.605906, 0.32368, -0.047518, + 0.072978, 0.865978, 0.43458, -0.231074, -0.803206, 0.72881, -0.372306, 0.623478, -0.200977, + 0.016597, -0.788635, -0.380963, 0.082509, -0.9664, -0.20579, 0.581049, 0.702845, 0.736592, + -0.304963, 0.078717, -0.802452, 0.518012, 0.177056, 0.837026, -0.155568, 0.956393, 0.495434, + 0.853412, -0.06508, -0.784626, -0.784248, -0.942889, 0.166215, -0.773295, -0.326659, 0.508145, + 0.909089, -0.250802, 0.692351, -0.075776, -0.200116, -0.118343, -0.453432, 0.273697, -0.005413, + -0.487233, 0.636058, -0.446738, -0.677279, 0.347145, -0.061407, -0.550489, -0.816331, -0.29961, + -0.765667, 0.543896, -0.124559, 0.515057, 0.486766, 0.080546, -0.153967, -0.515745, 0.22513, + -0.869547, -0.487291, 0.797466, -0.194097, 0.806723, 0.592174, -0.210806, -0.804893, 0.803093, + 0.084242, 0.945038, -0.904412, 0.206073, -0.86159, -0.121412, -0.876512, -0.910177, 0.050447, + 0.985877, 0.076623, -0.092647, 0.932141, 0.091538, -0.558366, 0.635887, 0.713549, 0.867098, + 0.786419, 0.929564, -0.370883, 0.143788, -0.364903, -0.13311, 0.790612, -0.790131, 0.546464, + -0.577783, 0.005484, -0.119062, -0.450428, 0.085275, -0.506558, 0.905745, -0.362013, 0.632947, + -0.238198, -0.78733, 0.776281, -0.276124, -0.414268, 0.074969, -0.010188, 0.282181, -0.242628, + -0.288519, 0.547135, 0.458346, 0.883893, 0.110361, -0.259596, -0.213045, -0.203783, -0.316027, + -0.341282, -0.281753, 0.301579, 0.395674, 0.761126, -0.973131, 0.775464, -0.201472, -0.977185, + 0.653745, -0.566957, -0.450627, 0.331887, 0.163802, 0.681673, -0.697757, 0.543263, 0.521225, + 0.618981, -0.332842, 0.169833, 0.294345, 0.942876, -0.607674, -0.91819, -0.9044, 0.132443, + -0.760014, -0.185117, -0.467466, 0.18115, -0.708618, 0.616677, -0.982387, -0.54786, 0.20635, + -0.983587, 0.246481, -0.374116, -0.505052, 0.71683, -0.322894, 0.236397, -0.386128, 0.467804, + 0.910666, 0.959938, -0.604899, -0.994042, -0.69928, 0.281707, 0.401451, 0.525214, 0.434243, + 0.972821, -0.758325, -0.78398, -0.313151, 0.77617, -0.767871, 0.749745, 0.166392, 0.618568, + 0.990748, 0.973328, 0.960007, -0.245401, -0.426717, 0.424536, 0.852776, 0.024898, -0.236716, + -0.161739, -0.356935, 0.480163, -0.994579, 0.850919, -0.036723, -0.606208, -0.356703, -0.613851, + -0.86892, 0.100622, -0.227108, -0.448891, -0.170307, -0.137876, 0.440565, -0.808911, -0.023447, + -0.013647, -0.817483, 0.921798, -0.474062, 0.79338, 0.766485, 0.027083, 0.744595, -0.752498, + -0.109923, -0.824891, -0.608762, 0.315943, 0.745154, -0.593427, -0.40406, -0.560701, -0.086882, + -0.830621, -0.791505, -0.217556, 0.960805, 0.172265, -0.416256, 0.66851, 0.738056, 0.683441, + 0.009308, -0.108336, 0.64953, 0.537553, 0.758236, 0.720216, -0.283849, 0.846984, 0.19565, + 0.995583, 0.994818, 0.838675, 0.665663, 0.785174, -0.470017, -0.389295, -0.233051, -0.511829, + 0.734709, 0.093483, -0.253273, -0.448033, -0.890314, 0.071751, 0.879038, 0.657529, 0.792587, + 0.683238, 0.420799, -0.028796, -0.739775, 0.735241, -0.703685, -0.601334, 0.401269, 0.549194, + -0.520388, 0.632861, -0.935868, 0.238301, 0.441467, 0.185745, -0.562707, -0.675344, 0.799244, + 0.220306, -0.429606, 0.963192, -0.208732, -0.18492, 0.257393, 0.832551, -0.44515, 0.005041, + -0.448946, -0.452942, -0.136312, -0.00103, 0.5362, -0.746939, 0.580305, 0.781271, -0.114001, + -0.089578, 0.246605, -0.91552, 0.735819, -0.174934, 0.040218, 0.474092, 0.416394, -0.462704, + -0.734516, -0.964707, -0.835029, -0.210218, -0.776323, -0.100973, -0.528315, 0.566634, 0.68401, + 0.846005, -0.655753, -0.705712, 0.346897, -0.228361, 0.758381, -0.917397, 0.927336, -0.693618, + -0.801915, -0.106042, -0.443005, -0.630392, 0.570908, 0.772323, 0.556759, 0.122061, -0.143901, + -0.545614, 0.953124, -0.544655, -0.876777, 0.848422, -0.080649, 0.671921, -0.331912, 0.778871, + -0.705172, 0.601784, 0.778312, -0.013981, 0.663164, 0.035486, -0.915579, 0.438094, -0.7774, + 0.031427, -0.899526, -0.476118, -0.297962, -0.388618, -0.985057, -0.496686, -0.926575, -0.836015, + -0.997678, -0.576067, -0.224084, 0.900876, -0.703513, -0.760436, -0.814062, 0.935538, -0.127885, + -0.26606, 0.548292, -0.590849, -0.264283, 0.916575, 0.532614, -0.775732, -0.274843, 0.0982, + 0.361306, -0.460068, 0.700191, 0.015638, -0.864623, 0.267959, -0.970758, 0.069619, -0.989028, + -0.285245, -0.232405, -0.898268, -0.282852, 0.033581, -0.563415, 0.141913, 0.528064, 0.118021, + -0.981559, -0.00316, -0.468644, 0.285041, -0.802364, -0.691735, -0.033197, 0.576643, -0.267154, + -0.052732, -0.099035, -0.782447, -0.079118, -0.028145, 0.165523, 0.447576, 0.29781, 0.557671, + -0.190639, -0.43199, 0.849253, 0.797324, 0.545213, 0.728464, 0.489772, 0.883974, 0.869899, + -0.813062, -0.942368, -0.518823, 0.764583, 0.902923, 0.065234, -0.739377, -0.469998, 0.475382, + 0.931495, 0.193689, -0.657672, 0.948798, 0.878098, -0.438695, -0.540337, 0.574909, -0.722632, + 0.834719, -0.201866, -0.01361, -0.534234, -0.988609, 0.226245, -0.356285, -0.586345, 0.797112, + 0.185434, -0.268132, -0.922186, -0.562938, -0.326426, 0.420375, -0.911417, 0.577539, 0.909615, + 0.309448, -0.992874, 0.130464, -0.403553, 0.316325, -0.03738, 0.489282, -0.08136, 0.180374, + 0.39841, -0.740897, 0.166768, 0.891116, 0.69826, 0.062246, -0.175851, 0.413487, -0.879369, + -0.30119, 0.867368, 0.128689, -0.012937, -0.787114, -0.648128, 0.138297, -0.751691, -0.289172, + -0.492628, 0.308176, 0.152767, -0.965533, 0.330055, -0.090161, -0.48446, 0.736668, -0.658338, + -0.912132, 0.109025, -0.542761, -0.406094, -0.874541, -0.248527, 0.794491, -0.907307, -0.676203, + -0.218833, -0.791415, 0.187186, -0.198719, 0.756477, -0.993836, 0.033478, 0.440967, 0.129815, + -0.272331, 0.937815, -0.776227, 0.931392, 0.272248, 0.476172, 0.704965, 0.099525, 0.106036, + -0.202768, -0.90716, 0.421252, 0.747909, 0.41812, -0.156034, -0.89516, -0.016529, 0.260059, + -0.782712, 0.850339, -0.026333, 0.273125, 0.882185, 0.434118, -0.541862, 0.368775, 0.587988, + 0.498918, -0.469829, 0.101572, -0.718521, -0.112349, -0.69392, 0.571664, 0.978422, -0.9685, + -0.467212, -0.422985, -0.700222, 0.909943, -0.77244, -0.522807, -0.830732, -0.003318, -0.74019, + -0.673611, 0.994391, 0.446859, 0.424244, 0.709196, 0.17279, 0.162272, -0.751084, 0.280932, + -0.781262, -0.004351, -0.539641, -0.566818, -0.585499, -0.484086, -0.594718, -0.546887, -0.36427, + -0.913709, 0.800444, 0.33604, -0.994658, -0.999507, -0.503617, 0.385869, 0.915303, -0.155771, + 0.594996, -0.53937, -0.207561, -0.155025, -0.973589, 0.005217, 0.264666, 0.60951, -0.773747, + -0.301096, 0.037725, 0.106079, 0.168648, -0.742832, 0.776122, -0.903643, -0.34716, 0.498327, + -0.249399, -0.481838, -0.986537, 0.688745, -0.022454, 0.483023, 0.159539, -0.743676, -0.353356, + 0.713032, -0.489707, -0.460753, 0.54838, -0.4334, 0.163244, -0.486146, 0.307817, 0.101725, + -0.793758, -0.758469, 0.367708, -0.327495, 0.547782, 0.05204, -0.341971, -0.174012, -0.455607, + 0.493454, 0.793206, -0.031146, -0.644676, 0.718871, 0.813704, 0.681712, -0.018099, 0.24582, + 0.050864, -0.379824, -0.990176, -0.122229, 0.432504, 0.583313, 0.237839, 0.456006, 0.625957, + -0.193324, 0.652998, -0.021004, -0.354153, -0.388325, -0.582803, -0.770198, 0.229081, 0.924051, + 0.142157, 0.135154, -0.375143, -0.394195, -0.313424, 0.346137, 0.172406, -0.367417, 0.195945, + -0.174716, -0.068116, 0.709065, -0.416698, 0.933058, -0.546967, 0.926465, 0.375676, 0.401529, + -0.228749, -0.27252, -0.731464, -0.958977, 0.700152, 0.970032, 0.28676, -0.391152, 0.219626, + -0.037451, -0.86441, -0.800878, 0.347198, -0.291976, -0.237847, -0.602923, 0.441016, -0.504628, + -0.319358, 0.53503, 0.961328, 0.891495, 0.393653, 0.035523, 0.751581, 0.884144, 0.448942, + 0.29396, 0.241135, 0.101758, 0.660039, 0.282877, -0.843142, -0.59071, -0.908126, -0.300539, + 0.05111, -0.42397, -0.919675, -0.650362, 0.425591, -0.070442, -0.167651, 0.161901, -0.211233, + -0.544973, -0.458889, -0.4076, -0.936027, -0.922226, -0.378883, 0.375261, 0.977958, -0.027066, + 0.682898, 0.330655, -0.796445, -0.500287, -0.274381, -0.824212, 0.140053, 0.237533, -0.779535, + -0.210469, -0.882062, 0.995817, 0.591468, -0.377222, 0.859684, -0.625909, 0.841289, -0.384841, + 0.292179, 0.694898, 0.465573, 0.242331, -0.115313, 0.007362, 0.853856, -0.326803, -0.324451, + 0.12779, -0.485204, -0.378075, 0.078141, 0.752076, 0.326048, -0.617907, 0.603825, -0.368282, + 0.257891, 0.058888, 0.714186, -0.223358, -0.406321, -0.199208, 0.009089, -0.471915, 0.687312, + -0.536139, 0.158196, -0.767773, -0.124169, -0.21547, -0.40006, 0.522759, -0.89291, 0.104887, + -0.093547, -0.52007, 0.777666, 0.627766, 0.30219, 0.019453, 0.554258, -0.439257, -0.813733, + 0.9596, -0.374342, 0.200591, 0.019971, 0.841868, 0.994682, -0.672794, -0.010665, -0.810717, + 0.645876, 0.954784, -0.382245, 0.181243, -0.220181, -0.24226, 0.794031, -0.929123, -0.136935, + -0.004101, -0.881968, 0.411192, 0.666864, -0.794358, 0.386918, -0.064699, 0.936889, -0.942369, + 0.848988, -0.371502, 0.84298, -0.510104, 0.169376, 0.233278, 0.620386, 0.468709, 0.558867, + -0.210505, -0.79117, 0.011612, 0.912127, 0.865004, -0.588392, 0.687912, 0.449756, -0.180951, + 0.545846, -0.041705, 0.121765, -0.655257, -0.123148, 0.978916, 0.619499, -0.80817, -0.056638, + 0.636986, -0.427939, -0.125255, 0.4988, 0.840451, 0.90728, -0.722424, -0.94227, 0.706707, + -0.077455, 0.902849, 0.709807, -0.390396, 0.286488, 0.336437, -0.35792, 0.898466, 0.082056, + -0.326838, -0.913401, 0.800322, -0.9916, 0.761146, -0.350232, -0.18307, 0.135086, 0.983012, + -0.658292, -0.710203, 0.601083, -0.485686, -0.368003, 0.578097, -0.414515, 0.595635, -0.390014, + 0.769202, 0.996191, 0.138318, -0.33291, 0.562523, 0.279509, 0.004341, 0.892153, -0.057841, + 0.351504, -0.297822, -0.181427, -0.043045, 0.067285, 0.43732, 0.754347, 0.613034, -0.420605, + 0.896335, 0.67546, 0.360491, 0.109134, -0.565942, -0.596844, 0.005013, -0.743821, 0.350806, + -0.907738, -0.891713, -0.449159, 0.575389, 0.782999, -0.840526, -0.631532, 0.221845, -0.18226, + -0.819505, 0.277799, -0.832374, 0.062585, 0.407642, 0.922404, -0.853437, 0.746697, 0.13915, + 0.870656, 0.984346, -0.249405, -0.155745, -0.241739, 0.786489, -0.433041, 0.660407, 0.411282, + 0.940264, 0.708304, 0.811569, -0.821955, -0.526344, -0.709507, 0.496537, 0.203433, 0.381165, + 0.375329, 0.042326, 0.381614, -0.542255, 0.649693, -0.860922, -0.918858, 0.339613, 0.938819, + -0.365839, 0.941976, -0.354971, -0.75991, -0.155478, 0.553045, -0.520509, 0.937784, -0.447202, + -0.442635, -0.416478, -0.761643, 0.932828, -0.564976, -0.449913, -0.302999, 0.841797, 0.466513, + 0.368189, -0.262962, 0.505376, 0.181403, 0.796744, 0.221992, 0.733963, 0.690124, 0.174751, + -0.958269, 0.20347, -0.754502, 0.17181, -0.111987, 0.795666, -0.717793, -0.83601, 0.445707, + 0.660263, -0.217644, 0.27066, 0.802557, 0.099473, -0.2795, 0.578205, 0.90126, -0.169742, + 0.678504, 0.083434, -0.209387, -0.087275, -0.970777, 0.479725, -0.544295, -0.851661, -0.138642, + -0.407433, -0.636493, -0.210528, -0.10554, 0.303932, 0.137059, -0.13361, 0.22013, -0.647035, + 0.846155, 0.489666, 0.632626, -0.891943, 0.682579, 0.176763, -0.966366, 0.949531, -0.020927, + 0.191783, 0.827302, 0.644882, 0.889675, -0.933364, 0.988636, 0.243583, 0.012987, -0.785719, + -0.537755, 0.970821, 0.743515, 0.779513, -0.084038, -0.557027, 0.233494, -0.476504, -0.650943, + 0.322966, 0.784358, -0.767144, -0.883922, 0.13511, -0.352336, -0.534737, -0.20468, -0.05783, + -0.277337, 0.740541, 0.554139, 0.314526, -0.320672, -0.089135, 0.64832, 0.082914, -0.96473, + 0.095017, 0.523632, -0.256504, -0.186682, -0.135665, 0.614538, 0.825731, -0.784765, 0.658853, + 0.409494, 0.350062, -0.568054, -0.570902, 0.992967, 0.255903, -0.222554, -0.202543, 0.669512, + -0.249108, 0.675625, -0.283525, 0.236374, 0.263435, -0.512233, 0.024718, 0.199735, -0.978004, + -0.196941, 0.095207, 0.823635, 0.221443, -0.84996, -0.293095, 0.990072, -0.130131, 0.754413, + 0.114733, 0.656173, -0.429736, 0.982393, 0.211047, -0.204731, 0.768906, 0.493136, -0.672171, + -0.071903, 0.716727, 0.24914, -0.31626, -0.651077, -0.70026, 0.55588, 0.452498, -0.886131, + -0.205327, 0.253092, -0.884766, 0.861798, -0.106649, -0.406226, 0.111347, 0.36127, 0.222215, + 0.948334, 0.562947, -0.096855, 0.17023, 0.242318, -0.396622, -0.856885, -0.106373, -0.380901, + -0.944632, 0.356629, -0.419579, 0.957412, 0.357641, 0.425863, 0.291464, 0.39, 0.640285, + 0.734626, -0.054644, -0.283486, 0.270934, -0.451205, -0.050812, 0.29198, 0.446831, -0.967273, + 0.387216, -0.38718, -0.704359, -0.425873, -0.021575, 0.492471, -0.890629, 0.271628, 0.900985, + -0.564972, 0.238957, -0.402018, 0.245853, 0.433016, -0.616011, 0.239293, 0.988395, 0.070163, + -0.709828, 0.012508, 0.220527, 0.307916, -0.07209, -0.214312, -0.497212, 0.646199, -0.5649, + -0.340376, 0.6635, -0.469941, -0.130522, -0.398699, -0.886379, 0.482054, -0.444037, -0.461465, + -0.22035, 0.273985, 0.878043, 0.884515, 0.01366, -0.857666, 0.073791, 0.023107, 0.844542, + -0.206692, -0.939626, 0.363301, -0.219311, 0.348932, 0.300891, 0.356459, 0.553152, -0.701054, + -0.814533, 0.936268, 0.914023, -0.394751, 0.957489, 0.197416, -0.262765, -0.541584, -0.532165, + 0.802393, -0.614662, -0.410177, 0.995498, -0.488509, 0.983927, 0.446597, 0.496102, 0.227729, + -0.179013, 0.445846, 0.297854, -0.545573, -0.823799, -0.812735, -0.121026, 0.286, -0.633832, + 0.184237, 0.576055, 0.58816, -0.373677, 0.229236, -0.886641, 0.719434, -0.799198, 0.055503, + -0.314145, -0.829139, -0.866799, -0.642419, -0.725967, 0.763129, -0.153608, -0.667632, 0.003607, + -0.451431, -0.144807, 0.859999, -0.882548, -0.868719, 0.245076, 0.697009, -0.950072, 0.314172, + 0.990757, -0.160659, -0.590065, 0.490587, 0.564838, -0.103814, -0.815591, 0.038782, -0.647599, + -0.853704, 0.624154, 0.6868, 0.401479, -0.815963, 0.848063, 0.732594, 0.859443, -0.066468, + -0.185201, -0.896853, 0.737937, -0.052436, -0.999891, 0.977762, -0.129295, 0.601448, -0.147605, + -0.157318, 0.879662, 0.830278, -0.466724, 0.031244, 0.679247, 0.04806, -0.180208, 0.893423, + 0.890467, -0.268055, 0.757131, -0.099043, 0.029715, 0.802172, -0.077585, -0.099474, -0.217297, + -0.834916, 0.774299, -0.784541, -0.767554, 0.135347, -0.105312, 0.039199, 0.078677, 0.991115, + -0.970928, -0.601242, 0.184467, -0.890237, -0.790028, 0.766246, 0.387208, -0.310187, 0.263893, + 0.174901, -0.09852, 0.830411, -0.000267, 0.709446, -0.77839, -0.406308, 0.169137, 0.534173, + -0.406878, 0.721425, -0.829615, -0.381452, 0.751788, -0.747192, -0.937863, -0.252406, -0.833135, + 0.297474, -0.175817, -0.294357, 0.553019, 0.05818, -0.901559, -0.947615, 0.628042, 0.431251, + 0.549527, -0.849303, -0.193243, 0.854375, 0.807731, 0.679838, 0.928336, -0.313364, -0.774152, + 0.562155, 0.637599, -0.301992, -0.093353, -0.048157, -0.887076, -0.414196, -0.316873, 0.373316, + -0.291774, 0.451322, 0.900446, -0.213167, -0.243748, -0.628099, -0.076318, -0.91513, 0.675928, + 0.862621, 0.266707, 0.945766, 0.503706, 0.662875, 0.923629, -0.687534, -0.078454, 0.375685, + -0.267668, -0.70936, -0.313993, -0.49572, -0.350734, -0.761799, -0.301648, 0.572985, -0.438906, + 0.425966, -0.822376, -0.630136, 0.103646, 0.926069, -0.923516, 0.435276, 0.174896, -0.817106, + -0.726068, 0.503827, -0.499669, 0.700791, -0.69154, 0.755438, -0.510161, 0.405087, 0.299204, + -0.784683, -0.52444, -0.242234, 0.003173, 0.493871, -0.411063, 0.14713, -0.542452, -0.475335, + 0.652575, -0.273883, -0.876235, 0.042005, -0.142555, 0.284287, -0.510121, 0.043071, -0.493341, + -0.604363, 0.228593, 0.309087, 0.185001, 0.923712, 0.092701, 0.085037, -0.130736, -0.966801, + 0.391117, 0.779553, 0.099094, -0.779897, 0.897889, 0.224025, 0.723307, 0.434318, 0.157735, + -0.294632, 0.205302, 0.321762, -0.060624, -0.638738, -0.525541, -0.91655, -0.39111, -0.16121, + 0.817872, -0.534917, -0.983973, 0.548107, 0.862205, -0.779975, -0.009987, 0.317929, 0.644685, + -0.179515, 0.455459, 0.768339, 0.585193, 0.487225, 0.608144, -0.896105, 0.212623, 0.771171, + -0.792318, -0.87657, -0.825798, 0.307036, 0.928066, -0.090702, -0.397525, 0.05918, -0.824533, + 0.173108, -0.657449, -0.673074, -0.729465, -0.283111, 0.651705, 0.203111, 0.695933, -0.964762, + -0.81439, 0.612715, 0.787713, 0.849233, -0.928724, 0.447923, -0.986071, -0.295744, 0.020258, + 0.467628, -0.305482, -0.864665, -0.971739, -0.401022, 0.762089, 0.433885, 0.494634, -0.808759, + -0.898534, 0.925258, 0.653193, -0.431021, 0.084085, 0.720423, 0.90017, -0.804634, -0.495627, + 0.388601, 0.764042, 0.173975, -0.061715, 0.038735, 0.910003, -0.785129, 0.455572, -0.71594, + 0.095079, -0.94465, 0.647679, -0.557167, 0.066428, -0.627156, 0.091579, -0.486962, -0.511417, + -0.433363, 0.620466, 0.13975, -0.25757, 0.851712, 0.195969, -0.323614, -0.045218, -0.390992, + -0.396706, -0.312276, 0.238313, -0.890431, -0.778772, 0.67128, -0.239503, -0.036922, 0.349252, + -0.447293, 0.70054, -0.22636, 0.060935, -0.693546, 0.406639, -0.710765, 0.608168, -0.141575, + -0.365228, -0.334751, 0.381523, 0.979419, 0.271683, 0.612943, -0.842927, -0.235996, -0.566321, + -0.717725, 0.171703, -0.312623, 0.226369, -0.39762, -0.911836, -0.51464, -0.961205, 0.216575, + -0.750732, 0.768701, 0.432804, -0.561085, -0.285781, -0.89595, 0.720428, -0.447182, -0.210074, + 0.073874, 0.48545, -0.298123, 0.490276, 0.514313, -0.123558, 0.663047, -0.876917, -0.544515, + -0.078476, -0.101817, 0.35477, 0.722259, -0.722082, 0.524749, 0.239939, 0.830502, 0.533737, + -0.217359, -0.1418, -0.665465, 0.220647, 0.782547, 0.344106, 0.808546, 0.399405, 0.192416, + -0.216493, -0.863928, -0.18746, 0.848868, 0.869496, -0.338322, 0.820786, 0.824327, -0.853278, + -0.986418, -0.498059, -0.101189, 0.387368, 0.418699, 0.63351, -0.489733, 0.668856, 0.227987, + -0.709922, -0.739043, 0.355506, 0.931087, -0.663927, 0.118491, -0.946684, 0.651356, 0.294827, + -0.254702, 0.528339, 0.414729, 0.674034, 0.100008, 0.009871, 0.479859, 0.337248, -0.84757, + -0.38385, 0.618273, -0.509365, 0.773541, -0.191893, 0.957836, -0.587831, 0.707241, -0.441622, + 0.707164, 0.552164, 0.402681, 0.292623, 0.597407, -0.39861, -0.322431, 0.271681, -0.709283, + 0.059427, 0.417348, -0.908514, -0.05388, 0.056658, -0.769874, 0.785056, 0.045251, -0.940997, + -0.346867, 0.18122, 0.724421, -0.322952, 0.874716, -0.422985, -0.806103, -0.273217, -0.652551, + 0.332353, 0.660361, -0.844073, -0.732056, 0.555791, -0.214512, 0.911844, 0.907848, -0.663611, + 0.589021, -0.964382, 0.402559, -0.57054, -0.00568, 0.971097, 0.135614, -0.537477, 0.459586, + -0.160781, 0.897469, -0.747845, -0.170021, -0.840178, -0.567223, -0.285388, -0.659763, -0.68127, + -0.248085, -0.571184, -0.605941, 0.054028, -0.751017, 0.57603, 0.658968, 0.920101, 0.309864, + -0.094422, -0.174717, -0.475378, 0.680155, 0.553761, 0.722094, -0.194146, -0.690872, 0.333537, + 0.876577, -0.158618, 0.807606, 0.706113, 0.351585, -0.270448, -0.335351, -0.175086, -0.075046, + -0.20582, -0.974094, -0.685869, -0.317122, 0.768412, 0.413183, -0.910749, -0.715929, -0.586738, + 0.948372, 0.247571, 0.801005, -0.807513, 0.934162, 0.81372, 0.069368, -0.467651, 0.391985, + -0.537332, -0.414554, 0.375125, -0.768074, 0.243352, -0.053331, 0.009312, 0.04582, 0.241118, + -0.597709, 0.411585, -0.938084, 0.420675, -0.812587, 0.962361, 0.240485, 0.277009, 0.265662, + 0.194282, -0.382412, -0.973028, 0.598035, 0.605618, -0.182954, 0.050132, -0.064272, -0.22582, + 0.682273, -0.59787, -0.934406, -0.165316, -0.583026, -0.66044, -0.287354, -0.038479, 0.656845, + 0.562734, 0.81399, 0.748388, 0.300755, -0.006519, -0.031929, -0.758978, 0.09533, -0.233831, + -0.275427, 0.84062, 0.458847, 0.627431, 0.645933, -0.578992, 0.28859, -0.125445, 0.348986, + 0.587912, -0.251029, 0.7504, 0.041804, -0.190263, 0.655107, 0.774747, -0.282163, 0.575134, + -0.222805, -0.030571, -0.710786, -0.426404, 0.131652, -0.230638, -0.100222, 0.240365, -0.397305, + 0.528429, 0.980461, 0.796796, 0.88025, -0.277441, 0.032204, -0.335431, -0.487182, -0.223976, + 0.608634, -0.935147, -0.529974, 0.513563, 0.521517, -0.255718, -0.226996, -0.139148, 0.724082, + 0.7226, -0.466885, 0.165731, -0.967998, -0.660161, -0.091511, -0.334421, -0.471822, 0.821794, + 0.497737, 0.077042, -0.294423, 0.014852, 0.820578, -0.186724, 0.076187, 0.309722, 0.592235, + 0.612496, -0.468182, 0.393051, 0.159103, 0.144061, -0.861699, 0.925394, 0.445974, 0.117262, + 0.384242, -0.248357, -0.717965, -0.261475, -0.895084, 0.864851, 0.428013, 0.26242, -0.676375, + -0.651368, 0.570342, -0.810198, 0.193961, 0.748163, -0.871912, 0.705935, -0.824369, -0.194219, + 0.690536, 0.741561, 0.908188, 0.827401, -0.964525, 0.167585, -0.893664, 0.569257, 0.296057, + 0.770564, 0.234612, 0.685558, -0.043882, -0.803144, -0.657719, -0.014072, -0.898107, 0.849225, + -0.600385, -0.758766, 0.97387, -0.64117, -0.446382, 0.016862, 0.318889, -0.358499, 0.535276, + -0.640174, 0.194152, -0.983863, -0.897881, 0.354027, 0.480713, -0.446549, 0.35098, -0.261514, + 0.558631, 0.109196, -0.220941, 0.189994, -0.949069, 0.560162, 0.924297, 0.852929, -0.576102, + -0.402642, -0.438143, 0.152039, -0.700264, -0.750934, -0.388955, 0.875342, 0.263431, -0.905547, + -0.466557, -0.792224, -0.128317, 0.031728, -0.667775, -0.779944, -0.19716, 0.058343, 0.7351, + 0.362907, -0.582345, -0.922989, 0.194998, -0.143468, 0.58641, -0.691822, -0.04853, -0.729419, + -0.501499, -0.590005, -0.208257, -0.083779, 0.929624, 0.886311, 0.77896, 0.239078, 0.015814, + 0.952006, -0.690238, -0.923721, -0.540353, 0.749056, 0.97907, -0.410938, -0.647204, -0.888382, + 0.463356, -0.402741, 0.747459, -0.353579, 0.914878, 0.644704, 0.65874, 0.5319, -0.803564, + 0.13721, -0.596599, -0.3073, 0.619382, -0.508154, 0.630616, 0.051597, -0.474161, -0.485624, + -0.972105, 0.343016, 0.038402, 0.890337, 0.36043, 0.310567, -0.053122, 0.467344, -0.148367, + 0.40093, -0.454742, 0.632344, 0.274213, 0.528261, 0.067533, 0.474618, 0.903739, 0.153887, + 0.695288, -0.915589, -0.079129, -0.869109, 0.071501, 0.187793, 0.282378, -0.42566, 0.468098, + -0.420769, -0.254394, 0.749962, -0.920293, 0.202949, -0.860376, 0.429736, -0.835057, -0.938732, + -0.278561, 0.79978, 0.50525, 0.642696, -0.232969, 0.883347, -0.45597, -0.07, -0.918282, + 0.050383, 0.229265, -0.959793, 0.84067, 0.18814, 0.953676, -0.430487, 0.046632, -0.320937, + 0.845505, -0.559016, 0.575545, -0.702223, 0.751467, -0.931084, -0.497134, -0.451327, -0.169802, + -0.012401, 0.32316, 0.896778, 0.589098, -0.482191, 0.939648, -0.147259, -0.557629, 0.373794, + -0.174265, 0.954351, 0.111554, 0.661853, 0.257484, -0.653519, 0.210466, -0.578696, -0.267779, + -0.322138, -0.792351, 0.387005, 0.707615, -0.985454, 0.544328, -0.789558, -0.978661, 0.344864, + -0.022169, -0.613048, 0.895368, 0.081598, -0.62723, 0.45874, 0.070778, -0.16006, -0.711892, + -0.072546, 0.5787, -0.488539, 0.460594, -0.982742, -0.378367, -0.314595, -0.879727, 0.357403, + -0.782931, 0.578758, 0.204746, 0.013275, -0.533113, -0.340316, 0.24277, 0.961397, -0.478984, + -0.680401, -0.44358, -0.718326, -0.131648, -0.712776, 0.725068, 0.709786, -0.636293, 0.88194, + 0.207319, -0.636218, 0.332151, -0.907578, -0.531823, -0.721808, -0.556156, -0.216458, 0.227716, + 0.190823, -0.977461, -0.95717, -0.15171, 0.853499, 0.370449, 0.892628, -0.473809, 0.278759, + -0.870585, 0.520431, -0.024638, -0.075849, -0.539985, -0.873738, -0.368179, -0.094491, -0.531052, + 0.417968, -0.173525, 0.098462, -0.931274, 0.281627, -0.488904, -0.755615, -0.401333, -0.909472, + -0.763288, 0.745577, 0.818532, -0.694596, 0.216869, -0.515082, 0.935757, 0.610498, 0.397608, + -0.815307, -0.491869, -0.21016, -0.894059, -0.584419, 0.263283, -0.814074, 0.266069, -0.022853, + -0.08235, -0.292103, -0.537429, -0.934944, -0.680488, 0.755228, -0.074122, 0.973749, 0.05272, + -0.11787, 0.599696, -0.941468, -0.619819, 0.573643, -0.260801, 0.791161, -0.091314, 0.713153, + 0.048567, 0.10385, -0.844634, -0.345587, 0.05014, 0.456906, 0.194031, -0.217116, 0.006751, + 0.859628, 0.667063, 0.341219, -0.720676, -0.336241, 0.638441, 0.900176, -0.472751, 0.424905, + -0.234159, 0.634362, -0.150259, -0.794907, -0.989847, -0.037467, 0.294805, -0.589494, 0.786774, + 0.47433, 0.603031, 0.460727, -0.96449, -0.183353, 0.519437, 0.495025, -0.909868, -0.566836, + 0.728885, -0.827933, 0.757898, -0.192935, 0.073363, 0.48773, 0.269202, -0.641041, 0.325728, + -0.858567, -0.504649, -0.175656, -0.200034, 0.727947, -0.545885, 0.839117, 0.465786, 0.32541, + 0.71217, -0.682929, -0.861632, 0.037302, 0.492968, 0.504786, 0.041585, 0.956406, 0.355284, + 0.432093, -0.484688, 0.305038, -0.374321, -0.807831, -0.650534, -0.603745, -0.150782, -0.418829, + 0.918707, 0.413451, -0.831382, 0.042086, 0.862333, -0.040315, 0.162295, 0.273007, -0.329957, + -0.647439, -0.374776, -0.260908, 0.786896, -0.812875, 0.134443, -0.382266, -0.106394, -0.088839, + -0.387903, 0.230748, 0.236337, -0.574257, 0.614419, 0.902085, -0.414188, 0.203826, -0.370285, + 0.685481, -0.077538, -0.891614, 0.2327, 0.828684, 0.003906, -0.256095, -0.027435, 0.566246, + 0.857649, -0.250261, 0.532705, 0.557197, 0.89343, 0.716415, -0.825926, -0.826155, -0.829865, + 0.628362, -0.507811, 0.552376, -0.148896, -0.412054, 0.752486, -0.193142, -0.539678, -0.153258, + -0.636009, -0.96288, -0.175207, -0.056301, -0.569974, 0.886305, -0.223408, -0.254008, 0.792489, + 0.111279, -0.235241, 0.229937, -0.903517, 0.983125, 0.263787, 0.351693, -0.737551, 0.764548, + -0.821885, -0.347489, -0.641201, -0.505032, 0.213402, -0.991713, -0.978977, 0.228445, 0.32958, + 0.014334, -0.379911, -0.27973, -0.13811, -0.202756, -0.618645, 0.752705, 0.202396, -0.66903, + -0.203249, -0.723599, -0.584272, 0.759555, 0.305276, 0.438087, -0.129741, -0.249527, 0.12926, + -0.710423, -0.995024, 0.70302, 0.020379, 0.606558, 0.752423, 0.437381, -0.341792, -0.183378, + -0.05219, 0.059818, 0.038896, -0.78181, -0.549706, 0.728743, 0.032009, -0.453388, 0.676089, + -0.296793, -0.406747, 0.698896, -0.788952, -0.478904, 0.756802, -0.09778, -0.412367, 0.829777, + 0.152169, -0.939561, -0.739474, -0.2535, -0.054879, -0.752912, -0.37683, 0.338047, -0.932571, + -0.937128, 0.259989, 0.190857, -0.965711, -0.93044, 0.830886, 0.997995, -0.437053, 0.996127, + 0.690665, 0.888893, -0.430302, -0.244715, 0.589573, 0.37092, -0.798121, 0.598466, 0.975171, + -0.63506, -0.928451, -0.952568, -0.632673, -0.440371, -0.565129, -0.875836, 0.624557, 0.978047, + 0.837211, 0.6262, 0.443992, -0.394238, -0.806967, -0.590626, 0.45278, 0.218784, 0.127663, + -0.606911, -0.470476, -0.421737, -0.126938, -0.188698, 0.10575, -0.333013, -0.11331, -0.636006, + 0.494158, -0.831053, 0.182531, -0.951366, -0.570283, 0.966907, -0.187121, -0.183705, 0.515884, + -0.862685, -0.230363, -0.032186, 0.112549, -0.165611, -0.705396, -0.916521, 0.010779, 0.835069, + -0.448902, 0.126429, 0.635647, -0.977057, 0.884929, 0.844601, -0.437462, 0.871649, 0.683101, + 0.83071, 0.86604, 0.229333, 0.549484, -0.535449, 0.167941, 0.958954, -0.344592, 0.235659, + -0.510938, 0.369622, 0.325597, 0.75498, 0.005513, 0.477456, 0.60626, 0.161034, -0.943358, + 0.709008, -0.640323, 0.463229, -0.748186, 0.291281, -0.187141, -0.895533, 0.456621, -0.232681, + -0.4161, -0.310708, 0.679935, 0.587595, 0.27242, 0.41843, 0.513644, 0.413708, 0.851486, + 0.602143, -0.514596, -0.152308, 0.466405, 0.79562, -0.830954, -0.495973, -0.495929, 0.944502, + 0.981511, -0.446985, -0.309032, 0.017729, 0.058557, -0.285006, -0.729551, -0.532205, -0.08344, + 0.108244, 0.038373, -0.918301, 0.885442, -0.58248, -0.244854, 0.927631, 0.006526, -0.799367, + 0.576088, -0.376219, 0.969411, -0.290153, -0.747489, -0.743916, 0.005395, -0.161071, 0.778545, + 0.059875, -0.601108, 0.11202, -0.739652, 0.149297, 0.264167, -0.942802, -0.684044, -0.502268, + -0.349656, -0.181682, 0.41936, -0.789308, 0.5172, -0.693191, 0.878132, -0.570733, -0.765005, + 0.716698, 0.813388, -0.338804, 0.876771, 0.112622, 0.363178, -0.058675, -0.273179, -0.361713, + -0.857389, 0.729846, 0.529771, 0.908521, -0.983054, 0.988019, 0.666948, 0.27267, -0.429213, + 0.705647, 0.64125, 0.860633, -0.825644, 0.151995, 0.360106, -0.983711, 0.936039, 0.624227, + -0.803051, -0.858518, 0.040796, 0.802078, 0.290384, 0.140617, -0.064777, -0.9936, 0.601893, + 0.637829, -0.703136, -0.184214, 0.972187, -0.383283, -0.686582, 0.572056, 0.461937, 0.861407, + -0.430607, 0.243146, 0.240737, 0.813646, 0.560386, 0.234978, -0.140693, -0.178388, -0.539661, + 0.420622, 0.852228, -0.508334, -0.683354, 0.744592, 0.134362, -0.471388, 0.64757, -0.814779, + -0.491335, -0.32134, -0.031844, 0.213172, 0.478234, -0.349177, -0.096951, -0.521544, -0.657527, + 0.218187, 0.737386, 0.862952, -0.780459, 0.473211, -0.308521, -0.049835, -0.041735, 0.863742, + 0.837935, -0.809713, 0.21687, 0.584808, 0.268295, -0.023169, -0.472067, -0.705561, -0.984272, + -0.01938, -0.38583, 0.236004, -0.422758, 0.830623, -0.705557, 0.887342, -0.396493, 0.154564, + -0.366704, 0.421482, 0.789174, 0.935045, -0.692597, 0.686488, 0.661412, -0.820602, 0.404199, + 0.193332, 0.548867, 0.876159, 0.022876, -0.370167, -0.450712, 0.129143, -0.146739, -0.716209, + 0.027892, 0.572597, 0.033153, 0.628671, -0.377778, 0.784256, 0.238245, -0.33607, 0.482157, + 0.491772, -0.428763, -0.181895, 0.516111, -0.88128, 0.381022, 0.219232, -0.681653, -0.123285, + 0.292689, 0.695619, 0.731274, -0.645078, -0.650202, 0.472893, 0.986595, 0.853988, 0.393806, + 0.948172, -0.459093, -0.028305, -0.815695, -0.613685, -0.676281, -0.907125, 0.282143, 0.258302, + 0.402591, 0.662733, -0.796518, -0.288616, 0.786881, -0.884987, 0.702839, 0.307946, -0.811833, + 0.215742, 0.032129, 0.19314, -0.286913, 0.45267, 0.777719, 0.69698, -0.095977, -0.919893, + 0.979003, 0.278292, 0.887585, 0.360225, 0.016439, 0.538106, 0.559648, -0.064711, 0.153098, + -0.040597, 0.685191, 0.455257, -0.166742, 0.931898, 0.958243, 0.81236, 0.179179, 0.061162, + -0.522192, 0.728997, -0.718507, -0.861915, 0.301732, -0.935445, 0.318815, -0.481615, -0.01257, + -0.385267, 0.808629, -0.743277, 0.183704, 0.014176, -0.951536, 0.773246, 0.197779, -0.802401, + -0.992488, 0.44219, 0.820894, -0.227881, -0.295414, -0.852731, 0.675287, -0.376738, -0.459638, + 0.380498, 0.874561, 0.462831, 0.288426, 0.885082, 0.042531, 0.154696, -0.073067, -0.626602, + 0.183706, -0.519304, 0.578702, -0.689775, -0.817393, -0.193211, 0.742867, -0.759784, -0.318698, + -0.076621, -0.437325, 0.472418, 0.873519, 0.54125, -0.210893, -0.785125, -0.825652, -0.239459, + -0.315026, -0.758384, 0.247302, -0.37892, 0.289996, -0.531024, -0.090105, -0.300948, 0.614248, + -0.912653, -0.394334, 0.213551, -0.281733, -0.017114, 0.675853, 0.143152, 0.123275, 0.292146, + -0.538014, -0.399369, 0.479018, 0.144965, 0.652335, -0.127672, 0.939406, 0.597199, -0.280143, + -0.511051, 0.201941, -0.834228, -0.457964, 0.30635, 0.08722, 0.452556, -0.418283, 0.84155, + -0.549901, -0.5124, 0.669039, -0.192934, 0.286075, -0.177645, -0.707232, -0.040002, 0.453677, + 0.673938, 0.762824, -0.035214, 0.724299, 0.282085, 0.037007, 0.018892, -0.095419, 0.285588, + -0.051663, 0.643108, -0.152311, -0.555305, 0.290613, -0.560336, 0.621021, 0.81671, 0.160533, + -0.200602, -0.045157, 0.468336, -0.763917, -0.267674, -0.609262, -0.904498, -0.715503, -0.642518, + 0.761419, 0.611228, -0.678887, -0.789155, 0.895537, 0.237365, 0.460499, 0.156166, -0.373647, + -0.540257, 0.538022, -0.987853, -0.83212, 0.301981, -0.262243, 0.191282, 0.533345, -0.574668, + -0.562911, -0.61506, -0.874954, -0.06769, 0.849166, -0.061121, 0.548428, -0.497319, 0.099219, + -0.750896, -0.066101, 0.219449, -0.427866, 0.918113, 0.282337, 0.500183, 0.995226, 0.423905, + -0.078562, 0.477599, 0.985438, -0.962738, -0.188538, 0.485604, -0.242375, -0.813578, -0.580512, + -0.519753, 0.414585, 0.636659, -0.113801, -0.81825, 0.142084, 0.279576, -0.377207, 0.344817, + -0.408494, 0.336644, 0.715488, 0.498722, -0.094504, 0.960494, -0.087934, -0.891949, 0.71881, + 0.929859, 0.456362, 0.876385, 0.540106, 0.408172, 0.579002, -0.768185, -0.011932, -0.427196, + 0.275087, -0.884334, 0.059118, 0.391225, -0.371587, -0.40333, -0.648555, 0.275327, -0.839401, + -0.205258, 0.055622, 0.285311, -0.858496, 0.20179, -0.392321, -0.116423, -0.72971, -0.785427, + 0.136416, 0.16981, 0.859457, 0.940948, 0.730645, 0.387481, 0.66507, 0.427047, -0.931588, + 0.727763, 0.121409, -0.249379, -0.297396, 0.797654, 0.697823, -0.09289, -0.373817, -0.537641, + 0.576487, -0.606443, -0.662952, -0.600111, 0.290355, 0.766571, 0.199872, 0.372745, -0.807649, + -0.726573, -0.58569, -0.639899, -0.446384, -0.606261, -0.327196, -0.619038, 0.29787, 0.025807, + 0.050889, 0.423979, -0.900342, -0.391501, -0.033967, -0.934384, 0.531391, -0.750888, 0.675987, + 0.989638, 0.206087, -0.486725, 0.705771, -0.655582, 0.047347, 0.626974, 0.937491, 0.073275, + -0.075897, -0.086776, -0.969523, 0.177698, -0.793734, 0.089894, -0.237621, 0.635886, -0.400402, + 0.710737, -0.23829, -0.193409, -0.910355, 0.869081, 0.086495, -0.901261, 0.056238, 0.409569, + -0.211321, 0.816052, 0.489086, -0.128179, 0.999758, 0.705254, -0.12266, -0.08638, 0.306901, + -0.34846, 0.615603, -0.962098, -0.535745, 0.458384, -0.959771, -0.33133, -0.531721, 0.541729, + 0.050279, -0.710246, 0.805835, -0.456028, -0.110325, 0.337424, -0.666795, -0.092234, -0.336883, + -0.237191, -0.362742, 0.640093, -0.491406, -0.674873, 0.431971, 0.323998, 0.010442, 0.082404, + 0.981502, -0.334542, -0.892417, -0.984956, 0.259251, 0.389754, 0.014131, -0.831062, -0.78114, + -0.681382, 0.643781, 0.195969, -0.556967, -0.945708, 0.574504, 0.010746, 0.994013, -0.819332, + -0.811096, 0.172532, 0.67024, 0.660557, 0.994211, 0.636638, 0.446673, -0.61486, 0.985459, + -0.442565, 0.643065, 0.411391, -0.592733, -0.089335, -0.083267, 0.755087, 0.765208, 0.214409, + -0.568293, 0.284806, 0.819316, -0.529905, 0.801431, 0.225975, 0.55316, 0.343019, 0.631324, + -0.85079, 0.413003, -0.867189, -0.068238, 0.782021, -0.820067, -0.760642, -0.438281, 0.037624, + -0.138255, -0.78494, 0.130298, -0.251207, -0.467044, 0.010915, 0.3396, 0.160432, -0.662905, + 0.677881, 0.188673, -0.409461, 0.865592, 0.201582, 0.520015, 0.707068, -0.017821, 0.824138, + -0.004461, 0.80001, 0.121295, 0.460142, 0.503584, -0.554221, 0.873891, 0.030323, 0.367537, + -0.737821, -0.373271, 0.651871, -0.631106, 0.138543, 0.878103, -0.949826, -0.011045, 0.162498, + 0.655412, -0.335994, -0.977316, -0.618924, 0.300127, -0.736413, -0.856026, -0.025231, 0.262382, + -0.627064, -0.388407, 0.547004, -0.676129, -0.822552, -0.302233, 0.803483, -0.293185, -0.67786, + -0.709417, -0.23502, 0.710262, 0.375862, -0.333887, -0.867524, -0.606815, 0.21118, 0.840859, + 0.515002, -0.127822, 0.530457, 0.072016, 0.137423, 0.466238, -0.246158, 0.291332, 0.089162, + 0.305086, -0.213905, 0.646426, -0.900861, 0.664199, -0.825094, -0.672808, -0.614889, -0.09655, + -0.099128, -0.972413, 0.530614, 0.246016, 0.977072, -0.713646, -0.804129, 0.240293, 0.77038, + 0.667616, 0.405653, 0.168181, 0.498465, -0.397986, -0.997419, -0.832515, -0.639529, 0.223303, + 0.895328, 0.645353, -0.652708, 0.278853, 0.884588, 0.024587, -0.186315, -0.54172, -0.07267, + 0.752508, -0.282359, -0.151017, 0.485194, -0.383344, -0.461984, 0.168883, 0.724032, 0.106669, + -0.040274, -0.794381, 0.597133, 0.045635, -0.440194, -0.8798, -0.474453, -0.702772, 0.204776, + 0.732772, -0.197672, 0.608673, -0.21251, -0.475931, -0.915157, -0.670117, 0.750683, 0.673535, + 0.964859, -0.100895, 0.338033, -0.122732, 0.989781, -0.797385, -0.271531, -0.958822, 0.098754, + -0.778528, -0.701337, 0.231264, 0.994937, 0.833494, 0.687062, -0.247506, -0.030192, -0.898981, + 0.672219, 0.273221, 0.848807, -0.972169, -0.243871, -0.644033, -0.765286, -0.594516, 0.315928, + 0.664783, 0.451596, -0.342522, 0.441117, 0.984942, 0.048903, -0.359856, -0.789632, 0.706899, + -0.228534, -0.784559, 0.578289, 0.19936, -0.403616, -0.984317, 0.125445, -0.296163, -0.173407, + -0.333591, 0.822497, 0.530799, 0.792798, 0.377551, 0.285381, 0.986913, -0.00355, 0.574885, + 0.406627, -0.957048, 0.679357, -0.098064, -0.675241, 0.673909, -0.809921, 0.468878, -0.82258, + -0.286825, -0.938191, 0.715165, 0.247234, 0.815995, 0.305205, -0.495837, 0.150367, 0.676731, + -0.77313, -0.667104, -0.254359, -0.624743, -0.181666, 0.94697, 0.556051, -0.81075, -0.539594, + 0.802502, -0.076692, -0.421068, 0.195506, -0.158766, 0.336917, 0.018422, 0.568596, 0.550479, + 0.351081, 0.309752, -0.256801, -0.925521, -0.096274, -0.759492, -0.799927, -0.88055, -0.249893, + -0.739512, 0.169076, 0.431841, 0.594093, -0.96519, 0.8414, 0.297545, 0.811507, 0.484539, + 0.181789, -0.191938, 0.836611, -0.650862, 0.780022, 0.872221, 0.163313, -0.428849, -0.80782, + -0.054965, 0.849735, 0.046226, -0.251709, -0.497318, 0.074725, 0.55303, 0.194815, 0.172424, + -0.692002, 0.483945, 0.103939, -0.982869, 0.831774, 0.635952, 0.007839, -0.197523, 0.898181, + 0.992762, 0.162967, 0.928285, 0.422751, 0.477232, -0.059226, -0.073044, 0.639531, -0.438001, + -0.714298, 0.624378, -0.240011, 0.706022, -0.166156, -0.609201, -0.01692, -0.115291, 0.229533, + -0.7715, -0.846674, 0.051713, 0.90259, -0.632127, -0.503044, 0.09544, 0.748883, 0.766363, + -0.208804, -0.052425, -0.787319, 0.976682, 0.607545, 0.25568, -0.971437, 0.565276, -0.563444, + 0.041618, 0.479808, -0.039827, -0.487748, 0.675454, 0.677791, 0.097414, -0.624939, -0.518044, + -0.898296, -0.535216, -0.893237, -0.088241, -0.710187, 0.569504, -0.809179, -0.689421, -0.616194, + -0.262745, 0.391341, 0.719702, 0.991829, -0.238496, 0.234772, 0.070406, 0.551523, 0.469927, + 0.587965, 0.682099, 0.832469, 0.051088, 0.700043, -0.5619, -0.210009, -0.27938, -0.299416, + 0.057262, -0.940845, -0.566772, -0.093742, 0.201109, 0.708519, -0.686602, 0.243988, 0.461488, + -0.533574, 0.170058, -0.524138, -0.026661, -0.549503, -0.279847, -0.395594, 0.865221, 0.241352, + -0.97017, 0.126543, 0.54532, -0.435482, -0.598014, -0.196351, -0.883302, -0.372062, 0.122839, + -0.74607, -0.949814, -0.594514, -0.730493, 0.029365, 0.361422, 0.630078, 0.999242, 0.522682, + -0.45148, -0.132833, -0.513532, 0.601032, 0.333398, 0.460933, -0.671854, 0.779564, -0.880372, + 0.502041, -0.872304, 0.76572, -0.592844, -0.778226, 0.500333, 0.886618, -0.072729, 0.418516, + 0.914932, -0.812665, 0.406618, 0.230178, -0.568988, 0.593837, 0.89076, 0.768965, -0.718559, + 0.884239, 0.841148, 0.380261, -0.137136, 0.769479, -0.648088, -0.607565, 0.54995, 0.667031, + -0.100958, 0.919642, 0.526588, 0.489128, 0.810724, 0.984481, 0.699384, 0.814857, 0.094255, + 0.783737, 0.537379, -0.491778, 0.558876, 0.069704, -0.345189, 0.750181, 0.261588, 0.77924, + 0.215598, 0.298616, 0.600454, -0.249334, 0.621441, -0.516895, -0.141662, 0.091739, 0.691218, + 0.44071, 0.964839, -0.53697, -0.079088, -0.083375, 0.814969, 0.944052, 0.252389, -0.808142, + -0.725377, 0.183542, -0.880922, -0.348806, -0.749812, 0.51285, -0.137245, -0.782938, 0.653436, + -0.886596, -0.09776, 0.962831, 0.501286, -0.86639, 0.107898, -0.148864, 0.4453, 0.923937, + 0.85232, -0.095443, 0.460727, -0.982041, 0.787829, 0.531424, -0.70339, -0.289225, -0.388776, + -0.584677, 0.412051, -0.29158, 0.415907, -0.303849, 0.776791, -0.393399, -0.173233, -0.310904, + 0.04604, -0.368508, -0.702383, -0.950327, 0.62202, 0.138754, -0.64282, 0.518134, 0.104636, + -0.361102, -0.065525, 0.109962, 0.71647, -0.919168, -0.776151, -0.806261, -0.785191, 0.006312, + 0.555305, 0.261391, 0.423692, 0.120313, -0.019058, -0.905926, 0.892601, 0.966454, -0.0057, + 0.180663, 0.185143, 0.989628, -0.001908, -0.164505, -0.544465, 0.258573, 0.461011, -0.844054, + 0.342075, 0.249756, 0.443568, 0.468805, -0.261814, 0.133904, -0.700663, 0.601939, -0.841365, + -0.877305, -0.741599, -0.557948, 0.041731, 0.656239, -0.131754, 0.718086, -0.163395, 0.84792, + 0.690183, 0.631553, 0.408249, -0.673559, 0.979946, -0.951731, -0.701004, -0.604303, -0.263889, + 0.434326, 0.207075, -0.860636, 0.965507, 0.938549, 0.493178, -0.979582, 0.558647, 0.285322, + -0.123627, -0.837731, 0.847217, -0.298939, -0.808867, 0.771835, 0.390262, 0.294386, 0.646319, + 0.348368, -0.217646, -0.17389, 0.826746, -0.032778, -0.835287, -0.691031, -0.754691, 0.095584, + 0.731233, 0.598211, 0.2645, 0.333281, -0.473662, 0.935983, 0.381394, -0.630288, -0.666193, + -0.89588, -0.284503, 0.731426, 0.058711, -0.473941, 0.278362, -0.69413, 0.298084, 0.68277, + 0.486232, -0.30446, -0.340242, 0.416841, 0.598755, -0.245052, -0.002266, -0.112784, -0.117526, + -0.887411, -0.825089, 0.857341, -0.481556, 0.73939, 0.620421, -0.152107, -0.483708, 0.033202, + -0.173352, -0.5933, 0.972015, -0.078992, -0.153743, -0.677489, 0.162644, 0.138591, 0.986121, + -0.308792, 0.562403, 0.048504, 0.530878, 0.017528, -0.172418, 0.391979, -0.445424, 0.605997, + -0.837575, -0.716866, 0.952727, -0.376829, -0.795131, -0.731021, 0.969698, -0.139856, -0.841477, + -0.14415, -0.487474, -0.670787, -0.489347, 0.757425, 0.403373, 0.584288, 0.082535, -0.418075, + -0.408132, -0.671153, -0.722477, -0.862202, 0.177659, 0.524729, 0.816037, -0.025395, -0.145713, + -0.083122, 0.393999, -0.158394, -0.351378, -0.275537, -0.976855, -0.770122, -0.428043, 0.096887, + -0.628089, 0.382985, -0.546914, 0.967507, -0.883758, 0.557599, -0.519214, -0.354574, -0.933739, + -0.926793, -0.946378, -0.019207, 0.921073, 0.458515, 0.626149, 0.223907, -0.38637, -0.389454, + -0.297056, -0.934287, 0.549675, -0.297257, -0.565662, 0.248108, 2.6e-05, 0.543839, -0.654876, + 0.993423, -0.398062, 0.377841, 0.91036, -0.057366, -0.878719, -0.96751, 0.983676, -0.936267, + -0.370959, 0.682059, -0.777805, 0.934532, 0.097115, 0.310829, 0.156916, 0.109959, 0.561229, + -0.866472, 0.216169, -0.452581, 0.946418, 0.827955, -0.392821, 0.556083, -0.170286, 0.527671, + -0.282843, -0.585192, 0.421902, 0.495137, 0.900426, 0.316917, -0.446238, 0.255487, 0.06019, + 0.869951, 0.410266, 0.852927, 0.074278, -0.758084, -0.64029, 0.902935, 0.895606, 0.301232, + -0.713646, 0.730721, 0.414824, -0.789045, 0.290723, 0.963837, -0.660487, 0.075997, 0.2857, + -0.359925, 0.658226, 0.88929, 0.973447, -0.895044, 0.05567, 0.816267, 0.85185, -0.257596, + 0.662463, 0.746394, -0.063254, 0.685853, 0.57492, -0.148752, -0.417746, -0.53036, -0.805734, + -0.597695, 0.261069, 0.356835, -0.286728, -0.0827, 0.692134, 0.14812, -0.693859, 0.847268, + 0.603401, 0.115195, 0.476591, -0.845293, 0.58649, 0.243332, -0.08845, -0.320808, 0.807627, + 0.215449, -0.558617, 0.449668, 0.176871, -0.350609, 0.706127, 0.995674, -0.044155, -0.41248, + -0.53668, -0.521918, 0.513087, 0.627212, -0.60603, 0.553892, 0.039845, -0.034846, -0.318043, + -0.92115, -0.857723, 0.733295, -0.163805, -0.043653, -0.603059, -0.182603, -0.390104, 0.090001, + -0.954543, 0.09698, -0.885137, -0.710791, -0.021349, -0.106515, -0.281095, 0.581536, 0.072211, + 0.207259, 0.409167, 0.056464, -0.885752, -0.371891, 0.627903, 0.573622, 0.345932, 0.882675, + -0.519922, -0.297994, -0.148991, -0.245765, 0.862538, -0.999229, 0.189474, 0.981552, -0.555882, + 0.794772, -0.861581, 0.16913, -0.569277, 0.31639, 0.218757, 0.219855, -0.226848, -0.30975, + -0.968405, 0.165889, 0.954597, -0.752491, -0.384696, 0.262413, 0.511495, 0.363192, 0.647933, + 0.126426, -0.24603, -0.833572, -0.999522, -0.765787, 0.502358, 0.898694, 0.951883, 0.748921, + 0.051611, 0.688596, 0.380181, -0.6771, -0.187674, -0.928099, 0.858437, 0.217358, 0.918291, + -0.121094, 0.794068, 0.468069, -0.122056, -0.033072, 0.712704, -0.131514, 0.777566, 0.219378, + -0.39175, -0.463519, -0.48641, 0.641617, 0.755911, -0.470125, -0.912782, 0.566779, -0.227394, + -0.918188, 0.209948, -0.099502, 0.720464, 0.212292, -0.616544, -0.180845, -0.718091, 0.467584, + 0.292527, 0.590311, -0.740107, -0.556638, -0.608548, -0.829212, -0.932745, -0.806575, 0.696607, + -0.30169, -0.184487, 0.301418, 0.263206, 0.449593, -0.706078, 0.888565, -0.079889, -0.47487, + 0.645458, -0.831442, -0.59612, 0.563573, 0.387648, -0.396032, -0.079916, -0.182629, 0.406634, + 0.200627, 0.366464, 0.825997, -0.687764, -0.769238, -0.23724, -0.455372, -0.711162, 0.92806, + 0.835406, 0.807442, -0.615906, -0.118249, -0.778072, -0.360562, 0.833323, 0.125371, 0.346909, + -0.994067, 0.411987, 0.674263, -0.384001, 0.759909, 0.450405, -0.730163, -0.749622, 0.014039, + -0.96453, -0.698842, 0.39114, -0.329022, -0.035434, -0.408582, 0.647232, 0.821159, 0.721582, + -0.889271, -0.295646, 0.484328, 0.591453, -0.224123, 0.547567, -0.029566, 0.111076, 0.673791, + 0.684089, -0.705969, -0.607112, 0.354252, 0.601015, -0.232842, 0.886798, -0.115201, -0.507116, + -0.102074, -0.851138, 0.309837, -0.919374, 0.927909, -0.758774, 0.650955, -0.750087, -0.145738, + -0.553809, 0.510988, 0.579988, -0.935109, -0.858495, 0.131645, -0.021512, 0.005798, 0.304008, + -0.197636, 0.843868, 0.07113, -0.460685, 0.346988, -0.775867, -0.478251, 0.291555, -0.419542, + -0.954692, 0.500493, 0.257375, 0.291057, 0.347585, -0.986773, -0.435655, -0.485767, 0.956865, + -0.4213, -0.656955, -0.350976, 0.096085, 0.402996, 0.736434, 0.721923, 0.102699, 0.911006, + 0.531693, 0.533547, -0.857504, 0.081697, -0.212389, -0.950342, -0.493853, 0.760875, 0.366719, + 0.924186, 0.681848, -0.00765, 0.89876, 0.210924, -0.14689, -0.427624, 0.644549, 0.448312, + 0.694318, -0.173719, -0.925505, 0.18134, 0.109434, -0.650915, 0.242444, -0.121027, 0.853159, + 0.04706, -0.493888, 0.801149, 0.029715, -0.16795, 0.477627, 0.964615, 0.455973, 0.028198, + 0.819018, -0.438554, 0.883773, -0.569758, 0.018323, 0.910108, 0.398225, -0.20957, 0.616098, + 0.589862, -0.901396, -0.111455, -0.786991, -0.215547, -0.120542, -0.400044, -0.365488, 0.540835, + -0.029698, -0.994977, 0.171893, -0.983439, -0.686024, 0.611258, 0.764444, -0.354801, -0.607217, + 0.45253, -0.955269, 0.61694, 0.688817, 0.421969, 0.305208, 0.206785, -0.766613, -0.400565, + 0.645041, 0.842246, 0.02671, 0.256912, -0.948504, 0.705938, -0.582452, -0.536054, 0.986737, + -0.286658, -0.505212, 0.137555, 0.788069, 0.908644, 0.08371, 0.680791, 0.713171, -0.167133, + -0.790175, 0.026904, -0.339699, 0.35044, -0.732689, -0.670761, -0.753107, -0.748105, 0.760652, + -0.996446, -0.03681, -0.61717, -0.420602, -0.288184, 0.469135, 0.672421, -0.224995, 0.032609, + -0.011, 0.910662, 0.446939, -0.207633, 0.677152, -0.807455, 0.396337, 0.775714, -0.519032, + 0.374185, 0.45852, -0.83897, 0.287662, 0.75624, 0.091833, -0.193273, -0.391899, -0.663704, + 0.24285, -0.945305, -0.855988, -0.361829, -0.946967, 0.933777, -0.322218, -0.531664, 0.251377, + 0.430365, 0.753068, -0.403722, -0.174739, -0.755138, -0.873198, -0.43511, 0.112513, -0.495743, + -0.27605, 0.366544, 0.206332, 0.617022, 0.46178, 0.527319, -0.516971, 0.536366, -0.896294, + 0.30795, -0.630683, 0.276133, -0.914908, -0.165625, 0.615084, -0.500082, 0.619049, -0.155481, + 0.938156, 0.942154, -0.590017, -0.23422, -0.204385, -0.378107, 0.32872, -0.910501, -0.5997, + -0.156764, -0.889732, -0.957825, 0.410107, -0.834952, 0.6644, -0.580648, -0.079754, 0.602971, + -0.986145, -0.973605, 0.041642, -0.406012, 0.46743, 0.349041, 0.12308, 0.375368, 0.855531, + 0.158713, 0.661636, -0.563814, 0.82394, -0.177812, 0.541388, -0.831058, -0.600944, -0.585392, + 0.528265, -0.033323, -0.917755, 0.980723, 0.260638, 0.919745, 0.12483, 0.143353, 0.7208, + -0.680343, 0.944389, -0.64318, 0.090638, -0.650374, -0.662575, 0.769699, -0.264115, -0.187675, + 0.781314, 0.979697, -0.901943, -0.017455, 0.285555, 0.960129, -0.398671, -0.325446, -0.586119, + 0.255511, 0.24663, -0.015769, -0.101423, -0.696183, -0.410735, -0.380321, 0.262673, 0.441602, + 0.466853, -0.763321, -0.077083, -0.190843, 0.997499, 0.721617, -0.746458, -0.549468, -0.755416, + -0.25027, -0.874957, 0.469985, -0.441012, -0.501888, 0.047261, -0.319518, 0.755447, 0.906481, + -0.892866, 0.448357, 0.020866, 0.524868, -0.374895, -0.075714, -0.018706, 0.342877, 0.498597, + 0.390004, 0.122728, -0.797748, -0.57445, -0.569692, -0.996557, 0.9579, -0.452743, -0.664694, + -0.452857, 0.542971, -0.626877, -0.83557, -0.747427, 0.219766, -0.040913, -0.902252, -0.684035, + -0.866623, 0.343054, 0.452546, 0.170341, -0.320382, -0.535782, 0.395341, -0.229636, -0.160522, + -0.327819, 0.173797, 0.234575, 0.821609, 0.888098, -0.257724, 0.148622, -0.668401, -0.750707, + 0.829237, 0.117799, -0.497219, 0.502742, 0.403424, 0.357965, 0.423126, 0.053407, -0.72745, + -0.888986, 0.976286, 0.698115, -0.780172, 0.783648, -0.935275, 0.665197, 0.696346, 0.628255, + 0.42322, -0.605687, -0.428853, 0.214371, 0.394395, 0.876602, 0.044482, 0.411793, -0.755214, + -0.202974, 0.594688, 0.081731, 0.790537, -0.802424, -0.667258, 0.314376, -0.041817, -0.854447, + 0.426682, 0.041216, 0.241827, 0.219755, -0.68954, -0.670789, -0.800104, 0.72635, -0.548936, + 0.900231, -0.319349, 0.221343, 0.955086, -0.536642, -0.94848, 0.14421, -0.721431, 0.551021, + 0.397556, 0.72454, -0.10388, -0.653329, -0.921544, -0.645898, 0.890715, -0.214069, -0.018317, + -0.212183, -0.510585, 0.818637, -0.259086, -0.485339, 0.923949, 0.598532, 0.532949, 0.716617, + -0.635043, 0.325656, -0.278317, 0.035745, 0.471041, -0.331943, 0.981208, 0.004904, 0.576199, + 0.092025, -0.963826, -0.598088, -0.833279, 0.1175, -0.670844, -0.795261, 0.21439, -0.875341, + -0.544159, -0.64691, 0.488119, 0.916859, 0.349881, -0.559666, 0.756907, 0.928196, -0.270944, + 0.737898, 0.252807, -0.695588, -0.261183, -0.797533, 0.301727, 0.552989, -0.983573, -0.408707, + 0.021671, 0.800741, -0.544885, -0.05873, -0.02828, -0.502878, -0.448221, -0.267562, -0.298805, + -0.321877, 0.095607, -0.083599, -0.486675, 0.605581, 0.715394, -0.156764, -0.188771, -0.974632, + -0.731074, -0.045545, -0.190649, 0.292569, -0.497456, -0.207121, 0.149528, 0.981601, 0.786773, + -0.6578, -0.083288, -0.163719, -0.031966, 0.416598, -0.402279, -0.213159, -0.990602, -0.355239, + -0.980772, 0.354011, -0.769762, -0.49414, -0.725171, 0.760425, -0.293558, 0.86902, -0.496908, + 0.757053, -0.196625, -0.75121, 0.836255, -0.680314, -0.588052, 0.548003, -0.093354, -0.015189, + 0.991562, -0.793586, -0.361193, 0.406818, -0.192556, 0.016916, -0.338077, -0.154912, 0.798211, + -0.185882, 0.402176, 0.754513, 0.774155, 0.474155, 0.687373, -0.259389, 0.079736, -0.428953, + -0.969831, 0.84142, -0.956025, -0.630227, -0.356406, -0.91473, -0.77603, -0.523075, 0.118333, + -0.874328, -0.718817, -0.584556, -0.751978, 0.23472, 0.033834, 0.219443, 0.902143, -0.437845, + -0.374922, 0.319013, 0.877044, 0.319168, -0.085723, 0.324834, -0.984997, -0.684033, -0.42049, + -0.905243, -0.755232, -0.769076, 0.287075, 0.302958, -0.024085, -0.231133, 0.026963, 0.604249, + -0.752978, 0.710452, 0.434928, -0.349071, 0.701617, -0.000828, -0.458272, 0.901182, 0.29556, + 0.754667, -0.271364, -0.856908, 0.801938, 0.057851, 0.474908, -0.259198, 0.472976, -0.790144, + 0.035274, 0.7593, -0.268524, 0.858895, 0.367749, 0.49296, 0.988117, -0.24331, -0.232806, + 0.628833, -0.506068, -0.737319, 0.652049, -0.872516, -0.473602, 0.242308, 0.147259, -0.606236, + -0.25299, 0.641908, -0.647972, 0.573599, -0.107088, -0.35795, -0.952603, -0.262292, 0.822277, + -0.547828, -0.793644, -0.07802, 0.708889, -0.271262, 0.980298, 0.963208, 0.916181, -0.571978, + -0.711846, -0.937186, -0.194449, -0.65124, 0.46587, 0.090187, 0.793112, -0.92767, -0.840324, + -0.18609, 0.263562, 0.841943, -0.083606, 0.854584, -0.270715, -0.141166, -0.385051, -0.425004, + -0.378828, -0.864421, -0.122755, -0.337188, -0.647435, -0.74175, -0.964334, -0.224085, -0.814147, + 0.899095, -0.268434, 0.268799, -0.716938, 0.102038, -0.93984, 0.450192, 0.472264, -0.971768, + 0.436061, 0.127313, -0.624561, -0.457836, 0.982922, -0.520149, 0.87494, 0.20124, 0.458167, + -0.50334, 0.325063, 0.215321, 0.797546, -0.988884, -0.363572, 0.024901, -0.717747, 0.170423, + 0.644769, 0.602631, -0.515645, 0.404225, -0.727631, 0.621633, -0.817331, -0.906592, 0.347049, + -0.094401, 0.2465, 0.93049, 0.95796, 0.563851, -0.907123, -0.153964, 0.109314, -0.973735, + 0.836285, 0.656215, -0.461943, -0.208696, -0.580048, 0.384624, 0.172465, -0.346691, 0.534628, + -0.216166, 0.10739, 0.692372, -0.469838, -0.922297, 0.539726, -0.65353, 0.378039, -0.300641, + 0.67128, -0.038034, -0.455315, -0.705451, 0.671975, -0.625709, 0.283473, 0.764755, -0.803278, + -0.839299, 0.102017, -0.392549, -0.734085, 0.661251, -0.930269, -0.455944, -0.830645, 0.264302, + 0.086248, 0.41712, 0.418676, -0.003956, -0.300302, 0.884242, 0.041586, 0.238082, -0.82343, + -0.980093, -0.488442, -0.524004, 0.289728, -0.444472, 0.104434, 0.92669, -0.294989, 0.255485, + 0.012264, 0.658079, 0.437366, -0.046459, 0.546959, -0.050878, -0.17, -0.389791, -0.815782, + 0.835326, -0.633699, -0.953309, -0.448533, 0.202002, -0.09075, 0.455237, 0.572932, 0.588111, + -0.839027, 0.407696, 0.495, -0.55476, 0.004844, 0.149882, 0.125395, 0.536612, 0.849009, + 0.960474, 0.223895, 0.584796, 0.427553, -0.540996, 0.66881, -0.071051, 0.408098, -0.663698, + 0.800053, 0.223184, 0.22661, -0.889599, -0.086909, -0.349684, 0.944116, -0.91552, -0.246776, + -0.49599, -0.72492, 0.384619, -0.690428, 0.4727, 0.120031, -0.529418, -0.113801, 0.086721, + -0.445665, -0.642509, -0.563538, 0.241276, -0.881142, 0.629677, 0.656745, 0.919526, 0.846065, + -0.562007, -0.433925, 0.731927, -0.129367, -0.736274, -0.47902, 0.701951, -0.568663, 0.351727, + -0.834965, 0.660331, 0.27504, 0.68978, 0.034106, 0.507615, 0.819481, -0.126149, -0.755754, + -0.7056, 0.586313, -0.637685, -0.875363, -0.846715, -0.442865, 0.185517, -0.906111, -0.463371, + 0.957404, -0.170083, -0.337456, 0.472957, -0.8229, -0.780831, 0.14298, 0.316121, -0.985453, + 0.878608, -0.389387, 0.152768, 0.710852, 0.382771, 0.310503, -0.912375, -0.932984, 0.371899, + 0.037162, 0.61404, 0.500432, -0.802256, 0.184056, -0.784501, -0.552783, 0.274812, -0.055897, + -0.638641, 0.339087, 0.693954, -0.98278, 0.93798, 0.552028, -0.084287, -0.969716, -0.423325, + 0.305185, -0.426049, -0.328707, -0.412969, 0.859785, 0.8463, -0.779971, -0.308511, 0.905765, + -0.057599, -0.486877, 0.120925, 0.791232, -0.127256, -0.943613, -0.334266, 0.497687, -0.147755, + 0.706545, 0.343918, 0.00877, 0.381981, -0.134982, -0.857254, -0.857005, -0.786588, -0.159275, + -0.723056, 0.14655, 0.114662, 0.760882, 0.056228, 0.170438, 0.355588, -0.282717, -0.498285, + -0.940679, -0.973947, 0.065755, -0.472888, 0.276837, 0.24853, 0.779929, -0.122079, -0.004229, + 0.690181, 0.169579, 0.457686, -0.539995, -0.722785, 0.762388, 0.71284, -0.378638, 0.166117, + -0.889344, 0.069985, -0.928434, 0.565211, -0.991151, -0.241225, 0.932997, -0.338784, -0.579646, + 0.902104, -0.505822, 0.220553, 0.558877, 0.268679, -0.690884, 0.907583, 0.479523, -0.628838, + -0.570732, -0.23064, 0.33362, 0.378115, 0.128762, 0.655812, 0.994806, 0.205733, 0.391692, + 0.568694, 0.198235, 0.061655, 0.899113, 0.690373, 0.653127, -0.389109, -0.478103, -0.54224, + -0.837415, -0.1016, 0.563434, 0.146509, -0.353737, -0.138341, -0.766324, -0.642341, 0.092064, + -0.581018, 0.123248, 0.824709, 0.256081, 0.76552, -0.633555, 0.026008, -0.982336, 0.006929, + -0.736669, 0.93854, -0.854885, 0.341838, -0.598181, 0.276806, -0.005216, -0.127905, -0.388107, + 0.642984, -0.180508, 0.085235, -0.30136, -0.728728, -0.41676, 0.896594, 0.951866, -0.4646, + 0.099659, 0.162318, 0.882175, 0.139551, 0.046552, -0.290885, 0.210894, -0.995689, -0.997716, + -0.115915, -0.693591, -0.694504, -0.169738, 0.554815, 0.494918, -0.347436, -0.070667, 0.928337, + 0.216321, 0.680038, -0.414205, -0.89488, -0.46364, 0.087881, -0.242199, -0.546017, 0.961635, + -0.923033, 0.02539, 0.398518, -0.269785, 0.433712, 0.00355, -0.594432, -0.543754, -0.449853, + -0.976383, 0.62326, 0.916645, -0.513694, 0.049427, 0.334154, 0.283141, -0.555049, -0.607674, + 0.973449, 0.582322, 0.934814, 0.701989, -0.074404, 0.704003, -0.032074, -0.006204, -0.433285, + 0.779856, -0.2126, 0.145189, -0.797398, 0.343036, -0.475464, -0.22581, -0.089422, 0.37072, + 0.04082, 0.174243, -0.649512, -0.755592, 0.360135, -0.41178, -0.862165, -0.412701, -0.981046, + 0.199804, 0.074267, 0.923446, -0.551433, -0.517175, 0.238778, -0.262762, 0.779307, 0.152125, + -0.021729, -0.383651, 0.604209, -0.468098, 0.402116, 0.642408, -0.784408, -0.886035, -0.563944, + 0.479833, -0.551593, 0.094528, 0.150987, 0.209943, -0.509931, 0.034966, 0.692941, 0.518366, + 0.191036, -0.795275, 0.470473, -0.398191, 0.699852, 0.415322, -0.183556, 0.386571, -0.415837, + 0.172606, -0.049897, 0.015868, 0.352111, 0.973874, -0.441392, 0.976521, -0.183509, 0.951109, + 0.225033, 0.081548, -0.334435, -0.526956, -0.983414, -0.545849, -0.089533, 0.84128, 0.541147, + 0.174355, -0.967813, 0.70451, 0.688475, -0.449535, 0.405022, -0.833191, -0.50559, -0.301778, + -0.90673, -0.06109, 0.204781, 0.291076, 0.93583, 0.577526, -0.914957, -0.313887, 0.560242, + -0.959807, -0.061845, 0.378395, -0.670532, 0.857804, -0.659274, -0.733571, -0.759092, -0.175165, + 0.333939, 0.28805, -0.494102, 0.87463, -0.535895, 0.784654, 0.335902, -0.322669, 0.739588, + 0.331576, -0.850278, 0.508237, 0.94574, -0.748029, -0.210824, -0.806949, 0.670441, 0.530556, + 0.729369, 0.280865, -0.164897, -0.097574, -0.74508, 0.634617, -0.401188, 0.109748, 0.034009, + 0.302302, -0.80331, -0.158392, 0.461342, -0.739161, -0.429587, -0.550642, -0.846112, 0.976349, + 0.863985, 0.626637, -0.828891, -0.009127, 0.183636, 0.443583, 0.201413, -0.612945, 0.031707, + -0.808646, 0.501486, 0.629891, -0.357813, -0.875325, 0.009298, 0.51123, -0.682317, 0.422183, + 0.696455, -0.828967, 0.553031, 0.452248, -0.514621, 0.839286, -0.480904, 0.760057, -0.766515, + 0.788765, -0.224844, -0.88335, 0.532658, -0.081908, 0.282445, 0.46067, 0.106772, 0.319395, + -0.842864, -0.882628, -0.46959, -0.522834, -0.942585, 0.156135, -0.079341, -0.220231, -0.046469, + 0.480545, -0.371073, 0.063175, -0.089325, 0.482894, -0.106384, 0.359218, -0.391539, 0.774643, + 0.168313, 0.168227, 0.484153, -0.99684, 0.441877, 0.803358, 0.598896, 0.649361, -0.80326, + 0.865543, 0.223581, -0.974703, 0.904885, 0.779783}; + const std::vector v_data{ + -0.159538, 0.980599, 0.062963, 0.802055, -0.883984, -0.93231, 0.278617, -0.007481, -0.848886, + -0.560736, 0.560534, 0.637498, -0.75846, -0.447078, 0.005816, -0.001276, -0.736525, 0.739541, + -0.698258, 0.711413, -0.61852, -0.993563, 0.249154, -0.478374, 0.674149, -0.331543, 0.095484, + 0.744364, -0.649465, -0.411703, 0.680877, 0.84355, 0.174297, 0.768746, 0.604939, 0.565435, + -0.039423, 0.965488, -0.317899, 0.068068, -0.301852, -0.074935, 0.600949, 0.75815, 0.149068, + 0.657393, 0.700972, 0.486058, -0.272526, 0.583464, 0.839412, 0.827248, 0.259111, 0.737985, + -0.690837, 0.189407, -0.87858, 0.513341, 0.045908, -0.192373, 0.637478, -0.153074, 0.408301, + 0.538006, -0.496074, -0.86626, 0.089313, -0.611511, -0.567097, 0.470933, 0.23763, -0.222235, + -0.363549, -0.739524, -0.427324, 0.064098, -0.584207, -0.907871, -0.968836, -0.943037, -0.459989, + 0.269432, -0.457295, 0.660625, 0.547279, -0.782412, 0.246204, -0.430676, 0.829361, 0.757752, + 0.458669, -0.500788, 0.144598, -0.630471, 0.149724, 0.988579, -0.192815, -0.575078, -0.487461, + -0.62066, 0.506578, -0.589817, 0.699969, 0.583807, 0.601604, -0.047956, -0.208755, 0.362251, + -0.149373, 0.401877, 0.22322, 0.347777, -0.427469, 0.62, -0.191803, 0.568222, -0.061645, + -0.982789, -0.085198, -0.318844, -0.495805, -0.039122, -0.382069, 0.078351, -0.295236, -0.620459, + 0.367114, -0.818974, -0.774168, -0.157283, -0.087071, -0.935413, 0.508184, 0.082527, 0.421703, + -0.009868, -0.218268, -0.351916, -0.089315, -0.785874, 0.439171, 0.284233, 0.715161, -0.93417, + -0.104168, -0.392163, 0.031079, 0.152695, -0.148892, -0.081172, -0.165103, 0.243235, -0.546638, + -0.115883, 0.494269, 0.673325, 0.111841, -0.109848, 0.167539, 0.460388, 0.183952, -0.581916, + -0.788017, 0.46518, -0.429901, 0.3745, -0.859231, 0.546902, 0.420433, -0.197338, -0.763915, + -0.112902, 0.566293, 0.755696, -0.03705, -0.082754, 0.820318, 0.174253, 0.954934, 0.904661, + -0.649332, -0.705032, -0.331916, -0.152908, 0.905393, -0.752171, 0.446006, 0.767329, 0.062864, + -0.83846, -0.754978, 0.148712, 0.289335, 0.232303, 0.622262, 0.642487, -0.871369, 0.471224, + 0.621108, -0.505049, -0.623871, -0.897993, -0.986644, 0.522492, 0.284293, -0.543207, -0.89394, + -0.929625, 0.907332, 0.329126, 0.163489, -0.082675, 0.408221, 0.108376, 0.431693, 0.255145, + -0.515178, -0.467397, 0.263389, 0.253395, 0.706054, -0.739704, 0.485738, -0.917333, 0.085679, + -0.811957, -0.491851, -0.571583, 0.892165, 0.890038, -0.443504, -0.041934, -0.838071, -0.819312, + -0.506304, 0.097289, -0.900154, -0.20815, 0.137871, 0.01126, -0.031644, 0.179963, 0.989143, + -0.85409, -0.721432, 0.522642, 0.306304, 0.849681, 0.795896, -0.742705, -0.227141, -0.900441, + 0.403033, 0.596849, -0.79324, -0.544374, 0.534128, 0.243626, -0.625112, -0.004961, -0.664689, + 0.387761, 0.185221, 0.271584, -0.047193, 0.054372, -0.741733, 0.933483, -0.040915, 0.027905, + 0.090381, -0.940622, 0.258381, 0.860859, 0.581789, 0.139205, 0.29031, 0.177672, 0.002572, + 0.437896, 0.329406, 0.324779, -0.603002, -0.121832, 0.623485, 0.65839, -0.562998, 0.326391, + -0.667247, 0.260616, 0.347072, -0.602195, 0.742274, 0.714015, 0.718186, 0.274236, 0.411576, + -0.018428, -0.529705, 0.304547, -0.431607, 0.257941, -0.513209, -0.423485, -0.787778, -0.269645, + 0.603255, 0.310901, -0.080917, 0.634715, 0.713723, -0.428294, -0.740121, 0.770099, -0.907022, + -0.771836, -0.820305, -0.644775, -0.676682, 0.030311, -0.438072, 0.769598, -0.891411, -0.754784, + -0.922059, -0.881216, 0.242625, -0.692261, -0.218482, -0.510175, -0.269435, -0.418653, 0.636609, + -0.442807, -0.498858, 0.568507, 0.909004, 0.813957, -0.149023, 0.178558, -0.518814, -0.097887, + 0.112868, -0.584383, -0.146061, 0.47804, 0.249815, 0.930634, -0.343256, -0.419091, -0.944175, + 0.477198, -0.48377, -0.932015, 0.117856, -0.38357, -0.604504, 0.590189, -0.602242, 0.499331, + 0.850891, 0.625665, -0.403866, 0.756045, -0.682797, 0.808773, -0.166021, -0.44971, 0.066652, + 0.904731, -0.284918, 0.730253, 0.234122, -0.720801, -0.738661, 0.851717, 0.915862, 0.598141, + 0.966523, -0.660805, -0.528342, -0.375768, -0.555162, -0.24395, 0.361486, 0.143288, 0.601498, + -0.304884, 0.853807, 0.189584, 0.631464, 0.77264, -0.053577, 0.942418, 0.528684, -0.612039, + 0.072169, -0.486457, 0.189246, -0.603877, -0.371551, -0.411658, -0.968993, 0.918219, -0.342343, + -0.306377, -0.020771, 0.017599, -0.839895, 0.278198, -0.623416, -0.794205, -0.600288, -0.779797, + 0.783402, 0.382357, 0.87628, -0.804735, -0.793865, 0.396702, -0.468136, -0.306479, -0.587524, + -0.841408, -0.589105, -0.628841, 0.512342, -0.026394, 0.624915, 0.869389, 0.660399, -0.813913, + 0.586146, 0.569528, -0.452905, -0.210623, 0.336128, -0.102134, -0.611618, -0.17721, -0.275937, + 0.611781, 0.435621, 0.625135, -0.042314, -0.910358, 0.97634, 0.030926, 0.426472, -0.567131, + -0.049526, 0.266928, -0.406717, -0.553778, 0.281057, 0.802912, 0.780232, 0.340441, 0.085147, + 0.449471, -0.312376, 0.771191, 0.527634, -0.997096, 0.911816, 0.047064, -0.756099, -0.382657, + 0.971289, -0.834889, 0.250193, -0.336332, -0.821371, 0.386375, 0.582599, 0.983061, -0.815787, + 0.489071, 0.711664, -0.024591, 0.771496, 0.912903, -0.809847, 0.502462, 0.23831, 0.113145, + 0.73719, 0.053692, -0.372425, 0.853995, 0.579449, 0.485099, -0.269228, -0.834116, -0.13941, + -0.187317, -0.201082, -0.510341, 0.718043, -0.166367, -0.979587, -0.641165, -0.989302, 0.553391, + -0.11473, -0.509701, -0.766921, 0.487337, -0.86429, -0.909545, -0.090107, 0.597092, -0.789633, + -0.647401, 0.3224, -0.971432, 0.664437, 0.534566, 0.488016, 0.851204, 0.868749, -0.461871, + 0.564897, 0.546072, 0.452747, -0.272953, -0.550281, -0.649214, 0.214601, -0.027398, 0.05062, + 0.895633, -0.812516, 0.231337, 0.179987, -0.044324, 0.662004, 0.649216, -0.673265, 0.177816, + -0.601788, -0.552939, -0.835469, 0.372834, -0.102285, -0.635164, -0.198556, -0.07374, 0.377828, + 0.85098, -0.663977, -0.062491, 0.967928, 0.659409, 0.460936, -0.300951, 0.174324, 0.067975, + 0.014686, 0.6526, -0.340647, -0.246478, 0.696985, 0.253776, -0.949433, -0.196104, 0.674628, + 0.60597, 0.667354, -0.586022, -0.747196, 0.319391, 0.767418, 0.817488, 0.38421, 0.590313, + -0.690297, 0.240363, -0.103054, -0.011169, 0.472265, -0.749134, 0.096464, -0.350357, 0.501876, + -0.892875, -0.551647, -0.714289, 0.748857, 0.622342, 0.829227, 0.987217, 0.304641, 0.12751, + 0.279361, 0.160414, 0.119409, -0.754757, 0.769364, -0.67719, 0.697593, 0.45877, 0.25925, + 0.374619, 0.21947, -0.490677, -0.531731, -0.50824, -0.602, 0.455635, 0.074405, -0.010294, + 0.267717, 0.923672, -0.077479, -0.480144, -0.725305, 0.826228, -0.88362, 0.487991, 0.875175, + 0.534148, -0.007716, -0.129862, 0.633613, -0.531735, 0.353513, -0.309077, 0.526871, -0.221394, + -0.667364, -0.381857, 0.588087, 0.364937, -0.706048, -0.650256, -0.205226, -0.095542, -0.281159, + 0.672339, 0.069417, -0.267166, -0.057378, 0.457905, -0.701297, -0.982632, -0.803336, 0.439667, + 0.108575, -0.894426, 0.817328, 0.535622, -0.933058, 0.614441, -0.038815, 0.084022, 0.82106, + 0.773364, 0.218451, -0.477882, 0.75205, 0.831321, -0.147622, -0.7969, 0.936864, -0.432288, + -0.597414, -0.944156, 0.403862, 0.384095, -0.430438, -0.969074, 0.700069, 0.060869, 0.887766, + -0.093494, 0.902417, -0.253793, -0.464167, 0.584539, 0.249545, 0.89791, 0.075156, -0.765385, + -0.708544, -0.224551, -0.149872, -0.548539, 0.848251, -0.545834, 0.09488, 0.571484, 0.205665, + 0.05113, 0.38981, -0.518663, -0.990324, 0.294858, -0.739713, -0.858244, -0.731842, 0.809427, + -0.671057, 0.778793, 0.66459, 0.173121, -0.587072, -0.906628, -0.77386, 0.645504, -0.659909, + -0.130124, 0.162193, -0.121206, 0.223862, -0.790048, 0.821126, -0.721386, -0.584453, -0.833047, + 0.650899, -0.495144, -0.340826, 0.52493, -0.103765, 0.825146, 0.305708, -0.084898, -0.671293, + -0.953658, 0.276797, 0.076641, 0.910707, -0.919303, 0.200882, 0.372327, 0.551601, 0.485579, + -0.07093, -0.952188, -0.198575, 0.987809, -0.750181, -0.667608, 0.909944, -0.065014, -0.334637, + 0.113965, 0.419772, 0.088604, 0.804899, -0.014158, -0.420687, -0.467271, -0.077053, -0.19534, + 0.676165, 0.466272, 0.770329, 0.783558, 0.853961, -0.949991, -0.22657, -0.095613, 0.716115, + -0.008316, 0.379072, -0.092941, -0.981135, 0.07984, -0.021404, -0.617175, 0.974025, -0.802168, + -0.847424, -0.718089, -0.908073, -0.201542, -0.534324, 0.82004, 0.535369, 0.475151, 0.859119, + -0.825784, -0.600822, 0.843011, 0.728289, 0.15811, 0.559174, 0.256045, -0.075694, -0.334761, + 0.35072, -0.812025, 0.985507, -0.882135, -0.757123, 0.732534, -0.579536, -0.488635, -0.237192, + -0.872975, -0.04753, -0.14298, -0.200412, -0.004714, -0.671693, -0.173379, -0.119111, -0.989074, + -0.742178, 0.769904, -0.957901, -0.198377, -0.588286, 0.993191, 0.735968, 0.492332, -0.511104, + -0.882229, -0.15665, 0.611588, 0.117065, -0.546878, -0.897142, 0.844657, 0.200539, 0.682952, + -0.873118, 0.13192, 0.933897, -0.971998, -0.94503, -0.919531, -0.491626, -0.101523, 0.489912, + -0.346991, 0.79152, 0.817971, 0.672685, -0.808579, 0.39143, 0.568047, 0.732537, -0.903793, + -0.209096, -0.507374, -0.376274, 0.291263, -0.055822, 0.434266, -0.743124, -0.311122, 0.42836, + -0.368984, 0.123189, -0.668005, 0.86315, -0.002072, 0.367565, 0.053881, 0.097699, 0.948747, + -0.420717, 0.874488, -0.414408, -0.031247, -0.63319, 0.255674, -0.982301, 0.278642, -0.502831, + 0.880413, 0.974431, 0.633054, -0.938441, 0.449915, -0.750754, 0.062002, -0.607765, 0.63155, + -0.115959, 0.322356, 0.315521, 0.654742, 0.631007, -0.035545, -0.71165, 0.36713, -0.374773, + -0.135837, 0.063449, 0.893741, 0.749169, -0.14203, -0.477377, 0.915497, 0.540866, -0.86532, + -0.031395, -0.738107, -0.255943, -0.860414, -0.834126, -0.69972, -0.212722, 0.356785, -0.897512, + -0.379255, 0.198821, 0.269142, -0.017408, -0.776822, -0.057696, 0.322799, -0.89109, -0.641237, + 0.180054, 0.002019, 0.74516, 0.302921, 0.53655, -0.757689, -0.226242, -0.139115, -0.242595, + -0.167664, 0.484587, -0.607803, -0.326163, -0.380344, 0.151086, 0.156853, -0.133393, 0.517858, + -0.778966, 0.722926, 0.267963, 0.700448, -0.955031, 0.728648, 0.557161, 0.641243, 0.528393, + -0.469075, -0.246462, 0.027947, 0.241542, -0.956555, -0.194256, -0.946483, -0.683155, -0.375101, + -0.311809, 0.224379, 0.70779, -0.327157, -0.170895, 0.34662, 0.247721, 0.982589, 0.17543, + 0.098142, -0.768481, 0.358951, 0.320645, 0.350464, -0.035053, -0.128406, 0.200625, -0.062615, + -0.200027, -0.902017, 0.511831, -0.566366, 0.296245, 0.417605, 0.471588, -0.109459, -0.026851, + 0.673907, -0.569094, -0.701962, 0.64885, 0.958205, 0.756214, 0.618289, -0.531196, 0.602742, + -0.516603, 0.447914, 0.907558, -0.298889, -0.738184, -0.710357, -0.333983, 0.074084, 0.915513, + 0.182562, -0.511609, -0.099023, -0.282915, 0.247227, 0.403116, -0.582569, 0.324006, 0.484615, + -0.061551, -0.689471, 0.637842, -0.952554, 0.491049, 0.157828, -0.2751, -0.380875, 0.221045, + -0.576849, -0.042797, 0.745614, -0.062078, -0.666614, 0.779509, 0.622944, 0.824975, -0.308324, + -0.979257, -0.335912, 0.678771, 0.287844, 0.81024, 0.465681, -0.992148, -0.989417, -0.118182, + -0.678714, -0.649348, 0.104198, -0.190318, 0.782989, -0.550907, 0.458953, -0.499913, -0.513079, + 0.880224, 0.12148, 0.998124, -0.831424, -0.361635, -0.848821, 0.796799, 0.485678, 0.046579, + 0.944663, -0.693543, -0.731571, 0.923948, -0.261534, 0.64951, 0.479979, 0.271339, -0.628013, + -0.330541, 0.869043, 0.394063, -0.267173, 0.323153, -0.248419, -0.077478, 0.174334, 0.696992, + 0.956604, 0.910533, -0.211372, 0.080573, -0.961999, -0.09857, 0.05801, -0.639526, 0.89532, + -0.421881, -0.92706, -0.459516, -0.173982, -0.832182, 0.636362, 0.143606, -0.587917, 0.088031, + -0.864286, 0.315477, -0.033292, -0.078851, 0.081418, -0.457037, 0.668235, -0.727248, -0.015065, + 0.825533, 0.210712, -0.719999, 0.993124, -0.592853, -0.425119, 0.614084, -0.601263, 0.039996, + 0.36895, 0.553922, -0.618313, 0.954068, 0.744077, -0.397764, 0.00599, -0.350475, -0.515392, + 0.867149, 0.743399, 0.259523, 0.899599, -0.971349, 0.073769, -0.494999, 0.541945, 0.079175, + -0.785824, 0.031321, 0.409778, -0.307655, -0.094626, -0.71128, 0.861857, -0.968038, -0.591857, + -0.78896, -0.444655, -0.544042, 0.315483, 0.864471, 0.043483, 0.228927, 0.755354, -0.998465, + 0.066529, 0.45035, 0.182583, -0.416383, -0.334715, -0.523265, 0.989502, -0.441832, -0.171535, + 0.019011, -0.75073, -0.654825, -0.674815, 0.20242, -0.606569, -0.78787, -0.56918, -0.344874, + -0.271591, -0.624517, 0.2858, -0.125684, -0.722699, 0.46595, 0.230668, 0.159618, 0.984915, + -0.171288, 0.630726, -0.506317, -0.489019, 0.242913, -0.52196, 0.431271, -0.942437, -0.366608, + 0.997204, -0.050636, 0.54331, 0.901638, -0.285776, -0.233099, -0.143527, -0.498166, -0.030137, + 0.476549, 0.863097, 0.691794, 0.984826, -0.50503, -0.689362, -0.986009, 0.58881, 0.443354, + -0.239342, 0.826778, -0.719754, -0.161792, -0.026157, 0.402132, 0.833971, -0.568576, 0.997486, + 0.952484, 0.266044, -0.658144, 0.329715, 0.208387, -0.362587, 0.962706, -0.803242, -0.355222, + -0.3751, -0.277554, 0.741164, -0.049765, 0.139143, -0.891859, -0.676387, 0.628146, -0.305648, + 0.357726, -0.770725, -0.567833, 0.481179, 0.704211, 0.062155, -0.905536, -0.62914, -0.363836, + 0.465442, -0.813226, -0.642232, -0.993793, -0.705416, 0.723869, -0.373076, -0.235867, 0.030813, + -0.197817, -0.342654, -0.020252, -0.501347, 0.634349, -0.040235, 0.447313, 0.120546, 0.753467, + 0.48644, -0.502735, -0.235027, 0.230768, -0.360775, -0.693163, 0.838331, 0.671619, -0.499591, + 0.23085, 0.725108, -0.605925, -0.164766, -0.824661, -0.915014, 0.794775, 0.349995, -0.64993, + -0.074212, -0.465138, -0.182268, -0.216208, 0.31676, 0.173034, -0.678017, 0.500991, 0.073686, + -0.52229, -0.580916, -0.022068, 0.348055, -0.923532, -0.232544, -0.722589, -0.935072, 0.535903, + -0.343543, -0.953129, -0.287978, -0.552311, 0.540574, -0.157021, -0.606097, -0.408759, -0.221214, + 0.765341, 0.090932, -0.791373, -0.25892, 0.921558, -0.854483, -0.374965, 0.871066, -0.403318, + 0.761705, -0.654887, 0.75696, 0.660792, -0.186945, -0.927602, -0.338239, 0.25045, -0.334917, + -0.798098, -0.883854, 0.476172, 0.720843, -0.378767, 0.038216, -0.612152, 0.577388, -0.657126, + -0.567145, -0.407165, -0.18364, 0.123579, -0.942699, -0.365711, -0.434003, -0.203133, -0.056929, + 0.046856, 0.510613, -0.569307, 0.021818, 0.908752, 0.128275, -0.742854, 0.684459, -0.887424, + 0.406434, 0.827906, 0.12533, 0.536385, 0.793504, 0.456616, -0.300414, 0.217435, 0.808815, + 0.234467, -0.794752, 0.870166, 0.969104, 0.580301, 0.543636, 0.561845, -0.607151, -0.300152, + 0.432207, 0.25469, 0.424945, -0.018927, -0.963696, 0.473997, -0.62899, -0.826372, 0.988932, + 0.440827, 0.496982, -0.438131, 0.36851, 0.084988, 0.682113, 0.116977, 0.89378, -0.234218, + 0.92281, 0.990362, 0.11828, -0.733191, 0.000392, 0.795989, -0.683225, -0.357384, 0.361605, + 0.203191, 0.940042, 0.16471, -0.007647, 0.131427, -0.205691, -0.920609, -0.350745, -0.906507, + 0.731684, 0.060505, 0.116441, -0.069402, -0.513095, -0.705486, -0.153062, 0.302562, -0.547236, + -0.61868, 0.649703, -0.347204, 0.563379, 0.957331, 0.939906, -0.77316, 0.074174, -0.784106, + 0.041274, 0.139066, -0.432825, 0.296807, -0.313491, 0.563411, 0.009533, 0.694123, 0.6759, + 0.223303, 0.186688, -0.452603, -0.660361, 0.674206, 0.65992, 0.15682, 0.839023, 0.522147, + 0.653233, -0.191807, 0.142945, -0.899094, -0.913707, 0.475475, -0.602794, 0.761619, -0.806903, + -0.827824, -0.820862, 0.641779, -0.662836, -0.857576, 0.422421, -0.201706, -0.952456, 0.709223, + 0.724775, 0.802137, 0.627734, -0.775268, -0.440219, -0.392987, -0.972511, 0.69883, -0.404681, + 0.343227, -0.508501, 0.896115, 0.70462, 0.690173, 0.489451, 0.837065, 0.326949, 0.170884, + -0.225482, 0.812599, -0.96491, 0.714204, -0.094617, -0.066201, -0.657417, -0.437212, 0.188633, + -0.407489, 0.356005, 0.140876, -0.851256, 0.546545, -0.440294, -0.361303, -0.368037, 0.395117, + -0.986063, -0.720675, 0.402438, -0.302995, -0.189749, -0.898486, 0.101413, 0.470629, -0.360957, + 0.07643, 0.02836, -0.211752, 0.806583, 0.25752, 0.190072, -0.031105, -0.020958, 0.536986, + 0.057513, 0.226288, 0.811557, 0.707057, -0.36699, -0.81885, 0.263391, -0.682995, -0.994539, + 0.686692, -0.828817, 0.987033, -0.921262, -0.814239, 0.574933, 0.077161, -0.435858, 0.379571, + -0.649729, -0.551178, -0.96305, -0.512231, -0.858917, 0.856885, -0.434724, 0.169667, -0.449465, + -0.2291, 0.730514, 0.203518, 0.482819, 0.326745, -0.81502, 0.600556, 0.810222, 0.298855, + 0.796594, -0.476475, -0.654269, -0.803201, -0.158118, -0.098896, -0.568391, -0.341988, -0.322041, + 0.96443, -0.071411, 0.810697, 0.096328, 0.356336, 0.576261, -0.920423, -0.450749, -0.759991, + 0.971466, 0.366971, -0.41913, -0.754116, 0.553772, 0.232121, -0.49197, -0.725746, -0.521879, + 0.243515, -0.841949, -0.105523, 0.593541, 0.53413, 0.107926, 0.106246, 0.233653, 0.390553, + 0.789274, 0.27163, 0.549738, 0.697073, -0.77572, -0.533743, 0.54904, 0.200351, -0.577232, + 0.295501, -0.909096, -0.372079, 0.504263, -0.026349, -0.675785, 0.494299, 0.069491, -0.143111, + -0.96171, -0.360717, 0.110448, -0.543429, 0.168293, -0.710382, 0.771642, 0.770024, 0.589005, + -0.118799, -0.996532, -0.390477, -0.081013, -0.921657, 0.787296, 0.284649, 0.758676, -0.894686, + -0.513443, 0.225374, -0.01524, -0.581583, 0.731184, 0.41239, -0.047685, 0.952997, -0.975255, + -0.908324, 0.199436, 0.907524, 0.565321, -0.550297, 0.717432, 0.519579, 0.056846, 0.63267, + 0.197899, 0.001313, -0.276885, -0.531282, -0.630358, -0.131455, -0.683882, 0.423836, 0.282381, + -0.974999, -0.735567, 0.714635, -0.524245, -0.010314, -0.64051, -0.218706, 0.493192, 0.254174, + 0.490831, -0.058226, -0.797866, -0.012586, 0.592855, 0.233908, 0.206813, 0.196901, 0.820488, + 0.50447, -0.163555, -0.542537, 0.813727, -0.520238, -0.668494, 0.312375, -0.638574, -0.862872, + -0.809769, 0.246589, -0.628404, 0.884629, -0.040131, -0.42471, -0.613188, -0.298951, 0.87241, + -0.638327, -0.925882, 0.297535, 0.339093, -0.847262, -0.448873, 0.866783, -0.472681, 0.419565, + -0.480026, -0.88281, -0.964665, 0.762796, 0.306571, 0.284389, 0.344184, 0.385387, 0.660179, + 0.767211, 0.77113, 0.321336, 0.17859, 0.214676, -0.809937, 0.445868, 0.246609, 0.434674, + -0.246758, 0.830595, 0.120128, -0.237033, -0.028266, -0.399142, -0.146931, 0.848752, 0.331705, + -0.111764, 0.037764, 0.228428, -0.577107, -0.548505, 0.881765, 0.005449, 0.297623, -0.460188, + -0.735058, 0.198375, 0.540114, -0.941861, -0.989022, -0.333508, 0.646684, -0.893528, 0.798917, + 0.904352, -0.224422, 0.063876, -0.041301, 0.97426, 0.111126, 0.244348, -0.34216, -0.012214, + -0.530308, 0.050276, -0.138762, 0.186382, 0.194415, -0.818198, 0.66809, 0.550059, 0.70442, + 0.736454, 0.258023, 0.546659, 0.492904, 0.596235, -0.602197, 0.473801, -0.080122, 0.386798, + 0.367589, -0.745381, -0.454912, -0.711902, -0.265864, 0.322751, 0.233254, 0.793995, -0.721989, + 0.312935, 0.817878, -0.770373, -0.752727, 0.240666, -0.40587, 0.255736, -0.483327, 0.12883, + -0.84761, 0.796747, -0.638544, -0.917653, -0.51791, 0.021238, 0.939737, 0.209081, -0.209082, + -0.719744, 0.456449, 0.072921, -0.289593, -0.280428, 0.146623, 0.588794, -0.60138, -0.241534, + 0.471603, -0.684954, -0.024712, 0.80989, 0.698272, -0.802311, -0.469347, 0.160891, 0.631655, + -0.401716, -0.908056, -0.037168, 0.627242, -0.514222, -0.920913, 0.068867, 0.831242, -0.810647, + 0.21519, 0.633374, 0.030102, -0.535939, -0.361828, -0.65774, 0.072685, -0.435141, 0.033751, + -0.220106, -0.684805, 0.968331, 0.235585, 0.494619, 0.592123, 0.402879, -0.236622, -0.306905, + -0.551379, -0.889601, -0.763556, -0.380833, 0.941956, -0.95427, -0.629855, -0.777903, -0.70067, + 0.817768, -0.790989, -0.715549, -0.584962, 0.268088, -0.312593, -0.665856, 0.826653, 0.153345, + -0.730024, -0.373366, 0.615703, 0.363048, -0.637101, -0.508077, -0.392244, 0.381968, -0.801953, + 0.934812, 0.097703, 0.3973, 0.294875, 0.778421, -0.326967, -0.377858, -0.652274, 0.818115, + -0.080824, -0.015609, 0.881198, -0.25212, -0.335534, -0.417519, 0.574489, 0.12121, -0.53425, + 0.65711, 0.389865, -0.229103, 0.229676, -0.906327, -0.7106, -0.366861, 0.481607, -0.218257, + 0.729649, -0.932779, 0.727558, -0.96688, -0.343522, 0.917127, -0.334209, -0.436062, 0.540237, + -0.53576, 0.207265, -0.358761, 0.391874, -0.613166, -0.523332, -0.664293, -0.177369, 0.992958, + 0.574954, -0.793513, 0.510596, 0.915971, 0.989638, 0.099605, 0.266929, 0.725785, 0.96228, + 0.034169, -0.176855, 0.811695, -0.268663, 0.797002, 0.846207, 0.278669, -0.805157, 0.780733, + 0.477638, 0.240159, 0.216534, 0.47056, 0.590393, -0.655775, -0.791743, 0.517957, -0.416234, + -0.878365, 0.835426, -0.775109, -0.341532, -0.628147, 0.867393, -0.129644, -0.522747, 0.834947, + 0.930696, 0.530133, 0.783303, -0.900468, -0.90375, 0.54647, -0.224528, 0.425205, 0.929318, + -0.228473, -0.531294, 0.936978, -0.479388, -0.573007, 0.802514, -0.041112, -0.487727, 0.356661, + -0.505333, 0.036448, -0.78782, -0.241396, 0.775795, 0.144053, -0.135462, 0.758332, 0.541597, + 0.561181, 0.474516, -0.342176, -0.890298, -0.592173, -0.594401, 0.278477, 0.801941, 0.924398, + 0.800764, 0.141893, 0.688688, 0.050187, 0.464455, -0.662005, 0.963233, 0.462296, 0.001471, + -0.397014, 0.175143, -0.1152, -0.647264, -0.619565, -0.398889, 0.229556, -0.64479, 0.551101, + -0.550753, 0.601221, 0.034496, 0.00172, 0.135049, -0.007542, 0.494256, -0.079972, -0.353055, + 0.104249, -0.585532, 0.40027, 0.10059, 0.504448, -0.175361, -0.005649, -0.47617, -0.448922, + 0.024736, 0.511904, -0.378347, 0.785886, -0.337619, -0.205577, 0.80131, -0.181509, 0.543865, + -0.098464, 0.594395, 0.130059, -0.471213, -0.658734, 0.593624, 0.245743, -0.155312, -0.191054, + -0.415097, -0.692642, 0.221844, -0.850279, -0.013268, 0.714608, 0.456242, 0.540265, 0.184838, + -0.559348, 0.509769, 0.780357, 0.409301, 0.696535, -0.807445, -0.870169, -0.231594, 0.263132, + 0.642504, -0.293589, -0.442673, 0.644961, -0.030647, 0.067822, -0.954116, -0.092886, 0.485135, + 0.965691, 0.093175, 0.635193, 0.139001, -0.789189, -0.033698, -0.341729, -0.1358, -0.388969, + 0.747558, -0.816333, -0.60108, -0.310508, 0.837812, -0.204632, 0.408063, 0.490277, 0.855919, + -0.229765, 0.186806, -0.488076, -0.076011, -0.856981, -0.815942, 0.271992, -0.766411, 0.522655, + 0.739109, 0.350884, 0.382806, -0.908551, -0.462437, -0.722031, -0.948219, 0.425123, 0.228974, + 0.951479, -0.275512, -0.662099, -0.860823, 0.061581, -0.548042, 0.177408, 0.66148, 0.855021, + -0.163094, -0.650262, -0.543007, 0.635065, 0.258786, 0.063318, -0.971585, 0.538631, 0.632616, + 0.103202, -0.180193, -0.474537, 0.008168, 0.049679, 0.282092, -0.042383, 0.948076, 0.644602, + 0.225769, -0.887799, -0.477478, 0.391295, -0.646261, 0.278794, 0.245575, -0.628704, 0.198365, + -0.129335, 0.74483, -0.220618, 0.872695, 0.868832, -0.331544, 0.167796, -0.273358, 0.800772, + 0.479451, 0.002741, 0.604755, -0.802946, -0.255731, 0.204129, -0.947409, 0.874041, 0.082159, + 0.88344, -0.291048, 0.059542, -0.275804, -0.409994, -0.370556, 0.691615, 0.898499, 0.287761, + 0.558396, 0.434993, 0.001253, -0.744343, 0.250862, -0.343619, 0.382884, -0.650681, -0.067969, + -0.393072, -0.925092, -0.924494, 0.922621, -0.001088, -0.862044, 0.163975, -0.062759, 0.823817, + 0.942453, -0.257031, -0.600053, -0.573074, -0.26589, -0.548932, 0.901345, -0.382235, 0.515211, + 0.452553, 0.233809, 0.487499, 0.846798, 0.425482, 0.440025, -0.839056, -0.088622, 0.02309, + 0.783162, 0.427303, 0.7777, 0.773485, -0.466457, 0.141867, 0.953532, 0.353522, 0.565409, + 0.406474, -0.313912, 0.238794, -0.690957, 0.922561, 0.057217, 0.774926, -0.702964, -0.918658, + 0.119735, -0.12812, -0.404499, 0.523951, -0.650519, 0.876287, -0.976213, 0.205081, -0.584698, + 0.216941, 0.987578, -0.120028, 0.232518, -0.393539, -0.513145, -0.854202, 0.5772, -0.011106, + 0.346295, -0.769094, -0.832562, -0.909287, -0.576285, -0.130025, -0.150886, 0.439703, -0.480504, + 0.974386, -0.455707, -0.9404, 0.756463, -0.642671, 0.095303, -0.096545, -0.208595, 0.000648, + -0.983363, 0.899235, -0.649178, 0.609704, -0.591319, -0.246245, -0.02365, -0.394145, -0.433229, + -0.841731, -0.686836, -0.04692, -0.292324, -0.140436, 0.2551, -0.128201, -0.946639, -0.367781, + 0.306081, 0.359901, 0.483909, 0.055377, 0.683679, -0.684311, -0.839199, -0.266626, 0.006744, + 0.726071, -0.57669, -0.700356, -0.027054, 0.2543, -0.912077, -0.403106, -0.785548, 0.233692, + 0.093285, -0.889244, -0.665887, 0.046242, -0.264991, -0.773466, -0.303027, -0.918382, -0.114186, + -0.116561, 0.052418, 0.084936, -0.174188, 0.798041, -0.358034, 0.451913, 0.37755, -0.122572, + -0.732839, -0.842607, 0.276807, 0.305735, 0.606506, -0.442645, 0.807383, 0.999874, -0.159053, + -0.389691, -0.314109, -0.869396, 0.576488, 0.108983, 0.460709, 0.642503, -0.424675, 0.009312, + 0.808394, -0.770905, 0.879206, 0.520004, -0.314062, -0.816511, 0.534126, 0.477107, -0.452863, + 0.476085, 0.296791, 0.98436, 0.511522, 0.154391, -0.98982, 0.813852, 0.858597, -0.277188, + -0.078202, -0.03896, -0.061063, 0.543611, 0.135167, -0.869697, 0.32174, -0.614255, 0.285514, + 0.435283, -0.477502, 0.677423, 0.025537, -0.502957, 0.856897, 0.638995, 0.731253, -0.688535, + -0.762123, -0.879233, 0.646535, 0.583219, -0.609581, 0.392027, 0.200998, -0.425668, 0.034321, + -0.603297, -0.292782, 0.395405, 0.141214, -0.74418, 0.251654, -0.19955, -0.734614, -0.924573, + 0.043125, -0.735972, -0.611282, 0.240965, 0.061662, -0.452737, 0.155027, 0.50377, -0.386145, + -0.356638, 0.17658, 0.244609, 0.345631, 0.681003, -0.066844, 0.332203, -0.575436, -0.127519, + 0.740768, -0.968743, -0.657807, -0.864426, 0.832044, -0.1129, 0.915873, -0.538983, -0.271928, + 0.643643, -0.995979, -0.974573, -0.669667, 0.017015, -0.91998, 0.185154, 0.845716, -0.202692, + -0.176071, -0.880057, -0.211385, 0.082709, 0.204706, -0.329303, -0.6111, -0.523906, 0.689519, + -0.544014, 0.077744, -0.175769, -0.4021, -0.043195, 0.755877, 0.757165, -0.20888, -0.201136, + -0.560161, -0.465125, -0.170822, 0.742029, 0.142462, -0.855881, -0.257052, -0.863891, 0.924127, + 0.092583, -0.253813, 0.400986, -0.937456, -0.330135, 0.093808, 0.721583, 0.815673, -0.033428, + -0.999619, 0.184732, -0.563942, 0.901942, -0.269262, -0.272148, -0.148521, 0.926872, 0.438522, + -0.689617, 0.17524, 0.317966, -0.259737, 0.331972, -0.897622, -0.515493, 0.638837, 0.929015, + 0.317651, -0.566541, 0.36444, -0.575973, -0.801265, -0.659835, -0.094779, 0.212352, 0.074457, + 0.961107, -0.070954, 0.919921, -0.743184, -0.514809, 0.137106, 0.596012, 0.296821, 0.980646, + -0.533057, 0.935855, 0.319279, 0.264037, -0.025638, -0.719773, 0.534959, 0.216896, 0.689336, + 0.735911, -0.849319, 0.926353, -0.230273, -0.669951, 0.872799, -0.158151, 0.164773, 0.150098, + -0.537904, 0.634143, 0.379188, 0.805486, -0.277929, -0.733756, 0.195868, -0.268689, 0.000516, + -0.813321, 0.896846, -0.525928, -0.090347, 0.025374, -0.434429, 0.594139, -0.814818, -0.134514, + -0.647599, 0.592993, -0.728001, 0.791723, -0.864907, -0.999442, 0.024388, -0.984463, 0.931515, + 0.934102, -0.456658, 0.747478, -0.384591, 0.24463, -0.700908, -0.067699, -0.30533, 0.224344, + 0.321473, -0.933392, 0.06757, 0.774359, 0.805613, 0.452762, 0.023156, 0.686088, 0.530664, + -0.657781, -0.057044, -0.926397, 0.07041, 0.07594, -0.658359, 0.23882, 0.69154, -0.850888, + -0.890793, -0.488668, 0.129579, -0.970569, -0.199016, 0.767817, -0.825348, -0.267116, -0.211393, + 0.604378, -0.371855, 0.75914, -0.501198, 0.371009, -0.184827, 0.8705, -0.490316, -0.37572, + 0.90192, -0.792191, 0.282728, 0.497061, -0.086849, 0.879192, -0.930087, -0.145226, -0.526214, + 0.394004, 0.977763, -0.978874, -0.445761, -0.74054, -0.560897, 0.302317, 0.014742, -0.783236, + -0.613217, -0.654942, 0.075869, -0.823549, -0.781909, -0.801196, 0.806597, 0.730391, -0.473163, + 0.234727, -0.139662, -0.4019, 0.466281, -0.672633, -0.0033, 0.747326, -0.868371, 0.824477, + 0.66056, 0.442234, -0.130667, -0.388979, -0.549018, -0.725036, -0.974792, -0.143445, 0.198816, + -0.96798, 0.984366, -0.714515, 0.078942, -0.338925, 0.910091, -0.435316, 0.261224, 0.318728, + 0.458563, -0.701056, -0.553818, 0.011143, -0.986343, -0.390243, -0.839069, 0.442023, 0.103622, + -0.934476, 0.977951, 0.409944, -0.573125, -0.100682, 0.678155, -0.594306, 0.250095, 0.3252, + -0.642875, -0.525532, -0.177335, -0.782249, 0.860563, 0.285538, -0.318318, -0.011757, 0.010929, + 0.331189, 0.710314, -0.840369, -0.355713, 0.360564, -0.558524, -0.049265, -0.292566, 0.572984, + -0.536192, 0.901129, 0.475454, -0.716979, -0.198813, -0.093806, -0.978843, -0.857042, 0.82741, + 0.718504, -0.681011, -0.009843, 0.268693, 0.610182, 0.885778, 0.627352, 0.829333, -0.648344, + -0.227926, 0.478492, -0.769754, -0.968406, 0.563641, 0.729144, 0.399646, 0.635156, 0.467878, + 0.13539, -0.22514, 0.137883, -0.348787, 0.811898, 0.844657, -0.306344, 0.441323, -0.271506, + 0.800133, -0.899587, 0.142286, -0.076922, 0.682782, 0.105974, 0.18973, -0.979187, -0.55015, + 0.933439, -0.089622, 0.427467, -0.81757, 0.514871, -0.435064, -0.102612, 0.942279, 0.708386, + -0.876822, -0.448593, 0.59005, -0.183759, 0.789618, 0.410861, -0.110921, -0.623472, 0.057392, + 0.78876, 0.768483, -0.43156, -0.276371, 0.322512, -0.84997, 0.133607, 0.255458, 0.981423, + -0.123817, 0.972917, 0.972604, -0.514569, 0.155466, 0.57317, -0.11613, -0.547736, 0.21323, + 0.440684, -0.810253, -0.805826, -0.754581, -0.766303, 0.875587, -0.444789, -0.118761, -0.266121, + -0.514011, 0.846081, -0.357065, 0.607259, -0.462113, 0.980853, 0.252736, -0.176501, 0.007042, + 0.414304, -0.53707, -0.296579, -0.74205, -0.670673, 0.481002, -0.083724, -0.499155, 0.046487, + 0.570589, 0.9184, -0.585402, 0.408147, 0.095568, -0.507513, 0.221638, 0.112358, 0.590982, + 0.818267, 0.469686, 0.189202, -0.751309, -0.837248, 0.468508, -0.613497, 0.013826, 0.769825, + 0.501944, -0.127038, 0.157596, 0.0344, 0.086316, 0.872029, -0.611794, 0.870499, 0.047999, + 0.948413, -0.426358, 0.614738, -0.549775, -0.819334, 0.726891, 0.345668, 0.983048, 0.4053, + -0.421875, -0.594734, 0.818509, -0.198242, -0.594137, -0.738592, -0.669407, -0.420057, -0.803999, + 0.962462, 0.115541, 0.329918, -0.491963, 0.028185, 0.681634, -0.338909, 0.807369, -0.310897, + -0.373869, -0.736049, -0.991083, 0.435995, -0.645129, -0.548255, -0.409067, -0.764815, -0.768676, + -0.652875, 0.974935, 0.058095, -0.37685, -0.083369, 0.835949, -0.581675, 0.403875, -0.186312, + -0.849629, 0.661402, 0.461966, 0.734965, 0.457824, 0.162941, 0.307451, -0.746558, 0.963668, + -0.644156, 0.705506, -0.63317, -0.722678, 0.412118, 0.655371, -0.27237, 0.280078, -0.871631, + -0.112292, 0.882303, 0.934392, -0.318425, 0.369483, 0.922274, 0.37086, 0.183314, -0.805803, + 0.287485, 0.266977, -0.563302, 0.499332, -0.652315, 0.957344, -0.050322, 0.680832, -0.262578, + -0.507971, 0.727485, 0.607141, 0.981899, 0.293962, -0.419816, -0.587237, -0.954214, 0.063371, + 0.957317, -0.331478, -0.193007, 0.704364, 0.889545, 0.271659, 0.079423, 0.977897, 0.837493, + -0.636317, -0.69768, -0.229414, 0.396294, -0.611975, -0.428074, 0.083013, -0.252654, 0.670866, + 0.633423, 0.688674, 0.531892, -0.578542, -0.769652, -0.671957, -0.127997, 0.786018, -0.222047, + 0.920187, 0.746345, -0.949105, 0.461789, -0.421808, -0.953943, 0.350493, -0.343594, -0.888455, + -0.703744, 0.735757, -0.239561, 0.783793, -0.347016, 0.976879, -0.250306, 0.946505, 0.387903, + -0.751393, 0.436977, 0.419897, -0.839501, -0.864569, 0.058007, 0.541658, 0.852049, -0.277255, + -0.936457, 0.456795, 0.069729, 0.025503, 0.631339, 0.119414, 0.86685, 0.76769, 0.256051, + 0.744892, 0.320156, -0.949013, 0.897578, 0.030463, -0.123544, 0.824107, 0.87223, -0.791281, + 0.393929, -0.549726, -0.256956, 0.214848, -0.371116, -0.422147, 0.497869, -0.24047, 0.377667, + 0.958838, 0.242594, 0.23256, 0.877326, -0.375969, 0.001445, -0.925597, -0.425749, -0.07834, + 0.906881, 0.564939, -0.185716, -0.272057, 0.244844, -0.434242, -0.146161, 0.264786, -0.309924, + 0.73197, 0.395967, -0.103847, -0.174597, 0.099424, 0.52287, 0.280314, -0.272636, 0.348634, + -0.042475, -0.7298, -0.788256, 0.007484, 0.865321, -0.388726, 0.627536, -0.297004, 0.597853, + -0.224105, -0.414603, 0.293223, 0.529059, -0.762162, -0.072957, 0.207552, 0.179867, 0.974867, + -0.876606, 0.853377, 0.517099, -0.942974, -0.385313, 0.347401, -0.752731, 0.935098, -0.376206, + 0.383306, 0.193013, -0.389295, -0.941086, 0.073123, -0.817106, -0.218415, 0.210261, -0.350172, + 0.571046, -0.898436, -0.789441, 0.532581, -0.520777, 0.821266, -0.202264, -0.179052, 0.953557, + -0.110889, -0.801796, -0.416578, 0.31118, 0.681036, 0.843186, -0.36711, 0.147176, 0.728492, + -0.409106, 0.066858, -0.484629, 0.142492, 0.972852, 0.844994, -0.657665, 0.490802, 0.940846, + -0.177034, 0.354935, -0.897998, 0.555604, -0.187336, 0.918475, 0.700439, -0.574832, -0.442217, + -0.786334, -0.923835, -0.907271, 0.484092, 0.663134, -0.634449, 0.699888, -0.313723, 0.298367, + 0.837593, 0.775858, -0.797055, 0.393587, -0.502271, -0.85867, -0.04431, -0.223961, 0.209924, + 0.112808, 0.578894, 0.515831, -0.896546, -0.873891, -0.631916, 0.514967, 0.923504, -0.585367, + 0.187379, 0.055817, 0.373194, 0.386264, 0.155814, 0.665261, -0.33242, 0.954636, -0.028247, + -0.906315, 0.487322, 0.704013, 0.670472, 0.109938, 0.338329, 0.310354, -0.426985, -0.040005, + 0.023605, -0.553709, -0.373049, -0.398407, -0.164143, -0.657998, 0.579997, -0.025221, 0.76919, + -0.641988, 0.2777, -0.327983, 0.52984, -0.39987, -0.495945, 0.079486, -0.573412, 0.690085, + -0.037672, 0.560526, -0.293449, -0.246166, -0.945816, 0.279453, 0.341073, 0.656536, 0.132533, + -0.095644, -0.13436, 0.407833, 0.956485, 0.064278, -0.843642, -0.892647, 0.382857, 0.89018, + -0.528553, 0.504066, 0.836953, 0.87529, 0.635322, -0.648838, 0.701504, 0.035139, -0.600301, + -0.992697, -0.392688, 0.831935, 0.999168, 0.734577, -0.706804, 0.576746, 0.552827, 0.902465, + -0.588478, 0.828292, -0.130689, 0.399493, -0.854769, -0.154958, -0.632811, -0.284402, -0.103673, + -0.358275, 0.443696, 0.926671, 0.232227, -0.441048, -0.223075, -0.309442, 0.074173, -0.088986, + 0.584785, 0.07654, -0.896809, -0.357737, -0.48442, 0.351295, 0.896389, 0.812713, 0.23669, + -0.645605, -0.03425, 0.156163, 0.020108, 0.551481, 0.482857, -0.307239, -0.370581, 0.116339, + 0.095819, 0.020376, -0.964189, -0.938254, 0.899787, 0.975741, -0.876547, -0.700558, -0.14537, + -0.566033, -0.980456, 0.30948, -0.639708, 0.320738, -0.645966, -0.052211, -0.317547, -0.189312, + -0.43304, -0.83806, 0.809944, -0.083284, -0.538539, 0.934015, 0.12765, -0.23562, 0.290539, + -0.061151, 0.250772, 0.839699, 0.369352, 0.704881, 0.528775, -0.402728, -0.08223, -0.188466, + 0.994113, -0.378853, 0.714857, -0.289513, 0.836324, 0.426488, 0.551264, -0.7151, -0.029611, + 0.932181, -0.794164, -0.218602, -0.986004, -0.924132, 0.737338, -0.590456, 0.095283, -0.852593, + -0.757204, 0.902692, 0.195612, -0.274314, -0.265291, 0.964793, 0.712594, 0.707863, 0.899418, + 0.037884, 0.149157, 0.058506, -0.399648, -0.868014, 0.892423, 0.829871, 0.093793, -0.355254, + 0.86887, -0.444602, -0.037978, -0.342864, -0.583413, -0.762436, 0.975926, 0.877926, 0.491549, + -0.367455, -0.326618, 0.585959, 0.758274, 0.999691, 0.467269, -0.380718, -0.437773, 0.95262, + -0.705189, -0.841705, -0.103943, -0.163531, 0.49792, -0.679646, -0.227688, -0.773508, 0.682261, + 0.2272, -0.499463, -0.268955, 0.630244, 0.792983, -0.919865, -0.58152, 0.171701, 0.253244, + -0.633955, 0.381849, 0.047409, -0.555083, -0.764846, -0.009737, 0.311837, 0.455914, 0.376521, + 0.703228, 0.891957, -0.602353, -0.354833, -0.839772, 0.77803, -0.951783, -0.483896, -0.905631, + -0.15601, -0.393357, 0.58634, -0.809121, 0.602012, -0.374305, 0.191599, -0.642964, 0.275291, + 0.783427, 0.340484, 0.303224, -0.260463, -0.942252, 0.288214, 0.713961, 0.562518, 0.859584, + -0.528062, 0.571192, 0.685214, 0.741031, -0.513224, 0.743305, -0.86777, -0.535844, 0.522959, + 0.790586, 0.659954, -0.261966, -0.750866, 0.615877, -0.498832, 0.695196, -0.009402, 0.403022, + 0.18019, -0.132893, -0.425209, -0.212607, -0.264234, -0.821659, 0.339638, 0.394911, -0.998688, + -0.478761, -0.794545, -0.008982, -0.558998, 0.796481, -0.762611, -0.336048, 0.883121, 0.039378, + 0.801653, -0.474405, 0.864777, -0.677102, -0.397555, -0.880756, 0.947129, 0.381285, -0.325477, + 0.112889, -0.025554, -0.727564, -0.661101, 0.411317, 0.725651, 0.021132, 0.966715, -0.062921, + 0.601064, 0.384639, 0.993695, 0.42061, -0.637988, 0.655923, -0.477335, -0.798442, -0.805502, + 0.992771, 0.235505, 0.416121, -0.430943, -0.8021, 0.279566, -0.81979, 0.210654, -0.1326, + 0.09921, 0.634211, -0.902653, 0.433349, -0.453489, -0.188532, -0.515734, -0.333949, 0.380128, + 0.496403, -0.802653, 0.167706, -0.00137, 0.662622, -0.003868, 0.927588, 0.79587, -0.895235, + 0.802285, 0.074336, -0.099238, -0.609284, -0.622122, 0.294386, -0.393431, 0.361436, -0.132157, + -0.234332, 0.600536, -0.71639, -0.346699, 0.691378, 0.536769, 0.974374, 0.75192, -0.670929, + 0.571974, 0.083135, 0.705016, -0.24069, 0.531194, -0.23313, 0.448963, -0.494404, 0.49751, + 0.587417, 0.760133, -0.534507, -0.544533, 0.339664, -0.660443, -0.601311, 0.125945, 0.943222, + -0.708635, -0.173837, -0.735991, -0.106393, 0.884425, -0.766981, 0.673462, 0.547061, 0.131067, + 0.658058, 0.494017, 0.317101, 0.141522, -0.650316, -0.949735, 0.670123, -0.365337, -0.904666, + -0.326817, -0.704091, 0.815205, 0.73864, -0.890112, 0.406161, -0.408073, 0.955794, 0.0943, + -0.061383, 0.393523, -0.857697, -0.39664, 0.825964, 0.856672, -0.176031, 0.752488, -0.82067, + -0.788064, -0.202935, -0.936117, 0.859822, -0.146783, -0.532885, 0.306239, -0.168917, 0.588198, + 0.573747, -0.737395, 0.221696, -0.200873, 0.491707, -0.695755, 0.016188, 0.302025, -0.794409, + 0.307826, -0.383721, 0.371067, -0.424199, -0.217189, -0.957316, -0.135884, 0.753035, 0.352293, + -0.752325, -0.832932, 0.757498, -0.430192, -0.795372, -0.409615, 0.524998, 0.121372, -0.511204, + 0.495735, 0.997674, 0.224965, -0.749933, -0.273353, -0.995546, 0.853373, -0.654431, -0.028821, + -0.587151, -0.035231, -0.707001, -0.78997, -0.720919, 0.425755, -0.999996, 0.833255, 0.431201, + 0.536188, 0.935493, 0.074092, -0.254711, -0.922077, -0.594193, -0.683375, -0.916119, -0.414483, + -0.020578, -0.030634, 0.155679, -0.687449, 0.593679, -0.929193, 0.341621, -0.397673, 0.855233, + -0.525182, 0.932861, -0.72792, -0.661427, -0.102608, -0.695951, 0.101593, -0.714764, -0.10541, + -0.128085, -0.354049, 0.162359, -0.568159, 0.583534, -0.285159, -0.570019, -0.292429, 0.365845, + -0.570823, -0.933358, -0.226179, -0.677987, 0.977705, -0.351024, 0.252632, -0.47122, 0.024603, + -0.220114, -0.145821, 0.828478, 0.420462, -0.507004, 0.517278, -0.643792, 0.769476, -0.883186, + -0.974493, 0.981344, 0.546299, 0.035162, -0.773295, 0.616609, -0.405712, 0.279886, 0.174577, + 0.642607, -0.235944, 0.999539, -0.725492, -0.453049, 0.984825, -0.882524, -0.3048, 0.31245, + 0.39999, -0.319206, -0.784658, 0.845103, -0.767493, 0.951869, 0.074853, -0.571547, 0.140304, + -0.03362, -0.832341, 0.867622, -0.584013, -0.178761, -0.535669, 0.220035, -0.670385, 0.857186, + -0.265374, 0.933189, 0.004337, -0.160985, -0.897215, 0.627782, -0.00642, -0.795162, 0.483051, + 0.151975, -0.546876, -0.601046, -0.201694, 0.468405, 0.322731, -0.617854, -0.701253, 0.837579, + 0.194956, 0.48787, -0.942413, 0.472041, 0.868018, -0.031282, 0.811091, 0.211872, 0.039026, + 0.349134, -0.350103, -0.106044, -0.19581, 0.258032, 0.099318, -0.466751, 0.512209, -0.560977, + 0.630777, 0.100452, -0.063999, -0.065204, 0.21893, 0.041918, 0.872572, 0.800969, 0.994245, + 0.60768, 0.021213, -0.387508, -0.371241, 0.606642, -0.079159, -0.896896, 0.031412, -0.2358, + -0.723638, -0.758435, -0.091325, 0.357876, 0.539568, -0.716294, -0.845694, -0.763346, -0.040082, + -0.081708, 0.467086, -0.814019, 0.90992, -0.299256, -0.947186, -0.630562, 0.242605, -0.207172, + 0.72405, -0.004711, 0.608559, 0.829088, -0.380046, 0.082173, -0.076467, -0.457283, -0.910445, + -0.485541, 0.510797, -0.192238, -0.881292, 0.264757, 0.365035, 0.183716, 0.811475, -0.766314, + -0.394523, -0.057933, -0.659836, 0.337056, -0.251074, 0.931861, -0.33077, -0.70679, 0.767512, + 0.983177, 0.736774, -0.773805, -0.494551, 0.470858, 0.918458, 0.681748, -0.855108, -0.336672, + -0.057794, 0.490796, -0.692403, 0.395243, -0.234063, 0.308909, -0.159576, 0.967672, -0.105196, + -0.38584, -0.162411, -0.493679, -0.826971, 0.645883, -0.606505, -0.435375, -0.515534, -0.010208, + 0.561814, -0.269669, 0.005832, -0.354981, 0.782797, -0.147324, 0.714292, -0.271967, -0.28324, + -0.5528, -0.66871, 0.543287, -0.942328, 0.19919, 0.832743, -0.742661, 0.411067, 0.244401, + 0.094922, 0.949682, -0.6874, 0.587591, -0.496237, 0.595043, 0.078828, 0.072757, -0.851495, + 0.113997, -0.734528, -0.83094, 0.559842, 0.008908, -0.256951, -0.159038, 0.793671, -0.017968, + -0.640111, 0.966208, -0.555718, 0.723711, 0.83434, 0.18275, -0.905525, -0.295373, -0.833918, + -0.876593, -0.738983, -0.530942, -0.922857, -0.549131, -0.790033, -0.776205, -0.655131, -0.962412, + 0.017952, 0.085937, -0.192186, 0.98612, 0.484455, 0.628999, 0.522072, -0.528049, 0.254267, + 0.318581, -0.735954, 0.872741, -0.593991, -0.1233, -0.97661, -0.781122, 0.801962, -0.733245, + 0.899973, 0.517427, 0.924634, -0.468513, -0.783866, 0.831991, -0.40906, -0.118386, 0.931765, + -0.453153, -0.343491, 0.572544, 0.903541, 0.044981, 0.010032, 0.710506, -0.406548, 0.800107, + 0.590393, 0.134232, -0.526481, 0.88181, -0.264837, -0.502652, -0.212819, 0.155933, -0.990589, + 0.232933, -0.147343, 0.302596, -0.030049, -0.526809, -0.238497, -0.288359, 0.848387, -0.884557, + 0.287403, 0.906237, 0.309835, -0.530716, 0.294123, 0.401469, 0.43057, 0.082843, -0.875923, + 0.22391, -0.210056, 0.532125, 0.895717, -0.357885, 0.017001, 0.819829, -0.17125, 0.151272, + -0.387905, 0.25056, -0.412688, -0.8772, -0.876645, 0.439207, -0.150178, 0.174537, 0.670708, + 0.209404, 0.885954, 0.306037, -0.910707, 0.633196, -0.896037, 0.480947, -0.077787, -0.953818, + -0.188738, 0.873038, -0.456193, -0.432722, 0.540777, 0.20363, 0.40379, -0.630332, -0.340213, + -0.650454, 0.227708, 0.20362, -0.500818, -0.545551, 0.465016, 0.081226, 0.204548, -0.233059, + -0.885948, 0.642296, 0.936237, 0.848154, -0.736447, -0.472051, -0.724718, 0.904119, 0.802837, + -0.450354, 0.179388, 0.716752, 0.764705, -0.464103, -0.37823, -0.765446, -0.899832, -0.269363, + -0.312051, 0.59886, 0.756415, -0.218273, 0.444754, 0.006275, 0.502497, -0.882741, -0.176074, + -0.33289, 0.807847, 0.473965, 0.389034, 0.49902, -0.667207, -0.754203, -0.590928, -0.169914, + -0.513848, 0.428703, 0.864663, 0.990222, 0.676109, 0.413142, 0.011533, -0.533974, 0.172686, + 0.574985, 0.11425, -0.109877, -0.08379, -0.890832, 0.035925, 0.158295, 0.853405, 0.362664, + 0.94496, -0.020756, 0.768508, -0.598334, 0.288263, 0.953604, 0.25148, -0.558483, 0.416375, + -0.954479, 0.43434, -0.551124, 0.704075, 0.091, 0.322829, -0.454129, -0.092422, -0.521148, + 0.851201, 0.394354, -0.528504, -0.375066, 0.476704, -0.610317, 0.198022, -0.492948, -0.122984, + 0.687609, -0.14921, 0.555114, -0.659761, 0.783371, -0.943211, -0.952504, -0.985464, -0.864861, + -0.087795, -0.954897, 0.225469, -0.523924, 0.160744, -0.068393, 0.371438, -0.132492, -0.800294, + 0.123915, 0.233546, -0.02568, -0.212146, -0.10148, 0.065493, 0.050959, -0.281771, 0.681009, + -0.837784, 0.694382, -0.621921, 0.712215, -0.690706, -0.620557, 0.13421, 0.927446, -0.117081, + -0.162025, 0.387159, 0.340164, -0.30969, 0.067095, 0.998973, -0.013819, -0.899793, -0.898658, + 0.553272, -0.69331, -0.912911, 0.062195, -0.245595, 0.988789, -0.778031, 0.699519, 0.292123, + 0.182714, 0.352902, 0.565125, 0.716525, -0.76093, 0.947384, 0.342926, 0.152865, -0.450961, + 0.96863, -0.52106, 0.184049, 0.416806, -0.796666, 0.902627, -0.007505, 0.120223, -0.925282, + 0.324032, -0.789955, -0.222371, 0.117075, -0.584427, 0.895762, -0.815149, 0.213602, 0.370746, + -0.702584, -0.071445, -0.938484, -0.994353, 0.715937, -0.138584, -0.320995, -0.805361, 0.929763, + -0.420292, 0.798633, -0.956522, 0.318848, -0.364889, 0.697464, 0.02917, -0.373783, -0.413396, + -0.371691, 0.861309, -0.004268, -0.945805, -0.012382, -0.04446, 0.847782, -0.843759, 0.004928, + 0.778962, 0.115602, -0.026082, -0.893577, -0.759823, -0.303521, -0.831523, 0.374351, 0.301066, + -0.841373, 0.990847, 0.114943, 0.657587, -0.37388, 0.827608, 0.839909, -0.887328, -0.40386, + -0.722389, -0.006554, -0.677285, -0.425468, 0.367976, 0.458476, 0.766433, 0.909475, 0.321268, + -0.210564, 0.214285, 0.947277, 0.950987, -0.993681, 0.902667, -0.30795, -0.342376, -0.891845, + 0.521539, 0.29758, 0.691927, -0.514292, 0.666503, -0.93606, 0.733521, 0.706079, -0.892347, + -0.791306, 0.193496, 0.475224, 0.97821, 0.508325, -0.687683, 0.325902, -0.920907, -0.50653, + 0.155326, 0.288034, -0.881864, -0.237711, -0.81069, -0.885643, -0.006063, -0.056466, 0.216239, + 0.644669, -0.968704, -0.56714, -0.319455, -0.756532, 0.909829, 0.942588, -0.97404, -0.867681, + -0.538656, -0.298746, 0.07701, -0.97765, -0.13409, -0.805834, 0.932757, -0.596085, 0.170035, + 0.991849, -0.793364, 0.043701, 0.895243, 0.011289, -0.737422, -0.457591, -0.861373, -0.514181, + -0.65079, 0.461234, 0.566627, -0.236895, 0.781047, -0.610943, 0.359685, -0.885785, 0.583007, + -0.991713, 0.584814, -0.065609, -0.885481, 0.905588, 0.142656, -0.744663, 0.264595, -0.644795, + -0.726766, 0.018953, -0.150901, -0.688638, 0.721894, 0.241731, -0.495341, 0.512665, 0.598843, + 0.811283, -0.121537, -0.302343, 0.110541, -0.087228, 0.519956, -0.469436, 0.5025, 0.928309, + 0.402945, 0.688846, -0.657466, 0.364238, -0.834278, -0.032816, -0.150267, 0.987677, -0.302463, + 0.820745, 0.601815, -0.008888, 0.683794, 0.98423, -0.550412, -0.911014, 0.230419, 0.518278, + 0.136991, 0.918571, -0.157361, 0.187488, -0.771295, 0.714006, -0.58759, -0.133078, -0.662626, + 0.686101, -0.591114, -0.843667, -0.501022, 0.001858, -0.664513, 0.054515, -0.1586, 0.779261, + 0.460414, 0.382674, -0.521045, 0.563299, 0.629785, -0.054453, 0.005646, -0.149235, -0.018571, + -0.733011, 0.49594, 0.920425, 0.50175, 0.472066, 0.906473, 0.697465, 0.233527, 0.664268, + 0.696222, 0.204561, -0.241424, -0.591875, -0.274664, 0.299083, -0.780137, -0.909419, -0.15358, + 0.167999, 0.641114, 0.809016, -0.810216, 0.014587, -0.726615, 0.094491, -0.816519, -0.901791, + 0.046823, 0.665436, -0.957509, -0.899671, 0.114649, 0.966334, -0.285789, 0.92093, 0.935411, + -0.436244, 0.275049, 0.617959, -0.876578, 0.400791, 0.414182, -0.00268, -0.987719, -0.15586, + -0.760203, 2.5e-05, 0.026473, -0.546215, 0.873065, -0.653869, 0.649463, 0.638103, 0.921527, + 0.293122, 0.664438, -0.347565, 0.358516, 0.906918, -0.974228, -0.707451, 0.296319, -0.228183, + -0.169658, -0.571165, 0.000882, -0.313698, 0.952617, 0.612369, 0.261761, 0.410257, -0.420981, + -0.268992, 0.5921, 0.859229, -0.205509, -0.876735, -0.025215, 0.594898, 0.046914, -0.964146, + 0.125838, -0.541142, 0.410784, 0.824738, 0.608189, -0.813502, 0.229021, -0.055912, 0.19872, + -0.494296, -0.811937, -0.466631, 0.041515, 0.551844, -0.882427, 0.500546, 0.956309, -0.8319, + -0.698162, 0.192444, -0.595401, 0.175485, -0.903371, -0.075734, 0.908296, 0.751721, 0.170342, + 0.442807, 0.901121, -0.809286, 0.740804, 0.34101, -0.839248, 0.513851, 0.138148, -0.882984, + -0.51804, 0.09607, 0.114386, 0.26478, 0.777063, 0.832091, 0.380042, 0.088354, 0.00376, + 0.915017, 0.056715, -0.660908, -0.4846, -0.975187, -0.693234, 0.972298, -0.778417, -0.223884, + -0.942706, 0.564903, -0.411643, 0.998526, 0.677893, -0.420273, -0.413572, -0.166351, -0.261317, + -0.866223, 0.098269, -0.679217, -0.638066, 0.307915, 0.536931, -0.949031, 0.216436, 0.835776, + 0.381173, -0.741858, -0.956399, -0.10383, 0.701917, -0.074074, -0.94229, 0.978404, -0.743431, + 0.312234, -0.595771, 0.203263, -0.208272, -0.116348, -0.161825, 0.798168, -0.468894, -0.300081, + -0.716375, -0.580495, -0.17022, -0.787306, -0.380307, -0.124869, -0.706328, 0.208011, 0.122633, + 0.189184, 0.933041, -0.663934, -0.191777, -0.400852, -0.769578, -0.254862, 0.256199, 0.222464, + -0.091563, 0.715019, 0.691989, 0.774031, 0.718564, 0.031394, -0.048149, 0.766698, 0.134392, + 0.855519, 0.040923, -0.761283, -0.683761, 0.461567, 0.632291, 0.331207, 0.782527, 0.931615, + -0.430492, 0.296651, 0.168128, -0.121806, -0.838079, -0.772176, 0.439262, -0.432981, -0.388053, + -0.548666, -0.422044, 0.441477, -0.710875, 0.446249, -0.088569, 0.511873, -0.533006, 0.355077, + 0.220725, 0.745971, 0.624701, 0.080407, 0.846743, -0.748972, -0.339077, 0.420642, 0.548774, + -0.715029, -0.291574, 0.792207, -0.860316, 0.439952, 0.991066, -0.371042, -0.111996, 0.253543, + 0.459084, -0.14346, -0.887629, -0.043518, 0.118255, 0.660847, 0.180114, 0.752404, -0.383489, + -0.153675, 0.291939, 0.794912, 0.416828, 0.921957, 0.327775, 0.512223, 0.216866, 0.825768, + 0.782205, 0.607449, -0.847379, -0.111003, -0.338769, -0.150339, 0.712041, -0.660217, -0.521281, + -0.405561, 0.07046, -0.555628, 0.199839, -0.847487, -0.511811, 0.597231, 0.689545, -0.312516, + 0.053454, -0.034012, -0.707955, -0.224239, 0.590363, 0.033597, 0.959168, -0.816914, -0.708826, + -0.852542, -0.632969, 0.209812, 0.668954, -0.818672, -0.763009, -0.370385, 0.593183, 0.528193, + -0.101593, 0.912167, 0.363909, 0.939941, 0.002688, -0.61927, 0.011159, 0.316739, 0.39097, + -0.003763, 0.034158, 0.189736, -0.220478, 0.244831, -0.636494, -0.220051, 0.539158, 0.305666, + 0.559575, -0.665997, -0.29433, -0.517712, -0.777909, -0.410556, -0.063967, -0.073259, -0.061791, + -0.631666, -0.067844, 0.265162, 0.718207, 0.604984, -0.835712, -0.637078, 0.788803, 0.678818, + 0.555096, -0.515758, 0.843315, -0.97153, -0.795275, 0.0895, 0.465084, -0.942564, 0.147203, + -0.015049, -0.131633, -0.783256, -0.479388, 0.046942, 0.239165, 0.627194, -0.354267, 0.946542, + 0.37653, -0.679412, -0.995568, 0.672338, 0.075576, -0.100364, -0.331052, 0.470144, -0.359844, + -0.731619, 0.694471, -0.428746, 0.575791, -0.687684, -0.20103, -0.547975, 0.042564, -0.118265, + 0.29834, -0.77565, -0.881992, 0.795298, -0.765679, 0.337196, -0.868483, 0.19487, -0.021277, + -0.491748, -0.020592, 0.122776, 0.027984, 0.756532, -0.572796, 0.452825, 0.921005, -0.71827, + -0.783251, 0.337976, -0.354996, -0.022553, -0.932825, 0.610831, -0.066023, 0.06148, -0.34761, + 0.347143, -0.016399, -0.39854, 0.248409, -0.371302, 0.371121, -0.957778, -0.386931, -0.685174, + 0.42545, -0.702215, 0.774808, 0.243489, 0.612877, -0.652316, -0.812334, -0.164102, -0.54946, + -0.338718, 0.822003, 0.534482, -0.295459, 0.607238, -0.669816, -0.581089, 0.442942, 0.431729, + -0.289139, -0.682412, 0.156301, 0.964683, 0.984208, 0.8204, -0.749905, 0.662885, 0.183129, + -0.811663, 0.064226, -0.965721, 0.214676, -0.549872, -0.672836, 0.048658, 0.67447, 0.561287, + -0.618838, 0.568803, 0.372075, -0.667567, -0.257934, -0.239637, -0.812782, -0.912482, -0.679064, + 0.909084, -0.265703, 0.095991, -0.830392, -0.17201, 0.377808, -0.020265, -0.078584, -0.01332, + 0.672383, -0.704465, -0.898024, -0.9632, 0.406618, -0.557042, -0.437367, -0.132267, 0.586246, + 0.008691, 0.195738, -0.280895, 0.544237, -0.498877, 0.770826, 0.823137, -0.899554, -0.316638, + -0.120501, -0.538475, 0.053694, -0.328218, 0.827878, -0.079114, -0.558992, -0.496563, -0.934587, + -0.614604, 0.194152, 0.302067, -0.430997, 0.010175, 0.501754, 0.132184, 0.112657, -0.656012, + 0.940172, -0.295225, 0.082495, -0.12315, 0.434446, -0.828297, 0.227576, -0.776205, 0.789313, + -0.39417, 0.204141, 0.066177, -0.397471, -0.133461, 0.951201, -0.505635, -0.259938, 0.659159, + 0.587085, 0.276671, -0.875036, -0.161305, -0.985316, -0.494208, -0.106906, -0.377969, 0.410527, + 0.010026, 0.1968, 0.293154, 0.241425, -0.980392, 0.201904, 0.822821, 0.337536, 0.717858, + -0.541455, -0.253842, -0.912374, -0.913279, -0.753878, 0.511028, -0.588167, 0.335675, 0.692562, + 0.357156, -0.419142, 0.638836, 0.366749, 0.22679, -0.250867, 0.794417, 0.483282, -0.175772, + 0.461186, -0.666374, -0.086594, -0.830217, -0.892377, 0.814543, 0.531568, -0.339397, -0.557194, + -0.383733, -0.237654, -0.170124, 0.856286, 0.957209, 0.522169, -0.559449, -0.352555, 0.124704, + -0.595596, 0.894611, -0.592721, 0.9256, -0.00438, 0.90603, 0.653568, 0.089897, 0.98156, + 0.087366, 0.383844, -0.257901, -0.880597, -0.613009, -0.8049, 0.685019, 0.444715, 0.281728, + 0.927176, -0.705946, 0.281309, 0.043143, -0.875277, -0.965983, 0.97121, 0.849141, 0.181699, + -0.641974, 0.139319, 0.713061, -0.217572, 0.013886, -0.491863, 0.755938, -0.609512, -0.561932, + -0.256903, -0.031695, 0.251952, 0.778386, 0.612381, 0.144269, 0.262237, 0.847681, -0.293648, + -0.476063, 0.765849, 0.867532, -0.040959, -0.039225, 0.75888, -0.186501, 0.987145, -0.732731, + 0.245815, 0.75751, -0.962801, -0.264476, 0.85215, 0.723831, -0.667286, 0.800023, 0.856949, + 0.393073, -0.253422, -0.574646, -0.206463, 0.314884, 0.211719, 0.137598, -0.708783, 0.810704, + 0.118037, 0.20663, -0.831651, -0.281747, -0.241497, 0.690949, 0.794891, -0.62291, -0.681117, + -0.592803, -0.28035, -0.767511, 0.924056, -0.665793, 0.824156, 0.406285, -0.3669, -0.49285, + 0.100519, -0.980295, -0.42601, 0.131371, -0.964573, 0.935665, -0.593983, -0.026562, -0.501952, + -0.418636, -0.400091, 0.198768, -0.615065, 0.412385, 0.38369, 0.553203, -0.929973, -0.591057, + 0.601248, 0.798982, 0.374362, -0.865101, 0.245183, 0.675647, -0.045965, 0.609454, -0.705969, + 0.594575, 0.19867, -0.354044, 0.8037, -0.907448, 0.857723, 0.227036, 0.273844, -0.110178, + 0.128319, 0.704203, 0.120025, 0.117003, 0.493922, -0.456464, -0.222821, 0.39007, 0.888898, + -0.183882, 0.026149, 0.420931, -0.642926, -0.800294, 0.057769, 0.178256, -0.772531, 0.973135, + 0.347753, -0.607877, 0.771116, 0.281067, 0.077037, 0.09177, -0.667859, -0.08049, 0.776916, + -0.498221, 0.463471, 0.634916, 0.986772, -0.803379, 0.273762, 0.328763, -0.338258, 0.589371, + 0.387023, 0.850243, -0.714851, 0.270859, -0.723812, 0.265319, 0.638871, -0.852969, 0.774783, + 0.572904, -0.090979, 0.925143, 0.006058, -0.731884, -0.707746, 0.648065, -0.82153, -0.335773, + 0.803259, 0.514143, 0.914053, 0.346455, 0.023297, 0.464213, -0.452141, 0.597427, -0.488593, + -0.315543, -0.278465, -0.546157, -0.019531, -0.21535, -0.188665, 0.641875, 0.763364, -0.525422, + 0.951076, 0.700252, -0.275276, 0.713931, -0.328066, 0.928574, -0.052725, 0.754741, 0.816023, + 0.687497, 0.392274, 0.140979, -0.80078, 0.011384, 0.62398, 0.95269, 0.357323, -0.615144, + -0.019152, -0.416013, -0.007597, -0.640688, -0.09491, -0.007137, 0.585456, -0.434055, -0.748316, + -0.049244, 0.961552, 0.463585, 0.540704, -0.974173, -0.009904, -0.210756, 0.183684, 0.752024, + 0.944217, 0.411811, 0.656376, -0.24099, -0.097289, -0.927819, -0.697775, -0.814015, 0.589111, + 0.481619, -0.807884, 0.797501, -0.944191, 0.100113, -0.908208, 0.818858, -0.463688, -0.64236, + 0.468722, -0.214439, 0.644675, 0.933411, 0.710891, 0.124532, -0.083649, -0.716428, -0.585575, + -0.594979, 0.606336, 0.041573, -0.663644, 0.899628, -0.315668, 0.981752, 0.951189, 0.17277, + -0.819734, 0.32957, 0.021649, -0.491812, -0.598415, -0.696667, 0.154391, 0.417183, 0.168655, + 0.578651, -0.365102, -0.360652, 0.978999, -0.758218, -0.921406, 0.973129, 0.61973, -0.167266, + 0.305757, -0.314692, -0.138539, 0.138633, -0.343541, 0.070251, -0.375669, -0.827645, 0.466218, + -0.73369, -0.977016, 0.197869, 0.731623, 0.347142, -0.707575, 0.60227, -0.289539, -0.123552, + 0.595348, 0.392983, -0.35253, 0.607584, -0.266472, -0.268953, 0.689685, -0.226187, -0.019995, + 0.93553, 0.961883, 0.2355, 0.752106, -0.141065, -0.460166, 0.935344, 0.524776, 0.683686, + -0.484155, 0.523446, 0.818557, 0.095664, 0.666534, -0.907357, 0.395485, -0.246973, 0.908658, + 0.360957, 0.990203, -0.347617, 0.091966, 0.711833, -0.723197, -0.348788, -0.800193, -0.750775, + 0.442925, -0.302016, 0.653944, 0.092322, 0.352172, 0.106472, -0.937157, -0.150777, -0.549165, + -0.396143, 0.804628, -0.773805, -0.730162, -0.320688, -0.443797, 0.246831, 0.641657, 0.156934, + 0.017611, 0.480324, 0.59717, 0.035164, -0.675273, -0.866508, 0.997924, 0.325243, 0.915514, + -0.383813, 0.274951, -0.526598, -0.526457, -0.457593, 0.999434, 0.729075, -0.615401, -0.70544, + 0.329846, -0.235801, 0.047824, 0.127678, -0.875614, 0.220874, -0.008738, -0.699876, -0.988927, + 0.510604, -0.914422, -0.450489, 0.607825, -0.66634, -0.473586, -0.630103, 0.588654, 0.309384, + 0.103211, 0.352104, 0.286095, -0.211282, -0.092163, -0.625936, -0.469711, 0.015434, -0.12136, + 0.251739, 0.474641, 0.767101, 0.958209, -0.076001, 0.394303, -0.809912, 0.578733, -0.26738, + -0.79349, -0.778618, -0.833704, -0.461882, 0.45662, -0.815636, -0.118029, -0.15541, 0.367843, + -0.407661, 0.506614, -0.618424, 0.587577, -0.996438, -0.681053, 0.350752, 0.153453, 0.700462, + 0.520849, -0.833261, 0.786499, -0.259506, -0.188861, -0.425706, -0.173395, -0.933621, 0.077315, + 0.7535, -0.199869, 0.768933, -0.451926, 0.403935, 0.098866, -0.388114, 0.974874, 0.082197, + 0.044527, -0.108025, -0.054178, 0.806154, -0.152195, 0.60052, 0.362682, 0.652205, -0.757899, + -0.876272, -0.328348, -0.279148, 0.952832, 0.985358, -0.238443, -0.479145, -0.004225, 0.382728, + 0.341778, 0.188762, 0.734428, 0.1063, 0.809151, 0.243595, -0.088896, 0.832553, 0.032513, + 0.039904, -0.193261, 0.587355, -0.296525, 0.780143, 0.53389, -0.016037, -0.16394, 0.391842, + -0.976496, -0.330752, -0.353475, -0.122502, -0.478543, -0.431925, 0.475547, -0.105995, -0.693086, + -0.072238, 0.322886, -0.40514, 0.850813, -0.694167, 0.870704, 0.38492, -0.57478, -0.946702, + 0.390084, -0.18646, 0.296295, 0.426994, -0.677964, 0.117538, -0.213134, -0.900418, 0.176429, + 0.213723, -0.764982, 0.940588, 0.524388, 0.568506, -0.871346, -0.864049, 0.431974, 0.577498, + -0.857611, 0.96029, -0.220372, -0.810706, -0.733654, -0.232006, 0.526271, -0.689688, 0.736787, + 0.999325, 0.940049, 0.455184, -0.408504, -0.380154, 0.71802, -0.208843, 0.153017, 0.999536, + -0.994052, -0.228352, -0.395342, -0.161871, 0.041191, -0.216614, 0.970741, 0.405543, -0.628292, + 0.968976, -0.277556, 0.143997, 0.093348, -0.735015, 0.508765, -0.607535, -0.890911, 0.839405, + 0.598785, -0.418578, -0.715773, 0.903051, 0.353602, -0.663785, -0.830919, -0.413732, -0.555741, + 0.07089, 0.095735, -0.978528, 0.501744, 0.509437, -0.906182, 0.804016, -0.398202, 0.514713, + 0.980805, 0.592329, 0.671452, 0.035188, 0.146477, -0.850652, -0.725498, 0.805484, -0.913913, + 0.430671, -0.589204, 0.866922, 0.737803, -0.225983, -0.127883, -0.693704, 0.932703, -0.602681, + 0.356951, 0.700753, -0.962876, -0.983552, -0.701832, -0.150116, 0.621673, -0.30434, -0.412991, + 0.665442, 0.802009, 0.526977, 0.864144, -0.90168, -0.8918, 0.166148, -0.839018, -0.279148, + 0.608713, 0.971678, -0.200975, -0.881936, -0.493436, 0.97184, -0.185194, -0.930016, -0.529474, + -0.623732, -0.261024, -0.724014, -0.338466, 0.916783, -0.473575, -0.214859, 0.561455, -0.934475, + -0.525186, -0.084966, 0.786361, 0.139087, -0.004944, -0.331822, 0.463106, -0.429826, -0.156465, + -0.43098, 0.373768, 0.997429, -0.754498, -0.070459}; + const std::vector wanted_output{ + -0.158781, 0.339088, 0.242371, 0.287525, -0.518598, 0.103776, 0.077425, -0.050428, -0.525082, + -0.462895, 0.265964, 0.497219, -0.417559, -0.241535, -0.077813, -0.140323, -0.503913, 0.543978, + -0.13754, 0.732204, 0.021422, -0.380874, -0.048708, -0.252582, 0.23193, 0.274253, 0.192815, + 0.061063, 0.004126, -0.398064, 0.42952, 0.792149, -0.090592, 0.489073, 0.299358, 0.394151, + -0.455666, 0.180361, 0.015828, -0.021997, -0.510591, -0.39283, 0.363054, 0.564237, -0.334341, + -0.077146, 0.089868, 0.001473, -0.478947, 0.570949, 0.008552, 0.749676, 0.008358, -0.210716, + -0.151554, -0.183796, 0.047026, 0.264772, 0.153312, 0.075085, 0.070834, -0.349172, 0.449436, + 0.745026, -0.269232, -0.05752, 0.192779, -0.008401, -0.533401, 0.227068, 0.129294, -0.106816, + -0.471229, -0.553194, 0.038064, 0.354971, -0.471125, -0.459132, -0.369843, -0.403598, -0.488842, + 0.453495, -0.240595, 0.708826, 0.195513, -0.510556, 0.046987, -0.310236, 0.426265, 0.434372, + 0.280162, -0.124943, 0.052056, -0.47413, 0.337153, 0.856322, -0.196414, 0.077529, 0.089921, + 0.052089, -0.34591, -0.017118, 0.211545, 0.050582, -0.313165, -0.415551, 0.122811, 0.436099, + -0.393441, -0.191695, -0.103486, -0.122094, -0.492241, 0.537666, -0.192587, 0.695024, 0.037657, + -0.544972, -0.019753, -0.287452, 0.166765, 0.245421, 0.109907, 0.030653, -0.055387, -0.460686, + 0.39897, 0.517616, -0.288291, -0.033346, 0.023984, -0.231151, -0.005059, 0.054023, 0.270191, + 0.110243, -0.152117, -0.318908, 0.058648, 0.185821, -0.121983, 0.070955, 0.17898, -0.186636, + -0.371864, 0.345633, -0.033738, 0.573917, 0.031485, -0.371776, -0.128918, -0.128757, -0.182954, + 0.178932, 0.123561, 0.124957, 0.034452, -0.381554, 0.334709, 0.321725, -0.178372, -0.113992, + -0.083576, -0.061619, -0.121708, 0.1656, 0.038426, 0.173336, -0.070506, -0.303166, -0.071284, + 0.183717, -0.024449, 0.17193, 0.106481, -0.146109, -0.170739, 0.344919, 0.159869, 0.659056, + -0.054896, -0.40242, -0.174017, -0.140637, 0.027877, 0.06028, 0.180356, 0.186467, 0.067826, + -0.467057, 0.146475, 0.328883, -0.047198, 0.091518, 0.107881, 0.160144, -0.222202, 0.293594, + 0.085136, 0.058728, -0.187287, -0.362244, -0.136424, 0.298025, 0.085679, 0.157913, 0.061703, + -0.185191, 0.027001, 0.360467, 0.270387, 0.543629, 0.021561, -0.160493, -0.147749, -0.014022, + -0.205331, -0.026019, 0.176185, 0.206358, 0.23898, -0.465957, 0.230611, 0.114993, -0.061984, + 0.059072, -0.083623, -0.015955, -0.19996, 0.333497, 0.052512, 0.02781, -0.205183, -0.369511, + -0.299508, 0.271739, -0.038804, 0.040138, -0.080336, -0.252254, 0.054166, 0.354063, 0.366507, + 0.36058, -0.08772, -0.032919, 0.017886, 0.006786, 0.025354, 0.035917, 0.019494, 0.052418, + 0.145142, -0.29821, -0.145053, 0.180809, -0.100563, 0.066262, -0.242791, -0.196828, -0.126783, + 0.118879, 0.201383, 0.093447, -0.067219, -0.279325, -0.315101, 0.303436, -0.087039, 0.046376, + -0.075124, -0.164907, -0.030149, 0.440128, 0.272536, 0.337236, -0.121564, -0.117122, 0.07466, + -0.075525, -0.024209, 0.125253, -0.157114, 0.036177, -0.009076, -0.255674, -0.226204, 0.101145, + -0.139521, 0.045455, -0.230162, -0.226109, -0.102365, 0.096492, 0.189639, 0.019427, -0.145998, + -0.361325, -0.312883, 0.193068, -0.048699, 0.00754, -0.074546, -0.146933, 0.044337, 0.390307, + 0.254656, 0.263596, -0.175824, -0.108096, 0.08234, -0.045354, -0.040152, 0.029501, -0.061596, + 0.10121, 0.008097, -0.27933, -0.207802, 0.046172, -0.104315, 0.157611, -0.174734, -0.101028, + -0.204479, 0.146033, 0.132718, 0.030688, -0.18441, -0.327724, -0.236692, 0.270148, -0.061538, + 0.022303, -0.037513, -0.180758, -0.006536, 0.419835, 0.268404, 0.353178, -0.141749, -0.082206, + 0.038089, -0.051444, 0.003986, 0.090523, -0.050681, 0.112151, 0.034533, -0.246962, -0.17163, + 0.222761, -0.115937, -0.047393, -0.171848, -0.162813, -0.165893, 0.209443, 0.083359, 0.079931, + -0.093733, -0.283973, -0.305252, 0.249409, -0.052541, 0.103856, -0.012397, -0.244659, 0.05774, + 0.412275, 0.253775, 0.342714, -0.092227, -0.155144, -0.0435, 0.068024, 0.041619, 0.042865, + 0.062258, 0.071884, 0.077644, -0.260711, -0.159327, 0.080862, -0.170049, 0.103528, -0.060792, + -0.217601, -0.073506, 0.150093, 0.252749, 0.109269, -0.080365, -0.179721, -0.230715, 0.179823, + -0.112967, -0.027307, -0.12601, -0.28515, -0.100469, 0.29735, 0.09295, 0.403604, -0.138838, + -0.1257, 0.104238, -0.081559, -0.082075, 0.189212, -0.116544, -0.044075, -0.161931, -0.371807, + -0.140244, 0.194034, -0.080369, -0.04408, -0.174347, -0.148965, -0.14016, 0.162722, 0.071524, + 0.030017, -0.122761, -0.258583, -0.219872, 0.162916, -0.024923, 0.106988, -0.020278, -0.294255, + 0.048664, 0.349513, 0.149302, 0.330984, -0.120613, -0.133587, -0.021001, -0.008013, -0.000916, + 0.125409, 0.033889, 0.06463, -0.05571, -0.365994, -0.111889, 0.140979, -0.065082, -0.138684, + -0.158365, -0.108087, -0.009562, 0.087481, 0.085594, 0.056136, -0.037483, -0.259167, -0.146408, + 0.087033, -0.01789, 0.085625, 0.09024, -0.252976, 0.083943, 0.228166, 0.102676, 0.215691, + -0.116607, -0.277629, 0.071925, 0.011156, 0.120905, 0.064319, 0.035163, 0.135227, -0.040574, + -0.269825, -0.028774, 0.089508, -0.05775, -0.095696, -0.128437, -0.127273, 0.038326, 0.13376, + 0.12048, 0.073782, 0.040805, -0.149385, -0.068049, 0.088591, 0.044398, 0.078791, 0.066473, + -0.229997, 0.038546, 0.193473, 0.110402, 0.282876, -0.160652, -0.223908, 0.056352, 0.017722, + 0.033147, 0.112874, -0.079185, 0.118674, -0.057841, -0.303167, -0.000252, 0.131786, -0.043215, + -0.092368, -0.161977, -0.097374, 0.011794, 0.108479, 0.119214, 0.099642, 0.015128, -0.156169, + -0.05639, 0.171455, -0.040227, 0.066255, 0.018425, -0.210203, 0.014362, 0.232322, 0.112702, + 0.284291, -0.209256, -0.258651, 0.017586, 0.011763, 0.072131, 0.07908, -0.081976, 0.114207, + -0.14894, -0.35452, -0.03082, 0.109511, -0.019309, -0.149946, -0.164195, -0.083178, -0.056755, + 0.084911, 0.101991, 0.100408, 0.011722, -0.206644, -0.070779, 0.178385, -0.022814, 0.08822, + 0.062346, -0.301005, 0.062504, 0.259131, 0.062295, 0.265171, -0.099428, -0.282337, 0.049255, + -0.014893, 0.091368, 0.119132, -0.026049, 0.165341, -0.076122, -0.264657, 0.029689, 0.153749, + 0.000555, -0.099224, -0.171023, -0.066736, -0.020246, 0.174022, 0.102318, 0.067165, -0.037382, + -0.18174, -0.04055, 0.167022, 0.017545, 0.043052, 0.014825, -0.289044, 0.060102, 0.19746, + 0.160987, 0.277896, -0.190741, -0.218623, -0.039025, 0.035958, 0.054795, 0.068096, -0.057393, + 0.162419, -0.083579, -0.368295, -0.004835, 0.174391, -0.029996, -0.016572, -0.130598, -0.049143, + -0.105261, 0.182965, 0.096419, 0.035015, -0.028659, -0.116738, -0.134348, 0.173971, 0.138233, + 0.093756, 0.012648, -0.2638, 0.218725, 0.198997, 0.149757, 0.256497, -0.065889, -0.212037, + -0.062977, -0.011474, 0.007311, 0.124616, -0.017658, 0.184875, -0.045005, -0.313564, -0.031875, + 0.188968, -0.063346, -0.134718, -0.16977, -0.083869, -0.114086, 0.152285, -0.002869, 0.122199, + 0.039976, -0.097564, -0.161445, 0.207546, 0.026212, 0.2125, 0.06466, -0.299363, 0.198771, + 0.254618, 0.148863, 0.229208, -0.019696, -0.214577, -0.068533, 0.011206, 0.149549, 0.085032, + -0.021475, 0.084124, -0.0298, -0.190376, -0.094645, 0.123921, -0.044715, -0.13685, -0.106524, + -0.125727, -0.014599, 0.076679, 0.025745, 0.074786, 0.037665, -0.095232, -0.052962, 0.065367, + -0.013235, 0.081754, -0.005691, -0.262906, 0.182897, 0.168929, 0.095932, 0.22428, -0.086995, + -0.197, 0.00189, -0.028258, 0.057166, 0.061517, -0.090053, 0.051802, -0.075963, -0.218696, + -0.054802, 0.125312, -0.01774, -0.098737, -0.079996, -0.122284, -0.008481, 0.157815, -0.008704, + 0.133764, 0.06189, -0.079776, -0.046657, 0.1478, -0.021684, 0.104183, 0.035366, -0.219189, + 0.139963, 0.221557, 0.120156, 0.283179, -0.062101, -0.139714, 0.008116, -0.006467, 0.079051, + 0.110057, -0.115079, -0.036428, -0.022515, -0.182321, -0.082779, 0.139639, -0.147948, -0.155381, + -0.071108, -0.178582, 0.038334, 0.127001, -0.041174, 0.017404, -0.029455, -0.203086, -0.116057, + 0.175527, 0.054792, -0.021518, -0.002877, -0.332515, 0.070604, 0.160943, 0.088002, 0.212041, + -0.038295, -0.088996, 0.071917, -0.067807, 0.066308, -0.042611, 0.056537, -0.023161, -0.037389, + -0.144841, 0.014446, 0.178734, -0.034166, -0.079267, -0.076041, -0.10155, -0.014805, 0.109286, + -0.097749, 0.086603, 0.040163, -0.138125, -0.109382, 0.193238, 0.043817, 0.098765, 0.050168, + -0.231608, 0.199231, 0.198735, 0.14117, 0.234898, -0.01993, -0.065978, 0.008336, -0.070702, + -0.033391, -0.012824, 0.03624, 0.04705, -0.076793, -0.149755, -0.039381, 0.114412, -0.093497, + -0.173473, -0.121795, -0.207862, -0.053075, 0.068621, -0.082319, 0.093644, 0.103307, -0.195087, + -0.029201, 0.161517, 0.020541, 0.077586, 0.02744, -0.269234, 0.155962, 0.207148, 0.007916, + 0.198648, -0.023807, -0.066169, 0.048344, -0.060361, 0.105307, -0.003108, 0.027304, 0.004624, + -0.055047, -0.194494, -0.018211, 0.066025, -0.098324, -0.092789, -0.116507, -0.266891, -0.038974, + 0.146056, -0.049213, 0.048266, 0.152842, -0.155791, -0.142776, 0.103775, 0.101596, 0.046399, + -0.024021, -0.261274, 0.186986, 0.131752, 0.076908, 0.214242, -0.031061, -0.042297, 0.111051, + -0.040216, 0.026532, -0.012456, 0.013029, 0.037313, -0.030589, -0.237959, -0.090892, 0.052148, + -0.091823, -0.133117, -0.108542, -0.134395, -0.056631, 0.092519, -0.122164, 0.095026, 0.024357, + -0.161405, -0.022564, 0.219939, -0.08021, 0.058732, -0.027537, -0.24098, 0.094285, 0.237185, + 0.054732, 0.189533, -0.011217, -0.054354, 0.091562, -0.055496, 0.072422, -0.020449, 0.015701, + -0.037897, -0.042875, -0.109062, 0.025476, 0.054503, -0.092777, -0.041538, -0.122864, -0.162172, + -0.032127, 0.081565, -0.010296, 0.070265, 0.012484, -0.144726, -0.10446, 0.259688, -0.056575, + 0.033004, -0.050751, -0.22743, 0.11768, 0.140878, 0.091693, 0.180342, -0.064718, -0.117765, + 0.066825, -0.085957, 0.029745, 0.027964, -0.037318, -0.00255, -0.120479, -0.196122, -0.023491, + 0.05926, -0.046436, -0.035444, -0.072495, -0.153789, -0.00644, 0.049863, -0.069887, 0.076699, + 0.000836, -0.112662, -0.074935, 0.182136, -0.033418, 0.065684, 0.048196, -0.216689, 0.184647, + 0.103882, 0.078046, 0.21206, -0.032372, -0.136219, 0.077856, -0.112517, -0.012689, 0.001886, + 0.016847, 0.022234, -0.067336, -0.133251, -0.042253, 0.128984, 0.01061, -0.042824, -0.114446, + -0.185675, -0.008219, 0.11701, -0.079237, 0.069961, -0.09068, -0.113695, -0.03128, 0.199141, + -0.062696, 0.084637, 0.047261, -0.112961, 0.117964, 0.105151, 0.09923, 0.09602, 0.034937, + -0.03481, 0.054905, -0.068179, 0.014565, -0.046948, -0.038876, -0.026029, -0.020893, -0.066134, + -0.000449, 0.067028, 0.051926, -0.057454, -0.116369, -0.209811, 0.002254, 0.115399, -0.015377, + 0.115959, -0.082567, -0.112568, -0.000783, 0.133951, -0.01905, 0.023204, -0.008532, -0.129155, + 0.167889, 0.015584, 0.137554, 0.13659, -0.013469, -0.07615, 0.094403, -0.038965, -0.002615, + -0.053655, -0.051297, 0.015898, -0.007128, -0.086597, -0.053028, 0.18891, 0.042806, -0.071943, + -0.13431, -0.18767, -0.003635, 0.099373, -0.06506, 0.112324, -0.072373, -0.11289, 0.011739, + 0.156097, -0.082494, 0.098741, 0.065913, -0.047739, 0.115645, 0.108624, 0.093534, 0.104317, + 0.018368, -0.080863, 0.087548, -0.062653, 0.009339, -0.047314, 0.009249, 0.045564, -0.016058, + -0.00761, -0.013518, 0.080114, 0.059674, -0.051843, -0.108608, -0.12032, -0.09771, 0.023744, + -0.083942, 0.121881, -0.103431, -0.210677, 3.5e-05, 0.209184, -0.137823, 0.067244, 0.085321, + -0.09986, 0.150889, 0.170226, 0.051082, -0.001572, 0.109838, 0.004896, 0.051361, -0.117813, + 0.046406, -0.071976, 0.048376, 0.020796, -0.055644, 0.025009, 0.050854, -8.2e-05, 0.02269, + -0.111266, -0.053432, -0.161547, -0.074208, 0.017939, -0.005826, 0.160668, -0.054188, -0.183462, + -0.01856, 0.197642, -0.152378, 0.012945, 0.019284, -0.162501, 0.14987, 0.127135, 0.063544, + 0.071648, 0.084068, -0.055864, 0.062001, -0.128121, 0.062539, -0.008512, 0.013362, -0.030699, + -0.084446, -0.050382, 0.014414, 0.079712, 0.015999, -0.026477, -0.108449, -0.106905, -0.017333, + 0.016271, -0.059679, 0.16131, -0.104931, -0.135903, 0.024951, 0.246496, -0.171755, 0.063316, + 0.049407, -0.034183, 0.118223, 0.123815, 0.08988, 0.081996, -0.008502, -0.048138, -0.020764, + -0.0968, 0.006038, -0.025236, -0.047453, 0.000187, -0.107504, -0.026087, -0.034381, 0.059531, + 0.03084, -0.124816, -0.073671, -0.162952, 0.049899, 0.080381, -0.050426, 0.116527, -0.082029, + -0.09694, -0.036088, 0.136994, -0.133952, -0.011455, 0.021629, -0.113627, 0.074762, 0.093567, + 0.112964, 0.152556, -0.011369, -0.080629, 0.056625, -0.063883, -0.008712, -0.058121, -0.068169, + 0.011214, -0.071434, 0.000721, 0.030899, 0.148154, -0.017376, -0.060129, -0.109806, -0.189921, + -0.011302, 0.056325, -0.040186, 0.104263, -0.104762, -0.166594, -0.098918, 0.214105, -0.138256, + -0.01977, 0.020929, -0.093823, 0.143255, 0.086538, 0.093542, 0.139558, -0.030642, -0.060237, + 0.076012, -0.07811, -0.017372, 0.012159, -0.007603, 0.02418, -0.051013, -0.049067, -0.021626, + 0.099781, -0.008388, 0.00279, -0.129409, -0.150179, -0.046003, 0.049295, -0.006323, 0.095609, + -0.085256, -0.161749, -0.122896, 0.250578, -0.015059, 0.029537, 0.024091, -0.156022, 0.094751, + 0.150719, 0.106621, 0.101855, -0.058738, -0.05193, 0.082546, -0.049415, 0.008465, -0.019451, + -0.057622, -0.001909, -0.031808, -0.038142, 0.002876, 0.075342, 0.022862, -0.018226, -0.115263, + -0.132392, -0.0102, 0.035092, -0.030518, 0.063758, -0.122868, -0.074409, -0.070683, 0.167142, + -0.112414, -0.003544, -0.020488, -0.158591, 0.063571, 0.079115, 0.100419, 0.086048, -0.007643, + -0.072631, 0.029592, -0.04066, 0.046593, -0.011513, -0.080229, -0.015203, -0.038802, 0.020801, + -0.050957, 0.045109, 0.037569, 0.008939, -0.116838, -0.165217, -0.027548, 0.078936, -0.016033, + 0.082877, -0.135589, -0.085767, -0.103587, 0.211467, -0.073639, -0.021385, 0.040712, -0.141607, + 0.068646, 0.097454, 0.114135, 0.106127, 0.002071, 0.001364, -0.018277, -0.041434, 0.010276, + 0.021182, -0.05985, 0.021213, -0.020363, -0.015491, 0.012717, 0.070082, 0.025361, -0.061048, + -0.129496, -0.149102, -0.072135, 0.021202, -0.011017, 0.078346, -0.139845, -0.130221, -0.136553, + 0.200067, -0.056429, 0.015532, 0.039178, -0.165934, 0.175147, 0.113012, 0.040956, 0.050195, + 0.03295, -0.113459, 0.008992, -0.050813, -0.001081, 0.002697, -0.013165, 0.100959, -0.03663, + -0.0216, 0.029641, 0.06468, 0.010866, -0.048716, -0.138007, -0.221964, 0.004465, 0.04929, + -0.025723, 0.075135, -0.13433, -0.065191, -0.070624, 0.103352, -0.096765, 0.026557, -0.005523, + -0.1892, 0.064058, 0.055404, 0.027579, 0.094282, 0.009643, -0.061186, 0.031005, -0.084485, + 0.07681, 0.032676, -0.09493, 0.011735, -0.036966, 0.016183, -0.008082, 0.071245, -0.02727, + -0.041265, -0.164924, -0.190208, -0.062073, -0.008488, 0.052062, 0.070165, -0.087969, -0.12753, + -0.021673, 0.219697, -0.026548, -0.025999, -0.051584, -0.137376, 0.057402, 0.120652, -0.017221, + 0.122753, -0.063174, -0.114364, 0.064718, -0.114792, -0.000564, -0.00699, -0.031133, 0.063868, + -0.05197, -0.034959, -0.007691, 0.111812, 0.066386, 0.071336, -0.090824, -0.135655, -0.045961, + 0.033924, -0.00936, 0.024418, -0.121659, -0.034124, 0.006249, 0.194707, -0.052934, 0.017274, + 0.001884, -0.166482, -0.000687, 0.046261, 0.09384, 0.162702, -0.024076, -0.046635, 0.005918, + -0.014352, 0.003012, -0.01672, -0.097432, -0.08366, -0.062894, -0.046492, -0.007049, 0.055918, + 0.021095, 0.065642, -0.069488, -0.15345, -0.098274, 0.098724, 0.043707, 0.044304, -0.043641, + -0.035827, -0.023595, 0.233844, -0.047323, -0.013674, 0.009954, -0.194491, 0.053684, 0.046692, + 0.106558, 0.108484, -0.014578, -0.005094, 0.043489, -0.000902, 0.027137, 0.051371, -0.055386, + -0.017806, -0.0339, -0.023361, -0.041088, 0.074227, 0.012785, 0.039616, -0.086285, -0.202251, + -0.099234, 0.033348, 0.000215, 0.043938, 0.000275, -0.04219, -0.069708, 0.149026, -0.047984, + -0.021757, -0.065994, -0.143282, 0.122371, 0.029141, 0.064651, 0.001559, -0.015933, -0.015027, + 0.074169, -0.030885, -0.016198, 0.074261, -0.083992, 0.022724, -0.042114, -0.062539, -0.025668, + 0.014826, 0.036168, -0.026454, -0.116455, -0.167768, -0.090264, 0.088275, -0.044213, 0.019877, + -0.05087, -0.096065, -0.043006, 0.109213, -0.092837, 0.003245, -0.012361, -0.115664, 0.022019, + 0.056132, -0.002059, 0.076781, -0.015144, -0.055793, 0.137571, -0.020764, 0.00252, -0.002852, + -0.062766, 0.018906, 0.025005, 0.041367, 0.062147, 0.013067, 0.037696, 0.054158, -0.038451, + -0.164928, -0.131786, 0.082023, -0.027725, 0.027954, -0.007946, -0.095583, -0.089475, 0.140525, + -0.057903, -0.020916, -0.006935, -0.127151, 0.108033, 0.029193, 0.040226, 0.002643, -0.016428, + 0.006529, 0.147746, -0.027844, -0.039822, 0.092244, -0.023074, 0.025687, -0.018643, -0.016135, + 0.038074, 0.002549, 0.05149, 0.017435, -0.064315, -0.132366, -0.119005, 0.031717, -0.028809, + 0.051723, -0.044964, -0.088677, -0.025435, 0.137504, -0.038394, 0.028846, 0.018083, -0.151225, + 0.132842, 0.04023, 0.015624, 0.048275, -0.031385, -0.071248, 0.099382, -0.040175, -0.037449, + 0.035623, -0.022037, 0.032237, -0.037602, -0.021009, 0.022288, 0.046168, 0.020276, 0.066244, + -0.055417, -0.158245, -0.101191, 0.116137, -0.000133, -0.009572, -0.018409, -0.088962, -0.057486, + 0.179611, -0.043539, -0.027113, -0.008272, -0.138965, 0.052259, 0.035125, 0.038172, 0.059936, + -0.002774, 0.012993, 0.122592, -0.022448, -0.063555, 0.027133, -0.05415, 0.011756, 0.0058, + -0.08083, 0.034306, 0.011592, 0.008827, 0.05891, -0.054791, -0.182615, -0.13639, 0.066672, + -0.053945, -0.031392, -0.014882, -0.060996, -0.015615, 0.166228, -0.074144, -0.008464, -0.012113, + -0.112835, 0.067758, 0.041277, -0.00476, 0.036853, 0.010722, 0.006811, 0.113298, -0.046102, + -0.001141, 0.040193, -0.04424, 0.016547, -0.007543, -0.039322, 0.034494, -0.009404, -0.028598, + 0.026111, -0.07762, -0.16463, -0.077446, 0.027464, -0.044724, -0.016233, -0.061543, -0.043802, + -0.042374, 0.129208, -0.05167, 0.003746, -0.028987, -0.171249, 0.076482, 0.022464, 0.029242, + 0.091802, -0.052286, -0.056803, 0.106574, -0.007011, 0.011061, 0.008698, -0.068821, 0.016184, + -0.021945, -0.045913, 0.048025, 0.021247, 0.013865, 0.020048, -0.011563, -0.159282, -0.064702, + 0.058788, 0.017844, -0.007746, -0.0312, -0.086619, -0.050858, 0.083755, -0.003743, -0.006089, + -0.032974, -0.18347, 0.068996, 0.000407, 0.023009, 0.060856, -0.023234, -0.033573, 0.103334, + -0.045665, 0.017356, 0.052418, -0.069708, -0.02211, -0.026527, -0.010102, 0.00403, 0.060683, + 0.056325, -0.079839, -0.088527, -0.162039, -0.073821, 0.070449, -0.043639, -0.027049, -0.021887, + -0.084714, -0.022946, 0.095991, -0.048792, 0.034472, -0.047607, -0.107541, 0.077885, 0.004788, + 0.014612, 0.098561, 0.028058, -0.023259, 0.100536, 0.020884, 0.024424, 0.038532, -0.046749, + 0.009928, -0.035025, -0.060103, 0.060047, -0.021811, 0.018502, -0.000808, -0.018194, -0.213793, + -0.099558, 0.02786, -0.051579, 0.005401, -0.072685, -0.110638, -0.099105, 0.015413, 0.021288, + -0.038943, -0.067355, -0.172468, 0.10336, -0.014359, -0.001943, 0.072412, -0.059379, -0.045212, + 0.108772, -0.0236, 0.004583, 0.03065, -0.081004, -0.00441, 0.053086, -0.052299, 0.040808, + 0.050152, 0.047489, 0.060687, 0.030881, -0.142273, -0.097836, 0.022845, -0.039654, -0.041952, + -0.047937, -0.093591, -0.059248, 0.075646, 0.02635, -0.011594, -0.039926, -0.136553, 0.059061, + 0.009341, 0.047944, 0.134998, -0.0595, -0.036316, 0.079329, 0.004815, -0.008048, 0.025257, + -0.070289, -0.016394, -0.031227, -0.069924, 0.010444, 0.023325, 0.026929, 0.022622, -0.026749, + -0.144826, -0.070413, 0.048268, -0.018273, 0.009575, -0.044418, -0.122163, -0.0809, 0.115587, + -0.026817, 0.011333, 0.024024, -0.101138, 0.082806, 0.038342, 0.069071, 0.097387, -0.032006, + -0.054862, 0.081128, -0.002181, 0.01292, 0.049274, -0.062014, 0.035981, -0.02126, -0.031382, + 0.015827, 0.031201, 0.057924, -0.036521, -0.030018, -0.155915, -0.089925, -0.002173, -0.051156, + 0.025642, -0.080514, -0.075401, -0.04938, 0.06657, -0.046172, 0.003415, -0.040582, -0.122823, + 0.067175, 0.024143, 0.018804, 0.10709, -0.045439, -0.077884, 0.028025, 0.021764, 0.01374, + 0.013028, -0.079812, -0.009749, -0.014556, -0.030617, 0.048983, -0.00111, 0.026381, -3.5e-05, + -0.035349, -0.15899, -0.094914, -0.011606, -0.032023, -0.013987, -0.071297, -0.146075, -0.072578, + 0.047552, -0.034267, 0.021674, -0.016074, -0.108995, 0.082678, 0.036677, 0.000454, 0.106914, + -0.05531, -0.121952, 0.101644, -0.050117, 0.028174, 0.026952, -0.069097, 0.016414, -0.002029, + -0.000301, 0.029369, 0.017058, 0.043415, 0.00481, -0.036791, -0.166089, -0.087528, 0.050115, + -0.023179, -0.011572, -0.069863, -0.085932, -0.012041, 0.094889, -0.034236, -0.07585, -0.017601, + -0.136179, 0.059722, -0.018617, -0.023548, 0.149742, -0.037081, -0.105518, 0.066962, 0.010077, + 0.007991, 0.023358, -0.094924, -0.042376, -0.01725, -0.118907, 0.055309, 0.095411, 0.033245, + 0.003007, -0.04436, -0.199765, -0.08477, 0.046768, -0.022612, 0.020633, -0.054547, -0.091726, + -0.09926, 0.136947, -0.037637, -0.048328, -0.031489, -0.072062, 0.107372, 0.033461, 0.045947, + 0.069246, -0.01682, -0.019761, 0.112469, 0.013379, -0.026796, 0.080952, -0.044027, -0.015191, + -0.013187, -0.025602, 0.031035, -0.00382, 0.024068, -0.000938, -0.054297, -0.200292, -0.097397, + 0.048894, 0.006789, -0.024901, -0.051569, -0.102311, -0.079148, 0.055281, -0.032981, -0.047366, + -0.032391, -0.099992, 0.125702, -0.002496, -0.013227, 0.087813, 0.020178, -0.032203, 0.109033, + 0.00082, -0.022363, 0.02816, -0.044008, -0.015512, 0.028672, -0.016756, 0.06639, 0.065717, + 0.033846, -0.014709, -0.081556, -0.176647, -0.066301, -0.023841, 0.014336, 0.015943, -0.09641, + -0.100895, -0.08698, 0.103918, -0.054077, -0.027566, -0.025642, -0.061917, 0.102957, 0.059876, + 0.014847, 0.074028, 0.012493, -0.038315, 0.047657, -0.040724, -0.018046, 0.020984, -0.033565, + -0.016864, -0.023249, -0.026373, 0.051651, 0.044972, 0.026389, 0.026197, -0.045453, -0.189339, + -0.088398, 0.010459, -0.01043, 0.021129, -0.048858, -0.093611, -0.065143, 0.100047, -0.05434, + -0.036641, -0.014698, -0.07299, 0.127912, 0.036057, 0.033765, 0.098356, 0.007088, -0.033688, + 0.09445, 0.011388, -0.00811, 0.025037, -0.028462, -0.039732, -0.000144, -0.048271, 0.069905, + 0.056927, 0.013563, 0.014723, -0.023999, -0.207074, -0.072579, 0.014117, -0.023163, -0.01258, + -0.013131, -0.073541, -0.074567, 0.047523, -0.057086, -0.018113, -0.015207, -0.093382, 0.116486, + 0.021093, 0.016639, 0.106101, 0.014115, -0.044563, 0.090171, -0.004922, 0.042153, 0.056725, + -0.077894, -0.044775, -0.016838, -0.040519, 0.056447, 0.044359, 0.045997, 0.01778, -0.03347, + -0.138637, -0.094344, 0.002398, -0.042063, 0.013854, -0.03226, -0.108751, -0.067957, 0.125767, + -0.065298, 0.007788, 0.028486, -0.03011, 0.110358, 0.099962, 0.054944, 0.08722, -0.002406, + -0.044423, 0.080273, 0.004592, -0.011193, 0.012809, -0.030446, -0.004411, 0.004679, 0.009373, + 0.093124, 0.000649, 0.036132, 0.049845, -0.006559, -0.189582, -0.076821, 0.041726, -0.031828, + -0.028192, -0.042201, -0.0611, -0.04633, 0.042064, -0.077063, 0.002124, 0.006676, -0.075741, + 0.077989, 0.008873, 9.8e-05, 0.112864, -0.019648, -0.078485, 0.089404, -0.005824, 0.018152, + 0.049027, -0.057236, 0.0098, -0.037933, 0.004097, 0.085642, 0.050774, 0.024118, 0.007771, + -0.039057, -0.170774, -0.039909, 0.014148, 0.043489, 0.017312, -0.048524, -0.103821, -0.089051, + 0.096777, -0.013072, -0.007718, -0.030179, -0.082457, 0.107934, 0.055186, 0.000445, 0.121116, + 0.010373, -0.059757, 0.085872, -0.057778, 0.006815, 0.055636, -0.035357, -0.036442, -0.052877, + -0.064097, 0.036849, 0.066105, 0.004775, -0.00866, -0.034207, -0.204357, -0.065466, 0.030754, + 0.013838, -0.0072, -0.084732, -0.050506, -0.104159, 0.099163, -0.103644, 0.028312, 0.001723, + -0.112216, 0.097663, 0.029267, -0.036168, 0.131961, 0.041917, -0.092339, 0.065358, 0.004386, + 0.041769, 0.03948, -0.083474, -0.00792, -0.0619, -0.017241, 0.066401, 0.019858, 0.027102, + 0.007427, -0.017346, -0.168012, -0.050068, 0.004485, 0.037086, 0.0275, -0.054122, -0.078447, + -0.078915, 0.104372, -0.050283, -0.035259, -0.026661, -0.080966, 0.106996, 0.004798, -0.000416, + 0.128298, -0.006679, -0.060658, 0.057153, -0.036562, 0.010051, 0.028431, -0.060797, -0.031684, + -0.077542, -0.099651, -0.004257, 0.080264, 0.027377, 0.022514, -0.051502, -0.158935, -0.037176, + 0.020823, 0.036166, -0.029639, -0.095587, -0.056861, -0.103059, 0.109259, -0.023327, -0.022461, + -0.04819, -0.065125, 0.105247, 0.001209, -0.000397, 0.076797, 0.059909, -0.022549, 0.05305, + 0.000572, -0.002613, 0.005818, -0.059126, -0.009374, -0.042415, -0.039801, 0.025678, 0.056135, + -0.028188, -0.019421, -0.036928, -0.203785, -0.072489, 0.025579, 0.0753, 0.010232, -0.092973, + -0.095268, -0.144657, 0.105712, -0.049539, -0.052931, -0.019035, -0.09126, 0.087336, 0.013489, + -0.043861, 0.097532, 0.002085, 0.003794, 0.118658, -0.058849, -0.002075, 0.038587, -0.027195, + -0.017886, -0.049276, -0.066214, 0.077648, 0.038583, -0.014678, -0.055279, -0.036838, -0.173455, + -0.056449, -0.01537, 0.028772, 0.023095, -0.066521, -0.074534, -0.089891, 0.119043, -0.091926, + -0.013737, -0.022219, -0.051624, 0.108496, 0.034664, -0.012375, 0.113966, 0.003171, -0.059872, + 0.065727, -0.045772, 0.014934, 0.053266, -0.053607, -0.024139, -0.081543, -0.077768, 0.048056, + 0.017193, 0.012161, -0.012858, -0.01593, -0.168992, -0.018439, 0.032136, 0.044839, 0.00797, + -0.064084, -0.039238, -0.114001, 0.102534, -0.051728, -0.028744, -0.035048, -0.086186, 0.098147, + -0.033294, 0.007497, 0.108088, 0.041968, -0.049776, 0.039388, -0.017656, 0.02885, 0.023152, + -0.1142, -0.022867, -0.060068, -0.067727, 0.026425, 0.08257, 0.041122, -0.048638, -0.014877, + -0.182919, 0.004955, 0.009006, 0.018821, -0.008272, -0.122647, -0.043001, -0.113401, 0.071487, + -0.081114, -0.003106, -0.052732, -0.051064, 0.086836, -0.003023, 0.033155, 0.121867, 0.050717, + -0.031755, 0.021745, -0.000959, -0.011956, 0.030317, -0.079091, -0.048881, -0.049086, -0.020552, + 0.013895, 0.038744, 0.017181, -0.004527, -0.021011, -0.185545, -0.061318, 0.014684, 0.023777, + 0.01056, -0.074548, -0.029278, -0.089492, 0.130494, -0.092633, 0.004606, -0.020809, -0.067007, + 0.135432, 0.051308, 0.032679, 0.091051, 0.025474, -0.026297, 0.053699, -0.035348, 0.032773, + 0.09629, -0.036855, -0.047031, -0.106076, -0.058591, 0.0275, -0.004903, 0.022363, -0.025425, + -0.045999, -0.177956, -0.003033, 0.010181, 0.001029, 0.0096, -0.112223, -0.054759, -0.101341, + 0.087291, -0.080718, -0.017292, -0.039131, -0.028525, 0.053403, -0.022427, 0.044622, 0.117195, + 0.019426, -0.075011, 0.048632, -0.010569, 0.026285, -0.000958, -0.100384, -0.03268, -0.033563, + -0.033942, 0.01039, 0.069087, 0.027255, -0.059133, -0.022161, -0.172581, -0.035162, 0.023657, + 0.029542, 0.011622, -0.041615, -0.061921, -0.097135, 0.078823, -0.070362, -0.050091, -0.049858, + -0.073005, 0.05953, 0.036901, 0.008709, 0.088521, 0.012583, -0.094942, 0.013704, 0.014987, + 0.016105, 0.028546, -0.067793, -0.042197, -0.093301, -0.074874, 0.041643, 0.000184, 0.070863, + 0.002795, 0.024966, -0.1332, -0.075849, 0.031669, 0.002998, -0.010088, -0.029979, -0.054588, + -0.028783, 0.045636, -0.073154, -0.017754, -0.018389, -0.065726, 0.05124, 0.031915, -0.000939, + 0.064407, -0.011003, -0.071961, 0.027959, -0.025306, -0.005706, 0.03051, -0.045343, -0.038212, + -0.096221, -0.002833, 0.041264, -0.013986, 0.038769, -0.052035, -0.042577, -0.157393, -0.043736, + 0.077479, -0.024558, -0.018413, -0.028877, -0.025646, -0.035538, 0.105826, -0.090824, -0.037885, + -0.024649, -0.089929, 0.061387, 0.045353, 0.015331, 0.110476, 0.036924, -0.039994, 0.025678, + 0.012188, 0.055426, 0.033853, -0.080666, -0.068826, -0.059527, -0.043608, 0.064153, -0.015008, + 0.034555, -0.025371, -0.026415, -0.165956, -0.048453, 0.061955, -0.003303, -0.005047, -0.058804, + -0.033942, -0.076971, 0.095233, -0.057184, -0.021848, -0.000741, -0.072902, 0.070791, 0.03296, + 0.022306, 0.056496, 0.009309, -0.060651, 0.026375, 0.018182, 0.038269, 0.050944, -0.049473, + -0.042249, -0.102927, -0.03511, 0.077697, -0.00106, 0.038012, -0.021945, -0.019475, -0.15338, + -0.039264, 0.024405, 0.004351, 0.011137, -0.062137, -0.027394, -0.065152, 0.056007, -0.07251, + -0.04175, -0.055587, -0.046193, 0.070772, 0.020885, 0.020749, 0.0842, 0.003, -0.055548, + 0.011512, -0.01283, -0.012713, 0.02654, -0.102432, -0.054781, -0.041075, -0.042083, 0.059188, + 0.01345, 0.032051, -0.04293, -0.030386, -0.193971, -0.028027, 0.021444, -0.016466, -0.009996, + -0.038846, -0.034581, -0.082711, 0.042666, -0.065359, -0.004301, -0.037893, -0.079865, 0.056321, + 0.015761, -0.025983, 0.083126, 0.012565, -0.060753, 0.03217, -0.007997, 0.03987, 0.057125, + -0.073018, -0.042855, -0.090078, -0.040387, 0.045151, 0.012186, 0.031986, -0.023098, -0.023927, + -0.146809, -0.043757, 0.066476, 0.026795, 0.025176, -0.012018, -0.010532, -0.070875, 0.079803, + -0.078494, -0.00582, -0.024527, -0.06193, 0.039258, 0.008512, 0.029525, 0.112662, -0.007623, + -0.039056, 0.025783, 0.024963, 0.062395, 0.077575, -0.080524, -0.100852, -0.07201, -0.070945, + 0.052084, 0.039401, 0.008409, -0.012292, -0.038464, -0.147485, -0.033791, 0.029608, 0.009188, + -0.017145, -0.012996, -0.046356, -0.083447, 0.060922, -0.034681, -0.012859, -0.031572, -0.062332, + 0.043153, 0.021807, -0.005333, 0.074725, 0.008527, -0.04225, 0.052586, 0.015587, 0.055167, + 0.039999, -0.051819, -0.063914, -0.076972, -0.065376, 0.060516, 0.004394, 0.048821, -0.056742, + -0.049565, -0.143746, -0.051651, 0.013532, 0.019034, 0.0173, -0.034128, -0.072187, -0.064674, + 0.084669, -0.019839, -0.090149, -0.02775, -0.036988, 0.056721, 0.014053, 0.011645, 0.043298, + 0.00341, -0.023914, 0.023442, -0.033307, -0.02495, 0.00669, -0.017937, -0.002107, -0.02849, + -0.03212, 0.08501, 0.038462, 0.040662, -0.001012, -0.003758, -0.185865, -0.03151, 0.021922, + 0.00274, 0.031563, -0.028795, -0.040112, -0.103851, 0.051753, 0.013002, -0.014437, -0.022904, + -0.075731, 0.032984, 0.027281, -0.01473, 0.069634, 0.027254, -0.030882, 0.009688, 0.009957, + 0.036731, 0.088206, -0.08116, -0.058939, -0.087582, -0.011264, 0.064088, 0.003489, 0.052957, + -0.046069, -0.048032, -0.179049, -0.027316, 0.018965, 0.001831, 0.059614, -0.066111, -0.023136, + -0.11061, 0.084387, -0.055881, -0.019845, -0.02351, -0.022746, 0.022063, 0.049041, -0.001369, + 0.03215, -0.010802, -0.031933, 0.000588, -0.015968, 0.047238, 0.039638, -0.029168, -0.026371, + -0.025401, -0.03032, 0.073553, -0.028578, 0.017902, -0.018833, -0.045534, -0.166179, -0.05244, + 0.036771, 0.047267, 0.010419, -0.022849, -0.015154, -0.117897, 0.121481, 0.001623, -0.044239, + -0.051713, -0.068054, 0.061202, 0.038614, -0.006628, 0.053777, 0.035316, 0.026113, 0.024529, + 0.010497, 0.031666, 0.075043, -0.033292, -0.048769, -0.029782, -0.082038, 0.07606, 0.004487, + 0.018386, 0.006636, -0.040092, -0.170003, -0.034412, 0.011535, 0.05154, 0.006957, -0.012431, + -0.057395, -0.141739, 0.097483, -0.013786, -0.034318, -0.014424, -0.07687, 0.047066, 0.056808, + -0.025106, 0.067207, 0.02408, -0.023, 0.032051, -0.03571, 0.020964, 0.080129, -0.047735, + -0.027371, -0.084524, -0.082165, 0.06892, 0.01476, 0.025098, -0.019057, 0.01421, -0.165246, + -0.029118, 0.028268, 0.010553, 0.029353, 0.005263, -0.06013, -0.118088, 0.069818, -0.006282, + -0.008818, 0.009717, -0.058501, 0.061778, 0.040745, -0.012818, 0.066367, 0.016231, -0.027329, + 0.026188, -0.036005, 0.026994, 0.096251, -0.021395, -0.031386, -0.068359, -0.030559, 0.086161, + 0.01878, 0.031142, -0.042903, -0.055374, -0.191748, -0.037266, 0.032735, 0.053487, 0.054516, + -0.002641, -0.050846, -0.113558, 0.134447, 0.002129, -0.073224, -0.015507, -0.050534, 0.057567, + 0.049977, -0.011653, 0.058856, -0.0027, -0.021233, 0.002068, -0.047382, 0.008757, 0.083341, + -0.016547, -0.006022, -0.044061, -0.069581, 0.095431, 0.030409, 0.0536, -0.01096, -0.001388, + -0.132446, -0.064093, 0.047366, 0.009343, 0.056927, -0.004285, -0.05437, -0.122019, 0.11026, + -0.01167, -0.045245, 0.031824, -0.048499, 0.07311, 0.03609, 0.047429, 0.07772, 0.018578, + -0.047069, 0.009545, -0.032789, 0.04226, 0.071685, 0.011392, -0.003812, -0.064665, -0.031408, + 0.060206, 0.042247, 0.041975, -0.046399, -0.066416, -0.164691, -0.02126, 0.055044, 0.056473, + 0.085713, -0.006624, -0.05368, -0.167523, 0.102413, 0.005055, -0.039136, -0.03579, -0.097342, + 0.063288, 0.0488, -0.004426, 0.084587, -0.003139, -0.025952, 0.02647, -0.052536, 0.013938, + 0.080219, -0.018637, -0.053604, -0.047648, -0.054776, 0.080199, 0.027371, 0.028428, -0.025487, + -0.050398, -0.152592, -0.079174, 0.044186, -0.008861, 0.039167, 0.003553, -0.027079, -0.101074, + 0.119052, -0.029782, -0.024432, 0.016981, -0.065688, 0.061594, 0.056398, 0.020148, 0.06845, + 0.058728, -0.02839, -0.006295, -0.026189, 0.056199, 0.073179, 0.018049, -0.015727, -0.057206, + -0.033201, 0.108108, -0.005408, 0.032238, -0.019432, -0.067786, -0.15568, -0.057423, 0.059743, + 0.052743, 0.05776, -0.010851, -0.032824, -0.136258, 0.108188, -0.007971, -0.097768, -0.027584, + -0.093317, 0.088579, 0.023675, 0.00472, 0.078103, 0.044424, -0.026775, 0.002173, -0.014912, + 0.031522, 0.052931, -0.012054, -0.039022, -0.045072, -0.052232, 0.078703, 0.040764, 0.043405, + -0.058064, -0.080683, -0.165649, -0.029284, 0.069697, 0.030317, 0.059448, 0.019348, -0.001174, + -0.110621, 0.098284, -0.03774, -0.072146, -0.046624, -0.068416, 0.060791, 0.036102, -0.007697, + 0.032884, 0.030635, -0.023705, 0.004487, -0.005484, 0.052192, 0.029696, -0.014312, -0.040805, + -0.02479, -0.052478, 0.08496, 0.017469, 0.047982, -0.061533, -0.066088, -0.156476, -0.012988, + 0.029592, 0.044985, 0.060875, -0.022956, -0.037928, -0.131795, 0.059021, -0.031183, -0.06402, + -0.044465, -0.107968, 0.093101, 0.035628, -0.005172, 0.090941, 0.017386, -0.051609, 0.002457, + -0.015629, 0.045957, 0.039822, -0.034271, -0.05198, -0.042988, -0.037042, 0.065308, 0.040962, + 0.034285, -0.045628, -0.085997, -0.123611, -0.054251, 0.037976, 0.014694, 0.033986, -0.011135, + -0.058159, -0.112495, 0.121678, -0.019132, -0.07149, -0.012039, -0.008268, 0.053648, 0.059677, + 0.021028, 0.061277, 0.031466, -0.039157, 0.026946, -0.012027, 0.060694, 0.058122, -0.003134, + -0.031778, -0.028809, -0.066064, 0.080429, 0.006895, 0.034581, -0.060073, -0.05534, -0.154439, + -0.045621, 0.040822, 0.00047, 0.06155, 0.027614, -0.070772, -0.143867, 0.102342, -0.011716, + -0.027793, -0.026204, -0.034849, 0.050381, 0.071248, 0.028183, 0.079793, 0.085361, -0.055388, + 0.032115, -0.017764, 0.075249, 0.099477, 0.005985, -0.019785, -0.028785, -0.017181, 0.072402, + 0.009038, 0.040682, -0.03502, -0.049247, -0.140089, -0.059875, 0.020305, -0.004215, 0.035472, + 0.006869, -0.064238, -0.101549, 0.064601, -0.040421, -0.046638, -0.021533, -0.045894, 0.016216, + 0.040329, 0.025424, 0.051897, 0.02969, -0.058723, 0.021994, -0.018172, 0.067472, 0.056258, + -0.012032, -0.000382, -0.069857, -0.023141, 0.050783, 0.021029, 0.029622, -0.053945, -0.065166, + -0.122557, -0.080222, 0.047178, 0.04013, 0.044113, -0.018551, -0.026289, -0.116135, 0.100774, + -0.042167, -0.080561, -0.013958, -0.072884, 0.113605, 0.033374, 0.008039, 0.078817, 0.07745, + -0.051305, 0.024991, -0.011605, 0.05319, 0.062813, 0.038609, -0.006527, -0.062137, -0.051062, + 0.060795, 0.045265, 0.030665, -0.011748, -0.044725, -0.131522, -0.048987, 0.033121, -0.036909, + 0.012106, 0.015136, -0.017682, -0.081414, 0.033777, -0.015894, -0.052331, -0.032006, -0.040852, + 0.077584, 0.012126, -0.019177, 0.058497, 0.06751, -0.019145, -0.023454, -0.023617, 0.062612, + 0.036946, -0.017394, -0.025955, -0.037282, -0.019487, 0.054032, 0.066358, 0.048045, -0.062779, + -0.086822, -0.104718, -0.036743, 0.030759, -0.00118, 0.014872, 0.000406, -0.062917, -0.097393, + 0.039189, -0.039217, -0.065282, -0.035648, -0.026234, 0.056278, 0.035503, -0.009935, 0.05721, + 0.073841, -0.048525, 0.030722, 0.000659, 0.059212, 0.022324, -0.014421, 0.013896, -0.024974, + -0.001437, 0.043724, 0.017472, 0.046156, -0.061057, -0.088716, -0.128839, -0.057688, 0.010221, + 0.038338, 0.071769, -0.005901, -0.086435, -0.13113, 0.056395, -0.008803, -0.046627, -0.040178, + -0.034154, 0.071121, 0.039997, -0.001126, 0.047401, 0.022001, -0.027437, 0.049925, -0.031167, + 0.060867, 0.051488, -0.017906, -0.008104, -0.005009, -0.034036, 0.072001, 0.05241, 0.031815, + 0.002891, -0.044578, -0.095125, -0.044442, 0.008923, -0.00154, 0.007134, -0.018632, -0.031207, + -0.069157, 0.073847, -0.054461, -0.025997, -0.016829, -0.020787, 0.026311, 0.051531, 0.012465, + 0.078837, 0.045817, -0.044709, 0.015249, -0.058616, 0.05056, 0.063068, -0.013506, -0.019457, + -0.049855, -0.009976, 0.043896, 0.02781, 0.068088, -0.037609, -0.042964, -0.093972, -0.095032, + 0.000978, -0.021793, 0.031827, -0.006359, -0.082678, -0.076578, 0.040938, -0.024498, -0.068801, + -0.00107, -0.012416, 0.083615, 0.040027, -0.007764, 0.080975, -0.024496, -0.027415, -0.01513, + -0.045731, 0.053217, 0.040582, -0.021407, -0.027508, -0.052411, -0.02154, 0.06784, 0.050432, + 0.015832, -0.011728, -0.057023, -0.101498, -0.082072, 0.027096, 0.015795, 0.040435, 0.010961, + -0.027886, -0.070529, 0.086824, -0.02389, -0.041121, -0.024511, 0.004236, 0.078203, 0.039463, + 0.01127, 0.04317, 0.069673, -0.008031, 0.017558, -0.030446, 0.059552, 0.065516, 0.003346, + -0.002176, -0.027696, -0.000728, 0.069616, 0.034194, 0.053477, -0.049146, -0.035513, -0.120383, + -0.082308, 0.027552, -0.015938, 0.019425, 0.021002, -0.055326, -0.071352, 0.027667, -0.009817, + -0.07003, -0.01361, -0.028501, 0.117378, 0.001923, -0.006648, 0.035537, 0.017194, 0.012997, + -0.003234, -0.026773, 0.065471, 0.049397, -0.004876, -0.020444, -0.055579, -0.013059, 0.079835, + 0.049806, 0.041018, 0.003916, -0.030646, -0.092964, -0.0732, 0.019667, 0.017702, 0.034907, + -0.017036, -0.048064, -0.062037, 0.08081, -0.024553, -0.098924, -0.041165, -0.035711, 0.068711, + 0.025547, 0.034887, 0.069158, 0.072253, 0.017129, 0.010801, -0.034497, 0.060104, 0.033168, + -0.015201, -0.047816, -0.0414, -0.017657, 0.039407, 0.063021, 0.043358, -0.06649, -0.026583, + -0.131884, -0.067563, 0.008425, -0.022906, -0.00029, 0.023742, -0.080351, -0.10962, 0.017554, + -0.050314, -0.04199, -0.02238, -0.012048, 0.07808, 0.025841, 0.008359, 0.045602, 0.034417, + 0.003464, 0.04051, -0.051541, 0.03056, 0.054753, -0.023781, -0.01262, -0.044419, -0.027255, + 0.068801, 0.018695, 0.025976, -0.001177, -0.005409, -0.088333, -0.052724, 0.018564, 0.00915, + 0.013376, -0.009773, -0.059993, -0.064185, 0.035778, -0.036454, -0.071315, -0.010482, -0.054659, + 0.070438, -0.00296, 0.010992, 0.112841, 0.026882, -0.000552, 0.006439, -0.049444, 0.047588, + 0.038271, -0.02902, -0.054416, -0.078675, -0.03484, 0.033886, 0.073604, 0.010855, -0.012349, + -0.031346, -0.091038, -0.069265, 0.030467, 0.029571, 0.032316, -0.01326, -0.065485, -0.071207, + 0.050879, -0.036013, -0.067244, -0.027461, -0.060765, 0.098071, 0.030941, 0.002318, 0.084493, + 0.03831, 0.002253, 0.021363, -0.021849, 0.061171, 0.024463, -0.004276, -0.052714, -0.037168, + -0.051542, 0.06331, 0.061744, 0.033746, -0.009143, -0.002745, -0.101482, -0.070683, 0.002908, + -0.017537, 0.010422, -0.023873, -0.069403, -0.086976, 0.065627, -0.051408, -0.061807, 0.01295, + -0.011152, 0.078747, 0.032022, 0.022786, 0.062763, 0.007829, -0.034227, 0.00277, -0.047478, + 0.051384, 0.035935, -0.033176, -0.011581, -0.047742, -0.016927, 0.063408, 0.024393, 0.041713, + -0.044775, -0.020252, -0.103611, -0.068659, 0.015492, -0.003243, 0.047091, -0.009269, -0.082159, + -0.097394, 0.07823, -0.017822, -0.080789, 0.000959, -0.020386, 0.129445, 0.038827, 0.04434, + 0.069418, 0.049629, -0.002335, 0.023021, -0.052788, 0.052094, 0.068812, 0.00411, -0.030837, + -0.058972, -0.01116, 0.064209, 0.029952, 0.038783, -0.033844, -0.010631, -0.09926, -0.061181, + 0.055301, -0.015326, 0.049819, 0.003719, -0.054847, -0.066118, 0.066011, -0.044427, -0.061161, + 0.008184, 0.004924, 0.032655, -0.002839, 0.068373, 0.065145, 0.035979, -0.019921, 0.049453, + -0.001493, 0.034878, 0.028159, -0.039723, -0.005255, 0.009581, 0.018462, 0.039035, 0.069399, + -0.004961, -0.018225, -0.036872, -0.121357, -0.047344, 0.010776, 0.007996, 0.010787, 0.00306, + -0.041059, -0.088038, 0.058991, -0.044097, -0.055067, -0.03228, -0.029748, 0.105895, 0.032802, + -0.002811, 0.072074, 0.043728, 0.00563, -0.000447, -0.078783, 0.041241, 0.039273, -0.005975, + -0.032871, -0.073242, -0.021276, 0.028063, 0.049463, 0.051125, 0.009674, -0.070205, -0.106242, + -0.069832, 0.01798, -0.019046, 0.010738, 0.031192, -0.062413, -0.121729, 0.05573, -0.011004, + -0.053474, -0.008369, -0.018853, 0.114243, 0.004033, 0.015202, 0.049572, 0.05488, -0.017205, + -0.001959, -0.071867, 0.024378, 0.026951, -0.039946, -0.010184, -0.040873, -0.003622, 0.054956, + 0.052977, 0.052182, -0.049699, -0.036439, -0.074304, -0.057375, 0.033917, 0.010975, 0.010053, + 0.008937, -0.053592, -0.078225, 0.06668, -0.061967, -0.082361, -0.025231, -0.035543, 0.106391, + 0.012023, 0.045636, 0.04735, 0.051808, -0.000603, 0.028819, -0.022153, 0.03359, -0.008768, + -0.011178, -0.024918, -0.034301, -0.035251, 0.02949, 0.046655, 0.048989, -0.008662, -0.025757, + -0.095876, -0.055378, 0.029379, -0.021608, -0.030956, 0.002679, -0.047744, -0.075492, 0.057665, + -0.042145, -0.057226, 0.024026, -0.06114, 0.057431, -0.014809, 0.062368, 0.115959, 0.042381, + -0.034672, 0.036093, -0.034224, 0.009889, 0.018137, -0.02416, -0.026458, -0.05415, -0.036723, + 0.046133, 0.058844, 0.049776, 0.011871, -0.03404, -0.107632, -0.068968, -0.005426, -0.008035, + -0.032693, 0.051735, -0.06011, -0.085896, 0.033827, -0.025117, -0.084868, -0.003183, -0.038985, + 0.052247, 0.014332, 0.022628, 0.07055, 0.038926, -0.004941, 0.002296, -0.054631, 0.025145, + 0.053625, -0.049499, -0.0333, -0.058473, -0.035908, 0.067708, 0.03629, 0.030049, -0.005528, + -0.005081, -0.089726, -0.062196, 0.004854, 0.03693, -0.018565, -0.022604, -0.061611, -0.116412, + 0.059684, -0.057908, -0.065598, 9.4e-05, -0.027535, 0.042045, 0.024097, 0.007961, 0.082078, + 0.021079, -0.007324, 0.047502, -0.063264, 0.019617, 0.041552, -0.025691, -0.039595, -0.037588, + -0.039081, 0.048124, 0.034978, 0.028674, 0.001374, -0.053295, -0.093743, -0.038471, 0.040393, + 0.008083, 0.018938, 0.033565, -0.069118, -0.103243, 0.059886, -0.045103, -0.071237, 0.000899, + -0.038419, 0.065863, 0.035206, 0.016747, 0.080678, 0.030911, -0.00557, 0.029713, -0.070266, + 0.026878, 0.03672, -0.012747, -0.013618, -0.033845, -0.035891, 0.031345, 0.036523, 0.061566, + -0.005385, -0.017676, -0.079209, -0.027983, 0.041423, -0.02548, 0.017744, 0.019275, -0.029442, + -0.087028, 0.049896, -0.052191, -0.042085, -0.009642, -0.022603, 0.044842, 2e-05, 0.063286, + 0.078981, 0.036306, -0.000326, 0.038185, -0.042449, 0.022538, 0.01526, -0.043056, -0.027026, + -0.015609, -0.024244, 0.031258, 0.066684, 0.0355, 0.016618, -0.0465, -0.09104, -0.065027, + 0.064274, 0.009795, -0.035005, 0.009162, -0.058406, -0.086883, 0.059435, -0.041147, -0.074672, + 0.009417, -0.0253, 0.098642, 0.027321, 0.029314, 0.03767, 0.02991, 0.010706, 0.01154, + -0.029072, 0.025191, 0.046736, -0.015145, -0.012098, -0.059482, -0.039307, 0.056045, 0.02932, + 0.038364, -0.035585, -0.041069, -0.070797, -0.023542, 0.042642, 0.009863, 0.001803, 0.001954, + -0.033558, -0.078099, 0.074723, -0.104057, -0.055607, -0.017876, -0.010501, 0.055268, 0.015544, + 0.067369, 0.059332, -0.001785, -0.043031, 0.014169, -0.0529, -0.006918, 0.007936, -0.028109, + 0.006824, -0.04701, -0.055389, 0.023165, 0.024355, 0.068366, -0.036869, -0.018991, -0.113428, + -0.021299, 0.03586, -0.006238, -0.006965, -0.017252, -0.036684, -0.116326, 0.040771, -0.077321, + -0.061362, -0.018026, -0.042233, 0.069884, 0.02088, 0.02033, 0.093858, 0.01007, -0.053766, + 0.025807, -0.057768, 0.020857, 0.033865, -0.038845, -0.013514, -0.073847, -0.051974, 0.049883, + 0.026116, 0.050904, -0.046115, -0.034738, -0.088108, -0.060411, 0.035509, 0.008383, -0.003914, + -0.015085, -0.027059, -0.103361, 0.077119, -0.053863, -0.068943, -0.029375, -0.052748, 0.099682, + 0.027584, 0.050614, 0.077667, 0.059157, -0.031935, 0.011134, -0.011618, 0.013263, 0.036574, + -0.008122, -0.00649, -0.053308, -0.064711, 0.03434, 0.023315, 0.047849, -0.010012, -0.054691, + -0.090675, -0.029201, 0.039546, 0.010194, 0.0083, -0.030742, -0.041719, -0.104087, 0.051286, + -0.039388, -0.09074, -0.028258, -0.053544, 0.109204, 0.025633, 0.035648, 0.081015, 0.024734, + -0.018207, 0.008748, -0.039273, 0.001815, 0.025565, -0.008302, -0.007659, -0.061791, -0.063198, + 0.03368, 0.038417, 0.039277, -0.051413, -0.057566, -0.061594, -0.060879, 0.06689, 0.032479, + -0.016941, 0.023239, -0.055277, -0.075341, 0.04696, -0.06323, -0.123983, -0.008363, -0.043534, + 0.139894, 0.01406, 0.018947, 0.04524, 0.001282, -0.019869, -0.006245, -0.017805, 0.016312, + 0.036118, -0.003779, -0.00414, -0.060663, -0.059005, 0.046453, 0.014346, 0.058583, -0.079024, + -0.028475, -0.103794, -0.02088, 0.037689, 0.014377, 0.011149, 0.012003, -0.039889, -0.088326, + 0.045029, -0.070352, -0.082729, -0.037451, -0.042696, 0.110084, 0.022638, 0.054881, 0.059676, + 0.009463, -0.011702, 0.013253, -0.041525, 0.027343, 0.000872, -0.023666, -0.02263, -0.073153, + -0.056835, 0.015242, 0.044736, 0.029502, -0.015516, -0.048153, -0.118515, -0.011264, 0.043248, + -0.006062, -0.01205, 0.036946, -0.018884, -0.089874, 0.063572, -0.074589, -0.033591, -0.036433, + -0.037964, 0.081052, 0.004254, 0.037029, 0.110231, 0.02568, -0.041065, 0.012029, -0.025173, + 0.034194, 0.022827, -0.02922, -0.045333, -0.067665, -0.087323, 0.034483, 0.053271, 0.026315, + -0.039376, -0.042154, -0.091678, -0.009695, 0.042852, -0.016517, 0.016951, 0.027466, -0.003839, + -0.071837, 0.083937, -0.083409, -0.066749, -0.057013, -0.009443, 0.106979, 0.029298, 0.045328, + 0.063092, 0.040454, -0.008966, 0.012586, -0.046421, 0.037305, 0.003179, -0.021899, -0.01879, + -0.07623, -0.070158, 0.026843, 0.050875, 0.043896, -0.019525, -0.023774, -0.093817, 0.009899, + 0.037869, 0.023795, 0.000749, 0.008575, -0.020242, -0.063535, 0.060731, -0.068323, -0.078858, + -0.044665, -0.029208, 0.065104, 0.007383, 0.022273, 0.061459, 0.002615, -0.017662, -0.015038, + -0.034719, 0.033891, -0.002375, -0.061445, -0.019011, -0.078606, -0.0663, 0.00693, 0.059997, + 0.02924, -0.05398, -0.01411, -0.112119, 0.000274, 0.047315, 0.017537, 0.010214, 0.004889, + -0.038186, -0.060251, 0.059191, -0.122299, -0.070506, -0.018577, -0.078743, 0.068835, 0.00616, + 0.009248, 0.101916, 1.6e-05, -0.046984, 0.021421, -0.032746, 0.059591, 0.003969, -0.020468, + -0.043398, -0.051617, -0.068432, 0.01969, 0.078356, 0.022544, 2e-05, -0.030661, -0.081497, + -0.012264, 0.031684, -0.044895, -0.011518, 0.015699, -0.002557, -0.068394, 0.09342, -0.062665, + -0.03939, 0.003437, -0.027253, 0.101894, -0.007736, 0.031468, 0.074394, 0.010625, -0.052376, + 0.002832, -0.06501, 0.028414, 0.036412, -0.028454, -0.002471, -0.081759, -0.061586, 0.017186, + 0.062315, 0.01154, -0.02693, -0.062802, -0.089469, -0.022233, 0.052488, 0.016181, -0.040078, + 0.017111, -0.016535, -0.04319, 0.078566, -0.104956, -0.071782, 0.01568, -0.042298, 0.046381, + -0.025735, 0.033434, 0.076457, 0.007467, -0.060364, 0.009256, -0.010759, 0.027761, 0.01283, + -0.019205, 0.002982, -0.060338, -0.060957, 0.019442, 0.046993, 0.045865, -0.05698, -0.036234, + -0.065176, -0.027701, 0.033509, 0.014062, -0.041907, 0.009288, 0.003835, -0.073496, 0.074372, + -0.099104, -0.079719, -0.027485, -0.007212, 0.088115, -0.012313, 0.011933, 0.062142, 0.014184, + -0.050435, 0.037283, -0.033117, 0.001871, 0.038424, -0.004335, -0.02791, -0.043485, -0.067827, + 0.041165, 0.025857, 0.040917, -0.071748, -0.020971, -0.107609, -0.002402, 0.014839, -0.046584, + -0.000151, 0.023797, 0.004337, -0.069392, 0.026425, -0.089695, -0.06829, -0.044156, -0.041374, + 0.091531, -0.032551, 0.004477, 0.084535, 0.015466, -0.056062, -0.010158, -0.043224, 0.034797, + 0.027484, 0.001504, -0.042243, -0.03437, -0.093939, 0.044755, 0.03762, 0.016638, -0.034299, + -0.036297, -0.095582, -0.010755, 0.05303, 0.011075, 0.011098, 0.01072, -0.028438, -0.064937, + 0.078107, -0.09478, -0.048048, -0.002647, -0.034396, 0.073863, 0.002452, 0.035245, 0.088387, + 0.028662, -0.059111, -0.003332, -0.057098, 0.044453, 0.019361, -0.002444, -0.03678, -0.060418, + -0.060607, 0.032047, 0.070415, 0.021246, -0.002676, -0.014794, -0.056701, -0.055819, 0.028174, + -0.021408, -0.028692, -0.008659, 0.01719, -0.069722, 0.098046, -0.097243, -0.042145, -0.030148, + -0.009683, 0.097249, 0.019148, 0.011965, 0.068392, 0.056281, -0.069689, 0.019344, -0.006562, + -0.009329, 0.038324, -0.004468, -0.017922, -0.054425, -0.058747, 0.03382, 0.032075, 0.032739, + -0.033873, -0.022142, -0.08516, -0.027344, 0.052144, -0.004906, 0.00546, 0.061198, -0.02768, + -0.085072, 0.070482, -0.107729, -0.059284, -0.011946, -0.0076, 0.074534, 0.003162, 0.023649, + 0.051959, 0.005464, -0.06058, 0.010671, -0.026212, 0.049508, 0.004214, -0.028815, -0.022648, + -0.049755, -0.082407, 0.039014, 0.049584, 0.014075, -0.020595, -0.040327, -0.094068, -0.033091, + 0.037411, -0.001847, 0.006654, 0.0388, -0.011031, -0.066173, 0.070196, -0.085453, -0.0417, + -0.025959, -0.013428, 0.086811, 0.002441, 0.005702, 0.070376, 0.009905, -0.034693, 0.020114, + -0.040934, 0.045987, 0.049291, -0.012686, -0.04028, -0.050938, -0.051662, 0.034327, 0.066505, + 0.008794, 0.009054, -0.048339, -0.050597, -0.040171, 0.041138, -0.011464, -4.8e-05, -0.012621, + -0.001283, -0.09434, 0.117413, -0.091673, -0.025206, -0.006947, -0.00611, 0.066479, 0.010549, + 0.03901, 0.076025, 0.046696, -0.060605, 0.004606, -0.014836, 0.021308, 0.035708, -0.016799, + -0.029419, -0.054406, -0.080365, 0.022987, 0.054433, 0.035441, -0.04304, -0.006295, -0.090443, + -0.042046, 0.026191, -0.054051, -0.003453, 0.052454, -0.021315, -0.07219, 0.06052, -0.100761, + -0.011664, -0.017371, 0.000345, 0.089828, 0.015365, -0.00812, 0.043785, 0.014031, -0.061381, + 0.034909, -0.057333, 0.014507, 0.0418, -0.037277, -0.021678, -0.060158, -0.036529, 0.044154, + 0.057288, 0.019554, -0.041183, -0.037305, -0.05671, -0.04293, 0.032917, -0.013947, 0.007995, + 0.008196, 0.009072, -0.091993, 0.093294, -0.104601, -0.049677, -0.023633, -0.00506, 0.10232, + 0.011817, 0.021349, 0.027114, 0.02294, -0.060934, -0.000219, -0.057939, -0.002746, 0.019172, + -0.011456, -0.021174, -0.070042, -0.055441, 0.009539, 0.009505, 0.02112, -0.032744, -0.018485, + -0.074891, -0.048276, 0.047767, -0.030933, 0.028332, 0.00401, -0.022662, -0.080138, 0.065086, + -0.128041, -0.003247, -0.005091, 0.012762, 0.091911, 0.024179, -0.000199, 0.024403, 0.057909, + -0.083736, 2e-06, -0.045524, 0.034449, 0.002477, -0.029219, -0.051011, -0.056674, -0.020523, + 0.027475, 0.039727, 0.020358, -0.009171, -0.036553, -0.058875, -0.046925, 0.033533, -0.019682, + 0.024406, 0.010154, -0.035764, -0.053064, 0.074609, -0.068572, -0.06862, 0.008081, 0.019465, + 0.118938, 0.000314, 0.004337, 0.032968, 0.034251, -0.0812, 0.005956, -0.03609, 0.031918, + 0.021903, -0.035758, -0.020595, -0.085141, -0.054285, 0.028083, 0.063211, 0.002056, 0.00679, + -0.030293, -0.089372, -0.016577, 0.072864, -0.016833, 0.009415, 0.028685, 0.018369, -0.072721, + 0.04935, -0.098574, -0.048748, -0.037574, -0.017476, 0.092371, -0.017423, 0.000828, 0.024877, + 0.041414, -0.035327, 0.004807, -0.0401, 0.035765, 0.012473, -0.020773, -0.052943, -0.046515, + -0.043601, 0.022142, 0.076866, 0.012146, -0.033681, -0.034174, -0.0438, -0.047589, 0.040511, + -0.021568, 0.006033, -0.004033, -0.030828, -0.058319, 0.073921, -0.092239, -0.045775, -0.032712, + 0.006291, 0.110395, 0.024597, 0.037114, 0.036437, 0.049979, -0.05092, -0.00544, -0.041419, + 0.02028, -0.005205, -0.008019, -0.038347, -0.058772, -0.037804, 0.013119, 0.04443, -0.006023, + -0.041476, -0.037047, -0.068227, -0.037968, 0.019943, 0.032738, -0.002242, -0.008673, -0.03122, + -0.057933, 0.089817, -0.10936, -0.06519, -0.000812, -0.012521, 0.074818, 0.003251, 0.021576, + 0.066131, -0.003753, -0.069046, 0.028035, -0.038963, 0.034863, -0.000944, -0.031924, -0.045741, + -0.061995, -0.066232, 0.014632, 0.070342, 0.019467, 0.004045, -0.025541, -0.071863, -0.047876, + 0.060944, -0.002748, 0.017064, 0.003987, -0.055327, -0.096921, 0.069416, -0.086998, -0.033718, + -0.00127, 0.014004, 0.085272, 0.017244, 0.004099, 0.003719, 0.061967, -0.066171, 0.050576, + -0.050361, 0.043081, 0.009168, -0.037084, -0.027755, -0.043386, -0.006795, 0.021708, 0.061433, + 0.027475, -0.013757, -0.009822, -0.070127, -0.015784, 0.033497, -0.013214, 0.032249, 0.010509, + -0.021722, -0.095336, 0.073379, -0.073505, -0.040767, -0.033771, 0.02103, 0.102288, 0.019367, + 0.00904, 0.020659, 0.039336, -0.067023, 0.043591, -0.047339, 0.013831, 0.041171, -0.049798, + -0.048434, -0.066352, -0.027003, 0.011482, 0.054417, 0.007247, 0.005017, -0.033374, -0.084355, + -0.036256, 0.07468, 0.01404, 0.031746, 0.010042, -0.020506, -0.071739, 0.060172, -0.101715, + -0.068799, -0.003645, -0.040879, 0.101449, -0.004783, -0.008539, 0.037778, 0.029684, -0.066092, + 0.034369, -0.013952, 0.008785, 0.005514, -0.022505, -0.019907, -0.07091, -0.070174, 0.005818, + 0.084851, 0.028234, -0.027059, -0.010476, -0.041821, -0.02897, 0.057011, -0.033449, -0.018082, + 0.00932, -0.006499, -0.071376, 0.068173, -0.099579, -0.019624, 0.01001, 0.005809, 0.121271, + -0.029516, 0.016011, 0.008132, 0.030785, -0.07983, 0.003449, -0.040148, -0.012199, 0.023183, + -0.011319, -0.016208, -0.050674, -0.048985, 0.037254, 0.015102, 0.006757, 0.017426, -0.032411, + -0.056686, -0.042235, 0.055086, 0.020517, 0.019265, 0.012318, 0.005253, -0.075357, 0.09207, + -0.093798, -0.030457, -0.013184, -0.017875, 0.079073, 0.036197, 0.038664, 0.046879, 0.036856, + -0.058743, 0.034806, -0.028814, 0.02398, 0.013947, -0.020352, -0.03155, -0.065779, -0.07464, + 0.041288, 0.055271, 0.013103, -0.036902, -0.033033, -0.037501, -0.030359, 0.042989, -0.021178, + 7.4e-05, 0.011975, 0.003621, -0.048784, 0.054634, -0.11752, -0.031551, -0.020142, 0.00331, + 0.119203, 0.01135, 0.023321, 0.041145, 0.046326, -0.070825, 0.047669, 0.018289, 0.010077, + -0.000928, -0.020584, -0.01061, -0.039101, -0.046879, 0.034029, 0.057804, 0.019446, -0.019214, + -0.008874, -0.038281, -0.015934, 0.028036, -0.055927, 0.01914, -0.029393, -0.000332, -0.082127, + 0.03395, -0.099296, -0.046717, -0.031783, -0.025567, 0.101101, 0.014139, 0.002074, 0.052271, + 0.060358, -0.077878, 0.042353, -0.005663, 0.032387, 0.001877, -0.013804, -0.053597, -0.031938, + -0.04899, 0.040003, 0.042575, 0.01775, -0.009805, -0.007966, -0.036203, -0.03251, 0.061084, + -0.024649, 0.015143, 0.000375, -0.018045, -0.062286, 0.075767, -0.100049, -0.043629, 0.033414, + -0.006309, 0.109885, 0.009716, 0.006315, 0.060483, 0.035083, -0.093613, 0.053031, -0.024043, + 0.016448, 0.024598, -0.032778, -0.01432, -0.079377, -0.027661, 0.032007, 0.050867, 0.01174, + -0.022725, -0.03167, -0.056683, -0.030807, 0.06353, 0.010205, 0.041647, -9.7e-05, -0.020583, + -0.091343, 0.071535, -0.088446, -0.082041, -0.009311, 0.008734, 0.085754, 0.03359, -0.013535, + 0.051488, 0.019363, -0.070509, 0.046656, -0.01762, 0.001971, 0.019389, 0.005699, -0.019413, + -0.050276, -0.0736, 0.01982, 0.040708, -0.010589, 0.011971, -0.024464, -0.050529, -0.040935, + 0.07681, 0.001431, -0.017675, 0.016236, -0.004231, -0.07471, 0.075329, -0.094395, -0.048395, + 0.008762, -0.002769, 0.069861, 0.01735, 0.030677, 0.040177, 0.039419, -0.093688, 0.033499, + -0.019446, 0.02809, 0.019716, -0.021715, -0.025412, -0.072184, -0.031284, 0.04127, 0.049468, + -0.006824, -0.037856, -0.031438, -0.056483, -0.002363, 0.056763, -0.001099, 0.042443, 0.04197, + 0.015034, -0.073114, 0.072438, -0.111196, -0.06031, -0.028496, 0.015447, 0.079574, 0.015438, + 0.013549, 0.025799, 0.030468, -0.054305, 0.033372, -0.031704, 0.009685, 0.023853, -0.00837, + -0.016255, -0.036558, -0.064691, 0.015241, 0.053226, -0.014446, -0.020812, -0.006184, -0.037082, + -0.01108, 0.021622, -0.010788, -0.00384, -0.000559, -0.005935, -0.062758, 0.048971, -0.097333, + -0.050069, -0.003007, -0.00835, 0.088091, 0.005045, 0.01184, 0.018898, -0.005181, -0.075428, + 0.043326, -0.077868, -0.015239, 0.005683, 0.004425, -0.042203, -0.037195, -0.03541, 0.011184, + 0.033822, 0.004524, -0.016722, -0.016595, -0.033787, -0.01348, 0.047891, 0.00501, 0.013929, + 0.000391, -0.015981, -0.093698, 0.074105, -0.080975, -0.05868, -0.028861, 0.035238, 0.085153, + 0.020768, 0.047903, 0.023633, 0.049212, -0.051288, 0.041234, -0.043666, 0.041441, -0.013708, + -0.030212, -0.046144, -0.02478, -0.031476, 0.022463, 0.056964, 0.009413, -0.017499, 0.022169, + -0.063471, -0.018033, 0.059238, -0.029123, 0.000327, 0.027926, -0.003947, -0.065848, 0.080764, + -0.103751, -0.0323, 0.000207, -0.002074, 0.083372, 0.022105, 0.027755, 0.004002, 0.072633, + -0.070143, 0.025814, -0.02117, 0.023349, 0.00656, -0.03566, -0.046973, -0.048099, -0.016737, + 0.002473, 0.050344, 0.001634, -0.010479, -0.012531, -0.067016, 0.00046, 0.069353, -0.026994, + 0.00477, 0.055697, 0.000798, -0.038429, 0.053753, -0.071645, -0.069388, -0.029824, -0.02358, + 0.115386, -0.000121, 0.006165, 0.053642, 0.064259, -0.049242, 0.043969, -0.003355, 0.074015, + 0.03377, -0.040484, -0.043397, -0.07621, -0.035702, 0.036091, 0.082601, 0.002737, -0.006876, + 0.023492, -0.069862, -0.014873, 0.068437, 0.021351, -0.009459, 0.0344, -0.02053, -0.067464, + 0.098453, -0.101835, -0.075345, 0.024227, -0.011357, 0.07298, 0.033279, 0.028524, 0.02865, + 0.003424, -0.06129, 0.02066, -0.020677, 0.03872, -0.001309, -0.033021, -0.023597, -0.086924, + -0.075543, 0.018852, 0.07416, 0.000161, 0.001051, -0.013443, -0.07785, -0.000764, 0.058347, + 0.004339, 0.025673, 0.017979, -0.007026, -0.060045, 0.066652, -0.055952, -0.073, 0.002654, + -0.027205, 0.090521, 0.008848, 0.039953, 0.050527, 0.03503, -0.054843, 0.02123, -0.028431, + 0.008518, 0.03436, -0.035687, -0.043523, -0.071042, -0.041567, 0.012916, 0.068424, 0.010441, + 0.020393, -0.027383, -0.030658, -0.01251, 0.041901, -0.012946, -0.004466, -0.002537, 0.013925, + -0.061948, 0.086836, -0.063242, -0.058792, -0.010506, -0.01117, 0.100377, 0.006465, 0.047347, + 0.037118, 0.058084, -0.065145, 0.001572, -0.04675, 0.02056, 0.006996, -0.053896, -0.048628, + -0.053133, -0.055614, 0.019361, 0.079589, -0.010386, -0.002105, -0.010709, -0.062068, 0.004403, + 0.019723, -0.022969, 0.027168, 0.010096, 0.010432, -0.04836, 0.065727, -0.071772, -0.043009, + -0.011759, -0.007006, 0.081025, -0.004465, 0.025643, 0.056788, 0.035365, -0.070886, 0.049328, + -0.042725, -0.002092, 0.040626, -0.047445, -0.041948, -0.042685, -0.03792, 0.015081, 0.09512, + 0.024553, -0.021616, 0.005679, -0.041884, -0.022619, 0.082088, -0.018325, -0.002943, 0.022409, + 0.001951, -0.042289, 0.042452, -0.085086, -0.078698, 0.024427, -0.019972, 0.114998, -0.011411, + -0.010484, 0.010148, 0.034235, -0.080249, 0.027983, -0.013981, -0.010044, 0.025208, -0.022628, + -0.036155, -0.05289, -0.010923, 0.014724, 0.046534}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "long_chain_of_1s"; + const std::vector token_types{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, + 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, + 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, + 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, -0.184324, 0.082248, -0.917971, 0.311245, + -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, 0.625479, + -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, 0.273531, + -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, 0.813192, + -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, 0.807311, + -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, 0.153318, + 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, -0.881248, + -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, -0.297463, + -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, 0.171486, + 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, 0.029975, + -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, -0.946428, + -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, -0.597124, + -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, -0.246632, + -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, 0.297012, + -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, -0.875637, + -0.228871, 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, + -0.108976, -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, + -0.569343, -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, + 0.429193, 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, + 0.769097, -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, + -0.320644, 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, + 0.980358, 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, + -0.477203, -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, + 0.456818, 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, + -0.256998, 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, + -0.518889, 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, + 0.512987, 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, + -0.68424, -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, + 0.007862, 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, + 0.563852, 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, + -0.150954, -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, + 0.37714, -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, + 0.507329, -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, + 0.39719, -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, + -0.492104, 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, + 0.711457, 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, + 0.500654, -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, + -0.083318, 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, + 0.143193, -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, + 0.508876, 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, + -0.472354, 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, + 0.085618, -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, + 0.159464, 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, + -0.260825, -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, + 0.899223, 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, + -0.560654, -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, + -0.165227, -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, + 0.603313, -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, + -0.518932, 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, + 0.215429, -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, + 0.573391, -0.949507, -0.7171, -0.377511, 0.826098, 0.1023, -0.747897, 0.006262, -0.776671, + -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, -0.288666, 0.3929, 0.395564, + 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, 0.815057, 0.99516, 0.296258, + -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, 0.18636, 0.413585, -0.206588, + -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, -0.109859, 0.094326, -0.060097, + -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, -0.46216, -0.33695, -0.375678, + -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, 0.139068, 0.552292, -0.702444, + 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, -0.632811, 0.556983, -0.149319, + 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, -0.867631, 0.003304, + 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, 0.016121, 0.210597, + -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, -0.147204, -0.612415, + -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, -0.842229, -0.794683, 0.585289, + 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, 0.721554, 0.773871, 0.720051, + 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, -0.016791, -0.870379, -0.261475, + -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, 0.910749, 0.583554, -0.518337, + -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, 0.060577, -0.602459, 0.819876, + 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, -0.4237, 0.602567, 0.200242, + 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, 0.783539, -0.26327, 0.314318, + -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, 0.037649, -0.586658, 0.822194, + -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, 0.961893, -0.171048, -0.934408, + 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, 0.162617, -0.133854, 0.230342, + -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, 0.192636, -0.845443, 0.793552, + 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, -0.77887, 0.912821, 0.07751, + 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, 0.074966, -0.698764, -0.219233, + -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, 0.55947, 0.400247, 0.774181, + -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, -0.39125, -0.01835, -0.229459, + 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, -0.772226, -0.809075, -0.54802, + -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, 0.981038, -0.370629, -0.716001, + 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, 0.642863, 0.839239, -0.493832, + 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, 0.25278, 0.298125, -0.653559, + 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, 0.486671, 0.170416, 0.271919, + 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, 0.806378, -0.525239, -0.036417, + 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, -0.453557, 0.097171, -0.116216, + -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, 0.642417, 0.247718, -0.844133, + 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, -0.557894, 0.601745, -0.127932, + -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, 0.693016, 0.852534, 0.551467, + 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, -0.73862, 0.672618, 0.678645, + -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, -0.32739, 0.700386, 0.813401, + -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, -0.001452, 0.253108, -0.53735, + 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, 0.931584, 0.293263, -0.227222, + 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, -0.678475, 0.102821, 0.095808, + 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, 0.370394, -0.736122, 0.062691, + 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, 0.968727, -0.397175, -0.232716, + -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, 0.340153, -0.876826, -0.155735, + -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, -0.631138, 0.706552, 0.139649, + -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, -0.8772, -0.654672, -0.718926, + 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, 0.349295, 0.354269, 0.980382, + -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, -0.852453, 0.896511, -0.041441, + -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, 0.778847, -0.30743, 0.593968, + 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, -0.931854, -0.466351, 0.046006, + -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, -0.14036, 0.285996, 0.045167, + -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, 0.387979, 0.236666, 0.748384, + -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, -0.379444, -0.369984, 0.918921, + 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, 0.66429, -0.795854, 0.35589, + -0.569686, -0.039074, -0.20867, -0.834965, -0.953914, -0.657898, 0.453771, 0.457435, -0.869764, + -0.375542, 0.016334, -0.864583, 0.563455, 0.905732, 0.176862, -0.743015, 0.233186, 0.363014, + 0.791843, -0.53207, -0.89591, 0.439351, 0.062256, -0.325826, -0.419022, -0.515616, 0.809497, + -0.172539, 0.721207, 0.89265, 0.126676, 0.213018, -0.068105, 0.686815, -0.901088, 0.397683, + -0.162929, 0.456616, -0.004454, -0.370266, -0.10795, 0.539993, -0.69453, -0.632099, -0.223996, + -0.362725, 0.392839, 0.67297, -0.107099, 0.945574, -0.41782, -0.561159, -0.447694, -0.688972, + -0.700934, -0.891016, -0.886279, 0.260999, 0.609854, 0.938847, 0.851797, -0.057594, 0.194047, + -0.59832, 0.386521, -0.958841, 0.471673, 0.183416, 0.307304, 0.366148, -0.459105, 0.858106, + 0.477252, 0.656895, 0.132079, 0.627987, 0.673001, 0.453235, 0.761769, -0.181378, 0.657536, + 0.230399, 0.601696, 0.973999, 0.226437, -0.371167, -0.099496, 0.281528, 0.168609, -0.27317, + 0.783518, 0.600807, -0.621154, -0.081481, -0.095994, -0.626731, 0.145855, -0.306993, -0.516261, + -0.321547, -0.356549, 0.95664, 0.383572, 0.984113, 0.274196, 0.226431, 0.411094, 0.171633, + -0.784771, -0.591354, -0.242279, 0.015033, 0.376714, 0.385048, 0.793313, 0.203573, -0.341293, + -0.752026, -0.732411, -0.597337, 0.301604, 0.540272, 0.874913, -0.316312, -0.078883, -0.296963, + -0.003654, 0.321001, -0.021971, 0.046295, 0.126687, 0.372418, -0.303401, -0.596298, 0.235925, + -0.118406, -0.453028, 0.419963, 0.009069, -0.145465, -0.484084, -0.131566, -0.850325, 0.22749, + 0.015007, 0.606836, 0.06457, 0.079952, 0.272413, 0.760938, -0.472558, 0.597005, 0.244562, + -0.667117, 0.348187, -0.599733, -0.314781, -0.476669, -0.680314, 0.787571, -0.893821, 0.500015, + -0.900012, -0.121706, 0.059642, 0.710911, -0.361894, 0.287827, 0.154906, 0.588385, 0.059452, + 0.374445, -0.604091, -0.694911, 0.891078, -0.728667, -0.17024, -0.12088, 0.97788, -0.216114, + -0.761304, -0.253499, 0.515821, 0.39629, 0.827292, -0.204717, 0.471045, -0.94104, 0.38694, + 0.459464, 0.645087, -0.573442, -0.266978, 0.24193, -0.710615, -0.795481, -0.962043, 0.055823, + 0.620988, 0.25686, 0.060965, 0.348426, -0.628404, 0.105426, -0.248424, -0.495144, 0.862373, + -0.773653, 0.146548, -0.878713, -0.033927, -0.444362, 0.329147, -0.561538, 0.64004, -0.811467, + 0.600636, -0.751179, 0.535585, -0.421066, -0.00233, -0.182503, 0.64903, 0.327728, -0.881204, + 0.091941, -0.689862, 0.747561, 0.1643, -0.257181, -0.510169, 0.346129, -0.598897, 0.474262, + 0.545675, 0.613803, 0.261238, -0.875369, 0.719317, -0.310223, -0.295636, -0.107439, 0.731135, + 0.768927, 0.154412, 0.477152, -0.931997, 0.002362, -0.884684, 0.34035, -0.712449, -0.356405, + 0.699031, 0.955696, -0.60038, -0.555011, 0.123846, 0.393105, -0.162872, -0.31229, -0.656844, + 0.426876, 0.979762, -0.484079, 0.471664, 0.488395, 0.803797, -0.113854, 0.031498, 0.734699, + 0.632114, 0.987707, -0.28657, 0.395687, 0.698276, -0.678816, 0.198659, -0.223753, 0.642824, + -0.449127, 0.070139, 0.598311, -0.916117, -0.844362, -0.512184, 0.641417, 0.670528, -0.68297, + 0.190687, -0.529881, -0.464153, 0.862417, 0.483009, -0.273483, 0.147202, 0.193757, 0.234241, + -0.342279, -0.588886, 0.662064, 0.134373, 0.41855, -0.37873, 0.48437, 0.727766, 0.608173, + 0.271896, 0.983883, -0.002187, 0.212897, 0.95013, 0.971897, -0.42222, 0.900803, 0.36906, + -0.111938, 0.873146, -0.518029, 0.649749, 0.990944, -0.689702, -0.590093, -0.990914, -0.179962, + -0.908204, -0.334922, 0.303595, 0.706878, 0.557035, 0.555081, 0.414864, -0.620233, -0.793995, + 0.041454, 0.949583, 0.056306, -0.08601, -0.678737, -0.495838, -0.770864, 0.800668, -0.16293, + -0.883409, 0.107275, 0.072568, -0.123549, 0.357964, 0.537779, -0.94041, -0.766092, -0.04804, + -0.927138, -0.90836, 0.88291, -0.076059, -0.49439, -0.343017, -0.780722, 0.780366, -0.216839, + -0.562238, -0.758413, 0.58449, -0.138231, -0.105057, -0.260633, -0.482723, 0.17789, 0.76937, + -0.57958, 0.047913, -0.760513, -0.468897, 0.87777, 0.010485, 0.963319, -0.175204, -0.545044, + -0.597488, 0.886315, -0.768987, 0.524794, 0.248582, 0.295107, 0.56424, -0.261623, 0.618764, + -0.796723, -0.351841, 0.732041, 0.29678, -0.133173, -0.233531, -0.610615, 0.608092, -0.0318, + -0.033834, 0.236493, 0.737948, -0.510183, -0.344397, 0.677631, 0.564772, -0.491936, -0.98926, + 0.185511, 0.525894, 0.238857, 0.709314, -0.793474, 0.504286, -0.621679, 0.562807, 0.743714, + 0.316716, 0.809075, -0.659152, -0.894376, -0.961505, 0.627831, 0.35031, -0.732267, 0.484281, + 0.912412, -0.986084, 0.725421, 0.153373, 0.093021, 0.899793, 0.90559, 0.421351, 0.790135, + 0.416024, 0.162942, -0.879011, 0.186783, -0.711446, 0.307866, 0.176434, 0.022466, -0.683727, + -0.606197, 0.739138, 0.487019, 0.52724, -0.297977, -0.172196, -0.256278, 0.687693, -0.431688, + 0.629865, 0.689494, -0.914556, 0.006107, -0.190454, -0.552822, 0.431718, -0.121495, 0.875508, + -0.625904, 0.464631, -0.853793, -0.501222, 0.068213, 0.790093, 0.526719, -0.821085, 0.110765, + -0.58949, 0.04333, -0.833073, -0.293373, 0.685866, -0.917536, -0.953423, 0.182144, 0.137084, + -0.182886, 0.873212, -0.602089, -0.60708, -0.747476, -0.186123, -0.255205, 0.618747, -0.056149, + 0.319354, -0.415557, 0.811192, 0.843019, -0.895569, -0.257, -0.848497, 0.424827, -0.873683, + -0.472812, 0.999172, -0.954919, 0.737805, 0.084479, 0.799635, -0.507489, 0.656829, 0.120654, + 0.076912, 0.682532, -0.950527, -0.805451, 0.965763, -0.600497, -0.720808, -0.048895, -0.320102, + -0.136812, -0.669986, 0.360819, -0.860482, 0.080993, 0.583539, 0.192136, 0.13287, 0.146264, + -0.292951, -0.190498, -0.421693, -0.675529, -0.529456, 0.988561, -0.167356, 0.350296, 0.691554, + -0.078118, -0.537974, -0.677539, -0.368403, 0.356936, -0.842159, -0.122097, 0.380387, 0.815855, + 0.300931, 0.197767, 0.684591, 0.462088, 0.338314, -0.310047, -0.801899, -0.216002, -0.181364, + 0.073437, -0.10998, 0.404289, 0.66455, -0.40542, -0.948861, -0.51306, -0.478476, 0.56684, + -0.645044, -0.094057, -0.211939, -0.606932, 0.453285, -0.416556, -0.051732, -0.703085, -0.10086, + 0.142086, -0.040693, -0.373648, 0.297084, -0.259098, -0.554399, -0.737433, -0.21183, -0.944678, + 0.83002, -0.477728, -0.414418, 0.092439, 0.259233, -0.094292, 0.686023, -0.58295, 0.358381, + -0.002255, -0.813471, -0.387295, 0.254487, 0.191042, 0.727135, 0.668993, -0.545423, -0.427029, + -0.212041, -0.716421, -0.26999, -0.818313, 0.380342, 0.707559, 0.079176, -0.715881, -0.757308, + -0.389299, 0.290853, 0.024392, 0.181822, 0.942481, 0.464442, 0.215023, -0.202322, 0.473049, + 0.365841, -0.900102, -0.590709, 0.033566, 0.379442, 0.486503, -0.595279, -0.992114, -0.052092, + -0.114317, 0.29018, -0.275006, 0.764523, 0.066724, 0.730247, -0.696314, 0.400036, 0.119156, + -0.500148, 0.495748, -0.984019, 0.808467, 0.080588, 0.096553, 0.462446, 0.083012, 0.428652, + 0.636214, -0.780458, 0.66156, -0.149739, -0.232549, 0.201282, 0.782152, -0.543615, -0.673931, + 0.620607, -0.469668, 0.32195, -0.147326, 0.275253, 0.763115, -0.506799, -0.485264, 0.490621, + 0.054752, -0.110058, -0.878388, 0.847258, -0.037871, -0.184187, -0.41049, -0.197338, 0.486034, + -0.022983, 0.855209, -0.057735, -0.143458, 0.564452, -0.025876, -0.199593, 0.334227, 0.788631, + 0.24955, 0.696318, 0.648038, 0.282798, 0.347689, 0.322684, 0.103727, 0.850736, 0.923141, + 0.355989, -0.049939, 0.896594, -0.778321, 0.734784, 0.529826, 0.642136, -0.076836, -0.746098, + 0.713339, -0.437256, 0.263113, 0.566545, -0.934526, 0.066364, -0.355226, 0.709755, -0.636701, + 0.60717, 0.62357, 0.551715, 0.960012, 0.151451, -0.906381, 0.713865, 0.091547, 0.019845, + -0.952589, -0.224756, -0.485368, 0.979411, 0.712029, 0.745988, 0.684837, -0.619874, -0.42947, + -0.39135, -0.400882, 0.778432, 0.339767, 0.801354, -0.046779, -0.891427, -0.290123, 0.702795, + 0.608806, 0.309572, -0.293328, -0.933371, -0.537327, 0.52138, -0.403358, 0.478339, 0.273041, + -0.384087, 0.609078, -0.321333, -0.033223, -0.380913, -0.948572, 0.161238, 0.288969, -0.503481, + 0.613447, -0.897056, -0.963977, -0.617649, -0.345605, -0.111058, -0.193248, 0.456388, -0.877625, + 0.147248, 0.017318, 0.26413, 0.99408, 0.615448, -0.553705, -0.819453, -0.242101, -0.501627, + 0.349305, 0.009167, 0.804324, 0.392806, -0.18387, 0.03437, 0.239486, -0.124087, 0.806935, + -0.7819, 0.487406, -0.637444, -0.876081, -0.205297, 0.487305, 0.706562, 0.250942, -0.086429, + -0.056059, -0.405381, -0.089737, -0.069094, 0.850963, 0.585244, -0.800224, 0.004137, -0.61507, + -0.158741, -0.794768, 0.259961, -0.721078, 0.987221, 0.755203, -0.688359, -0.941464, 0.039018, + -0.279152, 0.293567, -0.676914, 0.409341, -0.863749, -0.52777, -0.525702, 0.483891, -0.026181, + -0.961029, -0.57112, -0.462777, -0.92783, 0.128047, 0.356338, -0.183478, -0.397945, -0.006065, + -0.794282, -0.608902, -0.022806, 0.888377, -0.307508, 0.495659, -0.39355, -0.266198, -0.951944, + 0.828485, 0.973728, -0.021003, 0.63537, 0.817942, 0.496718, 0.515019, -0.951991, -0.939671, + -0.76754, 0.312786, -0.864977, -0.763345, -0.484703, -0.921685, 0.001347, 0.144268, -0.5852, + 0.654765, -0.379645, -0.281527, 0.761875, 0.858552, -0.11472, -0.717878, -0.501669, 0.127339, + 0.586192, 0.497845, -0.441582, -0.945367, -0.875147, -0.318156, 0.012544, -0.449176, -0.790705, + 0.105388, -0.793741, -0.767924, -0.812946, -0.270973, 0.883258, 0.390919, -0.118569, 0.205811, + 0.398209, 0.005826, -0.806574, -0.616113, -0.679353, -0.025392, -0.915402, -0.181821, -0.365672, + 0.98137, 0.812824, 0.580854, 0.056082, -0.323773, 0.25507, -0.69093, -0.426504, -0.200885, + -0.234955, -0.947302, 0.397531, 0.823482, -0.551573, 0.269566, -0.115974, -0.036472, 0.05829, + 0.866583, 0.133991, -0.632677, -0.359714, 0.488527, 0.312055, 0.019436, -0.131977, -0.389077, + -0.354927, -0.527486, 0.163862, 0.280842, 0.765745, -0.225913, 0.071589, 0.646289, 0.434991, + 0.128488, 0.307279, 0.051906, -0.857792, 0.038551, -0.218579, 0.902412, 0.902628, 0.198391, + 0.893803, -0.515019, 0.869174, 0.860985, -0.038221, -0.802509, -0.322696, -0.267427, 0.016518, + -0.906651, 0.185326, -0.415892, -0.256041, -0.516492, -0.211134, -0.928725, -0.530168, 0.092125, + 0.655276, 0.908748, -0.756456, 0.419921, -0.563696, -0.773157, -0.044035, -0.573647, -0.861246, + -0.934536, -0.669348, 0.821736, 0.557708, -0.395847, -0.669321, -0.769242, -0.590521, -0.411498, + 0.600589, 0.327256, -0.385372, 0.688431, -0.621233, -0.814688, 0.21825, -0.551401, 0.284478, + 0.847236, -0.472905, -0.697812, 0.3764, -0.903147, 0.892178, -0.472256, 0.48346, -0.795172, + -0.676868, 0.110155, 0.355405, 0.775395, 0.836336, -0.057512, -0.128567, 0.165302, -0.232291, + 0.034041, -0.947048, -0.820907, 0.685262, -0.584357, 0.787485, 0.109744, 0.243585, 0.908878, + -0.55619, -0.157858, 0.177169, 0.341642, -0.973214, 0.355419, -0.589726, 0.13135, 0.67655, + -0.099615, -0.031635, -0.074715, 0.834483, 0.568329, 0.168169, -0.601815, -0.543037, 0.796555, + 0.719421, 0.57901, -0.779717, 0.778793, -0.095592, 0.736757, 0.868549, 0.109611, -0.416118, + 0.940651, -0.52112, 0.653415, -0.95889, -0.314513, -0.871855, -0.448576, 0.424619, -0.716528, + -0.864804, 0.715035, 0.533821, -0.010935, -0.704961, -0.264936, -0.323781, 0.61759, -0.327087, + -0.288016, -0.708859, -0.470988, 0.541449, 0.644286, 0.145287, -0.375198, 0.960491, 0.19738, + -0.385996, -0.346597, -0.139951, 0.474098, 0.365768, 0.724961, -0.045057, 0.827093, -0.406187, + -0.460553, -0.369297, -0.938208, -0.65644, -0.904875, -0.059098, 0.009427, -0.259542, -0.683384, + 0.907289, -0.33134, 0.476553, 0.69641, -0.657357, -0.125023, 0.577967, 0.969359, -0.126161, + 0.724623, -0.784866, -0.649739, 0.822335, -0.09468, 0.987923, 0.072717, -0.414709, 0.949715, + 0.874484, 0.092806, -0.606205, -0.043297, -0.480917, 0.728681, 0.046324, 0.210521, 0.606465, + 0.331241, -0.624266, 0.830724, 0.614345, -0.617336, 0.756103, 0.283703, -0.196849, -0.715163, + -0.165923, -0.980443, 0.570761, 0.724254, -0.287898, 0.92705, -0.370291, 0.171248, -0.696894, + -0.042278, 0.40423, 0.430735, -0.033533}; + const std::vector k_data{ + -0.504262, 0.698985, 0.662066, 0.16048, -0.459876, 0.212026, 0.002674, 0.913603, 0.148193, + 0.077129, 0.068359, 0.532009, -0.012356, 0.857144, 0.52099, -0.755627, -1.1e-05, -0.848807, + -0.767809, 0.194293, 0.224719, -0.087512, 0.950462, -0.537212, -0.419086, -0.160146, 0.006063, + -0.084702, 0.900389, -0.422346, -0.523075, 0.08595, 0.751082, 0.237356, 0.538733, 0.193585, + 0.852288, 0.600624, 0.715569, -0.13469, -0.827896, -0.474364, 0.340668, 0.701547, -0.390704, + 0.827419, 0.143726, 0.003972, 0.038984, -0.176673, 0.936189, 0.043435, 0.612509, -0.844014, + -0.515221, 0.112437, 0.7985, 0.476087, 0.190459, -0.987992, 0.0188, -0.660102, -0.853872, + 0.136743, -0.632705, 0.907639, -0.543542, 0.322268, 0.586963, -0.777237, 0.51178, -0.133896, + 0.518163, 0.967735, -0.426165, -0.433104, 0.794549, 0.1112, -0.099733, 0.758668, -0.483144, + -0.049376, 0.686876, 0.390811, -0.646815, 0.259917, -0.762437, -0.543073, 0.643012, -0.266512, + -0.509357, 0.070882, 0.24437, -0.621617, -0.674363, -0.968469, 0.258384, -0.645229, 0.076208, + -0.223658, -0.65386, -0.319099, -0.76869, -0.529333, -0.031171, -0.854915, -0.877033, 0.749061, + 0.094098, -0.442254, -0.033249, 0.741565, -0.834266, -0.530184, -0.72314, -0.072701, -0.034413, + -0.779306, 0.694084, -0.76792, 0.933636, -0.688369, -0.137046, 0.186987, -0.444477, 0.919642, + -0.689434, -0.055428, -0.734261, 0.277591, 0.852587, 0.927586, 0.118714, -0.500645, 0.971845, + 0.07463, 0.676577, -0.519417, -0.464093, -0.830133, 0.920126, 0.165884, -0.718189, 0.085889, + -0.428905, 0.049956, 0.331923, -0.496235, 0.174499, -0.631382, 0.192696, -0.965536, 0.159351, + 0.993519, 0.921113, 0.364781, 0.735829, 0.972258, 0.283369, 0.333518, 0.130034, 0.88533, + 0.859041, -0.47026, -0.04111, -0.503843, 0.35883, -0.968992, 0.353868, -0.274448, 0.362652, + 0.312106, -0.497619, 0.518811, 0.42465, -0.850041, 0.997752, 0.860753, 0.622182, -0.1015, + 0.354288, -0.541016, -0.339799, 0.471959, 0.445168, 0.395985, -0.953738, 0.828679, -0.417687, + 0.865416, 0.823951, 0.370651, 0.99629, 0.57422, 0.586486, -0.339572, 0.927485, 0.262095, + 0.590836, -0.226108, 0.724221, 0.887102, -0.766251, 0.819804, -0.66089, -0.688473, -0.835686, + 0.28896, -0.750827, -0.376434, -0.502686, 0.267265, -0.981761, -0.458441, 0.007316, 0.089802, + -0.451624, 0.358264, -0.659754, -0.84689, -0.142165, -0.540648, 0.630333, -0.683519, -0.083952, + 0.415354, -0.875739, 0.77412, -0.454375, -0.272116, -0.611714, -0.372638, -0.38559, -0.889877, + 0.341708, -0.003204, 0.978231, 0.674676, 0.869934, 0.294227, 0.525459, 0.936385, 0.82104, + -0.768399, -0.224229, -0.964465, 0.037831, -0.35319, 0.867917, 0.158105, 0.011006, -0.723352, + -0.784731, 0.157424, -0.496882, -0.459252, 0.701434, -0.521319, -0.445105, 0.767808, 0.390699, + -0.568208, 0.302848, 0.504137, -0.888201, 0.186807, 0.22847, -0.038947, 0.958801, -0.660976, + 0.542117, -0.531217, -0.856106, 0.681519, -0.479722, 0.047001, 0.525902, -0.834659, -0.855989, + 0.340461, 0.871926, -0.105816, 0.704222, 0.351401, 0.285303, -0.637572, 0.951718, 0.458041, + 0.154624, 0.707304, -0.859227, 0.215484, -0.470729, -0.101548, 0.327633, 0.442897, 0.229406, + -0.773953, -0.625833, 0.017461, -0.173191, -0.837014, 0.985166, 0.125783, -0.71055, 0.438586, + 0.434499, -0.490566, 0.501444, -0.620343, 0.346481, 0.949905, 0.660131, 0.493689, -0.203451, + 0.187735, 0.348966, 0.244247, -0.202592, 0.139527, -0.405031, -0.565267, -0.922836, -0.815309, + -0.627715, 0.95589, 0.200115, -0.904621, -0.511169, 0.233579, -0.299306, -0.28306, -0.375515, + -0.24424, 0.115027, 0.059218, 0.642482, 0.639943, 0.822991, -0.031811, -0.44652, 0.003412, + -0.662214, 0.409122, -0.12065, -0.320276, -0.847812, 0.481916, 0.558175, 0.912227, -0.35427, + 0.301311, 0.037695, -0.63697, -0.625149, 0.512085, -0.574323, 0.728184, 0.349359, 0.341509, + 0.658576, 0.489416, 0.431283, 0.518842, -0.424367, -0.530281, -0.183201, 0.555168, 0.699827, + 0.736412, -0.315437, -0.126885, -0.68682, 0.616596, -0.663127, -0.411489, 0.825765, 0.243013, + -0.418632, -0.673372, -0.687674, 0.807026, -0.914004, 0.864129, 0.799965, 0.061962, -0.080155, + 0.777722, 0.440977, 0.945511, 0.807812, -0.65576, 0.617119, 0.50433, -0.710012, 0.480272, + -0.519412, -0.595792, 0.018656, -0.122881, -0.268882, -0.655807, 0.547038, 0.99707, -0.221582, + -0.673774, -0.051564, -0.86881, -0.812056, -0.333122, 0.628305, -0.766114, -0.159583, -0.51927, + -0.920789, -0.225111, -0.058251, -0.168141, 0.731135, 0.400562, 0.622595, 0.391689, 0.104918, + 0.542759, -0.63795, 0.509534, 0.476314, -0.424407, -0.034321, -0.756477, -0.875048, -0.001105, + 0.179055, -0.215706, 0.30895, -0.772002, -0.549682, 0.690196, -0.973172, 0.157021, 0.769873, + 0.749687, 0.341118, -0.910901, 0.128737, -0.351658, -0.28111, 0.766192, -0.339842, -0.716171, + -0.802738, 0.631384, 0.048253, 0.987665, 0.204503, -0.931919, 0.247408, 0.915044, 0.62023, + 0.30009, -0.751304, -0.599635, 0.679014, -0.668658, 0.228133, -0.128123, 0.335081, 0.065432, + -0.76167, -0.398608, 0.872191, 0.117716, 0.507055, -0.504503, 0.791641, -0.214064, -0.337064, + 0.202855, -0.358313, -0.40185, -0.143095, -0.05709, -0.568754, 0.341814, -0.969182, 0.613863, + 0.927464, 0.161783, -0.233658, -0.915901, 0.469602, 0.81938, 0.854926, 0.08917, 0.332462, + 0.95821, 0.149259, -0.48277, -0.949428, 0.437211, 0.389543, 0.888684, -0.509105, 0.429523, + -0.330854, -0.248535, 0.583487, -0.916678, 0.737137, 0.465099, -0.594319, 0.510296, -0.251532, + 0.089997, -0.267658, -0.979113, -0.103568, 0.48792, -0.116347, -0.492413, 0.031686, 0.182487, + -0.279016, -0.775484, -0.536143, -0.163033, 0.360143, 0.889274, 0.018559, 0.358042, 0.575371, + -0.436052, -0.331817, 0.663306, 0.715988, 0.236959, -0.772782, 0.567586, -0.826495, 0.499822, + 0.118514, 0.323015, -0.974748, -0.351575, 0.424697, 0.769686, -0.286291, 0.89175, -0.223159, + -0.603146, -0.433043, 0.062227, -0.177733, 0.484004, -0.553422, -0.284471, -0.991013, 0.816243, + -0.188163, -0.788312, -0.048254, -0.001825, 0.277728, -0.109761, 0.629063, -0.345024, -0.299311, + -0.23747, 0.17853, 0.80122, -0.046013, 0.769429, 0.785546, -0.52065, -0.08592, -0.472059, + 0.415974, -0.351569, 0.30505, 0.059745, -0.656465, -0.672294, -0.976725, -0.559381, 0.279354, + 0.060926, 0.752102, -0.879314, -0.029222, -0.89665, 0.005854, 0.364337, -0.897043, 0.883152, + -0.310591, 0.886036, -0.167851, 0.567315, 0.909077, -0.364074, -0.243087, 0.524529, -0.856131, + 0.591928, -0.628113, 0.928763, -0.655365, -0.411511, 0.746185, -0.435387, 0.857151, 0.68802, + 0.914011, -0.969282, 0.011208, -0.328914, 0.238204, -0.755051, 0.410054, -0.047374, -0.472689, + -0.899604, 0.523068, -0.361905, 0.737876, 0.178014, 0.30414, -0.151664, -0.138524, -0.33971, + -0.865901, 0.628696, -0.629741, 0.582838, -0.337283, 0.626469, 0.857022, -0.611606, 0.825726, + 0.024372, -0.763931, 0.408212, 0.566239, 0.881512, -0.95192, 0.902962, 0.758107, 0.983762, + 0.545006, -0.486113, 0.758612, 0.913917, -0.38237, -0.16346, 0.782532, 0.804983, 0.660587, + 0.766132, -0.513898, -0.172515, -0.399509, 0.519738, 0.249212, -0.772453, -0.125612, -0.815455, + -0.941117, 0.911628, -0.503021, 0.44633, -0.222679, -0.202499, -0.000646, 0.779928, -0.138336, + 0.827466, 0.585108, 0.686009, -0.90694, -0.467595, -0.814724, -0.212389, -0.207122, 0.203204, + 0.895971, 0.448905, -0.695858, -0.627143, 0.755105, 0.099544, 0.282505, -0.523035, -0.121949, + 0.284705, -0.656225, 0.652661, 0.498344, -0.583172, -0.410081, -0.235101, 0.155626, -0.36682, + 0.956621, -0.963209, -0.565199, -0.606979, 0.27038, 0.141907, -0.284956, 0.853458, -0.863253, + 0.35245, -0.550252, -0.227709, -0.963, -0.746507, -0.848449, 0.436274, -0.375507, 0.523101, + -0.541949, -0.247765, 0.121047, 0.837925, -0.269514, 0.579722, 0.275872, 0.608203, 0.631708, + 0.405816, -0.301547, -0.280666, 0.389301, 0.545043, -0.053373, 0.501275, -0.601619, 0.563658, + -0.122715, -0.688172, -0.485884, -0.763698, 0.201717, -0.593061, -0.286363, -0.062655, -0.610161, + 0.025678, -0.126913, 0.316742, 0.722408, -0.603669, 0.546746, -0.021187, -0.571555, -0.453514, + 0.254538, 0.208213, -0.0323, -0.497846, 0.504296, 0.148371, -0.972131, -0.176727, -0.271312, + -0.42671, -0.554698, -0.811262, 0.984904, -0.913415, 0.929577, -0.786104, -0.242617, -0.409667, + -0.53525, 0.355536, 0.579595, -0.656902, -0.46575, 0.510427, -0.120876, 0.243549, 0.522853, + -0.369632, -0.554974, 0.368097, -0.366195, -0.665642, -0.504416, -0.464965, 0.995718, 0.192323, + 0.430673, 0.134325, -0.674146, 0.721638, -0.155449, -0.258931, 0.814957, -0.509411, 0.203058, + -0.850684, 0.512423, 0.397211, -0.822296, 0.558137, 0.110049, -0.516365, 0.852633, 0.429473, + 0.351416, -0.371426, -0.54832, -0.538075, 0.375703, 0.269386, -0.598498, 0.909952, 0.582617, + -0.381808, 0.517379, -0.423898, 0.313828, 0.832333, -0.884532, -0.497207, -0.056516, 0.149126, + -0.822374, -0.657902, -0.095779, -0.144178, 0.215695, 0.127068, 0.205142, 0.066293, 0.114937, + -0.057719, 0.359123, 0.682496, -0.49905, -0.518051, 0.438915, -0.723134, 0.649858, 0.461979, + 0.144632, -0.434141, 0.029986, -0.790654, -0.899682, 0.941704, -0.896926, -0.829754, -0.388447, + 0.056157, 0.229034, -0.492782, -0.097039, -0.22331, 0.836725, 0.867954, 0.411009, -0.006164, + 0.749933, -0.807384, 0.417817, -0.581258, 0.779862, -0.883988, 0.371553, -0.822183, 0.583648, + 0.18285, 0.858039, -0.754217, 0.643609, -0.667363, -0.539785, 0.380357, -0.168323, -0.789533, + -0.850913, -0.259625, 0.276878, 0.878355, 0.735457, 0.016389, -0.613394, -0.891554, 0.893402, + -0.557545, -0.175872, -0.806915, -0.691211, 0.194035, -0.247221, 0.114514, -0.007648, 0.050949, + -0.198145, -0.03867, 0.434668, 0.730519, 0.84523, -0.815868, -0.845309, -0.149454, -0.076287, + 0.551938, 0.941359, 0.256798, -0.710259, -0.11319, 0.646728, 0.368954, -0.707214, 0.058368, + -0.965565, -0.402959, 0.699403, -0.433784, 0.610562, -0.815674, 0.884104, 0.477005, 0.64801, + 0.273093, 0.070847, -0.492485, -0.551793, -0.686719, 0.826445, -0.34708, 0.024362, -0.940107, + 0.268388, -0.340886, -0.799828, 0.123763, -0.921214, -0.098526, -0.816643, 0.632204, -0.794164, + 0.163325, 0.495146, -0.799014, 0.647364, 0.814414, -0.612997, 0.083737, 0.303243, 0.828205, + 0.781269, -0.838812, -0.815067, -0.884218, -0.444741, -0.201857, -0.358803, 0.658923, -0.689172, + -0.798126, -0.781717, -0.590257, 0.979465, 0.126281, -0.175087, -0.29388, -0.765924, -0.339281, + 0.526824, 0.675852, 0.72128, 0.071194, -0.545199, -0.590367, 0.971854, -0.9026, 0.236745, + -0.094416, 0.928469, 0.585759, -0.252638, -0.82976, 0.13136, -0.69944, -0.105467, 0.25038, + 0.488328, -0.270457, -0.675034, -0.851669, -0.947198, 0.125433, -0.608639, 0.036266, -0.473754, + -0.676729, 0.674293, 0.565918, 0.70214, 0.959256, -0.723539, -0.532315, -0.752845, 0.671477, + 0.589207, 0.810639, -0.699715, -0.536291, 0.974877, -0.794077, -0.666006, 0.368151, -0.874154, + -0.282735, 0.424907, 0.819234, -0.11347, -0.884941, 0.56609, 0.996938, -0.742378, -0.044179, + -0.723377, -0.510619, 0.336526, 0.467187, 0.413512, -0.941884, -0.242427, 0.426193, -0.092822, + -0.309152, -0.516553, 0.948178, -0.800458, -0.787718, 0.728714, -0.607404, 0.604281, -0.551242, + -0.135278, -0.483166, 0.826215, 0.693264, 0.048051, 0.023978, -0.377394, -0.534521, -0.378249, + 0.327452, -0.179867, 0.678778, 0.143979, 0.011039, -0.621429, 0.403412, -0.925007, 0.233641, + 0.358806, 0.18097, 0.703773, 0.240007, -0.27618, -0.699755, -0.928105, 0.504682, 0.544338, + -0.762777, 0.267727, -0.367721, 0.842255, -0.344684, 0.827746, 0.707314, 0.553093, 0.683405, + 0.31188, 0.338982, -0.850153, -0.228298, -0.113358, 0.485207, -0.387503, 0.458203, 0.678975, + 0.431178, 0.514693, -0.133287, 0.479026, -0.342926, 0.866255, -0.025664, -0.058332, -0.880413, + 0.924882, -0.139912, 0.744809, -0.654205, -0.836625, -0.160063, -0.7996, 0.192158, 0.013469, + -0.366713, 0.626133, 0.647861, -0.88295, -0.801121, 0.585023, -0.60736, 0.192964, -0.266325, + 0.178822, -0.551832, 0.003196, -0.354011, -0.450482, -0.491641, 0.223365, 0.647073, -0.024644, + -0.009766, 0.825068, 0.806105, -0.14517, -0.818849, 0.234668, 0.298579, -0.791296, -0.897074, + 0.104893, 0.976492, -0.89445, -0.489977, -0.344865, -0.883314, -0.615726, 0.784927, 0.764835, + -0.735691, 0.021437, -0.814449, 0.415342, -0.683013, -0.509616, -0.463511, 0.147402, 0.668231, + -0.418532, 0.184448, 0.796221, -0.060593, 0.103257, 0.074255, -0.012775, 0.60037, 0.541093, + -0.535566, 0.954862, 0.575405, -0.15647, 0.870636, 0.053782, 0.631915, -0.849093, 0.897624, + 0.94269, -0.747212, -0.895047, -0.291045, -0.614813, 0.267182, 0.445133, -0.127416, 0.701715, + 0.037894, -0.293912, -0.853571, 0.317821, -0.942206, -0.00342, 0.146167, -0.560048, 0.30042, + 0.194391, 0.669222, 0.625448, -0.809276, -0.741982, -0.367023, -0.7194, 0.313538, -0.65519, + -0.763475, 0.291262, 0.603518, -0.290722, -0.996457, 0.141331, 0.512464, 0.781172, 0.094882, + 0.694229, -0.894138, 0.956678, -0.645736, -0.682574, 0.717673, -0.222212, 0.617135, -0.700424, + 0.756574, 0.948395, 0.302796, 0.806694, -0.714126, -0.220813, 0.304379, 0.56509, -0.533959, + 0.636335, -0.329121, -0.533755, 0.195613, -0.796508, -0.917799, 0.332504, 0.340612, 0.384549, + -0.131139, -0.731335, -0.803337, 0.956899, -0.86693, 0.301393, 0.812181, 0.763976, -0.630504, + -0.322439, -0.799533, 0.627269, -0.938439, -0.920587, -0.667601, 0.815699, 0.648187, 0.670045, + 0.767287, -0.466381, -0.557687, -0.614335, 0.329958, 0.388986, 0.207506, -0.769319, 0.088833, + -0.530641, -0.196647, -0.154809, 0.049708, -0.876819, 0.853599, -0.425521, 0.312452, 0.688644, + 0.40297, 0.70032, 0.564683, 0.732242, 0.211058, 0.638699, -0.434674, -0.538845, 0.477505, + 0.262385, -0.0375, -0.843509, 0.326764, 0.647753, -0.115455, 0.229741, 0.445181, -0.987579, + -0.164528, -0.370965, -0.511118, 0.611208, 0.991488, 0.15956, 0.622384, -0.741882, 0.176174, + -0.129332, -0.61676, 0.205043, 0.318326, -0.0483, 0.424644, 0.480109, 0.907042, 0.057968, + 0.035628, -0.014313, 0.138003, -0.648418, -0.123089, -0.845632, -0.701429, -0.851788, 0.741599, + -0.5747, -0.080702, 0.106909, 0.883217, 0.45384, -0.712133, 0.978076, -0.947187, 0.130018, + 0.913705, 0.867252, -0.231774, -0.667362, 0.439101, 0.770862, -0.5331, -0.158241, -0.608152, + 0.381887, 0.21285, 0.495694, -0.343098, -0.96531, -0.421129, -0.782083, -0.24091, 0.363421, + -0.831932, -0.046678, -0.97838, -0.708649, -0.700139, -0.340485, -0.506678, 0.153924, 0.611304, + 0.754028, 0.315077, -0.006617, -0.178204, 0.679003, -0.57273, 0.722809, -0.962812, -0.74637, + 0.265264, -0.41187, 0.186571, 0.8713, 0.456732, 0.978769, -0.423569, -0.47753, -0.126971, + -0.2014, -0.43987, -0.062086, 0.90342, -0.548158, 0.561583, 0.464546, 0.579118, 0.269781, + -0.369415, 0.412714, -0.470996, -0.613817, 0.934795, 0.828888, -0.722703, 0.812253, 0.20736, + 0.256327, 0.963866, -0.052508, -0.318048, 0.627776, -0.258314, -0.240062, -0.403255, 0.984289, + 0.477161, -0.162111, -0.01995, 0.069988, -0.592796, 0.283925, -0.776128, -0.046625, -0.187635, + -0.408316, 0.924888, 0.28006, 0.481732, -0.658256, 0.159373, 0.267975, 0.519119, -0.295078, + -0.196376, -0.811891, 0.607777, 0.667557, 0.469088, 0.508216, 0.59895, 0.942605, 0.327489, + 0.360983, 0.314535, -0.564721, 0.250898, 0.301292, -0.795953, -0.295956, -0.616995, -0.638959, + 0.694942, 0.786686, -0.137853, 0.306507, -0.234204, 0.212018, -0.167407, -0.520214, -0.420736, + 0.993312, 0.168565, -0.546856, 0.113517, -0.997655, 0.008821, 0.767653, 0.115342, 0.23826, + -0.941969, -0.188089, 0.590084, -0.733203, -0.467809, 0.675806, 0.287179, 0.467473, -0.932517, + 0.636449, -0.218113, 0.210166, 0.808301, -0.92156, 0.286112, -0.904023, 0.740339, 0.293632, + 0.111269, -0.400612, 0.377035, -0.519054, 0.191158, 0.839783, -0.750602, -0.285324, 0.233568, + 0.173578, 0.013752, 0.86032, -0.259864, 0.257952, 0.529963, -0.193892, 0.653433, 0.6531, + 0.4453, -0.243968, 0.86861, -0.577822, 0.309066, 0.20079, 0.705827, -0.819665, 0.174336, + -0.57589, 0.530032, 0.343393, -0.777885, -0.062607, 0.279734, 0.42599, 0.889637, 0.449092, + 0.19071, 0.533434, -0.946245, 0.666728, -0.117574, 0.565964, 0.286363, -0.052735, 0.70391, + -0.582957, 0.282001, 0.438376, -0.355882, 0.362267, -0.989151, -0.505069, 0.486205, 0.51542, + -0.917898, 0.346068, 0.094028, 0.976145, -0.975385, -0.238335, -0.566338, -0.608478, -0.163327, + -0.919076, 0.783452, -0.353801, 0.350392, -0.58843, 0.005392, -0.708433, 0.804882, 0.843377, + 0.78729, -0.350074, 0.622387, -0.835503, 0.45884, -0.123434, -0.828674, -0.802551, -0.935789, + 0.187391, -0.361688, -0.460564, 0.952005, -0.304676, 0.337297, -0.176043, 0.603079, 0.298416, + 0.63326, 0.261119, -0.219168, 0.88383, -0.071291, -0.598643, 0.311192, -0.121346, -0.741631, + 0.130815, -0.232349, -0.398232, -0.477266, -0.42556, -0.404963, 0.098259, 0.966068, -0.586135, + -0.46652, -0.670347, -0.037946, 0.070114, -0.686393, 0.45677, -0.896867, 0.925563, 0.188188, + -0.100785, -0.358066, 0.449, 0.730234, -0.654088, -0.250658, 0.736156, -0.187407, -0.73634, + -0.321366, 0.034543, -0.186687, -0.685296, -0.626492, 0.270389, 0.68614, 0.909721, -0.113029, + 0.384753, -0.794221, 0.532867, 0.955551, 0.520745, -0.395381, 0.815319, -0.947078, -0.119997, + -0.247776, -0.997466, -0.570476, -0.728586, 0.268771, -0.08318, 0.459274, -0.224954, 0.82488, + 0.113268, 0.828942, 0.812048, -0.848052, -0.671571, 0.602327, 0.944772, -0.853515, 0.014636, + -0.384461, 0.941463, 0.830724, 0.727803, 0.538144, -0.093801, 0.922738, -0.46795, 0.049424, + -0.263117, -0.729506, -0.473887, 0.24246, -0.089221, -0.662451, -0.127131, 0.172706, -0.699651, + 0.603936, -0.850188, 0.009567, -0.818023, -0.901754, -0.124222, 0.907575, 0.945343, 0.359409, + 0.775099, -0.546649, 0.562993, 0.610165, -0.9557, -0.766331, 0.432022, 0.092406, -0.67688, + -0.789123, 0.722729, 0.109241, -0.002213, -0.966715, 0.877393, -0.66106, 0.445588, -0.120243, + 0.032586, 0.49101, -0.266389, -0.280546, 0.797184, -0.76628, 0.445009, -0.258071, -0.334132, + 0.669417, 0.168825, -0.931015, 0.893623, -0.496203, 0.864486, -0.313844, 0.975039, 0.295002, + -0.048308, 0.381733, -0.031097, -0.495984, 0.547009, 0.64862, -0.125279, 0.94062, 0.063506, + -0.528854, -0.544949, 0.672829, -0.405087, 0.631607, -0.971394, 0.034447, -0.690946, 0.354723, + 0.812122, 0.393512, -0.343827, -0.938111, -0.4738, -0.589817, 0.954917, -0.537663, 0.386653, + 0.802766, 0.360518, -0.877506, -0.113596, -0.296798, 0.644312, -0.093804, -0.052745, 0.889571, + 0.237962, 0.463555, -0.321909, 0.653974, 0.143781, -0.200873, 0.192713, -0.787145, 0.03677, + 0.458613, -0.936386, -0.53118, 0.626521, 0.022678, -0.034062, 0.102049, -0.44882, 0.826923, + -0.099153, -0.36411, 0.52639, -0.832348, -0.184453, 0.100788, -0.310342, 0.544254, -0.853999, + -0.288294, -0.420298, 0.925333, 0.399085, -0.745963, 0.387565, -0.021207, 0.915426, 0.551865, + -0.584028, 0.89139, -0.178855, -0.227709, 0.299028, 0.993511, 0.301729, -0.964864, -0.319225, + 0.931187, -0.352453, -0.481095, -0.797087, -0.552013, -0.546745, 0.238827, 0.399526, 0.954375, + 0.656268, 0.014776, 0.539296, 0.571587, -0.862525, 0.504595, -0.684067, 0.772217, -0.434943, + 0.207488, -0.01064, 0.463943, 0.15554, -0.725395, 0.405091, 0.589896, -0.520764, -0.648707, + -0.680934, -0.486555, -0.126076, 0.07477, -0.007053, -0.264489, 0.620558, 0.052847, -0.580653, + -0.26465, -0.587935, -0.352787, -0.943305, 0.17473, -0.774837, 0.386765, 0.68504, -0.743928, + -0.527731, -0.790137, 0.266871, 0.193495, -0.516148, 0.604081, 0.414947, -0.903538, -0.054395, + -0.430489, -0.17339, 0.556805, -0.10756, -0.694514, 0.703435, -0.914046, -0.343433, 0.385314, + 0.883889, 0.970543, -0.23492, 0.333697, -0.878231, -0.19458, -0.311056, 0.283874, -0.655203, + 0.216047, 0.516635, 0.779347, -0.169088, 0.913606, -0.944806, -0.283374, 0.379115, 0.256426, + 0.470938, -0.663575, 0.615732, -0.938525, -0.685678, -0.068008, -0.971507, -0.950529, -0.887733, + 0.803989, 0.219355, -0.319071, -0.041099, -0.871619, -0.944451, -0.697379, -0.967438, 0.657913, + -0.349931, -0.269944, -0.861146, 0.165621, -0.150034, -0.680788, 0.641161, 0.84291, -0.712779, + 0.56658, -0.162377, -0.009441, 0.425649, -0.182318, 0.849643, 0.615266, -0.649132, -0.608562, + -0.9908, 0.320166, -0.752187, -0.838179, -0.640967, -0.988672, -0.814243, 0.891965, 0.558585, + 0.886026, -0.485081, -0.410151, -0.350868, 0.019531, -0.717765, 0.146602, -0.640899, 0.15802, + 0.915998, 0.168899, 0.729444, -0.712209, -0.141124, -0.617478, -0.110947, -0.397797, -0.567788, + -0.965941, -0.370793, 0.133918, -0.17592, -0.931345, 0.751178, 0.741487, -0.602901, 0.101655, + 0.664009, -0.949648, -0.8836, 0.554865, -0.019806, 0.318438, -0.415855, 0.181311, 0.663241, + -0.244648, -0.323005, -0.952189, -0.154308, 0.633666, -0.945069, -0.077247, 0.728935, -0.285415, + -0.369468, -0.301632, -0.405157, 0.119686, -0.962804, 0.382137, -0.252556, -0.127319, -0.067469, + 0.558635, -0.621165, -0.909984, -0.723349, -0.73359, -0.486869, 0.789816, -0.773615, -0.587828, + -0.815204, -0.502363, -0.028073, -0.609766, 0.01057, 0.337939, -0.170138, 0.43146, 0.229468, + 0.966008, -0.051054, 0.866759, 0.748493, 0.478049, 0.565934, -0.669702, -0.669746, 0.427043, + 0.363101, 0.902436, -0.130201, -0.183829, 0.685537, 0.032295, 0.938822, -0.510073, -0.328102, + 0.043208, 0.533344, -0.876668, -0.279916, 0.726239, 0.208221, 0.706979, -0.338735, -0.630382, + -0.682708, -0.56223, -0.751508, 0.495569, 0.268785, -0.639824, 0.916597, 0.284699, 0.372157, + -0.421353, 0.692338, -0.705389, 0.728927, -0.543414, 0.424736, -0.361764, 0.649669, -0.838671, + -0.194979, -0.269916, -0.597972, -0.491194, -0.280605, 0.103689, 0.709806, -0.164327, 0.980201, + -0.47587, -0.514815, -0.052163, -0.181033, 0.317633, 0.923986, 0.34239, -0.836769, -0.341659, + -0.198664, -0.910596, 0.309188, 0.872906, 0.496654, -0.019801, -0.076131, -0.468294, -0.111094, + 0.877037, -0.514122, 0.159986, -0.733721, -0.273462, 0.057907, -0.755099, 0.271699, -0.858724, + -0.408504, 0.695898, 0.938054, -0.078184, -0.714742, -0.821073, -0.245752, -0.510308, 0.794911, + -0.712869, 0.601933, 0.190129, -0.304152, 0.815147, 0.556489, -0.034975, -0.677778, -0.294326, + 0.322427, 0.86647, -0.337458, -0.415583, -0.977051, 0.614644, 0.976026, 0.688479, -0.557212, + 0.716378, -0.303168, 0.522819, 0.584715, -0.815295, 0.247468, 0.399223, -0.601168, 0.924549, + 0.780675, 0.835765, -0.009021, -0.535039, -0.546479, 0.353447, -0.198669, 0.794818, 0.837505, + 0.077169, -0.818685, 0.39693, 0.894895, -0.251169, -0.523351, -0.233927, 0.14327, -0.741964, + 0.534037, 0.427446, -0.382332, -0.370445, -0.474491, 0.781696, 0.593094, 0.28423, -0.044851, + 0.249814, 0.9648, 0.316618, -0.49873, 0.38683, -0.396841, -0.035509, -0.644077, -0.029257, + 0.052169, -0.606477, 0.6429, 0.923589, -0.836437, 0.289765, -0.690804, -0.198758, 0.479016, + -0.017554, 0.303032, -0.323999, 0.954324, -0.469489, 0.187165, 0.102647, 0.681177, 0.102118, + 0.602919, 0.257653, 0.637618, 0.012639, 0.333682, 0.98642, -0.325796, -0.406928, 0.725909, + 0.382399, -0.943909, 0.355663, -0.980754, -0.542923, 0.391344, 0.526775, -0.225795, 0.846466, + 0.993784, 0.779775, -0.918457, -0.363738, 0.060841, 0.812772, -0.167747, 0.208899, 0.526342, + -0.523199, -0.605595, 0.988934, -0.022314, 0.707588, -0.975092, -0.381699, 0.701687, -0.096814, + 0.336825, -0.83772, 0.973327, -0.499111, -0.050564, -0.654996, -0.443673, -0.857287, -0.875288, + -0.204296, -0.441089, 0.738698, -0.004838, 0.777596, -0.16749, 0.212155, 0.960403, -0.7738, + -0.433205, 0.854902, -0.229267, -0.269314, 0.080254, -0.536842, 0.071918, -0.415629, 0.31724, + -0.212276, -0.335564, -0.376706, 0.259808, 0.50184, -0.91424, -0.69743, -0.959718, 0.466796, + 0.749976, -0.960801, 0.259961, 0.202804, -0.536633, 0.216052, 0.771077, 0.980869, 0.432425, + -0.198285, -0.568981, -0.380859, 0.008202, -0.073436, 0.729682, -0.903709, 0.089256, -0.318049, + 0.083392, 0.961642, 0.029254, -0.173438, -0.338936, -0.997938, -0.90601, 0.435719, -0.610667, + 0.567747, -0.283512, 0.360774, 0.729995, 0.146287, 0.343359, 0.845076, -0.314235, 0.73542, + -0.841026, 0.915696, -0.328014, -0.037638, 0.560988, 0.073417, 0.874414, -0.439517, -0.55117, + 0.892704, -0.603592, 0.688185, 0.963117, 0.676932, -0.378074, -0.014782, -0.9012, -0.544515, + -0.206979, -0.660698, 0.576913, 0.523992, -0.286163, -0.157269, 0.965961, -0.061594, 0.849364, + 0.926313, -0.350777, -0.955083, 0.932767, -0.537653, 0.956274, -0.638397, 0.181373, 0.295669, + -0.23622, 0.779814, -0.906674, -0.415538, -0.157413, 0.765884, 0.46315, 0.643254, 0.43044, + 0.899429, -0.249042, -0.308712, -0.137319, 0.393387, -0.293251, 0.367281, 0.274169, 0.235131, + 0.814741, 0.159275, 0.663583, -0.278802, -0.89863, 0.61116, 0.414732, 0.840075, 0.382093, + 0.019985, -0.721804, -0.948087, 0.200692, 0.815804, -0.077739, -0.326236, 0.50028, -0.484145, + 0.352863, -0.81148, -0.90627, -0.583398, -0.17122, 0.337199, 0.505972, -0.63295, -0.205378, + 0.329266, -0.220532, 0.015028, 0.647406, -0.288484, 0.515562, 0.812541, 0.333364, -0.177689, + -0.633181, -0.660947, -0.1943, 0.312516, 0.546918, -0.04824, 0.805845, -0.396072, 0.199413, + -0.511971, 0.26871, 0.853469, 0.350399, 0.067003, -0.368029, -0.820454, -0.68431, -0.857792, + 0.710745, -0.417176, -0.149626, -0.896106, -0.27884, 0.850565, 0.18385, -0.178563, 0.521209, + 0.770953, 0.778167, -0.739897, 0.071797, -0.82117, -0.689474, 0.767884, -0.796719, -0.490417, + 0.47957, 0.972973, -0.971416, -0.64528, -0.392133, 0.774658, 0.582771, 0.623424, 0.640761, + -0.250263, 0.737336, -0.0281, 0.093954, -0.265192, 0.424211, 0.446562, -0.106, 0.880339, + -0.258986, 0.25311, 0.90826, 0.563416, -0.364141, -0.452981, 0.192995, -0.007579, 0.070379, + 0.644164, 0.34955, -0.560844, -0.816465, 0.945418, -0.11009, -0.393964, -0.734461, 0.960279, + 0.504606, -0.633936, -0.863667, 0.868722, 0.430542, -0.14689, -0.831086, 0.606106, -0.678821, + 0.491403, -0.94978, -0.89161, -0.959325, 0.906543, 0.908739, -0.853284, 0.773034, -0.607826, + -0.929353, 0.481261, 0.566862, 0.566828, 0.175497, 0.959708, -0.861456, 0.461391, -0.316885, + 0.049388, 0.689688, -0.716105, 0.438232, -0.19974, 0.64682, -0.02626, 0.496137, 0.959492, + -0.35705, -0.985047, 0.943276, -0.550559, 0.228529, 0.621938, -0.155294, 0.781534, 0.648054, + -0.201328, 0.262188, 0.075784, 0.978289, 0.692329, -0.666042, 0.096352, 0.539359, 0.764504, + 0.341432, 0.424917, -0.184634, 0.02169, -0.692105, 0.823241, 0.787439, -0.550646, -0.856144, + 0.779788, -0.886311, 0.641322, -0.97404, -0.511253, -0.423395, 0.939805, -0.169215, 0.862587, + 0.290542, 0.968783, 0.662348, 0.736474, 0.871849, -0.295451, -0.274945, 0.322209, 0.880942, + -0.368008, -0.786614, -0.782261, -0.462, 0.159565, -0.115721, -0.26668, -0.467498, 0.260104, + -0.823717, 0.983823, -0.154868, 0.186588, 0.329423, -0.389091, 0.789192, -0.007412, 0.082034, + -0.951961, 0.123779, 0.343126, 0.139348, -0.099104, 0.755093, 0.790604, 0.688462, -0.173562, + 0.172745, -0.698218, -0.748642, -0.174774, 0.111775, -0.582454, -0.834694, 0.454918, 0.365613, + -0.660703, 0.665437, -0.747463, 0.75646, 0.531244, -0.337967, 0.952057, -0.561474, -0.456791, + 0.79704, -0.257682, -0.403888, 0.154733, -0.168976, 0.629991, 0.816429, 0.444818, 0.216268, + 0.251217, 0.026035, 0.117437, 0.018989, 0.681895, 0.559219, -0.100543, 0.377626, 0.055306, + 0.353383, 0.821001, -0.680375, 0.142109}; + const std::vector v_data{ + -0.208041, -0.977616, -0.971724, -0.130939, 0.715721, -0.659386, 0.325737, 0.57635, -0.72888, + 0.429465, 0.188734, -0.910412, -0.019227, -0.938808, 0.874303, 0.468682, 0.383164, 0.767726, + 0.764764, 0.992751, 0.412582, -0.721978, 0.928836, 0.277785, -0.3942, -0.372165, 0.935736, + 0.222142, 0.726845, 0.07799, 0.923734, -0.731732, 0.238333, 0.238618, -0.011533, 0.889574, + 0.200812, 0.054171, 0.682532, -0.078946, -0.064611, -0.824459, -0.006552, -0.466775, 0.578982, + 0.869938, -0.93293, -0.579215, 0.96277, -0.426822, 0.889336, 0.984564, -0.250787, -0.809492, + 0.500019, 0.454573, 0.86902, 0.14443, 0.54375, -0.857439, 0.137816, 0.235358, 0.626758, + -0.5353, -0.119504, -0.596066, -0.673012, 0.416291, 0.15249, 0.397346, -0.022771, -0.024566, + -0.038397, 0.540162, -0.691941, 0.215564, 0.548334, 0.579991, -0.479879, 0.774382, -0.666462, + 0.521438, 0.818002, 0.032086, 0.30636, -0.947321, -0.39556, -0.392892, -0.931034, -0.211763, + 0.698119, -0.095479, 0.988177, -0.900175, 0.398815, 0.86471, 0.971959, -0.387915, -0.902913, + -0.367543, 0.741308, 0.087617, 0.9558, -0.730178, -0.626182, 0.509633, 0.342879, -0.649681, + 0.930316, -0.385663, -0.831099, 0.277907, -0.560234, -0.475878, -0.558637, 0.271989, 0.468494, + 0.672566, -0.565867, -0.233711, 0.933422, -0.513693, -0.361464, -0.192285, -0.885481, -0.739126, + 0.89089, 0.184594, 0.186842, 0.39643, 0.608148, 0.671713, 0.716237, 0.403612, 0.753867, + 0.653376, -0.16721, 0.090076, -0.523815, -0.752465, 0.948482, -0.744664, -0.625169, -0.965951, + -0.766005, 0.227316, 0.479983, -0.833532, 0.079577, -0.738253, 0.189332, 0.597302, -0.383678, + -0.439023, 0.651349, -0.644469, -0.204374, -0.832588, 0.700735, 0.318942, -0.397267, 0.711633, + 0.946841, 0.408183, -0.706182, -0.218054, 0.804399, 0.726719, -0.328761, 0.66173, -0.654163, + 0.268248, 0.881506, 0.1815, -0.794613, 0.299927, 0.557317, 0.695477, -0.657801, -0.179506, + -0.052046, -0.174835, -0.22193, -0.360325, 0.344388, 0.475202, -0.19423, 0.785821, -0.005374, + 0.243776, 0.250269, -0.340488, -0.043898, -0.111683, 0.378177, -0.537247, -0.459044, -0.965255, + -0.435019, 0.318745, 0.808282, -0.985864, -0.35975, 0.629145, -0.540775, 0.675183, 0.040357, + -0.940206, 0.169088, -0.599398, 0.194355, -0.89601, 0.939662, -0.426665, 0.639558, -0.629177, + -0.838102, 0.393433, 0.6012, -0.008994, -0.845706, -0.274302, -0.692976, 0.283267, 0.161923, + 0.694922, 0.998221, -0.462273, 0.790081, 0.694766, 0.153716, -0.980441, -0.693577, 0.435731, + 0.743079, 0.53443, 0.094252, -0.608148, -0.878707, -0.571466, 0.007451, 0.131811, 0.765875, + -0.721244, 0.523016, 0.847108, -0.90385, -0.532825, -0.279081, 0.191864, 0.895747, 0.204081, + 0.676617, 0.809129, 0.785051, -0.912029, -0.653333, -0.065384, -0.003649, 0.084302, 0.84009, + 0.905733, -0.292581, -0.462297, 0.080996, 0.126529, 0.616719, 0.355273, 0.311612, 0.328292, + 0.744529, 0.595561, -0.098361, -0.697777, 0.674296, -0.081529, -0.716412, -0.166655, 0.7358, + -0.459661, -0.096423, 0.337352, 0.719077, -0.149665, -0.718289, -0.418031, -0.322793, 0.10909, + -0.678994, 0.881124, 0.263637, -0.72037, 0.546101, 0.050465, 0.978409, -0.020095, -0.013188, + -0.965122, -0.82599, 0.003497, 0.848637, -0.618402, 0.195792, -0.689147, -0.775056, -0.3677, + -0.66948, -0.827391, -0.306944, -0.136633, 0.497869, 0.459761, -0.013126, -0.2284, -0.212447, + -0.821384, 0.695143, 0.897009, -0.919379, -0.954815, -0.936972, -0.161285, -0.002415, -0.652959, + 0.552577, 0.065856, -0.506171, -0.967402, 0.778712, 0.991828, 0.09285, -0.478931, 0.635765, + 0.589344, -0.143497, 0.937763, -0.738941, -0.114597, 0.847461, -0.61875, -0.308462, -0.425156, + -0.409368, 0.880849, 0.616359, -0.909118, -0.611623, -0.013049, -0.325149, -0.550706, -0.982955, + 0.737525, 0.559887, 0.290156, -0.225046, -0.969321, -0.062605, 0.382297, -0.290219, 0.787142, + 0.228543, -0.04962, 0.39521, 0.521129, -0.733462, 0.304101, -0.908893, -0.209542, -0.324216, + 0.763553, -0.96321, 0.355285, -0.911219, 0.433512, 0.244905, -0.3935, 0.295371, 0.959771, + 0.608807, -0.912468, -0.259157, 0.907085, 0.154712, 0.123285, 0.071347, -0.351585, -0.261591, + 0.066366, 0.752753, -0.281848, -0.261693, 0.19036, -0.366006, 0.87226, 0.752264, 0.042011, + -0.64667, 0.279867, 0.848051, 0.32944, 0.419157, -0.529314, -0.985107, -0.376028, 0.031958, + 0.888471, 0.208795, -0.18332, -0.251275, -0.191204, -0.537729, -0.418651, 0.185779, 0.677212, + 0.849367, 0.385097, -0.690972, 0.924453, 0.965609, -0.297175, 0.034478, 0.905198, -0.35165, + 0.474067, 0.166331, 0.557426, 0.348414, 0.992136, 0.847497, -0.682337, 0.601793, -0.19785, + -0.523228, 0.167725, -0.136113, -0.651672, -0.882679, -0.557311, 0.102956, 0.609434, 0.589261, + 0.266675, 0.948627, -0.856482, -0.629427, 0.430459, -0.910849, 0.943121, 0.13788, -0.36855, + 0.892291, 0.466245, 0.841012, 0.753377, -0.17404, 0.907784, 0.132061, 0.096832, 0.347479, + -0.782876, -0.597923, 0.94625, -0.654408, 0.540336, 0.604369, -0.81185, -0.114608, -0.0107, + 0.741893, -0.273649, 0.9032, -0.839116, 0.417762, 0.546002, -0.360246, -0.328863, -0.636945, + 0.265305, 0.335114, -0.351489, 0.808699, -0.153225, -0.155816, 0.781021, 0.175213, 0.535311, + 0.589429, -0.654567, -0.012666, 0.883158, -0.618355, 0.13097, 0.742827, 0.110413, -0.224226, + 0.361615, -0.827148, 0.82159, 0.785564, -0.280033, -0.361758, -0.195607, 0.994972, -0.38386, + 0.299443, -0.949392, 0.302268, 0.605906, 0.32368, -0.047518, 0.072978, 0.865978, 0.43458, + -0.231074, -0.803206, 0.72881, -0.372306, 0.623478, -0.200977, 0.016597, -0.788635, -0.380963, + 0.082509, -0.9664, -0.20579, 0.581049, 0.702845, 0.736592, -0.304963, 0.078717, -0.802452, + 0.518012, 0.177056, 0.837026, -0.155568, 0.956393, 0.495434, 0.853412, -0.06508, -0.784626, + -0.784248, -0.942889, 0.166215, -0.773295, -0.326659, 0.508145, 0.909089, -0.250802, 0.692351, + -0.075776, -0.200116, -0.118343, -0.453432, 0.273697, -0.005413, -0.487233, 0.636058, -0.446738, + -0.677279, 0.347145, -0.061407, -0.550489, -0.816331, -0.29961, -0.765667, 0.543896, -0.124559, + 0.515057, 0.486766, 0.080546, -0.153967, -0.515745, 0.22513, -0.869547, -0.487291, 0.797466, + -0.194097, 0.806723, 0.592174, -0.210806, -0.804893, 0.803093, 0.084242, 0.945038, -0.904412, + 0.206073, -0.86159, -0.121412, -0.876512, -0.910177, 0.050447, 0.985877, 0.076623, -0.092647, + 0.932141, 0.091538, -0.558366, 0.635887, 0.713549, 0.867098, 0.786419, 0.929564, -0.370883, + 0.143788, -0.364903, -0.13311, 0.790612, -0.790131, 0.546464, -0.577783, 0.005484, -0.119062, + -0.450428, 0.085275, -0.506558, 0.905745, -0.362013, 0.632947, -0.238198, -0.78733, 0.776281, + -0.276124, -0.414268, 0.074969, -0.010188, 0.282181, -0.242628, -0.288519, 0.547135, 0.458346, + 0.883893, 0.110361, -0.259596, -0.213045, -0.203783, -0.316027, -0.341282, -0.281753, 0.301579, + 0.395674, 0.761126, -0.973131, 0.775464, -0.201472, -0.977185, 0.653745, -0.566957, -0.450627, + 0.331887, 0.163802, 0.681673, -0.697757, 0.543263, 0.521225, 0.618981, -0.332842, 0.169833, + 0.294345, 0.942876, -0.607674, -0.91819, -0.9044, 0.132443, -0.760014, -0.185117, -0.467466, + 0.18115, -0.708618, 0.616677, -0.982387, -0.54786, 0.20635, -0.983587, 0.246481, -0.374116, + -0.505052, 0.71683, -0.322894, 0.236397, -0.386128, 0.467804, 0.910666, 0.959938, -0.604899, + -0.994042, -0.69928, 0.281707, 0.401451, 0.525214, 0.434243, 0.972821, -0.758325, -0.78398, + -0.313151, 0.77617, -0.767871, 0.749745, 0.166392, 0.618568, 0.990748, 0.973328, 0.960007, + -0.245401, -0.426717, 0.424536, 0.852776, 0.024898, -0.236716, -0.161739, -0.356935, 0.480163, + -0.994579, 0.850919, -0.036723, -0.606208, -0.356703, -0.613851, -0.86892, 0.100622, -0.227108, + -0.448891, -0.170307, -0.137876, 0.440565, -0.808911, -0.023447, -0.013647, -0.817483, 0.921798, + -0.474062, 0.79338, 0.766485, 0.027083, 0.744595, -0.752498, -0.109923, -0.824891, -0.608762, + 0.315943, 0.745154, -0.593427, -0.40406, -0.560701, -0.086882, -0.830621, -0.791505, -0.217556, + 0.960805, 0.172265, -0.416256, 0.66851, 0.738056, 0.683441, 0.009308, -0.108336, 0.64953, + 0.537553, 0.758236, 0.720216, -0.283849, 0.846984, 0.19565, 0.995583, 0.994818, 0.838675, + 0.665663, 0.785174, -0.470017, -0.389295, -0.233051, -0.511829, 0.734709, 0.093483, -0.253273, + -0.448033, -0.890314, 0.071751, 0.879038, 0.657529, 0.792587, 0.683238, 0.420799, -0.028796, + -0.739775, 0.735241, -0.703685, -0.601334, 0.401269, 0.549194, -0.520388, 0.632861, -0.935868, + 0.238301, 0.441467, 0.185745, -0.562707, -0.675344, 0.799244, 0.220306, -0.429606, 0.963192, + -0.208732, -0.18492, 0.257393, 0.832551, -0.44515, 0.005041, -0.448946, -0.452942, -0.136312, + -0.00103, 0.5362, -0.746939, 0.580305, 0.781271, -0.114001, -0.089578, 0.246605, -0.91552, + 0.735819, -0.174934, 0.040218, 0.474092, 0.416394, -0.462704, -0.734516, -0.964707, -0.835029, + -0.210218, -0.776323, -0.100973, -0.528315, 0.566634, 0.68401, 0.846005, -0.655753, -0.705712, + 0.346897, -0.228361, 0.758381, -0.917397, 0.927336, -0.693618, -0.801915, -0.106042, -0.443005, + -0.630392, 0.570908, 0.772323, 0.556759, 0.122061, -0.143901, -0.545614, 0.953124, -0.544655, + -0.876777, 0.848422, -0.080649, 0.671921, -0.331912, 0.778871, -0.705172, 0.601784, 0.778312, + -0.013981, 0.663164, 0.035486, -0.915579, 0.438094, -0.7774, 0.031427, -0.899526, -0.476118, + -0.297962, -0.388618, -0.985057, -0.496686, -0.926575, -0.836015, -0.997678, -0.576067, -0.224084, + 0.900876, -0.703513, -0.760436, -0.814062, 0.935538, -0.127885, -0.26606, 0.548292, -0.590849, + -0.264283, 0.916575, 0.532614, -0.775732, -0.274843, 0.0982, 0.361306, -0.460068, 0.700191, + 0.015638, -0.864623, 0.267959, -0.970758, 0.069619, -0.989028, -0.285245, -0.232405, -0.898268, + -0.282852, 0.033581, -0.563415, 0.141913, 0.528064, 0.118021, -0.981559, -0.00316, -0.468644, + 0.285041, -0.802364, -0.691735, -0.033197, 0.576643, -0.267154, -0.052732, -0.099035, -0.782447, + -0.079118, -0.028145, 0.165523, 0.447576, 0.29781, 0.557671, -0.190639, -0.43199, 0.849253, + 0.797324, 0.545213, 0.728464, 0.489772, 0.883974, 0.869899, -0.813062, -0.942368, -0.518823, + 0.764583, 0.902923, 0.065234, -0.739377, -0.469998, 0.475382, 0.931495, 0.193689, -0.657672, + 0.948798, 0.878098, -0.438695, -0.540337, 0.574909, -0.722632, 0.834719, -0.201866, -0.01361, + -0.534234, -0.988609, 0.226245, -0.356285, -0.586345, 0.797112, 0.185434, -0.268132, -0.922186, + -0.562938, -0.326426, 0.420375, -0.911417, 0.577539, 0.909615, 0.309448, -0.992874, 0.130464, + -0.403553, 0.316325, -0.03738, 0.489282, -0.08136, 0.180374, 0.39841, -0.740897, 0.166768, + 0.891116, 0.69826, 0.062246, -0.175851, 0.413487, -0.879369, -0.30119, 0.867368, 0.128689, + -0.012937, -0.787114, -0.648128, 0.138297, -0.751691, -0.289172, -0.492628, 0.308176, 0.152767, + -0.965533, 0.330055, -0.090161, -0.48446, 0.736668, -0.658338, -0.912132, 0.109025, -0.542761, + -0.406094, -0.874541, -0.248527, 0.794491, -0.907307, -0.676203, -0.218833, -0.791415, 0.187186, + -0.198719, 0.756477, -0.993836, 0.033478, 0.440967, 0.129815, -0.272331, 0.937815, -0.776227, + 0.931392, 0.272248, 0.476172, 0.704965, 0.099525, 0.106036, -0.202768, -0.90716, 0.421252, + 0.747909, 0.41812, -0.156034, -0.89516, -0.016529, 0.260059, -0.782712, 0.850339, -0.026333, + 0.273125, 0.882185, 0.434118, -0.541862, 0.368775, 0.587988, 0.498918, -0.469829, 0.101572, + -0.718521, -0.112349, -0.69392, 0.571664, 0.978422, -0.9685, -0.467212, -0.422985, -0.700222, + 0.909943, -0.77244, -0.522807, -0.830732, -0.003318, -0.74019, -0.673611, 0.994391, 0.446859, + 0.424244, 0.709196, 0.17279, 0.162272, -0.751084, 0.280932, -0.781262, -0.004351, -0.539641, + -0.566818, -0.585499, -0.484086, -0.594718, -0.546887, -0.36427, -0.913709, 0.800444, 0.33604, + -0.994658, -0.999507, -0.503617, 0.385869, 0.915303, -0.155771, 0.594996, -0.53937, -0.207561, + -0.155025, -0.973589, 0.005217, 0.264666, 0.60951, -0.773747, -0.301096, 0.037725, 0.106079, + 0.168648, -0.742832, 0.776122, -0.903643, -0.34716, 0.498327, -0.249399, -0.481838, -0.986537, + 0.688745, -0.022454, 0.483023, 0.159539, -0.743676, -0.353356, 0.713032, -0.489707, -0.460753, + 0.54838, -0.4334, 0.163244, -0.486146, 0.307817, 0.101725, -0.793758, -0.758469, 0.367708, + -0.327495, 0.547782, 0.05204, -0.341971, -0.174012, -0.455607, 0.493454, 0.793206, -0.031146, + -0.644676, 0.718871, 0.813704, 0.681712, -0.018099, 0.24582, 0.050864, -0.379824, -0.990176, + -0.122229, 0.432504, 0.583313, 0.237839, 0.456006, 0.625957, -0.193324, 0.652998, -0.021004, + -0.354153, -0.388325, -0.582803, -0.770198, 0.229081, 0.924051, 0.142157, 0.135154, -0.375143, + -0.394195, -0.313424, 0.346137, 0.172406, -0.367417, 0.195945, -0.174716, -0.068116, 0.709065, + -0.416698, 0.933058, -0.546967, 0.926465, 0.375676, 0.401529, -0.228749, -0.27252, -0.731464, + -0.958977, 0.700152, 0.970032, 0.28676, -0.391152, 0.219626, -0.037451, -0.86441, -0.800878, + 0.347198, -0.291976, -0.237847, -0.602923, 0.441016, -0.504628, -0.319358, 0.53503, 0.961328, + 0.891495, 0.393653, 0.035523, 0.751581, 0.884144, 0.448942, 0.29396, 0.241135, 0.101758, + 0.660039, 0.282877, -0.843142, -0.59071, -0.908126, -0.300539, 0.05111, -0.42397, -0.919675, + -0.650362, 0.425591, -0.070442, -0.167651, 0.161901, -0.211233, -0.544973, -0.458889, -0.4076, + -0.936027, -0.922226, -0.378883, 0.375261, 0.977958, -0.027066, 0.682898, 0.330655, -0.796445, + -0.500287, -0.274381, -0.824212, 0.140053, 0.237533, -0.779535, -0.210469, -0.882062, 0.995817, + 0.591468, -0.377222, 0.859684, -0.625909, 0.841289, -0.384841, 0.292179, 0.694898, 0.465573, + 0.242331, -0.115313, 0.007362, 0.853856, -0.326803, -0.324451, 0.12779, -0.485204, -0.378075, + 0.078141, 0.752076, 0.326048, -0.617907, 0.603825, -0.368282, 0.257891, 0.058888, 0.714186, + -0.223358, -0.406321, -0.199208, 0.009089, -0.471915, 0.687312, -0.536139, 0.158196, -0.767773, + -0.124169, -0.21547, -0.40006, 0.522759, -0.89291, 0.104887, -0.093547, -0.52007, 0.777666, + 0.627766, 0.30219, 0.019453, 0.554258, -0.439257, -0.813733, 0.9596, -0.374342, 0.200591, + 0.019971, 0.841868, 0.994682, -0.672794, -0.010665, -0.810717, 0.645876, 0.954784, -0.382245, + 0.181243, -0.220181, -0.24226, 0.794031, -0.929123, -0.136935, -0.004101, -0.881968, 0.411192, + 0.666864, -0.794358, 0.386918, -0.064699, 0.936889, -0.942369, 0.848988, -0.371502, 0.84298, + -0.510104, 0.169376, 0.233278, 0.620386, 0.468709, 0.558867, -0.210505, -0.79117, 0.011612, + 0.912127, 0.865004, -0.588392, 0.687912, 0.449756, -0.180951, 0.545846, -0.041705, 0.121765, + -0.655257, -0.123148, 0.978916, 0.619499, -0.80817, -0.056638, 0.636986, -0.427939, -0.125255, + 0.4988, 0.840451, 0.90728, -0.722424, -0.94227, 0.706707, -0.077455, 0.902849, 0.709807, + -0.390396, 0.286488, 0.336437, -0.35792, 0.898466, 0.082056, -0.326838, -0.913401, 0.800322, + -0.9916, 0.761146, -0.350232, -0.18307, 0.135086, 0.983012, -0.658292, -0.710203, 0.601083, + -0.485686, -0.368003, 0.578097, -0.414515, 0.595635, -0.390014, 0.769202, 0.996191, 0.138318, + -0.33291, 0.562523, 0.279509, 0.004341, 0.892153, -0.057841, 0.351504, -0.297822, -0.181427, + -0.043045, 0.067285, 0.43732, 0.754347, 0.613034, -0.420605, 0.896335, 0.67546, 0.360491, + 0.109134, -0.565942, -0.596844, 0.005013, -0.743821, 0.350806, -0.907738, -0.891713, -0.449159, + 0.575389, 0.782999, -0.840526, -0.631532, 0.221845, -0.18226, -0.819505, 0.277799, -0.832374, + 0.062585, 0.407642, 0.922404, -0.853437, 0.746697, 0.13915, 0.870656, 0.984346, -0.249405, + -0.155745, -0.241739, 0.786489, -0.433041, 0.660407, 0.411282, 0.940264, 0.708304, 0.811569, + -0.821955, -0.526344, -0.709507, 0.496537, 0.203433, 0.381165, 0.375329, 0.042326, 0.381614, + -0.542255, 0.649693, -0.860922, -0.918858, 0.339613, 0.938819, -0.365839, 0.941976, -0.354971, + -0.75991, -0.155478, 0.553045, -0.520509, 0.937784, -0.447202, -0.442635, -0.416478, -0.761643, + 0.932828, -0.564976, -0.449913, -0.302999, 0.841797, 0.466513, 0.368189, -0.262962, 0.505376, + 0.181403, 0.796744, 0.221992, 0.733963, 0.690124, 0.174751, -0.958269, 0.20347, -0.754502, + 0.17181, -0.111987, 0.795666, -0.717793, -0.83601, 0.445707, 0.660263, -0.217644, 0.27066, + 0.802557, 0.099473, -0.2795, 0.578205, 0.90126, -0.169742, 0.678504, 0.083434, -0.209387, + -0.087275, -0.970777, 0.479725, -0.544295, -0.851661, -0.138642, -0.407433, -0.636493, -0.210528, + -0.10554, 0.303932, 0.137059, -0.13361, 0.22013, -0.647035, 0.846155, 0.489666, 0.632626, + -0.891943, 0.682579, 0.176763, -0.966366, 0.949531, -0.020927, 0.191783, 0.827302, 0.644882, + 0.889675, -0.933364, 0.988636, 0.243583, 0.012987, -0.785719, -0.537755, 0.970821, 0.743515, + 0.779513, -0.084038, -0.557027, 0.233494, -0.476504, -0.650943, 0.322966, 0.784358, -0.767144, + -0.883922, 0.13511, -0.352336, -0.534737, -0.20468, -0.05783, -0.277337, 0.740541, 0.554139, + 0.314526, -0.320672, -0.089135, 0.64832, 0.082914, -0.96473, 0.095017, 0.523632, -0.256504, + -0.186682, -0.135665, 0.614538, 0.825731, -0.784765, 0.658853, 0.409494, 0.350062, -0.568054, + -0.570902, 0.992967, 0.255903, -0.222554, -0.202543, 0.669512, -0.249108, 0.675625, -0.283525, + 0.236374, 0.263435, -0.512233, 0.024718, 0.199735, -0.978004, -0.196941, 0.095207, 0.823635, + 0.221443, -0.84996, -0.293095, 0.990072, -0.130131, 0.754413, 0.114733, 0.656173, -0.429736, + 0.982393, 0.211047, -0.204731, 0.768906, 0.493136, -0.672171, -0.071903, 0.716727, 0.24914, + -0.31626, -0.651077, -0.70026, 0.55588, 0.452498, -0.886131, -0.205327, 0.253092, -0.884766, + 0.861798, -0.106649, -0.406226, 0.111347, 0.36127, 0.222215, 0.948334, 0.562947, -0.096855, + 0.17023, 0.242318, -0.396622, -0.856885, -0.106373, -0.380901, -0.944632, 0.356629, -0.419579, + 0.957412, 0.357641, 0.425863, 0.291464, 0.39, 0.640285, 0.734626, -0.054644, -0.283486, + 0.270934, -0.451205, -0.050812, 0.29198, 0.446831, -0.967273, 0.387216, -0.38718, -0.704359, + -0.425873, -0.021575, 0.492471, -0.890629, 0.271628, 0.900985, -0.564972, 0.238957, -0.402018, + 0.245853, 0.433016, -0.616011, 0.239293, 0.988395, 0.070163, -0.709828, 0.012508, 0.220527, + 0.307916, -0.07209, -0.214312, -0.497212, 0.646199, -0.5649, -0.340376, 0.6635, -0.469941, + -0.130522, -0.398699, -0.886379, 0.482054, -0.444037, -0.461465, -0.22035, 0.273985, 0.878043, + 0.884515, 0.01366, -0.857666, 0.073791, 0.023107, 0.844542, -0.206692, -0.939626, 0.363301, + -0.219311, 0.348932, 0.300891, 0.356459, 0.553152, -0.701054, -0.814533, 0.936268, 0.914023, + -0.394751, 0.957489, 0.197416, -0.262765, -0.541584, -0.532165, 0.802393, -0.614662, -0.410177, + 0.995498, -0.488509, 0.983927, 0.446597, 0.496102, 0.227729, -0.179013, 0.445846, 0.297854, + -0.545573, -0.823799, -0.812735, -0.121026, 0.286, -0.633832, 0.184237, 0.576055, 0.58816, + -0.373677, 0.229236, -0.886641, 0.719434, -0.799198, 0.055503, -0.314145, -0.829139, -0.866799, + -0.642419, -0.725967, 0.763129, -0.153608, -0.667632, 0.003607, -0.451431, -0.144807, 0.859999, + -0.882548, -0.868719, 0.245076, 0.697009, -0.950072, 0.314172, 0.990757, -0.160659, -0.590065, + 0.490587, 0.564838, -0.103814, -0.815591, 0.038782, -0.647599, -0.853704, 0.624154, 0.6868, + 0.401479, -0.815963, 0.848063, 0.732594, 0.859443, -0.066468, -0.185201, -0.896853, 0.737937, + -0.052436, -0.999891, 0.977762, -0.129295, 0.601448, -0.147605, -0.157318, 0.879662, 0.830278, + -0.466724, 0.031244, 0.679247, 0.04806, -0.180208, 0.893423, 0.890467, -0.268055, 0.757131, + -0.099043, 0.029715, 0.802172, -0.077585, -0.099474, -0.217297, -0.834916, 0.774299, -0.784541, + -0.767554, 0.135347, -0.105312, 0.039199, 0.078677, 0.991115, -0.970928, -0.601242, 0.184467, + -0.890237, -0.790028, 0.766246, 0.387208, -0.310187, 0.263893, 0.174901, -0.09852, 0.830411, + -0.000267, 0.709446, -0.77839, -0.406308, 0.169137, 0.534173, -0.406878, 0.721425, -0.829615, + -0.381452, 0.751788, -0.747192, -0.937863, -0.252406, -0.833135, 0.297474, -0.175817, -0.294357, + 0.553019, 0.05818, -0.901559, -0.947615, 0.628042, 0.431251, 0.549527, -0.849303, -0.193243, + 0.854375, 0.807731, 0.679838, 0.928336, -0.313364, -0.774152, 0.562155, 0.637599, -0.301992, + -0.093353, -0.048157, -0.887076, -0.414196, -0.316873, 0.373316, -0.291774, 0.451322, 0.900446, + -0.213167, -0.243748, -0.628099, -0.076318, -0.91513, 0.675928, 0.862621, 0.266707, 0.945766, + 0.503706, 0.662875, 0.923629, -0.687534, -0.078454, 0.375685, -0.267668, -0.70936, -0.313993, + -0.49572, -0.350734, -0.761799, -0.301648, 0.572985, -0.438906, 0.425966, -0.822376, -0.630136, + 0.103646, 0.926069, -0.923516, 0.435276, 0.174896, -0.817106, -0.726068, 0.503827, -0.499669, + 0.700791, -0.69154, 0.755438, -0.510161, 0.405087, 0.299204, -0.784683, -0.52444, -0.242234, + 0.003173, 0.493871, -0.411063, 0.14713, -0.542452, -0.475335, 0.652575, -0.273883, -0.876235, + 0.042005, -0.142555, 0.284287, -0.510121, 0.043071, -0.493341, -0.604363, 0.228593, 0.309087, + 0.185001, 0.923712, 0.092701, 0.085037, -0.130736, -0.966801, 0.391117, 0.779553, 0.099094, + -0.779897, 0.897889, 0.224025, 0.723307, 0.434318, 0.157735, -0.294632, 0.205302, 0.321762, + -0.060624, -0.638738, -0.525541, -0.91655, -0.39111, -0.16121, 0.817872, -0.534917, -0.983973, + 0.548107, 0.862205, -0.779975, -0.009987, 0.317929, 0.644685, -0.179515, 0.455459, 0.768339, + 0.585193, 0.487225, 0.608144, -0.896105, 0.212623, 0.771171, -0.792318, -0.87657, -0.825798, + 0.307036, 0.928066, -0.090702, -0.397525, 0.05918, -0.824533, 0.173108, -0.657449, -0.673074, + -0.729465, -0.283111, 0.651705, 0.203111, 0.695933, -0.964762, -0.81439, 0.612715, 0.787713, + 0.849233, -0.928724, 0.447923, -0.986071, -0.295744, 0.020258, 0.467628, -0.305482, -0.864665, + -0.971739, -0.401022, 0.762089, 0.433885, 0.494634, -0.808759, -0.898534, 0.925258, 0.653193, + -0.431021, 0.084085, 0.720423, 0.90017, -0.804634, -0.495627, 0.388601, 0.764042, 0.173975, + -0.061715, 0.038735, 0.910003, -0.785129, 0.455572, -0.71594, 0.095079, -0.94465, 0.647679, + -0.557167, 0.066428, -0.627156, 0.091579, -0.486962, -0.511417, -0.433363, 0.620466, 0.13975, + -0.25757, 0.851712, 0.195969, -0.323614, -0.045218, -0.390992, -0.396706, -0.312276, 0.238313, + -0.890431, -0.778772, 0.67128, -0.239503, -0.036922, 0.349252, -0.447293, 0.70054, -0.22636, + 0.060935, -0.693546, 0.406639, -0.710765, 0.608168, -0.141575, -0.365228, -0.334751, 0.381523, + 0.979419, 0.271683, 0.612943, -0.842927, -0.235996, -0.566321, -0.717725, 0.171703, -0.312623, + 0.226369, -0.39762, -0.911836, -0.51464, -0.961205, 0.216575, -0.750732, 0.768701, 0.432804, + -0.561085, -0.285781, -0.89595, 0.720428, -0.447182, -0.210074, 0.073874, 0.48545, -0.298123, + 0.490276, 0.514313, -0.123558, 0.663047, -0.876917, -0.544515, -0.078476, -0.101817, 0.35477, + 0.722259, -0.722082, 0.524749, 0.239939, 0.830502, 0.533737, -0.217359, -0.1418, -0.665465, + 0.220647, 0.782547, 0.344106, 0.808546, 0.399405, 0.192416, -0.216493, -0.863928, -0.18746, + 0.848868, 0.869496, -0.338322, 0.820786, 0.824327, -0.853278, -0.986418, -0.498059, -0.101189, + 0.387368, 0.418699, 0.63351, -0.489733, 0.668856, 0.227987, -0.709922, -0.739043, 0.355506, + 0.931087, -0.663927, 0.118491, -0.946684, 0.651356, 0.294827, -0.254702, 0.528339, 0.414729, + 0.674034, 0.100008, 0.009871, 0.479859, 0.337248, -0.84757, -0.38385, 0.618273, -0.509365, + 0.773541, -0.191893, 0.957836, -0.587831, 0.707241, -0.441622, 0.707164, 0.552164, 0.402681, + 0.292623, 0.597407, -0.39861, -0.322431, 0.271681, -0.709283, 0.059427, 0.417348, -0.908514, + -0.05388, 0.056658, -0.769874, 0.785056, 0.045251, -0.940997, -0.346867, 0.18122, 0.724421, + -0.322952, 0.874716, -0.422985, -0.806103, -0.273217, -0.652551, 0.332353, 0.660361, -0.844073, + -0.732056, 0.555791, -0.214512, 0.911844, 0.907848, -0.663611, 0.589021, -0.964382, 0.402559, + -0.57054, -0.00568, 0.971097, 0.135614, -0.537477, 0.459586, -0.160781, 0.897469, -0.747845, + -0.170021, -0.840178, -0.567223, -0.285388, -0.659763, -0.68127, -0.248085, -0.571184, -0.605941, + 0.054028, -0.751017, 0.57603, 0.658968, 0.920101, 0.309864, -0.094422, -0.174717, -0.475378, + 0.680155, 0.553761, 0.722094, -0.194146, -0.690872, 0.333537, 0.876577, -0.158618, 0.807606, + 0.706113, 0.351585, -0.270448, -0.335351, -0.175086, -0.075046, -0.20582, -0.974094, -0.685869, + -0.317122, 0.768412, 0.413183, -0.910749, -0.715929, -0.586738, 0.948372, 0.247571, 0.801005, + -0.807513, 0.934162, 0.81372, 0.069368, -0.467651, 0.391985, -0.537332, -0.414554, 0.375125, + -0.768074, 0.243352, -0.053331, 0.009312, 0.04582, 0.241118, -0.597709, 0.411585, -0.938084, + 0.420675, -0.812587, 0.962361, 0.240485, 0.277009, 0.265662, 0.194282, -0.382412, -0.973028, + 0.598035, 0.605618, -0.182954, 0.050132, -0.064272, -0.22582, 0.682273, -0.59787, -0.934406, + -0.165316, -0.583026, -0.66044, -0.287354, -0.038479, 0.656845, 0.562734, 0.81399, 0.748388, + 0.300755, -0.006519, -0.031929, -0.758978, 0.09533, -0.233831, -0.275427, 0.84062, 0.458847, + 0.627431, 0.645933, -0.578992, 0.28859, -0.125445, 0.348986, 0.587912, -0.251029, 0.7504, + 0.041804, -0.190263, 0.655107, 0.774747, -0.282163, 0.575134, -0.222805, -0.030571, -0.710786, + -0.426404, 0.131652, -0.230638, -0.100222, 0.240365, -0.397305, 0.528429, 0.980461, 0.796796, + 0.88025, -0.277441, 0.032204, -0.335431, -0.487182, -0.223976, 0.608634, -0.935147, -0.529974, + 0.513563, 0.521517, -0.255718, -0.226996, -0.139148, 0.724082, 0.7226, -0.466885, 0.165731, + -0.967998, -0.660161, -0.091511, -0.334421, -0.471822, 0.821794, 0.497737, 0.077042, -0.294423, + 0.014852, 0.820578, -0.186724, 0.076187, 0.309722, 0.592235, 0.612496, -0.468182, 0.393051, + 0.159103, 0.144061, -0.861699, 0.925394, 0.445974, 0.117262, 0.384242, -0.248357, -0.717965, + -0.261475, -0.895084, 0.864851, 0.428013, 0.26242, -0.676375, -0.651368, 0.570342, -0.810198, + 0.193961, 0.748163, -0.871912, 0.705935, -0.824369, -0.194219, 0.690536, 0.741561, 0.908188, + 0.827401, -0.964525, 0.167585, -0.893664, 0.569257, 0.296057, 0.770564, 0.234612, 0.685558, + -0.043882, -0.803144, -0.657719, -0.014072, -0.898107, 0.849225, -0.600385, -0.758766, 0.97387, + -0.64117, -0.446382, 0.016862, 0.318889, -0.358499, 0.535276, -0.640174, 0.194152, -0.983863, + -0.897881, 0.354027, 0.480713, -0.446549, 0.35098, -0.261514, 0.558631, 0.109196, -0.220941, + 0.189994, -0.949069, 0.560162, 0.924297, 0.852929, -0.576102, -0.402642, -0.438143, 0.152039, + -0.700264, -0.750934, -0.388955, 0.875342, 0.263431, -0.905547, -0.466557, -0.792224, -0.128317, + 0.031728, -0.667775, -0.779944, -0.19716, 0.058343, 0.7351, 0.362907, -0.582345, -0.922989, + 0.194998, -0.143468, 0.58641, -0.691822, -0.04853, -0.729419, -0.501499, -0.590005, -0.208257, + -0.083779, 0.929624, 0.886311, 0.77896, 0.239078, 0.015814, 0.952006, -0.690238, -0.923721, + -0.540353, 0.749056, 0.97907, -0.410938, -0.647204, -0.888382, 0.463356, -0.402741, 0.747459, + -0.353579, 0.914878, 0.644704, 0.65874, 0.5319, -0.803564, 0.13721, -0.596599, -0.3073, + 0.619382, -0.508154, 0.630616, 0.051597, -0.474161, -0.485624, -0.972105, 0.343016, 0.038402, + 0.890337, 0.36043, 0.310567, -0.053122, 0.467344, -0.148367, 0.40093, -0.454742, 0.632344, + 0.274213, 0.528261, 0.067533, 0.474618, 0.903739, 0.153887, 0.695288, -0.915589, -0.079129, + -0.869109, 0.071501, 0.187793, 0.282378, -0.42566, 0.468098, -0.420769, -0.254394, 0.749962, + -0.920293, 0.202949, -0.860376, 0.429736}; + const std::vector wanted_output{ + -0.208041, -0.977616, -0.971724, -0.130939, 0.715721, -0.659386, 0.325737, 0.57635, -0.72888, + 0.429465, 0.188734, -0.910412, -0.019227, -0.938808, 0.874303, 0.468682, 0.383164, 0.767726, + 0.764764, 0.992751, 0.412582, -0.721978, 0.928836, 0.277785, -0.3942, -0.372165, 0.935736, + 0.222142, 0.726845, 0.07799, 0.923734, -0.731732, 0.040989, 0.090279, 0.008264, -0.00183, + 0.038877, 0.027377, 0.087353, -0.011764, -0.062313, 0.042462, 0.002136, -0.012737, 0.028253, + -0.078992, 0.063626, 0.002801, 0.045479, 0.015913, 0.059632, -0.066053, -0.095096, -0.10321, + 0.17076, -0.072522, 0.11793, 0.003737, 0.103252, -0.062272, 0.002992, -0.000787, 0.057178, + -0.011599, 0.07701, 0.077173, 0.00913, 0.00276, 0.021749, 0.004965, 0.081771, -0.010073, + -0.100736, 0.022182, -0.081157, -0.033751, 0.043107, -0.109571, 0.075408, -0.016339, 0.018294, + 0.05294, 0.030099, -0.103612, -0.071765, -0.082018, 0.131708, -0.016904, 0.098639, -0.006119, + 0.08295, -0.081459, -0.053738, -0.028286, 0.076286, -0.005598, 0.052709, 0.074464, 0.021946, + 0.016143, 0.062499, 0.01777, 0.039213, 0.013739, -0.068164, 0.048809, -0.022361, -0.012271, + 0.016695, -0.073593, 0.074361, 0.025744, 0.033051, 0.004318, 0.018224, -0.062627, -0.082109, + -0.054764, 0.140386, -0.059793, 0.103163, -0.014689, 0.072019, -0.090173, -0.054023, -0.021468, + 0.120477, -0.033103, 0.063402, 0.113335, 0.011059, 0.016532, 0.042569, 0.047703, 0.07203, + 0.006112, -0.108496, 0.075724, -0.02999, -0.037017, 0.024979, -0.120372, 0.117379, 0.046128, + 0.046766, -0.00315, 0.051332, -0.088651, -0.124091, -0.058811, 0.119856, -0.06085, 0.109544, + -0.009287, 0.103815, -0.059141, -0.055959, -0.031678, 0.08842, -0.006995, 0.037768, 0.127666, + 0.027393, -0.01079, 0.017767, -0.000963, 0.074596, -0.008817, -0.070699, 0.052082, -0.033534, + 0.009899, 0.090298, -0.093045, 0.084731, -0.028876, 0.057013, 0.026865, 0.03856, -0.09892, + -0.116713, -0.099726, 0.120256, -0.022472, 0.126725, 0.01168, 0.106561, -0.053435, -0.057757, + -0.030337, 0.070092, -0.019156, 0.022358, 0.137445, 0.063575, -0.013927, -0.003133, 0.044087, + 0.072252, 0.029536, -0.081026, 0.068446, -0.04122, 0.009096, 0.059965, -0.06155, 0.071491, + 0.028486, 0.07475, 0.011241, 0.031648, -0.091204, -0.142379, -0.07225, 0.113163, -0.059787, + 0.139767, 0.037241, 0.103944, -0.070307, -0.043689, -0.008891, 0.047376, 0.001659, 0.018299, + 0.110045, 0.030443, -0.028929, 0.007395, 0.024794, 0.038271, 0.060234, -0.075859, 0.063932, + -0.036152, -0.004746, 0.103939, -0.089807, 0.058296, 0.004781, 0.036161, 0.02967, -0.000275, + -0.034284, -0.109385, -0.130799, 0.119695, -0.054634, 0.117579, -0.003862, 0.094889, -0.07849, + -0.015636, -0.06708, 0.065902, -0.029348, 0.055262, 0.095877, 0.021998, -0.005241, 0.009942, + 0.056041, 0.02598, 0.049684, -0.081485, 0.066741, -0.008259, 0.001097, 0.010131, -0.068051, + 0.049252, 0.051544, 0.042704, -0.016665, 0.018472, -0.082721, -0.108233, -0.066781, 0.123036, + -0.037495, 0.096099, 0.020847, 0.084554, -0.095724, -0.073735, -0.000902, 0.082051, -0.028436, + 0.042304, 0.11454, 0.004621, -0.049862, -0.011154, 0.016961, 0.061231, 0.023101, -0.104929, + 0.026709, -0.091035, 0.007577, 0.050927, -0.090165, 0.057982, 0.035553, 0.049767, 0.032691, + 0.047839, -0.083467, -0.096583, -0.059672, 0.118159, -0.024782, 0.136882, 0.02518, 0.075647, + -0.084396, -0.078577, -0.035816, 0.054726, -0.008577, 0.064114, 0.117786, 0.025933, -0.038342, + -0.001793, 0.063931, 0.042546, 0.063263, -0.094726, 0.048965, 0.016207, -0.004743, 0.051491, + -0.085797, 0.047318, 0.05235, 0.041819, -0.001087, 0.020736, -0.06528, -0.124525, -0.077922, + 0.0961, -0.038901, 0.124004, -0.008949, 0.091324, -0.084594, -0.051864, -0.056487, 0.087491, + -0.052368, 0.018491, 0.113315, 0.008942, 0.011397, 0.028517, 0.028476, 0.067888, -0.025966, + -0.065283, 0.01749, 0.002326, -0.018133, 0.074924, -0.068605, 0.066615, 0.00505, 0.046681, + 0.049002, 0.089381, -0.085665, -0.11418, -0.080417, 0.134955, -0.039777, 0.087352, -0.001901, + 0.154074, -0.053369, -0.035766, -0.026895, 0.052207, -0.012689, -0.002199, 0.11106, 0.059923, + 0.007888, 0.01446, 0.01372, 0.050528, 0.018578, -0.092549, 0.074543, -0.047365, -0.018038, + 0.05969, -0.051245, 0.050087, 0.035251, 0.043525, 0.051542, 0.019055, -0.111575, -0.08612, + -0.081371, 0.135407, -0.03502, 0.095346, 0.021388, 0.103686, -0.076598, -0.042214, -0.071888, + 0.066698, -0.013194, 0.011943, 0.089849, -0.000837, -0.015349, -0.010902, 0.025049, 0.027314, + 0.045394, -0.094517, 0.008192, -0.050115, -0.032853, 0.079571, -0.093428, 0.04585, 0.041986, + 0.033902, 0.059646, 0.033394, -0.033443, -0.097551, -0.074648, 0.124056, -0.032795, 0.121078, + 0.008955, 0.066091, -0.096129, -0.054138, -0.029666, 0.015126, -0.018145, 0.038522, 0.099744, + -0.015474, -0.010231, -0.019253, -0.017569, 0.030253, 0.024928, -0.086734, 0.044975, -0.041989, + -0.028935, 0.065784, -0.110266, 0.056141, 0.041809, 0.079155, -0.003474, 0.011688, -0.025735, + -0.122828, -0.115775, 0.143612, -0.070583, 0.15007, 0.026798, 0.072694, -0.080229, -0.098746, + 0.022049, 0.05512, -0.00431, 0.02452, 0.119153, 0.042106, -0.028746, 0.009022, 0.022652, + 0.045978, 0.009767, -0.080229, 0.061118, -0.053197, 0.028906, 0.051951, -0.052515, 0.036885, + 0.008465, 0.04201, 0.031423, 0.002669, -0.083804, -0.082814, -0.099711, 0.139585, -0.065728, + 0.115768, 0.032132, 0.085119, -0.097874, -0.059338, -0.035952, 0.071165, -0.034979, 0.039853, + 0.086898, 0.015202, -0.035008, -0.019642, 0.043977, 0.038659, 0.033173, -0.058174, 0.044674, + -0.041455, 0.019525, 0.053124, -0.052492, 0.058684, 0.017891, 0.037058, 0.037424, 0.031208, + -0.074539, -0.106544, -0.06599, 0.09736, -0.038798, 0.116305, 0.034073, 0.09123, -0.096809, + -0.059632, -0.011891, 0.03795, -0.031737, 0.045172, 0.144439, 0.05083, -0.031322, -0.010306, + 0.014927, 0.076624, -0.010112, -0.061123, 0.088057, -0.028445, 0.027046, 0.061116, -0.057134, + 0.05929, 0.012549, 0.06856, 0.038487, 0.045845, -0.107125, -0.11109, -0.080938, 0.122315, + -0.057666, 0.101651, 0.046622, 0.116948, -0.060256, -0.014375, -0.050043, 0.064557, -0.033853, + 0.023427, 0.083802, -0.007518, 0.003469, 0.008843, 0.003146, 0.037644, 0.008432, -0.053223, + 0.020744, -0.047772, 0.019649, 0.099396, -0.065958, 0.069067, -0.02974, 0.045346, 0.043195, + 0.021036, -0.035304, -0.070568, -0.109322, 0.135561, -0.064325, 0.11474, -0.001626, 0.08689, + -0.098036, -0.047619, -0.04741, 0.099636, -0.037159, 0.029595, 0.088573, 0.020696, -0.017663, + 0.015392, 0.009839, 0.068209, 0.019233, -0.071737, 0.040162, -0.002998, 0.001523, 0.03769, + -0.085049, 0.071823, 0.022295, 0.079906, 0.010043, 0.026376, -0.065264, -0.086044, -0.071194, + 0.139649, -0.061897, 0.106212, -0.000407, 0.12183, -0.074077, -0.01041, -0.023707, 0.0534, + -0.003968, 0.047003, 0.111149, 0.017755, -0.031677, -0.00461, 0.027847, 0.083944, 0.014619, + -0.076835, 0.040293, -0.047681, -0.024999, 0.065306, -0.093006, 0.044029, 0.015313, 0.005271, + 0.045802, 0.072546, -0.069828, -0.138552, -0.077253, 0.136534, -0.037334, 0.096092, 0.008507, + 0.105644, -0.065483, -0.007026, -0.028734, 0.004211, -0.004459, 0.001696, 0.105072, -0.024402, + -0.084154, 0.008518, -0.00173, 0.078875, -0.030815, -0.099615, -0.000223, -0.054275, -0.008673, + 0.067911, -0.135537, 0.02299, 0.032543, 0.077666, 0.012903, -0.008677, -0.065781, -0.096159, + -0.08898, 0.16187, -0.063434, 0.130691, -0.008539, 0.069786, -0.093568, -0.035234, -0.031669, + 0.07022, 0.057786, 0.102001, 0.083263, 0.022526, -0.041724, -0.040311, 0.078142, 0.083638, + 0.02132, -0.099878, 0.04409, -0.012055, 0.00942, -0.017547, -0.078187, 0.093641, 0.012614, + 0.038721, 0.030746, 0.071655, -0.07451, -0.125133, -0.049138, 0.099044, -0.030786, 0.102915, + 0.001956, 0.11051, -0.082845, -0.053338, -0.024743, 0.031501, -0.029667, 0.035202, 0.13316, + 0.077647, -0.026608, -0.010041, 0.023721, 0.090654, -0.002023, -0.066949, 0.055775, -0.017918, + 0.022377, 0.075308, -0.062374, 0.073453, -0.009745, 0.066892, 0.031258, 0.026747, -0.085317, + -0.176846, -0.106186, 0.114963, -0.033601, 0.146032, 0.028311, 0.111907, -0.063727, -0.037302, + -0.010688, 0.021442, -0.014616, 0.054105, 0.114463, 0.017258, 0.004335, -0.014755, 0.018105, + 0.07038, 0.018176, -0.045186, 0.036526, -0.012035, -0.000269, 0.080561, -0.094911, 0.062979, + 0.011576, 0.023643, 0.020475, 0.055371, -0.048238, -0.166123, -0.1117, 0.123243, -0.050161, + 0.139722, 0.013002, 0.104379, -0.051005, -0.012623, 0.009005, 0.045896, 0.010313, 0.044255, + 0.092533, 0.019977, -0.011292, 0.000365, 0.03204, 0.058718, -0.015682, -0.079746, 0.039555, + -0.028719, -0.018096, 0.068101, -0.09059, 0.04906, 0.01759, 0.039613, 0.08146, 0.059332, + -0.096035, -0.083228, -0.088309, 0.123332, -0.053714, 0.104318, -0.020744, 0.117217, -0.063947, + 0.005585, -0.038501, 0.033653, -0.015222, 0.018246, 0.118619, 0.065161, -0.030902, 0.03289, + 0.040042, 0.055662, 0.003251, -0.091914, 0.051381, -0.021946, 0.009794, 0.082586, -0.075212, + 0.062888, 0.017772, 0.028247, 0.052803, 0.020465, -0.110384, -0.095792, -0.090724, 0.120689, + -0.03013, 0.128163, 0.001073, 0.094758, -0.070211, -0.014103, -0.034407, 0.014659, -0.022029, + 0.049901, 0.102575, 0.008786, -0.004597, -0.02429, 0.014351, 0.057503, 0.031686, -0.086762, + 0.043544, -0.044161, -0.014723, 0.086547, -0.129231, 0.082495, 0.016446, 0.080171, 0.048222, + 0.060668, -0.041097, -0.0995, -0.093519, 0.11641, -0.05428, 0.12604, 0.001019, 0.092612, + -0.069399, -0.026429, -0.030964, 0.040174, -0.018813, 0.02131, 0.08923, 0.024022, 0.00327, + 0.002275, 0.059497, 0.04148, 0.022454, -0.039117, 0.067698, -0.01854, -0.004045, 0.05195, + -0.039493, 0.084469, 0.025293, -0.012949, 0.046126, 0.039756, -0.097018, -0.083815, -0.076965, + 0.082252, -0.010314, 0.103869, -0.007482, 0.095802, -0.075037, -0.055837, -0.019692, 0.019809, + -0.002572, 0.034725, 0.147068, 0.026831, -0.031873, 0.006528, 0.007356, 0.052277, 0.040128, + -0.076338, 0.034371, 0.006952, 0.03858, 0.077277, -0.087397, 0.053949, 0.008819, 0.068022, + -0.010702, 0.031265, -0.065718, -0.131697, -0.127705, 0.130281, -0.029633, 0.139268, 0.02149, + 0.12038, -0.058176, -0.079433, -0.03968, 0.086541, -0.024805, 0.017636, 0.070675, 0.020302, + 0.01837, -0.001282, 0.055128, 0.048604, 0.022484, -0.078252, 0.050789, -0.031024, -0.014702, + 0.033962, -0.063056, 0.115041, 0.030695, 0.013206, 0.054763, 0.026344, -0.06463, -0.117219, + -0.054517, 0.097241, -0.054533, 0.120511, -0.015042, 0.084042, -0.098948, -0.058159, -0.014919, + 0.012644, -0.013776, 0.048899, 0.076873, 0.027774, -0.025962, 0.05009, 0.009068, 0.071122, + 0.021961, -0.091366, 0.03383, -0.011395, 0.009731, 0.038926, -0.055752, 0.060772, -0.006544, + 0.03218, 0.007028, -0.008025, -0.062533, -0.090044, -0.070712, 0.121891, -0.024491, 0.113315, + 0.006948, 0.069138, -0.080885, -0.057117, -0.039611, 0.060169, -0.039329, 0.043881, 0.109427, + 0.027244, -0.003472, 0.026428, 0.025295, 0.072927, -0.012939, -0.079162, 0.042, -0.016569, + 0.014275, 0.043287, -0.072265, 0.088346, -0.00901, 0.060233, 0.006871, 0.044444, -0.102783, + -0.097127, -0.096965, 0.126357, -0.046291, 0.104935, 0.012504, 0.102513, -0.064834, -0.072733, + -0.045651, 0.078439, -0.028281, 0.056496, 0.100058, 0.015326, -0.005353, -0.040997, 0.046688, + 0.052532, -0.025765, -0.040521, 0.04921, -0.048024, 0.002912, 0.039498, -0.056385, 0.07157, + 0.043879, 0.043808, 0.087876, 0.087865, -0.094301, -0.124363, -0.071143, 0.104841, -0.082791, + 0.122144, 0.018696, 0.145035, -0.065346, -0.056652, -0.009556, 0.011211, 0.020663, 0.078245, + 0.108259, 0.037351, -0.075708, -0.043173, 0.065013, 0.07671, 0.03408, -0.064763, 0.052369, + -0.014512, 0.015021, 0.047372, -0.063086, 0.037247, 0.037459, 0.033257, 0.030435, 0.03872, + -0.084956, -0.146456, -0.082844, 0.088278, -0.034347, 0.124067, 0.018087, 0.12445, -0.1109, + -0.08331, -0.032049, 0.018627, 0.003489, 0.051384, 0.089679, -0.005426, 0.015209, -0.01884, + 0.060719, 0.011949, 0.023706, -0.052737, 0.009428, -0.035687, 0.009744, 0.074621, -0.08114, + 0.062506, 0.021517, 0.027732, 0.02083, 0.033813, -0.053701, -0.099355, -0.096818, 0.107335, + -0.061724, 0.117854, 0.000406, 0.090505, -0.097608, -0.082702, 0.000599, 0.084364, -0.025416, + 0.034474, 0.101651, 0.012029, -0.022126, 0.021998, 0.027265, 0.088732, 0.001862, -0.086156, + 0.018758, -0.009857, -0.009251, 0.0733, -0.075265, 0.048219, -0.008928, 0.076855, -0.008951, + 0.006884, -0.043741, -0.12112, -0.119578, 0.143129, -0.060731, 0.157308, 0.010168, 0.077677, + -0.074209, -0.071194, -0.004112, 0.070966, 0.015791, 0.053177, 0.116218, -0.003053, -0.006168, + 0.004153, 0.034253, 0.071723, 0.010421, -0.090193, 0.003578, -0.056167, -0.020917, 0.03522, + -0.118033, 0.067012, 0.017155, 0.036075, 0.024334, 0.051703, -0.053438, -0.10154, -0.067687, + 0.134251, -0.047065, 0.121749, -0.009136, 0.102274, -0.071541, -0.080035, 0.008122, 0.034265, + 0.007546, 0.044677, 0.085855, 0.039382, 0.024404, 0.019833, 0.037699, 0.084995, 0.000137, + -0.09557, 0.056032, -0.04935, -0.017316, 0.027804, -0.067518, 0.091854, 0.008108, -0.002948, + 0.040929, 0.021879, -0.101328, -0.102423, -0.062824, 0.128836, -0.028227, 0.11094, -0.00466, + 0.056368, -0.077761, -0.01586, -0.017258, 0.021098, -0.017663, -0.011156, 0.136012, 0.027243, + -0.015929, -0.041513, 0.029723, 0.026963, 0.058763, -0.088051, 0.083705, -0.084604, -0.02812, + 0.093257, -0.093556, 0.06175, 0.06862, 0.070884, 0.064766, 0.030211, -0.057786, -0.106217, + -0.078968, 0.094637, -0.078163, 0.146932, 0.026764, 0.082004, -0.067043, -0.056415, -0.024562, + 0.013737, 0.008695, 0.050779, 0.065334, 0.010518, 0.006018, 0.010156, 0.044573, 0.093373, + 0.020307, -0.078061, 0.047155, -0.016726, -0.015299, 0.004532, -0.06998, 0.071872, 0.006782, + -0.010338, 0.058525, 0.071582, -0.077736, -0.117162, -0.060695, 0.132389, -0.036521, 0.08601, + -0.00293, 0.123085, -0.072572, -0.051277, -0.022032, 0.029489, -0.010389, 0.063715, 0.129707, + 0.017549, -0.018569, 0.019115, 0.023675, 0.058761, 0.030821, -0.063379, 0.015146, -0.000404, + 0.017855, 0.079975, -0.080607, 0.078788, 0.008092, 0.035194, -0.010773, 0.039051, -0.050459, + -0.153259, -0.113049, 0.124322, -0.023602, 0.143182, 0.004335, 0.066063, -0.066326, -0.09485, + -0.027927, 0.053716, -0.01217, 0.021789, 0.10223, 0.016974, -0.04123, 0.024594, 0.025297, + 0.041164, 0.042515, -0.109786, 0.054828, 0.000703, -0.017903, 0.102223, -0.095498, 0.03228, + 0.028933, 0.046634, 0.027088, -0.003013, -0.059885, -0.104531, -0.109613, 0.134698, -0.049856, + 0.11948, -0.014783, 0.083986, -0.113467, -0.069165, -0.070253, 0.064917, -0.036151, 0.058968, + 0.082499, 0.030898, -0.024726, 0.020337, 0.009398, 0.054653, 0.027504, -0.051465, 0.082282, + -0.038327, -0.005896, 0.025582, -0.07019, 0.052504, 0.026745, 0.033297, 0.000858, 0.01508, + -0.112233, -0.085731, -0.07924, 0.121723, -0.036436, 0.061447, 0.004504, 0.089062, -0.080211, + -0.020189, -0.040265, 0.086819, -0.013976, -0.004285, 0.108322, 0.005149, -0.002277, -0.010293, + 0.024204, 0.05497, 0.021977, -0.084804, 0.059751, -0.059495, -0.013869, 0.107331, -0.116939, + 0.050188, 0.049723, 0.056176, 0.022947, 0.014239, -0.022505, -0.095123, -0.0784, 0.127225, + -0.077986, 0.154401, 0.01138, 0.103931, -0.058719, -0.029337, -0.004276, 0.06798, 0.003794, + 0.045525, 0.121905, 0.04666, 0.006909, -0.037622, 0.022797, 0.050428, -0.014024, -0.076896, + 0.073822, -0.075878, -0.033057, 0.058604, -0.098325, 0.08309, 0.023051, 0.050219, 0.089987, + 0.068695, -0.129979, -0.115123, -0.079233, 0.085075, -0.053149, 0.14312, 0.015935, 0.126675, + -0.033951, -0.026058, -0.012926, 0.036424, 0.018827, 0.031177, 0.102299, 0.033234, -0.02125, + 0.028122, 0.040126, 0.058605, 0.011857, -0.09781, 0.070852, -0.024136, -0.017049, 0.077217, + -0.057923, 0.067174, 0.037008, 0.016072, 0.046667, 0.019745, -0.107885, -0.083798, -0.070986, + 0.11476, -0.029272, 0.104646, 0.006399, 0.093026, -0.096198, -0.025036, -0.078768, 0.050787, + -0.012609, 0.056484, 0.100009, 0.023843, -0.014448, 0.025567, 0.053427, 0.063199, 0.015097, + -0.09361, 0.057626, -0.013193, -0.012139, 0.056105, -0.066223, 0.068245, 0.029848, 0.054575, + 0.019857, 0.025766, -0.068662, -0.119744, -0.089857, 0.120319, -0.057572, 0.114942, 0.021286, + 0.090347, -0.073596, -0.070901, -0.00849, 0.030486, -0.019988, 0.044978, 0.112509, 0.04994, + -0.008253, 0.015191, 0.08505, 0.051939, 0.045312, -0.086696, 0.05944, 0.011795, -0.003671, + 0.03198, -0.037715, 0.075666, 0.02022, 0.025944, 0.040117, 0.026904, -0.09965, -0.124086, + -0.090561, 0.11863, -0.027117, 0.10674, 0.009103, 0.103077, -0.100721, -0.082539, -0.009973, + 0.02216, -0.011455, 0.048314, 0.13149, 0.029533, -0.034673, -0.01479, 0.022707, 0.046152, + 0.034017, -0.043723, 0.05211, -0.009996, 0.006555, 0.076096, -0.070558, 0.038513, 0.016625, + 0.030804, 0.014107, 0.03189, -0.074611, -0.149788, -0.116705, 0.104525, -0.035411, 0.143081, + 0.009332, 0.083732, -0.072405, -0.056384, -0.011377, 0.044738, -0.007219, 0.026271, 0.102775, + 0.04868, 0.03467, 0.029653, 0.064158, 0.047487, 0.007437, -0.073032, 0.046797, -0.016825, + -0.009053, 0.026606, -0.057949, 0.078949, 0.033192, 0.051145, 0.010078, 0.027196, -0.079813, + -0.105769, -0.106006, 0.140435, -0.070799, 0.133231, 0.025255, 0.098136, -0.068816, -0.070668, + 0.012583, 0.069129, -0.007576, 0.058269, 0.077468, -0.004251, 0.036334, 0.00719, 0.040139, + 0.028903, 0.012286, -0.079751, 0.056325, -0.036697, -0.037951, 0.027513, -0.109246, 0.102855, + 0.033724, 0.050868, 0.039243, 0.028145, -0.075416, -0.087399, -0.113178, 0.139303, -0.084003, + 0.122329, -0.005493, 0.106555, -0.07006, -0.079281, -0.013138, 0.110115, 0.0084, 0.031608, + 0.102797, 0.034416, -0.023443, -0.012357, 0.073599, 0.046343, 0.040501, -0.058369, 0.069898, + -0.032851, -0.006458, 0.084683, -0.054711, 0.056083, 0.06696, 0.011195, 0.045436, 0.046609, + -0.063788, -0.155734, -0.060892, 0.094901, -0.043407, 0.123452, 0.013533, 0.124443, -0.085478, + -0.020137, -0.02162, 0.025858, -0.006453, 0.045279, 0.103434, 0.043178, 0.006836, -0.008839, + 0.016989, 0.079668, -0.012377, -0.102131, 0.078971, -0.042815, 0.004821, 0.033964, -0.067882, + 0.07345, 0.00114, 0.048075, 0.049531, 0.020868, -0.100652, -0.090755, -0.080664, 0.131492, + -0.048494, 0.115349, 0.032704, 0.114726, -0.07858, -0.056495, -0.032305, 0.080467, -0.028552, + 0.023304, 0.088083, -0.001762, -0.02737, 0.007009, 0.058498, 0.075873, 0.003134, -0.074301, + 0.004783, -0.025218, -0.001181, 0.060782, -0.072975, 0.045257, 0.01539, 0.039258, 0.049065, + 0.064301, -0.049984, -0.059992, -0.080242, 0.126238, -0.03774, 0.103688, -0.013439, 0.078715, + -0.073198, -0.048848, -0.013727, 0.024849, -0.015426, 0.050483, 0.080089, 0.038912, -0.032568, + 0.009289, 0.028722, 0.032266, 0.030239, -0.089641, 0.037611, -0.018202, -0.008189, 0.075632, + -0.053268, 0.050969, 0.006328, 0.03482, 0.061766, -0.014727, -0.067875, -0.122116, -0.124124, + 0.126507, -0.049263, 0.13082, 0.004886, 0.075587, -0.10463, -0.05205, -0.040835, 0.041278, + -0.030036, 0.022429, 0.108339, 0.067229, -0.013718, -0.050284, 0.019973, 0.069183, 0.034902, + -0.060068, 0.081256, -0.061774, 0.006463, 0.086206, -0.082646, 0.071657, 0.027543, 0.060365, + 0.058072, 0.011435, -0.081106, -0.123422, -0.089417, 0.093919, -0.065473, 0.159988, 0.034207, + 0.085424, -0.060872, 0.012829, -0.009359, 0.01351, 0.011178, 0.043029, 0.121557, 0.03679, + 0.044817, -0.017381, 0.033874, 0.070516, -0.018621, -0.098024, 0.044457, -0.041778, -0.005117, + 0.021415, -0.088247, 0.098398, 0.034048, 0.057282, 0.016443, 0.050561, -0.102616, -0.118972, + -0.076174, 0.114861, -0.050034, 0.132764, 0.031224, 0.099158, -0.041048, -0.068275, 0.013355, + 0.036545, 0.004065, 0.054566, 0.097216, 0.010076, -0.044608, -0.025176, 0.061275, 0.052305, + 0.006088, -0.04643, 0.049444, -0.029457, -0.009677, 0.086306, -0.063576, 0.02158, 0.037137, + 0.040637, 0.052224, 0.085308, -0.066327, -0.110416, -0.093005, 0.095411, -0.069518, 0.12728, + 0.011414, 0.118865, -0.070911, -0.013096, -0.018897, 0.030824, -0.008681, 0.043235, 0.127892, + 0.042, -0.053653, -0.018554, 0.022768, 0.053318, 0.029576, -0.073585, 0.092463, -0.046745, + -0.01757, 0.039025, -0.102224, 0.06344, 0.047292, 0.058988, 0.019453, 0.033871, -0.078948, + -0.118038, -0.077627, 0.130689, -0.069693, 0.112216, 0.032918, 0.08965, -0.07821, -0.003931, + -0.055501, 0.032824, -0.013594, -0.010568, 0.083043, 0.003764, 0.038497, 0.033152, 0.026502, + 0.019689, 0.032305, -0.066586, 0.071156, -0.036364, -0.033673, 0.046713, -0.066407, 0.064237, + 0.033164, 0.01149, 0.008596, -6e-05, -0.03968, -0.065875, -0.103529, 0.143315, -0.051385, + 0.102179, -0.011254, 0.074197, -0.062467, -0.081029, -0.004549, 0.099644, 0.001002, 0.049378, + 0.092288, 0.038859, -0.045362, -0.009531, 0.058823, 0.075025, 0.02905, -0.083729, 0.039273, + -0.051193, -0.001775, 0.048888, -0.040017, 0.077037, 0.01182, -0.00166, 0.076972, 0.026242, + -0.096498, -0.104999, -0.088188, 0.099195, -0.022197, 0.100488, 0.006042, 0.07427, -0.112166, + -0.057524, -0.054946, 0.003506, 0.005174, 0.038331, 0.092275, 0.018331, -0.015125, 0.044484, + -0.007182, 0.060449, -0.015522, -0.069022, 0.049789, -0.027817, -0.007793, 0.049653, -0.060129, + 0.066296, -0.019094, 0.050069, 0.047325, 0.012177, -0.07948, -0.087393, -0.108306, 0.13693, + -0.055811, 0.11265, -0.00156, 0.092054, -0.067061, -0.041471, -0.036522, 0.087599, -0.013749, + 0.042735, 0.089182, -0.0012, 0.012433, 0.001741, 0.000302, 0.069086, -0.026278, -0.054859, + 0.027023, -0.068978, -0.004889, 0.039402, -0.067502, 0.07503, -8e-05, 0.022747, 0.036744, + 0.029539, -0.068969, -0.092282, -0.086775, 0.148689, -0.065815, 0.108563, 0.024665, 0.086814, + -0.076716, -0.0724, -0.018278, 0.080645, 0.009894, 0.013509, 0.112269, 0.042668, -0.019524, + 0.00803, 0.020552, 0.058464, 0.037445, -0.102172, 0.066171, -0.050372, -0.022943, 0.102209, + -0.063701, 0.04206, 0.026529, 0.016283, 0.060311, 0.015519, -0.082924, -0.105497, -0.083879, + 0.14683, -0.000495, 0.107878, 0.027301, 0.083324, -0.067787, -0.053293, -0.049202, 0.036434, + -0.011333, -0.006308, 0.104883, 0.049485, 0.010319, 0.027039, -0.008264, 0.084626, 0.020082, + -0.090799, 0.107087, -0.010691, -0.044061, 0.089631, -0.115246, 0.074955, -0.000725, 0.043588, + 0.058029, -0.002775, -0.077207, -0.085254, -0.107935, 0.116567, -0.055517, 0.139689, -0.00577, + 0.105253, -0.046846, 0.002972, -0.052242, 0.047835, -0.021984, 0.020308, 0.101196, 0.051456, + 0.047372, -0.002614, 0.052026, 0.058739, 0.003531, -0.069803, 0.066508, 1e-06, -0.02544, + 0.0493, -0.080628, 0.087024, 0.03031, 0.070533, 0.032018, 0.060545, -0.089069, -0.134568, + -0.11981, 0.136092, -0.057341, 0.115705, 0.013453, 0.107908, -0.058848, -0.02696, -0.005081, + 0.028238, -0.007116, -0.011996, 0.113389, 0.058397, 0.022774, 0.049154, -0.016866, 0.093032, + 0.010946, -0.062403, 0.104308, 0.008262, -0.032861, 0.081966, -0.074033, 0.057455, -0.017691, + 0.075672, 0.028883, 0.054335, -0.099914, -0.134252, -0.113304, 0.129995, -0.031665, 0.114861, + 0.010517, 0.148034, -0.028269, -0.016914, -0.049905, 0.095449, -0.046301, 0.036455, 0.113644, + 0.026234, -0.011082, -0.00061, 0.021802, 0.062045, 0.026187, -0.063505, 0.058029, -0.031926, + 0.013931, 0.056261, -0.063714, 0.054604, 0.036667, 0.0295, -0.007408, -0.018613, -0.056898, + -0.121773, -0.108101, 0.128632, -0.058983, 0.142437, 0.024025, 0.0653, -0.081234, -0.080002, + -0.00718, 0.082776, 0.00706, 0.062589, 0.107387, -0.005923, -0.00632, 0.027518, 0.036352, + 0.076688, -0.018968, -0.072141, 0.06722, -0.036784, -0.044499, 0.063477, -0.115331, 0.083499, + 0.03346, 0.039386, 0.023861, 0.054521, -0.065869, -0.115734, -0.060527, 0.1077, -0.086405, + 0.129358, -0.019392, 0.11873, -0.054842, -0.017255, -0.024357, 0.082263, 0.013065, 0.054375, + 0.105438, 0.00701, 0.011665, 0.003941, 0.018739, 0.052014, 0.006049, -0.066016, 0.020642, + -0.066758, -0.000762, 0.048092, -0.098372, 0.06182, 0.019711, 0.014262, 0.00784, 0.041866, + -0.058942, -0.09056, -0.079877, 0.124178, -0.032768, 0.122393, 0.021297, 0.073909, -0.068601, + -0.078033, -0.010606, 0.091602, -0.000653, 0.02402, 0.120384, 0.047003, 0.021707, 0.012299, + 0.008024, 0.03717, -0.015802, -0.069611, 0.054863, -0.06524, 0.029054, 0.050889, -0.084409, + 0.086255, 0.036276, 0.052049, 0.010807, 0.026355, -0.104302, -0.087755, -0.052748, 0.097981, + -0.069472, 0.128769, 0.026229, 0.082596, -0.064004, -0.038427, -0.006768, 0.099088, -0.030824, + 0.042805, 0.088193, 0.042798, -0.021971, -0.000175, 0.040888, 0.057961, 0.036726, -0.086077, + 0.081761, -0.021898, -0.006731, -0.00955, -0.038598, 0.092946, 0.054791, 0.042723, 0.03249, + 0.025284, -0.08613, -0.131443, -0.053889, 0.107304, -0.031975, 0.106655, 0.034283, 0.10743, + -0.079747, -0.108241, -0.007933, 0.035581, -0.000908, 0.039982, 0.117121, 0.030949, -0.008994, + -0.012581, 0.025939, 0.06535, 0.019308, -0.064114, 0.050638, -0.035567, -0.023625, 0.045025, + -0.087414, 0.059551, 0.036047, 0.027623, 0.021846, 0.037641, -0.081151, -0.120426, -0.090693, + 0.108438, -0.033965, 0.131107, 0.024291, 0.06559, -0.059873, -0.078228, -0.011209, 0.031477, + 0.008278, 0.017253, 0.137724, 0.051313, 0.002397, -0.00289, 0.012334, 0.041988, 0.007942, + -0.057922, 0.097712, -0.053477, -0.01798, 0.081958, -0.094055, 0.091749, 0.045735, 0.043674, + 0.027067, 0.012858, -0.100442, -0.127515, -0.101098, 0.086781, -0.058466, 0.14054, 0.008321, + 0.090146, -0.050684, -0.023229, -0.051038, 0.068479, 0.004797, 0.012765, 0.133452, 0.023769, + -0.045911, 0.025469, 0.04113, 0.056234, 0.014888, -0.04457, 0.053454, -0.033422, 0.038409, + 0.090492, -0.070486, 0.04503, 0.020241, 0.029241, 0.01302, 0.047022, -0.08831, -0.104043, + -0.083618, 0.111277, -0.068644, 0.118619, 0.013222, 0.143428, -0.085418, -0.044199, -0.056344, + 0.073495, -0.016329, 0.03029, 0.122883, 0.035886, 0.015288, 0.012702, 0.052128, 0.072176, + 0.031335, -0.065253, 0.080384, -0.018673, -0.022812, 0.086086, -0.105819, 0.063104, 0.016464, + 0.003133, 0.048351, 0.075656, -0.098507, -0.136297, -0.099475, 0.133996, -0.036202, 0.104745, + -0.010748, 0.147022, -0.07585, -0.037776, -0.033241, 0.048678, 0.012398, 0.000734, 0.122091, + 0.030446, 0.001108, 0.024863, -0.004398, 0.056288, 0.014185, -0.080574, 0.081743, -0.0544, + -0.01014, 0.115699, -0.093292, 0.050524, 0.037285, 0.044224, 0.020152, 0.022841, -0.078947, + -0.10793, -0.088948, 0.122427, -0.046924, 0.118727, 0.028868, 0.107454, -0.042349, -0.04059, + -0.039109, 0.078399, -0.010503, 0.059745, 0.133573, 0.036749, -0.027358, -0.000494, 0.001318, + 0.080353, -0.003388, -0.050994, 0.072903, -0.052192, 0.033218, 0.100019, -0.121924, 0.078749, + 0.038291, 0.062203, -0.014564, 0.020059, -0.090511, -0.116028, -0.07352, 0.078682, -0.051207, + 0.163547, 0.03171, 0.076322, -0.054364, -0.032811, -0.010117, 0.077016, 0.008361, 0.054884, + 0.13024, 0.01273, -0.021665, -0.023815, -0.023488, 0.08626, -0.008133, -0.070199, 0.060923, + -0.069667, -0.015423, 0.040691, -0.106843, 0.04387, 0.006794, 0.070803, 0.032478, 0.066869, + -0.090667, -0.090796, -0.106503, 0.138459, -0.064017, 0.1206, 0.045981, 0.110657, -0.049117, + -0.013569, -0.019554, 0.062624, 0.01151}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + return testData; +} + +std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1SlidingWindowSize5() { + std::vector testData; + { + const std::string name = "only_sliding_window"; + const std::vector token_types{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859}; + const std::vector k_data{ + 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, 0.521252, -0.167985, 0.913785, + 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, 0.013744, 0.373425, 0.929771, + -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, 0.781977, 0.459126, -0.735932, + -0.536705, -0.219711, -0.184324, 0.082248, -0.917971, 0.311245, -0.762872, -0.632745, -0.831383, + 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, 0.625479, -0.092428, 0.627154, 0.723015, + -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, 0.273531, -0.481067, -0.127941, 0.95012, + 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, 0.813192, -0.607087, -0.072202, -0.221943, + 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, 0.807311, -0.345351, -0.223657, 0.481938, + -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, 0.153318, 0.445848, 0.993486, 0.682733, + 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, -0.881248, -0.501248, -0.920568, -0.922615, + -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, -0.297463, -0.290879, 0.533953, -0.493371, + -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, 0.171486, 0.271944, -0.582391, -0.013797, + 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, 0.029975, -0.499636, -0.791064, -0.080078, + -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, -0.946428, -0.386799, -0.194819, -0.84975, + -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, -0.597124, -0.654221, 0.872693, 0.353717, + 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, -0.246632, -0.050164, -0.830331, -0.559407, + -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, 0.297012, -0.661208, -0.488051, 0.38391, + 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, -0.875637, -0.228871, 0.204055, -0.936876, + 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, -0.108976, -0.451516, 0.80322, + -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, -0.569343, -0.161734, 0.811053, + -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, 0.429193, 0.001125, 0.553353, + -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, 0.769097, -0.222998, -0.213514, + -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, -0.320644, 0.912994, -0.867955, + -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, 0.980358, 0.195652, 0.577536, + 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, -0.477203, -0.838746, 0.251137, + -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, 0.456818, 0.57379, -0.994145, + 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, -0.256998, 0.563923, 0.363571, + 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, -0.518889, 0.684548, -0.94146, + -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, 0.512987, 0.86963, 0.598339, + 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, -0.68424, -0.551413, 0.729991, + 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, 0.007862, 0.4756, -0.690356, + 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, 0.563852, 0.265674, -0.936601, + -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, -0.150954, -0.18288, -0.685248, + 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, 0.37714, -0.526739, -0.991579, + 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, 0.507329, -0.838408, 0.644941, + -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, 0.39719, -0.892912, 0.575666, + -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, -0.492104, 0.192263, 0.271261, + 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, 0.711457, 0.48858, 0.882053, + -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, 0.500654, -0.358381, 0.604109, + -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, -0.083318, 0.215756, -0.548395, + 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, 0.143193, -0.184914, 0.470082, + 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, 0.508876, 0.668485, 0.38572, + 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, -0.472354, 0.836779, 0.77481, + 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, 0.085618, -0.207651, -0.348782, + 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, 0.159464, 0.628373, 0.626646, + 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, -0.260825, -0.167455, 0.047033, + 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, 0.899223, 0.529645, 0.902976, + 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, -0.560654, -0.775947, 0.885274, + 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, -0.165227, -0.196235, -0.826561, + 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, 0.603313, -0.367653, -0.085877, + 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, -0.518932, 0.403944, 0.169938, + -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, 0.215429, -0.734724, -0.778799, + -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, 0.573391, -0.949507, -0.7171, + -0.377511, 0.826098, 0.1023}; + const std::vector v_data{ + -0.747897, 0.006262, -0.776671, -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, + -0.288666, 0.3929, 0.395564, 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, + 0.815057, 0.99516, 0.296258, -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, + 0.18636, 0.413585, -0.206588, -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, + -0.109859, 0.094326, -0.060097, -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, + -0.46216, -0.33695, -0.375678, -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, + 0.139068, 0.552292, -0.702444, 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, + -0.632811, 0.556983, -0.149319, 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, + -0.250759, -0.867631, 0.003304, 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, + 0.784091, 0.016121, 0.210597, -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, + 0.970898, -0.147204, -0.612415, -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, + -0.842229, -0.794683, 0.585289, 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, + 0.721554, 0.773871, 0.720051, 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, + -0.016791, -0.870379, -0.261475, -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, + 0.910749, 0.583554, -0.518337, -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, + 0.060577, -0.602459, 0.819876, 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, + -0.4237, 0.602567, 0.200242, 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, + 0.783539, -0.26327, 0.314318, -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, + 0.037649, -0.586658, 0.822194, -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, + 0.961893, -0.171048, -0.934408, 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, + 0.162617, -0.133854, 0.230342, -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, + 0.192636, -0.845443, 0.793552, 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, + -0.77887, 0.912821, 0.07751, 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, + 0.074966, -0.698764, -0.219233, -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, + 0.55947, 0.400247, 0.774181, -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, + -0.39125, -0.01835, -0.229459, 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, + -0.772226, -0.809075, -0.54802, -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, + 0.981038, -0.370629, -0.716001, 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, + 0.642863, 0.839239, -0.493832, 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, + 0.25278, 0.298125, -0.653559, 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, + 0.486671, 0.170416, 0.271919, 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, + 0.806378, -0.525239, -0.036417, 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, + -0.453557, 0.097171, -0.116216, -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, + 0.642417, 0.247718, -0.844133, 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, + -0.557894, 0.601745, -0.127932, -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, + 0.693016, 0.852534, 0.551467, 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, + -0.73862, 0.672618, 0.678645, -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, + -0.32739, 0.700386, 0.813401, -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, + -0.001452, 0.253108, -0.53735, 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, + 0.931584, 0.293263, -0.227222, 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, + -0.678475, 0.102821, 0.095808, 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, + 0.370394, -0.736122, 0.062691, 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, + 0.968727, -0.397175, -0.232716, -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, + 0.340153, -0.876826, -0.155735, -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, + -0.631138, 0.706552, 0.139649, -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, + -0.8772, -0.654672, -0.718926, 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, + 0.349295, 0.354269, 0.980382, -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, + -0.852453, 0.896511, -0.041441, -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, + 0.778847, -0.30743, 0.593968, 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, + -0.931854, -0.466351, 0.046006, -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, + -0.14036, 0.285996, 0.045167, -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, + 0.387979, 0.236666, 0.748384, -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, + -0.379444, -0.369984, 0.918921, 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, + 0.66429, -0.795854, 0.35589}; + const std::vector wanted_output{ + -0.747897, 0.006262, -0.776671, -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, + -0.288666, 0.3929, 0.395564, 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, + 0.815057, 0.99516, 0.296258, -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, + 0.18636, 0.413585, -0.206588, -0.083657, 0.450111, -0.488204, -0.372663, -0.07045, -0.346394, + -0.201023, 0.520196, 0.144096, -0.517588, 0.298756, -0.362819, -0.015369, 0.325404, -0.085462, + -0.422196, 0.320128, -0.247968, -0.402001, 0.225013, 0.566402, 0.187015, -0.107523, -0.181679, + 0.342703, 0.721054, -0.856149, 0.074562, -0.121956, 0.351583, -0.188817, -0.284974, -0.431171, + -0.034909, -0.089119, -0.337602, 0.186034, -0.446071, -0.067833, 0.082994, 0.250582, -0.528941, + 0.119726, -0.549645, -0.055971, 0.53766, 0.075183, -0.46526, 0.15022, -0.211102, -0.545796, + 0.376039, 0.343349, 0.101921, -0.258828, -0.264348, 0.26082, 0.581167, -0.46022, -0.099005, + 0.328677, 0.194557, -0.40803, -0.358562, 0.028514, -0.078633, -0.087191, -0.323073, 0.016768, + -0.559959, -0.273633, 0.218045, 0.452361, -0.066336, -0.15501, -0.242918, -0.187555, 0.581824, + 0.311272, -0.104907, 0.347861, 0.045975, -0.393692, 0.451151, 0.139346, 0.26357, -0.25555, + -0.214454, -0.062449, 0.333921, -0.452024, -0.203288, 0.039961, -0.154858, -0.237175, -0.06464, + 0.361978, 0.153938, -0.141512, -0.467413, 0.166297, -0.236839, -0.337772, 0.14883, 0.522239, + -0.163994, -0.226509, -0.097405, 0.041552, 0.635982, 0.031131, -0.050869, 0.016798, 0.223665, + -0.48035, 0.526724, 0.198195, 0.254533, -0.229101, -0.095163, -0.05118, 0.063004, -0.367303, + 0.041789, 0.104107, 0.041853, -0.32713, 0.042783, 0.430953, 0.156766, -0.167254, -0.66295, + 0.299956, -0.316262, -0.313565, 0.03455, 0.541492, 0.054695, -0.20821, 0.126908, -0.245128, + 0.637124, -0.072277, 0.02826, 0.014161, 0.257166, -0.350781, 0.443488, -0.042667, -0.054351, + -0.299438, 0.013544, -0.220175, -0.218545, -0.334036, 0.073111, 0.027698, -0.120046, -0.33946, + 0.201386, 0.249242, 0.172906, -0.131191, -0.530117, 0.077158, -0.104938, -0.07406, 0.047792, + 0.442052, 0.397451, -0.253474, 0.338001, 0.029249, 0.787967, -0.204622, 0.199843, -0.079082, + 0.349177, -0.417853, 0.529454, -0.103347, 0.0489, -0.169102, 0.044375, -0.02752, -0.33582, + -0.064111, 0.12665, 0.044386, -0.206708, -0.124729, 0.329636, 0.217891, 0.199866, -0.179983, + -0.52168, -0.066223, -0.176352, -0.083873, 0.29353, 0.314462, 0.704019, -0.10715, 0.359504, + -0.197227, 0.495846, -0.242664, 0.268585, 0.043861, 0.31008, -0.314583, 0.332936, -0.220491, + 0.189913, -0.176613, -0.02311, -0.045956, -0.3545, -0.004357, 0.207391, -0.028814, -0.422142, + 0.128192, 0.551306, 0.004855, 0.375539, 0.010449, -0.449823, 0.085808, -0.115501, -0.000108, + 0.248581, 0.086134, 0.465277, 0.337084, -0.135646, -0.126833, 0.271292, -0.397943, -0.191276, + 0.017411, 0.071474, -0.307106, 0.195652, -0.09004, 0.186252, -0.186189, -0.141112, 0.236587, + -0.151384, 0.176914, 0.332515, 0.30403, -0.40625, 0.368551, 0.515257, -0.458275, 0.420414, + 0.003457, -0.220307, -0.091441, -0.365698, 0.297389, 0.141878, -0.186242, 0.715559, 0.359198, + -0.020695, -0.096459, 0.141518, -0.287899, -0.039436, -0.019175, -0.227238, -0.108565, 0.235026, + -0.261952, 0.145277, -0.151172, -0.344601, 0.409142, 0.088094, 0.227227, 0.222373, 0.19544, + -0.316296, 0.533766, 0.424725, -0.58929, 0.283235, -0.044671, -0.155472, -0.003931, -0.467169, + -0.19387, 0.410992, -0.081542, 0.325885, 0.382842, -0.18418, 0.095843, -0.222468, -0.000994, + -0.056004, -0.031661, -0.087457, -0.101383, -0.015248, -0.121936, 0.535667, -0.297763, -0.448455, + 0.245892, 0.256469, 0.078545, 0.430236, 0.322101, -0.269613, 0.568381, 0.484328, -0.289272, + 0.524133, -0.152938, -0.169546, 0.159621, -0.529954, -0.388423, 0.350856, -0.017836, 0.009016, + 0.137154, 0.031672, 0.313839, -0.014877, 0.107965, -0.243492, 0.202252, 0.240496, -0.306468, + -0.033277, -0.16551, 0.439749, -0.109398, -0.140985, -0.023581, 0.338734, -0.050294, 0.359228, + 0.393468, -0.308128, 0.341368, 0.197916, -0.042419, 0.562687, -0.049049, -0.21652, 0.167808, + -0.363494, -0.620762, 0.217883, 0.038344, -0.326439, 0.065051, 0.077241, 0.611037, 0.259774, + 0.03363, -0.200344, 0.348338, 0.33921, -0.442801, 0.043634, -0.215722, 0.216042, 0.105662, + -0.019739, -0.262006, 0.263627, -0.009157, 0.355523, 0.364818, -0.088995, 0.1058, -0.212529, + 0.047651, 0.418124, 0.017921, -0.214722, 0.211558, -0.180744, -0.321177, -0.04247, 0.104025, + -0.314816, 0.134683, 0.219176, 0.274098, 0.092826, -0.092682, -0.203131, 0.151173, 0.268998, + -0.293126, -0.015698, -0.276942, 0.310308, 0.174151, -0.080143, -0.4079, -0.050605, 0.054796, + 0.190893, 0.194667, 0.030922, -0.121003, -0.31025, 0.174288, 0.389425, -0.024518, -0.193335, + 0.14383, 0.095734, -0.230677, -0.215236, 0.009099, -0.360519, -0.009638, 0.111772, 0.155417, + 0.248161, -0.120971, -0.02436, 0.157455, 0.04565, -0.20967, -0.238891, -0.251281, 0.091486, + 0.107387, -0.101826, -0.146468, 0.008208, 0.217812, 0.369781, -0.020876, 0.074199, -0.056155, + -0.200816, -0.087326, 0.350625}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "short_seq_in_middle"; + const std::vector token_types{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859}; + const std::vector k_data{ + 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, 0.521252, -0.167985, 0.913785, + 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, 0.013744, 0.373425, 0.929771, + -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, 0.781977, 0.459126, -0.735932, + -0.536705, -0.219711, -0.184324, 0.082248, -0.917971, 0.311245, -0.762872, -0.632745, -0.831383, + 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, 0.625479, -0.092428, 0.627154, 0.723015, + -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, 0.273531, -0.481067, -0.127941, 0.95012, + 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, 0.813192, -0.607087, -0.072202, -0.221943, + 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, 0.807311, -0.345351, -0.223657, 0.481938, + -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, 0.153318, 0.445848, 0.993486, 0.682733, + 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, -0.881248, -0.501248, -0.920568, -0.922615, + -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, -0.297463, -0.290879, 0.533953, -0.493371, + -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, 0.171486, 0.271944, -0.582391, -0.013797, + 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, 0.029975, -0.499636, -0.791064, -0.080078, + -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, -0.946428, -0.386799, -0.194819, -0.84975, + -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, -0.597124, -0.654221, 0.872693, 0.353717, + 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, -0.246632, -0.050164, -0.830331, -0.559407, + -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, 0.297012, -0.661208, -0.488051, 0.38391, + 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, -0.875637, -0.228871, 0.204055, -0.936876, + 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, -0.108976, -0.451516, 0.80322, + -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, -0.569343, -0.161734, 0.811053, + -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, 0.429193, 0.001125, 0.553353, + -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, 0.769097, -0.222998, -0.213514, + -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, -0.320644, 0.912994, -0.867955, + -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, 0.980358, 0.195652, 0.577536, + 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, -0.477203, -0.838746, 0.251137, + -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, 0.456818, 0.57379, -0.994145, + 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, -0.256998, 0.563923, 0.363571, + 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, -0.518889, 0.684548, -0.94146, + -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, 0.512987, 0.86963, 0.598339, + 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, -0.68424, -0.551413, 0.729991, + 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, 0.007862, 0.4756, -0.690356, + 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, 0.563852, 0.265674, -0.936601, + -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, -0.150954, -0.18288, -0.685248, + 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, 0.37714, -0.526739, -0.991579, + 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, 0.507329, -0.838408, 0.644941, + -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, 0.39719, -0.892912, 0.575666, + -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, -0.492104, 0.192263, 0.271261, + 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, 0.711457, 0.48858, 0.882053, + -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, 0.500654, -0.358381, 0.604109, + -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, -0.083318, 0.215756, -0.548395, + 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, 0.143193, -0.184914, 0.470082, + 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, 0.508876, 0.668485, 0.38572, + 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, -0.472354, 0.836779, 0.77481, + 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, 0.085618, -0.207651, -0.348782, + 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, 0.159464, 0.628373, 0.626646, + 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, -0.260825, -0.167455, 0.047033, + 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, 0.899223, 0.529645, 0.902976, + 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, -0.560654, -0.775947, 0.885274, + 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, -0.165227, -0.196235, -0.826561, + 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, 0.603313, -0.367653, -0.085877, + 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, -0.518932, 0.403944, 0.169938, + -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, 0.215429, -0.734724, -0.778799, + -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, 0.573391, -0.949507, -0.7171, + -0.377511, 0.826098, 0.1023}; + const std::vector v_data{ + -0.747897, 0.006262, -0.776671, -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, + -0.288666, 0.3929, 0.395564, 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, + 0.815057, 0.99516, 0.296258, -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, + 0.18636, 0.413585, -0.206588, -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, + -0.109859, 0.094326, -0.060097, -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, + -0.46216, -0.33695, -0.375678, -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, + 0.139068, 0.552292, -0.702444, 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, + -0.632811, 0.556983, -0.149319, 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, + -0.250759, -0.867631, 0.003304, 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, + 0.784091, 0.016121, 0.210597, -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, + 0.970898, -0.147204, -0.612415, -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, + -0.842229, -0.794683, 0.585289, 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, + 0.721554, 0.773871, 0.720051, 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, + -0.016791, -0.870379, -0.261475, -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, + 0.910749, 0.583554, -0.518337, -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, + 0.060577, -0.602459, 0.819876, 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, + -0.4237, 0.602567, 0.200242, 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, + 0.783539, -0.26327, 0.314318, -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, + 0.037649, -0.586658, 0.822194, -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, + 0.961893, -0.171048, -0.934408, 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, + 0.162617, -0.133854, 0.230342, -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, + 0.192636, -0.845443, 0.793552, 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, + -0.77887, 0.912821, 0.07751, 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, + 0.074966, -0.698764, -0.219233, -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, + 0.55947, 0.400247, 0.774181, -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, + -0.39125, -0.01835, -0.229459, 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, + -0.772226, -0.809075, -0.54802, -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, + 0.981038, -0.370629, -0.716001, 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, + 0.642863, 0.839239, -0.493832, 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, + 0.25278, 0.298125, -0.653559, 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, + 0.486671, 0.170416, 0.271919, 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, + 0.806378, -0.525239, -0.036417, 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, + -0.453557, 0.097171, -0.116216, -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, + 0.642417, 0.247718, -0.844133, 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, + -0.557894, 0.601745, -0.127932, -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, + 0.693016, 0.852534, 0.551467, 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, + -0.73862, 0.672618, 0.678645, -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, + -0.32739, 0.700386, 0.813401, -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, + -0.001452, 0.253108, -0.53735, 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, + 0.931584, 0.293263, -0.227222, 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, + -0.678475, 0.102821, 0.095808, 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, + 0.370394, -0.736122, 0.062691, 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, + 0.968727, -0.397175, -0.232716, -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, + 0.340153, -0.876826, -0.155735, -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, + -0.631138, 0.706552, 0.139649, -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, + -0.8772, -0.654672, -0.718926, 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, + 0.349295, 0.354269, 0.980382, -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, + -0.852453, 0.896511, -0.041441, -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, + 0.778847, -0.30743, 0.593968, 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, + -0.931854, -0.466351, 0.046006, -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, + -0.14036, 0.285996, 0.045167, -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, + 0.387979, 0.236666, 0.748384, -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, + -0.379444, -0.369984, 0.918921, 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, + 0.66429, -0.795854, 0.35589}; + const std::vector wanted_output{ + -0.747897, 0.006262, -0.776671, -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, + -0.288666, 0.3929, 0.395564, 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, + 0.815057, 0.99516, 0.296258, -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, + 0.18636, 0.413585, -0.206588, -0.083657, 0.450111, -0.0945, -0.337174, 0.092918, -0.268128, + -0.146965, 0.121612, 0.171676, 0.07963, 0.096442, 0.048754, 0.049984, 0.325231, -0.119878, + -0.129644, 0.109486, 0.107796, -0.292158, 0.251063, -0.079526, 0.199886, -0.06573, -0.126901, + -0.014879, 0.036869, -0.099764, 0.150529, 0.116043, -0.111158, 0.046133, 0.076487, -0.05539, + 0.289999, 0.015061, -0.320295, 0.100487, -0.239608, -0.191383, 0.09502, 0.244557, 0.025044, + 0.106411, 0.033861, 0.025084, 0.380747, -0.071572, -0.087608, 0.134177, 0.138196, -0.242363, + 0.215418, -0.061994, 0.168552, -0.080224, -0.106045, -0.114994, -0.014363, -0.106563, 0.08356, + 0.081248, -0.128512, -0.010345, 0.035021, -0.014436, 0.247817, -0.061241, -0.352586, 0.136181, + -0.266485, -0.212299, 0.11938, 0.254012, 0.058884, -0.00028, 0.054853, 0.029764, 0.395392, + -0.07952, -0.104215, 0.109736, 0.183895, -0.288607, 0.302176, -0.045896, 0.198974, -0.07948, + -0.073945, -0.0948, 0.017223, -0.149581, 0.097093, 0.089626, -0.125532, -0.020475, 0.087351, + 0.061764, 0.269998, -0.028831, -0.33896, 0.086017, -0.27496, -0.131421, 0.110073, 0.115313, + 0.14013, 0.199105, -0.077248, -0.006654, 0.212315, -0.149588, -0.182206, 0.125082, 0.039498, + -0.318468, 0.215331, -0.164204, 0.259623, -0.079691, -0.228695, 0.016459, 0.00051, 0.061359, + 0.201861, 0.231166, -0.183094, 0.135641, 0.115011, -0.096091, 0.385123, 0.046414, -0.348862, + 0.161942, -0.206756, -0.172359, 0.110783, 0.172357, 0.03917, 0.080686, 0.0531, 0.050113, + 0.353919, -0.174555, -0.022623, -0.012952, 0.160539, -0.28797, 0.167897, -0.096016, 0.123724, + -0.122087, -0.082638, -0.092009, -0.018852, -0.032502, 0.17316, 0.201994, -0.085475, -0.066554, + 0.072186, -0.035723, 0.175988, 0.00371, -0.35244, 0.171131, -0.253521, -0.18945, 0.096147, + 0.151675, 0.140417, 0.079971, 0.034826, 0.04749, 0.269861, -0.173629, -0.033122, -0.041285, + 0.103957, -0.205018, 0.264567, -0.116492, 0.163645, -0.127345, -0.145506, -0.042011, -0.018443, + -0.030171, 0.210868, 0.148292, -0.080652, 0.07323, 0.181194, -0.06165, 0.249983, 0.008926, + -0.346338, 0.124477, -0.266298, -0.228404, 0.078428, 0.209615, 0.108381, 0.038373, 0.083009, + 0.073735, 0.35852, -0.100664, 0.005966, 0.054118, 0.146885, -0.243039, 0.264192, -0.149636, + 0.145549, -0.100265, -0.12739, -0.119671, -0.046603, -0.037914, 0.159544, 0.117902, -0.108073, + 0.016995, 0.098349, 0.026474, 0.253104, 0.088001, -0.368525, 0.262833, -0.255351, -0.106406, + -0.027986, 0.190977, -0.098314, 0.19576, -0.098068, -0.117705, 0.265214, -0.149976, -0.19839, + -0.010666, 0.028529, -0.243699, 0.147978, -0.083911, 0.098343, -0.157161, -0.163297, -0.097918, + -0.014854, -0.051262, 0.096639, 0.232396, -0.046585, -0.140583, -0.021816, -0.060003, 0.176616, + 0.013565, -0.356585, 0.158234, -0.26225, -0.103116, 0.077539, 0.089762, 0.085983, 0.140209, + 0.029989, -0.021176, 0.28045, -0.204872, -0.113578, 0.052889, 0.093382, -0.314392, 0.148005, + -0.184327, 0.112111, -0.083218, -0.120539, -0.063672, -0.001272, 0.029702, 0.175359, 0.244431, + -0.128967, -0.023108, 0.04037, -0.113424, 0.230021, 0.009991, -0.337374, 0.157926, -0.334326, + -0.165965, 0.065764, 0.090389, 0.132486, 0.168366, -0.084587, -0.027271, 0.150473, -0.133845, + -0.165016, 0.074115, 0.025505, -0.272758, 0.218048, -0.218257, 0.236971, -0.103407, -0.248406, + -0.035175, 0.013853, 0.080219, 0.207661, 0.260177, -0.159042, 0.119013, 0.116189, -0.056551, + 0.370632, -0.023201, -0.314201, 0.105347, -0.253352, -0.155001, 0.11324, 0.165747, 0.082823, + 0.080171, 0.121637, 0.108999, 0.33545, -0.103122, -0.029793, 0.045535, 0.177292, -0.310539, + 0.151652, -0.146841, 0.18577, -0.10372, -0.106877, -0.068781, -0.017633, -0.009656, 0.188537, + 0.20429, -0.146545, 0.007565, 0.084721, 0.000242, 0.271071, 0.092168, -0.293712, 0.180154, + -0.267448, -0.166708, 0.05059, 0.222339, -0.047088, 0.061372, 0.008594, 0.071963, 0.432, + -0.041982, -0.130268, 0.102658, 0.200783, -0.339585, 0.164201, -0.09324, 0.143044, -0.107825, + -0.063902, -0.127606, 0.030794, -0.029862, 0.069708, 0.265509, -0.173831, -0.098286, -0.020682, + 0.068206, 0.213226, 0.00279, -0.322212, 0.10165, -0.258261, -0.130927, 0.098553, 0.155258, + 0.104126, 0.055594, 0.16018, 0.048133, 0.388894, -0.12534, -0.021571, 0.103768, 0.192772, + -0.311386, 0.145968, -0.180581, 0.113024, -0.061699, -0.05348, -0.130424, -0.025524, -0.017186, + 0.125147, 0.1698, -0.168878, -0.047454, 0.02607, -0.02213, 0.21968, -0.024518, -0.193335, + 0.14383, 0.095734, -0.230677, -0.215236, 0.009099, -0.360519, -0.009638, 0.111772, 0.155417, + 0.248161, -0.120971, -0.02436, 0.157455, 0.04565, -0.20967, -0.238891, -0.251281, 0.091486, + 0.107387, -0.101826, -0.146468, 0.008208, 0.217812, 0.369781, -0.020876, 0.074199, -0.056155, + -0.200816, -0.087326, 0.350625}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "two_small_image_groups"; + const std::vector token_types{0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, + 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, + 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, + 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, -0.184324, 0.082248, -0.917971, 0.311245, + -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, 0.625479, + -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, 0.273531, + -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, 0.813192, + -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, 0.807311, + -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, 0.153318, + 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, -0.881248, + -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, -0.297463, + -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, 0.171486, + 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, 0.029975, + -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, -0.946428, + -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, -0.597124, + -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, -0.246632, + -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, 0.297012, + -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, -0.875637, + -0.228871, 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, + -0.108976, -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, + -0.569343, -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, + 0.429193, 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, + 0.769097, -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, + -0.320644, 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, + 0.980358, 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, + -0.477203, -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, + 0.456818, 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, + -0.256998, 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, + -0.518889, 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, + 0.512987, 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, + -0.68424, -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, + 0.007862, 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, + 0.563852, 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, + -0.150954, -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, + 0.37714, -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, + 0.507329, -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, + 0.39719, -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, + -0.492104, 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, + 0.711457, 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, + 0.500654, -0.358381, 0.604109, -0.047477}; + const std::vector k_data{ + -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, -0.083318, 0.215756, -0.548395, 0.28847, + -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, 0.143193, -0.184914, 0.470082, 0.916795, + 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, 0.508876, 0.668485, 0.38572, 0.938311, + 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, -0.472354, 0.836779, 0.77481, 0.302151, + 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, 0.085618, -0.207651, -0.348782, 0.596023, + 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, 0.159464, 0.628373, 0.626646, 0.926923, + 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, -0.260825, -0.167455, 0.047033, 0.72963, + 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, 0.899223, 0.529645, 0.902976, 0.003194, + 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, -0.560654, -0.775947, 0.885274, 0.813066, + 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, -0.165227, -0.196235, -0.826561, 0.268661, + -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, 0.603313, -0.367653, -0.085877, 0.933738, + -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, -0.518932, 0.403944, 0.169938, -0.320062, + -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, 0.215429, -0.734724, -0.778799, -0.817033, + 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, 0.573391, -0.949507, -0.7171, -0.377511, + 0.826098, 0.1023, -0.747897, 0.006262, -0.776671, -0.219099, -0.274975, 0.865662, 0.309737, + -0.174371, 0.168929, -0.288666, 0.3929, 0.395564, 0.268546, -0.389777, 0.853151, -0.14437, + -0.389317, 0.626314, 0.815057, 0.99516, 0.296258, -0.340894, 0.507892, 0.857955, -0.980834, + -0.123887, -0.681965, 0.18636, 0.413585, -0.206588, -0.083657, 0.450111, -0.16807, -0.839779, + 0.800136, -0.503314, -0.109859, 0.094326, -0.060097, -0.940686, 0.4588, -0.454232, -0.51866, + 0.238915, -0.521862, -0.46216, -0.33695, -0.375678, -0.417637, -0.269686, 0.259876, -0.809218, + -0.60528, 0.014591, 0.139068, 0.552292, -0.702444, 0.319197, 0.56839, 0.55526, -0.931422, + -0.381604, -0.859566, -0.632811, 0.556983, -0.149319, 0.424711, -0.587006, 0.15196, -0.604858, + 0.499892, -0.437379, -0.250759, -0.867631, 0.003304, 0.94948, 0.485378, -0.533541, 0.013449, + -0.109648, -0.805074, 0.784091, 0.016121, 0.210597, -0.403829, -0.467919, 0.16489, 0.369711, + 0.224298, -0.481945, 0.970898, -0.147204, -0.612415, -0.467713, 0.984421, 4.8e-05, -0.135744, + -0.416162, -0.262145, -0.842229, -0.794683, 0.585289, 0.855449, 0.9543, -0.721942, 0.540863, + -0.618967, 0.59656, 0.721554, 0.773871, 0.720051, 0.625573, 0.019464, 0.459482, -0.357771, + 0.435435, -0.321402, -0.016791, -0.870379, -0.261475, -0.525873, -0.337321, -0.638587, -0.899444, + 0.065117, 0.648979, 0.910749, 0.583554, -0.518337, -0.98901, 0.379314, 0.560314, -0.858512, + 0.358586, 0.845477, 0.060577, -0.602459, 0.819876, 0.427016, 0.662201, -0.676286, 0.581946, + -0.683074, 0.989494, -0.4237, 0.602567, 0.200242, 0.26501, -0.153355, 0.410735, -0.416772, + -0.942579, -0.384203, 0.783539, -0.26327, 0.314318, -0.369726, 0.750149, 0.59849, 0.353014, + -0.511162, -0.81713, 0.037649, -0.586658, 0.822194, -0.960976, 0.446868, 0.996914, 0.500828, + 0.340979, -0.962147, 0.961893, -0.171048, -0.934408, 0.987163, -0.406931, -0.070748, 0.91528, + -0.693201, -0.70749, 0.162617, -0.133854, 0.230342, -0.838705, 0.029907, -0.44476, -0.491609, + -0.915637, 0.530218, 0.192636, -0.845443, 0.793552, 0.301621, 0.185563, -0.587136, 0.150805, + 0.96354, 0.685884, -0.77887, 0.912821, 0.07751, 0.480965, 0.776676, 0.852509, -0.779535, + 0.875664, -0.679175, 0.074966, -0.698764, -0.219233, -0.045443, -0.119635, -0.157976, 0.078871, + 0.986419, 0.581012, 0.55947, 0.400247, 0.774181, -0.046149, 0.079512, 0.205797, -0.872131, + -0.805557, 0.122601, -0.39125, -0.01835, -0.229459, 0.155663, 0.650616, -0.331642, 0.800861, + 0.789562, -0.767498, -0.772226, -0.809075, -0.54802, -0.389276, -0.075269, -0.243192, -0.505249, + -0.317694, -0.361745, 0.981038, -0.370629, -0.716001, 0.415698, -0.057762, 0.765564, 0.624833, + 0.918729, -0.73236, 0.642863, 0.839239, -0.493832, 0.91918, 0.749643, 0.010951, 0.482152, + -0.349622, -0.872184, 0.25278, 0.298125, -0.653559, 0.485, -0.854223, 0.860624, 0.96839, + 0.272258, -0.627429, 0.486671, 0.170416, 0.271919, 0.328653, 0.761356, -0.429836, -0.224945, + 0.272706, 0.108961, 0.806378, -0.525239, -0.036417, 0.186853, -0.265589, 0.681717, 0.109382, + -0.92423, -0.108336, -0.453557, 0.097171, -0.116216, -0.991934, -0.182225, -0.095779, -0.294878, + 0.91878, -0.218199, 0.642417, 0.247718, -0.844133, 0.234986, 0.828736, -0.654101, -0.646375, + 0.978849, 0.80351, -0.557894, 0.601745, -0.127932, -0.985929, 0.075133, 0.323094, -0.299961, + 0.347883, -0.855101, 0.693016, 0.852534, 0.551467, 0.169491, 0.329349, -0.723548, -0.249873, + -0.095468, -0.556486, -0.73862, 0.672618, 0.678645, -0.908188, 0.318212, 0.406802, 0.949968, + 0.578554, 0.919337, -0.32739, 0.700386, 0.813401, -0.944328, -0.802707, 0.202405, 0.546038, + -0.496813, 0.110134, -0.001452, 0.253108, -0.53735, 0.564039, 0.665009, -0.693858, 0.009687, + 0.002775, 0.321116, 0.931584, 0.293263, -0.227222, 0.898133, -0.380533, -0.290372, 0.068275, + -0.761509, 0.108817, -0.678475, 0.102821, 0.095808, 0.138421, -0.843296, -0.949784, 0.460117, + 0.857596, -0.887372, 0.370394, -0.736122, 0.062691, 0.930358, 0.758619, -0.73114, 0.618572, + 0.522317, -0.001534, 0.968727, -0.397175, -0.232716, -0.505414, 0.143897, 0.264787, 0.07968, + -0.562637, -0.450166, 0.340153, -0.876826, -0.155735, -0.022152, -0.405164, 0.363918, 0.064454, + 0.702065, -0.088812, -0.631138, 0.706552, 0.139649, -0.286398, -0.659103, 0.234389, -0.953753, + 0.263378, 0.494445, -0.8772, -0.654672, -0.718926, 0.840507, 0.850121, 0.062601, 0.938806, + -0.334304, -0.970822, 0.349295, 0.354269, 0.980382, -0.000289, 0.766396, 0.612964, 0.723769, + -0.992332, 0.823458, -0.852453, 0.896511, -0.041441, -0.886217, 0.278093, -0.203547, -0.898193, + -0.362538, 0.103105, 0.778847, -0.30743, 0.593968, 0.125229, 0.033708, 0.191345, -0.656269, + -0.831198, -0.314212, -0.931854, -0.466351, 0.046006, -0.658609, -0.414796, -0.179686, -0.115203, + -0.552015, 0.048051, -0.14036, 0.285996, 0.045167, -0.49937, -0.344284, -0.011526, -0.623985, + 0.078285, -0.070606, 0.387979, 0.236666, 0.748384, -0.032965, -0.738905, 0.447009, -0.675838, + -0.137452, -0.323803, -0.379444, -0.369984, 0.918921, 0.572457, 0.277137, 0.938957, -0.906222, + 0.161368, 0.640176, 0.66429, -0.795854, 0.35589, -0.569686, -0.039074, -0.20867, -0.834965, + -0.953914, -0.657898, 0.453771, 0.457435, -0.869764, -0.375542, 0.016334, -0.864583, 0.563455, + 0.905732, 0.176862, -0.743015, 0.233186, 0.363014, 0.791843, -0.53207, -0.89591, 0.439351, + 0.062256, -0.325826, -0.419022, -0.515616, 0.809497, -0.172539, 0.721207, 0.89265, 0.126676, + 0.213018, -0.068105, 0.686815, -0.901088, 0.397683, -0.162929, 0.456616, -0.004454, -0.370266, + -0.10795, 0.539993, -0.69453, -0.632099, -0.223996, -0.362725, 0.392839, 0.67297, -0.107099, + 0.945574, -0.41782, -0.561159, -0.447694, -0.688972, -0.700934, -0.891016, -0.886279, 0.260999, + 0.609854, 0.938847, 0.851797, -0.057594, 0.194047, -0.59832, 0.386521, -0.958841, 0.471673, + 0.183416, 0.307304, 0.366148, -0.459105, 0.858106, 0.477252, 0.656895, 0.132079, 0.627987, + 0.673001, 0.453235, 0.761769, -0.181378, 0.657536, 0.230399, 0.601696, 0.973999, 0.226437, + -0.371167, -0.099496, 0.281528, 0.168609, -0.27317, 0.783518, 0.600807, -0.621154, -0.081481, + -0.095994, -0.626731, 0.145855, -0.306993, -0.516261, -0.321547, -0.356549, 0.95664, 0.383572, + 0.984113, 0.274196, 0.226431, 0.411094, 0.171633, -0.784771, -0.591354, -0.242279, 0.015033, + 0.376714, 0.385048, 0.793313, 0.203573, -0.341293, -0.752026, -0.732411, -0.597337, 0.301604, + 0.540272, 0.874913, -0.316312, -0.078883, -0.296963, -0.003654, 0.321001, -0.021971, 0.046295, + 0.126687, 0.372418, -0.303401, -0.596298, 0.235925, -0.118406, -0.453028, 0.419963, 0.009069, + -0.145465, -0.484084, -0.131566, -0.850325, 0.22749, 0.015007, 0.606836, 0.06457, 0.079952, + 0.272413, 0.760938, -0.472558, 0.597005, 0.244562, -0.667117, 0.348187, -0.599733, -0.314781, + -0.476669, -0.680314, 0.787571, -0.893821, 0.500015, -0.900012, -0.121706, 0.059642, 0.710911, + -0.361894, 0.287827, 0.154906, 0.588385, 0.059452, 0.374445, -0.604091, -0.694911, 0.891078, + -0.728667, -0.17024, -0.12088, 0.97788, -0.216114, -0.761304, -0.253499, 0.515821, 0.39629, + 0.827292, -0.204717, 0.471045, -0.94104, 0.38694, 0.459464, 0.645087, -0.573442, -0.266978, + 0.24193, -0.710615, -0.795481, -0.962043, 0.055823, 0.620988, 0.25686, 0.060965, 0.348426, + -0.628404, 0.105426, -0.248424, -0.495144, 0.862373, -0.773653, 0.146548, -0.878713, -0.033927, + -0.444362, 0.329147, -0.561538, 0.64004, -0.811467, 0.600636, -0.751179, 0.535585, -0.421066, + -0.00233, -0.182503, 0.64903, 0.327728}; + const std::vector v_data{ + -0.881204, 0.091941, -0.689862, 0.747561, 0.1643, -0.257181, -0.510169, 0.346129, -0.598897, + 0.474262, 0.545675, 0.613803, 0.261238, -0.875369, 0.719317, -0.310223, -0.295636, -0.107439, + 0.731135, 0.768927, 0.154412, 0.477152, -0.931997, 0.002362, -0.884684, 0.34035, -0.712449, + -0.356405, 0.699031, 0.955696, -0.60038, -0.555011, 0.123846, 0.393105, -0.162872, -0.31229, + -0.656844, 0.426876, 0.979762, -0.484079, 0.471664, 0.488395, 0.803797, -0.113854, 0.031498, + 0.734699, 0.632114, 0.987707, -0.28657, 0.395687, 0.698276, -0.678816, 0.198659, -0.223753, + 0.642824, -0.449127, 0.070139, 0.598311, -0.916117, -0.844362, -0.512184, 0.641417, 0.670528, + -0.68297, 0.190687, -0.529881, -0.464153, 0.862417, 0.483009, -0.273483, 0.147202, 0.193757, + 0.234241, -0.342279, -0.588886, 0.662064, 0.134373, 0.41855, -0.37873, 0.48437, 0.727766, + 0.608173, 0.271896, 0.983883, -0.002187, 0.212897, 0.95013, 0.971897, -0.42222, 0.900803, + 0.36906, -0.111938, 0.873146, -0.518029, 0.649749, 0.990944, -0.689702, -0.590093, -0.990914, + -0.179962, -0.908204, -0.334922, 0.303595, 0.706878, 0.557035, 0.555081, 0.414864, -0.620233, + -0.793995, 0.041454, 0.949583, 0.056306, -0.08601, -0.678737, -0.495838, -0.770864, 0.800668, + -0.16293, -0.883409, 0.107275, 0.072568, -0.123549, 0.357964, 0.537779, -0.94041, -0.766092, + -0.04804, -0.927138, -0.90836, 0.88291, -0.076059, -0.49439, -0.343017, -0.780722, 0.780366, + -0.216839, -0.562238, -0.758413, 0.58449, -0.138231, -0.105057, -0.260633, -0.482723, 0.17789, + 0.76937, -0.57958, 0.047913, -0.760513, -0.468897, 0.87777, 0.010485, 0.963319, -0.175204, + -0.545044, -0.597488, 0.886315, -0.768987, 0.524794, 0.248582, 0.295107, 0.56424, -0.261623, + 0.618764, -0.796723, -0.351841, 0.732041, 0.29678, -0.133173, -0.233531, -0.610615, 0.608092, + -0.0318, -0.033834, 0.236493, 0.737948, -0.510183, -0.344397, 0.677631, 0.564772, -0.491936, + -0.98926, 0.185511, 0.525894, 0.238857, 0.709314, -0.793474, 0.504286, -0.621679, 0.562807, + 0.743714, 0.316716, 0.809075, -0.659152, -0.894376, -0.961505, 0.627831, 0.35031, -0.732267, + 0.484281, 0.912412, -0.986084, 0.725421, 0.153373, 0.093021, 0.899793, 0.90559, 0.421351, + 0.790135, 0.416024, 0.162942, -0.879011, 0.186783, -0.711446, 0.307866, 0.176434, 0.022466, + -0.683727, -0.606197, 0.739138, 0.487019, 0.52724, -0.297977, -0.172196, -0.256278, 0.687693, + -0.431688, 0.629865, 0.689494, -0.914556, 0.006107, -0.190454, -0.552822, 0.431718, -0.121495, + 0.875508, -0.625904, 0.464631, -0.853793, -0.501222, 0.068213, 0.790093, 0.526719, -0.821085, + 0.110765, -0.58949, 0.04333, -0.833073, -0.293373, 0.685866, -0.917536, -0.953423, 0.182144, + 0.137084, -0.182886, 0.873212, -0.602089, -0.60708, -0.747476, -0.186123, -0.255205, 0.618747, + -0.056149, 0.319354, -0.415557, 0.811192, 0.843019, -0.895569, -0.257, -0.848497, 0.424827, + -0.873683, -0.472812, 0.999172, -0.954919, 0.737805, 0.084479, 0.799635, -0.507489, 0.656829, + 0.120654, 0.076912, 0.682532, -0.950527, -0.805451, 0.965763, -0.600497, -0.720808, -0.048895, + -0.320102, -0.136812, -0.669986, 0.360819, -0.860482, 0.080993, 0.583539, 0.192136, 0.13287, + 0.146264, -0.292951, -0.190498, -0.421693, -0.675529, -0.529456, 0.988561, -0.167356, 0.350296, + 0.691554, -0.078118, -0.537974, -0.677539, -0.368403, 0.356936, -0.842159, -0.122097, 0.380387, + 0.815855, 0.300931, 0.197767, 0.684591, 0.462088, 0.338314, -0.310047, -0.801899, -0.216002, + -0.181364, 0.073437, -0.10998, 0.404289, 0.66455, -0.40542, -0.948861, -0.51306, -0.478476, + 0.56684, -0.645044, -0.094057, -0.211939, -0.606932, 0.453285, -0.416556, -0.051732, -0.703085, + -0.10086, 0.142086, -0.040693, -0.373648, 0.297084, -0.259098, -0.554399, -0.737433, -0.21183, + -0.944678, 0.83002, -0.477728, -0.414418, 0.092439, 0.259233, -0.094292, 0.686023, -0.58295, + 0.358381, -0.002255, -0.813471, -0.387295, 0.254487, 0.191042, 0.727135, 0.668993, -0.545423, + -0.427029, -0.212041, -0.716421, -0.26999, -0.818313, 0.380342, 0.707559, 0.079176, -0.715881, + -0.757308, -0.389299, 0.290853, 0.024392, 0.181822, 0.942481, 0.464442, 0.215023, -0.202322, + 0.473049, 0.365841, -0.900102, -0.590709, 0.033566, 0.379442, 0.486503, -0.595279, -0.992114, + -0.052092, -0.114317, 0.29018, -0.275006, 0.764523, 0.066724, 0.730247, -0.696314, 0.400036, + 0.119156, -0.500148, 0.495748, -0.984019, 0.808467, 0.080588, 0.096553, 0.462446, 0.083012, + 0.428652, 0.636214, -0.780458, 0.66156, -0.149739, -0.232549, 0.201282, 0.782152, -0.543615, + -0.673931, 0.620607, -0.469668, 0.32195, -0.147326, 0.275253, 0.763115, -0.506799, -0.485264, + 0.490621, 0.054752, -0.110058, -0.878388, 0.847258, -0.037871, -0.184187, -0.41049, -0.197338, + 0.486034, -0.022983, 0.855209, -0.057735, -0.143458, 0.564452, -0.025876, -0.199593, 0.334227, + 0.788631, 0.24955, 0.696318, 0.648038, 0.282798, 0.347689, 0.322684, 0.103727, 0.850736, + 0.923141, 0.355989, -0.049939, 0.896594, -0.778321, 0.734784, 0.529826, 0.642136, -0.076836, + -0.746098, 0.713339, -0.437256, 0.263113, 0.566545, -0.934526, 0.066364, -0.355226, 0.709755, + -0.636701, 0.60717, 0.62357, 0.551715, 0.960012, 0.151451, -0.906381, 0.713865, 0.091547, + 0.019845, -0.952589, -0.224756, -0.485368, 0.979411, 0.712029, 0.745988, 0.684837, -0.619874, + -0.42947, -0.39135, -0.400882, 0.778432, 0.339767, 0.801354, -0.046779, -0.891427, -0.290123, + 0.702795, 0.608806, 0.309572, -0.293328, -0.933371, -0.537327, 0.52138, -0.403358, 0.478339, + 0.273041, -0.384087, 0.609078, -0.321333, -0.033223, -0.380913, -0.948572, 0.161238, 0.288969, + -0.503481, 0.613447, -0.897056, -0.963977, -0.617649, -0.345605, -0.111058, -0.193248, 0.456388, + -0.877625, 0.147248, 0.017318, 0.26413, 0.99408, 0.615448, -0.553705, -0.819453, -0.242101, + -0.501627, 0.349305, 0.009167, 0.804324, 0.392806, -0.18387, 0.03437, 0.239486, -0.124087, + 0.806935, -0.7819, 0.487406, -0.637444, -0.876081, -0.205297, 0.487305, 0.706562, 0.250942, + -0.086429, -0.056059, -0.405381, -0.089737, -0.069094, 0.850963, 0.585244, -0.800224, 0.004137, + -0.61507, -0.158741, -0.794768, 0.259961, -0.721078, 0.987221, 0.755203, -0.688359, -0.941464, + 0.039018, -0.279152, 0.293567, -0.676914, 0.409341, -0.863749, -0.52777, -0.525702, 0.483891, + -0.026181, -0.961029, -0.57112, -0.462777, -0.92783, 0.128047, 0.356338, -0.183478, -0.397945, + -0.006065, -0.794282, -0.608902, -0.022806, 0.888377, -0.307508, 0.495659, -0.39355, -0.266198, + -0.951944, 0.828485, 0.973728, -0.021003, 0.63537, 0.817942, 0.496718, 0.515019, -0.951991, + -0.939671, -0.76754, 0.312786, -0.864977, -0.763345, -0.484703, -0.921685, 0.001347, 0.144268, + -0.5852, 0.654765, -0.379645, -0.281527, 0.761875, 0.858552, -0.11472, -0.717878, -0.501669, + 0.127339, 0.586192, 0.497845, -0.441582, -0.945367, -0.875147, -0.318156, 0.012544, -0.449176, + -0.790705, 0.105388, -0.793741, -0.767924, -0.812946, -0.270973, 0.883258, 0.390919, -0.118569, + 0.205811, 0.398209, 0.005826, -0.806574, -0.616113, -0.679353, -0.025392, -0.915402, -0.181821, + -0.365672, 0.98137, 0.812824, 0.580854, 0.056082, -0.323773, 0.25507, -0.69093, -0.426504, + -0.200885, -0.234955, -0.947302, 0.397531, 0.823482, -0.551573, 0.269566, -0.115974, -0.036472, + 0.05829, 0.866583, 0.133991, -0.632677, -0.359714, 0.488527, 0.312055, 0.019436, -0.131977, + -0.389077, -0.354927, -0.527486, 0.163862, 0.280842, 0.765745, -0.225913, 0.071589, 0.646289, + 0.434991, 0.128488, 0.307279, 0.051906, -0.857792, 0.038551, -0.218579, 0.902412, 0.902628, + 0.198391, 0.893803, -0.515019, 0.869174, 0.860985, -0.038221, -0.802509, -0.322696, -0.267427, + 0.016518, -0.906651, 0.185326, -0.415892, -0.256041, -0.516492, -0.211134, -0.928725, -0.530168, + 0.092125, 0.655276, 0.908748, -0.756456, 0.419921, -0.563696, -0.773157, -0.044035, -0.573647, + -0.861246, -0.934536, -0.669348, 0.821736, 0.557708, -0.395847, -0.669321, -0.769242, -0.590521, + -0.411498, 0.600589, 0.327256, -0.385372, 0.688431, -0.621233, -0.814688, 0.21825, -0.551401, + 0.284478, 0.847236, -0.472905, -0.697812, 0.3764, -0.903147, 0.892178, -0.472256, 0.48346, + -0.795172, -0.676868, 0.110155, 0.355405, 0.775395, 0.836336, -0.057512, -0.128567, 0.165302, + -0.232291, 0.034041, -0.947048, -0.820907, 0.685262, -0.584357, 0.787485, 0.109744, 0.243585, + 0.908878, -0.55619, -0.157858, 0.177169, 0.341642, -0.973214, 0.355419, -0.589726, 0.13135, + 0.67655, -0.099615, -0.031635, -0.074715, 0.834483, 0.568329, 0.168169, -0.601815, -0.543037, + 0.796555, 0.719421, 0.57901, -0.779717, 0.778793, -0.095592, 0.736757, 0.868549, 0.109611, + -0.416118, 0.940651, -0.52112, 0.653415, -0.95889, -0.314513, -0.871855, -0.448576, 0.424619, + -0.716528, -0.864804, 0.715035, 0.533821, -0.010935, -0.704961, -0.264936, -0.323781, 0.61759, + -0.327087, -0.288016, -0.708859, -0.470988, 0.541449, 0.644286, 0.145287, -0.375198, 0.960491, + 0.19738, -0.385996, -0.346597, -0.139951}; + const std::vector wanted_output{ + -0.881204, 0.091941, -0.689862, 0.747561, 0.1643, -0.257181, -0.510169, 0.346129, -0.598897, + 0.474262, 0.545675, 0.613803, 0.261238, -0.875369, 0.719317, -0.310223, -0.295636, -0.107439, + 0.731135, 0.768927, 0.154412, 0.477152, -0.931997, 0.002362, -0.884684, 0.34035, -0.712449, + -0.356405, 0.699031, 0.955696, -0.60038, -0.555011, -0.460434, 0.218025, -0.469235, 0.303848, + -0.179477, 0.029204, 0.113599, -0.001443, -0.1507, 0.480179, 0.65374, 0.309165, 0.165056, + -0.201304, 0.682809, 0.233163, -0.29184, 0.103198, 0.717378, 0.16282, 0.172936, 0.183714, + -0.272688, -0.186657, -0.484942, 0.448347, -0.797716, -0.560691, 0.191949, 0.824121, -0.068307, + -0.608582, -0.161587, -0.226475, -0.248153, 0.097723, -0.261959, -0.031292, 0.340845, 0.019184, + 0.06809, 0.098019, 0.183802, -0.047747, -0.066991, 0.021531, 0.052025, 0.246128, 0.207934, + 0.12513, 0.243634, -0.060805, -0.178061, -0.002233, 0.073305, 0.214467, -0.117187, -0.033956, + -0.130533, -0.032946, 0.23961, 0.098948, 0.255791, 0.049094, -0.213172, -0.265136, -0.285062, + 0.102256, -0.311739, -0.078295, 0.278503, 0.128629, -0.036306, 0.096503, 0.283411, -0.077656, + -0.028191, -0.042296, 0.186517, 0.177824, 0.153217, 0.098994, 0.111669, -0.095161, -0.229145, + 0.061469, -0.097719, 0.197825, -0.110548, -0.19366, -0.028653, 0.067786, 0.18597, 0.102524, + 0.198293, -0.023746, -0.313181, -0.196696, -0.324988, 0.111624, -0.244767, -0.192672, 0.368749, + 0.103217, -0.10292, 0.16099, 0.311044, -0.080279, 0.058938, 0.070161, 0.125112, 0.28158, + 0.259556, 0.022898, 0.035448, -0.131006, -0.212886, 0.124895, -0.028297, 0.175266, -0.161323, + -0.173395, -0.155892, 0.093865, 0.10782, 0.10082, 0.168554, -0.122813, -0.168491, -0.30615, + -0.318508, 0.07307, -0.309652, -0.077957, 0.422228, 0.113516, 0.049141, 0.133452, 0.193851, + -0.115619, -0.046267, 0.154206, 0.11227, 0.342187, 0.21366, 0.124735, 0.078402, -0.15763, + -0.208478, -0.019179, 0.091665, 0.206202, -0.100288, -0.123591, 0.029384, 0.077184, 0.137856, + -0.021289, 0.291744, 0.014481, -0.291672, -0.357641, -0.320048, 0.079891, -0.214914, -0.240648, + 0.372596, 0.186705, -0.108255, 0.097125, 0.197359, -0.142048, 0.018385, 0.131394, 0.050752, + 0.222175, 0.362526, -0.004538, -0.119545, -0.151791, -0.284931, 0.116456, 0.009889, 0.276321, + -0.094182, -0.313073, 0.070622, 0.227213, 0.152828, -0.09284, 0.164671, 0.01659, -0.244099, + -0.369936, -0.335831, -0.003813, -0.364372, -0.109786, 0.347942, 0.17291, 0.111935, 0.097256, + 0.151006, -0.200427, -0.219662, 0.027911, 0.114069, 0.157935, 0.230197, -0.032929, 0.031201, + -0.221294, -0.122474, -0.029116, -0.073239, 0.278698, -0.036823, -0.205634, 0.105256, 0.184853, + 0.080727, -0.135421, 0.200532, 0.017928, -0.205409, -0.323091, -0.358497, 0.166593, -0.297126, + -0.105213, 0.383697, 0.139154, 0.048883, 0.03911, -0.013421, -0.07812, -0.136851, -0.038397, + -0.12941, 0.355059, 0.261576, 0.135505, 0.183789, -0.032485, -0.281314, -0.084895, 0.048456, + 0.368218, -0.239675, -0.113426, 0.144414, 0.251537, 0.285076, -0.056974, 0.329104, 0.253549, + -0.256794, -0.371031, -0.294542, 0.073209, -0.220683, -0.185768, 0.357496, 0.140984, -0.021799, + 0.103254, 0.13815, -0.147262, -0.050623, 0.09612, -0.001425, 0.196182, 0.358509, -0.003283, + -0.035014, -0.129164, -0.240347, 0.051846, 0.026574, 0.274927, -0.078415, -0.250314, 0.036613, + 0.174029, 0.201359, -0.104781, 0.173003, 0.0485, -0.276256, -0.56154, -0.452381, 0.282183, + -0.100051, -0.195611, 0.311786, 0.15619, 0.074152, 0.391223, -0.199241, -0.220635, -0.023575, + 0.130242, -0.349884, 0.337983, 0.42302, -0.083763, 0.009015, 0.034288, -0.222898, -0.25057, + -0.007316, 0.08733, -0.270783, -0.204251, -0.050328, 0.132508, 0.425565, -0.280876, 0.043097, + -0.154513, 0.369789, -0.400884, -0.295054, 0.176419, -0.232108, -0.008007, 0.310164, -0.242375, + 0.42927, 0.005933, -0.403495, -0.41102, -0.059432, -0.092408, -0.149171, 0.361002, 0.000677, + -0.170511, 0.035057, -0.302112, -0.246354, -0.566151, -0.066486, 0.282002, 0.014079, -0.458221, + -0.418362, -0.067214, 0.171429, -0.181399, 0.261285, 0.106414, 0.152962, -0.299447, -0.474003, + 0.094406, -0.003431, -0.14762, 0.228511, -0.07798, 0.451031, 0.18325, -0.699153, -0.444031, + -0.292327, 0.05729, -0.189307, 0.232357, 0.098644, -0.296068, 0.45174, -0.365022, 0.012595, + -0.552699, 0.016545, 0.375956, -0.332601, -0.010997, -0.183178, -0.080277, 0.274385, -0.187655, + 0.100032, 0.232351, 0.009524, 0.033086, -0.414236, 0.035937, -0.019447, 0.151829, 0.041483, + -0.261985, 0.443972, -0.127781, -0.362492, -0.356124, -0.001626, 0.230279, -0.130785, 0.164835, + 0.027058, -0.109101, 0.17929, -0.602683, 0.125843, -0.438456, -0.0926, 0.193107, -0.303142, + -0.028871, -0.081198, 0.288212, 0.080361, -0.099262, 0.362076, 0.250057, 0.045281, 0.133878, + -0.186058, 0.034963, 0.240825, 0.152567, -0.128083, -0.122354, 0.494072, -0.10718, -0.215754, + -0.244531, 0.060387, 0.330431, 0.040231, -0.229057, 0.268228, -0.082746, 0.279633, -0.58492, + 0.12751, -0.149561, -0.179349, 0.16712, -0.140563, -0.064927, -0.034106, 0.074136, 0.114856, + -0.285749, 0.317721, 0.159124, 0.018119, 0.119408, 0.013308, -0.00659, 0.144956, -0.043371, + -0.09865, -0.405893, -0.035863, 0.04116, -0.215177, -0.163174, 0.053781, -0.202389, -0.129354, + -0.167408, -0.034601, 0.103254, 0.295832, -0.144888, 0.146544, -0.148303, -0.144381, 0.140142, + 0.156722, -0.132472, -0.182831, -0.244889, 0.26113, 0.173058, 0.15478, 0.105746, 0.051541, + 0.094271, 0.094184, -0.069218, 0.160119, -0.021258, -0.162507, -0.312809, -0.095485, -0.027097, + -0.187323, -0.104139, 0.139322, -0.162471, -0.078077, -0.227495, -0.022692, 0.145524, 0.326132, + -0.03064, 0.117039, -0.152834, -0.158596, 0.079873, 0.137433, -0.166981, -0.12162, -0.273569, + 0.312175, 0.18241, 0.096205, -0.037315, 0.017587, 0.064272, 0.017423, -0.150135, 0.051035, + 0.157866, -0.098746, -0.334735, -0.179707, -0.090659, -0.133211, -0.060676, 0.12509, -0.168885, + -0.185808, -0.248876, -0.139283, 0.14323, 0.314664, 0.132168, 0.219089, -0.217751, -0.168365, + 0.021291, 0.137546, -0.24334, -0.14177, -0.314241, 0.194652, 0.23235, 0.084112, -0.223729, + 0.0343, 0.038425, 0.093958, -0.157425, 0.12136, -0.058102, -0.0325, -0.419371, -0.141457, + 0.042914, -0.21138, -0.11394, 0.040597, -0.319282, -0.119533, -0.219728, -0.152012, 0.074526, + 0.37375, 0.017871, 0.02779, -0.153633, -0.122923, 0.116242, 0.299995, -0.240848, -0.196916, + -0.371719, 0.200991, 0.200441, 0.108993, -0.024889, 0.036512, 0.120483, 0.110104, -0.092197, + 0.021758, -0.096109, -0.12064, -0.422356, -0.299033, -0.020464, -0.276963, -0.078489, 0.069101, + -0.258107, -0.298906, -0.166626, -0.224629, 0.126478, 0.334466, 0.007713, 0.149007, -0.296778, + -0.160737, 0.07372, 0.246687, -0.234195, -0.237572, -0.395263, 0.263894, 0.278644, -0.036557, + -0.172085, 0.123061, 0.125398, 0.042218, -0.135603, 0.059152, -0.104652, -0.077902, -0.524384, + -0.251662, -0.023252, -0.23952, 0.029121, 0.059395, -0.291226, -0.307816, -0.171623, -0.246392, + 0.160228, 0.336648, 0.011648, 0.116617, -0.239917, -0.122188, 0.166533, 0.322187, -0.183177, + -0.247834, -0.383677, 0.093069, 0.224619, 0.021441, -0.148675, 0.066416, 0.04542, -0.025348, + -0.076116, 0.099285, -0.086703, -0.108505, -0.494168, -0.12884, 0.032344, -0.282911, -0.082785, + -0.044587, -0.400883, -0.274944, -0.100898, -0.215519, 0.070934, 0.269029, -0.020018, 0.116284, + -0.177474, -0.030154, 0.124862, 0.316064, -0.2148, -0.211261, -0.417288, 0.194448, 0.326506, + 0.06746, 0.027173, 0.050428, 0.169706, 0.136854, -0.1163, 0.02208, -0.11936, -0.074599, + -0.454407, -0.332658, -0.018393, -0.24825, -0.084031, 0.10719, -0.228398, -0.285706, -0.16988, + -0.209863, 0.21635, 0.349212, 0.041041, 0.153431, -0.284985, -0.208063, 0.104367, 0.261141, + -0.215554, -0.242157, -0.380873, 0.250949, 0.232332, -0.029765, -0.189435, 0.045391, 0.15446, + 0.045141, -0.138691, 0.060421, -0.120272, 0.006623, -0.502943, -0.262494, -0.022643, -0.225885, + -0.104061, 0.10322, -0.309181, -0.229337, -0.092881, -0.227038, 0.207143, 0.301894, 0.09358, + 0.112087, -0.21774, -0.14713, 0.083468, 0.327877, -0.136304, -0.187704, -0.445585, 0.206068, + 0.224804, 0.056931, -0.118929, 0.001685, 0.117355, 0.056887, -0.131711, 0.123945, -0.170648, + 0.065091, -0.549041, -0.346876, -0.040203, -0.218239, -0.062196, 0.275469, -0.21508, -0.249791, + -0.093001, -0.31922, 0.167545, 0.27964, 0.14167, 0.03803, -0.303663, -0.185698, 0.073203, + 0.423399, 0.032402, -0.143388, -0.361525, 0.141088, 0.093187, 0.044971, -0.240277, 0.082505, + 0.063768, 0.047933, -0.150136, 0.014615, -0.080633, -0.039007, -0.475403, -0.265281, 0.014257, + -0.275347, -0.133337, 0.05895, -0.296771, -0.223556, -0.203761, -0.224432, 0.138675, 0.369687, + 0.076605, 0.125778, -0.257924, -0.156964, 0.152194, 0.259834, -0.205936, -0.243631, -0.354199, + 0.140052, 0.231083, 0.026353, -0.162425}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "long_input_with_mixed_token_types"; + const std::vector token_types{ + 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, + 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, + 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, + 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, -0.184324, 0.082248, -0.917971, 0.311245, + -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, 0.625479, + -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, 0.273531, + -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, 0.813192, + -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, 0.807311, + -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, 0.153318, + 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, -0.881248, + -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, -0.297463, + -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, 0.171486, + 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, 0.029975, + -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, -0.946428, + -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, -0.597124, + -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, -0.246632, + -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, 0.297012, + -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, -0.875637, + -0.228871, 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, + -0.108976, -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, + -0.569343, -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, + 0.429193, 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, + 0.769097, -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, + -0.320644, 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, + 0.980358, 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, + -0.477203, -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, + 0.456818, 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, + -0.256998, 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, + -0.518889, 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, + 0.512987, 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, + -0.68424, -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, + 0.007862, 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, + 0.563852, 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, + -0.150954, -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, + 0.37714, -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, + 0.507329, -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, + 0.39719, -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, + -0.492104, 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, + 0.711457, 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, + 0.500654, -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, + -0.083318, 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, + 0.143193, -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, + 0.508876, 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, + -0.472354, 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, + 0.085618, -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, + 0.159464, 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, + -0.260825, -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, + 0.899223, 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, + -0.560654, -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, + -0.165227, -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, + 0.603313, -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, + -0.518932, 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, + 0.215429, -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, + 0.573391, -0.949507, -0.7171, -0.377511, 0.826098, 0.1023, -0.747897, 0.006262, -0.776671, + -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, -0.288666, 0.3929, 0.395564, + 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, 0.815057, 0.99516, 0.296258, + -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, 0.18636, 0.413585, -0.206588, + -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, -0.109859, 0.094326, -0.060097, + -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, -0.46216, -0.33695, -0.375678, + -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, 0.139068, 0.552292, -0.702444, + 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, -0.632811, 0.556983, -0.149319, + 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, -0.867631, 0.003304, + 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, 0.016121, 0.210597, + -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, -0.147204, -0.612415, + -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, -0.842229, -0.794683, 0.585289, + 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, 0.721554, 0.773871, 0.720051, + 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, -0.016791, -0.870379, -0.261475, + -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, 0.910749, 0.583554, -0.518337, + -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, 0.060577, -0.602459, 0.819876, + 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, -0.4237, 0.602567, 0.200242, + 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, 0.783539, -0.26327, 0.314318, + -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, 0.037649, -0.586658, 0.822194, + -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, 0.961893, -0.171048, -0.934408, + 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, 0.162617, -0.133854, 0.230342, + -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, 0.192636, -0.845443, 0.793552, + 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, -0.77887, 0.912821, 0.07751, + 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, 0.074966, -0.698764, -0.219233, + -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, 0.55947, 0.400247, 0.774181, + -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, -0.39125, -0.01835, -0.229459, + 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, -0.772226, -0.809075, -0.54802, + -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, 0.981038, -0.370629, -0.716001, + 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, 0.642863, 0.839239, -0.493832, + 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, 0.25278, 0.298125, -0.653559, + 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, 0.486671, 0.170416, 0.271919, + 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, 0.806378, -0.525239, -0.036417, + 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, -0.453557, 0.097171, -0.116216, + -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, 0.642417, 0.247718, -0.844133, + 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, -0.557894, 0.601745, -0.127932, + -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, 0.693016, 0.852534, 0.551467, + 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, -0.73862, 0.672618, 0.678645, + -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, -0.32739, 0.700386, 0.813401, + -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, -0.001452, 0.253108, -0.53735, + 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, 0.931584, 0.293263, -0.227222, + 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, -0.678475, 0.102821, 0.095808, + 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, 0.370394, -0.736122, 0.062691, + 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, 0.968727, -0.397175, -0.232716, + -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, 0.340153, -0.876826, -0.155735, + -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, -0.631138, 0.706552, 0.139649, + -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, -0.8772, -0.654672, -0.718926, + 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, 0.349295, 0.354269, 0.980382, + -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, -0.852453, 0.896511, -0.041441, + -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, 0.778847, -0.30743, 0.593968, + 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, -0.931854, -0.466351, 0.046006, + -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, -0.14036, 0.285996, 0.045167, + -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, 0.387979, 0.236666, 0.748384, + -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, -0.379444, -0.369984, 0.918921, + 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, 0.66429, -0.795854, 0.35589, + -0.569686, -0.039074, -0.20867, -0.834965, -0.953914, -0.657898, 0.453771, 0.457435, -0.869764, + -0.375542, 0.016334, -0.864583, 0.563455, 0.905732, 0.176862, -0.743015, 0.233186, 0.363014, + 0.791843, -0.53207, -0.89591, 0.439351, 0.062256, -0.325826, -0.419022, -0.515616, 0.809497, + -0.172539, 0.721207, 0.89265, 0.126676, 0.213018, -0.068105, 0.686815, -0.901088, 0.397683, + -0.162929, 0.456616, -0.004454, -0.370266, -0.10795, 0.539993, -0.69453, -0.632099, -0.223996, + -0.362725, 0.392839, 0.67297, -0.107099, 0.945574, -0.41782, -0.561159, -0.447694, -0.688972, + -0.700934, -0.891016, -0.886279, 0.260999, 0.609854, 0.938847, 0.851797, -0.057594, 0.194047, + -0.59832, 0.386521, -0.958841, 0.471673, 0.183416, 0.307304, 0.366148, -0.459105, 0.858106, + 0.477252, 0.656895, 0.132079, 0.627987, 0.673001, 0.453235, 0.761769, -0.181378, 0.657536, + 0.230399, 0.601696, 0.973999, 0.226437, -0.371167, -0.099496, 0.281528, 0.168609, -0.27317, + 0.783518, 0.600807, -0.621154, -0.081481, -0.095994, -0.626731, 0.145855, -0.306993, -0.516261, + -0.321547, -0.356549, 0.95664, 0.383572, 0.984113, 0.274196, 0.226431, 0.411094, 0.171633, + -0.784771, -0.591354, -0.242279, 0.015033, 0.376714, 0.385048, 0.793313, 0.203573, -0.341293, + -0.752026, -0.732411, -0.597337, 0.301604, 0.540272, 0.874913, -0.316312, -0.078883, -0.296963, + -0.003654, 0.321001, -0.021971, 0.046295, 0.126687, 0.372418, -0.303401, -0.596298, 0.235925, + -0.118406, -0.453028, 0.419963, 0.009069, -0.145465, -0.484084, -0.131566, -0.850325, 0.22749, + 0.015007, 0.606836, 0.06457, 0.079952, 0.272413, 0.760938, -0.472558, 0.597005, 0.244562, + -0.667117, 0.348187, -0.599733, -0.314781, -0.476669, -0.680314, 0.787571, -0.893821, 0.500015, + -0.900012, -0.121706, 0.059642, 0.710911, -0.361894, 0.287827, 0.154906, 0.588385, 0.059452, + 0.374445, -0.604091, -0.694911, 0.891078, -0.728667, -0.17024, -0.12088, 0.97788, -0.216114, + -0.761304, -0.253499, 0.515821, 0.39629, 0.827292, -0.204717, 0.471045, -0.94104, 0.38694, + 0.459464, 0.645087, -0.573442, -0.266978, 0.24193, -0.710615, -0.795481, -0.962043, 0.055823, + 0.620988, 0.25686, 0.060965, 0.348426, -0.628404, 0.105426, -0.248424, -0.495144, 0.862373, + -0.773653, 0.146548, -0.878713, -0.033927, -0.444362, 0.329147, -0.561538, 0.64004, -0.811467, + 0.600636, -0.751179, 0.535585, -0.421066, -0.00233, -0.182503, 0.64903, 0.327728, -0.881204, + 0.091941, -0.689862, 0.747561, 0.1643, -0.257181, -0.510169, 0.346129, -0.598897, 0.474262, + 0.545675, 0.613803, 0.261238, -0.875369, 0.719317, -0.310223, -0.295636, -0.107439, 0.731135, + 0.768927, 0.154412, 0.477152, -0.931997, 0.002362, -0.884684, 0.34035, -0.712449, -0.356405, + 0.699031, 0.955696, -0.60038, -0.555011, 0.123846, 0.393105, -0.162872, -0.31229, -0.656844, + 0.426876, 0.979762, -0.484079, 0.471664, 0.488395, 0.803797, -0.113854, 0.031498, 0.734699, + 0.632114, 0.987707, -0.28657, 0.395687, 0.698276, -0.678816, 0.198659, -0.223753, 0.642824, + -0.449127, 0.070139, 0.598311, -0.916117, -0.844362, -0.512184, 0.641417, 0.670528, -0.68297, + 0.190687, -0.529881, -0.464153, 0.862417, 0.483009, -0.273483, 0.147202, 0.193757, 0.234241, + -0.342279, -0.588886, 0.662064, 0.134373, 0.41855, -0.37873, 0.48437, 0.727766, 0.608173, + 0.271896, 0.983883, -0.002187, 0.212897, 0.95013, 0.971897, -0.42222, 0.900803, 0.36906, + -0.111938, 0.873146, -0.518029, 0.649749, 0.990944, -0.689702, -0.590093, -0.990914, -0.179962, + -0.908204, -0.334922, 0.303595, 0.706878, 0.557035, 0.555081, 0.414864, -0.620233, -0.793995, + 0.041454, 0.949583, 0.056306, -0.08601, -0.678737, -0.495838, -0.770864, 0.800668, -0.16293, + -0.883409, 0.107275, 0.072568, -0.123549, 0.357964, 0.537779, -0.94041, -0.766092, -0.04804, + -0.927138, -0.90836, 0.88291, -0.076059, -0.49439, -0.343017, -0.780722, 0.780366, -0.216839, + -0.562238, -0.758413, 0.58449, -0.138231, -0.105057, -0.260633, -0.482723, 0.17789, 0.76937, + -0.57958, 0.047913, -0.760513, -0.468897, 0.87777, 0.010485, 0.963319, -0.175204, -0.545044, + -0.597488, 0.886315, -0.768987, 0.524794, 0.248582, 0.295107, 0.56424, -0.261623, 0.618764, + -0.796723, -0.351841, 0.732041, 0.29678, -0.133173, -0.233531, -0.610615, 0.608092, -0.0318, + -0.033834, 0.236493, 0.737948, -0.510183, -0.344397, 0.677631, 0.564772, -0.491936, -0.98926, + 0.185511, 0.525894, 0.238857, 0.709314, -0.793474, 0.504286, -0.621679, 0.562807, 0.743714, + 0.316716, 0.809075, -0.659152, -0.894376, -0.961505, 0.627831, 0.35031, -0.732267, 0.484281, + 0.912412, -0.986084, 0.725421, 0.153373, 0.093021, 0.899793, 0.90559, 0.421351, 0.790135, + 0.416024, 0.162942, -0.879011, 0.186783, -0.711446, 0.307866, 0.176434, 0.022466, -0.683727, + -0.606197, 0.739138, 0.487019, 0.52724, -0.297977, -0.172196, -0.256278, 0.687693, -0.431688, + 0.629865, 0.689494, -0.914556, 0.006107, -0.190454, -0.552822, 0.431718, -0.121495, 0.875508, + -0.625904, 0.464631, -0.853793, -0.501222, 0.068213, 0.790093, 0.526719, -0.821085, 0.110765, + -0.58949, 0.04333, -0.833073, -0.293373, 0.685866, -0.917536, -0.953423, 0.182144, 0.137084, + -0.182886, 0.873212, -0.602089, -0.60708, -0.747476, -0.186123, -0.255205, 0.618747, -0.056149, + 0.319354, -0.415557, 0.811192, 0.843019, -0.895569, -0.257, -0.848497, 0.424827, -0.873683, + -0.472812, 0.999172, -0.954919, 0.737805, 0.084479, 0.799635, -0.507489, 0.656829, 0.120654, + 0.076912, 0.682532, -0.950527, -0.805451, 0.965763, -0.600497, -0.720808, -0.048895, -0.320102, + -0.136812, -0.669986, 0.360819, -0.860482, 0.080993, 0.583539, 0.192136, 0.13287, 0.146264, + -0.292951, -0.190498, -0.421693, -0.675529, -0.529456, 0.988561, -0.167356, 0.350296, 0.691554, + -0.078118, -0.537974, -0.677539, -0.368403, 0.356936, -0.842159, -0.122097, 0.380387, 0.815855, + 0.300931, 0.197767, 0.684591, 0.462088, 0.338314, -0.310047, -0.801899, -0.216002, -0.181364, + 0.073437, -0.10998, 0.404289, 0.66455, -0.40542, -0.948861, -0.51306, -0.478476, 0.56684, + -0.645044, -0.094057, -0.211939, -0.606932, 0.453285, -0.416556, -0.051732, -0.703085, -0.10086, + 0.142086, -0.040693, -0.373648, 0.297084, -0.259098, -0.554399, -0.737433, -0.21183, -0.944678, + 0.83002, -0.477728, -0.414418, 0.092439, 0.259233, -0.094292, 0.686023, -0.58295, 0.358381, + -0.002255, -0.813471, -0.387295, 0.254487, 0.191042, 0.727135, 0.668993, -0.545423, -0.427029, + -0.212041, -0.716421, -0.26999, -0.818313, 0.380342, 0.707559, 0.079176, -0.715881, -0.757308, + -0.389299, 0.290853, 0.024392, 0.181822, 0.942481, 0.464442, 0.215023, -0.202322, 0.473049, + 0.365841, -0.900102, -0.590709, 0.033566, 0.379442, 0.486503, -0.595279, -0.992114, -0.052092, + -0.114317, 0.29018, -0.275006, 0.764523, 0.066724, 0.730247, -0.696314, 0.400036, 0.119156, + -0.500148, 0.495748, -0.984019, 0.808467, 0.080588, 0.096553, 0.462446, 0.083012, 0.428652, + 0.636214, -0.780458, 0.66156, -0.149739, -0.232549, 0.201282, 0.782152, -0.543615, -0.673931, + 0.620607, -0.469668, 0.32195, -0.147326, 0.275253, 0.763115, -0.506799, -0.485264, 0.490621, + 0.054752, -0.110058, -0.878388, 0.847258, -0.037871, -0.184187, -0.41049, -0.197338, 0.486034, + -0.022983, 0.855209, -0.057735, -0.143458, 0.564452, -0.025876, -0.199593, 0.334227, 0.788631, + 0.24955, 0.696318, 0.648038, 0.282798, 0.347689, 0.322684, 0.103727, 0.850736, 0.923141, + 0.355989, -0.049939, 0.896594, -0.778321, 0.734784, 0.529826, 0.642136, -0.076836, -0.746098, + 0.713339, -0.437256, 0.263113, 0.566545, -0.934526, 0.066364, -0.355226, 0.709755, -0.636701, + 0.60717, 0.62357, 0.551715, 0.960012, 0.151451, -0.906381, 0.713865, 0.091547, 0.019845, + -0.952589, -0.224756, -0.485368, 0.979411, 0.712029, 0.745988, 0.684837, -0.619874, -0.42947, + -0.39135, -0.400882, 0.778432, 0.339767, 0.801354, -0.046779, -0.891427, -0.290123, 0.702795, + 0.608806, 0.309572, -0.293328, -0.933371, -0.537327, 0.52138, -0.403358, 0.478339, 0.273041, + -0.384087, 0.609078, -0.321333, -0.033223, -0.380913, -0.948572, 0.161238, 0.288969, -0.503481, + 0.613447, -0.897056, -0.963977, -0.617649, -0.345605, -0.111058, -0.193248, 0.456388, -0.877625, + 0.147248, 0.017318, 0.26413, 0.99408, 0.615448, -0.553705, -0.819453, -0.242101, -0.501627, + 0.349305, 0.009167, 0.804324, 0.392806, -0.18387, 0.03437, 0.239486, -0.124087, 0.806935, + -0.7819, 0.487406, -0.637444, -0.876081, -0.205297, 0.487305, 0.706562, 0.250942, -0.086429, + -0.056059, -0.405381, -0.089737, -0.069094, 0.850963, 0.585244, -0.800224, 0.004137, -0.61507, + -0.158741, -0.794768, 0.259961, -0.721078, 0.987221, 0.755203, -0.688359, -0.941464, 0.039018, + -0.279152, 0.293567, -0.676914, 0.409341, -0.863749, -0.52777, -0.525702, 0.483891, -0.026181, + -0.961029, -0.57112, -0.462777, -0.92783, 0.128047, 0.356338, -0.183478, -0.397945, -0.006065, + -0.794282, -0.608902, -0.022806, 0.888377, -0.307508, 0.495659, -0.39355, -0.266198, -0.951944, + 0.828485, 0.973728, -0.021003, 0.63537, 0.817942, 0.496718, 0.515019, -0.951991, -0.939671, + -0.76754, 0.312786, -0.864977, -0.763345, -0.484703, -0.921685, 0.001347, 0.144268, -0.5852, + 0.654765, -0.379645, -0.281527, 0.761875, 0.858552, -0.11472, -0.717878, -0.501669, 0.127339, + 0.586192, 0.497845, -0.441582, -0.945367, -0.875147, -0.318156, 0.012544, -0.449176, -0.790705, + 0.105388, -0.793741, -0.767924, -0.812946, -0.270973, 0.883258, 0.390919, -0.118569, 0.205811, + 0.398209, 0.005826, -0.806574, -0.616113, -0.679353, -0.025392, -0.915402, -0.181821, -0.365672, + 0.98137, 0.812824, 0.580854, 0.056082, -0.323773, 0.25507, -0.69093, -0.426504, -0.200885, + -0.234955, -0.947302, 0.397531, 0.823482, -0.551573, 0.269566, -0.115974, -0.036472, 0.05829, + 0.866583, 0.133991, -0.632677, -0.359714, 0.488527, 0.312055, 0.019436, -0.131977, -0.389077, + -0.354927, -0.527486, 0.163862, 0.280842, 0.765745, -0.225913, 0.071589, 0.646289, 0.434991, + 0.128488, 0.307279, 0.051906, -0.857792, 0.038551, -0.218579, 0.902412, 0.902628, 0.198391, + 0.893803, -0.515019, 0.869174, 0.860985, -0.038221, -0.802509, -0.322696, -0.267427, 0.016518, + -0.906651, 0.185326, -0.415892, -0.256041, -0.516492, -0.211134, -0.928725, -0.530168, 0.092125, + 0.655276, 0.908748, -0.756456, 0.419921, -0.563696, -0.773157, -0.044035, -0.573647, -0.861246, + -0.934536, -0.669348, 0.821736, 0.557708, -0.395847, -0.669321, -0.769242, -0.590521, -0.411498, + 0.600589, 0.327256, -0.385372, 0.688431, -0.621233, -0.814688, 0.21825, -0.551401, 0.284478, + 0.847236, -0.472905, -0.697812, 0.3764, -0.903147, 0.892178, -0.472256, 0.48346, -0.795172, + -0.676868, 0.110155, 0.355405, 0.775395, 0.836336, -0.057512, -0.128567, 0.165302, -0.232291, + 0.034041, -0.947048, -0.820907, 0.685262, -0.584357, 0.787485, 0.109744, 0.243585, 0.908878, + -0.55619, -0.157858, 0.177169, 0.341642, -0.973214, 0.355419, -0.589726, 0.13135, 0.67655, + -0.099615, -0.031635, -0.074715, 0.834483, 0.568329, 0.168169, -0.601815, -0.543037, 0.796555, + 0.719421, 0.57901, -0.779717, 0.778793, -0.095592, 0.736757, 0.868549, 0.109611, -0.416118, + 0.940651, -0.52112, 0.653415, -0.95889, -0.314513, -0.871855, -0.448576, 0.424619, -0.716528, + -0.864804, 0.715035, 0.533821, -0.010935, -0.704961, -0.264936, -0.323781, 0.61759, -0.327087, + -0.288016, -0.708859, -0.470988, 0.541449, 0.644286, 0.145287, -0.375198, 0.960491, 0.19738, + -0.385996, -0.346597, -0.139951, 0.474098, 0.365768, 0.724961, -0.045057, 0.827093, -0.406187, + -0.460553, -0.369297, -0.938208, -0.65644, -0.904875, -0.059098, 0.009427, -0.259542, -0.683384, + 0.907289, -0.33134, 0.476553, 0.69641, -0.657357, -0.125023, 0.577967, 0.969359, -0.126161, + 0.724623, -0.784866, -0.649739, 0.822335, -0.09468, 0.987923, 0.072717, -0.414709, 0.949715, + 0.874484, 0.092806, -0.606205, -0.043297, -0.480917, 0.728681, 0.046324, 0.210521, 0.606465, + 0.331241, -0.624266, 0.830724, 0.614345, -0.617336, 0.756103, 0.283703, -0.196849, -0.715163, + -0.165923, -0.980443, 0.570761, 0.724254, -0.287898, 0.92705, -0.370291, 0.171248, -0.696894, + -0.042278, 0.40423, 0.430735, -0.033533, -0.504262, 0.698985, 0.662066, 0.16048, -0.459876, + 0.212026, 0.002674, 0.913603, 0.148193, 0.077129, 0.068359, 0.532009, -0.012356, 0.857144, + 0.52099, -0.755627, -1.1e-05, -0.848807, -0.767809, 0.194293, 0.224719, -0.087512, 0.950462, + -0.537212, -0.419086, -0.160146, 0.006063, -0.084702, 0.900389, -0.422346, -0.523075, 0.08595, + 0.751082, 0.237356, 0.538733, 0.193585, 0.852288, 0.600624, 0.715569, -0.13469, -0.827896, + -0.474364, 0.340668, 0.701547, -0.390704, 0.827419, 0.143726, 0.003972, 0.038984, -0.176673, + 0.936189, 0.043435, 0.612509, -0.844014, -0.515221, 0.112437, 0.7985, 0.476087, 0.190459, + -0.987992, 0.0188, -0.660102, -0.853872, 0.136743, -0.632705, 0.907639, -0.543542, 0.322268, + 0.586963, -0.777237, 0.51178, -0.133896, 0.518163, 0.967735, -0.426165, -0.433104, 0.794549, + 0.1112, -0.099733, 0.758668, -0.483144, -0.049376, 0.686876, 0.390811, -0.646815, 0.259917, + -0.762437, -0.543073, 0.643012, -0.266512, -0.509357, 0.070882, 0.24437, -0.621617, -0.674363, + -0.968469, 0.258384, -0.645229, 0.076208, -0.223658, -0.65386, -0.319099, -0.76869, -0.529333, + -0.031171, -0.854915, -0.877033, 0.749061, 0.094098, -0.442254, -0.033249, 0.741565, -0.834266, + -0.530184, -0.72314, -0.072701, -0.034413, -0.779306, 0.694084, -0.76792, 0.933636, -0.688369, + -0.137046, 0.186987, -0.444477, 0.919642, -0.689434, -0.055428, -0.734261, 0.277591, 0.852587, + 0.927586, 0.118714, -0.500645, 0.971845, 0.07463, 0.676577, -0.519417, -0.464093, -0.830133, + 0.920126, 0.165884, -0.718189, 0.085889, -0.428905, 0.049956, 0.331923, -0.496235, 0.174499, + -0.631382, 0.192696, -0.965536, 0.159351, 0.993519, 0.921113, 0.364781, 0.735829, 0.972258, + 0.283369, 0.333518, 0.130034, 0.88533, 0.859041, -0.47026, -0.04111, -0.503843, 0.35883, + -0.968992, 0.353868, -0.274448, 0.362652, 0.312106, -0.497619, 0.518811, 0.42465, -0.850041, + 0.997752, 0.860753, 0.622182, -0.1015, 0.354288, -0.541016, -0.339799, 0.471959, 0.445168, + 0.395985, -0.953738, 0.828679, -0.417687, 0.865416, 0.823951, 0.370651, 0.99629, 0.57422, + 0.586486, -0.339572, 0.927485, 0.262095, 0.590836, -0.226108, 0.724221, 0.887102, -0.766251, + 0.819804, -0.66089, -0.688473, -0.835686, 0.28896, -0.750827, -0.376434, -0.502686, 0.267265, + -0.981761, -0.458441, 0.007316, 0.089802, -0.451624, 0.358264, -0.659754, -0.84689, -0.142165, + -0.540648, 0.630333, -0.683519, -0.083952, 0.415354, -0.875739, 0.77412, -0.454375, -0.272116, + -0.611714, -0.372638, -0.38559, -0.889877, 0.341708, -0.003204, 0.978231, 0.674676, 0.869934, + 0.294227, 0.525459, 0.936385, 0.82104, -0.768399, -0.224229, -0.964465, 0.037831, -0.35319, + 0.867917, 0.158105, 0.011006, -0.723352, -0.784731, 0.157424, -0.496882, -0.459252, 0.701434, + -0.521319, -0.445105, 0.767808, 0.390699, -0.568208, 0.302848, 0.504137, -0.888201, 0.186807, + 0.22847, -0.038947, 0.958801, -0.660976, 0.542117, -0.531217, -0.856106, 0.681519, -0.479722, + 0.047001, 0.525902, -0.834659, -0.855989, 0.340461, 0.871926, -0.105816, 0.704222, 0.351401, + 0.285303, -0.637572, 0.951718, 0.458041, 0.154624, 0.707304, -0.859227, 0.215484, -0.470729, + -0.101548, 0.327633, 0.442897, 0.229406, -0.773953, -0.625833, 0.017461, -0.173191, -0.837014, + 0.985166, 0.125783, -0.71055, 0.438586, 0.434499, -0.490566, 0.501444, -0.620343, 0.346481, + 0.949905, 0.660131, 0.493689, -0.203451, 0.187735, 0.348966, 0.244247, -0.202592, 0.139527, + -0.405031, -0.565267, -0.922836, -0.815309, -0.627715, 0.95589, 0.200115, -0.904621, -0.511169, + 0.233579, -0.299306, -0.28306, -0.375515, -0.24424, 0.115027, 0.059218, 0.642482, 0.639943, + 0.822991, -0.031811, -0.44652, 0.003412, -0.662214, 0.409122, -0.12065, -0.320276, -0.847812, + 0.481916, 0.558175, 0.912227, -0.35427, 0.301311, 0.037695, -0.63697, -0.625149, 0.512085, + -0.574323, 0.728184, 0.349359, 0.341509, 0.658576, 0.489416, 0.431283, 0.518842, -0.424367, + -0.530281, -0.183201, 0.555168, 0.699827, 0.736412, -0.315437, -0.126885, -0.68682, 0.616596, + -0.663127, -0.411489, 0.825765, 0.243013, -0.418632, -0.673372, -0.687674, 0.807026, -0.914004, + 0.864129, 0.799965, 0.061962, -0.080155, 0.777722, 0.440977, 0.945511, 0.807812, -0.65576, + 0.617119, 0.50433, -0.710012, 0.480272, -0.519412, -0.595792, 0.018656, -0.122881, -0.268882, + -0.655807, 0.547038, 0.99707, -0.221582, -0.673774, -0.051564, -0.86881, -0.812056, -0.333122, + 0.628305, -0.766114, -0.159583, -0.51927, -0.920789, -0.225111, -0.058251, -0.168141, 0.731135, + 0.400562, 0.622595, 0.391689, 0.104918, 0.542759, -0.63795, 0.509534, 0.476314, -0.424407, + -0.034321, -0.756477, -0.875048, -0.001105, 0.179055, -0.215706, 0.30895, -0.772002, -0.549682, + 0.690196, -0.973172, 0.157021, 0.769873, 0.749687, 0.341118, -0.910901, 0.128737, -0.351658, + -0.28111, 0.766192, -0.339842, -0.716171, -0.802738, 0.631384, 0.048253, 0.987665, 0.204503, + -0.931919, 0.247408, 0.915044, 0.62023, 0.30009, -0.751304, -0.599635, 0.679014, -0.668658, + 0.228133, -0.128123, 0.335081, 0.065432, -0.76167, -0.398608, 0.872191, 0.117716, 0.507055, + -0.504503, 0.791641, -0.214064, -0.337064, 0.202855, -0.358313, -0.40185, -0.143095, -0.05709, + -0.568754, 0.341814, -0.969182, 0.613863, 0.927464, 0.161783, -0.233658, -0.915901, 0.469602, + 0.81938, 0.854926, 0.08917, 0.332462, 0.95821, 0.149259, -0.48277, -0.949428, 0.437211, + 0.389543, 0.888684, -0.509105, 0.429523, -0.330854, -0.248535, 0.583487, -0.916678, 0.737137, + 0.465099, -0.594319, 0.510296, -0.251532, 0.089997, -0.267658, -0.979113, -0.103568, 0.48792, + -0.116347, -0.492413, 0.031686, 0.182487, -0.279016, -0.775484, -0.536143, -0.163033, 0.360143, + 0.889274, 0.018559, 0.358042, 0.575371, -0.436052, -0.331817, 0.663306, 0.715988, 0.236959, + -0.772782, 0.567586, -0.826495, 0.499822, 0.118514, 0.323015, -0.974748, -0.351575, 0.424697, + 0.769686, -0.286291, 0.89175, -0.223159, -0.603146, -0.433043, 0.062227, -0.177733, 0.484004, + -0.553422, -0.284471, -0.991013, 0.816243, -0.188163, -0.788312, -0.048254, -0.001825, 0.277728, + -0.109761, 0.629063, -0.345024, -0.299311, -0.23747, 0.17853, 0.80122, -0.046013, 0.769429, + 0.785546, -0.52065, -0.08592, -0.472059, 0.415974, -0.351569, 0.30505, 0.059745, -0.656465, + -0.672294, -0.976725, -0.559381, 0.279354, 0.060926, 0.752102, -0.879314, -0.029222, -0.89665, + 0.005854, 0.364337, -0.897043, 0.883152, -0.310591, 0.886036, -0.167851, 0.567315, 0.909077, + -0.364074, -0.243087, 0.524529, -0.856131, 0.591928, -0.628113, 0.928763, -0.655365, -0.411511, + 0.746185, -0.435387, 0.857151, 0.68802, 0.914011, -0.969282, 0.011208, -0.328914, 0.238204, + -0.755051, 0.410054, -0.047374, -0.472689, -0.899604, 0.523068, -0.361905, 0.737876, 0.178014, + 0.30414, -0.151664, -0.138524, -0.33971, -0.865901, 0.628696, -0.629741, 0.582838, -0.337283, + 0.626469, 0.857022, -0.611606, 0.825726, 0.024372, -0.763931, 0.408212, 0.566239, 0.881512, + -0.95192, 0.902962, 0.758107, 0.983762, 0.545006, -0.486113, 0.758612, 0.913917, -0.38237, + -0.16346, 0.782532, 0.804983, 0.660587, 0.766132, -0.513898, -0.172515, -0.399509, 0.519738, + 0.249212, -0.772453, -0.125612, -0.815455, -0.941117, 0.911628, -0.503021, 0.44633, -0.222679, + -0.202499, -0.000646, 0.779928, -0.138336, 0.827466, 0.585108, 0.686009, -0.90694, -0.467595, + -0.814724, -0.212389, -0.207122, 0.203204, 0.895971, 0.448905, -0.695858, -0.627143, 0.755105, + 0.099544, 0.282505, -0.523035, -0.121949, 0.284705, -0.656225, 0.652661, 0.498344, -0.583172, + -0.410081, -0.235101, 0.155626, -0.36682, 0.956621, -0.963209, -0.565199, -0.606979, 0.27038, + 0.141907, -0.284956, 0.853458, -0.863253, 0.35245, -0.550252, -0.227709, -0.963, -0.746507, + -0.848449, 0.436274, -0.375507, 0.523101, -0.541949, -0.247765, 0.121047, 0.837925, -0.269514, + 0.579722, 0.275872, 0.608203, 0.631708, 0.405816, -0.301547, -0.280666, 0.389301, 0.545043, + -0.053373, 0.501275, -0.601619, 0.563658, -0.122715, -0.688172, -0.485884, -0.763698, 0.201717, + -0.593061, -0.286363, -0.062655, -0.610161, 0.025678, -0.126913, 0.316742, 0.722408, -0.603669, + 0.546746, -0.021187, -0.571555, -0.453514, 0.254538, 0.208213, -0.0323, -0.497846, 0.504296, + 0.148371, -0.972131, -0.176727, -0.271312, -0.42671, -0.554698, -0.811262, 0.984904, -0.913415, + 0.929577, -0.786104, -0.242617, -0.409667, -0.53525, 0.355536, 0.579595, -0.656902, -0.46575, + 0.510427, -0.120876, 0.243549, 0.522853, -0.369632, -0.554974, 0.368097, -0.366195, -0.665642, + -0.504416, -0.464965, 0.995718, 0.192323, 0.430673, 0.134325, -0.674146, 0.721638, -0.155449, + -0.258931, 0.814957, -0.509411, 0.203058, -0.850684, 0.512423, 0.397211, -0.822296, 0.558137, + 0.110049, -0.516365, 0.852633, 0.429473, 0.351416, -0.371426, -0.54832, -0.538075, 0.375703, + 0.269386, -0.598498, 0.909952, 0.582617, -0.381808, 0.517379, -0.423898, 0.313828, 0.832333, + -0.884532, -0.497207, -0.056516, 0.149126, -0.822374, -0.657902, -0.095779, -0.144178, 0.215695, + 0.127068, 0.205142, 0.066293, 0.114937, -0.057719, 0.359123, 0.682496, -0.49905, -0.518051, + 0.438915, -0.723134, 0.649858, 0.461979, 0.144632, -0.434141, 0.029986, -0.790654, -0.899682, + 0.941704, -0.896926, -0.829754, -0.388447, 0.056157, 0.229034, -0.492782, -0.097039, -0.22331, + 0.836725, 0.867954, 0.411009, -0.006164, 0.749933, -0.807384, 0.417817, -0.581258, 0.779862, + -0.883988, 0.371553, -0.822183, 0.583648, 0.18285, 0.858039, -0.754217, 0.643609, -0.667363, + -0.539785, 0.380357, -0.168323, -0.789533, -0.850913, -0.259625, 0.276878, 0.878355, 0.735457, + 0.016389, -0.613394, -0.891554, 0.893402, -0.557545, -0.175872, -0.806915, -0.691211, 0.194035, + -0.247221, 0.114514, -0.007648, 0.050949, -0.198145, -0.03867, 0.434668, 0.730519, 0.84523, + -0.815868, -0.845309, -0.149454, -0.076287, 0.551938, 0.941359, 0.256798, -0.710259, -0.11319, + 0.646728, 0.368954, -0.707214, 0.058368, -0.965565, -0.402959, 0.699403, -0.433784, 0.610562, + -0.815674, 0.884104, 0.477005, 0.64801, 0.273093, 0.070847, -0.492485, -0.551793, -0.686719, + 0.826445, -0.34708, 0.024362, -0.940107, 0.268388, -0.340886, -0.799828, 0.123763, -0.921214, + -0.098526, -0.816643, 0.632204, -0.794164, 0.163325, 0.495146, -0.799014, 0.647364, 0.814414, + -0.612997, 0.083737, 0.303243, 0.828205, 0.781269, -0.838812, -0.815067, -0.884218, -0.444741, + -0.201857, -0.358803, 0.658923, -0.689172, -0.798126, -0.781717, -0.590257, 0.979465, 0.126281, + -0.175087, -0.29388, -0.765924, -0.339281, 0.526824, 0.675852, 0.72128, 0.071194, -0.545199, + -0.590367, 0.971854, -0.9026, 0.236745, -0.094416, 0.928469, 0.585759, -0.252638, -0.82976, + 0.13136, -0.69944, -0.105467, 0.25038, 0.488328, -0.270457, -0.675034, -0.851669, -0.947198, + 0.125433, -0.608639, 0.036266, -0.473754, -0.676729, 0.674293, 0.565918, 0.70214, 0.959256, + -0.723539, -0.532315, -0.752845, 0.671477, 0.589207, 0.810639, -0.699715, -0.536291, 0.974877, + -0.794077, -0.666006, 0.368151, -0.874154, -0.282735, 0.424907, 0.819234, -0.11347, -0.884941, + 0.56609, 0.996938, -0.742378, -0.044179, -0.723377, -0.510619, 0.336526, 0.467187, 0.413512, + -0.941884, -0.242427, 0.426193, -0.092822, -0.309152, -0.516553, 0.948178, -0.800458, -0.787718, + 0.728714, -0.607404, 0.604281, -0.551242, -0.135278, -0.483166, 0.826215, 0.693264, 0.048051, + 0.023978, -0.377394, -0.534521, -0.378249, 0.327452, -0.179867, 0.678778, 0.143979, 0.011039, + -0.621429, 0.403412, -0.925007, 0.233641, 0.358806, 0.18097, 0.703773, 0.240007, -0.27618, + -0.699755, -0.928105, 0.504682, 0.544338, -0.762777, 0.267727, -0.367721, 0.842255, -0.344684, + 0.827746, 0.707314, 0.553093, 0.683405, 0.31188, 0.338982, -0.850153, -0.228298, -0.113358, + 0.485207, -0.387503, 0.458203, 0.678975, 0.431178, 0.514693, -0.133287, 0.479026, -0.342926, + 0.866255, -0.025664, -0.058332, -0.880413, 0.924882, -0.139912, 0.744809, -0.654205, -0.836625, + -0.160063, -0.7996, 0.192158, 0.013469, -0.366713, 0.626133, 0.647861, -0.88295, -0.801121, + 0.585023, -0.60736, 0.192964, -0.266325, 0.178822, -0.551832, 0.003196, -0.354011, -0.450482, + -0.491641, 0.223365, 0.647073, -0.024644, -0.009766, 0.825068, 0.806105, -0.14517, -0.818849, + 0.234668, 0.298579, -0.791296, -0.897074, 0.104893, 0.976492, -0.89445, -0.489977, -0.344865, + -0.883314, -0.615726, 0.784927, 0.764835, -0.735691, 0.021437, -0.814449, 0.415342, -0.683013, + -0.509616, -0.463511, 0.147402, 0.668231, -0.418532, 0.184448, 0.796221, -0.060593, 0.103257, + 0.074255, -0.012775, 0.60037, 0.541093, -0.535566, 0.954862, 0.575405, -0.15647, 0.870636, + 0.053782, 0.631915, -0.849093, 0.897624, 0.94269, -0.747212, -0.895047, -0.291045, -0.614813, + 0.267182, 0.445133, -0.127416, 0.701715, 0.037894, -0.293912, -0.853571, 0.317821, -0.942206, + -0.00342, 0.146167, -0.560048, 0.30042, 0.194391, 0.669222, 0.625448, -0.809276, -0.741982, + -0.367023, -0.7194, 0.313538, -0.65519, -0.763475, 0.291262, 0.603518, -0.290722, -0.996457, + 0.141331, 0.512464, 0.781172, 0.094882, 0.694229, -0.894138, 0.956678, -0.645736, -0.682574, + 0.717673, -0.222212, 0.617135, -0.700424, 0.756574, 0.948395, 0.302796, 0.806694, -0.714126, + -0.220813, 0.304379, 0.56509, -0.533959, 0.636335, -0.329121, -0.533755, 0.195613, -0.796508, + -0.917799, 0.332504, 0.340612, 0.384549, -0.131139, -0.731335, -0.803337, 0.956899, -0.86693, + 0.301393, 0.812181, 0.763976, -0.630504, -0.322439, -0.799533, 0.627269, -0.938439, -0.920587, + -0.667601, 0.815699, 0.648187, 0.670045, 0.767287, -0.466381, -0.557687, -0.614335, 0.329958, + 0.388986, 0.207506, -0.769319, 0.088833, -0.530641, -0.196647, -0.154809, 0.049708, -0.876819, + 0.853599, -0.425521, 0.312452, 0.688644, 0.40297, 0.70032, 0.564683, 0.732242, 0.211058, + 0.638699, -0.434674, -0.538845, 0.477505, 0.262385, -0.0375, -0.843509, 0.326764, 0.647753, + -0.115455, 0.229741, 0.445181, -0.987579, -0.164528, -0.370965, -0.511118, 0.611208, 0.991488, + 0.15956, 0.622384, -0.741882, 0.176174, -0.129332, -0.61676, 0.205043, 0.318326, -0.0483, + 0.424644, 0.480109, 0.907042, 0.057968, 0.035628, -0.014313, 0.138003, -0.648418, -0.123089, + -0.845632, -0.701429, -0.851788, 0.741599, -0.5747, -0.080702, 0.106909, 0.883217, 0.45384, + -0.712133, 0.978076, -0.947187, 0.130018, 0.913705, 0.867252, -0.231774, -0.667362, 0.439101, + 0.770862, -0.5331, -0.158241, -0.608152, 0.381887, 0.21285, 0.495694, -0.343098, -0.96531, + -0.421129, -0.782083, -0.24091, 0.363421, -0.831932, -0.046678, -0.97838, -0.708649, -0.700139, + -0.340485, -0.506678, 0.153924, 0.611304, 0.754028, 0.315077, -0.006617, -0.178204, 0.679003, + -0.57273, 0.722809, -0.962812, -0.74637, 0.265264, -0.41187, 0.186571, 0.8713, 0.456732, + 0.978769, -0.423569, -0.47753, -0.126971, -0.2014, -0.43987, -0.062086, 0.90342, -0.548158, + 0.561583, 0.464546, 0.579118, 0.269781, -0.369415, 0.412714, -0.470996, -0.613817, 0.934795, + 0.828888, -0.722703, 0.812253, 0.20736, 0.256327, 0.963866, -0.052508, -0.318048, 0.627776, + -0.258314, -0.240062, -0.403255, 0.984289, 0.477161, -0.162111, -0.01995, 0.069988, -0.592796, + 0.283925, -0.776128, -0.046625, -0.187635, -0.408316, 0.924888, 0.28006, 0.481732, -0.658256, + 0.159373, 0.267975, 0.519119, -0.295078, -0.196376, -0.811891, 0.607777, 0.667557, 0.469088, + 0.508216, 0.59895, 0.942605, 0.327489, 0.360983, 0.314535, -0.564721, 0.250898, 0.301292, + -0.795953, -0.295956, -0.616995, -0.638959, 0.694942, 0.786686, -0.137853, 0.306507, -0.234204, + 0.212018, -0.167407, -0.520214, -0.420736, 0.993312, 0.168565, -0.546856, 0.113517, -0.997655, + 0.008821, 0.767653, 0.115342, 0.23826, -0.941969, -0.188089, 0.590084, -0.733203, -0.467809, + 0.675806, 0.287179, 0.467473, -0.932517, 0.636449, -0.218113, 0.210166, 0.808301, -0.92156, + 0.286112, -0.904023, 0.740339, 0.293632, 0.111269, -0.400612, 0.377035, -0.519054, 0.191158, + 0.839783, -0.750602, -0.285324, 0.233568, 0.173578, 0.013752, 0.86032, -0.259864, 0.257952, + 0.529963, -0.193892, 0.653433, 0.6531, 0.4453, -0.243968, 0.86861, -0.577822, 0.309066, + 0.20079, 0.705827, -0.819665, 0.174336, -0.57589, 0.530032, 0.343393, -0.777885, -0.062607, + 0.279734, 0.42599, 0.889637, 0.449092, 0.19071, 0.533434, -0.946245, 0.666728, -0.117574, + 0.565964, 0.286363, -0.052735, 0.70391, -0.582957, 0.282001, 0.438376, -0.355882, 0.362267, + -0.989151, -0.505069, 0.486205, 0.51542, -0.917898, 0.346068, 0.094028, 0.976145, -0.975385, + -0.238335, -0.566338, -0.608478, -0.163327, -0.919076, 0.783452, -0.353801, 0.350392, -0.58843, + 0.005392, -0.708433, 0.804882, 0.843377, 0.78729, -0.350074, 0.622387, -0.835503, 0.45884, + -0.123434, -0.828674, -0.802551, -0.935789, 0.187391, -0.361688, -0.460564, 0.952005, -0.304676, + 0.337297, -0.176043, 0.603079, 0.298416, 0.63326, 0.261119, -0.219168, 0.88383, -0.071291, + -0.598643, 0.311192, -0.121346, -0.741631, 0.130815, -0.232349, -0.398232, -0.477266, -0.42556, + -0.404963, 0.098259, 0.966068, -0.586135, -0.46652, -0.670347, -0.037946, 0.070114, -0.686393, + 0.45677, -0.896867, 0.925563, 0.188188, -0.100785, -0.358066, 0.449, 0.730234, -0.654088, + -0.250658, 0.736156, -0.187407, -0.73634, -0.321366, 0.034543, -0.186687, -0.685296, -0.626492, + 0.270389, 0.68614, 0.909721, -0.113029, 0.384753, -0.794221, 0.532867, 0.955551, 0.520745, + -0.395381, 0.815319, -0.947078, -0.119997, -0.247776, -0.997466, -0.570476, -0.728586, 0.268771, + -0.08318, 0.459274, -0.224954, 0.82488, 0.113268, 0.828942, 0.812048, -0.848052, -0.671571, + 0.602327, 0.944772, -0.853515, 0.014636, -0.384461, 0.941463, 0.830724, 0.727803, 0.538144, + -0.093801, 0.922738, -0.46795, 0.049424, -0.263117, -0.729506, -0.473887, 0.24246, -0.089221, + -0.662451, -0.127131, 0.172706, -0.699651, 0.603936, -0.850188, 0.009567, -0.818023, -0.901754, + -0.124222, 0.907575, 0.945343, 0.359409, 0.775099, -0.546649, 0.562993, 0.610165, -0.9557, + -0.766331, 0.432022, 0.092406, -0.67688, -0.789123, 0.722729, 0.109241, -0.002213, -0.966715, + 0.877393, -0.66106, 0.445588, -0.120243, 0.032586, 0.49101, -0.266389, -0.280546, 0.797184, + -0.76628, 0.445009, -0.258071, -0.334132, 0.669417, 0.168825, -0.931015, 0.893623, -0.496203, + 0.864486, -0.313844, 0.975039, 0.295002, -0.048308, 0.381733, -0.031097, -0.495984, 0.547009, + 0.64862, -0.125279, 0.94062, 0.063506, -0.528854, -0.544949, 0.672829, -0.405087, 0.631607, + -0.971394, 0.034447, -0.690946, 0.354723, 0.812122, 0.393512, -0.343827, -0.938111, -0.4738, + -0.589817, 0.954917, -0.537663, 0.386653, 0.802766, 0.360518, -0.877506, -0.113596, -0.296798, + 0.644312, -0.093804, -0.052745, 0.889571, 0.237962, 0.463555, -0.321909, 0.653974, 0.143781, + -0.200873, 0.192713, -0.787145, 0.03677, 0.458613, -0.936386, -0.53118, 0.626521, 0.022678, + -0.034062, 0.102049, -0.44882, 0.826923, -0.099153, -0.36411, 0.52639, -0.832348, -0.184453, + 0.100788, -0.310342, 0.544254, -0.853999, -0.288294, -0.420298, 0.925333, 0.399085, -0.745963, + 0.387565, -0.021207, 0.915426, 0.551865, -0.584028, 0.89139, -0.178855, -0.227709, 0.299028, + 0.993511, 0.301729, -0.964864, -0.319225, 0.931187, -0.352453, -0.481095, -0.797087, -0.552013, + -0.546745, 0.238827, 0.399526, 0.954375, 0.656268, 0.014776, 0.539296, 0.571587, -0.862525, + 0.504595, -0.684067, 0.772217, -0.434943, 0.207488, -0.01064, 0.463943, 0.15554, -0.725395, + 0.405091, 0.589896, -0.520764, -0.648707, -0.680934, -0.486555, -0.126076, 0.07477, -0.007053, + -0.264489, 0.620558, 0.052847, -0.580653, -0.26465, -0.587935, -0.352787, -0.943305, 0.17473, + -0.774837, 0.386765, 0.68504, -0.743928, -0.527731, -0.790137, 0.266871, 0.193495, -0.516148, + 0.604081, 0.414947, -0.903538, -0.054395, -0.430489, -0.17339, 0.556805, -0.10756, -0.694514, + 0.703435, -0.914046, -0.343433, 0.385314, 0.883889, 0.970543, -0.23492, 0.333697, -0.878231, + -0.19458, -0.311056, 0.283874, -0.655203, 0.216047, 0.516635, 0.779347, -0.169088, 0.913606, + -0.944806, -0.283374, 0.379115, 0.256426, 0.470938, -0.663575, 0.615732, -0.938525, -0.685678, + -0.068008, -0.971507, -0.950529, -0.887733, 0.803989, 0.219355, -0.319071, -0.041099, -0.871619, + -0.944451, -0.697379, -0.967438, 0.657913, -0.349931, -0.269944, -0.861146, 0.165621, -0.150034, + -0.680788, 0.641161, 0.84291, -0.712779, 0.56658, -0.162377, -0.009441, 0.425649, -0.182318, + 0.849643, 0.615266, -0.649132, -0.608562, -0.9908, 0.320166, -0.752187, -0.838179, -0.640967, + -0.988672, -0.814243, 0.891965, 0.558585, 0.886026, -0.485081, -0.410151, -0.350868, 0.019531, + -0.717765, 0.146602, -0.640899, 0.15802, 0.915998, 0.168899, 0.729444, -0.712209, -0.141124, + -0.617478, -0.110947, -0.397797, -0.567788, -0.965941, -0.370793, 0.133918, -0.17592, -0.931345, + 0.751178, 0.741487, -0.602901, 0.101655, 0.664009, -0.949648, -0.8836, 0.554865, -0.019806, + 0.318438, -0.415855, 0.181311, 0.663241, -0.244648, -0.323005, -0.952189, -0.154308, 0.633666, + -0.945069, -0.077247, 0.728935, -0.285415, -0.369468, -0.301632, -0.405157, 0.119686, -0.962804, + 0.382137, -0.252556, -0.127319, -0.067469, 0.558635, -0.621165, -0.909984, -0.723349, -0.73359, + -0.486869, 0.789816, -0.773615, -0.587828, -0.815204, -0.502363, -0.028073, -0.609766, 0.01057, + 0.337939, -0.170138, 0.43146, 0.229468, 0.966008, -0.051054, 0.866759, 0.748493, 0.478049, + 0.565934, -0.669702, -0.669746, 0.427043, 0.363101, 0.902436, -0.130201, -0.183829, 0.685537, + 0.032295, 0.938822, -0.510073, -0.328102, 0.043208, 0.533344, -0.876668, -0.279916, 0.726239, + 0.208221, 0.706979, -0.338735, -0.630382, -0.682708, -0.56223, -0.751508, 0.495569, 0.268785, + -0.639824, 0.916597, 0.284699, 0.372157, -0.421353, 0.692338, -0.705389, 0.728927, -0.543414, + 0.424736, -0.361764, 0.649669, -0.838671, -0.194979, -0.269916, -0.597972, -0.491194, -0.280605, + 0.103689, 0.709806, -0.164327, 0.980201, -0.47587, -0.514815, -0.052163, -0.181033, 0.317633, + 0.923986, 0.34239, -0.836769, -0.341659, -0.198664, -0.910596, 0.309188, 0.872906, 0.496654, + -0.019801, -0.076131, -0.468294, -0.111094, 0.877037, -0.514122, 0.159986, -0.733721, -0.273462, + 0.057907, -0.755099, 0.271699, -0.858724, -0.408504, 0.695898, 0.938054, -0.078184, -0.714742, + -0.821073, -0.245752, -0.510308, 0.794911, -0.712869, 0.601933, 0.190129, -0.304152, 0.815147, + 0.556489, -0.034975, -0.677778, -0.294326, 0.322427, 0.86647, -0.337458, -0.415583, -0.977051, + 0.614644, 0.976026, 0.688479, -0.557212, 0.716378, -0.303168, 0.522819, 0.584715, -0.815295, + 0.247468, 0.399223, -0.601168, 0.924549, 0.780675, 0.835765, -0.009021, -0.535039, -0.546479, + 0.353447, -0.198669, 0.794818, 0.837505, 0.077169, -0.818685, 0.39693, 0.894895, -0.251169, + -0.523351, -0.233927, 0.14327, -0.741964, 0.534037, 0.427446, -0.382332, -0.370445, -0.474491, + 0.781696, 0.593094, 0.28423, -0.044851, 0.249814, 0.9648, 0.316618, -0.49873, 0.38683, + -0.396841, -0.035509, -0.644077, -0.029257, 0.052169, -0.606477, 0.6429, 0.923589, -0.836437, + 0.289765, -0.690804, -0.198758, 0.479016, -0.017554, 0.303032, -0.323999, 0.954324, -0.469489, + 0.187165, 0.102647, 0.681177, 0.102118, 0.602919, 0.257653, 0.637618, 0.012639, 0.333682, + 0.98642, -0.325796, -0.406928, 0.725909, 0.382399, -0.943909, 0.355663, -0.980754, -0.542923, + 0.391344, 0.526775, -0.225795, 0.846466, 0.993784, 0.779775, -0.918457, -0.363738, 0.060841, + 0.812772, -0.167747, 0.208899, 0.526342, -0.523199, -0.605595, 0.988934, -0.022314, 0.707588, + -0.975092, -0.381699, 0.701687, -0.096814, 0.336825, -0.83772, 0.973327, -0.499111, -0.050564, + -0.654996, -0.443673, -0.857287, -0.875288, -0.204296, -0.441089, 0.738698, -0.004838, 0.777596, + -0.16749, 0.212155, 0.960403, -0.7738, -0.433205, 0.854902, -0.229267, -0.269314, 0.080254, + -0.536842, 0.071918, -0.415629, 0.31724, -0.212276, -0.335564, -0.376706, 0.259808, 0.50184, + -0.91424, -0.69743, -0.959718, 0.466796, 0.749976, -0.960801, 0.259961, 0.202804, -0.536633, + 0.216052, 0.771077, 0.980869, 0.432425, -0.198285, -0.568981, -0.380859, 0.008202, -0.073436, + 0.729682, -0.903709, 0.089256, -0.318049, 0.083392, 0.961642, 0.029254, -0.173438, -0.338936, + -0.997938, -0.90601, 0.435719, -0.610667, 0.567747, -0.283512, 0.360774, 0.729995, 0.146287, + 0.343359, 0.845076, -0.314235, 0.73542, -0.841026, 0.915696, -0.328014, -0.037638, 0.560988, + 0.073417, 0.874414, -0.439517, -0.55117, 0.892704, -0.603592, 0.688185, 0.963117, 0.676932, + -0.378074, -0.014782, -0.9012, -0.544515, -0.206979, -0.660698, 0.576913, 0.523992, -0.286163, + -0.157269, 0.965961, -0.061594, 0.849364, 0.926313, -0.350777, -0.955083, 0.932767, -0.537653, + 0.956274, -0.638397, 0.181373, 0.295669, -0.23622, 0.779814, -0.906674, -0.415538, -0.157413, + 0.765884, 0.46315, 0.643254, 0.43044, 0.899429, -0.249042, -0.308712, -0.137319, 0.393387, + -0.293251, 0.367281, 0.274169, 0.235131, 0.814741, 0.159275, 0.663583, -0.278802, -0.89863, + 0.61116, 0.414732, 0.840075, 0.382093, 0.019985, -0.721804, -0.948087, 0.200692, 0.815804, + -0.077739, -0.326236, 0.50028, -0.484145, 0.352863, -0.81148, -0.90627, -0.583398, -0.17122, + 0.337199, 0.505972, -0.63295, -0.205378, 0.329266, -0.220532, 0.015028, 0.647406, -0.288484, + 0.515562, 0.812541, 0.333364, -0.177689, -0.633181, -0.660947, -0.1943, 0.312516, 0.546918, + -0.04824, 0.805845, -0.396072, 0.199413, -0.511971, 0.26871, 0.853469, 0.350399, 0.067003, + -0.368029, -0.820454, -0.68431, -0.857792, 0.710745, -0.417176, -0.149626, -0.896106, -0.27884, + 0.850565, 0.18385, -0.178563, 0.521209, 0.770953, 0.778167, -0.739897, 0.071797, -0.82117, + -0.689474, 0.767884, -0.796719, -0.490417, 0.47957, 0.972973, -0.971416, -0.64528, -0.392133, + 0.774658, 0.582771, 0.623424, 0.640761, -0.250263, 0.737336, -0.0281, 0.093954, -0.265192, + 0.424211, 0.446562, -0.106, 0.880339, -0.258986, 0.25311, 0.90826, 0.563416, -0.364141, + -0.452981, 0.192995, -0.007579, 0.070379, 0.644164, 0.34955, -0.560844, -0.816465, 0.945418, + -0.11009, -0.393964, -0.734461, 0.960279, 0.504606, -0.633936, -0.863667, 0.868722, 0.430542, + -0.14689, -0.831086, 0.606106, -0.678821, 0.491403, -0.94978, -0.89161, -0.959325, 0.906543, + 0.908739, -0.853284, 0.773034, -0.607826, -0.929353, 0.481261, 0.566862, 0.566828, 0.175497, + 0.959708, -0.861456, 0.461391, -0.316885, 0.049388, 0.689688, -0.716105, 0.438232, -0.19974, + 0.64682, -0.02626, 0.496137, 0.959492, -0.35705, -0.985047, 0.943276, -0.550559, 0.228529, + 0.621938, -0.155294, 0.781534, 0.648054, -0.201328, 0.262188, 0.075784, 0.978289, 0.692329, + -0.666042, 0.096352, 0.539359, 0.764504, 0.341432, 0.424917, -0.184634, 0.02169, -0.692105, + 0.823241, 0.787439, -0.550646, -0.856144, 0.779788, -0.886311, 0.641322, -0.97404, -0.511253, + -0.423395, 0.939805, -0.169215, 0.862587, 0.290542, 0.968783, 0.662348, 0.736474, 0.871849, + -0.295451, -0.274945, 0.322209, 0.880942, -0.368008, -0.786614, -0.782261, -0.462, 0.159565, + -0.115721, -0.26668, -0.467498, 0.260104, -0.823717, 0.983823, -0.154868, 0.186588, 0.329423, + -0.389091, 0.789192, -0.007412, 0.082034, -0.951961, 0.123779, 0.343126, 0.139348, -0.099104, + 0.755093, 0.790604, 0.688462, -0.173562, 0.172745, -0.698218, -0.748642, -0.174774, 0.111775, + -0.582454, -0.834694, 0.454918, 0.365613, -0.660703, 0.665437, -0.747463, 0.75646, 0.531244, + -0.337967, 0.952057, -0.561474, -0.456791, 0.79704, -0.257682, -0.403888, 0.154733, -0.168976, + 0.629991, 0.816429, 0.444818, 0.216268, 0.251217, 0.026035, 0.117437, 0.018989, 0.681895, + 0.559219, -0.100543, 0.377626, 0.055306, 0.353383, 0.821001, -0.680375, 0.142109, -0.208041, + -0.977616, -0.971724, -0.130939, 0.715721, -0.659386, 0.325737, 0.57635, -0.72888, 0.429465, + 0.188734, -0.910412, -0.019227, -0.938808, 0.874303, 0.468682, 0.383164, 0.767726, 0.764764, + 0.992751, 0.412582, -0.721978, 0.928836, 0.277785, -0.3942, -0.372165, 0.935736, 0.222142, + 0.726845, 0.07799, 0.923734, -0.731732, 0.238333, 0.238618, -0.011533, 0.889574, 0.200812, + 0.054171, 0.682532, -0.078946, -0.064611, -0.824459, -0.006552, -0.466775, 0.578982, 0.869938, + -0.93293, -0.579215, 0.96277, -0.426822, 0.889336, 0.984564, -0.250787, -0.809492, 0.500019, + 0.454573, 0.86902, 0.14443, 0.54375, -0.857439, 0.137816, 0.235358, 0.626758, -0.5353, + -0.119504, -0.596066, -0.673012, 0.416291, 0.15249, 0.397346, -0.022771, -0.024566, -0.038397, + 0.540162, -0.691941, 0.215564, 0.548334, 0.579991, -0.479879, 0.774382, -0.666462, 0.521438, + 0.818002, 0.032086, 0.30636, -0.947321, -0.39556, -0.392892, -0.931034, -0.211763, 0.698119, + -0.095479, 0.988177, -0.900175, 0.398815, 0.86471, 0.971959, -0.387915, -0.902913, -0.367543, + 0.741308, 0.087617, 0.9558, -0.730178, -0.626182, 0.509633, 0.342879, -0.649681, 0.930316, + -0.385663, -0.831099, 0.277907, -0.560234, -0.475878, -0.558637, 0.271989, 0.468494, 0.672566, + -0.565867, -0.233711, 0.933422, -0.513693, -0.361464, -0.192285, -0.885481, -0.739126, 0.89089, + 0.184594, 0.186842, 0.39643, 0.608148, 0.671713, 0.716237, 0.403612, 0.753867, 0.653376, + -0.16721, 0.090076, -0.523815, -0.752465, 0.948482, -0.744664, -0.625169, -0.965951, -0.766005, + 0.227316, 0.479983, -0.833532, 0.079577, -0.738253, 0.189332, 0.597302, -0.383678, -0.439023, + 0.651349, -0.644469, -0.204374, -0.832588, 0.700735, 0.318942, -0.397267, 0.711633, 0.946841, + 0.408183, -0.706182, -0.218054, 0.804399, 0.726719, -0.328761, 0.66173, -0.654163, 0.268248, + 0.881506, 0.1815, -0.794613, 0.299927, 0.557317, 0.695477, -0.657801, -0.179506, -0.052046, + -0.174835, -0.22193, -0.360325, 0.344388, 0.475202, -0.19423, 0.785821, -0.005374, 0.243776, + 0.250269, -0.340488, -0.043898, -0.111683, 0.378177, -0.537247, -0.459044, -0.965255, -0.435019, + 0.318745, 0.808282, -0.985864, -0.35975, 0.629145, -0.540775, 0.675183, 0.040357, -0.940206, + 0.169088, -0.599398, 0.194355, -0.89601, 0.939662, -0.426665, 0.639558, -0.629177, -0.838102, + 0.393433, 0.6012, -0.008994, -0.845706, -0.274302, -0.692976, 0.283267, 0.161923, 0.694922, + 0.998221, -0.462273, 0.790081, 0.694766, 0.153716, -0.980441, -0.693577, 0.435731, 0.743079, + 0.53443, 0.094252, -0.608148, -0.878707, -0.571466, 0.007451, 0.131811, 0.765875, -0.721244, + 0.523016, 0.847108, -0.90385, -0.532825, -0.279081, 0.191864, 0.895747, 0.204081, 0.676617, + 0.809129, 0.785051, -0.912029, -0.653333, -0.065384, -0.003649, 0.084302, 0.84009, 0.905733, + -0.292581, -0.462297, 0.080996, 0.126529, 0.616719, 0.355273, 0.311612, 0.328292, 0.744529, + 0.595561, -0.098361, -0.697777, 0.674296, -0.081529, -0.716412, -0.166655, 0.7358, -0.459661, + -0.096423, 0.337352, 0.719077, -0.149665, -0.718289, -0.418031, -0.322793, 0.10909, -0.678994, + 0.881124, 0.263637, -0.72037, 0.546101, 0.050465, 0.978409, -0.020095, -0.013188, -0.965122, + -0.82599, 0.003497, 0.848637, -0.618402, 0.195792, -0.689147, -0.775056, -0.3677, -0.66948, + -0.827391, -0.306944, -0.136633, 0.497869, 0.459761, -0.013126, -0.2284, -0.212447, -0.821384, + 0.695143, 0.897009, -0.919379, -0.954815, -0.936972, -0.161285, -0.002415, -0.652959, 0.552577, + 0.065856, -0.506171, -0.967402, 0.778712, 0.991828, 0.09285, -0.478931, 0.635765, 0.589344, + -0.143497, 0.937763, -0.738941, -0.114597, 0.847461, -0.61875, -0.308462, -0.425156, -0.409368, + 0.880849, 0.616359, -0.909118, -0.611623, -0.013049, -0.325149, -0.550706, -0.982955, 0.737525, + 0.559887, 0.290156, -0.225046, -0.969321, -0.062605, 0.382297, -0.290219, 0.787142, 0.228543, + -0.04962, 0.39521, 0.521129, -0.733462, 0.304101, -0.908893, -0.209542, -0.324216, 0.763553, + -0.96321, 0.355285, -0.911219, 0.433512, 0.244905, -0.3935, 0.295371, 0.959771, 0.608807, + -0.912468, -0.259157, 0.907085, 0.154712, 0.123285, 0.071347, -0.351585, -0.261591, 0.066366, + 0.752753, -0.281848, -0.261693, 0.19036, -0.366006, 0.87226, 0.752264, 0.042011, -0.64667, + 0.279867, 0.848051, 0.32944, 0.419157, -0.529314, -0.985107, -0.376028, 0.031958, 0.888471, + 0.208795, -0.18332, -0.251275, -0.191204, -0.537729, -0.418651, 0.185779, 0.677212, 0.849367, + 0.385097, -0.690972, 0.924453, 0.965609, -0.297175, 0.034478, 0.905198, -0.35165, 0.474067, + 0.166331, 0.557426, 0.348414, 0.992136, 0.847497, -0.682337, 0.601793, -0.19785, -0.523228, + 0.167725, -0.136113, -0.651672, -0.882679, -0.557311, 0.102956, 0.609434, 0.589261, 0.266675, + 0.948627, -0.856482, -0.629427, 0.430459, -0.910849, 0.943121, 0.13788, -0.36855, 0.892291, + 0.466245, 0.841012, 0.753377, -0.17404, 0.907784, 0.132061, 0.096832, 0.347479, -0.782876, + -0.597923, 0.94625, -0.654408, 0.540336, 0.604369, -0.81185, -0.114608, -0.0107, 0.741893, + -0.273649, 0.9032, -0.839116, 0.417762, 0.546002, -0.360246, -0.328863, -0.636945, 0.265305, + 0.335114, -0.351489, 0.808699, -0.153225, -0.155816, 0.781021, 0.175213, 0.535311, 0.589429, + -0.654567, -0.012666, 0.883158, -0.618355, 0.13097, 0.742827, 0.110413, -0.224226, 0.361615, + -0.827148, 0.82159, 0.785564, -0.280033, -0.361758, -0.195607, 0.994972, -0.38386, 0.299443, + -0.949392, 0.302268, 0.605906, 0.32368, -0.047518, 0.072978, 0.865978, 0.43458, -0.231074, + -0.803206, 0.72881, -0.372306, 0.623478, -0.200977, 0.016597, -0.788635, -0.380963, 0.082509, + -0.9664, -0.20579, 0.581049, 0.702845, 0.736592, -0.304963, 0.078717, -0.802452, 0.518012, + 0.177056, 0.837026, -0.155568, 0.956393, 0.495434, 0.853412, -0.06508, -0.784626, -0.784248, + -0.942889, 0.166215, -0.773295, -0.326659, 0.508145, 0.909089, -0.250802, 0.692351, -0.075776, + -0.200116, -0.118343, -0.453432, 0.273697, -0.005413, -0.487233, 0.636058, -0.446738, -0.677279, + 0.347145, -0.061407, -0.550489, -0.816331, -0.29961, -0.765667, 0.543896, -0.124559, 0.515057, + 0.486766, 0.080546, -0.153967, -0.515745, 0.22513, -0.869547, -0.487291, 0.797466, -0.194097, + 0.806723, 0.592174, -0.210806, -0.804893, 0.803093, 0.084242, 0.945038, -0.904412, 0.206073, + -0.86159, -0.121412, -0.876512, -0.910177, 0.050447, 0.985877, 0.076623, -0.092647, 0.932141, + 0.091538, -0.558366, 0.635887, 0.713549, 0.867098, 0.786419, 0.929564, -0.370883, 0.143788, + -0.364903, -0.13311, 0.790612, -0.790131, 0.546464, -0.577783, 0.005484, -0.119062, -0.450428, + 0.085275, -0.506558, 0.905745, -0.362013, 0.632947, -0.238198, -0.78733, 0.776281, -0.276124, + -0.414268, 0.074969, -0.010188, 0.282181, -0.242628, -0.288519, 0.547135, 0.458346, 0.883893, + 0.110361, -0.259596, -0.213045, -0.203783, -0.316027, -0.341282, -0.281753, 0.301579, 0.395674, + 0.761126, -0.973131, 0.775464, -0.201472, -0.977185, 0.653745, -0.566957, -0.450627, 0.331887, + 0.163802, 0.681673, -0.697757, 0.543263, 0.521225, 0.618981, -0.332842, 0.169833, 0.294345, + 0.942876, -0.607674, -0.91819, -0.9044, 0.132443, -0.760014, -0.185117, -0.467466, 0.18115, + -0.708618, 0.616677, -0.982387, -0.54786, 0.20635, -0.983587, 0.246481, -0.374116, -0.505052, + 0.71683, -0.322894, 0.236397, -0.386128, 0.467804, 0.910666, 0.959938, -0.604899, -0.994042, + -0.69928, 0.281707, 0.401451, 0.525214, 0.434243, 0.972821, -0.758325, -0.78398, -0.313151, + 0.77617, -0.767871, 0.749745, 0.166392, 0.618568, 0.990748, 0.973328, 0.960007, -0.245401, + -0.426717, 0.424536, 0.852776, 0.024898, -0.236716, -0.161739, -0.356935, 0.480163, -0.994579, + 0.850919, -0.036723, -0.606208, -0.356703, -0.613851, -0.86892, 0.100622, -0.227108, -0.448891, + -0.170307, -0.137876, 0.440565, -0.808911, -0.023447, -0.013647, -0.817483, 0.921798, -0.474062, + 0.79338, 0.766485, 0.027083, 0.744595, -0.752498, -0.109923, -0.824891, -0.608762, 0.315943, + 0.745154, -0.593427, -0.40406, -0.560701, -0.086882, -0.830621, -0.791505, -0.217556, 0.960805, + 0.172265, -0.416256, 0.66851, 0.738056, 0.683441, 0.009308, -0.108336, 0.64953, 0.537553, + 0.758236, 0.720216, -0.283849, 0.846984, 0.19565, 0.995583, 0.994818, 0.838675, 0.665663, + 0.785174, -0.470017, -0.389295, -0.233051, -0.511829, 0.734709, 0.093483, -0.253273, -0.448033, + -0.890314, 0.071751, 0.879038, 0.657529, 0.792587, 0.683238, 0.420799, -0.028796, -0.739775, + 0.735241, -0.703685, -0.601334, 0.401269, 0.549194, -0.520388, 0.632861, -0.935868, 0.238301, + 0.441467, 0.185745, -0.562707, -0.675344, 0.799244, 0.220306, -0.429606, 0.963192, -0.208732, + -0.18492, 0.257393, 0.832551, -0.44515, 0.005041, -0.448946, -0.452942, -0.136312, -0.00103, + 0.5362, -0.746939, 0.580305, 0.781271, -0.114001, -0.089578, 0.246605, -0.91552, 0.735819, + -0.174934, 0.040218, 0.474092, 0.416394, -0.462704, -0.734516, -0.964707, -0.835029, -0.210218, + -0.776323, -0.100973, -0.528315, 0.566634, 0.68401, 0.846005, -0.655753, -0.705712, 0.346897, + -0.228361, 0.758381, -0.917397, 0.927336, -0.693618, -0.801915, -0.106042, -0.443005, -0.630392, + 0.570908, 0.772323, 0.556759, 0.122061, -0.143901, -0.545614, 0.953124, -0.544655, -0.876777, + 0.848422, -0.080649, 0.671921, -0.331912, 0.778871, -0.705172, 0.601784, 0.778312, -0.013981, + 0.663164, 0.035486, -0.915579, 0.438094, -0.7774, 0.031427, -0.899526, -0.476118, -0.297962, + -0.388618, -0.985057, -0.496686, -0.926575, -0.836015, -0.997678, -0.576067, -0.224084, 0.900876, + -0.703513, -0.760436, -0.814062, 0.935538, -0.127885, -0.26606, 0.548292, -0.590849, -0.264283, + 0.916575, 0.532614, -0.775732, -0.274843, 0.0982, 0.361306, -0.460068, 0.700191, 0.015638, + -0.864623, 0.267959, -0.970758, 0.069619, -0.989028, -0.285245, -0.232405, -0.898268, -0.282852, + 0.033581, -0.563415, 0.141913, 0.528064, 0.118021, -0.981559, -0.00316, -0.468644, 0.285041, + -0.802364, -0.691735, -0.033197, 0.576643, -0.267154, -0.052732, -0.099035, -0.782447, -0.079118, + -0.028145, 0.165523, 0.447576, 0.29781, 0.557671, -0.190639, -0.43199, 0.849253, 0.797324, + 0.545213, 0.728464, 0.489772, 0.883974, 0.869899, -0.813062, -0.942368, -0.518823, 0.764583, + 0.902923, 0.065234, -0.739377, -0.469998, 0.475382, 0.931495, 0.193689, -0.657672, 0.948798, + 0.878098, -0.438695, -0.540337, 0.574909, -0.722632, 0.834719, -0.201866, -0.01361, -0.534234, + -0.988609, 0.226245, -0.356285, -0.586345, 0.797112, 0.185434, -0.268132, -0.922186, -0.562938, + -0.326426, 0.420375, -0.911417, 0.577539, 0.909615, 0.309448, -0.992874, 0.130464, -0.403553, + 0.316325, -0.03738, 0.489282, -0.08136, 0.180374, 0.39841, -0.740897, 0.166768, 0.891116, + 0.69826, 0.062246, -0.175851, 0.413487, -0.879369, -0.30119, 0.867368, 0.128689, -0.012937, + -0.787114, -0.648128, 0.138297, -0.751691, -0.289172, -0.492628, 0.308176, 0.152767, -0.965533, + 0.330055, -0.090161, -0.48446, 0.736668, -0.658338, -0.912132, 0.109025, -0.542761, -0.406094, + -0.874541, -0.248527, 0.794491, -0.907307, -0.676203, -0.218833}; + const std::vector k_data{ + -0.791415, 0.187186, -0.198719, 0.756477, -0.993836, 0.033478, 0.440967, 0.129815, -0.272331, + 0.937815, -0.776227, 0.931392, 0.272248, 0.476172, 0.704965, 0.099525, 0.106036, -0.202768, + -0.90716, 0.421252, 0.747909, 0.41812, -0.156034, -0.89516, -0.016529, 0.260059, -0.782712, + 0.850339, -0.026333, 0.273125, 0.882185, 0.434118, -0.541862, 0.368775, 0.587988, 0.498918, + -0.469829, 0.101572, -0.718521, -0.112349, -0.69392, 0.571664, 0.978422, -0.9685, -0.467212, + -0.422985, -0.700222, 0.909943, -0.77244, -0.522807, -0.830732, -0.003318, -0.74019, -0.673611, + 0.994391, 0.446859, 0.424244, 0.709196, 0.17279, 0.162272, -0.751084, 0.280932, -0.781262, + -0.004351, -0.539641, -0.566818, -0.585499, -0.484086, -0.594718, -0.546887, -0.36427, -0.913709, + 0.800444, 0.33604, -0.994658, -0.999507, -0.503617, 0.385869, 0.915303, -0.155771, 0.594996, + -0.53937, -0.207561, -0.155025, -0.973589, 0.005217, 0.264666, 0.60951, -0.773747, -0.301096, + 0.037725, 0.106079, 0.168648, -0.742832, 0.776122, -0.903643, -0.34716, 0.498327, -0.249399, + -0.481838, -0.986537, 0.688745, -0.022454, 0.483023, 0.159539, -0.743676, -0.353356, 0.713032, + -0.489707, -0.460753, 0.54838, -0.4334, 0.163244, -0.486146, 0.307817, 0.101725, -0.793758, + -0.758469, 0.367708, -0.327495, 0.547782, 0.05204, -0.341971, -0.174012, -0.455607, 0.493454, + 0.793206, -0.031146, -0.644676, 0.718871, 0.813704, 0.681712, -0.018099, 0.24582, 0.050864, + -0.379824, -0.990176, -0.122229, 0.432504, 0.583313, 0.237839, 0.456006, 0.625957, -0.193324, + 0.652998, -0.021004, -0.354153, -0.388325, -0.582803, -0.770198, 0.229081, 0.924051, 0.142157, + 0.135154, -0.375143, -0.394195, -0.313424, 0.346137, 0.172406, -0.367417, 0.195945, -0.174716, + -0.068116, 0.709065, -0.416698, 0.933058, -0.546967, 0.926465, 0.375676, 0.401529, -0.228749, + -0.27252, -0.731464, -0.958977, 0.700152, 0.970032, 0.28676, -0.391152, 0.219626, -0.037451, + -0.86441, -0.800878, 0.347198, -0.291976, -0.237847, -0.602923, 0.441016, -0.504628, -0.319358, + 0.53503, 0.961328, 0.891495, 0.393653, 0.035523, 0.751581, 0.884144, 0.448942, 0.29396, + 0.241135, 0.101758, 0.660039, 0.282877, -0.843142, -0.59071, -0.908126, -0.300539, 0.05111, + -0.42397, -0.919675, -0.650362, 0.425591, -0.070442, -0.167651, 0.161901, -0.211233, -0.544973, + -0.458889, -0.4076, -0.936027, -0.922226, -0.378883, 0.375261, 0.977958, -0.027066, 0.682898, + 0.330655, -0.796445, -0.500287, -0.274381, -0.824212, 0.140053, 0.237533, -0.779535, -0.210469, + -0.882062, 0.995817, 0.591468, -0.377222, 0.859684, -0.625909, 0.841289, -0.384841, 0.292179, + 0.694898, 0.465573, 0.242331, -0.115313, 0.007362, 0.853856, -0.326803, -0.324451, 0.12779, + -0.485204, -0.378075, 0.078141, 0.752076, 0.326048, -0.617907, 0.603825, -0.368282, 0.257891, + 0.058888, 0.714186, -0.223358, -0.406321, -0.199208, 0.009089, -0.471915, 0.687312, -0.536139, + 0.158196, -0.767773, -0.124169, -0.21547, -0.40006, 0.522759, -0.89291, 0.104887, -0.093547, + -0.52007, 0.777666, 0.627766, 0.30219, 0.019453, 0.554258, -0.439257, -0.813733, 0.9596, + -0.374342, 0.200591, 0.019971, 0.841868, 0.994682, -0.672794, -0.010665, -0.810717, 0.645876, + 0.954784, -0.382245, 0.181243, -0.220181, -0.24226, 0.794031, -0.929123, -0.136935, -0.004101, + -0.881968, 0.411192, 0.666864, -0.794358, 0.386918, -0.064699, 0.936889, -0.942369, 0.848988, + -0.371502, 0.84298, -0.510104, 0.169376, 0.233278, 0.620386, 0.468709, 0.558867, -0.210505, + -0.79117, 0.011612, 0.912127, 0.865004, -0.588392, 0.687912, 0.449756, -0.180951, 0.545846, + -0.041705, 0.121765, -0.655257, -0.123148, 0.978916, 0.619499, -0.80817, -0.056638, 0.636986, + -0.427939, -0.125255, 0.4988, 0.840451, 0.90728, -0.722424, -0.94227, 0.706707, -0.077455, + 0.902849, 0.709807, -0.390396, 0.286488, 0.336437, -0.35792, 0.898466, 0.082056, -0.326838, + -0.913401, 0.800322, -0.9916, 0.761146, -0.350232, -0.18307, 0.135086, 0.983012, -0.658292, + -0.710203, 0.601083, -0.485686, -0.368003, 0.578097, -0.414515, 0.595635, -0.390014, 0.769202, + 0.996191, 0.138318, -0.33291, 0.562523, 0.279509, 0.004341, 0.892153, -0.057841, 0.351504, + -0.297822, -0.181427, -0.043045, 0.067285, 0.43732, 0.754347, 0.613034, -0.420605, 0.896335, + 0.67546, 0.360491, 0.109134, -0.565942, -0.596844, 0.005013, -0.743821, 0.350806, -0.907738, + -0.891713, -0.449159, 0.575389, 0.782999, -0.840526, -0.631532, 0.221845, -0.18226, -0.819505, + 0.277799, -0.832374, 0.062585, 0.407642, 0.922404, -0.853437, 0.746697, 0.13915, 0.870656, + 0.984346, -0.249405, -0.155745, -0.241739, 0.786489, -0.433041, 0.660407, 0.411282, 0.940264, + 0.708304, 0.811569, -0.821955, -0.526344, -0.709507, 0.496537, 0.203433, 0.381165, 0.375329, + 0.042326, 0.381614, -0.542255, 0.649693, -0.860922, -0.918858, 0.339613, 0.938819, -0.365839, + 0.941976, -0.354971, -0.75991, -0.155478, 0.553045, -0.520509, 0.937784, -0.447202, -0.442635, + -0.416478, -0.761643, 0.932828, -0.564976, -0.449913, -0.302999, 0.841797, 0.466513, 0.368189, + -0.262962, 0.505376, 0.181403, 0.796744, 0.221992, 0.733963, 0.690124, 0.174751, -0.958269, + 0.20347, -0.754502, 0.17181, -0.111987, 0.795666, -0.717793, -0.83601, 0.445707, 0.660263, + -0.217644, 0.27066, 0.802557, 0.099473, -0.2795, 0.578205, 0.90126, -0.169742, 0.678504, + 0.083434, -0.209387, -0.087275, -0.970777, 0.479725, -0.544295, -0.851661, -0.138642, -0.407433, + -0.636493, -0.210528, -0.10554, 0.303932, 0.137059, -0.13361, 0.22013, -0.647035, 0.846155, + 0.489666, 0.632626, -0.891943, 0.682579, 0.176763, -0.966366, 0.949531, -0.020927, 0.191783, + 0.827302, 0.644882, 0.889675, -0.933364, 0.988636, 0.243583, 0.012987, -0.785719, -0.537755, + 0.970821, 0.743515, 0.779513, -0.084038, -0.557027, 0.233494, -0.476504, -0.650943, 0.322966, + 0.784358, -0.767144, -0.883922, 0.13511, -0.352336, -0.534737, -0.20468, -0.05783, -0.277337, + 0.740541, 0.554139, 0.314526, -0.320672, -0.089135, 0.64832, 0.082914, -0.96473, 0.095017, + 0.523632, -0.256504, -0.186682, -0.135665, 0.614538, 0.825731, -0.784765, 0.658853, 0.409494, + 0.350062, -0.568054, -0.570902, 0.992967, 0.255903, -0.222554, -0.202543, 0.669512, -0.249108, + 0.675625, -0.283525, 0.236374, 0.263435, -0.512233, 0.024718, 0.199735, -0.978004, -0.196941, + 0.095207, 0.823635, 0.221443, -0.84996, -0.293095, 0.990072, -0.130131, 0.754413, 0.114733, + 0.656173, -0.429736, 0.982393, 0.211047, -0.204731, 0.768906, 0.493136, -0.672171, -0.071903, + 0.716727, 0.24914, -0.31626, -0.651077, -0.70026, 0.55588, 0.452498, -0.886131, -0.205327, + 0.253092, -0.884766, 0.861798, -0.106649, -0.406226, 0.111347, 0.36127, 0.222215, 0.948334, + 0.562947, -0.096855, 0.17023, 0.242318, -0.396622, -0.856885, -0.106373, -0.380901, -0.944632, + 0.356629, -0.419579, 0.957412, 0.357641, 0.425863, 0.291464, 0.39, 0.640285, 0.734626, + -0.054644, -0.283486, 0.270934, -0.451205, -0.050812, 0.29198, 0.446831, -0.967273, 0.387216, + -0.38718, -0.704359, -0.425873, -0.021575, 0.492471, -0.890629, 0.271628, 0.900985, -0.564972, + 0.238957, -0.402018, 0.245853, 0.433016, -0.616011, 0.239293, 0.988395, 0.070163, -0.709828, + 0.012508, 0.220527, 0.307916, -0.07209, -0.214312, -0.497212, 0.646199, -0.5649, -0.340376, + 0.6635, -0.469941, -0.130522, -0.398699, -0.886379, 0.482054, -0.444037, -0.461465, -0.22035, + 0.273985, 0.878043, 0.884515, 0.01366, -0.857666, 0.073791, 0.023107, 0.844542, -0.206692, + -0.939626, 0.363301, -0.219311, 0.348932, 0.300891, 0.356459, 0.553152, -0.701054, -0.814533, + 0.936268, 0.914023, -0.394751, 0.957489, 0.197416, -0.262765, -0.541584, -0.532165, 0.802393, + -0.614662, -0.410177, 0.995498, -0.488509, 0.983927, 0.446597, 0.496102, 0.227729, -0.179013, + 0.445846, 0.297854, -0.545573, -0.823799, -0.812735, -0.121026, 0.286, -0.633832, 0.184237, + 0.576055, 0.58816, -0.373677, 0.229236, -0.886641, 0.719434, -0.799198, 0.055503, -0.314145, + -0.829139, -0.866799, -0.642419, -0.725967, 0.763129, -0.153608, -0.667632, 0.003607, -0.451431, + -0.144807, 0.859999, -0.882548, -0.868719, 0.245076, 0.697009, -0.950072, 0.314172, 0.990757, + -0.160659, -0.590065, 0.490587, 0.564838, -0.103814, -0.815591, 0.038782, -0.647599, -0.853704, + 0.624154, 0.6868, 0.401479, -0.815963, 0.848063, 0.732594, 0.859443, -0.066468, -0.185201, + -0.896853, 0.737937, -0.052436, -0.999891, 0.977762, -0.129295, 0.601448, -0.147605, -0.157318, + 0.879662, 0.830278, -0.466724, 0.031244, 0.679247, 0.04806, -0.180208, 0.893423, 0.890467, + -0.268055, 0.757131, -0.099043, 0.029715, 0.802172, -0.077585, -0.099474, -0.217297, -0.834916, + 0.774299, -0.784541, -0.767554, 0.135347, -0.105312, 0.039199, 0.078677, 0.991115, -0.970928, + -0.601242, 0.184467, -0.890237, -0.790028, 0.766246, 0.387208, -0.310187, 0.263893, 0.174901, + -0.09852, 0.830411, -0.000267, 0.709446, -0.77839, -0.406308, 0.169137, 0.534173, -0.406878, + 0.721425, -0.829615, -0.381452, 0.751788, -0.747192, -0.937863, -0.252406, -0.833135, 0.297474, + -0.175817, -0.294357, 0.553019, 0.05818, -0.901559, -0.947615, 0.628042, 0.431251, 0.549527, + -0.849303, -0.193243, 0.854375, 0.807731, 0.679838, 0.928336, -0.313364, -0.774152, 0.562155, + 0.637599, -0.301992, -0.093353, -0.048157, -0.887076, -0.414196, -0.316873, 0.373316, -0.291774, + 0.451322, 0.900446, -0.213167, -0.243748, -0.628099, -0.076318, -0.91513, 0.675928, 0.862621, + 0.266707, 0.945766, 0.503706, 0.662875, 0.923629, -0.687534, -0.078454, 0.375685, -0.267668, + -0.70936, -0.313993, -0.49572, -0.350734, -0.761799, -0.301648, 0.572985, -0.438906, 0.425966, + -0.822376, -0.630136, 0.103646, 0.926069, -0.923516, 0.435276, 0.174896, -0.817106, -0.726068, + 0.503827, -0.499669, 0.700791, -0.69154, 0.755438, -0.510161, 0.405087, 0.299204, -0.784683, + -0.52444, -0.242234, 0.003173, 0.493871, -0.411063, 0.14713, -0.542452, -0.475335, 0.652575, + -0.273883, -0.876235, 0.042005, -0.142555, 0.284287, -0.510121, 0.043071, -0.493341, -0.604363, + 0.228593, 0.309087, 0.185001, 0.923712, 0.092701, 0.085037, -0.130736, -0.966801, 0.391117, + 0.779553, 0.099094, -0.779897, 0.897889, 0.224025, 0.723307, 0.434318, 0.157735, -0.294632, + 0.205302, 0.321762, -0.060624, -0.638738, -0.525541, -0.91655, -0.39111, -0.16121, 0.817872, + -0.534917, -0.983973, 0.548107, 0.862205, -0.779975, -0.009987, 0.317929, 0.644685, -0.179515, + 0.455459, 0.768339, 0.585193, 0.487225, 0.608144, -0.896105, 0.212623, 0.771171, -0.792318, + -0.87657, -0.825798, 0.307036, 0.928066, -0.090702, -0.397525, 0.05918, -0.824533, 0.173108, + -0.657449, -0.673074, -0.729465, -0.283111, 0.651705, 0.203111, 0.695933, -0.964762, -0.81439, + 0.612715, 0.787713, 0.849233, -0.928724, 0.447923, -0.986071, -0.295744, 0.020258, 0.467628, + -0.305482, -0.864665, -0.971739, -0.401022, 0.762089, 0.433885, 0.494634, -0.808759, -0.898534, + 0.925258, 0.653193, -0.431021, 0.084085, 0.720423, 0.90017, -0.804634, -0.495627, 0.388601, + 0.764042, 0.173975, -0.061715, 0.038735, 0.910003, -0.785129, 0.455572, -0.71594, 0.095079, + -0.94465, 0.647679, -0.557167, 0.066428, -0.627156, 0.091579, -0.486962, -0.511417, -0.433363, + 0.620466, 0.13975, -0.25757, 0.851712, 0.195969, -0.323614, -0.045218, -0.390992, -0.396706, + -0.312276, 0.238313, -0.890431, -0.778772, 0.67128, -0.239503, -0.036922, 0.349252, -0.447293, + 0.70054, -0.22636, 0.060935, -0.693546, 0.406639, -0.710765, 0.608168, -0.141575, -0.365228, + -0.334751, 0.381523, 0.979419, 0.271683, 0.612943, -0.842927, -0.235996, -0.566321, -0.717725, + 0.171703, -0.312623, 0.226369, -0.39762, -0.911836, -0.51464, -0.961205, 0.216575, -0.750732, + 0.768701, 0.432804, -0.561085, -0.285781, -0.89595, 0.720428, -0.447182, -0.210074, 0.073874, + 0.48545, -0.298123, 0.490276, 0.514313, -0.123558, 0.663047, -0.876917, -0.544515, -0.078476, + -0.101817, 0.35477, 0.722259, -0.722082, 0.524749, 0.239939, 0.830502, 0.533737, -0.217359, + -0.1418, -0.665465, 0.220647, 0.782547, 0.344106, 0.808546, 0.399405, 0.192416, -0.216493, + -0.863928, -0.18746, 0.848868, 0.869496, -0.338322, 0.820786, 0.824327, -0.853278, -0.986418, + -0.498059, -0.101189, 0.387368, 0.418699, 0.63351, -0.489733, 0.668856, 0.227987, -0.709922, + -0.739043, 0.355506, 0.931087, -0.663927, 0.118491, -0.946684, 0.651356, 0.294827, -0.254702, + 0.528339, 0.414729, 0.674034, 0.100008, 0.009871, 0.479859, 0.337248, -0.84757, -0.38385, + 0.618273, -0.509365, 0.773541, -0.191893, 0.957836, -0.587831, 0.707241, -0.441622, 0.707164, + 0.552164, 0.402681, 0.292623, 0.597407, -0.39861, -0.322431, 0.271681, -0.709283, 0.059427, + 0.417348, -0.908514, -0.05388, 0.056658, -0.769874, 0.785056, 0.045251, -0.940997, -0.346867, + 0.18122, 0.724421, -0.322952, 0.874716, -0.422985, -0.806103, -0.273217, -0.652551, 0.332353, + 0.660361, -0.844073, -0.732056, 0.555791, -0.214512, 0.911844, 0.907848, -0.663611, 0.589021, + -0.964382, 0.402559, -0.57054, -0.00568, 0.971097, 0.135614, -0.537477, 0.459586, -0.160781, + 0.897469, -0.747845, -0.170021, -0.840178, -0.567223, -0.285388, -0.659763, -0.68127, -0.248085, + -0.571184, -0.605941, 0.054028, -0.751017, 0.57603, 0.658968, 0.920101, 0.309864, -0.094422, + -0.174717, -0.475378, 0.680155, 0.553761, 0.722094, -0.194146, -0.690872, 0.333537, 0.876577, + -0.158618, 0.807606, 0.706113, 0.351585, -0.270448, -0.335351, -0.175086, -0.075046, -0.20582, + -0.974094, -0.685869, -0.317122, 0.768412, 0.413183, -0.910749, -0.715929, -0.586738, 0.948372, + 0.247571, 0.801005, -0.807513, 0.934162, 0.81372, 0.069368, -0.467651, 0.391985, -0.537332, + -0.414554, 0.375125, -0.768074, 0.243352, -0.053331, 0.009312, 0.04582, 0.241118, -0.597709, + 0.411585, -0.938084, 0.420675, -0.812587, 0.962361, 0.240485, 0.277009, 0.265662, 0.194282, + -0.382412, -0.973028, 0.598035, 0.605618, -0.182954, 0.050132, -0.064272, -0.22582, 0.682273, + -0.59787, -0.934406, -0.165316, -0.583026, -0.66044, -0.287354, -0.038479, 0.656845, 0.562734, + 0.81399, 0.748388, 0.300755, -0.006519, -0.031929, -0.758978, 0.09533, -0.233831, -0.275427, + 0.84062, 0.458847, 0.627431, 0.645933, -0.578992, 0.28859, -0.125445, 0.348986, 0.587912, + -0.251029, 0.7504, 0.041804, -0.190263, 0.655107, 0.774747, -0.282163, 0.575134, -0.222805, + -0.030571, -0.710786, -0.426404, 0.131652, -0.230638, -0.100222, 0.240365, -0.397305, 0.528429, + 0.980461, 0.796796, 0.88025, -0.277441, 0.032204, -0.335431, -0.487182, -0.223976, 0.608634, + -0.935147, -0.529974, 0.513563, 0.521517, -0.255718, -0.226996, -0.139148, 0.724082, 0.7226, + -0.466885, 0.165731, -0.967998, -0.660161, -0.091511, -0.334421, -0.471822, 0.821794, 0.497737, + 0.077042, -0.294423, 0.014852, 0.820578, -0.186724, 0.076187, 0.309722, 0.592235, 0.612496, + -0.468182, 0.393051, 0.159103, 0.144061, -0.861699, 0.925394, 0.445974, 0.117262, 0.384242, + -0.248357, -0.717965, -0.261475, -0.895084, 0.864851, 0.428013, 0.26242, -0.676375, -0.651368, + 0.570342, -0.810198, 0.193961, 0.748163, -0.871912, 0.705935, -0.824369, -0.194219, 0.690536, + 0.741561, 0.908188, 0.827401, -0.964525, 0.167585, -0.893664, 0.569257, 0.296057, 0.770564, + 0.234612, 0.685558, -0.043882, -0.803144, -0.657719, -0.014072, -0.898107, 0.849225, -0.600385, + -0.758766, 0.97387, -0.64117, -0.446382, 0.016862, 0.318889, -0.358499, 0.535276, -0.640174, + 0.194152, -0.983863, -0.897881, 0.354027, 0.480713, -0.446549, 0.35098, -0.261514, 0.558631, + 0.109196, -0.220941, 0.189994, -0.949069, 0.560162, 0.924297, 0.852929, -0.576102, -0.402642, + -0.438143, 0.152039, -0.700264, -0.750934, -0.388955, 0.875342, 0.263431, -0.905547, -0.466557, + -0.792224, -0.128317, 0.031728, -0.667775, -0.779944, -0.19716, 0.058343, 0.7351, 0.362907, + -0.582345, -0.922989, 0.194998, -0.143468, 0.58641, -0.691822, -0.04853, -0.729419, -0.501499, + -0.590005, -0.208257, -0.083779, 0.929624, 0.886311, 0.77896, 0.239078, 0.015814, 0.952006, + -0.690238, -0.923721, -0.540353, 0.749056, 0.97907, -0.410938, -0.647204, -0.888382, 0.463356, + -0.402741, 0.747459, -0.353579, 0.914878, 0.644704, 0.65874, 0.5319, -0.803564, 0.13721, + -0.596599, -0.3073, 0.619382, -0.508154, 0.630616, 0.051597, -0.474161, -0.485624, -0.972105, + 0.343016, 0.038402, 0.890337, 0.36043, 0.310567, -0.053122, 0.467344, -0.148367, 0.40093, + -0.454742, 0.632344, 0.274213, 0.528261, 0.067533, 0.474618, 0.903739, 0.153887, 0.695288, + -0.915589, -0.079129, -0.869109, 0.071501, 0.187793, 0.282378, -0.42566, 0.468098, -0.420769, + -0.254394, 0.749962, -0.920293, 0.202949, -0.860376, 0.429736, -0.835057, -0.938732, -0.278561, + 0.79978, 0.50525, 0.642696, -0.232969, 0.883347, -0.45597, -0.07, -0.918282, 0.050383, + 0.229265, -0.959793, 0.84067, 0.18814, 0.953676, -0.430487, 0.046632, -0.320937, 0.845505, + -0.559016, 0.575545, -0.702223, 0.751467, -0.931084, -0.497134, -0.451327, -0.169802, -0.012401, + 0.32316, 0.896778, 0.589098, -0.482191, 0.939648, -0.147259, -0.557629, 0.373794, -0.174265, + 0.954351, 0.111554, 0.661853, 0.257484, -0.653519, 0.210466, -0.578696, -0.267779, -0.322138, + -0.792351, 0.387005, 0.707615, -0.985454, 0.544328, -0.789558, -0.978661, 0.344864, -0.022169, + -0.613048, 0.895368, 0.081598, -0.62723, 0.45874, 0.070778, -0.16006, -0.711892, -0.072546, + 0.5787, -0.488539, 0.460594, -0.982742, -0.378367, -0.314595, -0.879727, 0.357403, -0.782931, + 0.578758, 0.204746, 0.013275, -0.533113, -0.340316, 0.24277, 0.961397, -0.478984, -0.680401, + -0.44358, -0.718326, -0.131648, -0.712776, 0.725068, 0.709786, -0.636293, 0.88194, 0.207319, + -0.636218, 0.332151, -0.907578, -0.531823, -0.721808, -0.556156, -0.216458, 0.227716, 0.190823, + -0.977461, -0.95717, -0.15171, 0.853499, 0.370449, 0.892628, -0.473809, 0.278759, -0.870585, + 0.520431, -0.024638, -0.075849, -0.539985, -0.873738, -0.368179, -0.094491, -0.531052, 0.417968, + -0.173525, 0.098462, -0.931274, 0.281627, -0.488904, -0.755615, -0.401333, -0.909472, -0.763288, + 0.745577, 0.818532, -0.694596, 0.216869, -0.515082, 0.935757, 0.610498, 0.397608, -0.815307, + -0.491869, -0.21016, -0.894059, -0.584419, 0.263283, -0.814074, 0.266069, -0.022853, -0.08235, + -0.292103, -0.537429, -0.934944, -0.680488, 0.755228, -0.074122, 0.973749, 0.05272, -0.11787, + 0.599696, -0.941468, -0.619819, 0.573643, -0.260801, 0.791161, -0.091314, 0.713153, 0.048567, + 0.10385, -0.844634, -0.345587, 0.05014, 0.456906, 0.194031, -0.217116, 0.006751, 0.859628, + 0.667063, 0.341219, -0.720676, -0.336241, 0.638441, 0.900176, -0.472751, 0.424905, -0.234159, + 0.634362, -0.150259, -0.794907, -0.989847, -0.037467, 0.294805, -0.589494, 0.786774, 0.47433, + 0.603031, 0.460727, -0.96449, -0.183353, 0.519437, 0.495025, -0.909868, -0.566836, 0.728885, + -0.827933, 0.757898, -0.192935, 0.073363, 0.48773, 0.269202, -0.641041, 0.325728, -0.858567, + -0.504649, -0.175656, -0.200034, 0.727947, -0.545885, 0.839117, 0.465786, 0.32541, 0.71217, + -0.682929, -0.861632, 0.037302, 0.492968, 0.504786, 0.041585, 0.956406, 0.355284, 0.432093, + -0.484688, 0.305038, -0.374321, -0.807831, -0.650534, -0.603745, -0.150782, -0.418829, 0.918707, + 0.413451, -0.831382, 0.042086, 0.862333, -0.040315, 0.162295, 0.273007, -0.329957, -0.647439, + -0.374776, -0.260908, 0.786896, -0.812875, 0.134443, -0.382266, -0.106394, -0.088839, -0.387903, + 0.230748, 0.236337, -0.574257, 0.614419, 0.902085, -0.414188, 0.203826, -0.370285, 0.685481, + -0.077538, -0.891614, 0.2327, 0.828684, 0.003906, -0.256095, -0.027435, 0.566246, 0.857649, + -0.250261, 0.532705, 0.557197, 0.89343, 0.716415, -0.825926, -0.826155, -0.829865, 0.628362, + -0.507811, 0.552376, -0.148896, -0.412054, 0.752486, -0.193142, -0.539678, -0.153258, -0.636009, + -0.96288, -0.175207, -0.056301, -0.569974, 0.886305, -0.223408, -0.254008, 0.792489, 0.111279, + -0.235241, 0.229937, -0.903517, 0.983125, 0.263787, 0.351693, -0.737551, 0.764548, -0.821885, + -0.347489, -0.641201, -0.505032, 0.213402, -0.991713, -0.978977, 0.228445, 0.32958, 0.014334, + -0.379911, -0.27973, -0.13811, -0.202756, -0.618645, 0.752705, 0.202396, -0.66903, -0.203249, + -0.723599, -0.584272, 0.759555, 0.305276, 0.438087, -0.129741, -0.249527, 0.12926, -0.710423, + -0.995024, 0.70302, 0.020379, 0.606558, 0.752423, 0.437381, -0.341792, -0.183378, -0.05219, + 0.059818, 0.038896, -0.78181, -0.549706, 0.728743, 0.032009, -0.453388, 0.676089, -0.296793, + -0.406747, 0.698896, -0.788952, -0.478904, 0.756802, -0.09778, -0.412367, 0.829777, 0.152169, + -0.939561, -0.739474, -0.2535, -0.054879, -0.752912, -0.37683, 0.338047, -0.932571, -0.937128, + 0.259989, 0.190857, -0.965711, -0.93044, 0.830886, 0.997995, -0.437053, 0.996127, 0.690665, + 0.888893, -0.430302, -0.244715, 0.589573, 0.37092, -0.798121, 0.598466, 0.975171, -0.63506, + -0.928451, -0.952568, -0.632673, -0.440371, -0.565129, -0.875836, 0.624557, 0.978047, 0.837211, + 0.6262, 0.443992, -0.394238, -0.806967, -0.590626, 0.45278, 0.218784, 0.127663, -0.606911, + -0.470476, -0.421737, -0.126938, -0.188698, 0.10575, -0.333013, -0.11331, -0.636006, 0.494158, + -0.831053, 0.182531, -0.951366, -0.570283, 0.966907, -0.187121, -0.183705, 0.515884, -0.862685, + -0.230363, -0.032186, 0.112549, -0.165611, -0.705396, -0.916521, 0.010779, 0.835069, -0.448902, + 0.126429, 0.635647, -0.977057, 0.884929, 0.844601, -0.437462, 0.871649, 0.683101, 0.83071, + 0.86604, 0.229333, 0.549484, -0.535449, 0.167941, 0.958954, -0.344592, 0.235659, -0.510938, + 0.369622, 0.325597, 0.75498, 0.005513, 0.477456, 0.60626, 0.161034, -0.943358, 0.709008, + -0.640323, 0.463229, -0.748186, 0.291281, -0.187141, -0.895533, 0.456621, -0.232681, -0.4161, + -0.310708, 0.679935, 0.587595, 0.27242, 0.41843, 0.513644, 0.413708, 0.851486, 0.602143, + -0.514596, -0.152308, 0.466405, 0.79562, -0.830954, -0.495973, -0.495929, 0.944502, 0.981511, + -0.446985, -0.309032, 0.017729, 0.058557, -0.285006, -0.729551, -0.532205, -0.08344, 0.108244, + 0.038373, -0.918301, 0.885442, -0.58248, -0.244854, 0.927631, 0.006526, -0.799367, 0.576088, + -0.376219, 0.969411, -0.290153, -0.747489, -0.743916, 0.005395, -0.161071, 0.778545, 0.059875, + -0.601108, 0.11202, -0.739652, 0.149297, 0.264167, -0.942802, -0.684044, -0.502268, -0.349656, + -0.181682, 0.41936, -0.789308, 0.5172, -0.693191, 0.878132, -0.570733, -0.765005, 0.716698, + 0.813388, -0.338804, 0.876771, 0.112622, 0.363178, -0.058675, -0.273179, -0.361713, -0.857389, + 0.729846, 0.529771, 0.908521, -0.983054, 0.988019, 0.666948, 0.27267, -0.429213, 0.705647, + 0.64125, 0.860633, -0.825644, 0.151995, 0.360106, -0.983711, 0.936039, 0.624227, -0.803051, + -0.858518, 0.040796, 0.802078, 0.290384, 0.140617, -0.064777, -0.9936, 0.601893, 0.637829, + -0.703136, -0.184214, 0.972187, -0.383283, -0.686582, 0.572056, 0.461937, 0.861407, -0.430607, + 0.243146, 0.240737, 0.813646, 0.560386, 0.234978, -0.140693, -0.178388, -0.539661, 0.420622, + 0.852228, -0.508334, -0.683354, 0.744592, 0.134362, -0.471388, 0.64757, -0.814779, -0.491335, + -0.32134, -0.031844, 0.213172, 0.478234, -0.349177, -0.096951, -0.521544, -0.657527, 0.218187, + 0.737386, 0.862952, -0.780459, 0.473211, -0.308521, -0.049835, -0.041735, 0.863742, 0.837935, + -0.809713, 0.21687, 0.584808, 0.268295, -0.023169, -0.472067, -0.705561, -0.984272, -0.01938, + -0.38583, 0.236004, -0.422758, 0.830623, -0.705557, 0.887342, -0.396493, 0.154564, -0.366704, + 0.421482, 0.789174, 0.935045, -0.692597, 0.686488, 0.661412, -0.820602, 0.404199, 0.193332, + 0.548867, 0.876159, 0.022876, -0.370167, -0.450712, 0.129143, -0.146739, -0.716209, 0.027892, + 0.572597, 0.033153, 0.628671, -0.377778, 0.784256, 0.238245, -0.33607, 0.482157, 0.491772, + -0.428763, -0.181895, 0.516111, -0.88128, 0.381022, 0.219232, -0.681653, -0.123285, 0.292689, + 0.695619, 0.731274, -0.645078, -0.650202, 0.472893, 0.986595, 0.853988, 0.393806, 0.948172, + -0.459093, -0.028305, -0.815695, -0.613685, -0.676281, -0.907125, 0.282143, 0.258302, 0.402591, + 0.662733, -0.796518, -0.288616, 0.786881, -0.884987, 0.702839, 0.307946, -0.811833, 0.215742, + 0.032129, 0.19314, -0.286913, 0.45267, 0.777719, 0.69698, -0.095977, -0.919893, 0.979003, + 0.278292, 0.887585, 0.360225, 0.016439, 0.538106, 0.559648, -0.064711, 0.153098, -0.040597, + 0.685191, 0.455257, -0.166742, 0.931898, 0.958243, 0.81236, 0.179179, 0.061162, -0.522192, + 0.728997, -0.718507, -0.861915, 0.301732, -0.935445, 0.318815, -0.481615, -0.01257, -0.385267, + 0.808629, -0.743277, 0.183704, 0.014176, -0.951536, 0.773246, 0.197779, -0.802401, -0.992488, + 0.44219, 0.820894, -0.227881, -0.295414, -0.852731, 0.675287, -0.376738, -0.459638, 0.380498, + 0.874561, 0.462831, 0.288426, 0.885082, 0.042531, 0.154696, -0.073067, -0.626602, 0.183706, + -0.519304, 0.578702, -0.689775, -0.817393, -0.193211, 0.742867, -0.759784, -0.318698, -0.076621, + -0.437325, 0.472418, 0.873519, 0.54125, -0.210893, -0.785125, -0.825652, -0.239459, -0.315026, + -0.758384, 0.247302, -0.37892, 0.289996, -0.531024, -0.090105, -0.300948, 0.614248, -0.912653, + -0.394334, 0.213551, -0.281733, -0.017114, 0.675853, 0.143152, 0.123275, 0.292146, -0.538014, + -0.399369, 0.479018, 0.144965, 0.652335, -0.127672, 0.939406, 0.597199, -0.280143, -0.511051, + 0.201941, -0.834228, -0.457964, 0.30635, 0.08722, 0.452556, -0.418283, 0.84155, -0.549901, + -0.5124, 0.669039, -0.192934, 0.286075, -0.177645, -0.707232, -0.040002, 0.453677, 0.673938, + 0.762824, -0.035214, 0.724299, 0.282085, 0.037007, 0.018892, -0.095419, 0.285588, -0.051663, + 0.643108, -0.152311, -0.555305, 0.290613, -0.560336, 0.621021, 0.81671, 0.160533, -0.200602, + -0.045157, 0.468336, -0.763917, -0.267674, -0.609262, -0.904498, -0.715503, -0.642518, 0.761419, + 0.611228, -0.678887, -0.789155, 0.895537, 0.237365, 0.460499, 0.156166, -0.373647, -0.540257, + 0.538022, -0.987853, -0.83212, 0.301981, -0.262243, 0.191282, 0.533345, -0.574668, -0.562911, + -0.61506, -0.874954, -0.06769, 0.849166, -0.061121, 0.548428, -0.497319, 0.099219, -0.750896, + -0.066101, 0.219449, -0.427866, 0.918113, 0.282337, 0.500183, 0.995226, 0.423905, -0.078562, + 0.477599, 0.985438, -0.962738, -0.188538, 0.485604, -0.242375, -0.813578, -0.580512, -0.519753, + 0.414585, 0.636659, -0.113801, -0.81825, 0.142084, 0.279576, -0.377207, 0.344817, -0.408494, + 0.336644, 0.715488, 0.498722, -0.094504, 0.960494, -0.087934, -0.891949, 0.71881, 0.929859, + 0.456362, 0.876385, 0.540106, 0.408172, 0.579002, -0.768185, -0.011932, -0.427196, 0.275087, + -0.884334, 0.059118, 0.391225, -0.371587, -0.40333, -0.648555, 0.275327, -0.839401, -0.205258, + 0.055622, 0.285311, -0.858496, 0.20179, -0.392321, -0.116423, -0.72971, -0.785427, 0.136416, + 0.16981, 0.859457, 0.940948, 0.730645, 0.387481, 0.66507, 0.427047, -0.931588, 0.727763, + 0.121409, -0.249379, -0.297396, 0.797654, 0.697823, -0.09289, -0.373817, -0.537641, 0.576487, + -0.606443, -0.662952, -0.600111, 0.290355, 0.766571, 0.199872, 0.372745, -0.807649, -0.726573, + -0.58569, -0.639899, -0.446384, -0.606261, -0.327196, -0.619038, 0.29787, 0.025807, 0.050889, + 0.423979, -0.900342, -0.391501, -0.033967, -0.934384, 0.531391, -0.750888, 0.675987, 0.989638, + 0.206087, -0.486725, 0.705771, -0.655582, 0.047347, 0.626974, 0.937491, 0.073275, -0.075897, + -0.086776, -0.969523, 0.177698, -0.793734, 0.089894, -0.237621, 0.635886, -0.400402, 0.710737, + -0.23829, -0.193409, -0.910355, 0.869081, 0.086495, -0.901261, 0.056238, 0.409569, -0.211321, + 0.816052, 0.489086, -0.128179, 0.999758, 0.705254, -0.12266, -0.08638, 0.306901, -0.34846, + 0.615603, -0.962098, -0.535745, 0.458384, -0.959771, -0.33133, -0.531721, 0.541729, 0.050279, + -0.710246, 0.805835, -0.456028, -0.110325, 0.337424, -0.666795, -0.092234, -0.336883, -0.237191, + -0.362742, 0.640093, -0.491406, -0.674873, 0.431971, 0.323998, 0.010442, 0.082404, 0.981502, + -0.334542, -0.892417, -0.984956, 0.259251, 0.389754, 0.014131, -0.831062, -0.78114, -0.681382, + 0.643781, 0.195969, -0.556967, -0.945708, 0.574504, 0.010746, 0.994013, -0.819332, -0.811096, + 0.172532, 0.67024, 0.660557, 0.994211, 0.636638, 0.446673, -0.61486, 0.985459, -0.442565, + 0.643065, 0.411391, -0.592733, -0.089335, -0.083267, 0.755087, 0.765208, 0.214409, -0.568293, + 0.284806, 0.819316, -0.529905, 0.801431, 0.225975, 0.55316, 0.343019, 0.631324, -0.85079, + 0.413003, -0.867189, -0.068238, 0.782021, -0.820067, -0.760642, -0.438281, 0.037624, -0.138255, + -0.78494, 0.130298, -0.251207, -0.467044, 0.010915, 0.3396, 0.160432, -0.662905, 0.677881, + 0.188673, -0.409461, 0.865592, 0.201582, 0.520015, 0.707068, -0.017821, 0.824138, -0.004461, + 0.80001, 0.121295, 0.460142, 0.503584, -0.554221, 0.873891, 0.030323, 0.367537, -0.737821, + -0.373271, 0.651871, -0.631106, 0.138543, 0.878103, -0.949826, -0.011045, 0.162498, 0.655412, + -0.335994, -0.977316, -0.618924, 0.300127, -0.736413, -0.856026, -0.025231, 0.262382, -0.627064, + -0.388407, 0.547004, -0.676129, -0.822552, -0.302233, 0.803483, -0.293185, -0.67786, -0.709417, + -0.23502, 0.710262, 0.375862, -0.333887, -0.867524, -0.606815, 0.21118, 0.840859, 0.515002, + -0.127822, 0.530457, 0.072016, 0.137423, 0.466238, -0.246158, 0.291332, 0.089162, 0.305086, + -0.213905, 0.646426, -0.900861, 0.664199, -0.825094, -0.672808, -0.614889, -0.09655, -0.099128, + -0.972413, 0.530614, 0.246016, 0.977072, -0.713646, -0.804129, 0.240293, 0.77038, 0.667616, + 0.405653, 0.168181, 0.498465, -0.397986, -0.997419, -0.832515, -0.639529, 0.223303, 0.895328, + 0.645353, -0.652708, 0.278853, 0.884588, 0.024587, -0.186315, -0.54172, -0.07267, 0.752508, + -0.282359, -0.151017, 0.485194, -0.383344, -0.461984, 0.168883, 0.724032, 0.106669, -0.040274, + -0.794381, 0.597133, 0.045635, -0.440194, -0.8798, -0.474453, -0.702772, 0.204776, 0.732772, + -0.197672, 0.608673, -0.21251, -0.475931, -0.915157, -0.670117, 0.750683, 0.673535, 0.964859, + -0.100895, 0.338033, -0.122732, 0.989781, -0.797385, -0.271531, -0.958822, 0.098754, -0.778528, + -0.701337, 0.231264, 0.994937, 0.833494, 0.687062, -0.247506, -0.030192, -0.898981, 0.672219, + 0.273221, 0.848807, -0.972169, -0.243871, -0.644033, -0.765286, -0.594516, 0.315928, 0.664783, + 0.451596, -0.342522, 0.441117, 0.984942, 0.048903, -0.359856, -0.789632, 0.706899, -0.228534, + -0.784559, 0.578289, 0.19936, -0.403616, -0.984317, 0.125445, -0.296163, -0.173407, -0.333591, + 0.822497, 0.530799, 0.792798, 0.377551, 0.285381, 0.986913, -0.00355, 0.574885, 0.406627, + -0.957048, 0.679357, -0.098064, -0.675241, 0.673909, -0.809921, 0.468878, -0.82258, -0.286825, + -0.938191, 0.715165, 0.247234, 0.815995, 0.305205, -0.495837, 0.150367, 0.676731, -0.77313, + -0.667104, -0.254359, -0.624743, -0.181666, 0.94697, 0.556051, -0.81075, -0.539594, 0.802502, + -0.076692, -0.421068, 0.195506, -0.158766, 0.336917, 0.018422, 0.568596, 0.550479, 0.351081, + 0.309752, -0.256801, -0.925521, -0.096274, -0.759492, -0.799927, -0.88055, -0.249893, -0.739512, + 0.169076, 0.431841, 0.594093, -0.96519, 0.8414, 0.297545, 0.811507, 0.484539, 0.181789, + -0.191938, 0.836611, -0.650862, 0.780022, 0.872221, 0.163313, -0.428849, -0.80782, -0.054965, + 0.849735, 0.046226, -0.251709, -0.497318, 0.074725, 0.55303, 0.194815, 0.172424, -0.692002, + 0.483945, 0.103939, -0.982869, 0.831774, 0.635952, 0.007839, -0.197523, 0.898181, 0.992762, + 0.162967, 0.928285, 0.422751, 0.477232, -0.059226, -0.073044, 0.639531, -0.438001, -0.714298, + 0.624378, -0.240011, 0.706022, -0.166156, -0.609201, -0.01692, -0.115291, 0.229533, -0.7715, + -0.846674, 0.051713, 0.90259, -0.632127, -0.503044, 0.09544, 0.748883, 0.766363, -0.208804, + -0.052425, -0.787319, 0.976682, 0.607545, 0.25568, -0.971437, 0.565276, -0.563444, 0.041618, + 0.479808, -0.039827, -0.487748, 0.675454, 0.677791, 0.097414, -0.624939, -0.518044, -0.898296, + -0.535216, -0.893237, -0.088241, -0.710187, 0.569504, -0.809179, -0.689421, -0.616194, -0.262745, + 0.391341, 0.719702, 0.991829, -0.238496, 0.234772, 0.070406, 0.551523, 0.469927, 0.587965, + 0.682099, 0.832469, 0.051088, 0.700043, -0.5619, -0.210009, -0.27938, -0.299416, 0.057262, + -0.940845, -0.566772, -0.093742, 0.201109, 0.708519, -0.686602, 0.243988, 0.461488, -0.533574, + 0.170058, -0.524138, -0.026661, -0.549503, -0.279847, -0.395594, 0.865221, 0.241352, -0.97017, + 0.126543, 0.54532, -0.435482, -0.598014, -0.196351, -0.883302, -0.372062, 0.122839, -0.74607, + -0.949814, -0.594514, -0.730493, 0.029365, 0.361422, 0.630078, 0.999242, 0.522682, -0.45148, + -0.132833, -0.513532, 0.601032, 0.333398, 0.460933, -0.671854, 0.779564, -0.880372, 0.502041, + -0.872304, 0.76572, -0.592844, -0.778226, 0.500333, 0.886618, -0.072729, 0.418516, 0.914932, + -0.812665, 0.406618, 0.230178, -0.568988, 0.593837, 0.89076, 0.768965, -0.718559, 0.884239, + 0.841148, 0.380261, -0.137136, 0.769479, -0.648088, -0.607565, 0.54995, 0.667031, -0.100958, + 0.919642, 0.526588, 0.489128, 0.810724, 0.984481, 0.699384, 0.814857, 0.094255, 0.783737, + 0.537379, -0.491778, 0.558876, 0.069704, -0.345189, 0.750181, 0.261588, 0.77924, 0.215598, + 0.298616, 0.600454, -0.249334, 0.621441, -0.516895, -0.141662, 0.091739, 0.691218, 0.44071, + 0.964839, -0.53697, -0.079088, -0.083375, 0.814969, 0.944052, 0.252389, -0.808142, -0.725377, + 0.183542, -0.880922, -0.348806, -0.749812, 0.51285, -0.137245, -0.782938, 0.653436, -0.886596, + -0.09776, 0.962831, 0.501286, -0.86639, 0.107898, -0.148864, 0.4453, 0.923937, 0.85232, + -0.095443, 0.460727, -0.982041, 0.787829, 0.531424, -0.70339, -0.289225, -0.388776, -0.584677, + 0.412051, -0.29158, 0.415907, -0.303849, 0.776791, -0.393399, -0.173233, -0.310904, 0.04604, + -0.368508, -0.702383, -0.950327, 0.62202, 0.138754, -0.64282, 0.518134, 0.104636, -0.361102, + -0.065525, 0.109962, 0.71647, -0.919168, -0.776151, -0.806261, -0.785191, 0.006312, 0.555305, + 0.261391, 0.423692, 0.120313, -0.019058, -0.905926, 0.892601, 0.966454, -0.0057, 0.180663, + 0.185143, 0.989628, -0.001908, -0.164505, -0.544465, 0.258573, 0.461011, -0.844054, 0.342075, + 0.249756, 0.443568, 0.468805, -0.261814, 0.133904, -0.700663, 0.601939, -0.841365, -0.877305, + -0.741599, -0.557948, 0.041731, 0.656239, -0.131754, 0.718086, -0.163395, 0.84792, 0.690183, + 0.631553, 0.408249, -0.673559, 0.979946, -0.951731, -0.701004, -0.604303, -0.263889, 0.434326, + 0.207075, -0.860636, 0.965507, 0.938549, 0.493178, -0.979582, 0.558647, 0.285322, -0.123627, + -0.837731, 0.847217, -0.298939, -0.808867, 0.771835, 0.390262, 0.294386, 0.646319, 0.348368, + -0.217646, -0.17389, 0.826746, -0.032778, -0.835287, -0.691031, -0.754691, 0.095584, 0.731233, + 0.598211, 0.2645, 0.333281, -0.473662, 0.935983, 0.381394, -0.630288, -0.666193, -0.89588, + -0.284503, 0.731426, 0.058711, -0.473941, 0.278362, -0.69413, 0.298084, 0.68277, 0.486232, + -0.30446, -0.340242, 0.416841, 0.598755, -0.245052, -0.002266, -0.112784, -0.117526, -0.887411, + -0.825089, 0.857341, -0.481556, 0.73939, 0.620421, -0.152107, -0.483708, 0.033202, -0.173352, + -0.5933, 0.972015, -0.078992, -0.153743, -0.677489, 0.162644, 0.138591, 0.986121, -0.308792, + 0.562403, 0.048504, 0.530878, 0.017528, -0.172418, 0.391979, -0.445424, 0.605997, -0.837575, + -0.716866, 0.952727, -0.376829, -0.795131, -0.731021, 0.969698, -0.139856, -0.841477, -0.14415, + -0.487474, -0.670787, -0.489347, 0.757425, 0.403373, 0.584288, 0.082535, -0.418075, -0.408132, + -0.671153, -0.722477, -0.862202, 0.177659, 0.524729, 0.816037, -0.025395, -0.145713, -0.083122, + 0.393999, -0.158394, -0.351378, -0.275537, -0.976855, -0.770122, -0.428043, 0.096887, -0.628089, + 0.382985, -0.546914, 0.967507, -0.883758, 0.557599, -0.519214, -0.354574, -0.933739, -0.926793, + -0.946378, -0.019207, 0.921073, 0.458515, 0.626149, 0.223907, -0.38637, -0.389454, -0.297056, + -0.934287, 0.549675, -0.297257, -0.565662, 0.248108, 2.6e-05, 0.543839, -0.654876, 0.993423, + -0.398062, 0.377841, 0.91036, -0.057366, -0.878719, -0.96751, 0.983676, -0.936267, -0.370959, + 0.682059, -0.777805, 0.934532, 0.097115, 0.310829, 0.156916, 0.109959, 0.561229, -0.866472, + 0.216169, -0.452581, 0.946418, 0.827955, -0.392821, 0.556083, -0.170286, 0.527671, -0.282843, + -0.585192, 0.421902, 0.495137, 0.900426, 0.316917, -0.446238, 0.255487, 0.06019, 0.869951, + 0.410266, 0.852927, 0.074278, -0.758084, -0.64029, 0.902935, 0.895606, 0.301232, -0.713646, + 0.730721, 0.414824, -0.789045, 0.290723, 0.963837, -0.660487, 0.075997, 0.2857, -0.359925, + 0.658226, 0.88929, 0.973447, -0.895044, 0.05567, 0.816267, 0.85185, -0.257596, 0.662463, + 0.746394, -0.063254, 0.685853, 0.57492, -0.148752, -0.417746, -0.53036, -0.805734, -0.597695, + 0.261069, 0.356835, -0.286728, -0.0827, 0.692134, 0.14812, -0.693859, 0.847268, 0.603401, + 0.115195, 0.476591, -0.845293, 0.58649, 0.243332, -0.08845, -0.320808, 0.807627, 0.215449, + -0.558617, 0.449668, 0.176871, -0.350609, 0.706127, 0.995674, -0.044155, -0.41248, -0.53668, + -0.521918, 0.513087, 0.627212, -0.60603, 0.553892, 0.039845, -0.034846, -0.318043, -0.92115, + -0.857723, 0.733295, -0.163805, -0.043653, -0.603059, -0.182603, -0.390104, 0.090001, -0.954543, + 0.09698, -0.885137, -0.710791, -0.021349, -0.106515, -0.281095, 0.581536, 0.072211, 0.207259, + 0.409167, 0.056464, -0.885752, -0.371891, 0.627903, 0.573622, 0.345932, 0.882675, -0.519922, + -0.297994, -0.148991, -0.245765, 0.862538, -0.999229, 0.189474, 0.981552, -0.555882, 0.794772, + -0.861581, 0.16913, -0.569277, 0.31639, 0.218757, 0.219855, -0.226848, -0.30975, -0.968405, + 0.165889, 0.954597, -0.752491, -0.384696, 0.262413, 0.511495, 0.363192, 0.647933, 0.126426, + -0.24603, -0.833572, -0.999522, -0.765787, 0.502358, 0.898694, 0.951883, 0.748921, 0.051611, + 0.688596, 0.380181, -0.6771, -0.187674, -0.928099, 0.858437, 0.217358, 0.918291, -0.121094, + 0.794068, 0.468069, -0.122056, -0.033072, 0.712704, -0.131514, 0.777566, 0.219378, -0.39175, + -0.463519, -0.48641, 0.641617, 0.755911, -0.470125, -0.912782, 0.566779, -0.227394, -0.918188, + 0.209948, -0.099502, 0.720464, 0.212292, -0.616544, -0.180845, -0.718091, 0.467584, 0.292527, + 0.590311, -0.740107, -0.556638, -0.608548, -0.829212, -0.932745, -0.806575, 0.696607, -0.30169, + -0.184487, 0.301418, 0.263206, 0.449593, -0.706078, 0.888565, -0.079889, -0.47487, 0.645458, + -0.831442, -0.59612, 0.563573, 0.387648, -0.396032, -0.079916, -0.182629, 0.406634, 0.200627, + 0.366464, 0.825997, -0.687764, -0.769238, -0.23724, -0.455372, -0.711162, 0.92806, 0.835406, + 0.807442, -0.615906, -0.118249, -0.778072, -0.360562, 0.833323, 0.125371, 0.346909, -0.994067, + 0.411987, 0.674263, -0.384001, 0.759909, 0.450405, -0.730163, -0.749622, 0.014039, -0.96453, + -0.698842, 0.39114, -0.329022, -0.035434, -0.408582, 0.647232, 0.821159, 0.721582, -0.889271, + -0.295646, 0.484328, 0.591453, -0.224123, 0.547567, -0.029566, 0.111076, 0.673791, 0.684089, + -0.705969, -0.607112, 0.354252, 0.601015, -0.232842, 0.886798, -0.115201, -0.507116, -0.102074, + -0.851138, 0.309837, -0.919374, 0.927909, -0.758774, 0.650955, -0.750087, -0.145738, -0.553809, + 0.510988, 0.579988, -0.935109, -0.858495, 0.131645, -0.021512, 0.005798, 0.304008, -0.197636, + 0.843868, 0.07113, -0.460685, 0.346988, -0.775867, -0.478251, 0.291555, -0.419542, -0.954692, + 0.500493, 0.257375, 0.291057, 0.347585, -0.986773, -0.435655, -0.485767, 0.956865, -0.4213, + -0.656955, -0.350976, 0.096085, 0.402996, 0.736434, 0.721923, 0.102699, 0.911006, 0.531693, + 0.533547, -0.857504, 0.081697, -0.212389, -0.950342, -0.493853, 0.760875, 0.366719, 0.924186, + 0.681848, -0.00765, 0.89876, 0.210924, -0.14689, -0.427624, 0.644549, 0.448312, 0.694318, + -0.173719, -0.925505, 0.18134, 0.109434, -0.650915, 0.242444, -0.121027, 0.853159, 0.04706, + -0.493888, 0.801149, 0.029715, -0.16795, 0.477627, 0.964615, 0.455973, 0.028198, 0.819018, + -0.438554, 0.883773, -0.569758, 0.018323, 0.910108, 0.398225, -0.20957, 0.616098, 0.589862, + -0.901396, -0.111455, -0.786991, -0.215547, -0.120542, -0.400044, -0.365488, 0.540835, -0.029698, + -0.994977, 0.171893, -0.983439, -0.686024, 0.611258, 0.764444, -0.354801, -0.607217, 0.45253, + -0.955269, 0.61694, 0.688817, 0.421969, 0.305208, 0.206785, -0.766613, -0.400565, 0.645041, + 0.842246, 0.02671, 0.256912, -0.948504, 0.705938, -0.582452, -0.536054, 0.986737, -0.286658, + -0.505212, 0.137555, 0.788069, 0.908644, 0.08371, 0.680791, 0.713171, -0.167133, -0.790175, + 0.026904, -0.339699, 0.35044, -0.732689, -0.670761, -0.753107, -0.748105, 0.760652, -0.996446, + -0.03681, -0.61717, -0.420602, -0.288184, 0.469135, 0.672421, -0.224995, 0.032609, -0.011, + 0.910662, 0.446939, -0.207633, 0.677152, -0.807455, 0.396337, 0.775714, -0.519032, 0.374185, + 0.45852, -0.83897, 0.287662, 0.75624, 0.091833, -0.193273, -0.391899, -0.663704, 0.24285, + -0.945305, -0.855988, -0.361829, -0.946967, 0.933777, -0.322218, -0.531664, 0.251377, 0.430365, + 0.753068, -0.403722, -0.174739, -0.755138, -0.873198, -0.43511, 0.112513, -0.495743, -0.27605, + 0.366544, 0.206332, 0.617022, 0.46178, 0.527319, -0.516971, 0.536366, -0.896294, 0.30795, + -0.630683, 0.276133, -0.914908, -0.165625, 0.615084, -0.500082, 0.619049, -0.155481, 0.938156, + 0.942154, -0.590017, -0.23422, -0.204385, -0.378107, 0.32872, -0.910501, -0.5997, -0.156764, + -0.889732, -0.957825, 0.410107, -0.834952, 0.6644, -0.580648, -0.079754, 0.602971, -0.986145, + -0.973605, 0.041642, -0.406012, 0.46743, 0.349041, 0.12308, 0.375368, 0.855531, 0.158713, + 0.661636, -0.563814, 0.82394, -0.177812, 0.541388, -0.831058, -0.600944, -0.585392, 0.528265, + -0.033323, -0.917755, 0.980723, 0.260638, 0.919745, 0.12483, 0.143353, 0.7208, -0.680343, + 0.944389, -0.64318, 0.090638, -0.650374, -0.662575, 0.769699, -0.264115, -0.187675, 0.781314, + 0.979697, -0.901943, -0.017455, 0.285555, 0.960129, -0.398671, -0.325446, -0.586119, 0.255511, + 0.24663, -0.015769, -0.101423, -0.696183, -0.410735, -0.380321, 0.262673, 0.441602, 0.466853, + -0.763321, -0.077083, -0.190843, 0.997499, 0.721617, -0.746458, -0.549468, -0.755416, -0.25027, + -0.874957, 0.469985, -0.441012, -0.501888, 0.047261, -0.319518, 0.755447, 0.906481, -0.892866, + 0.448357, 0.020866, 0.524868, -0.374895, -0.075714, -0.018706, 0.342877, 0.498597, 0.390004, + 0.122728, -0.797748, -0.57445, -0.569692, -0.996557, 0.9579, -0.452743, -0.664694, -0.452857, + 0.542971, -0.626877, -0.83557, -0.747427, 0.219766, -0.040913, -0.902252, -0.684035, -0.866623, + 0.343054, 0.452546, 0.170341, -0.320382, -0.535782, 0.395341, -0.229636, -0.160522, -0.327819, + 0.173797, 0.234575, 0.821609, 0.888098, -0.257724, 0.148622, -0.668401, -0.750707, 0.829237, + 0.117799, -0.497219, 0.502742, 0.403424, 0.357965, 0.423126, 0.053407, -0.72745, -0.888986, + 0.976286, 0.698115, -0.780172, 0.783648, -0.935275, 0.665197, 0.696346, 0.628255, 0.42322, + -0.605687, -0.428853, 0.214371, 0.394395, 0.876602, 0.044482, 0.411793, -0.755214, -0.202974, + 0.594688, 0.081731, 0.790537, -0.802424, -0.667258, 0.314376, -0.041817, -0.854447, 0.426682, + 0.041216, 0.241827, 0.219755, -0.68954, -0.670789, -0.800104, 0.72635, -0.548936, 0.900231, + -0.319349, 0.221343, 0.955086, -0.536642, -0.94848, 0.14421, -0.721431, 0.551021, 0.397556, + 0.72454, -0.10388, -0.653329, -0.921544, -0.645898, 0.890715, -0.214069, -0.018317, -0.212183, + -0.510585, 0.818637, -0.259086, -0.485339, 0.923949, 0.598532, 0.532949, 0.716617, -0.635043, + 0.325656, -0.278317, 0.035745, 0.471041, -0.331943, 0.981208, 0.004904, 0.576199, 0.092025, + -0.963826, -0.598088, -0.833279, 0.1175, -0.670844, -0.795261, 0.21439, -0.875341, -0.544159, + -0.64691, 0.488119, 0.916859, 0.349881, -0.559666, 0.756907, 0.928196, -0.270944, 0.737898, + 0.252807, -0.695588, -0.261183, -0.797533, 0.301727, 0.552989, -0.983573, -0.408707, 0.021671, + 0.800741, -0.544885, -0.05873, -0.02828, -0.502878, -0.448221, -0.267562, -0.298805, -0.321877, + 0.095607, -0.083599, -0.486675, 0.605581, 0.715394, -0.156764, -0.188771, -0.974632, -0.731074, + -0.045545, -0.190649, 0.292569, -0.497456, -0.207121, 0.149528, 0.981601, 0.786773, -0.6578, + -0.083288, -0.163719, -0.031966, 0.416598, -0.402279, -0.213159, -0.990602, -0.355239, -0.980772, + 0.354011, -0.769762, -0.49414, -0.725171, 0.760425, -0.293558, 0.86902, -0.496908, 0.757053, + -0.196625, -0.75121, 0.836255, -0.680314, -0.588052, 0.548003, -0.093354, -0.015189, 0.991562, + -0.793586, -0.361193, 0.406818, -0.192556, 0.016916, -0.338077, -0.154912, 0.798211, -0.185882, + 0.402176, 0.754513, 0.774155, 0.474155, 0.687373, -0.259389, 0.079736, -0.428953, -0.969831, + 0.84142, -0.956025, -0.630227, -0.356406, -0.91473, -0.77603, -0.523075, 0.118333, -0.874328, + -0.718817, -0.584556, -0.751978, 0.23472, 0.033834, 0.219443, 0.902143, -0.437845, -0.374922, + 0.319013, 0.877044, 0.319168, -0.085723, 0.324834, -0.984997, -0.684033, -0.42049, -0.905243, + -0.755232, -0.769076, 0.287075, 0.302958, -0.024085, -0.231133, 0.026963, 0.604249, -0.752978, + 0.710452, 0.434928, -0.349071, 0.701617, -0.000828, -0.458272, 0.901182, 0.29556, 0.754667, + -0.271364, -0.856908, 0.801938, 0.057851, 0.474908, -0.259198, 0.472976, -0.790144, 0.035274, + 0.7593, -0.268524, 0.858895, 0.367749, 0.49296, 0.988117, -0.24331, -0.232806, 0.628833, + -0.506068, -0.737319, 0.652049, -0.872516, -0.473602, 0.242308, 0.147259, -0.606236, -0.25299, + 0.641908, -0.647972, 0.573599, -0.107088, -0.35795, -0.952603, -0.262292, 0.822277, -0.547828, + -0.793644, -0.07802, 0.708889, -0.271262, 0.980298, 0.963208, 0.916181, -0.571978, -0.711846, + -0.937186, -0.194449, -0.65124, 0.46587, 0.090187, 0.793112, -0.92767, -0.840324, -0.18609, + 0.263562, 0.841943, -0.083606, 0.854584, -0.270715, -0.141166, -0.385051, -0.425004, -0.378828, + -0.864421, -0.122755, -0.337188, -0.647435, -0.74175, -0.964334, -0.224085, -0.814147, 0.899095, + -0.268434, 0.268799, -0.716938, 0.102038, -0.93984, 0.450192, 0.472264, -0.971768, 0.436061, + 0.127313, -0.624561, -0.457836, 0.982922, -0.520149, 0.87494, 0.20124, 0.458167, -0.50334, + 0.325063, 0.215321, 0.797546, -0.988884, -0.363572, 0.024901, -0.717747, 0.170423, 0.644769, + 0.602631, -0.515645, 0.404225, -0.727631, 0.621633, -0.817331, -0.906592, 0.347049, -0.094401, + 0.2465, 0.93049, 0.95796, 0.563851, -0.907123, -0.153964, 0.109314, -0.973735, 0.836285, + 0.656215, -0.461943, -0.208696, -0.580048, 0.384624, 0.172465, -0.346691, 0.534628, -0.216166, + 0.10739, 0.692372, -0.469838, -0.922297, 0.539726, -0.65353, 0.378039, -0.300641, 0.67128, + -0.038034, -0.455315, -0.705451, 0.671975, -0.625709, 0.283473, 0.764755, -0.803278, -0.839299, + 0.102017, -0.392549, -0.734085, 0.661251, -0.930269, -0.455944, -0.830645, 0.264302, 0.086248, + 0.41712, 0.418676, -0.003956, -0.300302, 0.884242, 0.041586, 0.238082, -0.82343, -0.980093, + -0.488442, -0.524004, 0.289728, -0.444472, 0.104434, 0.92669, -0.294989, 0.255485, 0.012264, + 0.658079, 0.437366, -0.046459, 0.546959, -0.050878, -0.17, -0.389791, -0.815782, 0.835326, + -0.633699, -0.953309, -0.448533, 0.202002, -0.09075, 0.455237, 0.572932, 0.588111, -0.839027, + 0.407696, 0.495, -0.55476, 0.004844, 0.149882, 0.125395, 0.536612, 0.849009, 0.960474, + 0.223895, 0.584796, 0.427553, -0.540996, 0.66881, -0.071051, 0.408098, -0.663698, 0.800053, + 0.223184, 0.22661, -0.889599, -0.086909, -0.349684, 0.944116, -0.91552, -0.246776, -0.49599, + -0.72492, 0.384619, -0.690428, 0.4727, 0.120031, -0.529418, -0.113801, 0.086721, -0.445665, + -0.642509, -0.563538, 0.241276, -0.881142, 0.629677, 0.656745, 0.919526, 0.846065, -0.562007, + -0.433925, 0.731927, -0.129367, -0.736274, -0.47902, 0.701951, -0.568663, 0.351727, -0.834965, + 0.660331, 0.27504, 0.68978, 0.034106, 0.507615, 0.819481, -0.126149, -0.755754, -0.7056, + 0.586313, -0.637685, -0.875363, -0.846715, -0.442865, 0.185517, -0.906111, -0.463371, 0.957404, + -0.170083, -0.337456, 0.472957, -0.8229, -0.780831, 0.14298, 0.316121, -0.985453, 0.878608, + -0.389387, 0.152768, 0.710852, 0.382771, 0.310503, -0.912375, -0.932984, 0.371899, 0.037162, + 0.61404, 0.500432, -0.802256, 0.184056, -0.784501, -0.552783, 0.274812, -0.055897, -0.638641, + 0.339087, 0.693954, -0.98278, 0.93798, 0.552028, -0.084287, -0.969716, -0.423325, 0.305185, + -0.426049, -0.328707, -0.412969, 0.859785, 0.8463, -0.779971, -0.308511, 0.905765, -0.057599, + -0.486877, 0.120925, 0.791232, -0.127256, -0.943613, -0.334266, 0.497687, -0.147755, 0.706545, + 0.343918, 0.00877, 0.381981, -0.134982, -0.857254, -0.857005, -0.786588, -0.159275, -0.723056, + 0.14655, 0.114662, 0.760882, 0.056228, 0.170438, 0.355588, -0.282717, -0.498285, -0.940679, + -0.973947, 0.065755, -0.472888, 0.276837, 0.24853, 0.779929, -0.122079, -0.004229, 0.690181, + 0.169579, 0.457686, -0.539995, -0.722785, 0.762388, 0.71284, -0.378638, 0.166117, -0.889344, + 0.069985, -0.928434, 0.565211, -0.991151, -0.241225, 0.932997, -0.338784, -0.579646, 0.902104, + -0.505822, 0.220553, 0.558877, 0.268679, -0.690884, 0.907583, 0.479523, -0.628838, -0.570732, + -0.23064, 0.33362, 0.378115, 0.128762, 0.655812, 0.994806, 0.205733, 0.391692, 0.568694, + 0.198235, 0.061655, 0.899113, 0.690373, 0.653127, -0.389109, -0.478103, -0.54224, -0.837415, + -0.1016, 0.563434, 0.146509, -0.353737, -0.138341, -0.766324, -0.642341, 0.092064, -0.581018, + 0.123248, 0.824709, 0.256081, 0.76552, -0.633555, 0.026008, -0.982336, 0.006929, -0.736669, + 0.93854, -0.854885, 0.341838, -0.598181, 0.276806, -0.005216, -0.127905, -0.388107, 0.642984, + -0.180508, 0.085235, -0.30136, -0.728728, -0.41676, 0.896594, 0.951866, -0.4646, 0.099659, + 0.162318, 0.882175, 0.139551, 0.046552, -0.290885, 0.210894, -0.995689, -0.997716, -0.115915, + -0.693591, -0.694504, -0.169738, 0.554815, 0.494918, -0.347436, -0.070667, 0.928337, 0.216321, + 0.680038, -0.414205, -0.89488, -0.46364, 0.087881, -0.242199, -0.546017, 0.961635, -0.923033, + 0.02539, 0.398518, -0.269785, 0.433712, 0.00355, -0.594432, -0.543754, -0.449853, -0.976383, + 0.62326, 0.916645, -0.513694, 0.049427, 0.334154, 0.283141, -0.555049, -0.607674, 0.973449, + 0.582322, 0.934814, 0.701989, -0.074404, 0.704003, -0.032074, -0.006204, -0.433285, 0.779856, + -0.2126, 0.145189, -0.797398, 0.343036, -0.475464, -0.22581, -0.089422, 0.37072, 0.04082, + 0.174243, -0.649512, -0.755592, 0.360135, -0.41178, -0.862165, -0.412701, -0.981046, 0.199804, + 0.074267, 0.923446, -0.551433, -0.517175, 0.238778, -0.262762, 0.779307, 0.152125, -0.021729, + -0.383651, 0.604209, -0.468098, 0.402116, 0.642408, -0.784408, -0.886035, -0.563944, 0.479833, + -0.551593, 0.094528, 0.150987, 0.209943, -0.509931, 0.034966, 0.692941, 0.518366, 0.191036, + -0.795275, 0.470473, -0.398191, 0.699852, 0.415322, -0.183556, 0.386571, -0.415837, 0.172606, + -0.049897, 0.015868, 0.352111, 0.973874, -0.441392, 0.976521, -0.183509, 0.951109, 0.225033, + 0.081548, -0.334435, -0.526956, -0.983414, -0.545849, -0.089533, 0.84128, 0.541147, 0.174355, + -0.967813, 0.70451, 0.688475, -0.449535, 0.405022, -0.833191, -0.50559, -0.301778, -0.90673, + -0.06109, 0.204781, 0.291076, 0.93583, 0.577526, -0.914957, -0.313887, 0.560242, -0.959807, + -0.061845, 0.378395, -0.670532, 0.857804, -0.659274, -0.733571, -0.759092, -0.175165, 0.333939, + 0.28805, -0.494102, 0.87463, -0.535895, 0.784654, 0.335902, -0.322669, 0.739588, 0.331576, + -0.850278, 0.508237, 0.94574, -0.748029, -0.210824, -0.806949, 0.670441, 0.530556, 0.729369, + 0.280865, -0.164897, -0.097574, -0.74508, 0.634617, -0.401188, 0.109748, 0.034009, 0.302302, + -0.80331, -0.158392, 0.461342, -0.739161, -0.429587, -0.550642, -0.846112, 0.976349, 0.863985, + 0.626637, -0.828891, -0.009127, 0.183636, 0.443583, 0.201413, -0.612945, 0.031707, -0.808646, + 0.501486, 0.629891, -0.357813, -0.875325, 0.009298, 0.51123, -0.682317, 0.422183, 0.696455, + -0.828967, 0.553031, 0.452248, -0.514621, 0.839286, -0.480904, 0.760057, -0.766515, 0.788765, + -0.224844, -0.88335, 0.532658, -0.081908, 0.282445, 0.46067, 0.106772, 0.319395, -0.842864, + -0.882628, -0.46959, -0.522834, -0.942585, 0.156135, -0.079341, -0.220231, -0.046469, 0.480545, + -0.371073, 0.063175, -0.089325, 0.482894, -0.106384, 0.359218, -0.391539, 0.774643, 0.168313, + 0.168227, 0.484153, -0.99684, 0.441877, 0.803358, 0.598896, 0.649361, -0.80326, 0.865543, + 0.223581, -0.974703, 0.904885, 0.779783, -0.159538, 0.980599, 0.062963, 0.802055, -0.883984, + -0.93231, 0.278617, -0.007481, -0.848886, -0.560736, 0.560534, 0.637498, -0.75846, -0.447078, + 0.005816, -0.001276, -0.736525, 0.739541, -0.698258, 0.711413, -0.61852, -0.993563, 0.249154, + -0.478374, 0.674149, -0.331543, 0.095484, 0.744364, -0.649465, -0.411703, 0.680877, 0.84355, + 0.174297, 0.768746, 0.604939, 0.565435, -0.039423, 0.965488, -0.317899, 0.068068, -0.301852, + -0.074935, 0.600949, 0.75815, 0.149068, 0.657393, 0.700972, 0.486058, -0.272526, 0.583464, + 0.839412, 0.827248, 0.259111, 0.737985, -0.690837, 0.189407, -0.87858, 0.513341, 0.045908, + -0.192373, 0.637478, -0.153074, 0.408301, 0.538006, -0.496074, -0.86626, 0.089313, -0.611511, + -0.567097, 0.470933, 0.23763, -0.222235, -0.363549, -0.739524, -0.427324, 0.064098, -0.584207, + -0.907871, -0.968836, -0.943037, -0.459989, 0.269432, -0.457295, 0.660625, 0.547279, -0.782412, + 0.246204, -0.430676, 0.829361, 0.757752, 0.458669, -0.500788, 0.144598, -0.630471, 0.149724, + 0.988579, -0.192815, -0.575078, -0.487461, -0.62066, 0.506578, -0.589817, 0.699969, 0.583807, + 0.601604, -0.047956, -0.208755, 0.362251, -0.149373, 0.401877, 0.22322, 0.347777, -0.427469, + 0.62, -0.191803, 0.568222, -0.061645, -0.982789, -0.085198, -0.318844, -0.495805, -0.039122, + -0.382069, 0.078351, -0.295236, -0.620459, 0.367114, -0.818974, -0.774168, -0.157283, -0.087071, + -0.935413, 0.508184, 0.082527, 0.421703, -0.009868, -0.218268, -0.351916, -0.089315, -0.785874, + 0.439171, 0.284233, 0.715161, -0.93417, -0.104168, -0.392163, 0.031079, 0.152695, -0.148892, + -0.081172, -0.165103, 0.243235, -0.546638, -0.115883, 0.494269, 0.673325, 0.111841, -0.109848, + 0.167539, 0.460388, 0.183952, -0.581916, -0.788017, 0.46518, -0.429901, 0.3745, -0.859231, + 0.546902, 0.420433, -0.197338, -0.763915, -0.112902, 0.566293, 0.755696, -0.03705, -0.082754, + 0.820318, 0.174253, 0.954934, 0.904661, -0.649332, -0.705032, -0.331916, -0.152908, 0.905393, + -0.752171, 0.446006, 0.767329, 0.062864, -0.83846, -0.754978, 0.148712, 0.289335, 0.232303, + 0.622262, 0.642487, -0.871369, 0.471224, 0.621108, -0.505049, -0.623871, -0.897993, -0.986644, + 0.522492, 0.284293, -0.543207, -0.89394, -0.929625, 0.907332, 0.329126, 0.163489, -0.082675, + 0.408221, 0.108376, 0.431693, 0.255145, -0.515178, -0.467397, 0.263389, 0.253395, 0.706054, + -0.739704, 0.485738, -0.917333, 0.085679, -0.811957, -0.491851, -0.571583, 0.892165, 0.890038, + -0.443504, -0.041934, -0.838071, -0.819312, -0.506304, 0.097289, -0.900154, -0.20815, 0.137871, + 0.01126, -0.031644, 0.179963, 0.989143, -0.85409, -0.721432, 0.522642, 0.306304, 0.849681, + 0.795896, -0.742705, -0.227141, -0.900441, 0.403033, 0.596849, -0.79324, -0.544374, 0.534128, + 0.243626, -0.625112, -0.004961, -0.664689, 0.387761, 0.185221, 0.271584, -0.047193, 0.054372, + -0.741733, 0.933483, -0.040915, 0.027905, 0.090381, -0.940622, 0.258381, 0.860859, 0.581789, + 0.139205, 0.29031, 0.177672, 0.002572, 0.437896, 0.329406, 0.324779, -0.603002, -0.121832, + 0.623485, 0.65839, -0.562998, 0.326391, -0.667247, 0.260616, 0.347072, -0.602195, 0.742274, + 0.714015, 0.718186, 0.274236, 0.411576, -0.018428, -0.529705, 0.304547, -0.431607, 0.257941, + -0.513209, -0.423485, -0.787778, -0.269645, 0.603255, 0.310901, -0.080917, 0.634715, 0.713723, + -0.428294, -0.740121, 0.770099, -0.907022, -0.771836, -0.820305, -0.644775, -0.676682, 0.030311, + -0.438072, 0.769598, -0.891411, -0.754784, -0.922059, -0.881216, 0.242625, -0.692261, -0.218482, + -0.510175, -0.269435, -0.418653, 0.636609, -0.442807, -0.498858, 0.568507, 0.909004, 0.813957, + -0.149023, 0.178558, -0.518814, -0.097887, 0.112868, -0.584383, -0.146061, 0.47804, 0.249815, + 0.930634, -0.343256, -0.419091, -0.944175, 0.477198, -0.48377, -0.932015, 0.117856, -0.38357, + -0.604504, 0.590189, -0.602242, 0.499331, 0.850891, 0.625665, -0.403866, 0.756045, -0.682797, + 0.808773, -0.166021, -0.44971, 0.066652, 0.904731, -0.284918, 0.730253, 0.234122, -0.720801, + -0.738661, 0.851717, 0.915862, 0.598141, 0.966523, -0.660805, -0.528342, -0.375768, -0.555162, + -0.24395, 0.361486, 0.143288, 0.601498, -0.304884, 0.853807, 0.189584, 0.631464, 0.77264, + -0.053577, 0.942418, 0.528684, -0.612039, 0.072169, -0.486457, 0.189246, -0.603877, -0.371551, + -0.411658, -0.968993, 0.918219, -0.342343, -0.306377, -0.020771, 0.017599, -0.839895, 0.278198, + -0.623416, -0.794205, -0.600288, -0.779797, 0.783402, 0.382357, 0.87628, -0.804735, -0.793865, + 0.396702, -0.468136, -0.306479, -0.587524, -0.841408, -0.589105, -0.628841, 0.512342, -0.026394, + 0.624915, 0.869389, 0.660399, -0.813913, 0.586146, 0.569528, -0.452905, -0.210623, 0.336128, + -0.102134, -0.611618, -0.17721, -0.275937, 0.611781, 0.435621, 0.625135, -0.042314, -0.910358, + 0.97634, 0.030926, 0.426472, -0.567131, -0.049526, 0.266928, -0.406717, -0.553778, 0.281057, + 0.802912, 0.780232, 0.340441, 0.085147, 0.449471, -0.312376, 0.771191, 0.527634, -0.997096, + 0.911816, 0.047064, -0.756099, -0.382657, 0.971289, -0.834889, 0.250193, -0.336332, -0.821371, + 0.386375, 0.582599, 0.983061, -0.815787, 0.489071, 0.711664, -0.024591, 0.771496, 0.912903, + -0.809847, 0.502462, 0.23831, 0.113145, 0.73719, 0.053692, -0.372425, 0.853995, 0.579449, + 0.485099, -0.269228, -0.834116, -0.13941, -0.187317, -0.201082, -0.510341, 0.718043, -0.166367, + -0.979587, -0.641165, -0.989302, 0.553391, -0.11473, -0.509701, -0.766921, 0.487337, -0.86429, + -0.909545, -0.090107, 0.597092, -0.789633, -0.647401, 0.3224, -0.971432, 0.664437, 0.534566, + 0.488016, 0.851204, 0.868749, -0.461871, 0.564897, 0.546072, 0.452747, -0.272953, -0.550281, + -0.649214, 0.214601, -0.027398, 0.05062, 0.895633, -0.812516, 0.231337, 0.179987, -0.044324, + 0.662004, 0.649216, -0.673265, 0.177816, -0.601788, -0.552939, -0.835469, 0.372834, -0.102285, + -0.635164, -0.198556, -0.07374, 0.377828, 0.85098, -0.663977, -0.062491, 0.967928, 0.659409, + 0.460936, -0.300951, 0.174324, 0.067975, 0.014686, 0.6526, -0.340647, -0.246478, 0.696985, + 0.253776, -0.949433, -0.196104, 0.674628, 0.60597, 0.667354, -0.586022, -0.747196, 0.319391, + 0.767418, 0.817488, 0.38421, 0.590313, -0.690297, 0.240363, -0.103054, -0.011169, 0.472265, + -0.749134, 0.096464, -0.350357, 0.501876, -0.892875, -0.551647, -0.714289, 0.748857, 0.622342, + 0.829227, 0.987217, 0.304641, 0.12751, 0.279361, 0.160414, 0.119409, -0.754757, 0.769364, + -0.67719, 0.697593, 0.45877, 0.25925, 0.374619, 0.21947, -0.490677, -0.531731, -0.50824, + -0.602, 0.455635, 0.074405, -0.010294, 0.267717, 0.923672, -0.077479, -0.480144, -0.725305, + 0.826228, -0.88362, 0.487991, 0.875175, 0.534148, -0.007716, -0.129862, 0.633613, -0.531735, + 0.353513, -0.309077, 0.526871, -0.221394, -0.667364, -0.381857, 0.588087, 0.364937, -0.706048, + -0.650256, -0.205226, -0.095542, -0.281159, 0.672339, 0.069417, -0.267166, -0.057378, 0.457905, + -0.701297, -0.982632, -0.803336, 0.439667, 0.108575, -0.894426, 0.817328, 0.535622, -0.933058, + 0.614441, -0.038815, 0.084022, 0.82106, 0.773364, 0.218451, -0.477882, 0.75205, 0.831321, + -0.147622, -0.7969, 0.936864, -0.432288, -0.597414, -0.944156, 0.403862, 0.384095, -0.430438, + -0.969074, 0.700069, 0.060869, 0.887766, -0.093494, 0.902417, -0.253793, -0.464167, 0.584539, + 0.249545, 0.89791, 0.075156, -0.765385, -0.708544, -0.224551, -0.149872, -0.548539, 0.848251, + -0.545834, 0.09488, 0.571484, 0.205665, 0.05113, 0.38981, -0.518663, -0.990324, 0.294858, + -0.739713, -0.858244, -0.731842, 0.809427, -0.671057, 0.778793, 0.66459, 0.173121, -0.587072, + -0.906628, -0.77386, 0.645504, -0.659909, -0.130124, 0.162193, -0.121206, 0.223862, -0.790048, + 0.821126, -0.721386, -0.584453, -0.833047, 0.650899, -0.495144, -0.340826, 0.52493, -0.103765, + 0.825146, 0.305708, -0.084898, -0.671293, -0.953658, 0.276797, 0.076641, 0.910707, -0.919303, + 0.200882, 0.372327, 0.551601, 0.485579, -0.07093, -0.952188, -0.198575, 0.987809, -0.750181, + -0.667608, 0.909944, -0.065014, -0.334637, 0.113965, 0.419772, 0.088604, 0.804899, -0.014158, + -0.420687, -0.467271, -0.077053, -0.19534, 0.676165, 0.466272, 0.770329, 0.783558, 0.853961, + -0.949991, -0.22657, -0.095613, 0.716115, -0.008316, 0.379072, -0.092941, -0.981135, 0.07984, + -0.021404, -0.617175, 0.974025, -0.802168, -0.847424, -0.718089, -0.908073, -0.201542, -0.534324, + 0.82004, 0.535369, 0.475151, 0.859119, -0.825784, -0.600822, 0.843011, 0.728289, 0.15811, + 0.559174, 0.256045, -0.075694, -0.334761, 0.35072, -0.812025, 0.985507, -0.882135, -0.757123, + 0.732534, -0.579536, -0.488635, -0.237192, -0.872975, -0.04753, -0.14298, -0.200412, -0.004714, + -0.671693, -0.173379, -0.119111, -0.989074, -0.742178, 0.769904, -0.957901, -0.198377, -0.588286, + 0.993191, 0.735968, 0.492332, -0.511104, -0.882229, -0.15665, 0.611588, 0.117065, -0.546878, + -0.897142, 0.844657, 0.200539, 0.682952, -0.873118, 0.13192, 0.933897, -0.971998, -0.94503, + -0.919531, -0.491626, -0.101523, 0.489912, -0.346991, 0.79152, 0.817971, 0.672685, -0.808579, + 0.39143, 0.568047, 0.732537, -0.903793, -0.209096, -0.507374, -0.376274, 0.291263, -0.055822, + 0.434266, -0.743124, -0.311122, 0.42836, -0.368984, 0.123189, -0.668005, 0.86315, -0.002072, + 0.367565, 0.053881, 0.097699, 0.948747, -0.420717, 0.874488, -0.414408, -0.031247, -0.63319, + 0.255674, -0.982301, 0.278642, -0.502831, 0.880413, 0.974431, 0.633054, -0.938441, 0.449915, + -0.750754, 0.062002, -0.607765, 0.63155, -0.115959, 0.322356, 0.315521, 0.654742, 0.631007, + -0.035545, -0.71165, 0.36713, -0.374773, -0.135837, 0.063449, 0.893741, 0.749169, -0.14203, + -0.477377, 0.915497, 0.540866, -0.86532, -0.031395, -0.738107, -0.255943, -0.860414, -0.834126, + -0.69972, -0.212722, 0.356785, -0.897512, -0.379255, 0.198821, 0.269142, -0.017408, -0.776822, + -0.057696, 0.322799, -0.89109, -0.641237, 0.180054, 0.002019, 0.74516, 0.302921, 0.53655, + -0.757689, -0.226242, -0.139115, -0.242595, -0.167664, 0.484587, -0.607803, -0.326163, -0.380344, + 0.151086, 0.156853, -0.133393, 0.517858, -0.778966, 0.722926, 0.267963, 0.700448, -0.955031, + 0.728648, 0.557161, 0.641243, 0.528393, -0.469075, -0.246462, 0.027947, 0.241542, -0.956555, + -0.194256, -0.946483, -0.683155, -0.375101, -0.311809, 0.224379, 0.70779, -0.327157, -0.170895, + 0.34662, 0.247721, 0.982589, 0.17543, 0.098142, -0.768481, 0.358951, 0.320645, 0.350464, + -0.035053, -0.128406, 0.200625, -0.062615, -0.200027, -0.902017, 0.511831, -0.566366, 0.296245, + 0.417605, 0.471588, -0.109459, -0.026851, 0.673907, -0.569094, -0.701962, 0.64885, 0.958205, + 0.756214, 0.618289, -0.531196, 0.602742, -0.516603, 0.447914, 0.907558, -0.298889, -0.738184, + -0.710357, -0.333983, 0.074084, 0.915513, 0.182562, -0.511609, -0.099023, -0.282915, 0.247227, + 0.403116, -0.582569, 0.324006, 0.484615, -0.061551, -0.689471, 0.637842, -0.952554, 0.491049, + 0.157828, -0.2751, -0.380875, 0.221045, -0.576849, -0.042797, 0.745614, -0.062078, -0.666614, + 0.779509, 0.622944, 0.824975, -0.308324, -0.979257, -0.335912, 0.678771, 0.287844, 0.81024, + 0.465681, -0.992148, -0.989417, -0.118182, -0.678714, -0.649348, 0.104198, -0.190318, 0.782989, + -0.550907, 0.458953, -0.499913, -0.513079, 0.880224, 0.12148, 0.998124, -0.831424, -0.361635, + -0.848821, 0.796799, 0.485678, 0.046579, 0.944663, -0.693543, -0.731571, 0.923948, -0.261534, + 0.64951, 0.479979, 0.271339, -0.628013, -0.330541, 0.869043, 0.394063, -0.267173, 0.323153, + -0.248419, -0.077478, 0.174334, 0.696992, 0.956604, 0.910533, -0.211372, 0.080573, -0.961999, + -0.09857, 0.05801, -0.639526, 0.89532, -0.421881, -0.92706, -0.459516, -0.173982, -0.832182, + 0.636362, 0.143606, -0.587917, 0.088031, -0.864286, 0.315477, -0.033292, -0.078851, 0.081418, + -0.457037, 0.668235, -0.727248, -0.015065, 0.825533, 0.210712, -0.719999, 0.993124, -0.592853, + -0.425119, 0.614084, -0.601263, 0.039996, 0.36895, 0.553922, -0.618313, 0.954068, 0.744077, + -0.397764, 0.00599, -0.350475, -0.515392, 0.867149, 0.743399, 0.259523, 0.899599, -0.971349, + 0.073769, -0.494999, 0.541945, 0.079175, -0.785824, 0.031321, 0.409778, -0.307655, -0.094626, + -0.71128, 0.861857, -0.968038, -0.591857, -0.78896, -0.444655, -0.544042, 0.315483, 0.864471, + 0.043483, 0.228927, 0.755354, -0.998465, 0.066529, 0.45035, 0.182583, -0.416383, -0.334715, + -0.523265, 0.989502, -0.441832, -0.171535, 0.019011, -0.75073, -0.654825, -0.674815, 0.20242, + -0.606569, -0.78787, -0.56918, -0.344874, -0.271591, -0.624517, 0.2858, -0.125684, -0.722699, + 0.46595, 0.230668, 0.159618, 0.984915, -0.171288, 0.630726, -0.506317, -0.489019, 0.242913, + -0.52196, 0.431271, -0.942437, -0.366608, 0.997204, -0.050636, 0.54331, 0.901638, -0.285776, + -0.233099, -0.143527, -0.498166, -0.030137, 0.476549, 0.863097, 0.691794, 0.984826, -0.50503, + -0.689362, -0.986009, 0.58881, 0.443354, -0.239342, 0.826778, -0.719754, -0.161792, -0.026157, + 0.402132, 0.833971, -0.568576, 0.997486, 0.952484, 0.266044, -0.658144, 0.329715, 0.208387, + -0.362587, 0.962706, -0.803242, -0.355222, -0.3751, -0.277554, 0.741164, -0.049765, 0.139143, + -0.891859, -0.676387, 0.628146, -0.305648, 0.357726, -0.770725, -0.567833, 0.481179, 0.704211, + 0.062155, -0.905536, -0.62914, -0.363836, 0.465442, -0.813226, -0.642232, -0.993793, -0.705416, + 0.723869, -0.373076, -0.235867, 0.030813, -0.197817, -0.342654, -0.020252, -0.501347, 0.634349, + -0.040235, 0.447313, 0.120546, 0.753467, 0.48644, -0.502735, -0.235027, 0.230768, -0.360775, + -0.693163, 0.838331, 0.671619, -0.499591, 0.23085, 0.725108, -0.605925, -0.164766, -0.824661, + -0.915014, 0.794775, 0.349995, -0.64993, -0.074212, -0.465138, -0.182268, -0.216208, 0.31676, + 0.173034, -0.678017, 0.500991, 0.073686, -0.52229, -0.580916}; + const std::vector v_data{ + -0.022068, 0.348055, -0.923532, -0.232544, -0.722589, -0.935072, 0.535903, -0.343543, -0.953129, + -0.287978, -0.552311, 0.540574, -0.157021, -0.606097, -0.408759, -0.221214, 0.765341, 0.090932, + -0.791373, -0.25892, 0.921558, -0.854483, -0.374965, 0.871066, -0.403318, 0.761705, -0.654887, + 0.75696, 0.660792, -0.186945, -0.927602, -0.338239, 0.25045, -0.334917, -0.798098, -0.883854, + 0.476172, 0.720843, -0.378767, 0.038216, -0.612152, 0.577388, -0.657126, -0.567145, -0.407165, + -0.18364, 0.123579, -0.942699, -0.365711, -0.434003, -0.203133, -0.056929, 0.046856, 0.510613, + -0.569307, 0.021818, 0.908752, 0.128275, -0.742854, 0.684459, -0.887424, 0.406434, 0.827906, + 0.12533, 0.536385, 0.793504, 0.456616, -0.300414, 0.217435, 0.808815, 0.234467, -0.794752, + 0.870166, 0.969104, 0.580301, 0.543636, 0.561845, -0.607151, -0.300152, 0.432207, 0.25469, + 0.424945, -0.018927, -0.963696, 0.473997, -0.62899, -0.826372, 0.988932, 0.440827, 0.496982, + -0.438131, 0.36851, 0.084988, 0.682113, 0.116977, 0.89378, -0.234218, 0.92281, 0.990362, + 0.11828, -0.733191, 0.000392, 0.795989, -0.683225, -0.357384, 0.361605, 0.203191, 0.940042, + 0.16471, -0.007647, 0.131427, -0.205691, -0.920609, -0.350745, -0.906507, 0.731684, 0.060505, + 0.116441, -0.069402, -0.513095, -0.705486, -0.153062, 0.302562, -0.547236, -0.61868, 0.649703, + -0.347204, 0.563379, 0.957331, 0.939906, -0.77316, 0.074174, -0.784106, 0.041274, 0.139066, + -0.432825, 0.296807, -0.313491, 0.563411, 0.009533, 0.694123, 0.6759, 0.223303, 0.186688, + -0.452603, -0.660361, 0.674206, 0.65992, 0.15682, 0.839023, 0.522147, 0.653233, -0.191807, + 0.142945, -0.899094, -0.913707, 0.475475, -0.602794, 0.761619, -0.806903, -0.827824, -0.820862, + 0.641779, -0.662836, -0.857576, 0.422421, -0.201706, -0.952456, 0.709223, 0.724775, 0.802137, + 0.627734, -0.775268, -0.440219, -0.392987, -0.972511, 0.69883, -0.404681, 0.343227, -0.508501, + 0.896115, 0.70462, 0.690173, 0.489451, 0.837065, 0.326949, 0.170884, -0.225482, 0.812599, + -0.96491, 0.714204, -0.094617, -0.066201, -0.657417, -0.437212, 0.188633, -0.407489, 0.356005, + 0.140876, -0.851256, 0.546545, -0.440294, -0.361303, -0.368037, 0.395117, -0.986063, -0.720675, + 0.402438, -0.302995, -0.189749, -0.898486, 0.101413, 0.470629, -0.360957, 0.07643, 0.02836, + -0.211752, 0.806583, 0.25752, 0.190072, -0.031105, -0.020958, 0.536986, 0.057513, 0.226288, + 0.811557, 0.707057, -0.36699, -0.81885, 0.263391, -0.682995, -0.994539, 0.686692, -0.828817, + 0.987033, -0.921262, -0.814239, 0.574933, 0.077161, -0.435858, 0.379571, -0.649729, -0.551178, + -0.96305, -0.512231, -0.858917, 0.856885, -0.434724, 0.169667, -0.449465, -0.2291, 0.730514, + 0.203518, 0.482819, 0.326745, -0.81502, 0.600556, 0.810222, 0.298855, 0.796594, -0.476475, + -0.654269, -0.803201, -0.158118, -0.098896, -0.568391, -0.341988, -0.322041, 0.96443, -0.071411, + 0.810697, 0.096328, 0.356336, 0.576261, -0.920423, -0.450749, -0.759991, 0.971466, 0.366971, + -0.41913, -0.754116, 0.553772, 0.232121, -0.49197, -0.725746, -0.521879, 0.243515, -0.841949, + -0.105523, 0.593541, 0.53413, 0.107926, 0.106246, 0.233653, 0.390553, 0.789274, 0.27163, + 0.549738, 0.697073, -0.77572, -0.533743, 0.54904, 0.200351, -0.577232, 0.295501, -0.909096, + -0.372079, 0.504263, -0.026349, -0.675785, 0.494299, 0.069491, -0.143111, -0.96171, -0.360717, + 0.110448, -0.543429, 0.168293, -0.710382, 0.771642, 0.770024, 0.589005, -0.118799, -0.996532, + -0.390477, -0.081013, -0.921657, 0.787296, 0.284649, 0.758676, -0.894686, -0.513443, 0.225374, + -0.01524, -0.581583, 0.731184, 0.41239, -0.047685, 0.952997, -0.975255, -0.908324, 0.199436, + 0.907524, 0.565321, -0.550297, 0.717432, 0.519579, 0.056846, 0.63267, 0.197899, 0.001313, + -0.276885, -0.531282, -0.630358, -0.131455, -0.683882, 0.423836, 0.282381, -0.974999, -0.735567, + 0.714635, -0.524245, -0.010314, -0.64051, -0.218706, 0.493192, 0.254174, 0.490831, -0.058226, + -0.797866, -0.012586, 0.592855, 0.233908, 0.206813, 0.196901, 0.820488, 0.50447, -0.163555, + -0.542537, 0.813727, -0.520238, -0.668494, 0.312375, -0.638574, -0.862872, -0.809769, 0.246589, + -0.628404, 0.884629, -0.040131, -0.42471, -0.613188, -0.298951, 0.87241, -0.638327, -0.925882, + 0.297535, 0.339093, -0.847262, -0.448873, 0.866783, -0.472681, 0.419565, -0.480026, -0.88281, + -0.964665, 0.762796, 0.306571, 0.284389, 0.344184, 0.385387, 0.660179, 0.767211, 0.77113, + 0.321336, 0.17859, 0.214676, -0.809937, 0.445868, 0.246609, 0.434674, -0.246758, 0.830595, + 0.120128, -0.237033, -0.028266, -0.399142, -0.146931, 0.848752, 0.331705, -0.111764, 0.037764, + 0.228428, -0.577107, -0.548505, 0.881765, 0.005449, 0.297623, -0.460188, -0.735058, 0.198375, + 0.540114, -0.941861, -0.989022, -0.333508, 0.646684, -0.893528, 0.798917, 0.904352, -0.224422, + 0.063876, -0.041301, 0.97426, 0.111126, 0.244348, -0.34216, -0.012214, -0.530308, 0.050276, + -0.138762, 0.186382, 0.194415, -0.818198, 0.66809, 0.550059, 0.70442, 0.736454, 0.258023, + 0.546659, 0.492904, 0.596235, -0.602197, 0.473801, -0.080122, 0.386798, 0.367589, -0.745381, + -0.454912, -0.711902, -0.265864, 0.322751, 0.233254, 0.793995, -0.721989, 0.312935, 0.817878, + -0.770373, -0.752727, 0.240666, -0.40587, 0.255736, -0.483327, 0.12883, -0.84761, 0.796747, + -0.638544, -0.917653, -0.51791, 0.021238, 0.939737, 0.209081, -0.209082, -0.719744, 0.456449, + 0.072921, -0.289593, -0.280428, 0.146623, 0.588794, -0.60138, -0.241534, 0.471603, -0.684954, + -0.024712, 0.80989, 0.698272, -0.802311, -0.469347, 0.160891, 0.631655, -0.401716, -0.908056, + -0.037168, 0.627242, -0.514222, -0.920913, 0.068867, 0.831242, -0.810647, 0.21519, 0.633374, + 0.030102, -0.535939, -0.361828, -0.65774, 0.072685, -0.435141, 0.033751, -0.220106, -0.684805, + 0.968331, 0.235585, 0.494619, 0.592123, 0.402879, -0.236622, -0.306905, -0.551379, -0.889601, + -0.763556, -0.380833, 0.941956, -0.95427, -0.629855, -0.777903, -0.70067, 0.817768, -0.790989, + -0.715549, -0.584962, 0.268088, -0.312593, -0.665856, 0.826653, 0.153345, -0.730024, -0.373366, + 0.615703, 0.363048, -0.637101, -0.508077, -0.392244, 0.381968, -0.801953, 0.934812, 0.097703, + 0.3973, 0.294875, 0.778421, -0.326967, -0.377858, -0.652274, 0.818115, -0.080824, -0.015609, + 0.881198, -0.25212, -0.335534, -0.417519, 0.574489, 0.12121, -0.53425, 0.65711, 0.389865, + -0.229103, 0.229676, -0.906327, -0.7106, -0.366861, 0.481607, -0.218257, 0.729649, -0.932779, + 0.727558, -0.96688, -0.343522, 0.917127, -0.334209, -0.436062, 0.540237, -0.53576, 0.207265, + -0.358761, 0.391874, -0.613166, -0.523332, -0.664293, -0.177369, 0.992958, 0.574954, -0.793513, + 0.510596, 0.915971, 0.989638, 0.099605, 0.266929, 0.725785, 0.96228, 0.034169, -0.176855, + 0.811695, -0.268663, 0.797002, 0.846207, 0.278669, -0.805157, 0.780733, 0.477638, 0.240159, + 0.216534, 0.47056, 0.590393, -0.655775, -0.791743, 0.517957, -0.416234, -0.878365, 0.835426, + -0.775109, -0.341532, -0.628147, 0.867393, -0.129644, -0.522747, 0.834947, 0.930696, 0.530133, + 0.783303, -0.900468, -0.90375, 0.54647, -0.224528, 0.425205, 0.929318, -0.228473, -0.531294, + 0.936978, -0.479388, -0.573007, 0.802514, -0.041112, -0.487727, 0.356661, -0.505333, 0.036448, + -0.78782, -0.241396, 0.775795, 0.144053, -0.135462, 0.758332, 0.541597, 0.561181, 0.474516, + -0.342176, -0.890298, -0.592173, -0.594401, 0.278477, 0.801941, 0.924398, 0.800764, 0.141893, + 0.688688, 0.050187, 0.464455, -0.662005, 0.963233, 0.462296, 0.001471, -0.397014, 0.175143, + -0.1152, -0.647264, -0.619565, -0.398889, 0.229556, -0.64479, 0.551101, -0.550753, 0.601221, + 0.034496, 0.00172, 0.135049, -0.007542, 0.494256, -0.079972, -0.353055, 0.104249, -0.585532, + 0.40027, 0.10059, 0.504448, -0.175361, -0.005649, -0.47617, -0.448922, 0.024736, 0.511904, + -0.378347, 0.785886, -0.337619, -0.205577, 0.80131, -0.181509, 0.543865, -0.098464, 0.594395, + 0.130059, -0.471213, -0.658734, 0.593624, 0.245743, -0.155312, -0.191054, -0.415097, -0.692642, + 0.221844, -0.850279, -0.013268, 0.714608, 0.456242, 0.540265, 0.184838, -0.559348, 0.509769, + 0.780357, 0.409301, 0.696535, -0.807445, -0.870169, -0.231594, 0.263132, 0.642504, -0.293589, + -0.442673, 0.644961, -0.030647, 0.067822, -0.954116, -0.092886, 0.485135, 0.965691, 0.093175, + 0.635193, 0.139001, -0.789189, -0.033698, -0.341729, -0.1358, -0.388969, 0.747558, -0.816333, + -0.60108, -0.310508, 0.837812, -0.204632, 0.408063, 0.490277, 0.855919, -0.229765, 0.186806, + -0.488076, -0.076011, -0.856981, -0.815942, 0.271992, -0.766411, 0.522655, 0.739109, 0.350884, + 0.382806, -0.908551, -0.462437, -0.722031, -0.948219, 0.425123, 0.228974, 0.951479, -0.275512, + -0.662099, -0.860823, 0.061581, -0.548042, 0.177408, 0.66148, 0.855021, -0.163094, -0.650262, + -0.543007, 0.635065, 0.258786, 0.063318, -0.971585, 0.538631, 0.632616, 0.103202, -0.180193, + -0.474537, 0.008168, 0.049679, 0.282092, -0.042383, 0.948076, 0.644602, 0.225769, -0.887799, + -0.477478, 0.391295, -0.646261, 0.278794, 0.245575, -0.628704, 0.198365, -0.129335, 0.74483, + -0.220618, 0.872695, 0.868832, -0.331544, 0.167796, -0.273358, 0.800772, 0.479451, 0.002741, + 0.604755, -0.802946, -0.255731, 0.204129, -0.947409, 0.874041, 0.082159, 0.88344, -0.291048, + 0.059542, -0.275804, -0.409994, -0.370556, 0.691615, 0.898499, 0.287761, 0.558396, 0.434993, + 0.001253, -0.744343, 0.250862, -0.343619, 0.382884, -0.650681, -0.067969, -0.393072, -0.925092, + -0.924494, 0.922621, -0.001088, -0.862044, 0.163975, -0.062759, 0.823817, 0.942453, -0.257031, + -0.600053, -0.573074, -0.26589, -0.548932, 0.901345, -0.382235, 0.515211, 0.452553, 0.233809, + 0.487499, 0.846798, 0.425482, 0.440025, -0.839056, -0.088622, 0.02309, 0.783162, 0.427303, + 0.7777, 0.773485, -0.466457, 0.141867, 0.953532, 0.353522, 0.565409, 0.406474, -0.313912, + 0.238794, -0.690957, 0.922561, 0.057217, 0.774926, -0.702964, -0.918658, 0.119735, -0.12812, + -0.404499, 0.523951, -0.650519, 0.876287, -0.976213, 0.205081, -0.584698, 0.216941, 0.987578, + -0.120028, 0.232518, -0.393539, -0.513145, -0.854202, 0.5772, -0.011106, 0.346295, -0.769094, + -0.832562, -0.909287, -0.576285, -0.130025, -0.150886, 0.439703, -0.480504, 0.974386, -0.455707, + -0.9404, 0.756463, -0.642671, 0.095303, -0.096545, -0.208595, 0.000648, -0.983363, 0.899235, + -0.649178, 0.609704, -0.591319, -0.246245, -0.02365, -0.394145, -0.433229, -0.841731, -0.686836, + -0.04692, -0.292324, -0.140436, 0.2551, -0.128201, -0.946639, -0.367781, 0.306081, 0.359901, + 0.483909, 0.055377, 0.683679, -0.684311, -0.839199, -0.266626, 0.006744, 0.726071, -0.57669, + -0.700356, -0.027054, 0.2543, -0.912077, -0.403106, -0.785548, 0.233692, 0.093285, -0.889244, + -0.665887, 0.046242, -0.264991, -0.773466, -0.303027, -0.918382, -0.114186, -0.116561, 0.052418, + 0.084936, -0.174188, 0.798041, -0.358034, 0.451913, 0.37755, -0.122572, -0.732839, -0.842607, + 0.276807, 0.305735, 0.606506, -0.442645, 0.807383, 0.999874, -0.159053, -0.389691, -0.314109, + -0.869396, 0.576488, 0.108983, 0.460709, 0.642503, -0.424675, 0.009312, 0.808394, -0.770905, + 0.879206, 0.520004, -0.314062, -0.816511, 0.534126, 0.477107, -0.452863, 0.476085, 0.296791, + 0.98436, 0.511522, 0.154391, -0.98982, 0.813852, 0.858597, -0.277188, -0.078202, -0.03896, + -0.061063, 0.543611, 0.135167, -0.869697, 0.32174, -0.614255, 0.285514, 0.435283, -0.477502, + 0.677423, 0.025537, -0.502957, 0.856897, 0.638995, 0.731253, -0.688535, -0.762123, -0.879233, + 0.646535, 0.583219, -0.609581, 0.392027, 0.200998, -0.425668, 0.034321, -0.603297, -0.292782, + 0.395405, 0.141214, -0.74418, 0.251654, -0.19955, -0.734614, -0.924573, 0.043125, -0.735972, + -0.611282, 0.240965, 0.061662, -0.452737, 0.155027, 0.50377, -0.386145, -0.356638, 0.17658, + 0.244609, 0.345631, 0.681003, -0.066844, 0.332203, -0.575436, -0.127519, 0.740768, -0.968743, + -0.657807, -0.864426, 0.832044, -0.1129, 0.915873, -0.538983, -0.271928, 0.643643, -0.995979, + -0.974573, -0.669667, 0.017015, -0.91998, 0.185154, 0.845716, -0.202692, -0.176071, -0.880057, + -0.211385, 0.082709, 0.204706, -0.329303, -0.6111, -0.523906, 0.689519, -0.544014, 0.077744, + -0.175769, -0.4021, -0.043195, 0.755877, 0.757165, -0.20888, -0.201136, -0.560161, -0.465125, + -0.170822, 0.742029, 0.142462, -0.855881, -0.257052, -0.863891, 0.924127, 0.092583, -0.253813, + 0.400986, -0.937456, -0.330135, 0.093808, 0.721583, 0.815673, -0.033428, -0.999619, 0.184732, + -0.563942, 0.901942, -0.269262, -0.272148, -0.148521, 0.926872, 0.438522, -0.689617, 0.17524, + 0.317966, -0.259737, 0.331972, -0.897622, -0.515493, 0.638837, 0.929015, 0.317651, -0.566541, + 0.36444, -0.575973, -0.801265, -0.659835, -0.094779, 0.212352, 0.074457, 0.961107, -0.070954, + 0.919921, -0.743184, -0.514809, 0.137106, 0.596012, 0.296821, 0.980646, -0.533057, 0.935855, + 0.319279, 0.264037, -0.025638, -0.719773, 0.534959, 0.216896, 0.689336, 0.735911, -0.849319, + 0.926353, -0.230273, -0.669951, 0.872799, -0.158151, 0.164773, 0.150098, -0.537904, 0.634143, + 0.379188, 0.805486, -0.277929, -0.733756, 0.195868, -0.268689, 0.000516, -0.813321, 0.896846, + -0.525928, -0.090347, 0.025374, -0.434429, 0.594139, -0.814818, -0.134514, -0.647599, 0.592993, + -0.728001, 0.791723, -0.864907, -0.999442, 0.024388, -0.984463, 0.931515, 0.934102, -0.456658, + 0.747478, -0.384591, 0.24463, -0.700908, -0.067699, -0.30533, 0.224344, 0.321473, -0.933392, + 0.06757, 0.774359, 0.805613, 0.452762, 0.023156, 0.686088, 0.530664, -0.657781, -0.057044, + -0.926397, 0.07041, 0.07594, -0.658359, 0.23882, 0.69154, -0.850888, -0.890793, -0.488668, + 0.129579, -0.970569, -0.199016, 0.767817, -0.825348, -0.267116, -0.211393, 0.604378, -0.371855, + 0.75914, -0.501198, 0.371009, -0.184827, 0.8705, -0.490316, -0.37572, 0.90192, -0.792191, + 0.282728, 0.497061, -0.086849, 0.879192, -0.930087, -0.145226, -0.526214, 0.394004, 0.977763, + -0.978874, -0.445761, -0.74054, -0.560897, 0.302317, 0.014742, -0.783236, -0.613217, -0.654942, + 0.075869, -0.823549, -0.781909, -0.801196, 0.806597, 0.730391, -0.473163, 0.234727, -0.139662, + -0.4019, 0.466281, -0.672633, -0.0033, 0.747326, -0.868371, 0.824477, 0.66056, 0.442234, + -0.130667, -0.388979, -0.549018, -0.725036, -0.974792, -0.143445, 0.198816, -0.96798, 0.984366, + -0.714515, 0.078942, -0.338925, 0.910091, -0.435316, 0.261224, 0.318728, 0.458563, -0.701056, + -0.553818, 0.011143, -0.986343, -0.390243, -0.839069, 0.442023, 0.103622, -0.934476, 0.977951, + 0.409944, -0.573125, -0.100682, 0.678155, -0.594306, 0.250095, 0.3252, -0.642875, -0.525532, + -0.177335, -0.782249, 0.860563, 0.285538, -0.318318, -0.011757, 0.010929, 0.331189, 0.710314, + -0.840369, -0.355713, 0.360564, -0.558524, -0.049265, -0.292566, 0.572984, -0.536192, 0.901129, + 0.475454, -0.716979, -0.198813, -0.093806, -0.978843, -0.857042, 0.82741, 0.718504, -0.681011, + -0.009843, 0.268693, 0.610182, 0.885778, 0.627352, 0.829333, -0.648344, -0.227926, 0.478492, + -0.769754, -0.968406, 0.563641, 0.729144, 0.399646, 0.635156, 0.467878, 0.13539, -0.22514, + 0.137883, -0.348787, 0.811898, 0.844657, -0.306344, 0.441323, -0.271506, 0.800133, -0.899587, + 0.142286, -0.076922, 0.682782, 0.105974, 0.18973, -0.979187, -0.55015, 0.933439, -0.089622, + 0.427467, -0.81757, 0.514871, -0.435064, -0.102612, 0.942279, 0.708386, -0.876822, -0.448593, + 0.59005, -0.183759, 0.789618, 0.410861, -0.110921, -0.623472, 0.057392, 0.78876, 0.768483, + -0.43156, -0.276371, 0.322512, -0.84997, 0.133607, 0.255458, 0.981423, -0.123817, 0.972917, + 0.972604, -0.514569, 0.155466, 0.57317, -0.11613, -0.547736, 0.21323, 0.440684, -0.810253, + -0.805826, -0.754581, -0.766303, 0.875587, -0.444789, -0.118761, -0.266121, -0.514011, 0.846081, + -0.357065, 0.607259, -0.462113, 0.980853, 0.252736, -0.176501, 0.007042, 0.414304, -0.53707, + -0.296579, -0.74205, -0.670673, 0.481002, -0.083724, -0.499155, 0.046487, 0.570589, 0.9184, + -0.585402, 0.408147, 0.095568, -0.507513, 0.221638, 0.112358, 0.590982, 0.818267, 0.469686, + 0.189202, -0.751309, -0.837248, 0.468508, -0.613497, 0.013826, 0.769825, 0.501944, -0.127038, + 0.157596, 0.0344, 0.086316, 0.872029, -0.611794, 0.870499, 0.047999, 0.948413, -0.426358, + 0.614738, -0.549775, -0.819334, 0.726891, 0.345668, 0.983048, 0.4053, -0.421875, -0.594734, + 0.818509, -0.198242, -0.594137, -0.738592, -0.669407, -0.420057, -0.803999, 0.962462, 0.115541, + 0.329918, -0.491963, 0.028185, 0.681634, -0.338909, 0.807369, -0.310897, -0.373869, -0.736049, + -0.991083, 0.435995, -0.645129, -0.548255, -0.409067, -0.764815, -0.768676, -0.652875, 0.974935, + 0.058095, -0.37685, -0.083369, 0.835949, -0.581675, 0.403875, -0.186312, -0.849629, 0.661402, + 0.461966, 0.734965, 0.457824, 0.162941, 0.307451, -0.746558, 0.963668, -0.644156, 0.705506, + -0.63317, -0.722678, 0.412118, 0.655371, -0.27237, 0.280078, -0.871631, -0.112292, 0.882303, + 0.934392, -0.318425, 0.369483, 0.922274, 0.37086, 0.183314, -0.805803, 0.287485, 0.266977, + -0.563302, 0.499332, -0.652315, 0.957344, -0.050322, 0.680832, -0.262578, -0.507971, 0.727485, + 0.607141, 0.981899, 0.293962, -0.419816, -0.587237, -0.954214, 0.063371, 0.957317, -0.331478, + -0.193007, 0.704364, 0.889545, 0.271659, 0.079423, 0.977897, 0.837493, -0.636317, -0.69768, + -0.229414, 0.396294, -0.611975, -0.428074, 0.083013, -0.252654, 0.670866, 0.633423, 0.688674, + 0.531892, -0.578542, -0.769652, -0.671957, -0.127997, 0.786018, -0.222047, 0.920187, 0.746345, + -0.949105, 0.461789, -0.421808, -0.953943, 0.350493, -0.343594, -0.888455, -0.703744, 0.735757, + -0.239561, 0.783793, -0.347016, 0.976879, -0.250306, 0.946505, 0.387903, -0.751393, 0.436977, + 0.419897, -0.839501, -0.864569, 0.058007, 0.541658, 0.852049, -0.277255, -0.936457, 0.456795, + 0.069729, 0.025503, 0.631339, 0.119414, 0.86685, 0.76769, 0.256051, 0.744892, 0.320156, + -0.949013, 0.897578, 0.030463, -0.123544, 0.824107, 0.87223, -0.791281, 0.393929, -0.549726, + -0.256956, 0.214848, -0.371116, -0.422147, 0.497869, -0.24047, 0.377667, 0.958838, 0.242594, + 0.23256, 0.877326, -0.375969, 0.001445, -0.925597, -0.425749, -0.07834, 0.906881, 0.564939, + -0.185716, -0.272057, 0.244844, -0.434242, -0.146161, 0.264786, -0.309924, 0.73197, 0.395967, + -0.103847, -0.174597, 0.099424, 0.52287, 0.280314, -0.272636, 0.348634, -0.042475, -0.7298, + -0.788256, 0.007484, 0.865321, -0.388726, 0.627536, -0.297004, 0.597853, -0.224105, -0.414603, + 0.293223, 0.529059, -0.762162, -0.072957, 0.207552, 0.179867, 0.974867, -0.876606, 0.853377, + 0.517099, -0.942974, -0.385313, 0.347401, -0.752731, 0.935098, -0.376206, 0.383306, 0.193013, + -0.389295, -0.941086, 0.073123, -0.817106, -0.218415, 0.210261, -0.350172, 0.571046, -0.898436, + -0.789441, 0.532581, -0.520777, 0.821266, -0.202264, -0.179052, 0.953557, -0.110889, -0.801796, + -0.416578, 0.31118, 0.681036, 0.843186, -0.36711, 0.147176, 0.728492, -0.409106, 0.066858, + -0.484629, 0.142492, 0.972852, 0.844994, -0.657665, 0.490802, 0.940846, -0.177034, 0.354935, + -0.897998, 0.555604, -0.187336, 0.918475, 0.700439, -0.574832, -0.442217, -0.786334, -0.923835, + -0.907271, 0.484092, 0.663134, -0.634449, 0.699888, -0.313723, 0.298367, 0.837593, 0.775858, + -0.797055, 0.393587, -0.502271, -0.85867, -0.04431, -0.223961, 0.209924, 0.112808, 0.578894, + 0.515831, -0.896546, -0.873891, -0.631916, 0.514967, 0.923504, -0.585367, 0.187379, 0.055817, + 0.373194, 0.386264, 0.155814, 0.665261, -0.33242, 0.954636, -0.028247, -0.906315, 0.487322, + 0.704013, 0.670472, 0.109938, 0.338329, 0.310354, -0.426985, -0.040005, 0.023605, -0.553709, + -0.373049, -0.398407, -0.164143, -0.657998, 0.579997, -0.025221, 0.76919, -0.641988, 0.2777, + -0.327983, 0.52984, -0.39987, -0.495945, 0.079486, -0.573412, 0.690085, -0.037672, 0.560526, + -0.293449, -0.246166, -0.945816, 0.279453, 0.341073, 0.656536, 0.132533, -0.095644, -0.13436, + 0.407833, 0.956485, 0.064278, -0.843642, -0.892647, 0.382857, 0.89018, -0.528553, 0.504066, + 0.836953, 0.87529, 0.635322, -0.648838, 0.701504, 0.035139, -0.600301, -0.992697, -0.392688, + 0.831935, 0.999168, 0.734577, -0.706804, 0.576746, 0.552827, 0.902465, -0.588478, 0.828292, + -0.130689, 0.399493, -0.854769, -0.154958, -0.632811, -0.284402, -0.103673, -0.358275, 0.443696, + 0.926671, 0.232227, -0.441048, -0.223075, -0.309442, 0.074173, -0.088986, 0.584785, 0.07654, + -0.896809, -0.357737, -0.48442, 0.351295, 0.896389, 0.812713, 0.23669, -0.645605, -0.03425, + 0.156163, 0.020108, 0.551481, 0.482857, -0.307239, -0.370581, 0.116339, 0.095819, 0.020376, + -0.964189, -0.938254, 0.899787, 0.975741, -0.876547, -0.700558, -0.14537, -0.566033, -0.980456, + 0.30948, -0.639708, 0.320738, -0.645966, -0.052211, -0.317547, -0.189312, -0.43304, -0.83806, + 0.809944, -0.083284, -0.538539, 0.934015, 0.12765, -0.23562, 0.290539, -0.061151, 0.250772, + 0.839699, 0.369352, 0.704881, 0.528775, -0.402728, -0.08223, -0.188466, 0.994113, -0.378853, + 0.714857, -0.289513, 0.836324, 0.426488, 0.551264, -0.7151, -0.029611, 0.932181, -0.794164, + -0.218602, -0.986004, -0.924132, 0.737338, -0.590456, 0.095283, -0.852593, -0.757204, 0.902692, + 0.195612, -0.274314, -0.265291, 0.964793, 0.712594, 0.707863, 0.899418, 0.037884, 0.149157, + 0.058506, -0.399648, -0.868014, 0.892423, 0.829871, 0.093793, -0.355254, 0.86887, -0.444602, + -0.037978, -0.342864, -0.583413, -0.762436, 0.975926, 0.877926, 0.491549, -0.367455, -0.326618, + 0.585959, 0.758274, 0.999691, 0.467269, -0.380718, -0.437773, 0.95262, -0.705189, -0.841705, + -0.103943, -0.163531, 0.49792, -0.679646, -0.227688, -0.773508, 0.682261, 0.2272, -0.499463, + -0.268955, 0.630244, 0.792983, -0.919865, -0.58152, 0.171701, 0.253244, -0.633955, 0.381849, + 0.047409, -0.555083, -0.764846, -0.009737, 0.311837, 0.455914, 0.376521, 0.703228, 0.891957, + -0.602353, -0.354833, -0.839772, 0.77803, -0.951783, -0.483896, -0.905631, -0.15601, -0.393357, + 0.58634, -0.809121, 0.602012, -0.374305, 0.191599, -0.642964, 0.275291, 0.783427, 0.340484, + 0.303224, -0.260463, -0.942252, 0.288214, 0.713961, 0.562518, 0.859584, -0.528062, 0.571192, + 0.685214, 0.741031, -0.513224, 0.743305, -0.86777, -0.535844, 0.522959, 0.790586, 0.659954, + -0.261966, -0.750866, 0.615877, -0.498832, 0.695196, -0.009402, 0.403022, 0.18019, -0.132893, + -0.425209, -0.212607, -0.264234, -0.821659, 0.339638, 0.394911, -0.998688, -0.478761, -0.794545, + -0.008982, -0.558998, 0.796481, -0.762611, -0.336048, 0.883121, 0.039378, 0.801653, -0.474405, + 0.864777, -0.677102, -0.397555, -0.880756, 0.947129, 0.381285, -0.325477, 0.112889, -0.025554, + -0.727564, -0.661101, 0.411317, 0.725651, 0.021132, 0.966715, -0.062921, 0.601064, 0.384639, + 0.993695, 0.42061, -0.637988, 0.655923, -0.477335, -0.798442, -0.805502, 0.992771, 0.235505, + 0.416121, -0.430943, -0.8021, 0.279566, -0.81979, 0.210654, -0.1326, 0.09921, 0.634211, + -0.902653, 0.433349, -0.453489, -0.188532, -0.515734, -0.333949, 0.380128, 0.496403, -0.802653, + 0.167706, -0.00137, 0.662622, -0.003868, 0.927588, 0.79587, -0.895235, 0.802285, 0.074336, + -0.099238, -0.609284, -0.622122, 0.294386, -0.393431, 0.361436, -0.132157, -0.234332, 0.600536, + -0.71639, -0.346699, 0.691378, 0.536769, 0.974374, 0.75192, -0.670929, 0.571974, 0.083135, + 0.705016, -0.24069, 0.531194, -0.23313, 0.448963, -0.494404, 0.49751, 0.587417, 0.760133, + -0.534507, -0.544533, 0.339664, -0.660443, -0.601311, 0.125945, 0.943222, -0.708635, -0.173837, + -0.735991, -0.106393, 0.884425, -0.766981, 0.673462, 0.547061, 0.131067, 0.658058, 0.494017, + 0.317101, 0.141522, -0.650316, -0.949735, 0.670123, -0.365337, -0.904666, -0.326817, -0.704091, + 0.815205, 0.73864, -0.890112, 0.406161, -0.408073, 0.955794, 0.0943, -0.061383, 0.393523, + -0.857697, -0.39664, 0.825964, 0.856672, -0.176031, 0.752488, -0.82067, -0.788064, -0.202935, + -0.936117, 0.859822, -0.146783, -0.532885, 0.306239, -0.168917, 0.588198, 0.573747, -0.737395, + 0.221696, -0.200873, 0.491707, -0.695755, 0.016188, 0.302025, -0.794409, 0.307826, -0.383721, + 0.371067, -0.424199, -0.217189, -0.957316, -0.135884, 0.753035, 0.352293, -0.752325, -0.832932, + 0.757498, -0.430192, -0.795372, -0.409615, 0.524998, 0.121372, -0.511204, 0.495735, 0.997674, + 0.224965, -0.749933, -0.273353, -0.995546, 0.853373, -0.654431, -0.028821, -0.587151, -0.035231, + -0.707001, -0.78997, -0.720919, 0.425755, -0.999996, 0.833255, 0.431201, 0.536188, 0.935493, + 0.074092, -0.254711, -0.922077, -0.594193, -0.683375, -0.916119, -0.414483, -0.020578, -0.030634, + 0.155679, -0.687449, 0.593679, -0.929193, 0.341621, -0.397673, 0.855233, -0.525182, 0.932861, + -0.72792, -0.661427, -0.102608, -0.695951, 0.101593, -0.714764, -0.10541, -0.128085, -0.354049, + 0.162359, -0.568159, 0.583534, -0.285159, -0.570019, -0.292429, 0.365845, -0.570823, -0.933358, + -0.226179, -0.677987, 0.977705, -0.351024, 0.252632, -0.47122, 0.024603, -0.220114, -0.145821, + 0.828478, 0.420462, -0.507004, 0.517278, -0.643792, 0.769476, -0.883186, -0.974493, 0.981344, + 0.546299, 0.035162, -0.773295, 0.616609, -0.405712, 0.279886, 0.174577, 0.642607, -0.235944, + 0.999539, -0.725492, -0.453049, 0.984825, -0.882524, -0.3048, 0.31245, 0.39999, -0.319206, + -0.784658, 0.845103, -0.767493, 0.951869, 0.074853, -0.571547, 0.140304, -0.03362, -0.832341, + 0.867622, -0.584013, -0.178761, -0.535669, 0.220035, -0.670385, 0.857186, -0.265374, 0.933189, + 0.004337, -0.160985, -0.897215, 0.627782, -0.00642, -0.795162, 0.483051, 0.151975, -0.546876, + -0.601046, -0.201694, 0.468405, 0.322731, -0.617854, -0.701253, 0.837579, 0.194956, 0.48787, + -0.942413, 0.472041, 0.868018, -0.031282, 0.811091, 0.211872, 0.039026, 0.349134, -0.350103, + -0.106044, -0.19581, 0.258032, 0.099318, -0.466751, 0.512209, -0.560977, 0.630777, 0.100452, + -0.063999, -0.065204, 0.21893, 0.041918, 0.872572, 0.800969, 0.994245, 0.60768, 0.021213, + -0.387508, -0.371241, 0.606642, -0.079159, -0.896896, 0.031412, -0.2358, -0.723638, -0.758435, + -0.091325, 0.357876, 0.539568, -0.716294, -0.845694, -0.763346, -0.040082, -0.081708, 0.467086, + -0.814019, 0.90992, -0.299256, -0.947186, -0.630562, 0.242605, -0.207172, 0.72405, -0.004711, + 0.608559, 0.829088, -0.380046, 0.082173, -0.076467, -0.457283, -0.910445, -0.485541, 0.510797, + -0.192238, -0.881292, 0.264757, 0.365035, 0.183716, 0.811475, -0.766314, -0.394523, -0.057933, + -0.659836, 0.337056, -0.251074, 0.931861, -0.33077, -0.70679, 0.767512, 0.983177, 0.736774, + -0.773805, -0.494551, 0.470858, 0.918458, 0.681748, -0.855108, -0.336672, -0.057794, 0.490796, + -0.692403, 0.395243, -0.234063, 0.308909, -0.159576, 0.967672, -0.105196, -0.38584, -0.162411, + -0.493679, -0.826971, 0.645883, -0.606505, -0.435375, -0.515534, -0.010208, 0.561814, -0.269669, + 0.005832, -0.354981, 0.782797, -0.147324, 0.714292, -0.271967, -0.28324, -0.5528, -0.66871, + 0.543287, -0.942328, 0.19919, 0.832743, -0.742661, 0.411067, 0.244401, 0.094922, 0.949682, + -0.6874, 0.587591, -0.496237, 0.595043, 0.078828, 0.072757, -0.851495, 0.113997, -0.734528, + -0.83094, 0.559842, 0.008908, -0.256951, -0.159038, 0.793671, -0.017968, -0.640111, 0.966208, + -0.555718, 0.723711, 0.83434, 0.18275, -0.905525, -0.295373, -0.833918, -0.876593, -0.738983, + -0.530942, -0.922857, -0.549131, -0.790033, -0.776205, -0.655131, -0.962412, 0.017952, 0.085937, + -0.192186, 0.98612, 0.484455, 0.628999, 0.522072, -0.528049, 0.254267, 0.318581, -0.735954, + 0.872741, -0.593991, -0.1233, -0.97661, -0.781122, 0.801962, -0.733245, 0.899973, 0.517427, + 0.924634, -0.468513, -0.783866, 0.831991, -0.40906, -0.118386, 0.931765, -0.453153, -0.343491, + 0.572544, 0.903541, 0.044981, 0.010032, 0.710506, -0.406548, 0.800107, 0.590393, 0.134232, + -0.526481, 0.88181, -0.264837, -0.502652, -0.212819, 0.155933, -0.990589, 0.232933, -0.147343, + 0.302596, -0.030049, -0.526809, -0.238497, -0.288359, 0.848387, -0.884557, 0.287403, 0.906237, + 0.309835, -0.530716, 0.294123, 0.401469, 0.43057, 0.082843, -0.875923, 0.22391, -0.210056, + 0.532125, 0.895717, -0.357885, 0.017001, 0.819829, -0.17125, 0.151272, -0.387905, 0.25056, + -0.412688, -0.8772, -0.876645, 0.439207, -0.150178, 0.174537, 0.670708, 0.209404, 0.885954, + 0.306037, -0.910707, 0.633196, -0.896037, 0.480947, -0.077787, -0.953818, -0.188738, 0.873038, + -0.456193, -0.432722, 0.540777, 0.20363, 0.40379, -0.630332, -0.340213, -0.650454, 0.227708, + 0.20362, -0.500818, -0.545551, 0.465016, 0.081226, 0.204548, -0.233059, -0.885948, 0.642296, + 0.936237, 0.848154, -0.736447, -0.472051, -0.724718, 0.904119, 0.802837, -0.450354, 0.179388, + 0.716752, 0.764705, -0.464103, -0.37823, -0.765446, -0.899832, -0.269363, -0.312051, 0.59886, + 0.756415, -0.218273, 0.444754, 0.006275, 0.502497, -0.882741, -0.176074, -0.33289, 0.807847, + 0.473965, 0.389034, 0.49902, -0.667207, -0.754203, -0.590928, -0.169914, -0.513848, 0.428703, + 0.864663, 0.990222, 0.676109, 0.413142, 0.011533, -0.533974, 0.172686, 0.574985, 0.11425, + -0.109877, -0.08379, -0.890832, 0.035925, 0.158295, 0.853405, 0.362664, 0.94496, -0.020756, + 0.768508, -0.598334, 0.288263, 0.953604, 0.25148, -0.558483, 0.416375, -0.954479, 0.43434, + -0.551124, 0.704075, 0.091, 0.322829, -0.454129, -0.092422, -0.521148, 0.851201, 0.394354, + -0.528504, -0.375066, 0.476704, -0.610317, 0.198022, -0.492948, -0.122984, 0.687609, -0.14921, + 0.555114, -0.659761, 0.783371, -0.943211, -0.952504, -0.985464, -0.864861, -0.087795, -0.954897, + 0.225469, -0.523924, 0.160744, -0.068393, 0.371438, -0.132492, -0.800294, 0.123915, 0.233546, + -0.02568, -0.212146, -0.10148, 0.065493, 0.050959, -0.281771, 0.681009, -0.837784, 0.694382, + -0.621921, 0.712215, -0.690706, -0.620557, 0.13421, 0.927446, -0.117081, -0.162025, 0.387159, + 0.340164, -0.30969, 0.067095, 0.998973, -0.013819, -0.899793, -0.898658, 0.553272, -0.69331, + -0.912911, 0.062195, -0.245595, 0.988789, -0.778031, 0.699519, 0.292123, 0.182714, 0.352902, + 0.565125, 0.716525, -0.76093, 0.947384, 0.342926, 0.152865, -0.450961, 0.96863, -0.52106, + 0.184049, 0.416806, -0.796666, 0.902627, -0.007505, 0.120223, -0.925282, 0.324032, -0.789955, + -0.222371, 0.117075, -0.584427, 0.895762, -0.815149, 0.213602, 0.370746, -0.702584, -0.071445, + -0.938484, -0.994353, 0.715937, -0.138584, -0.320995, -0.805361, 0.929763, -0.420292, 0.798633, + -0.956522, 0.318848, -0.364889, 0.697464, 0.02917, -0.373783, -0.413396, -0.371691, 0.861309, + -0.004268, -0.945805, -0.012382, -0.04446, 0.847782, -0.843759, 0.004928, 0.778962, 0.115602, + -0.026082, -0.893577, -0.759823, -0.303521, -0.831523, 0.374351, 0.301066, -0.841373, 0.990847, + 0.114943, 0.657587, -0.37388, 0.827608, 0.839909, -0.887328, -0.40386, -0.722389, -0.006554, + -0.677285, -0.425468, 0.367976, 0.458476, 0.766433, 0.909475, 0.321268, -0.210564, 0.214285, + 0.947277, 0.950987, -0.993681, 0.902667, -0.30795, -0.342376, -0.891845, 0.521539, 0.29758, + 0.691927, -0.514292, 0.666503, -0.93606, 0.733521, 0.706079, -0.892347, -0.791306, 0.193496, + 0.475224, 0.97821, 0.508325, -0.687683, 0.325902, -0.920907, -0.50653, 0.155326, 0.288034, + -0.881864, -0.237711, -0.81069, -0.885643, -0.006063, -0.056466, 0.216239, 0.644669, -0.968704, + -0.56714, -0.319455, -0.756532, 0.909829, 0.942588, -0.97404, -0.867681, -0.538656, -0.298746, + 0.07701, -0.97765, -0.13409, -0.805834, 0.932757, -0.596085, 0.170035, 0.991849, -0.793364, + 0.043701, 0.895243, 0.011289, -0.737422, -0.457591, -0.861373, -0.514181, -0.65079, 0.461234, + 0.566627, -0.236895, 0.781047, -0.610943, 0.359685, -0.885785, 0.583007, -0.991713, 0.584814, + -0.065609, -0.885481, 0.905588, 0.142656, -0.744663, 0.264595, -0.644795, -0.726766, 0.018953, + -0.150901, -0.688638, 0.721894, 0.241731, -0.495341, 0.512665, 0.598843, 0.811283, -0.121537, + -0.302343, 0.110541, -0.087228, 0.519956, -0.469436, 0.5025, 0.928309, 0.402945, 0.688846, + -0.657466, 0.364238, -0.834278, -0.032816, -0.150267, 0.987677, -0.302463, 0.820745, 0.601815, + -0.008888, 0.683794, 0.98423, -0.550412, -0.911014, 0.230419, 0.518278, 0.136991, 0.918571, + -0.157361, 0.187488, -0.771295, 0.714006, -0.58759, -0.133078, -0.662626, 0.686101, -0.591114, + -0.843667, -0.501022, 0.001858, -0.664513, 0.054515, -0.1586, 0.779261, 0.460414, 0.382674, + -0.521045, 0.563299, 0.629785, -0.054453, 0.005646, -0.149235, -0.018571, -0.733011, 0.49594, + 0.920425, 0.50175, 0.472066, 0.906473, 0.697465, 0.233527, 0.664268, 0.696222, 0.204561, + -0.241424, -0.591875, -0.274664, 0.299083, -0.780137, -0.909419, -0.15358, 0.167999, 0.641114, + 0.809016, -0.810216, 0.014587, -0.726615, 0.094491, -0.816519, -0.901791, 0.046823, 0.665436, + -0.957509, -0.899671, 0.114649, 0.966334, -0.285789, 0.92093, 0.935411, -0.436244, 0.275049, + 0.617959, -0.876578, 0.400791, 0.414182, -0.00268, -0.987719, -0.15586, -0.760203, 2.5e-05, + 0.026473, -0.546215, 0.873065, -0.653869, 0.649463, 0.638103, 0.921527, 0.293122, 0.664438, + -0.347565, 0.358516, 0.906918, -0.974228, -0.707451, 0.296319, -0.228183, -0.169658, -0.571165, + 0.000882, -0.313698, 0.952617, 0.612369, 0.261761, 0.410257, -0.420981, -0.268992, 0.5921, + 0.859229, -0.205509, -0.876735, -0.025215, 0.594898, 0.046914, -0.964146, 0.125838, -0.541142, + 0.410784, 0.824738, 0.608189, -0.813502, 0.229021, -0.055912, 0.19872, -0.494296, -0.811937, + -0.466631, 0.041515, 0.551844, -0.882427, 0.500546, 0.956309, -0.8319, -0.698162, 0.192444, + -0.595401, 0.175485, -0.903371, -0.075734, 0.908296, 0.751721, 0.170342, 0.442807, 0.901121, + -0.809286, 0.740804, 0.34101, -0.839248, 0.513851, 0.138148, -0.882984, -0.51804, 0.09607, + 0.114386, 0.26478, 0.777063, 0.832091, 0.380042, 0.088354, 0.00376, 0.915017, 0.056715, + -0.660908, -0.4846, -0.975187, -0.693234, 0.972298, -0.778417, -0.223884, -0.942706, 0.564903, + -0.411643, 0.998526, 0.677893, -0.420273, -0.413572, -0.166351, -0.261317, -0.866223, 0.098269, + -0.679217, -0.638066, 0.307915, 0.536931, -0.949031, 0.216436, 0.835776, 0.381173, -0.741858, + -0.956399, -0.10383, 0.701917, -0.074074, -0.94229, 0.978404, -0.743431, 0.312234, -0.595771, + 0.203263, -0.208272, -0.116348, -0.161825, 0.798168, -0.468894, -0.300081, -0.716375, -0.580495, + -0.17022, -0.787306, -0.380307, -0.124869, -0.706328, 0.208011, 0.122633, 0.189184, 0.933041, + -0.663934, -0.191777, -0.400852, -0.769578, -0.254862, 0.256199, 0.222464, -0.091563, 0.715019, + 0.691989, 0.774031, 0.718564, 0.031394, -0.048149, 0.766698, 0.134392, 0.855519, 0.040923, + -0.761283, -0.683761, 0.461567, 0.632291, 0.331207, 0.782527, 0.931615, -0.430492, 0.296651, + 0.168128, -0.121806, -0.838079, -0.772176, 0.439262, -0.432981, -0.388053, -0.548666, -0.422044, + 0.441477, -0.710875, 0.446249, -0.088569, 0.511873, -0.533006, 0.355077, 0.220725, 0.745971, + 0.624701, 0.080407, 0.846743, -0.748972, -0.339077, 0.420642, 0.548774, -0.715029, -0.291574, + 0.792207, -0.860316, 0.439952, 0.991066, -0.371042, -0.111996, 0.253543, 0.459084, -0.14346, + -0.887629, -0.043518, 0.118255, 0.660847, 0.180114, 0.752404, -0.383489, -0.153675, 0.291939, + 0.794912, 0.416828, 0.921957, 0.327775, 0.512223, 0.216866, 0.825768, 0.782205, 0.607449, + -0.847379, -0.111003, -0.338769, -0.150339, 0.712041, -0.660217, -0.521281, -0.405561, 0.07046, + -0.555628, 0.199839, -0.847487, -0.511811, 0.597231, 0.689545, -0.312516, 0.053454, -0.034012, + -0.707955, -0.224239, 0.590363, 0.033597, 0.959168, -0.816914, -0.708826, -0.852542, -0.632969, + 0.209812, 0.668954, -0.818672, -0.763009, -0.370385, 0.593183, 0.528193, -0.101593, 0.912167, + 0.363909, 0.939941, 0.002688, -0.61927, 0.011159, 0.316739, 0.39097, -0.003763, 0.034158, + 0.189736, -0.220478, 0.244831, -0.636494, -0.220051, 0.539158, 0.305666, 0.559575, -0.665997, + -0.29433, -0.517712, -0.777909, -0.410556, -0.063967, -0.073259, -0.061791, -0.631666, -0.067844, + 0.265162, 0.718207, 0.604984, -0.835712, -0.637078, 0.788803, 0.678818, 0.555096, -0.515758, + 0.843315, -0.97153, -0.795275, 0.0895, 0.465084, -0.942564, 0.147203, -0.015049, -0.131633, + -0.783256, -0.479388, 0.046942, 0.239165, 0.627194, -0.354267, 0.946542, 0.37653, -0.679412, + -0.995568, 0.672338, 0.075576, -0.100364, -0.331052, 0.470144, -0.359844, -0.731619, 0.694471, + -0.428746, 0.575791, -0.687684, -0.20103, -0.547975, 0.042564, -0.118265, 0.29834, -0.77565, + -0.881992, 0.795298, -0.765679, 0.337196, -0.868483, 0.19487, -0.021277, -0.491748, -0.020592, + 0.122776, 0.027984, 0.756532, -0.572796, 0.452825, 0.921005, -0.71827, -0.783251, 0.337976, + -0.354996, -0.022553, -0.932825, 0.610831, -0.066023, 0.06148, -0.34761, 0.347143, -0.016399, + -0.39854, 0.248409, -0.371302, 0.371121, -0.957778, -0.386931, -0.685174, 0.42545, -0.702215, + 0.774808, 0.243489, 0.612877, -0.652316, -0.812334, -0.164102, -0.54946, -0.338718, 0.822003, + 0.534482, -0.295459, 0.607238, -0.669816, -0.581089, 0.442942, 0.431729, -0.289139, -0.682412, + 0.156301, 0.964683, 0.984208, 0.8204, -0.749905, 0.662885, 0.183129, -0.811663, 0.064226, + -0.965721, 0.214676, -0.549872, -0.672836, 0.048658, 0.67447, 0.561287, -0.618838, 0.568803, + 0.372075, -0.667567, -0.257934, -0.239637, -0.812782, -0.912482, -0.679064, 0.909084, -0.265703, + 0.095991, -0.830392, -0.17201, 0.377808, -0.020265, -0.078584, -0.01332, 0.672383, -0.704465, + -0.898024, -0.9632, 0.406618, -0.557042, -0.437367, -0.132267, 0.586246, 0.008691, 0.195738, + -0.280895, 0.544237, -0.498877, 0.770826, 0.823137, -0.899554, -0.316638, -0.120501, -0.538475, + 0.053694, -0.328218, 0.827878, -0.079114, -0.558992, -0.496563, -0.934587, -0.614604, 0.194152, + 0.302067, -0.430997, 0.010175, 0.501754, 0.132184, 0.112657, -0.656012, 0.940172, -0.295225, + 0.082495, -0.12315, 0.434446, -0.828297, 0.227576, -0.776205, 0.789313, -0.39417, 0.204141, + 0.066177, -0.397471, -0.133461, 0.951201, -0.505635, -0.259938, 0.659159, 0.587085, 0.276671, + -0.875036, -0.161305, -0.985316, -0.494208, -0.106906, -0.377969, 0.410527, 0.010026, 0.1968, + 0.293154, 0.241425, -0.980392, 0.201904, 0.822821, 0.337536, 0.717858, -0.541455, -0.253842, + -0.912374, -0.913279, -0.753878, 0.511028, -0.588167, 0.335675, 0.692562, 0.357156, -0.419142, + 0.638836, 0.366749, 0.22679, -0.250867, 0.794417, 0.483282, -0.175772, 0.461186, -0.666374, + -0.086594, -0.830217, -0.892377, 0.814543, 0.531568, -0.339397, -0.557194, -0.383733, -0.237654, + -0.170124, 0.856286, 0.957209, 0.522169, -0.559449, -0.352555, 0.124704, -0.595596, 0.894611, + -0.592721, 0.9256, -0.00438, 0.90603, 0.653568, 0.089897, 0.98156, 0.087366, 0.383844, + -0.257901, -0.880597, -0.613009, -0.8049, 0.685019, 0.444715, 0.281728, 0.927176, -0.705946, + 0.281309, 0.043143, -0.875277, -0.965983, 0.97121, 0.849141, 0.181699, -0.641974, 0.139319, + 0.713061, -0.217572, 0.013886, -0.491863, 0.755938, -0.609512, -0.561932, -0.256903, -0.031695, + 0.251952, 0.778386, 0.612381, 0.144269, 0.262237, 0.847681, -0.293648, -0.476063, 0.765849, + 0.867532, -0.040959, -0.039225, 0.75888, -0.186501, 0.987145, -0.732731, 0.245815, 0.75751, + -0.962801, -0.264476, 0.85215, 0.723831, -0.667286, 0.800023, 0.856949, 0.393073, -0.253422, + -0.574646, -0.206463, 0.314884, 0.211719, 0.137598, -0.708783, 0.810704, 0.118037, 0.20663, + -0.831651, -0.281747, -0.241497, 0.690949, 0.794891, -0.62291, -0.681117, -0.592803, -0.28035, + -0.767511, 0.924056, -0.665793, 0.824156, 0.406285, -0.3669, -0.49285, 0.100519, -0.980295, + -0.42601, 0.131371, -0.964573, 0.935665, -0.593983, -0.026562, -0.501952, -0.418636, -0.400091, + 0.198768, -0.615065, 0.412385, 0.38369, 0.553203, -0.929973, -0.591057, 0.601248, 0.798982, + 0.374362, -0.865101, 0.245183, 0.675647, -0.045965, 0.609454, -0.705969, 0.594575, 0.19867, + -0.354044, 0.8037, -0.907448, 0.857723, 0.227036, 0.273844, -0.110178, 0.128319, 0.704203, + 0.120025, 0.117003, 0.493922, -0.456464, -0.222821, 0.39007, 0.888898, -0.183882, 0.026149, + 0.420931, -0.642926, -0.800294, 0.057769, 0.178256, -0.772531, 0.973135, 0.347753, -0.607877, + 0.771116, 0.281067, 0.077037, 0.09177, -0.667859, -0.08049, 0.776916, -0.498221, 0.463471, + 0.634916, 0.986772, -0.803379, 0.273762, 0.328763, -0.338258, 0.589371, 0.387023, 0.850243, + -0.714851, 0.270859, -0.723812, 0.265319, 0.638871, -0.852969, 0.774783, 0.572904, -0.090979, + 0.925143, 0.006058, -0.731884, -0.707746, 0.648065, -0.82153, -0.335773, 0.803259, 0.514143, + 0.914053, 0.346455, 0.023297, 0.464213, -0.452141, 0.597427, -0.488593, -0.315543, -0.278465, + -0.546157, -0.019531, -0.21535, -0.188665, 0.641875, 0.763364, -0.525422, 0.951076, 0.700252, + -0.275276, 0.713931, -0.328066, 0.928574, -0.052725, 0.754741, 0.816023, 0.687497, 0.392274, + 0.140979, -0.80078, 0.011384, 0.62398, 0.95269, 0.357323, -0.615144, -0.019152, -0.416013, + -0.007597, -0.640688, -0.09491, -0.007137, 0.585456, -0.434055, -0.748316, -0.049244, 0.961552, + 0.463585, 0.540704, -0.974173, -0.009904, -0.210756, 0.183684, 0.752024, 0.944217, 0.411811, + 0.656376, -0.24099, -0.097289, -0.927819, -0.697775, -0.814015, 0.589111, 0.481619, -0.807884, + 0.797501, -0.944191, 0.100113, -0.908208, 0.818858, -0.463688, -0.64236, 0.468722, -0.214439, + 0.644675, 0.933411, 0.710891, 0.124532, -0.083649, -0.716428, -0.585575, -0.594979, 0.606336, + 0.041573, -0.663644, 0.899628, -0.315668, 0.981752, 0.951189, 0.17277, -0.819734, 0.32957, + 0.021649, -0.491812, -0.598415, -0.696667, 0.154391, 0.417183, 0.168655, 0.578651, -0.365102, + -0.360652, 0.978999, -0.758218, -0.921406, 0.973129, 0.61973, -0.167266, 0.305757, -0.314692, + -0.138539, 0.138633, -0.343541, 0.070251, -0.375669, -0.827645, 0.466218, -0.73369, -0.977016, + 0.197869, 0.731623, 0.347142, -0.707575, 0.60227, -0.289539, -0.123552, 0.595348, 0.392983, + -0.35253, 0.607584, -0.266472, -0.268953, 0.689685, -0.226187, -0.019995, 0.93553, 0.961883, + 0.2355, 0.752106, -0.141065, -0.460166, 0.935344, 0.524776, 0.683686, -0.484155, 0.523446, + 0.818557, 0.095664, 0.666534, -0.907357, 0.395485, -0.246973, 0.908658, 0.360957, 0.990203, + -0.347617, 0.091966, 0.711833, -0.723197, -0.348788, -0.800193, -0.750775, 0.442925, -0.302016, + 0.653944, 0.092322, 0.352172, 0.106472, -0.937157, -0.150777, -0.549165, -0.396143, 0.804628, + -0.773805, -0.730162, -0.320688, -0.443797, 0.246831, 0.641657, 0.156934, 0.017611, 0.480324, + 0.59717, 0.035164, -0.675273, -0.866508, 0.997924, 0.325243, 0.915514, -0.383813, 0.274951, + -0.526598, -0.526457, -0.457593, 0.999434, 0.729075, -0.615401, -0.70544, 0.329846, -0.235801, + 0.047824, 0.127678, -0.875614, 0.220874, -0.008738, -0.699876, -0.988927, 0.510604, -0.914422, + -0.450489, 0.607825, -0.66634, -0.473586, -0.630103, 0.588654, 0.309384, 0.103211, 0.352104, + 0.286095, -0.211282, -0.092163, -0.625936, -0.469711, 0.015434, -0.12136, 0.251739, 0.474641, + 0.767101, 0.958209, -0.076001, 0.394303, -0.809912, 0.578733, -0.26738, -0.79349, -0.778618, + -0.833704, -0.461882, 0.45662, -0.815636, -0.118029, -0.15541, 0.367843, -0.407661, 0.506614, + -0.618424, 0.587577, -0.996438, -0.681053, 0.350752, 0.153453, 0.700462, 0.520849, -0.833261, + 0.786499, -0.259506, -0.188861, -0.425706, -0.173395, -0.933621, 0.077315, 0.7535, -0.199869, + 0.768933, -0.451926, 0.403935, 0.098866, -0.388114, 0.974874, 0.082197, 0.044527, -0.108025, + -0.054178, 0.806154, -0.152195, 0.60052, 0.362682, 0.652205, -0.757899, -0.876272, -0.328348, + -0.279148, 0.952832, 0.985358, -0.238443, -0.479145, -0.004225, 0.382728, 0.341778, 0.188762, + 0.734428, 0.1063, 0.809151, 0.243595, -0.088896, 0.832553, 0.032513, 0.039904, -0.193261, + 0.587355, -0.296525, 0.780143, 0.53389, -0.016037, -0.16394, 0.391842, -0.976496, -0.330752, + -0.353475, -0.122502, -0.478543, -0.431925, 0.475547, -0.105995, -0.693086, -0.072238, 0.322886, + -0.40514, 0.850813, -0.694167, 0.870704, 0.38492, -0.57478, -0.946702, 0.390084, -0.18646, + 0.296295, 0.426994, -0.677964, 0.117538, -0.213134, -0.900418, 0.176429, 0.213723, -0.764982, + 0.940588, 0.524388, 0.568506, -0.871346, -0.864049, 0.431974, 0.577498, -0.857611, 0.96029, + -0.220372, -0.810706, -0.733654, -0.232006, 0.526271, -0.689688, 0.736787, 0.999325, 0.940049, + 0.455184, -0.408504, -0.380154, 0.71802, -0.208843, 0.153017, 0.999536, -0.994052, -0.228352, + -0.395342, -0.161871, 0.041191, -0.216614, 0.970741, 0.405543, -0.628292, 0.968976, -0.277556, + 0.143997, 0.093348, -0.735015, 0.508765, -0.607535, -0.890911, 0.839405, 0.598785, -0.418578, + -0.715773, 0.903051, 0.353602, -0.663785, -0.830919, -0.413732, -0.555741, 0.07089, 0.095735, + -0.978528, 0.501744, 0.509437, -0.906182, 0.804016, -0.398202, 0.514713, 0.980805, 0.592329, + 0.671452, 0.035188, 0.146477, -0.850652, -0.725498, 0.805484, -0.913913, 0.430671, -0.589204, + 0.866922, 0.737803, -0.225983, -0.127883, -0.693704, 0.932703, -0.602681, 0.356951, 0.700753, + -0.962876, -0.983552, -0.701832, -0.150116, 0.621673, -0.30434, -0.412991, 0.665442, 0.802009, + 0.526977, 0.864144, -0.90168, -0.8918, 0.166148, -0.839018, -0.279148, 0.608713, 0.971678, + -0.200975, -0.881936, -0.493436, 0.97184, -0.185194, -0.930016, -0.529474, -0.623732, -0.261024, + -0.724014, -0.338466, 0.916783, -0.473575, -0.214859, 0.561455, -0.934475, -0.525186, -0.084966, + 0.786361, 0.139087, -0.004944, -0.331822, 0.463106, -0.429826, -0.156465, -0.43098, 0.373768, + 0.997429, -0.754498, -0.070459, -0.070872, -0.5007, -0.712901, -0.426559, -0.781518, 0.759339, + -0.708847, 0.61003, 0.826972, -0.183762, 0.930439, 0.722602, -0.69732, 0.570878, 0.257101, + 0.786854, -0.758471, 0.778345, 0.141899, 0.488839, -0.555156, 0.658502, -0.071912, 0.824627, + 0.085363, 0.620755, -0.631919, -0.886247, 0.347312, 0.529739, 0.276773, 0.314172, 0.658684, + -0.514523, 0.535241, 0.479381, -0.42446, -0.594867, -0.993082, 0.735391, -0.015417, 0.22866, + -0.707752, -0.75186, 0.820634, 0.704557, 0.540813, 0.799671, 0.805288, 0.590693, 0.722322, + -0.128463, 0.260454, -0.859495, -0.358432, -0.093429, -0.048754, 0.986265, 0.815934, 0.314895, + 0.932458, -0.50982, 0.194427, -0.793239, -0.850646, 0.534654, 0.321075, -0.053823, -0.64704, + 0.720888, -0.076715, 0.682698, -0.690907, 0.768504, -0.047233, -0.312496, -0.082551, -0.771271, + -0.182845, 0.058593, -0.740375, 0.540023, 0.944661, 0.51557, -0.491226, -0.621439, -0.792506, + -0.61648, 0.596905, 0.460889, -0.374007, 0.01638, -0.157517, 0.014445, -0.99444, 0.845093, + -0.350958, -0.86142, -0.018092, 0.298907, 0.457982, -0.505098, -0.073026, -0.74906, -0.753857, + -0.660204, -0.62809, 0.62797, -0.902018, -0.207597, -0.414602, 0.657672, -0.06462, -0.550317, + 0.812029, -0.758262, -0.378648, -0.912446, -0.079854, 0.284653, 0.873816, -0.725026, -0.667424, + 0.999335, 0.175962, -0.677666, 0.431194, 0.963232, 0.036801, -0.458562, -0.534623, -0.359708, + 0.509774, -0.707702, 0.909589, -0.618785, 0.280407, 0.994795, -0.442098, -0.668527, -0.518393, + -0.419355, -0.614077, -0.985364, -0.513935, -0.347652, 0.866376, -0.170656, 0.116523, -0.313813, + 0.155877, 0.476388, 0.17473, -0.123079, 0.084211, 0.943624, -0.666056, 0.98104, -0.222107, + 0.713044, 0.774484, 0.034785, 0.022516, 0.693178, -0.138933, 0.275187, 0.956794, -0.197972, + -0.352221, 0.775488, 0.898427, 0.958944, -0.943516, 0.658502, 0.492217, -0.638097, 0.653121, + -0.53706, 0.528934, 0.085493, 0.315252, -0.614791, -0.193347, -0.543632, 0.544045, -0.794384, + 0.07002, 0.386328, -0.023268, -0.300871, 0.228109, 0.078993, -0.551291, -0.271537, -0.21872, + -0.563589, 0.024751, -0.310654, -0.56533, -0.810194, -0.652072, -0.217708, 0.799826, -0.117657, + -0.536933, -0.762627, 0.170512, 0.85031, -0.901161, 0.771121, 0.893245, 0.226244, 0.498892, + 0.296945, -0.874252, -0.398876, -0.234106, -0.596328, -0.031437, 0.210979, 0.034199, 0.545522, + -0.589314, 0.841166, -0.406691, 0.801827, 0.907069, -0.816965, -0.958305, 0.742092, 0.761267, + -0.10706, 0.20737, 0.147422, -0.305334, 0.526178, 0.337414, -0.964693, -0.27586, -0.593922, + 0.429265, -0.998458, -0.859402, -0.881482, -0.343479, -0.77119, -0.199332, -0.569063, 0.642885, + 0.877389, 0.386846, -0.388005, 0.408003, -0.858663, -0.500167, -0.209635, -0.934971, 0.937732, + 0.655284, 0.463259, 0.469991, 0.984081, -0.380226, 0.239877, -0.33627, -0.169757, -0.819803, + 0.597929, -0.720321, -0.446917, 0.891465, -0.586881, 0.128542, -0.917776, -0.580722, 0.907271, + 0.537812, 0.042372, -0.498566, 0.762654, 0.941266, 0.200398, -0.644654, 0.03445, 0.48717, + 0.292028, 0.899864, 0.900551, 0.506522, -0.695505, -0.054057, 0.193648, -0.333552, 0.299118, + 0.652705, -0.540282, -0.304843, -0.760663, 0.155333, 0.598588, 0.904465, 0.052433, 0.65119, + -0.965757, -0.021734, -0.188662, -0.460506, 0.925742, 0.624435, -0.833351, -0.908113, -0.46847, + 0.339453, 0.47443, 0.517665, 0.773036, -0.640038, 0.0843, -0.445642, -0.485108, 0.009673, + -0.088012, -0.810211, -0.014544, 0.48086, 0.89684, -0.270248, 0.676235, -0.22367, -0.735601, + 0.864946, -0.236359, -0.23235, -0.169186, 0.901319, -0.42707, -0.265549, 0.05825, -0.654728, + 0.389974, 0.841925, 0.361556, -0.240478, -0.191336, -0.980084, -0.788305, -0.274139, 0.554346, + 0.930145, -0.070077, -0.095946, 0.684195, -0.209716, -0.682202, 0.566274, -0.432369, -0.712163, + 0.008609, -0.66532, -0.77991, -0.551224, -0.086765, 0.33284, -0.414337, -0.956364, -0.340368, + 0.930143, -0.230932, -0.730065, -0.374295, 0.900603, 0.15949, -0.140185, 0.978313, 0.103122, + 0.152127, 0.985557, -0.102656, -0.17615, 0.800137, 0.317007, -0.701521, 0.640092, -0.419169, + -0.852339, 0.883842, -0.738699, -0.425772, -0.159408, -0.005896, -0.1144, 0.74404, 0.748214, + -0.889742, -0.927789, -0.978621, 0.832208, -0.121286, -0.494989, -0.659727, 0.130698, 0.286109, + 0.57378, 0.807139, 0.889111, -0.66667, -0.052856, -0.635808, -0.360814, 0.028768, 0.560756, + -0.448909, -0.563784, -0.264932, 0.41339, 0.027803, 0.749351, -0.900117, 0.36346, 0.757361, + 0.62991, -0.870194, -0.667462, 0.014791, 0.00474, 0.595717, 0.815598, -0.065881, -0.293827, + 0.545202, -0.648313, -0.456205, 0.123048, -0.168287, 0.604467, -0.19828, 0.106229, 0.284049, + -0.085499, -0.321537, 0.622645, 0.557284, -0.152668, -0.64026, -0.327882, 0.691769, 0.585241, + -0.326108, 0.546687, -0.117823, -0.058585, -0.470338, 0.029237, -0.208982, 0.252565, -0.951091, + -0.059752, -0.781941, -0.929179, -0.991474, -0.160728, 0.186852, 0.104428, 0.23541, -0.42951, + -0.662309, -0.216361, -0.750591, -0.124712, 0.209907, 0.139523, -0.908331, 0.949635, 0.861418, + -0.447941, -0.851761, 0.146014, 0.225616, -0.267366, -0.459392, 0.075447, -0.608602, -0.524015, + 0.319904, 0.113084, 0.403496, 0.8457, -0.009735, 0.34033, 0.713904, -0.625998, 0.666149, + 0.685416, -0.381903, 0.78161, -0.458467, -0.477208, 0.716995, 0.463889, -0.072051, -0.789929, + 0.570406, 0.245528, -0.596978, -0.037183, 0.722461, 0.422256, -0.459799, -0.010702, -0.353449, + 0.660055, 0.469316, -0.14808, -0.11721, -0.728373, -0.221309, 0.490242, -0.959078, 0.12763, + 0.951461, 0.430427, 0.496737, -0.270651, -0.084339, -0.853895, -0.483946, 0.251259, 0.341363, + 0.589621, -0.563376, 0.287178, -0.552232, -0.737371, -0.38348, -0.680099, 0.189629, 0.157474, + 0.641782, 0.522215, 0.194947, 0.385858, 0.306392, -0.945617, -0.462095, -0.816418, -0.579816, + 0.200375, 0.942996, 0.69238, -0.407149, 0.23239, 0.688221, 0.208364, -0.817805, 0.122609, + 0.407261, 0.163718, 0.913396, 0.834524, -0.558766, 0.760292, -0.894972, -0.567711, 0.405463, + 0.030344, 0.86359, 0.59498, -0.213032, 0.956286, -0.717664, 0.186364, 0.31915, 0.781711, + 0.978404, 0.487638, -0.445651, 0.804078, 0.68845, -0.01971, 0.71789, 0.159308, -0.086958, + 0.30895, 0.002795, -0.281813, 0.145168, -0.006663, -0.687044, -0.732771, 0.328594, -0.389407, + 0.024457, 0.883102, 0.737738, 0.555575, 0.532503, 0.677126, -0.670619, 0.930539, -0.737372, + -0.648009, -0.40964, 0.977363, 0.559777, 0.280277, 0.579768, -0.955067, -0.953784, 0.31156, + -0.273431, 0.478554, -0.709723, 0.946799, -0.872369, 0.509658, 0.526831, -0.536273, 0.883672, + 0.521073, -0.45656, -0.452403, 0.76529, -0.246315, 0.065751, 0.458368, 0.466583, -0.500735, + 0.752773, 0.303263, 0.321965, -0.464662, 0.450801, -0.12416, 0.709137, 0.512756, 0.723386, + -0.13578, 0.649931, 0.769305, 0.221886, -0.063075, -0.653474, -0.516134, 0.576002, -0.612983, + -0.491775, 0.510035, -0.508221, -0.773496, 0.222239, 0.431589, -0.906479, 0.127847, -0.771167, + 0.421905, 0.547054, 0.336493, 0.976549, -0.194084, -0.39779, 0.270556, 0.300144, -0.446887, + -0.658252, -0.304466, 0.414797, 0.422567, -0.44284, 0.845789, -0.743237, -0.116058, 0.244214, + -0.720306, 0.910136, -0.491497, 0.592168, 0.040275, -0.561427, 0.934783, -0.111289, 0.177998, + 0.940575, -0.94171, 0.804613, -0.493486, -0.811638, 0.556198, -0.305971, -0.798123, -0.490274, + 0.646412, 0.438205, -0.0491, 0.513553, 0.19864, -0.74874, 0.192075, 0.712062, -0.093712, + -0.114271, 0.981981, -0.285905, 0.932141, 0.875571, 0.808471, 0.265664, 0.274493, 0.257276, + -0.91662, -0.395681, -0.559961, -0.147226, -0.500168, -0.322052, -0.680871, -0.727155, 0.323234, + 0.976129, -0.40557, -0.660831, -0.336226, -0.377637, -0.973874, 0.878299, 0.679231, 0.741537, + -0.516786, -0.661225, 0.958542, -0.604973, -0.840197, -0.832982, 0.304374, -0.133453, -0.610124, + 0.851519, -0.554376, 0.065132, 0.498356, 0.478527, 0.837032, -0.123891, 0.515479, -0.079358, + 0.132107, -0.587287, 0.618929, 0.227568, 0.200453, -0.076632, 0.404696, -0.965886, 0.817188, + 0.784505, 0.535782, -0.036471, -0.933108, -0.2709, -0.803393, -0.479111, 0.786461, -0.115377, + 0.996263, -0.504094, -0.465742, -0.801467, 0.380872, 0.370128, 0.504974, 0.864901, 0.601236, + -0.917088, 0.028698, 0.87233, 0.697877, 0.387017, -0.469552, -0.843752, 0.963879, -0.3275, + 0.341832, -0.270289, -0.337684, 0.356079, 0.925117, -0.237519, 0.433183, 0.402606, -0.159743, + 0.19898, 0.332258, 0.892783, -0.37749, 0.76917, -0.064566, 0.394436, -0.810772, 0.672091, + 0.842803, 0.232926, 0.030693, 0.26097, -0.789811, -0.862004, 0.744829, -0.897979, -0.223986, + -0.612465, -0.933468, -0.424383, -0.008071, -0.802458, -0.766579, -0.806528, -0.036134, -0.266329, + 0.734895, -0.957281, -0.873473, -0.304817, 0.999959, 0.910831, -0.129301, -0.272573, 0.138247, + 0.042017, 0.094, -0.432195, -0.048642, 0.192386, 0.597566, -0.630839, -0.20343, 0.502112, + 0.658241, 0.541695, -0.242538, 0.228034, -0.342291, 0.849308, 0.568063, -0.902403, 0.485736, + 0.981668, 0.267413, -0.793195, 0.643246, 0.053538, -0.268308, 0.436433, 0.776407, 0.453801, + -0.788466, 0.417349, -0.617079, -0.934034, -0.495981, 0.526037, 0.768802, 0.295222, 0.614655, + -0.95416, -0.486944, -0.570573, -0.849597, -0.624446, -0.714016, -0.835651, 0.14591, -0.466105, + 0.041295, -0.160114, 0.068712, -0.90831, -0.820191, -0.904156, 0.695932, 0.033122, -0.851141, + -0.384877, -0.010307, -0.661811, 0.809049, 0.717614, 0.240351, -0.172202, 0.581631, 0.261835, + 0.085124, 0.123319, -0.870391, 0.283152, 0.365112, 0.616955, 0.474235, 0.851131, -0.531591, + 0.082044, -0.736431, 0.858514, -0.046681, -0.864174, 0.648233, 0.11793, -0.288243, 0.894635, + -0.526683, -0.496143, -0.343296, 0.114545, -0.777093, 0.216244, -0.967622, -0.538996, -0.584947, + -0.726597, 0.229108, 0.439318, -0.244514, -0.300418, 0.021183, -0.810542, -0.949158, -0.647709, + -0.724956, 0.141035, 0.807109, 0.713536, -0.615622, 0.556376, 0.877062, -0.211563, -0.326077, + -0.94472, -0.072056, -0.387417, 0.252344, -0.918131, -0.095763, 0.175879, -0.248765, -0.153696, + 0.949187, 0.435016, -0.744184, -0.45276, 0.461326, 0.435655, -0.842284, -0.683522, -0.41355, + -0.121756, 0.059784, 0.246514, -0.466255, -0.558378, 0.560037, -0.780173, -0.176383, -0.896902, + -0.760769, 0.373673, -0.048966, 0.839116, 0.990785, -0.828978, -0.534093, 0.227369, -0.125859, + -0.91592, -0.595395, -0.536341, 0.103973, 0.424867, 0.61348, 0.845649, -0.528185, 0.756891, + -0.573387, -0.859071, -0.43075, 0.458607, 0.165764, -0.86959, 0.269112, -0.038728, 0.726461, + -0.565084, -0.829407, -0.06309, -0.400882, -0.170052, -0.267763, 0.975336, -0.131064, -0.967496, + -0.588322, -0.03161, 0.564141, 0.24189, -0.986644, 0.145947, 0.713942, -0.320717, 0.465137, + 0.831172, 0.84049, 0.165761, -0.959406, -0.854954, 0.74042, -0.322003, 0.856975, 0.642231, + -0.896867, 0.451643, -0.830945, -0.724948, 0.703936, 0.900439, 0.484039, 0.464436, 0.116769, + 0.646677, -0.937678, 0.490586, 0.118151, -0.30041, -0.583105, 0.374813, -0.21796, 0.108588, + -0.206964, -0.029378, -0.357604, -0.9506, 0.239196, -0.144653, -0.298486, 0.652239, -0.469624, + -0.135589, -0.913016, -0.373209, 0.711453, 0.053499, 0.552602, 0.836845, 0.257672, 0.734523, + 0.239264, 0.594984, -0.863217, 0.74018, 0.333967, 0.154361, -0.980833, 0.56455, 0.539231, + -0.752591, 0.859572, 0.927076, -0.094188, -0.317875, -0.060266, -0.843296, -0.891499, -0.13865, + -0.344207, 0.886904, 0.587557, -0.278057, -0.985492, 0.308684, -0.084446, -0.530121, 0.888205, + 0.625735, -0.383104, 0.851149, -0.873085, -0.829168, 0.466261, 0.607813, -0.208801, -0.190667, + -0.970326, 0.333889, -0.028967, -0.750743, -0.768649, 0.564911, -0.837481, 0.217358, 0.912176, + -0.293657, 0.565015, 0.442315, -0.225331, -0.616331, -0.598024, -0.977293, 0.144791, 0.230702, + -0.259303, 0.535771, -0.069474, 0.306055, 0.972143, 0.935937, 0.799387, -0.413993, 0.021381, + -0.301566, 0.288217, 0.587789, 0.16605, -0.32159, 0.16892, -0.739774, -0.874635, -0.172503, + -0.092113, -0.209472, 0.451313, 0.31497, 0.239983, 0.248219, -0.056645, 0.186343, -0.684362, + -0.637931, 0.117414, 0.626735, 0.042371, 0.909144, 0.807746, -0.998195, -0.460654, 0.347757, + -0.04795, 0.335606, -0.549067, 0.534523, -0.575416, 0.068507, -0.798161, -0.287927, 0.638534, + 0.51702, -0.721396, 0.572837, -0.14697, -0.768169, 0.906532, 0.339754, 0.105392, 0.31767, + 0.442761, -0.901741, 0.570983, 0.730203, 0.123091, -0.284228, 0.140857, 0.068388, 0.169165, + -0.621196, 0.631789, 0.061235, 0.058521, -0.369709, 0.867, -0.716782, -0.338315, -0.674477, + 0.750229, -0.401172, 0.016771, -0.069152, 0.753969, -0.846721, -0.514799, -0.972138, -0.217027, + -0.861935, -0.020917, 0.38498, 0.098271, 0.09664, -0.208333, -0.71765, -0.153665, 0.813921, + 0.188386, 0.179454, -0.299327, 0.671808, 0.6648, 0.21428, 0.707167, 0.077015, 0.019228, + 0.274345, -0.961705, 0.638418, -0.520907, -0.435353, -0.059943, -0.751862, -0.643708, 0.809177, + -0.163486, 0.366827, 0.19969, 0.980163, -0.468684, -0.511969, 0.957582, -0.666189, -0.984398, + -0.175681, 0.56543, 0.446414, -0.670731, -0.774395, 0.321147, -0.655043, 0.554432, -0.226502, + -0.404868, -0.179709, 0.814047, -0.601427, -0.767898, 0.404965, 0.421365, -0.191987, 0.602119, + -0.241126, -0.419274, -0.76047, -0.500094, -0.555872, 0.265941, -0.183476, 0.721635, -0.484824, + 0.582289, 0.811231, -0.227984, -0.558858, 0.497898, -0.951893, 0.661857, 0.767557, -0.058348, + -0.619807, 0.127189, 0.723678, 0.133877, 0.187058, 0.435865, 0.565578, 0.218187, -0.545013, + 0.02793, -0.426476, 0.503197, -0.514225, 0.874073, 0.420833, -0.998951, -0.418878, -0.150326, + -0.324221, -0.03342, -0.535051, 0.702943, 0.45565, -0.094745, -0.436378, -0.764304, -0.576336, + -0.552053, 0.9397, -0.001062, -0.570487, -0.077157, -0.0392, 0.24312, 0.325637, 0.627166, + -0.498062, -0.216116, -0.858225, -0.359575, -0.879206, -0.086686, -0.604483, -0.342343, 0.935703, + 0.905351, 0.130144, 0.508855, 0.646115, 0.043979, 0.199164, -0.06723, -0.797632, 0.796552, + -0.740914, -0.29904, -0.832382, -0.59244, 0.99556, -0.092273, 0.313079, 0.241955, 0.781229, + 0.209315, 0.035347, -0.458927, 0.183442, 0.217192, -0.688719, -0.723249, -0.432383, 0.860319, + 0.397288, 0.559826, 0.66648, -0.009975, -0.667722, 0.958162, 0.164733, -0.359722, 0.402456, + -0.70215, 0.035247, 0.928599, 0.329668, -0.937301, 0.871943, 0.213351, -0.267258, 0.786598, + 0.44415, 0.584215, 0.489152, -0.560077, -0.722522, 0.718166, -0.061782, 0.81208, 0.496861, + -0.964005, 0.546545, 0.498687, -0.962747, 0.059087, -0.79898, 0.489707, 0.532288, 0.304395, + 0.625942, -0.554867, -0.034884, -0.270941, 0.764309, 0.713828, -0.352807, -0.848575, -0.034861, + 0.781619, -0.21578, 0.368047, -0.726908, -0.664865, -0.858255, -0.860158, -0.406478, -0.426472, + 0.386171, 0.824161, 0.122863, 0.403086, -0.639042, -0.433172, -0.934227, 0.936382, 0.10673, + -0.274015, -0.913715, 0.187409, -0.981304, 0.672154, -0.93805, 0.214058, 0.62051, -0.807963, + 0.734446, 0.960038, 0.698784, 0.908041, -0.467898, -0.175435, 0.897277, 0.473724, -0.67877, + 0.984951, -0.169022, -0.325294, 0.137891, 0.962188, -0.503915, 0.087817, -0.117604, -0.299546, + 0.461195, 0.060175, -0.820418, -0.02469, 0.631773, -0.474162, 0.888445, -0.82387, 0.338664, + 0.620108, 0.350655, 0.394985, 0.147066, -0.210655, 0.716651, -0.221691, 0.840312, 0.956606, + -0.86581, 0.813169, 0.248838, -0.682056, -0.555878, -0.137945, 0.934701, 0.610551, -0.265945, + -0.596997, -0.647196, -0.505267, -0.022681, -0.868138, -0.892533, -0.627966, 0.275582, 0.354982, + 0.294895, 0.831512, 0.242067, -0.388322, 0.396969, -0.466605, 0.889456, -0.38383, -0.624561, + -0.191797, -0.557695, -0.100431, -0.167125, 0.117172, -0.132336, -0.696695, -0.936821, -0.722962, + -0.930526, -0.997213, 0.970447, 0.585543, 0.453407, 0.643899, 0.303946, -0.330343, -0.124194, + -0.411039, 0.45107, 0.257371, -0.839944, 0.155402, -0.76984, 0.751942, 0.108641, -0.015433, + -0.591254, 0.15406, 0.127241, 0.256728, -0.700354, -0.422298, -0.69683, -0.62512, -0.548037, + -0.806581, 0.982482, -0.946348, -0.261847, 0.042396, -0.402702, -0.277379, 0.468037, -0.229785, + -0.11818, 0.88241, -0.358992, -0.044244, 0.636179, -0.234501, -0.797684, 0.770051, -0.861819, + -0.985608, -0.513496, 0.132652, 0.810242, -0.780659, -0.497761, 0.903333, 0.780697, 0.378711, + -0.846602, 0.549567, -0.063551, -0.76861, 0.783382, -0.68395, 0.162972, -0.544851, 0.847773, + 0.031133, -0.2421, 0.562507, 0.91, -0.077858, 0.678435, -0.359172, -0.540154, -0.540862, + -0.959948, 0.884613, 0.247643, -0.705912, -0.867075, 0.627444, 0.047656, -0.683504, -0.09979, + -0.363555, 0.130287, -0.413389, -0.467883, -0.586092, -0.412866, 0.016046, 0.486601, 0.213022, + 0.637774, -0.312392, -0.344924, -0.601012, -0.862083, -0.61356, -0.208142, 0.941682, -0.974653, + 0.748141, 0.513338, 0.497765, 0.53124, 0.53713, 0.864778, 0.370354, -0.208032, 0.380496, + -0.074529, -0.48415, 0.366268, 0.999798, 0.750125, -0.431148, -0.088592, 0.382951, 0.554785, + -0.870645, 0.136091, -0.118074, 0.95954, 0.284235, -0.448833, -0.31865, 0.815752, -0.295889, + 0.185881, 0.874743, -0.883808, -0.081928, -0.901685, -0.303765, 0.366827, 0.00056, 0.4958, + -0.680568, 0.445543, -0.43493, 0.648311, -0.259682, 0.818352, 0.080379, 0.342111, -0.757078, + 0.146405, 0.737851, -0.763206, 0.73983, 0.37274, -0.425642, -0.65227, 0.614233, -0.304322, + 0.486909, 0.122123, 0.933872, -0.688452, -0.139958, 0.437793, -0.491374, -0.274729, -0.219015, + 0.980879, 0.43943, -0.927411, 0.27929, 0.845005, 0.503836, 0.908357, -0.19798, 0.099329, + 0.977203, 0.921795, -0.293778, 0.210649, 0.040629, 0.882489, -0.439137, -0.123545, 0.366011, + -0.155369, -0.470619, 0.851476, -0.370995, 0.614377, -0.225173, -0.986283, -0.69129, 0.256362, + 0.716187, -0.140572, 0.651287, 0.183684, 0.425234, 0.990191, 0.682205, 0.774673, -0.63542, + -0.737638, 0.792822, 0.922288, 0.508136, 0.396771, -0.231371, 0.350276, -0.481694, -0.042284, + 0.935752, -0.629998, -0.840424, -0.077896, 0.521594, -0.930036, 0.636528, 0.044575, 0.119643, + 0.61921, 0.505603, -0.056721, -0.951404, 0.864888, -0.323756, -0.555463, 0.33445, 0.672113, + 0.142395, -0.569013, -0.908155, 0.435346, 0.350044, 0.594399, 0.996407, -0.544724, 0.310621, + 0.992042, -0.031221, -0.371286, -0.780629, 0.016023, -0.505054, -0.680796, -0.950813, 0.412672, + -0.144249, 0.43114, 0.535375, -0.993795, -0.362542, 0.891149, -0.172315, 0.673698, -0.864547, + 0.914008, 0.422315, -0.702235, 0.234833, 0.637237, 0.538784, 0.194149, -0.388506, -0.31303, + -0.72584, 0.982929, 0.190788, 0.216694, -0.577612, -0.780852, -0.117537, 0.516279, 0.754325, + -0.098042, 0.420012, -0.17608, -0.296888, 0.999353, 0.243532, 0.981697, -0.980941, 0.079307, + -0.34242, 0.774465, 0.501257, 0.166825, 0.622701, -0.593457, -0.262196, 0.507528, -0.581403, + 0.240439, 0.325346, -0.831385, -0.587735, -0.740109, -0.914625, -0.354816, 0.314338, 0.371362, + 0.566741, 0.125348, -0.640068, -0.942878, 0.871382, 0.177798, 0.76723, -0.937854, -0.543838, + -0.02637, 0.827465, -0.820137, -0.531878, -0.75864, 0.508682, 0.07724, -0.379784, 0.666867, + -0.743425, -0.098765, -0.457247, -0.223369, 0.01032, -0.022611, 0.990643, -0.882682, -0.418803, + -0.076174, -0.418479, 0.928909, 0.514608, 0.756414, 0.734406, -0.053441, 0.658911, -0.084336, + 0.718358, 0.145649, 0.398217, 0.412041, -0.379591, 0.854913, 0.814974, -0.241675, -0.296016, + -0.887297, 0.526084, -0.766498, -0.923817, 0.822881, 0.221613, 0.870895, -0.836535, -0.563316, + -0.266838, 0.618207, -0.75918, -0.861637, -0.294479, -0.518801, 0.968979, 0.510135, -0.674985, + -0.431023, -0.036807, -0.625822, -0.755588, 0.89612, -0.665039, 0.577565, -0.287877, -0.759657, + -0.453089, -0.458201, -0.679183, -0.612563, -0.04542, -0.52655, 0.813255, -0.955375, -0.162915, + 0.658307, -0.66002, -0.228436, -0.815405, -0.96473, 0.473759, 0.255448, 0.097328, 0.790786, + -0.022875, -0.83441, -0.972953, 0.145009, -0.592551, 0.931244, -0.125112, 0.860168, -0.161371, + -0.462799, -0.990635, 0.953605, -0.864298, 0.707093, -0.388272, -0.738114, -0.343796, 0.484147, + 0.763141, -0.836396, -0.74565, 0.339515, 0.477347, -0.642191, 0.416237, -0.140055, -0.872562, + 0.560128, -0.837605, -0.056624, -0.216193, -0.459621, -0.161696, -0.892579, 0.885206, -0.747961, + 0.617264, 0.03459, -0.044618, -0.072802, -0.426714, -0.181206, 0.71965, -0.474965, 0.456148, + -0.806797, -0.494452, 0.691519, 0.365883, -0.908141, -0.700381, 0.647205, -0.068556, 0.929062, + -0.986286, 0.265249, -0.988979, 0.416192, -0.338671, -0.106082}; + const std::vector wanted_output{ + 0.314443, 0.416901, -0.21337, -0.41047, 0.007887, 0.294174, 0.184123, -0.482004, 0.023907, + 0.525353, -0.01557, 0.29655, 0.142946, -0.512976, -0.237064, -0.058082, 0.26216, 0.139714, + -0.279078, -0.562594, 0.506392, -0.440408, -0.641223, 0.741095, 0.30487, 0.490416, -0.56722, + 0.548836, 0.03293, 0.374254, -0.022024, 0.373638, 0.277886, 0.306901, -0.352926, -0.461533, + 0.012798, 0.252289, 0.134936, -0.39842, -0.144722, 0.465683, -0.14875, 0.196755, 0.041931, + -0.474929, -0.201135, -0.194267, 0.216407, 0.056081, -0.310672, -0.467442, 0.476762, -0.34248, + -0.609344, 0.651963, 0.330433, 0.46247, -0.598805, 0.584775, -0.04316, 0.332565, 0.021451, + 0.28063, 0.302925, 0.344381, -0.280386, -0.452555, 0.040556, 0.314829, 0.136346, -0.430356, + -0.052299, 0.517149, -0.085181, 0.218461, 0.085848, -0.483201, -0.205586, -0.144739, 0.210659, + 0.084434, -0.280146, -0.509658, 0.469456, -0.356774, -0.630089, 0.674879, 0.350779, 0.460406, + -0.585318, 0.565082, -0.044336, 0.368239, 0.044063, 0.338547, 0.186427, 0.588597, 0.226693, + -0.2621, -0.148065, 0.321904, 0.341481, -0.565699, 0.020863, 0.557244, 0.115605, 0.47991, + 0.190099, -0.359881, -0.117345, -0.068507, -0.127527, 0.009977, -0.415571, -0.218313, 0.341181, + -0.251828, -0.499437, 0.369371, 0.064075, 0.279053, -0.296662, 0.199751, -0.205825, 0.51172, + -0.044238, 0.506162, 0.288273, 0.611207, -0.113502, -0.175033, -0.401274, 0.109062, 0.314736, + -0.466203, -0.145486, 0.222421, 0.090687, 0.339152, 0.210843, -0.047684, 0.00677, -0.138747, + -0.281937, -0.258873, -0.248556, 0.180133, 0.274095, 0.102871, -0.165212, 0.297986, -0.093078, + 0.202434, -0.424324, -0.098861, -0.094003, 0.177205, 0.104105, 0.063787, 0.063092, 0.298117, + 0.181864, -0.318625, -0.362985, 0.369505, 0.159148, -0.564635, 0.102725, 0.46733, 0.261648, + 0.352706, 0.008142, -0.116247, -0.028545, -0.345622, -0.22112, -0.304229, -0.117086, 0.03925, + 0.305031, 0.311473, -0.048726, 0.224223, 0.201208, 0.152032, -0.251757, -0.14012, -0.102416, + 0.083272, 0.359261, 0.175063, 0.290583, 0.519328, 0.196491, -0.171548, -0.536889, 0.074533, + -0.18275, -0.285844, 0.292507, 0.103202, 0.144831, -0.111281, 0.131354, 0.047133, -0.055913, + 0.022596, 0.040757, -0.266038, -0.075114, -0.200562, -0.143154, 0.142731, 0.447392, 0.139987, + -0.221518, 0.197432, -0.00824, -0.14925, 0.090669, -0.008943, 0.198903, -0.192806, 0.216119, + 0.427596, 0.1397, -0.094594, -0.540199, 0.082321, -0.073785, -0.27418, 0.277781, 0.059226, + 0.192815, -0.135051, 0.10038, 0.061948, -0.049598, -0.04643, -0.016432, -0.367487, -0.129924, + -0.007116, -0.046055, 0.14909, 0.464353, 0.117735, -0.21819, 0.128592, -0.051161, -0.20135, + 0.052126, -0.0845, 0.197613, -0.159099, 0.215586, 0.327145, 0.165823, -0.088013, -0.463833, + 0.047223, -0.31245, -0.168622, 0.354221, 0.000724, 0.116486, -0.378168, 0.044048, -0.000652, + -0.042244, -0.053688, 0.233548, -0.268171, -0.195012, -0.274239, -0.170414, 0.07858, 0.545532, + 0.08418, -0.182854, 0.173164, 0.028253, -0.036876, 0.029883, -0.136559, 0.191268, -0.238041, + 0.233257, 0.355366, 0.245516, -0.169603, -0.457608, 0.001895, -0.456545, -0.082738, 0.339464, + 0.059979, 0.005107, -0.414934, 0.021517, -0.021969, -0.057329, -0.016934, 0.329588, -0.185897, + -0.163424, -0.458656, -0.308856, 0.080432, 0.597651, 0.057684, -0.221914, 0.225674, 0.144082, + 0.024569, 0.042806, -0.0888, 0.14595, -0.264486, 0.270285, 0.418619, 0.183306, -0.072214, + -0.34392, 0.036135, -0.319, 0.038413, 0.324709, 0.002962, -0.003645, -0.57969, 0.037902, + 0.018656, -0.065045, 0.044747, 0.227857, -0.27784, -0.30199, -0.288956, -0.326556, -0.157555, + 0.536251, 0.011717, -0.308089, 0.099359, 0.079655, 0.100262, -0.102524, 0.063555, 0.012568, + -0.11934, 0.24375, 0.498342, 0.285441, -0.215771, -0.305473, -0.009364, -0.62981, -0.113136, + 0.369419, -0.171861, 0.103021, -0.637897, -0.071179, 0.295339, 0.150445, 0.045718, 0.297192, + -0.324747, -0.207021, -0.364227, -0.44844, -0.041103, 0.595173, 0.058052, -0.177063, -0.028645, + -0.046538, 0.237526, -0.14932, -0.031198, 0.070049, -0.422885, -0.079621, 0.146705, 0.236234, + -0.239688, 0.151955, -0.009902, -0.376239, 0.123203, 0.148241, 0.339832, -0.120137, -0.678095, + 0.051106, 0.30582, -0.062287, -0.085357, 0.404745, -0.425372, -0.012218, -0.095661, -0.441914, + -0.223829, 0.563025, 0.230117, -0.12135, -0.051099, 0.018664, 0.226722, -0.080501, 0.08954, + -0.077057, 0.027466, -0.08875, -0.229493, 0.271907, -0.267849, 0.318892, 0.00165, -0.017449, + 0.134869, 0.067416, 0.36125, -0.209063, -0.576189, 0.17411, 0.352524, -0.215297, -0.053848, + 0.370696, -0.582115, -0.012577, 0.19004, -0.298283, -0.227194, 0.313208, 0.059834, 0.053568, + 0.074888, -0.254791, -0.006413, -0.032483, 0.330832, -0.319055, 0.330094, 0.105467, -0.143046, + 0.325427, -0.273301, 0.016114, -0.195073, -0.045985, 0.049362, -0.096901, 0.018024, -0.316245, + -0.307407, 0.08815, -0.024467, -0.243012, 0.104414, 0.194525, -0.059144, 0.195909, 0.166174, + -0.327732, -0.226051, 0.008142, 0.192559, 0.021296, 0.21181, -0.231241, 0.089446, 0.047919, + -0.059485, 0.173568, 0.05232, -0.009732, -0.321827, 0.351304, -0.310289, 0.295599, -0.094294, + -0.031819, -0.226955, -0.115655, 0.056344, -0.262585, -0.42798, 0.157359, 0.055179, -0.253747, + -0.102814, 0.267394, -0.152116, 0.103946, 0.286225, -0.246972, -0.316176, 0.019198, 0.144468, + 0.176367, 0.150333, -0.235783, 0.213601, 0.005576, -0.031653, 0.109857, 0.094583, 0.0451, + -0.201265, 0.455451, -0.131812, -0.007672, -0.191513, 0.079737, 0.031465, -0.243546, -0.156382, + -0.237261, -0.235503, 0.147416, -0.224104, -0.147225, -0.060628, 0.023419, -0.090113, 0.056864, + 0.390865, -0.23087, -0.319483, -0.255191, 0.095705, 0.054994, 0.096169, -0.338281, -0.092445, + 0.159871, -0.056462, 0.14367, 0.268335, 0.240384, -0.156777, 0.478256, -0.124139, -0.007301, + -0.134321, 0.149499, 0.030375, -0.193588, -0.245384, -0.178587, -0.207444, 0.220491, -0.240038, + -0.01782, -0.085881, -0.066769, -0.116015, -0.065699, 0.590626, -0.080791, -0.173604, -0.394362, + 0.020421, 0.070931, 0.081512, -0.47382, -0.200655, 0.011571, -0.157761, -0.012296, 0.308292, + 0.17823, 0.052906, 0.555695, -0.200247, -0.095694, 0.022038, -0.145685, -0.062185, -0.131204, + -0.415593, -0.03449, -0.165283, -0.006867, -0.528209, 0.112092, -0.062182, -0.33598, -0.018284, + 0.164788, 0.512001, -0.070668, -0.268026, -0.424345, 0.227213, 0.005152, -0.093749, -0.275256, + -0.019097, 0.267339, -0.364653, 0.156478, 0.247338, -0.034514, 0.140073, 0.374841, -0.112953, + -0.410744, -0.098366, -0.191296, 0.055441, -0.332072, -0.342558, 0.033393, -0.041924, -0.143973, + -0.416577, 0.247524, 0.031906, -0.264809, -0.024603, 0.12928, 0.580546, -0.191393, -0.415517, + -0.335135, 0.27213, 0.07011, 0.07104, -0.314674, -0.233844, 0.442537, -0.207032, 0.42006, + 0.269019, 0.010308, 0.201049, 0.077336, -0.118833, -0.434616, -0.404443, -0.129257, 0.370511, + -0.54843, -0.246273, -0.149277, 0.169998, -0.196355, -0.251825, 0.192093, 0.286085, 0.115024, + 0.241083, -0.06053, 0.260756, -0.184218, -0.457677, -0.089303, 0.352714, 0.041115, 0.092195, + -0.150734, -0.314015, 0.149704, 0.028562, 0.54345, 0.046083, 0.259189, 0.090694, -0.087368, + -0.486525, -0.242814, -0.049686, -0.115741, 0.156964, -0.196421, 0.147048, 0.034886, 0.218723, + -0.220143, -0.257567, 0.068383, -0.020458, 0.374537, 0.453, 0.060224, 0.386526, -0.019236, + -0.141306, 0.09928, 0.454796, -0.083722, 0.368872, 0.080871, -0.132823, -0.233949, 0.089726, + 0.33524, -0.292028, 0.068412, 0.220542, -0.00565, -0.26851, -0.25019, -0.062536, 0.229031, + -0.082144, 0.028375, 0.030727, -0.275089, 0.142125, -0.354325, 0.030314, 0.08881, 0.23588, + 0.471457, 0.275091, -0.056053, 0.125798, 0.413272, 0.263988, 0.151247, 0.021064, -0.317187, + 0.148441, 0.147798, -0.229656, -0.054835, 0.004235, 0.377604, -0.039177, 0.040109, 0.144801, + -0.077591, -0.196192, -0.037153, -0.077006, 0.135174, -0.016505, -0.151775, -0.035221, -0.277948, + 0.242869, -0.322636, 0.081052, 0.057605, 0.270204, 0.384856, 0.342635, -0.072095, 0.049055, + 0.487567, 0.300408, 0.144331, 0.147544, -0.2958, 0.00884, 0.194326, -0.441803, 0.061035, + 0.066278, 0.332144, 0.032118, 0.069327, 0.07752, -0.121335, -0.350528, -0.033933, -0.071314, + 0.215869, 0.078203, -0.046906, -0.081008, -0.381272, 0.168387, -0.319204, -0.109856, 0.084561, + 0.157468, 0.417008, 0.353696, -0.191756, 0.016313, 0.504894, 0.299036, 0.130131, -0.024776, + -0.311851, -0.011568, 0.23216, -0.225407, -0.161078, 0.022642, 0.269061, 0.053959, 0.030766, + 0.040619, -0.068701, -0.294933, -0.213769, -0.207762, 0.413875, -0.067647, 0.273781, 0.033087, + -0.307871, -0.014471, -0.223542, -0.106758, -0.107305, 0.085378, 0.489542, 0.186237, 0.010713, + 0.030417, 0.471698, 0.341719, -0.007433, -0.121074, -0.188136, 0.167159, 0.17622, -0.308426, + -0.060018, 0.023369, 0.259373, 0.108844, -0.086114, 0.141441, 0.013859, -0.193008, -0.171858, + -0.339669, 0.466242, -0.093384, 0.111127, -0.038686, -0.450727, -0.00928, -0.228766, 0.090997, + -0.01276, 0.175882, 0.51163, 0.077101, -0.098931, -0.077359, 0.51927, 0.255215, -0.024247, + -0.154734, -0.160739, -0.061408, 0.156817, -0.374082, 0.05152, 0.019197, 0.355656, 0.238668, + 0.081848, 0.025832, -0.145821, -0.04204, -0.034048, -0.041921, 0.433355, 0.029642, 0.056852, + -0.089007, -0.577483, -0.119345, -0.308666, 0.294369, -0.228819, 0.186275, 0.279447, 0.046201, + -0.393274, 0.167599, 0.552038, 0.336378, 0.078291, -0.178742, -0.190889, 0.169379, -0.191545, + -0.443732, 0.009205, -0.318781, 0.348718, 0.354493, -0.001659, 0.322769, -0.010447, 0.035279, + -0.10534, -0.08085, 0.437515, 0.076457, 0.025282, -0.042834, -0.431899, 0.017912, 0.019053, + 0.373855, 0.037984, 0.18498, 0.417999, 0.18241, -0.135315, 0.053482, 0.551847, 0.171244, + 0.059667, -0.277283, 0.178839, 0.178535, 0.144638, -0.629259, -0.156362, -0.07321, 0.23719, + 0.064738, 0.080167, 0.088344, 0.091384, -0.286687, 0.133499, 0.147082, 0.338885, 0.40454, + 0.104251, 0.01681, -0.480628, 0.050675, -0.181876, 0.416764, -0.034346, 0.156641, 0.007029, + -0.300619, -0.453368, 0.181431, 0.265674, -0.260497, 0.19651, -0.327095, 0.615225, 0.275469, + -0.044375, -0.348489, -0.455217, -0.02498, -0.090258, 0.151156, -0.186738, -0.116818, 0.179499, + -0.091941, 0.007325, -0.037371, 0.26399, -0.105753, -0.140539, 0.190794, -0.369271, 0.195219, + -0.084258, 0.160694, -0.161451, 0.233613, 0.165725, -0.238117, -0.099119, -0.037257, 0.225263, + 0.254081, 0.027379, -0.008934, -0.001424, -0.022892, -0.009224, -0.289666, -0.135292, -0.132199, + 0.118117, -0.185857, -0.184676, -0.326747, 0.051095, -0.205814, 0.293344, 0.105472, 0.174396, + 0.066432, -0.263015, 0.14198, -0.301491, 0.194817, -0.169123, 0.059221, -0.118619, 0.071929, + 0.000371, -0.199165, -0.057842, 0.068762, 0.125399, 0.111726, 0.030813, -0.274782, 0.238581, + 0.063441, -0.047049, -0.0655, -0.417471, -0.099555, -0.060758, -0.127259, -0.270836, -0.423885, + 0.107026, -0.163794, 0.144094, 0.059689, 0.176956, -0.088013, -0.31217, 0.132658, -0.241205, + 0.187274, -0.00534, -0.000238, -0.014107, -0.017355, 0.015267, -0.011115, -0.112177, -0.108796, + 0.026919, 0.333203, 0.005555, -0.100613, 0.01584, -0.05086, 0.097103, -0.166046, -0.45454, + -0.154698, 0.033916, -0.323582, -0.085777, -0.593374, 0.031349, -0.325215, 0.165509, -0.111584, + 0.083084, -0.06468, -0.159452, 0.200436, -0.425151, 0.020393, -0.255659, -0.068311, -0.233967, + 0.198126, -0.045097, -0.376808, -0.090352, -0.191193, 0.146241, 0.335396, 0.041723, -0.271277, + 0.066692, -0.003783, -0.20257, 0.16427, -0.320103, -0.046439, 0.141733, -0.189974, -0.277789, + -0.548001, -0.12888, -0.168474, 0.233667, -0.088331, 0.049694, -0.301771, -0.221927, 0.171607, + -0.391005, 0.118715, -0.14948, -0.303972, -0.330886, 0.209888, 0.169272, -0.356944, 0.126058, + -0.014317, 0.188785, 0.435453, -0.108399, -0.127819, -0.211585, 0.022732, -0.082874, 0.030123, + -0.118489, -0.183801, 0.020271, -0.144469, -0.285815, -0.139072, -0.397259, -0.019041, -0.08902, + 0.007893, 0.175301, -0.256958, -0.212849, 0.19216, -0.272384, 0.460847, -0.224097, -0.239639, + -0.354551, 0.078182, 0.206808, 0.017506, 0.345476, -0.127412, 0.041366, 0.227192, -0.225594, + -0.313128, 0.123236, 0.255714, -0.202242, -0.049581, -0.48072, 0.091935, 0.175115, -0.201908, + -0.31579, -0.026022, -0.399888, 0.17249, 0.009276, 0.061495, 0.394863, -0.249997, -0.23397, + 0.18713, 0.116132, 0.52377, -0.171081, -0.292824, -0.233383, 0.186188, 0.108548, 0.044776, + 0.280659, -0.072487, -0.05407, -0.054169, -0.350454, -0.061675, 0.504896, 0.24282, -0.455632, + -0.078769, -0.490827, -0.250265, -0.255283, -0.166229, -0.322495, 0.064649, -0.12217, 0.074747, + 0.085697, -0.174088, 0.274734, -0.128308, -0.209461, 0.166945, 0.394893, 0.359251, -0.131194, + -0.233964, -0.124734, 0.076797, -0.013516, 0.184896, 0.175582, -0.043962, -0.217016, -0.168793, + -0.269347, 0.08891, 0.216146, 0.179454, -0.402555, -0.09285, -0.48978, -0.354525, -0.292613, + -0.177877, 0.160137, -0.163864, -0.058367, 0.007953, -0.173413, 0.325478, 0.001319, -0.144849, + 0.101791, 0.005161, 0.152427, -0.062929, -0.044842, -0.242359, 0.084722, -0.194866, -0.283369, + 0.315174, -0.048457, -0.288294, -0.212283, -0.174999, -0.392935, 0.305666, 0.14775, -0.03178, + -0.15154, -0.250422, -0.398409, -0.164474, 0.170204, -0.403173, 0.260173, -0.072149, -0.025272, + -0.001342, -0.076925, 0.30029, -0.082595, -0.04164, 0.24609, 0.111146, 0.156958, -0.187903, + -0.068102, -0.254207, 0.008792, -0.182859, -0.299063, 0.257513, -0.057314, -0.20692, -0.130291, + -0.235599, -0.36692, 0.169538, 0.086652, -0.013809, -0.184845, -0.185395, -0.225749, -0.13187, + 0.320927, -0.340802, 0.291079, -0.33866, -0.085011, 0.056753, 0.021624, 0.449454, -0.107868, + -0.149225, 0.235933, 0.143846, 0.26247, -0.29329, 0.014637, -0.36014, 0.07938, -0.132484, + -0.325049, 0.139696, -0.053193, -0.268147, -0.151157, -0.220416, -0.403664, 0.362617, 0.117127, + -0.059511, -0.042556, -0.150258, -0.157057, -0.38017, 0.217173, -0.35422, 0.183142, -0.184955, + 0.06597, 0.063338, -0.152707, 0.357583, 0.041906, -0.15863, 0.412814, 0.394091, 0.179625, + -0.268283, -0.007848, -0.350921, -0.161576, -0.266369, -0.366063, 0.268533, -0.32965, -0.046235, + -0.17372, -0.084254, -0.251913, 0.259244, -0.264778, -0.038368, 0.003317, -0.176504, -0.160955, + -0.25609, 0.452401, -0.462435, 0.250338, -0.193031, -0.060451, 0.02631, -0.294899, 0.563258, + -0.009542, -0.083019, 0.372904, 0.325386, 0.129296, -0.32164, -0.175966, -0.474113, -0.143378, + -0.195065, -0.30313, 0.09114, -0.439958, -0.27355, -0.313759, 0.052463, -0.568368, 0.239851, + -0.139089, -0.198223, -0.048882, -0.296337, -0.242173, -0.116467, 0.435838, -0.583258, 0.263072, + -0.053336, -0.156554, 0.011969, -0.206854, 0.426848, 0.071224, -0.131903, 0.57978, 0.292594, + 0.087152, -0.208589, -0.254313, -0.232445, -0.071594, -0.111156, -0.391055, 0.201127, -0.552362, + -0.228008, -0.353271, 0.124476, -0.390746, 0.181996, -0.114897, -0.108571, -0.117949, -0.217877, + -0.217773, -0.123547, 0.536836, -0.468506, 0.025874, -0.017738, -0.014753, 0.270174, -0.685193, + 0.277959, -0.045113, 0.109705, 0.326693, 0.221746, -0.232228, -0.280978, 0.363743, -0.237883, + 0.052093, -0.224679, -0.245947, -0.04008, -0.211573, 0.244488, 0.049044, -0.213147, -0.187631, + 0.449287, -0.340857, 0.310396, 0.148514, -0.226033, -0.460167, -0.044568, 0.602603, 0.003181, + 0.014705, -0.003363, -0.145898, 0.081574, -0.49948, 0.038602, 0.106078, 0.14773, 0.447853, + 0.262993, -0.420157, -0.011723, 0.518637, -0.015889, -0.017247, -0.112505, -0.126595, -0.113529, + -0.097671, -0.036144, -0.273251, 0.077591, 0.017291, 0.478101, -0.15702, 0.186883, 0.39833, + -0.21152, -0.108358, -0.274414, 0.698045, 0.235013, 0.146072, 0.020691, -0.05964, -0.060379, + -0.073614, -0.101261, 0.093512, 0.377522, 0.292754, -0.115593, -0.367245, 0.203967, 0.515586, + -0.152752, 0.070501, 0.093983, -0.27572, 0.163778, -0.01517, 0.06688, 0.033917, 0.076445, + -0.093351, -0.094327, 0.021231, 0.351903, 0.17434, 0.080538, 0.105993, -0.157984, 0.252933, + 0.171602, 0.157421, 0.115442, -0.048549, -0.229155, -0.003622, -0.317939, 0.039912, 0.377302, + 0.11656, -0.306743, -0.190084, 0.411022, 0.471325, -0.156334, 0.210413, 0.187728, -0.422886, + 0.2934, -0.081451, 0.097483, 0.102361, 0.180682, -0.01056, -0.288595, 0.162379, 0.426758, + 0.054844, 0.171581, 0.067014, 0.042089, -0.113836, 0.165916, 0.022874, 0.06043, 0.002669, + -0.244221, -0.047998, -0.174598, 0.245011, 0.320816, 0.103364, -0.089464, -0.20624, 0.369953, + 0.455575, -0.320594, 0.078854, 0.13172, -0.288624, 0.214005, -0.240723, 0.156791, 0.153473, + 0.233198, -0.139166, -0.302818, 0.0752, 0.347014, 0.16807, 0.192746, 0.063309, -0.017302, + -0.111236, 0.078617, 0.054007, 0.00218, 0.092107, -0.344907, 0.088, -0.197976, 0.251664, + 0.275342, 0.165551, -0.154396, -0.195029, 0.442474, 0.445992, -0.295363, 0.052875, 0.17524, + -0.355657, 0.279875, -0.207124, 0.078451, 0.104032, 0.273908, -0.136538, -0.427611, 0.05813, + 0.302255, 0.104436, 0.184431, 0.198601, 0.003061, -0.136857, 0.051476, 0.118173, -0.009611, + -0.061753, -0.324219, 0.197976, -0.284197, 0.092571, 0.226251, -0.053137, -0.432604, -0.253797, + 0.551026, 0.33768, -0.283223, 0.113132, 0.243768, -0.516555, 0.509854, -0.103251, 0.047894, + 0.265969, 0.135977, -0.007118, -0.354181, 0.206527, 0.434061, -0.095745, 0.388451, -0.014404, + 0.149841, -0.385692, -0.082409, 0.014803, -0.010269, -0.182674, -0.426782, 0.249844, -0.134042, + 0.160197, 0.141109, -0.112749, -0.328485, -0.371391, 0.63735, 0.22359, -0.223617, 0.092688, + 0.308802, -0.559245, 0.42961, -0.134363, -0.114712, 0.222957, 0.034389, -0.073344, -0.156063, + 0.391927, 0.360378, 0.010589, 0.434118, -0.114292, 0.237208, -0.386909, -0.059748, -0.001171, + -0.110667, -0.178023, -0.263407, -0.089172, 0.194775, 0.141835, 0.28874, -0.103707, -0.0893, + -0.211377, 0.516473, 0.141783, -0.59156, 0.148975, 0.314934, -0.413425, 0.265448, 0.004865, + 0.262627, 0.593381, -0.001, -0.230065, -0.156221, 0.088881, 0.310147, 0.272972, 0.565596, + 0.075126, 0.02768, -0.136736, -0.131113, 0.044072, 0.104505, -0.129946, 0.162429, -0.114575, + 0.276546, 0.222293, 0.475989, 0.177835, 0.189861, -0.080982, 0.372161, 0.139873, -0.690019, + -0.039094, 0.139677, -0.099416, 0.058054, 0.168654, 0.412105, 0.541123, -0.122434, -0.509856, + -0.173257, 0.224612, 0.079448, 0.42137, 0.378463, 0.259997, 0.085181, -0.248546, 0.262857, + 0.17531, -0.291073, -0.339364, 0.145882, -0.048411, 0.265993, 0.132684, 0.422522, 0.306832, + -0.037557, -0.44418, 0.106651, 0.02083, -0.239713, -0.207948, -0.09076, 0.322892, 0.132884, + 0.234243, 0.07255, 0.397964, -0.174245, -0.08406, -0.216204, 0.133647, -0.012559, 0.319161, + 0.162937, 0.203447, 0.216737, 0.199257, -0.033125, -0.016441, -0.287168, -0.339875, -0.048206, + -0.218494, 0.320872, 0.055274, 0.405744, 0.19218, 0.177576, -0.453197, 0.282507, -0.047648, + -0.243527, -0.107485, -0.102926, 0.232032, -0.056814, 0.185799, 0.08045, 0.44207, -0.080486, + -0.103016, -0.206049, 0.204072, -0.044004, 0.390144, 0.038584, 0.199401, 0.295317, 0.221798, + 0.119969, 0.188084, -0.298548, -0.289494, 0.134794, -0.178348, 0.25003, 0.166694, 0.312714, + 0.203079, 0.034263, -0.356958, 0.100518, -0.134292, -0.197029, -0.126675, -0.22143, 0.509142, + 0.117758, 0.138707, -0.034126, 0.252024, -0.147015, -0.072481, -0.289122, 0.263848, -0.126416, + 0.359115, 0.036379, 0.071373, 0.28337, 0.261685, -0.044396, 0.162381, -0.177867, -0.517204, + 0.216548, -0.160075, 0.146423, 0.063549, 0.538759, 0.168064, 0.18274, -0.339936, 0.12206, + -0.117417, -0.281161, -0.232252, -0.229405, 0.607966, -0.044678, 0.056766, -0.111515, 0.054057, + -0.043334, -0.130678, -0.116263, 0.521022, -0.213258, 0.170097, -0.156936, 0.139536, 0.428134, + 0.247735, -0.004149, 0.159534, -0.253591, -0.633091, -0.002884, -0.168339, 0.017914, 0.008715, + 0.648434, 0.179668, 0.247923, -0.471633, 0.096911, -0.053341, 0.057641, -0.323795, -0.282649, + 0.419121, 0.074786, 0.25773, -0.128239, 0.234222, -0.093932, 0.102967, -0.383439, 0.315454, + 0.062926, 0.439464, -0.103962, 0.043665, 0.109604, 0.365201, 0.048137, 0.028467, 0.07495, + -0.286006, 0.016999, -0.243197, -0.076169, 0.08074, 0.556119, 0.027302, 0.320324, -0.164392, + -0.221114, 0.029726, -0.079763, -0.117489, 0.035515, 0.519859, 0.270375, 0.044741, -0.169278, + 0.183851, -0.275804, 0.153101, -0.074075, 0.065207, -0.068789, 0.523882, 0.01307, 0.054188, + -0.064527, 0.088201, 0.146829, 0.212957, -0.342074, -0.384643, 0.011845, -0.170346, -0.350217, + -0.008579, 0.253439, 0.307143, 0.079292, -0.403409, -0.201747, -0.075622, -0.035051, -0.477197, + 0.239866, 0.339699, 0.084711, 0.402295, -0.088936, 0.323114, 0.051662, 0.411274, -0.133612, + 0.148764, 0.132204, 0.510514, 0.129026, -0.108652, -0.306389, -0.162128, 0.49019, -0.065478, + 0.056779, -0.223648, 0.220632, -0.011536, -0.143501, -0.300673, 0.208327, 0.389612, 0.138721, + -0.304328, -0.31495, -0.416035, 0.0678, -0.424458, 0.136114, 0.101744, -0.188677, 0.480917, + -0.062407, 0.16439, -0.0157, 0.447735, -0.002033, 0.409669, 0.255395, 0.340528, 0.019433, + -0.074476, -0.461223, -0.401645, 0.765192, -0.027838, 0.156024, 0.065996, 0.234726, -0.010958, + -0.274328, -0.108719, -0.269925, 0.209046, -0.058048, 0.197003, -0.378426, -0.109199, 0.094117, + -0.083229, 0.328145, 0.185091, 0.12268, -0.051966, -0.075118, 0.025606, 0.180133, 0.024549, + -0.155988, 0.117795, 0.012852, -0.015473, 0.09887, -0.125426, -0.019641, -0.268604, 0.31607, + 0.04045, 0.133411, 0.013728, 0.348893, -0.028283, -0.424211, -0.098604, -0.404615, 0.013821, + -0.207165, 0.408095, -0.385881, -0.106188, 0.067657, -0.132869, 0.469826, -0.001066, 0.07714, + -0.099068, -0.029509, 0.028206, 0.071902, 0.075824, -0.110501, 0.119094, -0.008236, -0.074096, + 0.116917, -0.016079, -0.046283, -0.198738, 0.416095, 0.076259, 0.092558, -0.069266, 0.259138, + -0.048642, -0.366345, -0.158828, -0.435884, 0.138906, -0.193973, 0.348436, -0.397615, -0.120753, + 0.193297, -0.075237, 0.406497, 0.045512, 0.039704, -0.045807, -0.039342, -0.040074, 0.185234, + -0.071171, -0.159248, 0.168624, 0.085489, -0.062553, 0.119756, -0.112485, 0.156855, -0.164288, + 0.356584, -0.073801, 0.394473, 0.059216, 0.477371, 0.059611, -0.069542, -0.295699, -0.337537, + 0.107518, -0.0679, 0.390861, -0.368507, -0.203112, 0.278179, 0.043742, 0.292884, 0.055591, + 0.044826, -0.111692, -0.052873, 0.126628, -0.045719, -0.029278, -0.122483, 0.06916, 0.160734, + -0.220691, 0.067828, -0.111971, 0.122282, -0.215674, 0.175258, -0.114999, 0.290147, 0.214572, + 0.357384, 0.063213, -0.366396, -0.165269, -0.397608, -0.080432, 0.015035, 0.628843, -0.260331, + 0.111606, 0.218915, 0.172762, 0.281433, 0.191489, 0.235909, -0.451196, -0.05982, 0.190556, + 0.132695, -0.203569, -0.448388, -0.068392, -0.190265, -0.227776, 0.037766, 0.011891, 0.203641, + -0.017252, 0.021219, -0.011468, 0.25681, 0.449634, 0.496271, -0.074454, -0.154961, 0.022533, + -0.328116, -0.239533, -0.397842, 0.562822, -0.333291, 0.253122, 0.123671, -0.120488, 0.335671, + -0.303255, 0.084488, -0.123298, 0.145072, 0.323317, 0.281865, -0.148136, -0.212707, -0.033214, + -0.06805, -0.21876, 0.21966, 0.112428, 0.099486, -0.145027, 0.242091, -0.015382, 0.306074, + 0.211593, 0.480601, 0.177795, -0.401006, -0.171818, -0.21748, -0.040972, -0.413564, 0.654238, + -0.347222, 0.234653, 0.285743, -0.216243, 0.299554, -0.19629, -0.01185, -0.079978, 0.229853, + 0.408022, 0.176085, -0.055571, -0.412747, 0.209746, -0.217938, -0.240644, 0.030398, 0.176808, + 0.110528, 0.055736, 0.022734, 0.280257, 0.118313, 0.086206, 0.168244, 0.132711, -0.29715, + -0.405181, -0.324383, 0.311627, -0.246984, 0.243752, -0.159866, -0.236296, 0.138221, -0.389464, + 0.192399, 0.100039, 0.177915, -0.068848, 0.197812, 0.03047, 0.352771, 0.062233, -0.539763, + 0.248496, -0.164074, -0.335057, -0.320176, -0.049564, 0.392019, -0.040733, 0.102214, 0.061498, + 0.025796, 0.41359, 0.053137, -0.009452, -0.159008, -0.023353, -0.143082, -0.428587, -0.363708, + 0.091196, 0.184619, -0.281808, -0.258663, 0.034219, -0.088706, 0.207677, -0.182863, 0.25965, + 0.321693, 0.071885, 0.005962, 0.066392, -0.157696, -0.144997, -0.375614, -0.042635, -0.074889, + 0.029911, -0.167641, 0.10536, -0.024086, -0.062142, 0.118579, 0.38139, 0.027777, 0.029165, + -0.052544, -0.124844, -0.211231, -0.35133, -0.36495, -0.134311, 0.043841, -0.328244, -0.187546, + 0.097015, -0.192329, 0.325532, -0.284518, 0.344186, 0.235998, 0.114752, 0.042463, 0.077643, + -0.184924, -0.210509, -0.274762, -0.142786, -0.094319, -0.196667, -0.07508, -0.001513, -0.061927, + -0.044859, -0.143803, 0.427584, -0.055263, -0.114093, 0.005499, -0.117143, -0.243091, -0.324956, + -0.244542, 0.002061, 0.189288, -0.461005, -0.331036, 0.256529, -0.17083, 0.446513, -0.375938, + 0.296523, 0.385796, -0.013195, 0.202819, 0.141633, -0.195171, -0.06289, -0.363518, -0.065517, + -0.197337, -0.045442, -0.046706, -0.068434, 0.045796, -0.066893, -0.207557, 0.515812, -0.043922, + -0.120622, -0.009509, -0.054243, -0.146734, -0.51901, -0.208485, 0.061997, 0.314893, -0.503897, + -0.482162, 0.386804, -0.294974, 0.41919, -0.324621, 0.21956, 0.352345, -0.110963, 0.116669, + 0.202185, -0.07712, -0.192759, -0.38661, 0.073317, -0.203968, 0.08083, -0.205775, -0.070268, + 0.140876, -0.320617, -0.025543, 0.432568, 0.044341, -0.039769, -0.025091, 0.082519, -0.387718, + -0.723556, -0.441164, -0.193226, 0.164553, -0.364646, -0.256107, 0.29785, -0.226897, 0.290581, + -0.471748, 0.460938, 0.224343, 0.043098, 0.025907, 0.163965, 0.000782, -0.415931, -0.39783, + -0.061345, 0.029011, -0.13787, -0.307978, 0.005286, -0.024894, -0.283454, 0.034913, 0.470875, + 0.001968, 0.064847, -0.029438, -0.003136, -0.118077, -0.44218, -0.092643, -0.106801, 0.264856, + -0.330052, -0.273947, 0.332079, -0.244413, 0.140194, -0.401294, 0.225706, 0.05174, -0.091053, + 0.011699, 0.300565, 0.044257, -0.459972, -0.569424, -0.061626, 0.003535, 0.013229, -0.13505, + 0.010467, 0.103692, -0.149994, -0.218423, 0.266006, -0.084744, -0.14586, 0.06899, 0.045759, + 0.289731, -0.093511, 0.087269, 0.15397, 0.336851, -0.415441, -0.433563, 0.255105, -0.029117, + -0.104707, -0.303835, 0.148691, 0.110414, -0.314192, 0.216859, 0.003901, 0.178666, -0.39247, + -0.716608, 0.084329, -0.066017, 0.316933, -0.127862, -0.123782, 0.370607, 0.152465, -0.01517, + -0.058711, -0.147968, 0.134105, 0.356321, 0.124729, 0.112441, -0.112585, -0.036946, 0.392009, + -0.054123, -0.218925, -0.581396, 0.417584, -0.081749, 0.378655, -0.349338, -0.118949, 0.107859, + -0.226236, -0.104686, 0.305297, -0.267922, -0.206635, -0.564716, -0.030267, -0.076025, 0.312354, + -0.024976, -0.245005, 0.587615, -0.034222, 0.270493, -0.124118, 0.269445, -0.050782, 0.007307, + 0.161587, -0.457712, 0.338435, 0.093726, -0.2868, 0.09855, 0.085912, -0.336996, 0.214965, + 0.064746, 0.142415, -0.1842, 0.108927, -0.002051, -0.118195, 0.100147, 0.209969, -0.314418, + -0.236166, -0.054671, -0.054116, -0.097461, -0.010478, -0.27055, -0.002162, 0.294385, 0.040661, + 0.364001, -0.204678, 0.147665, -0.008791, 0.095367, 0.028463, -0.248124, 0.432073, 0.234193, + -0.236238, 0.025029, 0.09003, -0.220361, 0.199944, -0.156762, -0.001708, -0.109385, 0.097123, + -0.061878, -0.176385, -0.052167, 0.343329, -0.20223, -0.32965, -0.166852, -0.085497, -0.130542, + -0.114568, -0.232364, -0.051041, 0.21348, 0.294933, 0.163584, -0.209664, 0.306689, 0.124188, + 0.089423, 0.012484, -0.570143, 0.115857, -0.172132, -0.286694, -0.157829, -0.012455, -0.370923, + -0.030156, -0.108087, 0.041852, -0.142293, 0.140562, -0.025766, 0.183582, 0.074891, 0.327392, + -0.258167, -0.211342, -0.075462, 0.072703, -0.183568, 0.14467, -0.427466, -0.020679, -0.015984, + 0.351259, 0.318022, -0.262941, 0.154177, 0.071089, 0.151747, -0.044153, -0.55478, 0.216039, + 0.005461, -0.369717, -0.078567, 0.19854, -0.145141, 0.083779, -0.289633, 0.204332, -0.082316, + 0.148196, 0.096929, -0.027006, -0.09597, 0.505481, -0.301429, -0.217172, -0.057456, 0.074443, + -0.146788, -0.182936, -0.454305, 0.13799, -0.014595, -0.091595, 0.41108, -0.294489, 0.497702, + 0.134897, 0.188655, -0.242706, -0.59676, 0.488384, -0.094511, -0.465982, 0.312896, 0.005105, + -0.199384, 0.181656, 0.060824, 0.040243, -0.039303, 0.371392, -0.027698, 0.266091, 0.219428, + 0.355722, -0.332015, 0.108213, -0.009343, -0.07926, -0.267873, -0.068524, -0.67633, 0.260685, + -0.15553, 0.208935, 0.154161, -0.185782, 0.400555, 0.421271, 0.107313, -0.153203, -0.496003, + 0.49145, -0.009914, -0.541448, -0.003636, -0.055238, -0.485531, -0.141835, 0.141742, 0.110493, + 0.279389, -0.002184, -0.034718, 0.091375, 0.391364, 0.050913, -0.270341, -0.076562, 0.254724, + 0.075751, -0.034854, 0.106989, -0.823273, 0.10347, -0.029846, 0.038829, 0.203779, -0.224557, + 0.433597, 0.464954, 0.294638, -0.077481, -0.394429, 0.547884, 0.079622, -0.414168, 0.157559, + 0.062898, -0.337882, -0.13797, 0.211896, 0.233966, 0.338179, 0.059845, 0.117838, -0.05663, + 0.402267, -0.020397, -0.30562, 0.124537, 0.200745, -0.044079, 0.073285, -0.183275, -0.71078, + 0.114255, 0.209252, 0.285115, -0.042148, -0.240248, 0.048708, 0.182159, 0.491135, -0.139347, + -0.121822, 0.390587, 0.333317, -0.461341, 0.036982, 0.053099, -0.145708, -0.111924, -0.266038, + 0.3365, 0.157039, 0.191965, 0.288957, -0.394164, 0.086354, -0.081746, -0.15818, -0.142155, + 0.182917, 0.027692, 0.058363, -0.374932, -0.460421, 0.024302, -0.023918, 0.183867, -0.241707, + -0.041489, -0.100393, 0.374483, 0.278983, 0.003628, -0.070795, 0.122565, 0.502737, -0.266374, + -0.027246, -0.337851, -0.006432, -0.343403, -0.164803, 0.305513, 0.073134, 0.2607, 0.11742, + -0.317363, -0.22964, -0.19541, 0.201551, -0.13154, 0.064396, -0.007271, 0.15708, -0.240481, + -0.493605, 0.000433, -0.046692, 0.241262, -0.369934, 0.152952, -0.000186, 0.427995, 0.396478, + 0.102235, 0.062299, -0.059776, 0.452236, 0.080701, -0.012036, -0.318607, 0.108366, -0.494904, + -0.112438, 0.349603, 0.04154, 0.360484, 0.276052, -0.137989, -0.232625, -0.15801, 0.177455, + 0.078718, -0.00498, -0.251809, 0.3031, -0.470661, -0.288427, -0.016476, -0.063569, -0.001512, + -0.098182, 0.091291, -0.162053, 0.318896, 0.293888, 0.145483, -0.128112, 0.146194, 0.307647, + -0.025794, -0.10254, -0.230049, 0.020451, -0.449101, -0.152049, 0.406314, -0.012961, 0.370215, + 0.250831, -0.13289, -0.35922, -0.074095, 0.465326, 0.104981, -0.30892, -0.203099, 0.169196, + -0.466678, -0.47288, 0.119305, -0.030026, 0.18075, -0.257441, 0.042327, -0.116534, 0.186923, + 0.284814, 0.06721, 0.038362, -0.056084, 0.547283, -0.146896, 0.040137, -0.380525, 0.279731, + -0.309826, -0.172552, 0.314225, -0.255054, 0.499108, 0.018989, -0.302391, -0.566442, -0.033941, + 0.238174, -0.164528, -0.141532, -0.152179, 0.193289, -0.388117, -0.411274, 0.143485, -0.208087, + 0.193971, -0.231257, 0.24981, -0.291859, 0.37385, 0.229607, 0.026695, -0.056755, 0.180685, + 0.374427, 0.143216, -0.075712, -0.265434, 0.182606, -0.604494, -0.162518, 0.393319, -0.083344, + 0.248268, 0.252069, -0.076312, -0.509688, 0.131887, 0.359954, 0.119464, -0.291033, -0.260321, + 0.164607, -0.497218, -0.622773, 0.320852, 0.007737, -0.078558, -0.534862, 0.008229, -0.204232, + 0.366034, -0.050416, -0.091043, -0.056276, 0.17001, 0.489557, -0.109089, 0.303587, -0.604888, + 0.39872, -0.217774, -0.216038, -0.047564, -0.180813, 0.185404, 0.044696, -0.374457, -0.290977, + 0.219327, 0.157407, 0.191322, -0.204868, 0.140644, -0.147778, -0.175959, -0.668345, 0.314279, + 0.013061, -0.306664, -0.483556, -0.290634, -0.185896, 0.23753, -0.278574, -0.52699, -0.067315, + 0.171731, 0.203807, -0.067003, 0.449346, -0.581048, 0.380613, 0.062547, -0.156231, -0.273155, + -0.180442, -0.014527, -0.109054, -0.548356, -0.150505, 0.204843, 0.421273, 0.078314, -0.009411, + 0.146554, -0.267918, -0.07026, -0.776684, 0.090758, 0.225544, -0.463317, 0.090771, 0.20108, + -0.550984, 0.513103, -0.012103, -0.362817, -0.585794, 0.408713, 0.049432, 0.271307, 0.50202, + -0.57702, 0.216513, -0.110048, 0.133839, -0.223209, -0.063963, -0.367842, 0.089385, -0.277377, + -0.362977, 0.174095, 0.273506, 0.337176, -0.022887, -0.131551, -0.152182, -0.062244, -0.467273, + 0.278044, 0.53446, -0.164755, -0.058991, 0.098067, -0.21078, 0.130507, 0.00022, -0.232322, + -0.369535, 0.210418, 0.247682, 0.248783, 0.449922, -0.57691, 0.261044, 0.112667, 0.395555, + -0.140003, -0.217047, -0.339846, -0.02603, -0.226226, -0.581867, 0.050315, -0.088196, 0.178351, + 0.321848, -0.11737, -0.24207, 0.020719, -0.071593, 0.250912, 0.239294, -0.335684, -0.045324, + -0.067494, -0.050516, 0.028025, -0.280054, -0.146386, -0.308723, 0.291152, 0.213088, 0.078164, + 0.439272, -0.582248, 0.245363, 0.325499, 0.566254, -0.203474, -0.398172, -0.3214, 0.025004, + -0.176355, -0.53006, 0.153345, -0.208277, 0.190506, 0.28088, 0.183448, -0.32396, 0.148304, + 0.028537, 0.149482, -0.039704, -0.268121, 0.293037, 0.03376, -0.052736, 0.062389, 0.167885, + -0.138823, -0.273491, 0.090121, 0.224137, 0.065649, 0.434719, -0.535833, 0.287292, 0.163672, + 0.622662, -0.221471, -0.208943, -0.204146, 0.065999, -0.052945, -0.575513, -0.034162, -0.026285, + 0.024469, 0.248258, -0.008082, 0.088991, 0.103016, 0.197758, 0.037274, 0.306525, -0.120504, + 0.135201, -0.079232, -0.065559, -0.010351, 0.174082, 0.014409, -0.060321, 0.275281, 0.30667, + 0.095744, 0.478487, -0.505106, 0.277719, 0.256754, 0.512268, -0.28708, -0.267759, -0.261463, + 0.100699, -0.152961, -0.623219, -0.005905, -0.20234, 0.149607, 0.319947, 0.109249, -0.010859, + 0.17425, 0.143113, 0.039685, 0.107832, -0.165178, -0.075261, -0.14478, 0.059891, -0.188189, + -0.045309, 0.113931, -0.110832, 0.154715, 0.348887, -0.052965, 0.3084, -0.640669, 0.25006, + 0.414564, 0.576016, -0.105077, -0.286122, -0.110664, -0.055842, -0.003395, -0.558602, 0.031273, + -0.257858, 0.206514, 0.295552, 0.197292, -0.27465, 0.149256, 0.171099, 0.242947, -0.016206, + -0.513981, -0.158676, -0.031242, 0.070182, -0.402516, 0.264389, 0.080516, -0.245113, -0.012236, + 0.266951, -0.219751, 0.218313, -0.710604, 0.185876, 0.374823, 0.523741, -0.18015, -0.206806, + 0.044019, -0.258279, 0.163771, -0.344396, -0.137778, -0.154761, 0.182373, 0.088486, 0.345005, + -0.300714, 0.226149, 0.073889, 0.319205, 0.205625, -0.253763, -0.098289, 0.183578, 0.464556, + -0.179982, 0.111178, -0.089913, -0.397413, -0.329258, 0.628547, -0.320834, 0.132222, -0.511412, + 0.183826, -0.192402, 0.565201, 0.185957, -0.280115, 0.063338, -0.066608, -0.165778, -0.363355, + -0.16701, -0.227321, -0.279538, 0.016237, 0.497849, -0.654533, 0.003482, 0.1196, -0.00351, + -0.203676, -0.375761, 0.060551, 0.069474, 0.536516, -0.269299, 0.467604, 0.281845, -0.066812, + -0.190219, 0.417509, -0.017713, 0.042684, -0.407705, 0.070356, 0.024384, 0.193743, 0.112387, + 0.235931, 0.122673, 0.040256, 0.193971, -0.061097, -0.258667, 0.087447, -0.144854, -0.367088, + -0.000989, -0.322948, -0.053005, 0.11183, 0.030116, 0.350005, 0.012862, 0.095513, 0.147315, + 0.312579, -0.236451, 0.021583, -0.180779, 0.13436, -0.021244, 0.108595, -0.122671, 0.060969, + -0.189486, 0.193081, -0.138602, 0.02327, 0.264093, 0.088222, -0.095004, -0.257435, 0.117669, + -0.263212, -0.005674, -0.283592, -0.236202, -0.001502, 0.074576, -0.225029, -0.193942, -0.014372, + -0.062861, -0.071403, -0.066385, 0.018303, 0.150026, 0.257142, -0.267374, 0.239937, 0.022026, + 0.213173, 0.035212, 0.097204, 0.066271, 0.118121, -0.141956, 0.202182, -0.213128, -0.113963, + 0.238803, 0.17926, -0.052859, -0.215554, 0.207999, -0.275072, -0.05769, -0.239693, -0.14527, + -0.135831, 0.134664, -0.211749, -0.12806, -0.136261, -0.175635, 0.02983, 0.113266, 0.043507, + -0.000835, 0.350196, -0.143081, 0.125968, 0.152156, 0.127934, 0.023515, 0.094789, 0.034962, + 0.223568, -0.129245, 0.064882, -0.207166, -0.097148, 0.379671, 0.264847, 0.069711, -0.113276, + 0.252828, -0.290022, 0.018385, -0.328297, -0.244838, -0.269496, 0.046409, -0.174845, -0.124135, + -0.145471, -0.095405, 0.015509, 0.104463, -0.031575, 0.126992, 0.156249, -0.438553, -0.018326, + 0.096489, 0.060819, 0.037063, -0.098696, -0.053824, 0.000643, -0.140828, 0.376697, -0.149205, + -0.098506, 0.259855, 0.38376, -0.076714, -0.368262, 0.395905, -0.382502, 0.020689, -0.35346, + -0.055466, -0.227015, 0.019998, -0.15487, 0.002544, -0.062218, 0.072117, -0.058345, 0.184131, + 0.189842, 0.014684, 0.471022, -0.089158, -0.221728, -0.272499, 0.225684, -0.001665, -0.042934, + -0.211818, 0.246127, -0.288279, -0.047886, 0.114962, -0.115606, 0.403354, -0.092683, -0.099878, + -0.504964, 0.167926, -0.25776, 0.196076, -0.616188, -0.452092, 0.198754, -0.142755, -0.013528, + -0.297279, 0.006432, 0.040132, -0.310232, -0.0085, -0.029728, -0.077472, -0.058141, -0.059969, + -0.09222, -0.209156, 0.186329, -0.215735, -0.391065, -0.142093, 0.17087, -0.085078, -0.008994, + -0.010217, 0.313236, 0.522648, 0.498296, -0.172756, -0.161009, 0.245691, -0.427923, 0.083043, + -0.577621, -0.062416, -0.283669, -0.265028, -0.016689, 0.067078, 0.077298, -0.050361, 0.043052, + 0.102897, 0.018807, -0.299722, 0.304152, -0.070852, -0.312633, -0.397158, 0.376151, -0.25331, + -0.149932, -0.26051, 0.248504, -0.158556, -0.199825, 0.139443, -0.093939, 0.541498, -0.095376, + -0.266567, -0.401072, 0.273948, -0.463584, -0.008982, -0.600304, -0.190281, -0.031104, -0.26966, + -0.026578, -0.024062, 0.001255, 0.053043, -0.051253, -0.215069, -0.045357, -0.245413, 0.169083, + -0.020681, -0.149433, -0.024113, 0.241019, -0.448117, -0.132254, -0.377489, 0.039669, -0.250233, + -0.0984, 0.071207, 0.116753, 0.446306, 0.001123, -0.332963, -0.362122, 0.344465, -0.424781, + 0.101027, -0.626028, -0.052714, -0.249912, -0.122644, -0.271689, 0.369625, 0.052266, 0.185216, + 0.013798, -0.14051, 0.107734, -0.001528, 0.195442, 0.248851, 0.100353, 0.144485, 0.1519, + -0.496994, -0.197912, -0.170522, 0.042315, -0.093134, -0.068049, 0.136796, -0.064208, 0.516857, + -0.0829, -0.231094, -0.273699, 0.222709, -0.113562, 0.260741, -0.276185, -0.00348, -0.052997, + -0.09552, -0.082459, 0.033718, 0.170014, -0.176452, 0.041013, -0.122922, 0.009583, 0.019517, + 0.154958, 0.236799, 0.175464, 0.013116, 0.403537, -0.384133, -0.193634, -0.023107, -0.081699, + -0.084117, -0.314543, 0.087638, 0.044632, 0.646053, -0.167771, -0.099977, -0.177292, -0.017731, + -0.085223, 0.348758, 0.09664, -0.081116, -0.044738, -0.25499, -0.034147, -0.205011, 0.169001, + -0.337847, 0.297498, -0.08965, 0.087438, 0.084348, 0.155762, 0.222224, 0.073567, 0.111155, + 0.251627, -0.405753, -0.186928, -0.2055, -0.13861, -0.004241, -0.175652, 0.083991, -0.146064, + 0.57249, -0.239025, -0.073265, -0.373178, 0.145611, 0.035177, 0.319004, 0.063636, -0.034644, + 0.003122, -0.194145, -0.070293, -0.234551, 0.13251, -0.284243, 0.146683, -0.177671, 0.187522, + 0.134959, 0.156354, 0.380855, 0.100504, 0.251153, 0.157169, -0.45501, -0.290268, -0.228415, + -0.051312, 0.033218, -0.094658, 0.147993, -0.191596, 0.552968, -0.176544, -0.080669, -0.361484, + 0.231019, 0.100992, 0.363375, 0.015906, -0.029043, 0.033203, -0.129762, -0.075034, -0.218079, + 0.163948, -0.339973, 0.034549, 0.106892, 0.252, 0.122209, 0.34614, 0.338498, 0.278624, + 0.025631, 0.326845, -0.291632, -0.153663, 0.029124, -0.142666, -0.088042, -0.372945, 0.069536, + -0.046272, 0.551586, -0.251365, -0.087863, -0.305722, -0.063784, 0.155538, 0.499547, 0.264971, + -0.117056, 0.058813, -0.36092, 0.058517, -0.557386, 0.405349, -0.519274, 0.217119, 0.04996, + 0.215776, -0.268933, 0.633222, 0.416735, 0.246091, -0.352465, 0.15052, -0.028051, 0.134322, + 0.504342, -0.174421, -0.138509, -0.186034, 0.025474, -0.074659, 0.515201, -0.330752, 0.155022, + 0.088623, -0.161967, -0.327711, 0.575313, 0.059343, -0.135809, 0.185002, -0.121386, 0.522387, + -0.369008, 0.099658, -0.273081, -0.0046, -0.076335, 0.339937, -0.011723, 0.403018, 0.390849, + 0.276328, -0.435612, -0.301622, -0.17519, 0.212574, 0.093666, 0.057887, -0.015673, -0.111344, + 0.321888, -0.249947, 0.340859, -0.15323, 0.016513, -0.076943, 0.274199, -0.257538, 0.405019, + -0.211707, 0.048013, 0.119964, -0.183042, 0.528193, -0.357001, 0.216637, -0.150945, -0.15226, + -0.337463, 0.185484, -0.222592, 0.417914, 0.40631, 0.070339, -0.207341, 0.010827, 0.049079, + 0.430239, 0.251577, -0.127077, -0.140058, 0.151079, 0.053453, -0.012065, 0.351478, 0.041307, + 0.318817, 0.196957, 0.073367, -0.328273, 0.39689, 0.338962, -0.092491, -0.029603, 0.085523, + 0.313678, -0.156553, -0.061227, 0.036706, 0.180676, -0.148754, -0.127672, 0.000516, 0.108567, + 0.158033, 0.183793, -0.220651, 0.206365, 0.436066, 0.458297, 0.014161, -0.164998, -0.147453, + -0.012062, -0.146229, 0.026469, -0.057845, 0.430332, 0.097879, -0.027429, 0.120127, -0.176863, + 0.215686, -0.051488, 0.010412, 0.025699, 0.236717, 0.14684, -0.007889, 0.069701, 0.156006, + 0.071079, -0.066344, -0.117159, 0.212741, 0.109671, 0.173699, 0.183387, -0.164355, 0.184068, + 0.43098, 0.447498, 0.107643, -0.049537, -0.027432, 0.056636, -0.149136, 0.11501, -0.135752, + 0.466518, 0.026537, -0.163104, 0.208229, -0.167506, 0.192325, -0.000489, 0.072706, -0.081681, + 0.293446, 0.065117, -0.003295, 0.055109, 0.246056, 0.116879, -0.249655, -0.008981, 0.226762, + -0.044167, 0.218188, -0.092628, -0.026634, 0.217886, 0.406539, 0.397701, -0.138144, 0.080619, + -0.147495, -0.021973, -0.125882, -0.036979, 0.009402, 0.336305, 0.047196, -0.00889, 0.20781, + -0.01534, 0.102185, 0.18469, 0.028236, -0.102767, 0.228255, -0.098096, 0.010368, 0.072226, + 0.079814, 0.337467, -0.149295, -0.225794, 0.192823, 0.033145, 0.163546, 0.008497, 0.163818, + 0.489856, 0.510228, 0.377915, 0.0247, -0.136326, -0.22951, 0.000793, -0.314455, -0.103932, + -0.05125, 0.424228, 0.117786, 0.017139, -0.045177, 0.104987, 0.054409, -0.103647, -0.214912, + 0.078832, 0.274801, -0.103856, 0.147109, -0.088167, 0.014098, 0.116379, -0.053651, -0.254666, + 0.462712, 0.00752, 0.035588, 0.129634, -0.161305, 0.488617, 0.616916, 0.342332, 0.062301, + 0.187867, -0.019687, -0.049746, -0.292382, -0.091821, -0.142503, 0.390302, 0.053925, -0.125082, + 0.083246, -0.116725, 0.236091, -0.190944, -0.175794, 0.212044, 0.399789, -0.147373, 0.040252, + -0.037923, 0.151332, 0.13608, -0.297765, -0.052951, 0.358215, -0.143914, 0.186197, 0.000727, + 0.124648, 0.212772, 0.472722, -0.050548, 0.170233, 0.024425, 0.063553, -0.152508, 0.015958, + -0.155008, -0.491544, 0.037791, 0.155702, 0.146521, -0.04169, -0.115337, 0.237493, -0.052845, + -0.08005, 0.163892, 0.028202, 0.048443, 0.254216, -0.177364, -0.325986, 0.094212, -0.529581, + -0.018067, 0.449853, -0.206288, 0.019235, -0.11341, 0.033796, 0.256297, 0.381752, 0.021783, + 0.149081, 0.176833, 0.16807, -0.178071, -0.14331, -0.256485, -0.338552, -0.000893, 0.374502, + 0.29633, 0.184734, -0.286963, 0.407965, -0.119846, -0.076839, 0.218439, -0.142788, -0.201888, + -0.001962, -0.254733, -0.229879, 0.114496, -0.482641, 0.096879, 0.417366, -0.297961, 0.236629, + -0.457485, 0.191236, -0.060069, 0.166384, 0.066567, 0.382711, 0.168213, 0.21309, -0.159183, + 0.026144, -0.144799, -0.438597, -0.150581, 0.350373, 0.077634, 0.356035, -0.124276, 0.208831, + 0.115307, 0.062036, 0.042244, -0.305446, -0.26458, 0.039507, -0.216092, -0.197821, 0.032098, + -0.2648, 0.236511, -0.040565, -0.049637, 0.039099, -0.133778, 0.043662, -0.200499, -0.071634, + -0.021553, 0.282158, 0.042556, 0.255954, -0.261707, 0.264108, -0.139488, -0.135456, -0.196963, + 0.037606, -0.154584, 0.364368, -0.137478, 0.156901, 0.343798, -0.296227, 0.167046, -0.283625, + -0.258496, 0.157989, -0.031835, -0.149585, 0.081503, -0.227333, 0.212824, -0.168162, -0.041586, + -0.01789, -0.073522, -0.013381, -0.213928, -0.222583, 0.009253, 0.207976, 0.076102, 0.203691, + -0.343572, 0.372946, -0.056898, -0.10347, -0.153781, -0.07016, -0.149041, 0.381373, -0.149625, + 0.11016, 0.436972, -0.225599, 0.243358, -0.197683, -0.201247, 0.105327, 0.134542, 0.045793, + 0.058387, -0.199943, 0.295358, -0.178924, -0.030124, 0.064733, -0.040168, -0.122944, -0.268284, + -0.252807, 0.04833, 0.262965, 0.16291, 0.059213, -0.3547, 0.292861, 0.089822, -0.02019, + -0.065375, -0.018889, -0.120006, 0.539878, -0.061332, 0.084726, 0.515736, -0.222206, 0.200655, + -0.192842, -0.09568, 0.05736, 0.249888, 0.310233, -0.046564, -0.056506, 0.308744, -0.442066, + -0.004899, 0.024035, 0.010186, -0.232274, -0.110172, -0.201063, -0.008947, 0.043835, -0.03387, + 0.190195, -0.274767, 0.499762, 0.107008, -0.058689, -0.17445, -0.321068, -0.315877, 0.441565, + -0.193004, 0.060454, 0.70634, -0.392089, 0.309987, -0.04715, -0.157338, 0.189958, 0.265659, + 0.181314, 0.126113, -0.052299, 0.503343, -0.536602, 0.075979, 0.031381, 0.174907, -0.428523, + -0.128008, -0.161231, -0.105013, 0.118661, 0.024531, 0.060604, -0.218773, 0.412754, 0.151416, + 0.109267, -0.019218, -0.191852, -0.202338, 0.539508, -0.265697, 0.109839, 0.708807, -0.397658, + 0.233443, -0.14064, -0.01968, 0.052715, 0.358861, 0.265827, 0.197014, 0.034387, 0.478926, + -0.517046, -0.16427, -0.266847, 0.159678, -0.18367, -0.169988, -0.210613, -0.063475, -0.096403, + -0.477523, 0.000702, 0.229432, 0.268649, -0.076499, -0.067252, -0.436722, -0.561368, -0.204407, + 0.486338, -0.369416, 0.124803, 0.387351, -0.21395, 0.226774, -0.06276, -0.27233, 0.233566, + 0.452599, -0.130266, 0.115076, 0.218604, 0.163602, -0.621562, -0.247196, -0.296758, 0.478122, + -0.484708, 0.365712, 0.044947, -0.339043, -0.096958, -0.327058, 0.159054, -0.015023, 0.309821, + 0.478482, -0.077469, -0.225406, -0.445655, -0.090905, 0.450425, -0.141247, -0.01373, 0.593638, + -0.102133, 0.177397, -0.056534, -0.425551, 0.010334, 0.300218, 0.057302, 0.084801, 0.156245, + 0.003397, -0.292132, 0.002698, -0.522373, 0.212612, -0.407296, 0.138843, 0.05115, -0.024305, + 0.090098, -0.360241, -0.003081, 0.489074, 0.192666, 0.296997, -0.236363, -0.198151, -0.189207, + 0.043615, 0.243487, -0.230993, -0.078505, 0.315129, 0.109176, 0.47944, 0.091843, -0.313336, + 0.323426, 0.369799, -0.11655, -0.14895, -0.016976, -0.327754, -0.206901, -0.011286, -0.139489, + -0.024169, -0.092647, -0.172227, -0.149514, 0.080033, 0.063623, -0.027518, -0.363439, -0.078769, + -0.018622, 0.234044, -0.281712, -0.059949, 0.505425, -0.0477, 0.102888, -0.279779, -0.280482, + 0.076565, 0.343904, -0.117254, -0.05284, 0.20249, -0.023517, 0.184733, -0.180094, 0.406363, + 0.024818, -0.046329, -0.044834, -0.06109, -0.187522, 0.128461, -0.014047, -0.168631, -0.330359, + 0.167919, 0.008256, -0.039121, -0.405096, 0.071842, -0.066471, 0.08556, -0.064809, -0.0548, + 0.54909, 0.004807, 0.062921, -0.368719, -0.284353, -0.130149, 0.385177, -0.119415, -0.129913, + 0.233596, 0.103566, 0.146447, -0.226817, 0.382691, -0.116049, -0.26509, -0.070926, -0.015917, + -0.14182, -0.040606, -0.126249, -0.113635, -0.28892, 0.183046, 0.196066, 0.09298, -0.436665, + -0.107769, 0.059443, 0.298631, -0.269445, 0.22526, 0.723075, 0.056881, 0.003359, -0.304961, + -0.391735, -0.088183, 0.266643, -0.105666, -0.121383, 0.272807, 0.096584, 0.074773, -0.149804, + 0.477944, -0.099933, -0.21611, -0.007949, 0.042902, -0.033126, -0.151319, 0.087079, -0.170674, + -0.3648, 0.366805, -0.001245, -0.057395, -0.392262, -0.199445, -0.04307, 0.057187, -0.201347, + 0.073039, 0.805669, -0.008859, 0.033609, -0.481675, -0.362189, -0.153815, 0.328621, -0.144312, + -0.050587, 0.475086, -0.015882, 0.06992, -0.214439, 0.506637, -0.059474, -0.208539, -0.132215, + 0.037315, 0.088783, -0.142065, 0.436863, -0.329426, -0.308611, 0.508716, 0.059097, 0.060779, + -0.610835, -0.216759, -0.151081, -0.26153, -0.234146, -0.15426, 0.790802, -0.040006, 0.021086, + -0.472879, -0.241828, -0.088757, 0.40798, -0.333455, -0.131369, 0.576194, -0.210294, 0.185135, + -0.179638, 0.632929, -0.127977, -0.138033, 0.166251, -0.074476, -0.081429, -0.014285, 0.387114, + -0.463626, -0.314197, 0.040245, -0.058442, 0.46667, -0.506077, -0.31643, -0.147819, -0.059553, + 0.075282, -0.498894, 0.326269, -0.457767, -0.086592, -0.624897, -0.202911, -0.167736, 0.558511, + -0.245571, -0.100773, 0.414581, 0.105931, -0.362963, -0.030401, 0.438821, -0.410057, 0.457501, + 0.376625, -0.074501, -0.022181, 0.449658, 0.23387, -0.145624, -0.150564, 0.181838, -0.231955, + 0.365702, -0.424294, -0.479132, 0.248782, -0.478958, 0.060894, -0.613732, -0.144211, 0.114894, + 0.219975, -0.267529, -0.338725, 0.080427, 0.571056, 0.115052, -0.117367, 0.11333, 0.192723, + 0.045346, 0.124734, 0.479428, -0.091507, 0.079329, 0.22457, 0.024347, -0.16844, 0.387318, + 0.275992, -0.307481, -0.304345, -0.133982, 0.132297, 0.508896, -0.103276, -0.267449, 0.432566, + -0.424125, 0.023922, -0.339118, -0.121952, 0.35784, 0.376313, -0.390857, -0.58568, -0.233605, + 0.433668, 0.064357, 0.079863, 0.26443, -0.010432, 0.000495, -0.096143, 0.190629, -0.145188, + 0.054801, 0.113208, -0.165936, -0.123217, 0.311777, 0.018893, -0.165746, -0.139557, -0.355347, + -0.04624, 0.011079, -0.013198, -0.287583, 0.317267, -0.388325, -0.116185, -0.324171, -0.156174, + 0.192021, 0.321223, -0.12338, -0.346512, -0.276463, 0.332047, 0.211557, 0.005621, 0.065904, + 0.116976, -0.064828, -0.005789, 0.066598, -0.001978, -0.105892, 0.149531, -0.041481, -0.011306, + 0.162222, -0.161541, -0.15456, -0.132816, -0.267617, -0.011521, -0.153367, -0.195371, -0.108063, + 0.302162, -0.400581, -0.142907, -0.385249, -0.01034, 0.118305, 0.247186, 0.114006, -0.174778, + -0.223237, 0.467691, 0.243719, -0.123259, -0.013008, 0.146862, -0.028856, 0.222553, -0.045462, + -0.060413, -0.153567, 0.055295, 0.005176, 0.058983, 0.127351, -0.332717, -0.071764, -0.14842, + -0.287234, 0.064203, -0.257987, -0.293875, -0.06573, 0.367452, -0.392765, -0.210248, -0.280315, + 0.153425, 0.257224, 0.327523, 0.25448, -0.137541, -0.142399, 0.381016, 0.084335, -0.160242, + 0.072264, 0.160643, -0.018001, 0.36429, 0.014445, 0.292467, -0.382491, -0.046315, 0.013462, + 0.000501, -0.063738, -0.023618, -0.283325, -0.091017, -0.419895, 0.0276, -0.24362, 0.107907, + 0.101927, 0.189751, -0.437005, -0.162183, -0.231089, 0.057987, 0.183679, 0.321353, -0.04797, + -0.244438, -0.457139, 0.399366, 0.344801, 0.024863, -0.02356, -0.14603, 0.103643, 0.053479, + -0.273103, 0.105214, -0.240628, -0.149232, -0.047843, 0.128759, -0.006482, -0.320154, -0.006996, + -0.050115, -0.338073, 0.175063, -0.471539, -0.19904, 0.037732, 0.188883, -0.321139, -0.223291, + -0.16062, 0.182178, 0.078399, 0.335471, 0.268275, -0.048894, -0.352845, 0.17321, 0.059957, + -0.129601, -0.080123, 0.160084, 0.018859, 0.244051, -0.047162, 0.090236, -0.339269, -0.14417, + 0.01297, 0.01779, -0.065765, 0.075655, -0.179613, 0.133131, 0.029657, -0.325848, -0.207912, + 0.121437, -0.061392, 0.21665, -0.325158, -0.302304, 0.06189, 0.446764, -0.044157, -0.133884, + 0.315382, 0.096417, -0.496466, 0.371795, 0.479376, 0.08616, -0.368593, -0.076338, -0.098036, + 0.429916, -0.055561, 0.072019, -0.177293, -0.304019, 0.044038, 0.191123, -0.242666, 0.078696, + 0.104339, 0.296771, 0.004834, -0.380299, -0.279899, 0.182557, -0.008577, -0.038769, -0.299994, + -0.073243, 0.025741, 0.382099, -0.060592, -0.04767, 0.042433, -0.016812, -0.519024, 0.237994, + 0.533048, 0.17308, -0.504613, -0.150391, 0.084626, 0.252579, -0.086451, 0.163232, -0.487722, + -0.127604, 0.26177, 0.363008, -0.36371, 0.154796, 0.038206, 0.164379, 0.072479, -0.186651, + -0.031602, -0.046379, 0.153239, 0.225231, -0.197878, 0.029621, -0.248202, 0.152427, -0.250228, + -0.292775, 0.326647, 0.061987, -0.424537, 0.526349, 0.474008, 0.069434, -0.368442, 0.136251, + 0.331102, 0.166111, -0.210178, 0.098799, 0.008796, -0.156575, 0.274954, 0.111699, -0.372234, + 0.410157, 0.032233, -0.136385, 0.249059, -0.233764, -0.198536, -0.184831, 0.039819, 0.195736, + -0.080987, 0.124617, 0.103709, 0.022717, 0.194328, 0.075934, 0.233813, 0.069286, -0.456464, + 0.120245, 0.256669, 0.26121, -0.038633, 0.406508, 0.122421, 0.030515, 0.037667, -0.082549, + -0.000729, -0.16958, 0.337787, 0.175258, -0.431896, 0.417567, 0.201891, -0.053436, 0.306177, + -0.237873, 0.016602, -0.166143, 0.046573, 0.291965, -0.175167, 0.114206, -0.036165, 0.001284, + 0.27834, 0.010874, 0.338766, 0.029586, -0.371379, 0.194437, 0.207146, 0.23443, 0.016617, + 0.471623, 0.152161, 0.161538, 0.144316, 0.097457, 0.044042, -0.117314, 0.227518, 0.165414, + -0.559626, 0.30165, 0.230468, -0.194949, 0.293374, -0.074817, -0.294373, -0.345211, 0.121066, + 0.084558, -0.020179, 0.327621, 0.057768, -0.066765, 0.276662, 0.160727, 0.147139, -0.08058, + -0.290075, 0.080896, 0.16457, 0.319127, 0.122198, 0.432281, 0.219868, -0.125866, -0.014522, + -0.072744, -0.173438, -0.059846, 0.460723, 0.072106, -0.478285, 0.367384, 0.071873, -0.319259, + 0.087434, 0.07829, -0.303697, -0.102461, 0.152068, 0.262107, -0.050335, 0.348152, 0.148885, + -0.222236, 0.281828, 0.270478, 0.382018, 0.029456, -0.402151, 0.147641, 0.025977, 0.28232, + 0.03876, 0.578977, 0.144843, 0.125013, 0.046793, 0.183575, 0.206359, 0.072121, 0.049694, + 0.200986, -0.585167, 0.407896, 0.116473, -0.339256, 0.551021, -0.111486, -0.257923, -0.330191, + 0.250747, -0.050215, -0.117202, 0.069496, 0.165967, -0.137338, 0.586813, 0.328239, 0.303352, + -0.123423, -0.263295, 0.049766, 0.320003, 0.196389, 0.156942, 0.33385, 0.184931, 0.285185, + 0.328949, -0.105497, 0.199172, -0.033632, 0.367675, -0.074814, -0.453651, 0.377841, -0.128074, + -0.233623, 0.207932, -0.195857, -0.103149, -0.046727, -0.088697, 0.197454, -0.327459, -0.0559, + 0.136098, -0.023967, 0.329533, 0.048398, 0.362179, -0.343877, -0.549866, 0.37055, 0.181983, + 0.084366, -0.345395, 0.415073, -0.345614, 0.248512, 0.597985, -0.174733, 0.473408, -0.08732, + 0.255138, -0.101661, -0.215547, 0.586451, -0.0845, -0.18737, 0.165666, -0.161385, 0.059663, + -0.058189, -0.397493, 0.230334, -0.16237, -0.058824, -0.051019, 0.252972, 0.299525, -0.022507, + 0.363369, -0.082171, -0.389367, 0.16844, 0.416554, 0.020637, -0.207327, 0.382967, -0.22007, + 0.489403, 0.595496, -0.040083, 0.433052, -0.1472, -0.086306, 0.205618, -0.409768, 0.1921, + -0.214686, -0.365398, -0.170143, -0.140498, -0.199071, -0.209657, -0.275095, 0.071229, -0.413568, + 0.215701, -0.359469, -0.173601, 0.211856, 0.244957, 0.508778, -0.204681, -0.374674, 0.373885, + 0.11001, 0.01199, -0.369484, 0.100805, -0.105668, 0.421671, 0.260156, -0.239303, 0.268529, + 0.017547, -0.013464, 0.116714, -0.429709, 0.018615, -0.002181, -0.177512, -0.505041, -0.107849, + -0.305009, 0.014564, -0.079757, -0.003143, 0.004811, -0.086728, -0.21932, -0.051048, 0.078974, + -0.052229, 0.249073, -0.160125, -0.255812, 0.129992, 0.001985, -0.140033, -0.297036, -0.112199, + -0.08702, 0.18635, 0.053684, -0.422774, 0.109616, -0.144852, -0.198113, 0.259343, -0.403889, + 0.10466, -0.018554, -0.12877, -0.587471, -0.13781, -0.38207, 0.108563, -0.166996, -0.135425, + -0.042809, 0.028934, -0.263201, 0.180362, 0.104318, -0.056, 0.145371, -0.000303, -0.11213, + 0.063212, 0.08145, -0.16104, -0.139677, -0.109427, 0.058278, 0.348172, 0.147975, -0.274882, + 0.28612, -0.06219, -0.193609, 0.22962, -0.304404, 0.051994, 0.083406, -0.189818, -0.614514, + -0.025362, -0.328399, 0.050135, -0.236093, -0.054022, 0.143783, 0.032051, -0.245005, 0.072821, + 0.044316, -0.032106, 0.285418, 0.018791, -0.120298, -0.063688, 0.178095, -0.07179, -0.097626, + -0.1764, 0.082572, 0.299186, -0.010424, -0.397128, 0.215103, -0.133335, 0.00112, 0.200575, + -0.547256, -0.107045, 0.040949, -0.094536, -0.536668, -0.150201, -0.183757, -0.081088, -0.339515, + 0.096834, 0.069341, -0.177645, -0.25957, 0.011265, -0.00253, -0.038696, 0.328482, -0.166242, + -0.412923, -0.039553, 0.067979, -0.021124, -0.207389, 0.065605, -0.182112, 0.138701, -0.190898, + -0.571128, 0.219623, 0.046008, 0.302623, 0.099887, -0.559306, -0.062146, 0.164764, 0.10441, + -0.535509, -0.271239, -0.099097, 0.073251, -0.094388, 0.16416, 0.257185, -0.520137, -0.04891, + 0.156094, -0.026182, -0.349509, 0.120726, -0.146393, -0.439354, -0.027961, 0.011811, -0.100239, + -0.249129, -0.01447, -0.257293, 0.013809, -0.058315, -0.63459, 0.253669, -0.086358, -0.023033, + 0.100245, -0.669546, 0.047685, -0.015637, -0.148246, -0.46746, -0.317178, -0.402959, 0.123205, + 0.21541, 0.202234, 0.29149, -0.607365, -0.272678, 0.152936, -0.122004, -0.094694, 0.078226, + -0.110418, -0.169738, -0.021601, -0.162063, -0.161649, -0.184819, -0.03817, 0.01593, 0.103998, + 0.128802, -0.688058, 0.49863, 0.112106, -0.070454, -0.267635, -0.310746, 0.021121, 0.026297, + -0.212026, -0.170579, -0.199242, -0.485494, 0.053801, 0.091953, 0.179893, 0.489284, -0.683815, + -0.271594, -0.27488, -0.285271, 0.169782, 0.067471, -0.03832, 0.19779, 0.025215, 0.097286, + 0.013968, 0.05171, -0.319162, 0.167546, 0.174733, 0.026802, -0.708481, 0.572697, 0.205696, + -0.145022, 0.161748, -0.189698, -0.117023, 0.024378, -0.239699, -0.532931, -0.262416, -0.394246, + 0.072726, 0.381964, 0.539299, 0.432698, -0.709091, 0.013289, -0.136208, -0.407023, 0.177238, + 0.266126, -0.150876, 0.096078, -0.164045, -0.112006, 0.402366, 0.124042, -0.258985, 0.054644, + -0.219065, 0.015372, -0.425603, -0.128975, 0.043893, -0.023766, -0.210024, 0.126687, 0.350246, + -0.106977, -0.036775, -0.038206, -0.140711, -0.477723, -0.040154, 0.018913, 0.255121, 0.15839, + -0.153891, 0.030119, -0.170576, -0.094687, 0.566409, 0.404577, 0.102516, -0.085325, -0.159075, + -0.382484, 0.184482, 0.259039, 0.070609, -0.075272, -0.06879, -0.176437, -0.535665, -0.096464, + 0.159792, -0.195409, -0.094257, 0.307243, 0.235786, -0.162421, -0.088888, 0.073844, -0.189995, + -0.425002, -0.007008, 0.255475, 0.232924, 0.170455, -0.005617, -0.176477, -0.197014, -0.052172, + 0.458678, 0.326312, -0.114894, 0.180014, -0.237364, -0.338759, -0.024778, 0.347001, 0.103899, + 0.091185, -0.162786, 0.108016, -0.495781, -0.353316, 0.326362, -0.095389, -0.153428, 0.247017, + 0.230504, -0.209997, -0.042891, 0.091972, -0.137331, -0.422152, 0.032261, 0.153341, 0.11113, + 0.090085, 0.308954, -0.159436, -0.32608, 0.032914, 0.334952, 0.15501, -0.003427, -0.010521, + -0.096345, -0.361687, -0.204844, 0.176997, 0.125153, -0.007811, -0.059169, -0.030904, -0.398298, + -0.521638, 0.422434, -0.064126, -0.187498, 0.188099, 0.354064, -0.237535, -0.016476, 0.100889, + -0.043994, -0.383779, 0.057299, 0.109334, 0.107028, -0.041307, 0.482922, -0.183758, -0.266987, + 0.100001, 0.348683, 0.076186, -0.01719, -0.202208, -0.087597, -0.515296, -0.268858, 0.038135, + 0.316005, -0.180023, -0.05612, -0.191071, -0.385444, -0.621122, 0.280646, 0.053087, -0.087089, + 0.137628, 0.219976, -0.291125, -0.062169, 0.33245, -0.009767, -0.288657, 0.020468, 0.285801, + 0.202685, 0.137726, 0.682301, -0.265558, -0.236031, 0.200866, -0.055211, 0.182123, -0.20149, + -0.229394, -0.090478, -0.487148, -0.477676, 0.133952, 0.278526, 0.034026, -0.029293, 0.157003, + -0.197846, -0.422913, 0.391483, 0.000809, 0.076952, 0.010719, 0.323205, -0.261972, 0.067616, + 0.266868, 0.043331, -0.12886, 0.094997, 0.260742, 0.224361, 0.023811, 0.63317, -0.270565, + -0.136818, -0.035948, 0.227819, -0.173245, -0.101053, -0.219623, -0.038874, -0.455047, -0.336719, + -0.015457, 0.356871, -0.252797, -0.046765, -0.043288, -0.049304, -0.359953, -0.007304, -0.200978, + -0.136207, 0.112993, 0.208668, -0.261734, -0.079957, 0.086327, 0.199047, 0.154356, 0.206275, + 0.062107, 0.176256, -0.172103, 0.326878, -0.39226, -0.103189, -0.17305, -0.074707, 0.196529, + 0.307398, -0.122805, -0.025159, -0.262197, -0.251129, 0.124388, 0.070718, -0.363669, 0.427199, + -0.046074, -0.009527, -0.237842, -0.128814, -0.044495, -0.045214, -0.141305, 0.290883, 0.23555, + -0.121402, -0.115777, 0.065535, 0.239272, 0.162925, -0.006985, 0.064183, 0.024851, 0.49167, + -0.253484, 0.000542, 0.06348, -0.04264, -0.076574, 0.525617, 0.038998, -0.408256, -0.274756, + -0.409171, 0.032693, 0.169969, -0.124502, 0.269346, 0.397238, -0.135363, -0.464383, -0.179206, + 0.140826, -0.093875, 0.065556, 0.152674, 0.144267, -0.021389, -0.17578, -0.095523, 0.009821, + 0.063409, -0.338317, -0.039673, -0.195315, 0.388749, -0.193825, -0.02396, 0.065991, 0.118118, + -0.007982, 0.496602, 0.008342, -0.328514, 0.0714, -0.183174, -0.043632, 0.280972, -0.161893, + -0.010859, 0.035116, 0.02496, -0.446154, -0.209077, 0.100482, 0.063444, 0.024411, 0.162145, + 0.051587, 0.158057, -0.116212, -0.007632, 0.168929, -0.118358, -0.393624, 0.266842, -0.15475, + 0.181201, -0.216224, 0.005262, -0.173978, 0.279227, -0.01333, 0.306442, 0.035238, -0.43883, + 0.175814, 0.033524, 0.044347, 0.111305, -0.139738, 0.030698, 0.134829, -0.08343, -0.593045, + -0.187141, 0.146668, -0.055897, 0.209416, -0.079497, -0.226744, 0.140757, -0.019219, -0.053075, + -0.041462, -0.167248, -0.356846, 0.190767, -0.249409, 0.144474, -0.230628, -0.031126, -0.058019, + 0.089433, 0.259031, 0.222769, -0.010772, -0.213642, 0.329254, 0.107818, 0.140818, 0.202004, + -0.260465, 0.027047, -0.094081, -0.079307, -0.652793, -0.10537, 0.391712, 0.088164, 0.170132, + 0.017062, -0.026287, 0.249044, -0.024497, -0.036311, 0.081897, -0.266018, -0.389526, 0.189905, + -0.303086, 0.289703, -0.100283, 0.104699, 0.073465, 0.239166, 0.010378, 0.154236, -0.033117, + -0.389397, 0.297449, 0.043192, 0.04555, 0.147712, 0.015754, -0.164253, 0.167116, -0.150969, + -0.607921, -0.077624, 0.293534, 0.134181, -0.052714, -0.223794, -0.287135, 0.100339, -0.01636, + -0.176582, -0.299881, -0.452718, -0.230292, 0.450076, -0.024885, 0.274914, -0.137482, -0.122734, + -0.030785, 0.130688, 0.256649, -0.101008, -0.145062, -0.38091, 0.102748, 0.211825, 0.093653, + 0.15676, -0.164717, -0.181541, -0.161249, -0.10178, -0.646628, -0.28144, 0.252201, -0.072762, + -0.068839, 0.259295, -0.143803, 0.031393, 0.134262, -0.255236, -0.358501, 0.017097, -0.644632, + 0.075245, -0.086769, 0.199651, 0.184964, -0.346295, -0.323828, 0.399578, 0.221752, 0.17097, + -0.289145, -0.20239, 0.02307, -0.131493, 0.339281, 0.063901, -0.043504, -0.359084, 0.212517, + -0.171698, -0.583765, 0.026097, 0.62989, 0.119667, 0.243167, 0.330583, -0.306359, -0.272105, + -0.186501, -0.133574, 0.01899, -0.064375, -0.676133, 0.086318, -0.079557, 0.078171, 0.353811, + -0.439839, -0.060876, 0.141782, 0.251374, 0.014795, -0.460797, -0.097822, -0.004879, -0.287462, + 0.278596, -0.152917, -0.012039, -0.388548, -0.22703, -0.376911, -0.476861, -0.006233, 0.487589, + 0.311159, 0.281503, 0.238848, -0.128571, -0.186361, 0.045037, -0.019819, -0.187569, 0.024709, + -0.523489, -0.055035, -0.150956, 0.371595, 0.344634, -0.383978, -0.156952, 0.119176, 0.332112, + -0.220671, -0.497504, -0.036917, 0.022562, -0.212865, 0.060225, -0.429904, 0.311696, -0.627492, + -0.200077, 0.129826, -0.31307, 0.078062, 0.278526, 0.093453, 0.319774, 0.038429, 0.112045, + -0.012302, 0.186965, 0.082741, 0.268448, -0.019043, -0.027616, -0.062502, -0.016177, 0.007429, + 0.074455, -0.238286, -0.198306, 0.288587, 0.019156, -0.159784, -0.32031, 0.044886, 0.24164, + 0.086378, 0.044652, -0.270468, 0.168558, -0.274204, -0.153992, 0.168554, -0.097425, 0.2486, + 0.176136, 0.005554, 0.190566, 0.000388, 0.181432, 0.163737, 0.317091, 0.071935, 0.059823, + 0.066342, 0.062827, -0.158432, 0.03468, 0.062547, 0.11962, -0.387532, -0.024581, 0.342518, + 0.169951, -0.22794, -0.2284, 0.047517, 0.458161, 0.123923, 0.126073, -0.244273, 0.119638, + -0.166043, -0.018994, 0.130155, 0.010191, 0.398136, 0.031549, 0.009486, 0.227405, -0.127501, + 0.348528, 0.205262, 0.233096, 0.095948, 0.092478, -0.041262, 0.155458, 0.014738, 0.114481, + 0.102526, 0.034694, -0.338231, 0.138662, 0.230246, 0.211443, -0.42285, -0.140008, -0.070039, + 0.59501, 0.270517, 0.050273, -0.116297, 0.09306, -0.140557, -0.091965, 0.09119, 0.155981, + 0.402991, -0.079987, 0.070035, 0.218125, -0.029311, 0.426756, 0.532968, 0.434394, 0.089008, + 0.141842, 0.112776, 0.223607, -0.256525, 0.110722, 0.337682, -0.005349, -0.515662, 0.17375, + 0.292946, 0.240394, -0.240241, -0.100708, -0.147924, 0.725121, 0.224951, -0.047723, -0.33548, + 0.420295, -0.018097, -0.099533, 0.315365, -0.147525, 0.069044, 0.064118, -0.061477, -0.006863, + -0.066437, 0.497308, 0.193276, 0.468612, -0.156849, 0.315791, 0.126177, 0.575443, -0.12343, + 0.147494, -0.109212, 0.076461, -0.172894, -0.091042, 0.419322, 0.141164, -0.233775, -0.098092, + 0.015081, 0.384017, 0.210554, -0.117581, -0.0548, 0.014937, 0.123587, -0.002872, 0.026694, + 0.27748, 0.291142, 0.174453, -0.090597, -0.159248, -0.474826, 0.130036, 0.515155, 0.464319, + 0.154869, 0.089518, -0.099422, 0.063094, 0.133199, 0.048981, 0.481333, -0.37766, -0.594546, + 0.215148, 0.443126, -0.216218, -0.202335, -0.141645, -0.010074, 0.541542, 0.085819, 0.111758, + -0.506035, 0.208778, -0.0989, -0.189724, 0.163485, 0.292717, 0.47235, -0.087055, -0.17557, + 0.100596, -0.515928, 0.06279, 0.594928, 0.45338, 0.395509, 0.204648, -0.119861, -0.105894, + 0.136295, 0.041902, 0.513928, -0.466581, -0.643395, 0.308166, 0.502334, -0.334194, -0.003335, + -0.45631, 0.144749, 0.316745, -0.049474, 0.401007, -0.490037, 0.479021, -0.319106, -0.374425, + -0.025045, 0.446233, 0.234932, -0.579381, -0.528821, -0.207395, -0.103487, 0.561823, 0.284491, + 0.039818, 0.185678, -0.045537, -0.163888, 0.026611, 0.122831, 0.159773, 0.115878, -0.424829, + -0.537459, 0.366486, 0.175202, -0.011187, -0.230877, -0.62125, 0.200489, 0.031613, -0.215408, + 0.595937, -0.289895, 0.197904, -0.361333, -0.403533, -0.04146, 0.233971, 0.348813, -0.283136, + -0.309501, -0.494645, -0.393142, 0.382953, 0.095137, 0.475027, 0.157275, 0.00071, -0.058443, + -0.103998, 0.241452, 0.262133, 0.114229, -0.02636, -0.408014, 0.276712, 0.28551, -0.060278, + -0.223441, -0.507254, 0.06323, 0.00112, -0.249786, 0.297352, -0.001736, 0.136982, -0.647504, + -0.083606, -0.275858, 0.212909, 0.020032, -0.474177, -0.286086, -0.619898, 0.044085, 0.076807, + 0.030964, 0.268971, 0.186284, -0.003771, -0.295209, -0.084093, 0.117445, 0.245304, 0.089725, + -0.329711, -0.453279, 0.080331, 0.152678, -0.458175, -0.187473, -0.402553, 0.225154, -0.069841, + -0.423506, 0.367267, -0.40356, 0.16414, -0.655346, -0.295128}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "long_input_only_sliding_window"; + const std::vector token_types{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, + 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, + 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, + 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, -0.184324, 0.082248, -0.917971, 0.311245, + -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, 0.625479, + -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, 0.273531, + -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, 0.813192, + -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, 0.807311, + -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, 0.153318, + 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, -0.881248, + -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, -0.297463, + -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, 0.171486, + 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, 0.029975, + -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, -0.946428, + -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, -0.597124, + -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, -0.246632, + -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, 0.297012, + -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, -0.875637, + -0.228871, 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, + -0.108976, -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, + -0.569343, -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, + 0.429193, 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, + 0.769097, -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, + -0.320644, 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, + 0.980358, 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, + -0.477203, -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, + 0.456818, 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, + -0.256998, 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, + -0.518889, 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, + 0.512987, 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, + -0.68424, -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, + 0.007862, 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, + 0.563852, 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, + -0.150954, -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, + 0.37714, -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, + 0.507329, -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, + 0.39719, -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, + -0.492104, 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, + 0.711457, 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, + 0.500654, -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, + -0.083318, 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, + 0.143193, -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, + 0.508876, 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, + -0.472354, 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, + 0.085618, -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, + 0.159464, 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, + -0.260825, -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, + 0.899223, 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, + -0.560654, -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, + -0.165227, -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, + 0.603313, -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, + -0.518932, 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, + 0.215429, -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, + 0.573391, -0.949507, -0.7171, -0.377511, 0.826098, 0.1023, -0.747897, 0.006262, -0.776671, + -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, -0.288666, 0.3929, 0.395564, + 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, 0.815057, 0.99516, 0.296258, + -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, 0.18636, 0.413585, -0.206588, + -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, -0.109859, 0.094326, -0.060097, + -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, -0.46216, -0.33695, -0.375678, + -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, 0.139068, 0.552292, -0.702444, + 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, -0.632811, 0.556983, -0.149319, + 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, -0.867631, 0.003304, + 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, 0.016121, 0.210597, + -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, -0.147204, -0.612415, + -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, -0.842229, -0.794683, 0.585289, + 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, 0.721554, 0.773871, 0.720051, + 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, -0.016791, -0.870379, -0.261475, + -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, 0.910749, 0.583554, -0.518337, + -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, 0.060577, -0.602459, 0.819876, + 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, -0.4237, 0.602567, 0.200242, + 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, 0.783539, -0.26327, 0.314318, + -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, 0.037649, -0.586658, 0.822194, + -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, 0.961893, -0.171048, -0.934408, + 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, 0.162617, -0.133854, 0.230342, + -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, 0.192636, -0.845443, 0.793552, + 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, -0.77887, 0.912821, 0.07751, + 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, 0.074966, -0.698764, -0.219233, + -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, 0.55947, 0.400247, 0.774181, + -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, -0.39125, -0.01835, -0.229459, + 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, -0.772226, -0.809075, -0.54802, + -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, 0.981038, -0.370629, -0.716001, + 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, 0.642863, 0.839239, -0.493832, + 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, 0.25278, 0.298125, -0.653559, + 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, 0.486671, 0.170416, 0.271919, + 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, 0.806378, -0.525239, -0.036417, + 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, -0.453557, 0.097171, -0.116216, + -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, 0.642417, 0.247718, -0.844133, + 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, -0.557894, 0.601745, -0.127932, + -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, 0.693016, 0.852534, 0.551467, + 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, -0.73862, 0.672618, 0.678645, + -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, -0.32739, 0.700386, 0.813401, + -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, -0.001452, 0.253108, -0.53735, + 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, 0.931584, 0.293263, -0.227222, + 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, -0.678475, 0.102821, 0.095808, + 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, 0.370394, -0.736122, 0.062691, + 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, 0.968727, -0.397175, -0.232716, + -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, 0.340153, -0.876826, -0.155735, + -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, -0.631138, 0.706552, 0.139649, + -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, -0.8772, -0.654672, -0.718926, + 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, 0.349295, 0.354269, 0.980382, + -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, -0.852453, 0.896511, -0.041441, + -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, 0.778847, -0.30743, 0.593968, + 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, -0.931854, -0.466351, 0.046006, + -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, -0.14036, 0.285996, 0.045167, + -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, 0.387979, 0.236666, 0.748384, + -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, -0.379444, -0.369984, 0.918921, + 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, 0.66429, -0.795854, 0.35589, + -0.569686, -0.039074, -0.20867, -0.834965, -0.953914, -0.657898, 0.453771, 0.457435, -0.869764, + -0.375542, 0.016334, -0.864583, 0.563455, 0.905732, 0.176862, -0.743015, 0.233186, 0.363014, + 0.791843, -0.53207, -0.89591, 0.439351, 0.062256, -0.325826, -0.419022, -0.515616, 0.809497, + -0.172539, 0.721207, 0.89265, 0.126676, 0.213018, -0.068105, 0.686815, -0.901088, 0.397683, + -0.162929, 0.456616, -0.004454, -0.370266, -0.10795, 0.539993, -0.69453, -0.632099, -0.223996, + -0.362725, 0.392839, 0.67297, -0.107099, 0.945574, -0.41782, -0.561159, -0.447694, -0.688972, + -0.700934, -0.891016, -0.886279, 0.260999, 0.609854, 0.938847, 0.851797, -0.057594, 0.194047, + -0.59832, 0.386521, -0.958841, 0.471673, 0.183416, 0.307304, 0.366148, -0.459105, 0.858106, + 0.477252, 0.656895, 0.132079, 0.627987, 0.673001, 0.453235, 0.761769, -0.181378, 0.657536, + 0.230399, 0.601696, 0.973999, 0.226437, -0.371167, -0.099496, 0.281528, 0.168609, -0.27317, + 0.783518, 0.600807, -0.621154, -0.081481, -0.095994, -0.626731, 0.145855, -0.306993, -0.516261, + -0.321547, -0.356549, 0.95664, 0.383572, 0.984113, 0.274196, 0.226431, 0.411094, 0.171633, + -0.784771, -0.591354, -0.242279, 0.015033, 0.376714, 0.385048, 0.793313, 0.203573, -0.341293, + -0.752026, -0.732411, -0.597337, 0.301604, 0.540272, 0.874913, -0.316312, -0.078883, -0.296963, + -0.003654, 0.321001, -0.021971, 0.046295, 0.126687, 0.372418, -0.303401, -0.596298, 0.235925, + -0.118406, -0.453028, 0.419963, 0.009069, -0.145465, -0.484084, -0.131566, -0.850325, 0.22749, + 0.015007, 0.606836, 0.06457, 0.079952, 0.272413, 0.760938, -0.472558, 0.597005, 0.244562, + -0.667117, 0.348187, -0.599733, -0.314781, -0.476669, -0.680314, 0.787571, -0.893821, 0.500015, + -0.900012, -0.121706, 0.059642, 0.710911, -0.361894, 0.287827, 0.154906, 0.588385, 0.059452, + 0.374445, -0.604091, -0.694911, 0.891078, -0.728667, -0.17024, -0.12088, 0.97788, -0.216114, + -0.761304, -0.253499, 0.515821, 0.39629, 0.827292, -0.204717, 0.471045, -0.94104, 0.38694, + 0.459464, 0.645087, -0.573442, -0.266978, 0.24193, -0.710615, -0.795481, -0.962043, 0.055823, + 0.620988, 0.25686, 0.060965, 0.348426, -0.628404, 0.105426, -0.248424, -0.495144, 0.862373, + -0.773653, 0.146548, -0.878713, -0.033927, -0.444362, 0.329147, -0.561538, 0.64004, -0.811467, + 0.600636, -0.751179, 0.535585, -0.421066, -0.00233, -0.182503, 0.64903, 0.327728, -0.881204, + 0.091941, -0.689862, 0.747561, 0.1643, -0.257181, -0.510169, 0.346129, -0.598897, 0.474262, + 0.545675, 0.613803, 0.261238, -0.875369, 0.719317, -0.310223, -0.295636, -0.107439, 0.731135, + 0.768927, 0.154412, 0.477152, -0.931997, 0.002362, -0.884684, 0.34035, -0.712449, -0.356405, + 0.699031, 0.955696, -0.60038, -0.555011, 0.123846, 0.393105, -0.162872, -0.31229, -0.656844, + 0.426876, 0.979762, -0.484079, 0.471664, 0.488395, 0.803797, -0.113854, 0.031498, 0.734699, + 0.632114, 0.987707, -0.28657, 0.395687, 0.698276, -0.678816, 0.198659, -0.223753, 0.642824, + -0.449127, 0.070139, 0.598311, -0.916117, -0.844362, -0.512184, 0.641417, 0.670528, -0.68297, + 0.190687, -0.529881, -0.464153, 0.862417, 0.483009, -0.273483, 0.147202, 0.193757, 0.234241, + -0.342279, -0.588886, 0.662064, 0.134373, 0.41855, -0.37873, 0.48437, 0.727766, 0.608173, + 0.271896, 0.983883, -0.002187, 0.212897, 0.95013, 0.971897, -0.42222, 0.900803, 0.36906, + -0.111938, 0.873146, -0.518029, 0.649749, 0.990944, -0.689702, -0.590093, -0.990914, -0.179962, + -0.908204, -0.334922, 0.303595, 0.706878, 0.557035, 0.555081, 0.414864, -0.620233, -0.793995, + 0.041454, 0.949583, 0.056306, -0.08601, -0.678737, -0.495838, -0.770864, 0.800668, -0.16293, + -0.883409, 0.107275, 0.072568, -0.123549, 0.357964, 0.537779, -0.94041, -0.766092, -0.04804, + -0.927138, -0.90836, 0.88291, -0.076059, -0.49439, -0.343017, -0.780722, 0.780366, -0.216839, + -0.562238, -0.758413, 0.58449, -0.138231, -0.105057, -0.260633, -0.482723, 0.17789, 0.76937, + -0.57958, 0.047913, -0.760513, -0.468897, 0.87777, 0.010485, 0.963319, -0.175204, -0.545044, + -0.597488, 0.886315, -0.768987, 0.524794, 0.248582, 0.295107, 0.56424, -0.261623, 0.618764, + -0.796723, -0.351841, 0.732041, 0.29678, -0.133173, -0.233531, -0.610615, 0.608092, -0.0318, + -0.033834, 0.236493, 0.737948, -0.510183, -0.344397, 0.677631, 0.564772, -0.491936, -0.98926, + 0.185511, 0.525894, 0.238857, 0.709314, -0.793474, 0.504286, -0.621679, 0.562807, 0.743714, + 0.316716, 0.809075, -0.659152, -0.894376, -0.961505, 0.627831, 0.35031, -0.732267, 0.484281, + 0.912412, -0.986084, 0.725421, 0.153373, 0.093021, 0.899793, 0.90559, 0.421351, 0.790135, + 0.416024, 0.162942, -0.879011, 0.186783, -0.711446, 0.307866, 0.176434, 0.022466, -0.683727, + -0.606197, 0.739138, 0.487019, 0.52724, -0.297977, -0.172196, -0.256278, 0.687693, -0.431688, + 0.629865, 0.689494, -0.914556, 0.006107, -0.190454, -0.552822, 0.431718, -0.121495, 0.875508, + -0.625904, 0.464631, -0.853793, -0.501222, 0.068213, 0.790093, 0.526719, -0.821085, 0.110765, + -0.58949, 0.04333, -0.833073, -0.293373, 0.685866, -0.917536, -0.953423, 0.182144, 0.137084, + -0.182886, 0.873212, -0.602089, -0.60708, -0.747476, -0.186123, -0.255205, 0.618747, -0.056149, + 0.319354, -0.415557, 0.811192, 0.843019, -0.895569, -0.257, -0.848497, 0.424827, -0.873683, + -0.472812, 0.999172, -0.954919, 0.737805, 0.084479, 0.799635, -0.507489, 0.656829, 0.120654, + 0.076912, 0.682532, -0.950527, -0.805451, 0.965763, -0.600497, -0.720808, -0.048895, -0.320102, + -0.136812, -0.669986, 0.360819, -0.860482, 0.080993, 0.583539, 0.192136, 0.13287, 0.146264, + -0.292951, -0.190498, -0.421693, -0.675529, -0.529456, 0.988561, -0.167356, 0.350296, 0.691554, + -0.078118, -0.537974, -0.677539, -0.368403, 0.356936, -0.842159, -0.122097, 0.380387, 0.815855, + 0.300931, 0.197767, 0.684591, 0.462088, 0.338314, -0.310047, -0.801899, -0.216002, -0.181364, + 0.073437, -0.10998, 0.404289, 0.66455, -0.40542, -0.948861, -0.51306, -0.478476, 0.56684, + -0.645044, -0.094057, -0.211939, -0.606932, 0.453285, -0.416556, -0.051732, -0.703085, -0.10086, + 0.142086, -0.040693, -0.373648, 0.297084, -0.259098, -0.554399, -0.737433, -0.21183, -0.944678, + 0.83002, -0.477728, -0.414418, 0.092439, 0.259233, -0.094292, 0.686023, -0.58295, 0.358381, + -0.002255, -0.813471, -0.387295, 0.254487, 0.191042, 0.727135, 0.668993, -0.545423, -0.427029, + -0.212041, -0.716421, -0.26999, -0.818313, 0.380342, 0.707559, 0.079176, -0.715881, -0.757308, + -0.389299, 0.290853, 0.024392, 0.181822, 0.942481, 0.464442, 0.215023, -0.202322, 0.473049, + 0.365841, -0.900102, -0.590709, 0.033566, 0.379442, 0.486503, -0.595279, -0.992114, -0.052092, + -0.114317, 0.29018, -0.275006, 0.764523, 0.066724, 0.730247, -0.696314, 0.400036, 0.119156, + -0.500148, 0.495748, -0.984019, 0.808467, 0.080588, 0.096553, 0.462446, 0.083012, 0.428652, + 0.636214, -0.780458, 0.66156, -0.149739, -0.232549, 0.201282, 0.782152, -0.543615, -0.673931, + 0.620607, -0.469668, 0.32195, -0.147326, 0.275253, 0.763115, -0.506799, -0.485264, 0.490621, + 0.054752, -0.110058, -0.878388, 0.847258, -0.037871, -0.184187, -0.41049, -0.197338, 0.486034, + -0.022983, 0.855209, -0.057735, -0.143458, 0.564452, -0.025876, -0.199593, 0.334227, 0.788631, + 0.24955, 0.696318, 0.648038, 0.282798, 0.347689, 0.322684, 0.103727, 0.850736, 0.923141, + 0.355989, -0.049939, 0.896594, -0.778321, 0.734784, 0.529826, 0.642136, -0.076836, -0.746098, + 0.713339, -0.437256, 0.263113, 0.566545, -0.934526, 0.066364, -0.355226, 0.709755, -0.636701, + 0.60717, 0.62357, 0.551715, 0.960012, 0.151451, -0.906381, 0.713865, 0.091547, 0.019845, + -0.952589, -0.224756, -0.485368, 0.979411, 0.712029, 0.745988, 0.684837, -0.619874, -0.42947, + -0.39135, -0.400882, 0.778432, 0.339767, 0.801354, -0.046779, -0.891427, -0.290123, 0.702795, + 0.608806, 0.309572, -0.293328, -0.933371, -0.537327, 0.52138, -0.403358, 0.478339, 0.273041, + -0.384087, 0.609078, -0.321333, -0.033223, -0.380913, -0.948572, 0.161238, 0.288969, -0.503481, + 0.613447, -0.897056, -0.963977, -0.617649, -0.345605, -0.111058, -0.193248, 0.456388, -0.877625, + 0.147248, 0.017318, 0.26413, 0.99408, 0.615448, -0.553705, -0.819453, -0.242101, -0.501627, + 0.349305, 0.009167, 0.804324, 0.392806, -0.18387, 0.03437, 0.239486, -0.124087, 0.806935, + -0.7819, 0.487406, -0.637444, -0.876081, -0.205297, 0.487305, 0.706562, 0.250942, -0.086429, + -0.056059, -0.405381, -0.089737, -0.069094, 0.850963, 0.585244, -0.800224, 0.004137, -0.61507, + -0.158741, -0.794768, 0.259961, -0.721078, 0.987221, 0.755203, -0.688359, -0.941464, 0.039018, + -0.279152, 0.293567, -0.676914, 0.409341, -0.863749, -0.52777, -0.525702, 0.483891, -0.026181, + -0.961029, -0.57112, -0.462777, -0.92783, 0.128047, 0.356338, -0.183478, -0.397945, -0.006065, + -0.794282, -0.608902, -0.022806, 0.888377, -0.307508, 0.495659, -0.39355, -0.266198, -0.951944, + 0.828485, 0.973728, -0.021003, 0.63537, 0.817942, 0.496718, 0.515019, -0.951991, -0.939671, + -0.76754, 0.312786, -0.864977, -0.763345, -0.484703, -0.921685, 0.001347, 0.144268, -0.5852, + 0.654765, -0.379645, -0.281527, 0.761875, 0.858552, -0.11472, -0.717878, -0.501669, 0.127339, + 0.586192, 0.497845, -0.441582, -0.945367, -0.875147, -0.318156, 0.012544, -0.449176, -0.790705, + 0.105388, -0.793741, -0.767924, -0.812946, -0.270973, 0.883258, 0.390919, -0.118569, 0.205811, + 0.398209, 0.005826, -0.806574, -0.616113, -0.679353, -0.025392, -0.915402, -0.181821, -0.365672, + 0.98137, 0.812824, 0.580854, 0.056082, -0.323773, 0.25507, -0.69093, -0.426504, -0.200885, + -0.234955, -0.947302, 0.397531, 0.823482, -0.551573, 0.269566, -0.115974, -0.036472, 0.05829, + 0.866583, 0.133991, -0.632677, -0.359714, 0.488527, 0.312055, 0.019436, -0.131977, -0.389077, + -0.354927, -0.527486, 0.163862, 0.280842, 0.765745, -0.225913, 0.071589, 0.646289, 0.434991, + 0.128488, 0.307279, 0.051906, -0.857792, 0.038551, -0.218579, 0.902412, 0.902628, 0.198391, + 0.893803, -0.515019, 0.869174, 0.860985, -0.038221, -0.802509, -0.322696, -0.267427, 0.016518, + -0.906651, 0.185326, -0.415892, -0.256041, -0.516492, -0.211134, -0.928725, -0.530168, 0.092125, + 0.655276, 0.908748, -0.756456, 0.419921, -0.563696, -0.773157, -0.044035, -0.573647, -0.861246, + -0.934536, -0.669348, 0.821736, 0.557708, -0.395847, -0.669321, -0.769242, -0.590521, -0.411498, + 0.600589, 0.327256, -0.385372, 0.688431, -0.621233, -0.814688, 0.21825, -0.551401, 0.284478, + 0.847236, -0.472905, -0.697812, 0.3764, -0.903147, 0.892178, -0.472256, 0.48346, -0.795172, + -0.676868, 0.110155, 0.355405, 0.775395, 0.836336, -0.057512, -0.128567, 0.165302, -0.232291, + 0.034041, -0.947048, -0.820907, 0.685262, -0.584357, 0.787485, 0.109744, 0.243585, 0.908878, + -0.55619, -0.157858, 0.177169, 0.341642, -0.973214, 0.355419, -0.589726, 0.13135, 0.67655, + -0.099615, -0.031635, -0.074715, 0.834483, 0.568329, 0.168169, -0.601815, -0.543037, 0.796555, + 0.719421, 0.57901, -0.779717, 0.778793, -0.095592, 0.736757, 0.868549, 0.109611, -0.416118, + 0.940651, -0.52112, 0.653415, -0.95889, -0.314513, -0.871855, -0.448576, 0.424619, -0.716528, + -0.864804, 0.715035, 0.533821, -0.010935, -0.704961, -0.264936, -0.323781, 0.61759, -0.327087, + -0.288016, -0.708859, -0.470988, 0.541449, 0.644286, 0.145287, -0.375198, 0.960491, 0.19738, + -0.385996, -0.346597, -0.139951, 0.474098, 0.365768, 0.724961, -0.045057, 0.827093, -0.406187, + -0.460553, -0.369297, -0.938208, -0.65644, -0.904875, -0.059098, 0.009427, -0.259542, -0.683384, + 0.907289, -0.33134, 0.476553, 0.69641, -0.657357, -0.125023, 0.577967, 0.969359, -0.126161, + 0.724623, -0.784866, -0.649739, 0.822335, -0.09468, 0.987923, 0.072717, -0.414709, 0.949715, + 0.874484, 0.092806, -0.606205, -0.043297, -0.480917, 0.728681, 0.046324, 0.210521, 0.606465, + 0.331241, -0.624266, 0.830724, 0.614345, -0.617336, 0.756103, 0.283703, -0.196849, -0.715163, + -0.165923, -0.980443, 0.570761, 0.724254, -0.287898, 0.92705, -0.370291, 0.171248, -0.696894, + -0.042278, 0.40423, 0.430735, -0.033533, -0.504262, 0.698985, 0.662066, 0.16048, -0.459876, + 0.212026, 0.002674, 0.913603, 0.148193, 0.077129, 0.068359, 0.532009, -0.012356, 0.857144, + 0.52099, -0.755627, -1.1e-05, -0.848807, -0.767809, 0.194293, 0.224719, -0.087512, 0.950462, + -0.537212, -0.419086, -0.160146, 0.006063, -0.084702, 0.900389, -0.422346, -0.523075, 0.08595, + 0.751082, 0.237356, 0.538733, 0.193585, 0.852288, 0.600624, 0.715569, -0.13469, -0.827896, + -0.474364, 0.340668, 0.701547, -0.390704, 0.827419, 0.143726, 0.003972, 0.038984, -0.176673, + 0.936189, 0.043435, 0.612509, -0.844014, -0.515221, 0.112437, 0.7985, 0.476087, 0.190459, + -0.987992, 0.0188, -0.660102, -0.853872, 0.136743, -0.632705, 0.907639, -0.543542, 0.322268, + 0.586963, -0.777237, 0.51178, -0.133896, 0.518163, 0.967735, -0.426165, -0.433104, 0.794549, + 0.1112, -0.099733, 0.758668, -0.483144, -0.049376, 0.686876, 0.390811, -0.646815, 0.259917, + -0.762437, -0.543073, 0.643012, -0.266512, -0.509357, 0.070882, 0.24437, -0.621617, -0.674363, + -0.968469, 0.258384, -0.645229, 0.076208, -0.223658, -0.65386, -0.319099, -0.76869, -0.529333, + -0.031171, -0.854915, -0.877033, 0.749061, 0.094098, -0.442254, -0.033249, 0.741565, -0.834266, + -0.530184, -0.72314, -0.072701, -0.034413, -0.779306, 0.694084, -0.76792, 0.933636, -0.688369, + -0.137046, 0.186987, -0.444477, 0.919642, -0.689434, -0.055428, -0.734261, 0.277591, 0.852587, + 0.927586, 0.118714, -0.500645, 0.971845, 0.07463, 0.676577, -0.519417, -0.464093, -0.830133, + 0.920126, 0.165884, -0.718189, 0.085889, -0.428905, 0.049956, 0.331923, -0.496235, 0.174499, + -0.631382, 0.192696, -0.965536, 0.159351, 0.993519, 0.921113, 0.364781, 0.735829, 0.972258, + 0.283369, 0.333518, 0.130034, 0.88533, 0.859041, -0.47026, -0.04111, -0.503843, 0.35883, + -0.968992, 0.353868, -0.274448, 0.362652, 0.312106, -0.497619, 0.518811, 0.42465, -0.850041, + 0.997752, 0.860753, 0.622182, -0.1015, 0.354288, -0.541016, -0.339799, 0.471959, 0.445168, + 0.395985, -0.953738, 0.828679, -0.417687, 0.865416, 0.823951, 0.370651, 0.99629, 0.57422, + 0.586486, -0.339572, 0.927485, 0.262095, 0.590836, -0.226108, 0.724221, 0.887102, -0.766251, + 0.819804, -0.66089, -0.688473, -0.835686, 0.28896, -0.750827, -0.376434, -0.502686, 0.267265, + -0.981761, -0.458441, 0.007316, 0.089802, -0.451624, 0.358264, -0.659754, -0.84689, -0.142165, + -0.540648, 0.630333, -0.683519, -0.083952, 0.415354, -0.875739, 0.77412, -0.454375, -0.272116, + -0.611714, -0.372638, -0.38559, -0.889877, 0.341708, -0.003204, 0.978231, 0.674676, 0.869934, + 0.294227, 0.525459, 0.936385, 0.82104, -0.768399, -0.224229, -0.964465, 0.037831, -0.35319, + 0.867917, 0.158105, 0.011006, -0.723352, -0.784731, 0.157424, -0.496882, -0.459252, 0.701434, + -0.521319, -0.445105, 0.767808, 0.390699, -0.568208, 0.302848, 0.504137, -0.888201, 0.186807, + 0.22847, -0.038947, 0.958801, -0.660976, 0.542117, -0.531217, -0.856106, 0.681519, -0.479722, + 0.047001, 0.525902, -0.834659, -0.855989, 0.340461, 0.871926, -0.105816, 0.704222, 0.351401, + 0.285303, -0.637572, 0.951718, 0.458041, 0.154624, 0.707304, -0.859227, 0.215484, -0.470729, + -0.101548, 0.327633, 0.442897, 0.229406, -0.773953, -0.625833, 0.017461, -0.173191, -0.837014, + 0.985166, 0.125783, -0.71055, 0.438586, 0.434499, -0.490566, 0.501444, -0.620343, 0.346481, + 0.949905, 0.660131, 0.493689, -0.203451, 0.187735, 0.348966, 0.244247, -0.202592, 0.139527, + -0.405031, -0.565267, -0.922836, -0.815309, -0.627715, 0.95589, 0.200115, -0.904621, -0.511169, + 0.233579, -0.299306, -0.28306, -0.375515, -0.24424, 0.115027, 0.059218, 0.642482, 0.639943, + 0.822991, -0.031811, -0.44652, 0.003412, -0.662214, 0.409122, -0.12065, -0.320276, -0.847812, + 0.481916, 0.558175, 0.912227, -0.35427, 0.301311, 0.037695, -0.63697, -0.625149, 0.512085, + -0.574323, 0.728184, 0.349359, 0.341509, 0.658576, 0.489416, 0.431283, 0.518842, -0.424367, + -0.530281, -0.183201, 0.555168, 0.699827, 0.736412, -0.315437, -0.126885, -0.68682, 0.616596, + -0.663127, -0.411489, 0.825765, 0.243013, -0.418632, -0.673372, -0.687674, 0.807026, -0.914004, + 0.864129, 0.799965, 0.061962, -0.080155, 0.777722, 0.440977, 0.945511, 0.807812, -0.65576, + 0.617119, 0.50433, -0.710012, 0.480272, -0.519412, -0.595792, 0.018656, -0.122881, -0.268882, + -0.655807, 0.547038, 0.99707, -0.221582, -0.673774, -0.051564, -0.86881, -0.812056, -0.333122, + 0.628305, -0.766114, -0.159583, -0.51927, -0.920789, -0.225111, -0.058251, -0.168141, 0.731135, + 0.400562, 0.622595, 0.391689, 0.104918, 0.542759, -0.63795, 0.509534, 0.476314, -0.424407, + -0.034321, -0.756477, -0.875048, -0.001105, 0.179055, -0.215706, 0.30895, -0.772002, -0.549682, + 0.690196, -0.973172, 0.157021, 0.769873, 0.749687, 0.341118, -0.910901, 0.128737, -0.351658, + -0.28111, 0.766192, -0.339842, -0.716171, -0.802738, 0.631384, 0.048253, 0.987665, 0.204503, + -0.931919, 0.247408, 0.915044, 0.62023, 0.30009, -0.751304, -0.599635, 0.679014, -0.668658, + 0.228133, -0.128123, 0.335081, 0.065432, -0.76167, -0.398608, 0.872191, 0.117716, 0.507055, + -0.504503, 0.791641, -0.214064, -0.337064, 0.202855, -0.358313, -0.40185, -0.143095, -0.05709, + -0.568754, 0.341814, -0.969182, 0.613863, 0.927464, 0.161783, -0.233658, -0.915901, 0.469602, + 0.81938, 0.854926, 0.08917, 0.332462, 0.95821, 0.149259, -0.48277, -0.949428, 0.437211, + 0.389543, 0.888684, -0.509105, 0.429523, -0.330854, -0.248535, 0.583487, -0.916678, 0.737137, + 0.465099, -0.594319, 0.510296, -0.251532, 0.089997, -0.267658, -0.979113, -0.103568, 0.48792, + -0.116347, -0.492413, 0.031686, 0.182487, -0.279016, -0.775484, -0.536143, -0.163033, 0.360143, + 0.889274, 0.018559, 0.358042, 0.575371, -0.436052, -0.331817, 0.663306, 0.715988, 0.236959, + -0.772782, 0.567586, -0.826495, 0.499822, 0.118514, 0.323015, -0.974748, -0.351575, 0.424697, + 0.769686, -0.286291, 0.89175, -0.223159, -0.603146, -0.433043, 0.062227, -0.177733, 0.484004, + -0.553422, -0.284471, -0.991013, 0.816243, -0.188163, -0.788312, -0.048254, -0.001825, 0.277728, + -0.109761, 0.629063, -0.345024, -0.299311, -0.23747, 0.17853, 0.80122, -0.046013, 0.769429, + 0.785546, -0.52065, -0.08592, -0.472059, 0.415974, -0.351569, 0.30505, 0.059745, -0.656465, + -0.672294, -0.976725, -0.559381, 0.279354, 0.060926, 0.752102, -0.879314, -0.029222, -0.89665, + 0.005854, 0.364337, -0.897043, 0.883152, -0.310591, 0.886036, -0.167851, 0.567315, 0.909077, + -0.364074, -0.243087, 0.524529, -0.856131, 0.591928, -0.628113, 0.928763, -0.655365, -0.411511, + 0.746185, -0.435387, 0.857151, 0.68802, 0.914011, -0.969282, 0.011208, -0.328914, 0.238204, + -0.755051, 0.410054, -0.047374, -0.472689, -0.899604, 0.523068, -0.361905, 0.737876, 0.178014, + 0.30414, -0.151664, -0.138524, -0.33971, -0.865901, 0.628696, -0.629741, 0.582838, -0.337283, + 0.626469, 0.857022, -0.611606, 0.825726, 0.024372, -0.763931, 0.408212, 0.566239, 0.881512, + -0.95192, 0.902962, 0.758107, 0.983762, 0.545006, -0.486113, 0.758612, 0.913917, -0.38237, + -0.16346, 0.782532, 0.804983, 0.660587, 0.766132, -0.513898, -0.172515, -0.399509, 0.519738, + 0.249212, -0.772453, -0.125612, -0.815455, -0.941117, 0.911628, -0.503021, 0.44633, -0.222679, + -0.202499, -0.000646, 0.779928, -0.138336, 0.827466, 0.585108, 0.686009, -0.90694, -0.467595, + -0.814724, -0.212389, -0.207122, 0.203204, 0.895971, 0.448905, -0.695858, -0.627143, 0.755105, + 0.099544, 0.282505, -0.523035, -0.121949, 0.284705, -0.656225, 0.652661, 0.498344, -0.583172, + -0.410081, -0.235101, 0.155626, -0.36682, 0.956621, -0.963209, -0.565199, -0.606979, 0.27038, + 0.141907, -0.284956, 0.853458, -0.863253, 0.35245, -0.550252, -0.227709, -0.963, -0.746507, + -0.848449, 0.436274, -0.375507, 0.523101, -0.541949, -0.247765, 0.121047, 0.837925, -0.269514, + 0.579722, 0.275872, 0.608203, 0.631708, 0.405816, -0.301547, -0.280666, 0.389301, 0.545043, + -0.053373, 0.501275, -0.601619, 0.563658, -0.122715, -0.688172, -0.485884, -0.763698, 0.201717, + -0.593061, -0.286363, -0.062655, -0.610161, 0.025678, -0.126913, 0.316742, 0.722408, -0.603669, + 0.546746, -0.021187, -0.571555, -0.453514, 0.254538, 0.208213, -0.0323, -0.497846, 0.504296, + 0.148371, -0.972131, -0.176727, -0.271312, -0.42671, -0.554698, -0.811262, 0.984904, -0.913415, + 0.929577, -0.786104, -0.242617, -0.409667, -0.53525, 0.355536, 0.579595, -0.656902, -0.46575, + 0.510427, -0.120876, 0.243549, 0.522853, -0.369632, -0.554974, 0.368097, -0.366195, -0.665642, + -0.504416, -0.464965, 0.995718, 0.192323, 0.430673, 0.134325, -0.674146, 0.721638, -0.155449, + -0.258931, 0.814957, -0.509411, 0.203058, -0.850684, 0.512423, 0.397211, -0.822296, 0.558137, + 0.110049, -0.516365, 0.852633, 0.429473, 0.351416, -0.371426, -0.54832, -0.538075, 0.375703, + 0.269386, -0.598498, 0.909952, 0.582617, -0.381808, 0.517379, -0.423898, 0.313828, 0.832333, + -0.884532, -0.497207, -0.056516, 0.149126, -0.822374, -0.657902, -0.095779, -0.144178, 0.215695, + 0.127068, 0.205142, 0.066293, 0.114937, -0.057719, 0.359123, 0.682496, -0.49905, -0.518051, + 0.438915, -0.723134, 0.649858, 0.461979, 0.144632, -0.434141, 0.029986, -0.790654, -0.899682, + 0.941704, -0.896926, -0.829754, -0.388447, 0.056157, 0.229034, -0.492782, -0.097039, -0.22331, + 0.836725, 0.867954, 0.411009, -0.006164, 0.749933, -0.807384, 0.417817, -0.581258, 0.779862, + -0.883988, 0.371553, -0.822183, 0.583648, 0.18285, 0.858039, -0.754217, 0.643609, -0.667363, + -0.539785, 0.380357, -0.168323, -0.789533, -0.850913, -0.259625, 0.276878, 0.878355, 0.735457, + 0.016389, -0.613394, -0.891554, 0.893402, -0.557545, -0.175872, -0.806915, -0.691211, 0.194035, + -0.247221, 0.114514, -0.007648, 0.050949, -0.198145, -0.03867, 0.434668, 0.730519, 0.84523, + -0.815868, -0.845309, -0.149454, -0.076287, 0.551938, 0.941359, 0.256798, -0.710259, -0.11319, + 0.646728, 0.368954, -0.707214, 0.058368, -0.965565, -0.402959, 0.699403, -0.433784, 0.610562, + -0.815674, 0.884104, 0.477005, 0.64801, 0.273093, 0.070847, -0.492485, -0.551793, -0.686719, + 0.826445, -0.34708, 0.024362, -0.940107, 0.268388, -0.340886, -0.799828, 0.123763, -0.921214, + -0.098526, -0.816643, 0.632204, -0.794164, 0.163325, 0.495146, -0.799014, 0.647364, 0.814414, + -0.612997, 0.083737, 0.303243, 0.828205, 0.781269, -0.838812, -0.815067, -0.884218, -0.444741, + -0.201857, -0.358803, 0.658923, -0.689172, -0.798126, -0.781717, -0.590257, 0.979465, 0.126281, + -0.175087, -0.29388, -0.765924, -0.339281, 0.526824, 0.675852, 0.72128, 0.071194, -0.545199, + -0.590367, 0.971854, -0.9026, 0.236745, -0.094416, 0.928469, 0.585759, -0.252638, -0.82976, + 0.13136, -0.69944, -0.105467, 0.25038, 0.488328, -0.270457, -0.675034, -0.851669, -0.947198, + 0.125433, -0.608639, 0.036266, -0.473754, -0.676729, 0.674293, 0.565918, 0.70214, 0.959256, + -0.723539, -0.532315, -0.752845, 0.671477, 0.589207, 0.810639, -0.699715, -0.536291, 0.974877, + -0.794077, -0.666006, 0.368151, -0.874154, -0.282735, 0.424907, 0.819234, -0.11347, -0.884941, + 0.56609, 0.996938, -0.742378, -0.044179, -0.723377, -0.510619, 0.336526, 0.467187, 0.413512, + -0.941884, -0.242427, 0.426193, -0.092822, -0.309152, -0.516553, 0.948178, -0.800458, -0.787718, + 0.728714, -0.607404, 0.604281, -0.551242, -0.135278, -0.483166, 0.826215, 0.693264, 0.048051, + 0.023978, -0.377394, -0.534521, -0.378249, 0.327452, -0.179867, 0.678778, 0.143979, 0.011039, + -0.621429, 0.403412, -0.925007, 0.233641, 0.358806, 0.18097, 0.703773, 0.240007, -0.27618, + -0.699755, -0.928105, 0.504682, 0.544338, -0.762777, 0.267727, -0.367721, 0.842255, -0.344684, + 0.827746, 0.707314, 0.553093, 0.683405, 0.31188, 0.338982, -0.850153, -0.228298, -0.113358, + 0.485207, -0.387503, 0.458203, 0.678975, 0.431178, 0.514693, -0.133287, 0.479026, -0.342926, + 0.866255, -0.025664, -0.058332, -0.880413, 0.924882, -0.139912, 0.744809, -0.654205, -0.836625, + -0.160063, -0.7996, 0.192158, 0.013469, -0.366713, 0.626133, 0.647861, -0.88295, -0.801121, + 0.585023, -0.60736, 0.192964, -0.266325, 0.178822, -0.551832, 0.003196, -0.354011, -0.450482, + -0.491641, 0.223365, 0.647073, -0.024644, -0.009766, 0.825068, 0.806105, -0.14517, -0.818849, + 0.234668, 0.298579, -0.791296, -0.897074, 0.104893, 0.976492, -0.89445, -0.489977, -0.344865, + -0.883314, -0.615726, 0.784927, 0.764835, -0.735691, 0.021437, -0.814449, 0.415342, -0.683013, + -0.509616, -0.463511, 0.147402, 0.668231, -0.418532, 0.184448, 0.796221, -0.060593, 0.103257, + 0.074255, -0.012775, 0.60037, 0.541093, -0.535566, 0.954862, 0.575405, -0.15647, 0.870636, + 0.053782, 0.631915, -0.849093, 0.897624, 0.94269, -0.747212, -0.895047, -0.291045, -0.614813, + 0.267182, 0.445133, -0.127416, 0.701715, 0.037894, -0.293912, -0.853571, 0.317821, -0.942206, + -0.00342, 0.146167, -0.560048, 0.30042, 0.194391, 0.669222, 0.625448, -0.809276, -0.741982, + -0.367023, -0.7194, 0.313538, -0.65519, -0.763475, 0.291262, 0.603518, -0.290722, -0.996457, + 0.141331, 0.512464, 0.781172, 0.094882, 0.694229, -0.894138, 0.956678, -0.645736, -0.682574, + 0.717673, -0.222212, 0.617135, -0.700424, 0.756574, 0.948395, 0.302796, 0.806694, -0.714126, + -0.220813, 0.304379, 0.56509, -0.533959, 0.636335, -0.329121, -0.533755, 0.195613, -0.796508, + -0.917799, 0.332504, 0.340612, 0.384549, -0.131139, -0.731335, -0.803337, 0.956899, -0.86693, + 0.301393, 0.812181, 0.763976, -0.630504, -0.322439, -0.799533, 0.627269, -0.938439, -0.920587, + -0.667601, 0.815699, 0.648187, 0.670045, 0.767287, -0.466381, -0.557687, -0.614335, 0.329958, + 0.388986, 0.207506, -0.769319, 0.088833, -0.530641, -0.196647, -0.154809, 0.049708, -0.876819, + 0.853599, -0.425521, 0.312452, 0.688644, 0.40297, 0.70032, 0.564683, 0.732242, 0.211058, + 0.638699, -0.434674, -0.538845, 0.477505, 0.262385, -0.0375, -0.843509, 0.326764, 0.647753, + -0.115455, 0.229741, 0.445181, -0.987579, -0.164528, -0.370965, -0.511118, 0.611208, 0.991488, + 0.15956, 0.622384, -0.741882, 0.176174, -0.129332, -0.61676, 0.205043, 0.318326, -0.0483, + 0.424644, 0.480109, 0.907042, 0.057968, 0.035628, -0.014313, 0.138003, -0.648418, -0.123089, + -0.845632, -0.701429, -0.851788, 0.741599, -0.5747, -0.080702, 0.106909, 0.883217, 0.45384, + -0.712133, 0.978076, -0.947187, 0.130018, 0.913705, 0.867252, -0.231774, -0.667362, 0.439101, + 0.770862, -0.5331, -0.158241, -0.608152, 0.381887, 0.21285, 0.495694, -0.343098, -0.96531, + -0.421129, -0.782083, -0.24091, 0.363421, -0.831932, -0.046678, -0.97838, -0.708649, -0.700139, + -0.340485, -0.506678, 0.153924, 0.611304, 0.754028, 0.315077, -0.006617, -0.178204, 0.679003, + -0.57273, 0.722809, -0.962812, -0.74637, 0.265264, -0.41187, 0.186571, 0.8713, 0.456732, + 0.978769, -0.423569, -0.47753, -0.126971, -0.2014, -0.43987, -0.062086, 0.90342, -0.548158, + 0.561583, 0.464546, 0.579118, 0.269781, -0.369415, 0.412714, -0.470996, -0.613817, 0.934795, + 0.828888, -0.722703, 0.812253, 0.20736, 0.256327, 0.963866, -0.052508, -0.318048, 0.627776, + -0.258314, -0.240062, -0.403255, 0.984289, 0.477161, -0.162111, -0.01995, 0.069988, -0.592796, + 0.283925, -0.776128, -0.046625, -0.187635, -0.408316, 0.924888, 0.28006, 0.481732, -0.658256, + 0.159373, 0.267975, 0.519119, -0.295078, -0.196376, -0.811891, 0.607777, 0.667557, 0.469088, + 0.508216, 0.59895, 0.942605, 0.327489, 0.360983, 0.314535, -0.564721, 0.250898, 0.301292, + -0.795953, -0.295956, -0.616995, -0.638959, 0.694942, 0.786686, -0.137853, 0.306507, -0.234204, + 0.212018, -0.167407, -0.520214, -0.420736, 0.993312, 0.168565, -0.546856, 0.113517, -0.997655, + 0.008821, 0.767653, 0.115342, 0.23826, -0.941969, -0.188089, 0.590084, -0.733203, -0.467809, + 0.675806, 0.287179, 0.467473, -0.932517, 0.636449, -0.218113, 0.210166, 0.808301, -0.92156, + 0.286112, -0.904023, 0.740339, 0.293632, 0.111269, -0.400612, 0.377035, -0.519054, 0.191158, + 0.839783, -0.750602, -0.285324, 0.233568, 0.173578, 0.013752, 0.86032, -0.259864, 0.257952, + 0.529963, -0.193892, 0.653433, 0.6531, 0.4453, -0.243968, 0.86861, -0.577822, 0.309066, + 0.20079, 0.705827, -0.819665, 0.174336, -0.57589, 0.530032, 0.343393, -0.777885, -0.062607, + 0.279734, 0.42599, 0.889637, 0.449092, 0.19071, 0.533434, -0.946245, 0.666728, -0.117574, + 0.565964, 0.286363, -0.052735, 0.70391, -0.582957, 0.282001, 0.438376, -0.355882, 0.362267, + -0.989151, -0.505069, 0.486205, 0.51542, -0.917898, 0.346068, 0.094028, 0.976145, -0.975385, + -0.238335, -0.566338, -0.608478, -0.163327, -0.919076, 0.783452, -0.353801, 0.350392, -0.58843, + 0.005392, -0.708433, 0.804882, 0.843377, 0.78729, -0.350074, 0.622387, -0.835503, 0.45884, + -0.123434, -0.828674, -0.802551, -0.935789, 0.187391, -0.361688, -0.460564, 0.952005, -0.304676, + 0.337297, -0.176043, 0.603079, 0.298416, 0.63326, 0.261119, -0.219168, 0.88383, -0.071291, + -0.598643, 0.311192, -0.121346, -0.741631, 0.130815, -0.232349, -0.398232, -0.477266, -0.42556, + -0.404963, 0.098259, 0.966068, -0.586135, -0.46652, -0.670347, -0.037946, 0.070114, -0.686393, + 0.45677, -0.896867, 0.925563, 0.188188, -0.100785, -0.358066, 0.449, 0.730234, -0.654088, + -0.250658, 0.736156, -0.187407, -0.73634, -0.321366, 0.034543, -0.186687, -0.685296, -0.626492, + 0.270389, 0.68614, 0.909721, -0.113029, 0.384753, -0.794221, 0.532867, 0.955551, 0.520745, + -0.395381, 0.815319, -0.947078, -0.119997, -0.247776, -0.997466, -0.570476, -0.728586, 0.268771, + -0.08318, 0.459274, -0.224954, 0.82488, 0.113268, 0.828942, 0.812048, -0.848052, -0.671571, + 0.602327, 0.944772, -0.853515, 0.014636, -0.384461, 0.941463, 0.830724, 0.727803, 0.538144, + -0.093801, 0.922738, -0.46795, 0.049424, -0.263117, -0.729506, -0.473887, 0.24246, -0.089221, + -0.662451, -0.127131, 0.172706, -0.699651, 0.603936, -0.850188, 0.009567, -0.818023, -0.901754, + -0.124222, 0.907575, 0.945343, 0.359409, 0.775099, -0.546649, 0.562993, 0.610165, -0.9557, + -0.766331, 0.432022, 0.092406, -0.67688, -0.789123, 0.722729, 0.109241, -0.002213, -0.966715, + 0.877393, -0.66106, 0.445588, -0.120243, 0.032586, 0.49101, -0.266389, -0.280546, 0.797184, + -0.76628, 0.445009, -0.258071, -0.334132, 0.669417, 0.168825, -0.931015, 0.893623, -0.496203, + 0.864486, -0.313844, 0.975039, 0.295002, -0.048308, 0.381733, -0.031097, -0.495984, 0.547009, + 0.64862, -0.125279, 0.94062, 0.063506, -0.528854, -0.544949, 0.672829, -0.405087, 0.631607, + -0.971394, 0.034447, -0.690946, 0.354723, 0.812122, 0.393512, -0.343827, -0.938111, -0.4738, + -0.589817, 0.954917, -0.537663, 0.386653, 0.802766, 0.360518, -0.877506, -0.113596, -0.296798, + 0.644312, -0.093804, -0.052745, 0.889571, 0.237962, 0.463555, -0.321909, 0.653974, 0.143781, + -0.200873, 0.192713, -0.787145, 0.03677, 0.458613, -0.936386, -0.53118, 0.626521, 0.022678, + -0.034062, 0.102049, -0.44882, 0.826923, -0.099153, -0.36411, 0.52639, -0.832348, -0.184453, + 0.100788, -0.310342, 0.544254, -0.853999, -0.288294, -0.420298, 0.925333, 0.399085, -0.745963, + 0.387565, -0.021207, 0.915426, 0.551865, -0.584028, 0.89139, -0.178855, -0.227709, 0.299028, + 0.993511, 0.301729, -0.964864, -0.319225, 0.931187, -0.352453, -0.481095, -0.797087, -0.552013, + -0.546745, 0.238827, 0.399526, 0.954375, 0.656268, 0.014776, 0.539296, 0.571587, -0.862525, + 0.504595, -0.684067, 0.772217, -0.434943, 0.207488, -0.01064, 0.463943, 0.15554, -0.725395, + 0.405091, 0.589896, -0.520764, -0.648707, -0.680934, -0.486555, -0.126076, 0.07477, -0.007053, + -0.264489, 0.620558, 0.052847, -0.580653, -0.26465, -0.587935, -0.352787, -0.943305, 0.17473, + -0.774837, 0.386765, 0.68504, -0.743928, -0.527731, -0.790137, 0.266871, 0.193495, -0.516148, + 0.604081, 0.414947, -0.903538, -0.054395, -0.430489, -0.17339, 0.556805, -0.10756, -0.694514, + 0.703435, -0.914046, -0.343433, 0.385314, 0.883889, 0.970543, -0.23492, 0.333697, -0.878231, + -0.19458, -0.311056, 0.283874, -0.655203, 0.216047, 0.516635, 0.779347, -0.169088, 0.913606, + -0.944806, -0.283374, 0.379115, 0.256426, 0.470938, -0.663575, 0.615732, -0.938525, -0.685678, + -0.068008, -0.971507, -0.950529, -0.887733, 0.803989, 0.219355, -0.319071, -0.041099, -0.871619, + -0.944451, -0.697379, -0.967438, 0.657913, -0.349931, -0.269944, -0.861146, 0.165621, -0.150034, + -0.680788, 0.641161, 0.84291, -0.712779, 0.56658, -0.162377, -0.009441, 0.425649, -0.182318, + 0.849643, 0.615266, -0.649132, -0.608562, -0.9908, 0.320166, -0.752187, -0.838179, -0.640967, + -0.988672, -0.814243, 0.891965, 0.558585, 0.886026, -0.485081, -0.410151, -0.350868, 0.019531, + -0.717765, 0.146602, -0.640899, 0.15802, 0.915998, 0.168899, 0.729444, -0.712209, -0.141124, + -0.617478, -0.110947, -0.397797, -0.567788, -0.965941, -0.370793, 0.133918, -0.17592, -0.931345, + 0.751178, 0.741487, -0.602901, 0.101655, 0.664009, -0.949648, -0.8836, 0.554865, -0.019806, + 0.318438, -0.415855, 0.181311, 0.663241, -0.244648, -0.323005, -0.952189, -0.154308, 0.633666, + -0.945069, -0.077247, 0.728935, -0.285415, -0.369468, -0.301632, -0.405157, 0.119686, -0.962804, + 0.382137, -0.252556, -0.127319, -0.067469, 0.558635, -0.621165, -0.909984, -0.723349, -0.73359, + -0.486869, 0.789816, -0.773615, -0.587828, -0.815204, -0.502363, -0.028073, -0.609766, 0.01057, + 0.337939, -0.170138, 0.43146, 0.229468, 0.966008, -0.051054, 0.866759, 0.748493, 0.478049, + 0.565934, -0.669702, -0.669746, 0.427043, 0.363101, 0.902436, -0.130201, -0.183829, 0.685537, + 0.032295, 0.938822, -0.510073, -0.328102, 0.043208, 0.533344, -0.876668, -0.279916, 0.726239, + 0.208221, 0.706979, -0.338735, -0.630382, -0.682708, -0.56223, -0.751508, 0.495569, 0.268785, + -0.639824, 0.916597, 0.284699, 0.372157, -0.421353, 0.692338, -0.705389, 0.728927, -0.543414, + 0.424736, -0.361764, 0.649669, -0.838671, -0.194979, -0.269916, -0.597972, -0.491194, -0.280605, + 0.103689, 0.709806, -0.164327, 0.980201, -0.47587, -0.514815, -0.052163, -0.181033, 0.317633, + 0.923986, 0.34239, -0.836769, -0.341659, -0.198664, -0.910596, 0.309188, 0.872906, 0.496654, + -0.019801, -0.076131, -0.468294, -0.111094, 0.877037, -0.514122, 0.159986, -0.733721, -0.273462, + 0.057907, -0.755099, 0.271699, -0.858724, -0.408504, 0.695898, 0.938054, -0.078184, -0.714742, + -0.821073, -0.245752, -0.510308, 0.794911, -0.712869, 0.601933, 0.190129, -0.304152, 0.815147, + 0.556489, -0.034975, -0.677778, -0.294326, 0.322427, 0.86647, -0.337458, -0.415583, -0.977051, + 0.614644, 0.976026, 0.688479, -0.557212, 0.716378, -0.303168, 0.522819, 0.584715, -0.815295, + 0.247468, 0.399223, -0.601168, 0.924549, 0.780675, 0.835765, -0.009021, -0.535039, -0.546479, + 0.353447, -0.198669, 0.794818, 0.837505, 0.077169, -0.818685, 0.39693, 0.894895, -0.251169, + -0.523351, -0.233927, 0.14327, -0.741964, 0.534037, 0.427446, -0.382332, -0.370445, -0.474491, + 0.781696, 0.593094, 0.28423, -0.044851, 0.249814, 0.9648, 0.316618, -0.49873, 0.38683, + -0.396841, -0.035509, -0.644077, -0.029257, 0.052169, -0.606477, 0.6429, 0.923589, -0.836437, + 0.289765, -0.690804, -0.198758, 0.479016, -0.017554, 0.303032, -0.323999, 0.954324, -0.469489, + 0.187165, 0.102647, 0.681177, 0.102118, 0.602919, 0.257653, 0.637618, 0.012639, 0.333682, + 0.98642, -0.325796, -0.406928, 0.725909, 0.382399, -0.943909, 0.355663, -0.980754, -0.542923, + 0.391344, 0.526775, -0.225795, 0.846466, 0.993784, 0.779775, -0.918457, -0.363738, 0.060841, + 0.812772, -0.167747, 0.208899, 0.526342, -0.523199, -0.605595, 0.988934, -0.022314, 0.707588, + -0.975092, -0.381699, 0.701687, -0.096814, 0.336825, -0.83772, 0.973327, -0.499111, -0.050564, + -0.654996, -0.443673, -0.857287, -0.875288, -0.204296, -0.441089, 0.738698, -0.004838, 0.777596, + -0.16749, 0.212155, 0.960403, -0.7738, -0.433205, 0.854902, -0.229267, -0.269314, 0.080254, + -0.536842, 0.071918, -0.415629, 0.31724, -0.212276, -0.335564, -0.376706, 0.259808, 0.50184, + -0.91424, -0.69743, -0.959718, 0.466796, 0.749976, -0.960801, 0.259961, 0.202804, -0.536633, + 0.216052, 0.771077, 0.980869, 0.432425, -0.198285, -0.568981, -0.380859, 0.008202, -0.073436, + 0.729682, -0.903709, 0.089256, -0.318049, 0.083392, 0.961642, 0.029254, -0.173438, -0.338936, + -0.997938, -0.90601, 0.435719, -0.610667, 0.567747, -0.283512, 0.360774, 0.729995, 0.146287, + 0.343359, 0.845076, -0.314235, 0.73542, -0.841026, 0.915696, -0.328014, -0.037638, 0.560988, + 0.073417, 0.874414, -0.439517, -0.55117, 0.892704, -0.603592, 0.688185, 0.963117, 0.676932, + -0.378074, -0.014782, -0.9012, -0.544515, -0.206979, -0.660698, 0.576913, 0.523992, -0.286163, + -0.157269, 0.965961, -0.061594, 0.849364, 0.926313, -0.350777, -0.955083, 0.932767, -0.537653, + 0.956274, -0.638397, 0.181373, 0.295669, -0.23622, 0.779814, -0.906674, -0.415538, -0.157413, + 0.765884, 0.46315, 0.643254, 0.43044, 0.899429, -0.249042, -0.308712, -0.137319, 0.393387, + -0.293251, 0.367281, 0.274169, 0.235131, 0.814741, 0.159275, 0.663583, -0.278802, -0.89863, + 0.61116, 0.414732, 0.840075, 0.382093, 0.019985, -0.721804, -0.948087, 0.200692, 0.815804, + -0.077739, -0.326236, 0.50028, -0.484145, 0.352863, -0.81148, -0.90627, -0.583398, -0.17122, + 0.337199, 0.505972, -0.63295, -0.205378, 0.329266, -0.220532, 0.015028, 0.647406, -0.288484, + 0.515562, 0.812541, 0.333364, -0.177689, -0.633181, -0.660947, -0.1943, 0.312516, 0.546918, + -0.04824, 0.805845, -0.396072, 0.199413, -0.511971, 0.26871, 0.853469, 0.350399, 0.067003, + -0.368029, -0.820454, -0.68431, -0.857792, 0.710745, -0.417176, -0.149626, -0.896106, -0.27884, + 0.850565, 0.18385, -0.178563, 0.521209, 0.770953, 0.778167, -0.739897, 0.071797, -0.82117, + -0.689474, 0.767884, -0.796719, -0.490417, 0.47957, 0.972973, -0.971416, -0.64528, -0.392133, + 0.774658, 0.582771, 0.623424, 0.640761, -0.250263, 0.737336, -0.0281, 0.093954, -0.265192, + 0.424211, 0.446562, -0.106, 0.880339, -0.258986, 0.25311, 0.90826, 0.563416, -0.364141, + -0.452981, 0.192995, -0.007579, 0.070379, 0.644164, 0.34955, -0.560844, -0.816465, 0.945418, + -0.11009, -0.393964, -0.734461, 0.960279, 0.504606, -0.633936, -0.863667, 0.868722, 0.430542, + -0.14689, -0.831086, 0.606106, -0.678821, 0.491403, -0.94978, -0.89161, -0.959325, 0.906543, + 0.908739, -0.853284, 0.773034, -0.607826, -0.929353, 0.481261, 0.566862, 0.566828, 0.175497, + 0.959708, -0.861456, 0.461391, -0.316885, 0.049388, 0.689688, -0.716105, 0.438232, -0.19974, + 0.64682, -0.02626, 0.496137, 0.959492, -0.35705, -0.985047, 0.943276, -0.550559, 0.228529, + 0.621938, -0.155294, 0.781534, 0.648054, -0.201328, 0.262188, 0.075784, 0.978289, 0.692329, + -0.666042, 0.096352, 0.539359, 0.764504, 0.341432, 0.424917, -0.184634, 0.02169, -0.692105, + 0.823241, 0.787439, -0.550646, -0.856144, 0.779788, -0.886311, 0.641322, -0.97404, -0.511253, + -0.423395, 0.939805, -0.169215, 0.862587, 0.290542, 0.968783, 0.662348, 0.736474, 0.871849, + -0.295451, -0.274945, 0.322209, 0.880942, -0.368008, -0.786614, -0.782261, -0.462, 0.159565, + -0.115721, -0.26668, -0.467498, 0.260104, -0.823717, 0.983823, -0.154868, 0.186588, 0.329423, + -0.389091, 0.789192, -0.007412, 0.082034, -0.951961, 0.123779, 0.343126, 0.139348, -0.099104, + 0.755093, 0.790604, 0.688462, -0.173562, 0.172745, -0.698218, -0.748642, -0.174774, 0.111775, + -0.582454, -0.834694, 0.454918, 0.365613, -0.660703, 0.665437, -0.747463, 0.75646, 0.531244, + -0.337967, 0.952057, -0.561474, -0.456791, 0.79704, -0.257682, -0.403888, 0.154733, -0.168976, + 0.629991, 0.816429, 0.444818, 0.216268, 0.251217, 0.026035, 0.117437, 0.018989, 0.681895, + 0.559219, -0.100543, 0.377626, 0.055306, 0.353383, 0.821001, -0.680375, 0.142109, -0.208041, + -0.977616, -0.971724, -0.130939, 0.715721, -0.659386, 0.325737, 0.57635, -0.72888, 0.429465, + 0.188734, -0.910412, -0.019227, -0.938808, 0.874303, 0.468682, 0.383164, 0.767726, 0.764764, + 0.992751, 0.412582, -0.721978, 0.928836, 0.277785, -0.3942, -0.372165, 0.935736, 0.222142, + 0.726845, 0.07799, 0.923734, -0.731732, 0.238333, 0.238618, -0.011533, 0.889574, 0.200812, + 0.054171, 0.682532, -0.078946, -0.064611, -0.824459, -0.006552, -0.466775, 0.578982, 0.869938, + -0.93293, -0.579215, 0.96277, -0.426822, 0.889336, 0.984564, -0.250787, -0.809492, 0.500019, + 0.454573, 0.86902, 0.14443, 0.54375, -0.857439, 0.137816, 0.235358, 0.626758, -0.5353, + -0.119504, -0.596066, -0.673012, 0.416291, 0.15249, 0.397346, -0.022771, -0.024566, -0.038397, + 0.540162, -0.691941, 0.215564, 0.548334, 0.579991, -0.479879, 0.774382, -0.666462, 0.521438, + 0.818002, 0.032086, 0.30636, -0.947321, -0.39556, -0.392892, -0.931034, -0.211763, 0.698119, + -0.095479, 0.988177, -0.900175, 0.398815, 0.86471, 0.971959, -0.387915, -0.902913, -0.367543, + 0.741308, 0.087617, 0.9558, -0.730178, -0.626182, 0.509633, 0.342879, -0.649681, 0.930316, + -0.385663, -0.831099, 0.277907, -0.560234, -0.475878, -0.558637, 0.271989, 0.468494, 0.672566, + -0.565867, -0.233711, 0.933422, -0.513693, -0.361464, -0.192285, -0.885481, -0.739126, 0.89089, + 0.184594, 0.186842, 0.39643, 0.608148, 0.671713, 0.716237, 0.403612, 0.753867, 0.653376, + -0.16721, 0.090076, -0.523815, -0.752465, 0.948482, -0.744664, -0.625169, -0.965951, -0.766005, + 0.227316, 0.479983, -0.833532, 0.079577, -0.738253, 0.189332, 0.597302, -0.383678, -0.439023, + 0.651349, -0.644469, -0.204374, -0.832588, 0.700735, 0.318942, -0.397267, 0.711633, 0.946841, + 0.408183, -0.706182, -0.218054, 0.804399, 0.726719, -0.328761, 0.66173, -0.654163, 0.268248, + 0.881506, 0.1815, -0.794613, 0.299927, 0.557317, 0.695477, -0.657801, -0.179506, -0.052046, + -0.174835, -0.22193, -0.360325, 0.344388, 0.475202, -0.19423, 0.785821, -0.005374, 0.243776, + 0.250269, -0.340488, -0.043898, -0.111683, 0.378177, -0.537247, -0.459044, -0.965255, -0.435019, + 0.318745, 0.808282, -0.985864, -0.35975, 0.629145, -0.540775, 0.675183, 0.040357, -0.940206, + 0.169088, -0.599398, 0.194355, -0.89601, 0.939662, -0.426665, 0.639558, -0.629177, -0.838102, + 0.393433, 0.6012, -0.008994, -0.845706, -0.274302, -0.692976, 0.283267, 0.161923, 0.694922, + 0.998221, -0.462273, 0.790081, 0.694766, 0.153716, -0.980441, -0.693577, 0.435731, 0.743079, + 0.53443, 0.094252, -0.608148, -0.878707, -0.571466, 0.007451, 0.131811, 0.765875, -0.721244, + 0.523016, 0.847108, -0.90385, -0.532825, -0.279081, 0.191864, 0.895747, 0.204081, 0.676617, + 0.809129, 0.785051, -0.912029, -0.653333, -0.065384, -0.003649, 0.084302, 0.84009, 0.905733, + -0.292581, -0.462297, 0.080996, 0.126529, 0.616719, 0.355273, 0.311612, 0.328292, 0.744529, + 0.595561, -0.098361, -0.697777, 0.674296, -0.081529, -0.716412, -0.166655, 0.7358, -0.459661, + -0.096423, 0.337352, 0.719077, -0.149665, -0.718289, -0.418031, -0.322793, 0.10909, -0.678994, + 0.881124, 0.263637, -0.72037, 0.546101, 0.050465, 0.978409, -0.020095, -0.013188, -0.965122, + -0.82599, 0.003497, 0.848637, -0.618402, 0.195792, -0.689147, -0.775056, -0.3677, -0.66948, + -0.827391, -0.306944, -0.136633, 0.497869, 0.459761, -0.013126, -0.2284, -0.212447, -0.821384, + 0.695143, 0.897009, -0.919379, -0.954815, -0.936972, -0.161285, -0.002415, -0.652959, 0.552577, + 0.065856, -0.506171, -0.967402, 0.778712, 0.991828, 0.09285, -0.478931, 0.635765, 0.589344, + -0.143497, 0.937763, -0.738941, -0.114597, 0.847461, -0.61875, -0.308462, -0.425156, -0.409368, + 0.880849, 0.616359, -0.909118, -0.611623, -0.013049, -0.325149, -0.550706, -0.982955, 0.737525, + 0.559887, 0.290156, -0.225046, -0.969321, -0.062605, 0.382297, -0.290219, 0.787142, 0.228543, + -0.04962, 0.39521, 0.521129, -0.733462, 0.304101, -0.908893, -0.209542, -0.324216, 0.763553, + -0.96321, 0.355285, -0.911219, 0.433512, 0.244905, -0.3935, 0.295371, 0.959771, 0.608807, + -0.912468, -0.259157, 0.907085, 0.154712, 0.123285, 0.071347, -0.351585, -0.261591, 0.066366, + 0.752753, -0.281848, -0.261693, 0.19036, -0.366006, 0.87226, 0.752264, 0.042011, -0.64667, + 0.279867, 0.848051, 0.32944, 0.419157, -0.529314, -0.985107, -0.376028, 0.031958, 0.888471, + 0.208795, -0.18332, -0.251275, -0.191204, -0.537729, -0.418651, 0.185779, 0.677212, 0.849367, + 0.385097, -0.690972, 0.924453, 0.965609, -0.297175, 0.034478, 0.905198, -0.35165, 0.474067, + 0.166331, 0.557426, 0.348414, 0.992136, 0.847497, -0.682337, 0.601793, -0.19785, -0.523228, + 0.167725, -0.136113, -0.651672, -0.882679, -0.557311, 0.102956, 0.609434, 0.589261, 0.266675, + 0.948627, -0.856482, -0.629427, 0.430459, -0.910849, 0.943121, 0.13788, -0.36855, 0.892291, + 0.466245, 0.841012, 0.753377, -0.17404, 0.907784, 0.132061, 0.096832, 0.347479, -0.782876, + -0.597923, 0.94625, -0.654408, 0.540336, 0.604369, -0.81185, -0.114608, -0.0107, 0.741893, + -0.273649, 0.9032, -0.839116, 0.417762, 0.546002, -0.360246, -0.328863, -0.636945, 0.265305, + 0.335114, -0.351489, 0.808699, -0.153225, -0.155816, 0.781021, 0.175213, 0.535311, 0.589429, + -0.654567, -0.012666, 0.883158, -0.618355, 0.13097, 0.742827, 0.110413, -0.224226, 0.361615, + -0.827148, 0.82159, 0.785564, -0.280033, -0.361758, -0.195607, 0.994972, -0.38386, 0.299443, + -0.949392, 0.302268, 0.605906, 0.32368, -0.047518, 0.072978, 0.865978, 0.43458, -0.231074, + -0.803206, 0.72881, -0.372306, 0.623478, -0.200977, 0.016597, -0.788635, -0.380963, 0.082509, + -0.9664, -0.20579, 0.581049, 0.702845, 0.736592, -0.304963, 0.078717, -0.802452, 0.518012, + 0.177056, 0.837026, -0.155568, 0.956393, 0.495434, 0.853412, -0.06508, -0.784626, -0.784248, + -0.942889, 0.166215, -0.773295, -0.326659, 0.508145, 0.909089, -0.250802, 0.692351, -0.075776, + -0.200116, -0.118343, -0.453432, 0.273697, -0.005413, -0.487233, 0.636058, -0.446738, -0.677279, + 0.347145, -0.061407, -0.550489, -0.816331, -0.29961, -0.765667, 0.543896, -0.124559, 0.515057, + 0.486766, 0.080546, -0.153967, -0.515745, 0.22513, -0.869547, -0.487291, 0.797466, -0.194097, + 0.806723, 0.592174, -0.210806, -0.804893, 0.803093, 0.084242, 0.945038, -0.904412, 0.206073, + -0.86159, -0.121412, -0.876512, -0.910177, 0.050447, 0.985877, 0.076623, -0.092647, 0.932141, + 0.091538, -0.558366, 0.635887, 0.713549, 0.867098, 0.786419, 0.929564, -0.370883, 0.143788, + -0.364903, -0.13311, 0.790612, -0.790131, 0.546464, -0.577783, 0.005484, -0.119062, -0.450428, + 0.085275, -0.506558, 0.905745, -0.362013, 0.632947, -0.238198, -0.78733, 0.776281, -0.276124, + -0.414268, 0.074969, -0.010188, 0.282181, -0.242628, -0.288519, 0.547135, 0.458346, 0.883893, + 0.110361, -0.259596, -0.213045, -0.203783, -0.316027, -0.341282, -0.281753, 0.301579, 0.395674, + 0.761126, -0.973131, 0.775464, -0.201472, -0.977185, 0.653745, -0.566957, -0.450627, 0.331887, + 0.163802, 0.681673, -0.697757, 0.543263, 0.521225, 0.618981, -0.332842, 0.169833, 0.294345, + 0.942876, -0.607674, -0.91819, -0.9044, 0.132443, -0.760014, -0.185117, -0.467466, 0.18115, + -0.708618, 0.616677, -0.982387, -0.54786, 0.20635, -0.983587, 0.246481, -0.374116, -0.505052, + 0.71683, -0.322894, 0.236397, -0.386128, 0.467804, 0.910666, 0.959938, -0.604899, -0.994042, + -0.69928, 0.281707, 0.401451, 0.525214, 0.434243, 0.972821, -0.758325, -0.78398, -0.313151, + 0.77617, -0.767871, 0.749745, 0.166392, 0.618568, 0.990748, 0.973328, 0.960007, -0.245401, + -0.426717, 0.424536, 0.852776, 0.024898, -0.236716, -0.161739, -0.356935, 0.480163, -0.994579, + 0.850919, -0.036723, -0.606208, -0.356703, -0.613851, -0.86892, 0.100622, -0.227108, -0.448891, + -0.170307, -0.137876, 0.440565, -0.808911, -0.023447, -0.013647, -0.817483, 0.921798, -0.474062, + 0.79338, 0.766485, 0.027083, 0.744595, -0.752498, -0.109923, -0.824891, -0.608762, 0.315943, + 0.745154, -0.593427, -0.40406, -0.560701, -0.086882, -0.830621, -0.791505, -0.217556, 0.960805, + 0.172265, -0.416256, 0.66851, 0.738056, 0.683441, 0.009308, -0.108336, 0.64953, 0.537553, + 0.758236, 0.720216, -0.283849, 0.846984, 0.19565, 0.995583, 0.994818, 0.838675, 0.665663, + 0.785174, -0.470017, -0.389295, -0.233051, -0.511829, 0.734709, 0.093483, -0.253273, -0.448033, + -0.890314, 0.071751, 0.879038, 0.657529, 0.792587, 0.683238, 0.420799, -0.028796, -0.739775, + 0.735241, -0.703685, -0.601334, 0.401269, 0.549194, -0.520388, 0.632861, -0.935868, 0.238301, + 0.441467, 0.185745, -0.562707, -0.675344, 0.799244, 0.220306, -0.429606, 0.963192, -0.208732, + -0.18492, 0.257393, 0.832551, -0.44515, 0.005041, -0.448946, -0.452942, -0.136312, -0.00103, + 0.5362, -0.746939, 0.580305, 0.781271, -0.114001, -0.089578, 0.246605, -0.91552, 0.735819, + -0.174934, 0.040218, 0.474092, 0.416394, -0.462704, -0.734516, -0.964707, -0.835029, -0.210218, + -0.776323, -0.100973, -0.528315, 0.566634, 0.68401, 0.846005, -0.655753, -0.705712, 0.346897, + -0.228361, 0.758381, -0.917397, 0.927336, -0.693618, -0.801915, -0.106042, -0.443005, -0.630392, + 0.570908, 0.772323, 0.556759, 0.122061, -0.143901, -0.545614, 0.953124, -0.544655, -0.876777, + 0.848422, -0.080649, 0.671921, -0.331912, 0.778871, -0.705172, 0.601784, 0.778312, -0.013981, + 0.663164, 0.035486, -0.915579, 0.438094, -0.7774, 0.031427, -0.899526, -0.476118, -0.297962, + -0.388618, -0.985057, -0.496686, -0.926575, -0.836015, -0.997678, -0.576067, -0.224084, 0.900876, + -0.703513, -0.760436, -0.814062, 0.935538, -0.127885, -0.26606, 0.548292, -0.590849, -0.264283, + 0.916575, 0.532614, -0.775732, -0.274843, 0.0982, 0.361306, -0.460068, 0.700191, 0.015638, + -0.864623, 0.267959, -0.970758, 0.069619, -0.989028, -0.285245, -0.232405, -0.898268, -0.282852, + 0.033581, -0.563415, 0.141913, 0.528064, 0.118021, -0.981559, -0.00316, -0.468644, 0.285041, + -0.802364, -0.691735, -0.033197, 0.576643, -0.267154, -0.052732, -0.099035, -0.782447, -0.079118, + -0.028145, 0.165523, 0.447576, 0.29781, 0.557671, -0.190639, -0.43199, 0.849253, 0.797324, + 0.545213, 0.728464, 0.489772, 0.883974, 0.869899, -0.813062, -0.942368, -0.518823, 0.764583, + 0.902923, 0.065234, -0.739377, -0.469998, 0.475382, 0.931495, 0.193689, -0.657672, 0.948798, + 0.878098, -0.438695, -0.540337, 0.574909, -0.722632, 0.834719, -0.201866, -0.01361, -0.534234, + -0.988609, 0.226245, -0.356285, -0.586345, 0.797112, 0.185434, -0.268132, -0.922186, -0.562938, + -0.326426, 0.420375, -0.911417, 0.577539, 0.909615, 0.309448, -0.992874, 0.130464, -0.403553, + 0.316325, -0.03738, 0.489282, -0.08136, 0.180374, 0.39841, -0.740897, 0.166768, 0.891116, + 0.69826, 0.062246, -0.175851, 0.413487, -0.879369, -0.30119, 0.867368, 0.128689, -0.012937, + -0.787114, -0.648128, 0.138297, -0.751691, -0.289172, -0.492628, 0.308176, 0.152767, -0.965533, + 0.330055, -0.090161, -0.48446, 0.736668, -0.658338, -0.912132, 0.109025, -0.542761, -0.406094, + -0.874541, -0.248527, 0.794491, -0.907307, -0.676203, -0.218833, -0.791415, 0.187186, -0.198719, + 0.756477, -0.993836, 0.033478, 0.440967, 0.129815, -0.272331, 0.937815, -0.776227, 0.931392, + 0.272248, 0.476172, 0.704965, 0.099525, 0.106036, -0.202768, -0.90716, 0.421252, 0.747909, + 0.41812, -0.156034, -0.89516, -0.016529, 0.260059, -0.782712, 0.850339, -0.026333, 0.273125, + 0.882185, 0.434118, -0.541862, 0.368775, 0.587988, 0.498918, -0.469829, 0.101572, -0.718521, + -0.112349, -0.69392, 0.571664, 0.978422, -0.9685, -0.467212, -0.422985, -0.700222, 0.909943, + -0.77244, -0.522807, -0.830732, -0.003318, -0.74019, -0.673611, 0.994391, 0.446859, 0.424244, + 0.709196, 0.17279, 0.162272, -0.751084, 0.280932, -0.781262, -0.004351, -0.539641, -0.566818, + -0.585499, -0.484086, -0.594718, -0.546887, -0.36427, -0.913709, 0.800444, 0.33604, -0.994658, + -0.999507, -0.503617, 0.385869, 0.915303, -0.155771, 0.594996, -0.53937, -0.207561, -0.155025, + -0.973589, 0.005217, 0.264666, 0.60951, -0.773747, -0.301096, 0.037725, 0.106079, 0.168648, + -0.742832, 0.776122, -0.903643, -0.34716, 0.498327, -0.249399, -0.481838, -0.986537, 0.688745, + -0.022454, 0.483023, 0.159539, -0.743676, -0.353356, 0.713032, -0.489707, -0.460753, 0.54838, + -0.4334, 0.163244, -0.486146, 0.307817, 0.101725, -0.793758, -0.758469, 0.367708, -0.327495, + 0.547782, 0.05204, -0.341971, -0.174012, -0.455607, 0.493454, 0.793206, -0.031146, -0.644676, + 0.718871, 0.813704, 0.681712, -0.018099, 0.24582, 0.050864, -0.379824, -0.990176, -0.122229, + 0.432504, 0.583313, 0.237839, 0.456006, 0.625957, -0.193324, 0.652998, -0.021004, -0.354153, + -0.388325, -0.582803, -0.770198, 0.229081, 0.924051, 0.142157, 0.135154, -0.375143, -0.394195, + -0.313424, 0.346137, 0.172406, -0.367417, 0.195945, -0.174716, -0.068116, 0.709065, -0.416698, + 0.933058, -0.546967, 0.926465, 0.375676, 0.401529, -0.228749, -0.27252, -0.731464, -0.958977, + 0.700152, 0.970032, 0.28676, -0.391152, 0.219626, -0.037451, -0.86441, -0.800878, 0.347198, + -0.291976, -0.237847, -0.602923, 0.441016, -0.504628, -0.319358, 0.53503, 0.961328, 0.891495, + 0.393653, 0.035523, 0.751581, 0.884144, 0.448942, 0.29396, 0.241135, 0.101758, 0.660039, + 0.282877, -0.843142, -0.59071, -0.908126, -0.300539, 0.05111, -0.42397, -0.919675, -0.650362, + 0.425591, -0.070442, -0.167651, 0.161901, -0.211233, -0.544973, -0.458889, -0.4076, -0.936027, + -0.922226, -0.378883, 0.375261, 0.977958, -0.027066, 0.682898, 0.330655, -0.796445, -0.500287, + -0.274381, -0.824212, 0.140053, 0.237533, -0.779535, -0.210469, -0.882062, 0.995817, 0.591468, + -0.377222, 0.859684, -0.625909, 0.841289, -0.384841, 0.292179, 0.694898, 0.465573, 0.242331, + -0.115313, 0.007362, 0.853856, -0.326803, -0.324451, 0.12779, -0.485204, -0.378075, 0.078141, + 0.752076, 0.326048, -0.617907, 0.603825, -0.368282, 0.257891, 0.058888, 0.714186, -0.223358, + -0.406321, -0.199208, 0.009089, -0.471915, 0.687312, -0.536139, 0.158196, -0.767773, -0.124169, + -0.21547, -0.40006, 0.522759, -0.89291, 0.104887, -0.093547, -0.52007, 0.777666, 0.627766, + 0.30219, 0.019453, 0.554258, -0.439257, -0.813733, 0.9596, -0.374342, 0.200591, 0.019971, + 0.841868, 0.994682, -0.672794, -0.010665, -0.810717, 0.645876, 0.954784, -0.382245, 0.181243, + -0.220181, -0.24226, 0.794031, -0.929123, -0.136935, -0.004101, -0.881968, 0.411192, 0.666864, + -0.794358, 0.386918, -0.064699, 0.936889, -0.942369, 0.848988, -0.371502, 0.84298, -0.510104, + 0.169376, 0.233278, 0.620386, 0.468709, 0.558867, -0.210505, -0.79117, 0.011612, 0.912127, + 0.865004, -0.588392, 0.687912, 0.449756, -0.180951, 0.545846, -0.041705, 0.121765, -0.655257, + -0.123148, 0.978916, 0.619499, -0.80817, -0.056638, 0.636986, -0.427939, -0.125255, 0.4988, + 0.840451, 0.90728, -0.722424, -0.94227, 0.706707, -0.077455, 0.902849, 0.709807, -0.390396, + 0.286488, 0.336437, -0.35792, 0.898466, 0.082056, -0.326838, -0.913401, 0.800322, -0.9916, + 0.761146, -0.350232, -0.18307, 0.135086, 0.983012, -0.658292, -0.710203, 0.601083, -0.485686, + -0.368003, 0.578097, -0.414515, 0.595635, -0.390014, 0.769202, 0.996191, 0.138318, -0.33291, + 0.562523, 0.279509, 0.004341, 0.892153, -0.057841, 0.351504, -0.297822, -0.181427, -0.043045, + 0.067285, 0.43732, 0.754347, 0.613034, -0.420605, 0.896335, 0.67546, 0.360491, 0.109134, + -0.565942, -0.596844, 0.005013, -0.743821, 0.350806, -0.907738, -0.891713, -0.449159, 0.575389, + 0.782999, -0.840526, -0.631532, 0.221845, -0.18226, -0.819505, 0.277799, -0.832374, 0.062585, + 0.407642, 0.922404, -0.853437, 0.746697, 0.13915, 0.870656, 0.984346, -0.249405, -0.155745, + -0.241739, 0.786489, -0.433041, 0.660407, 0.411282, 0.940264, 0.708304, 0.811569, -0.821955, + -0.526344, -0.709507, 0.496537, 0.203433, 0.381165, 0.375329, 0.042326, 0.381614, -0.542255, + 0.649693, -0.860922, -0.918858, 0.339613, 0.938819, -0.365839, 0.941976, -0.354971, -0.75991, + -0.155478, 0.553045, -0.520509, 0.937784, -0.447202, -0.442635, -0.416478, -0.761643, 0.932828, + -0.564976, -0.449913, -0.302999, 0.841797, 0.466513, 0.368189, -0.262962, 0.505376, 0.181403, + 0.796744, 0.221992, 0.733963, 0.690124, 0.174751, -0.958269, 0.20347, -0.754502, 0.17181, + -0.111987, 0.795666, -0.717793, -0.83601, 0.445707, 0.660263, -0.217644, 0.27066, 0.802557, + 0.099473, -0.2795, 0.578205, 0.90126, -0.169742, 0.678504, 0.083434, -0.209387, -0.087275, + -0.970777, 0.479725, -0.544295, -0.851661, -0.138642, -0.407433, -0.636493, -0.210528, -0.10554, + 0.303932, 0.137059, -0.13361, 0.22013, -0.647035, 0.846155, 0.489666, 0.632626, -0.891943, + 0.682579, 0.176763, -0.966366, 0.949531, -0.020927, 0.191783, 0.827302, 0.644882, 0.889675, + -0.933364, 0.988636, 0.243583, 0.012987, -0.785719, -0.537755, 0.970821, 0.743515, 0.779513, + -0.084038, -0.557027, 0.233494, -0.476504, -0.650943, 0.322966, 0.784358, -0.767144, -0.883922, + 0.13511, -0.352336, -0.534737, -0.20468, -0.05783, -0.277337, 0.740541, 0.554139, 0.314526, + -0.320672, -0.089135, 0.64832, 0.082914, -0.96473, 0.095017, 0.523632, -0.256504, -0.186682, + -0.135665, 0.614538, 0.825731, -0.784765, 0.658853, 0.409494, 0.350062, -0.568054, -0.570902, + 0.992967, 0.255903, -0.222554, -0.202543, 0.669512, -0.249108, 0.675625, -0.283525, 0.236374, + 0.263435, -0.512233, 0.024718, 0.199735, -0.978004, -0.196941, 0.095207, 0.823635, 0.221443, + -0.84996, -0.293095, 0.990072, -0.130131, 0.754413, 0.114733, 0.656173, -0.429736, 0.982393, + 0.211047, -0.204731, 0.768906, 0.493136, -0.672171, -0.071903, 0.716727, 0.24914, -0.31626, + -0.651077, -0.70026, 0.55588, 0.452498, -0.886131, -0.205327, 0.253092, -0.884766, 0.861798, + -0.106649, -0.406226, 0.111347, 0.36127, 0.222215, 0.948334, 0.562947, -0.096855, 0.17023, + 0.242318, -0.396622, -0.856885, -0.106373, -0.380901, -0.944632, 0.356629, -0.419579, 0.957412, + 0.357641, 0.425863, 0.291464, 0.39, 0.640285, 0.734626, -0.054644, -0.283486, 0.270934, + -0.451205, -0.050812, 0.29198, 0.446831, -0.967273, 0.387216, -0.38718, -0.704359, -0.425873, + -0.021575, 0.492471, -0.890629, 0.271628, 0.900985, -0.564972, 0.238957, -0.402018, 0.245853, + 0.433016, -0.616011, 0.239293, 0.988395, 0.070163, -0.709828, 0.012508, 0.220527, 0.307916, + -0.07209, -0.214312, -0.497212, 0.646199, -0.5649, -0.340376, 0.6635, -0.469941, -0.130522, + -0.398699, -0.886379, 0.482054, -0.444037, -0.461465, -0.22035, 0.273985, 0.878043, 0.884515, + 0.01366, -0.857666, 0.073791, 0.023107, 0.844542, -0.206692, -0.939626, 0.363301, -0.219311, + 0.348932, 0.300891, 0.356459, 0.553152, -0.701054, -0.814533, 0.936268, 0.914023, -0.394751, + 0.957489, 0.197416, -0.262765, -0.541584, -0.532165, 0.802393, -0.614662, -0.410177, 0.995498, + -0.488509, 0.983927, 0.446597, 0.496102, 0.227729, -0.179013, 0.445846, 0.297854, -0.545573, + -0.823799, -0.812735, -0.121026, 0.286, -0.633832, 0.184237, 0.576055, 0.58816, -0.373677, + 0.229236, -0.886641, 0.719434, -0.799198, 0.055503, -0.314145, -0.829139, -0.866799, -0.642419, + -0.725967, 0.763129, -0.153608, -0.667632, 0.003607, -0.451431, -0.144807, 0.859999, -0.882548, + -0.868719, 0.245076, 0.697009, -0.950072, 0.314172, 0.990757, -0.160659, -0.590065, 0.490587, + 0.564838, -0.103814, -0.815591, 0.038782, -0.647599, -0.853704, 0.624154, 0.6868, 0.401479, + -0.815963, 0.848063, 0.732594, 0.859443, -0.066468, -0.185201, -0.896853, 0.737937, -0.052436, + -0.999891, 0.977762, -0.129295, 0.601448, -0.147605, -0.157318, 0.879662, 0.830278, -0.466724, + 0.031244, 0.679247, 0.04806, -0.180208, 0.893423, 0.890467, -0.268055, 0.757131, -0.099043, + 0.029715, 0.802172, -0.077585, -0.099474, -0.217297, -0.834916, 0.774299, -0.784541, -0.767554, + 0.135347, -0.105312, 0.039199, 0.078677, 0.991115, -0.970928, -0.601242, 0.184467, -0.890237, + -0.790028, 0.766246, 0.387208, -0.310187, 0.263893, 0.174901, -0.09852, 0.830411, -0.000267, + 0.709446, -0.77839, -0.406308, 0.169137, 0.534173, -0.406878, 0.721425, -0.829615, -0.381452, + 0.751788, -0.747192, -0.937863, -0.252406, -0.833135, 0.297474, -0.175817, -0.294357, 0.553019, + 0.05818, -0.901559, -0.947615, 0.628042, 0.431251, 0.549527, -0.849303, -0.193243, 0.854375, + 0.807731, 0.679838, 0.928336, -0.313364, -0.774152, 0.562155, 0.637599, -0.301992, -0.093353, + -0.048157, -0.887076, -0.414196, -0.316873, 0.373316, -0.291774, 0.451322, 0.900446, -0.213167, + -0.243748, -0.628099, -0.076318, -0.91513, 0.675928, 0.862621, 0.266707, 0.945766, 0.503706, + 0.662875, 0.923629, -0.687534, -0.078454, 0.375685, -0.267668, -0.70936, -0.313993, -0.49572, + -0.350734, -0.761799, -0.301648, 0.572985, -0.438906, 0.425966, -0.822376, -0.630136, 0.103646, + 0.926069, -0.923516, 0.435276, 0.174896, -0.817106, -0.726068, 0.503827, -0.499669, 0.700791, + -0.69154, 0.755438, -0.510161, 0.405087, 0.299204, -0.784683, -0.52444, -0.242234, 0.003173, + 0.493871, -0.411063, 0.14713, -0.542452, -0.475335, 0.652575, -0.273883, -0.876235, 0.042005, + -0.142555, 0.284287, -0.510121, 0.043071, -0.493341, -0.604363, 0.228593, 0.309087, 0.185001, + 0.923712, 0.092701, 0.085037, -0.130736, -0.966801, 0.391117, 0.779553, 0.099094, -0.779897, + 0.897889, 0.224025, 0.723307, 0.434318, 0.157735, -0.294632, 0.205302, 0.321762, -0.060624, + -0.638738, -0.525541, -0.91655, -0.39111, -0.16121, 0.817872, -0.534917, -0.983973, 0.548107, + 0.862205, -0.779975, -0.009987, 0.317929, 0.644685, -0.179515, 0.455459, 0.768339, 0.585193, + 0.487225, 0.608144, -0.896105, 0.212623, 0.771171, -0.792318, -0.87657, -0.825798, 0.307036, + 0.928066, -0.090702, -0.397525, 0.05918, -0.824533, 0.173108, -0.657449, -0.673074, -0.729465, + -0.283111, 0.651705, 0.203111, 0.695933, -0.964762, -0.81439, 0.612715, 0.787713, 0.849233, + -0.928724, 0.447923, -0.986071, -0.295744, 0.020258, 0.467628, -0.305482, -0.864665, -0.971739, + -0.401022, 0.762089, 0.433885, 0.494634, -0.808759, -0.898534, 0.925258, 0.653193, -0.431021, + 0.084085, 0.720423, 0.90017, -0.804634, -0.495627, 0.388601, 0.764042, 0.173975, -0.061715, + 0.038735, 0.910003, -0.785129, 0.455572, -0.71594, 0.095079, -0.94465, 0.647679, -0.557167, + 0.066428, -0.627156, 0.091579, -0.486962, -0.511417, -0.433363, 0.620466, 0.13975, -0.25757, + 0.851712, 0.195969, -0.323614, -0.045218, -0.390992, -0.396706, -0.312276, 0.238313, -0.890431, + -0.778772, 0.67128, -0.239503, -0.036922, 0.349252, -0.447293, 0.70054, -0.22636, 0.060935, + -0.693546, 0.406639, -0.710765, 0.608168, -0.141575, -0.365228, -0.334751, 0.381523, 0.979419, + 0.271683, 0.612943, -0.842927, -0.235996, -0.566321, -0.717725, 0.171703, -0.312623, 0.226369, + -0.39762, -0.911836, -0.51464, -0.961205, 0.216575, -0.750732, 0.768701, 0.432804, -0.561085, + -0.285781, -0.89595, 0.720428, -0.447182, -0.210074, 0.073874, 0.48545, -0.298123, 0.490276, + 0.514313, -0.123558, 0.663047, -0.876917, -0.544515, -0.078476, -0.101817, 0.35477, 0.722259, + -0.722082, 0.524749, 0.239939, 0.830502, 0.533737, -0.217359, -0.1418, -0.665465, 0.220647, + 0.782547, 0.344106, 0.808546, 0.399405, 0.192416, -0.216493, -0.863928, -0.18746, 0.848868, + 0.869496, -0.338322, 0.820786, 0.824327, -0.853278, -0.986418, -0.498059, -0.101189, 0.387368, + 0.418699, 0.63351, -0.489733, 0.668856, 0.227987, -0.709922, -0.739043, 0.355506, 0.931087, + -0.663927, 0.118491, -0.946684, 0.651356, 0.294827, -0.254702, 0.528339, 0.414729, 0.674034, + 0.100008, 0.009871, 0.479859, 0.337248, -0.84757, -0.38385, 0.618273, -0.509365, 0.773541, + -0.191893, 0.957836, -0.587831, 0.707241, -0.441622, 0.707164, 0.552164, 0.402681, 0.292623, + 0.597407, -0.39861, -0.322431, 0.271681, -0.709283, 0.059427, 0.417348, -0.908514, -0.05388, + 0.056658, -0.769874, 0.785056, 0.045251, -0.940997, -0.346867, 0.18122, 0.724421, -0.322952, + 0.874716, -0.422985, -0.806103, -0.273217, -0.652551, 0.332353, 0.660361, -0.844073, -0.732056, + 0.555791, -0.214512, 0.911844, 0.907848, -0.663611, 0.589021, -0.964382, 0.402559, -0.57054, + -0.00568, 0.971097, 0.135614, -0.537477, 0.459586, -0.160781, 0.897469, -0.747845, -0.170021, + -0.840178, -0.567223, -0.285388, -0.659763, -0.68127, -0.248085, -0.571184, -0.605941, 0.054028, + -0.751017, 0.57603, 0.658968, 0.920101, 0.309864, -0.094422, -0.174717, -0.475378, 0.680155, + 0.553761, 0.722094, -0.194146, -0.690872, 0.333537, 0.876577, -0.158618, 0.807606, 0.706113, + 0.351585, -0.270448, -0.335351, -0.175086, -0.075046, -0.20582, -0.974094, -0.685869, -0.317122, + 0.768412, 0.413183, -0.910749, -0.715929, -0.586738, 0.948372, 0.247571, 0.801005, -0.807513, + 0.934162, 0.81372, 0.069368, -0.467651, 0.391985, -0.537332, -0.414554, 0.375125, -0.768074, + 0.243352, -0.053331, 0.009312, 0.04582, 0.241118, -0.597709, 0.411585, -0.938084, 0.420675, + -0.812587, 0.962361, 0.240485, 0.277009, 0.265662, 0.194282, -0.382412, -0.973028, 0.598035, + 0.605618, -0.182954, 0.050132, -0.064272, -0.22582, 0.682273, -0.59787, -0.934406, -0.165316, + -0.583026, -0.66044, -0.287354, -0.038479, 0.656845, 0.562734, 0.81399, 0.748388, 0.300755, + -0.006519, -0.031929, -0.758978, 0.09533, -0.233831, -0.275427, 0.84062, 0.458847, 0.627431, + 0.645933, -0.578992, 0.28859, -0.125445, 0.348986, 0.587912, -0.251029, 0.7504, 0.041804, + -0.190263, 0.655107, 0.774747, -0.282163, 0.575134, -0.222805, -0.030571, -0.710786, -0.426404, + 0.131652, -0.230638, -0.100222, 0.240365, -0.397305, 0.528429, 0.980461, 0.796796, 0.88025, + -0.277441, 0.032204, -0.335431, -0.487182, -0.223976, 0.608634, -0.935147, -0.529974, 0.513563, + 0.521517, -0.255718, -0.226996, -0.139148, 0.724082, 0.7226, -0.466885, 0.165731, -0.967998, + -0.660161, -0.091511, -0.334421, -0.471822, 0.821794, 0.497737, 0.077042, -0.294423, 0.014852, + 0.820578, -0.186724, 0.076187, 0.309722, 0.592235, 0.612496, -0.468182, 0.393051, 0.159103, + 0.144061, -0.861699, 0.925394, 0.445974, 0.117262, 0.384242, -0.248357, -0.717965, -0.261475, + -0.895084, 0.864851, 0.428013, 0.26242, -0.676375, -0.651368, 0.570342, -0.810198, 0.193961, + 0.748163, -0.871912, 0.705935, -0.824369, -0.194219, 0.690536, 0.741561, 0.908188, 0.827401, + -0.964525, 0.167585, -0.893664, 0.569257, 0.296057, 0.770564, 0.234612, 0.685558, -0.043882, + -0.803144, -0.657719, -0.014072, -0.898107, 0.849225, -0.600385, -0.758766, 0.97387, -0.64117, + -0.446382, 0.016862, 0.318889, -0.358499, 0.535276, -0.640174, 0.194152, -0.983863, -0.897881, + 0.354027, 0.480713, -0.446549, 0.35098, -0.261514, 0.558631, 0.109196, -0.220941, 0.189994, + -0.949069, 0.560162, 0.924297, 0.852929, -0.576102, -0.402642, -0.438143, 0.152039, -0.700264, + -0.750934, -0.388955, 0.875342, 0.263431, -0.905547, -0.466557, -0.792224, -0.128317, 0.031728, + -0.667775, -0.779944, -0.19716, 0.058343, 0.7351, 0.362907, -0.582345, -0.922989, 0.194998, + -0.143468, 0.58641, -0.691822, -0.04853, -0.729419, -0.501499, -0.590005, -0.208257, -0.083779, + 0.929624, 0.886311, 0.77896, 0.239078, 0.015814, 0.952006, -0.690238, -0.923721, -0.540353, + 0.749056, 0.97907, -0.410938, -0.647204, -0.888382, 0.463356, -0.402741, 0.747459, -0.353579, + 0.914878, 0.644704, 0.65874, 0.5319, -0.803564, 0.13721, -0.596599, -0.3073, 0.619382, + -0.508154, 0.630616, 0.051597, -0.474161, -0.485624, -0.972105, 0.343016, 0.038402, 0.890337, + 0.36043, 0.310567, -0.053122, 0.467344, -0.148367, 0.40093, -0.454742, 0.632344, 0.274213, + 0.528261, 0.067533, 0.474618, 0.903739, 0.153887, 0.695288, -0.915589, -0.079129, -0.869109, + 0.071501, 0.187793, 0.282378, -0.42566, 0.468098, -0.420769, -0.254394, 0.749962, -0.920293, + 0.202949, -0.860376, 0.429736}; + const std::vector k_data{ + -0.835057, -0.938732, -0.278561, 0.79978, 0.50525, 0.642696, -0.232969, 0.883347, -0.45597, + -0.07, -0.918282, 0.050383, 0.229265, -0.959793, 0.84067, 0.18814, 0.953676, -0.430487, + 0.046632, -0.320937, 0.845505, -0.559016, 0.575545, -0.702223, 0.751467, -0.931084, -0.497134, + -0.451327, -0.169802, -0.012401, 0.32316, 0.896778, 0.589098, -0.482191, 0.939648, -0.147259, + -0.557629, 0.373794, -0.174265, 0.954351, 0.111554, 0.661853, 0.257484, -0.653519, 0.210466, + -0.578696, -0.267779, -0.322138, -0.792351, 0.387005, 0.707615, -0.985454, 0.544328, -0.789558, + -0.978661, 0.344864, -0.022169, -0.613048, 0.895368, 0.081598, -0.62723, 0.45874, 0.070778, + -0.16006, -0.711892, -0.072546, 0.5787, -0.488539, 0.460594, -0.982742, -0.378367, -0.314595, + -0.879727, 0.357403, -0.782931, 0.578758, 0.204746, 0.013275, -0.533113, -0.340316, 0.24277, + 0.961397, -0.478984, -0.680401, -0.44358, -0.718326, -0.131648, -0.712776, 0.725068, 0.709786, + -0.636293, 0.88194, 0.207319, -0.636218, 0.332151, -0.907578, -0.531823, -0.721808, -0.556156, + -0.216458, 0.227716, 0.190823, -0.977461, -0.95717, -0.15171, 0.853499, 0.370449, 0.892628, + -0.473809, 0.278759, -0.870585, 0.520431, -0.024638, -0.075849, -0.539985, -0.873738, -0.368179, + -0.094491, -0.531052, 0.417968, -0.173525, 0.098462, -0.931274, 0.281627, -0.488904, -0.755615, + -0.401333, -0.909472, -0.763288, 0.745577, 0.818532, -0.694596, 0.216869, -0.515082, 0.935757, + 0.610498, 0.397608, -0.815307, -0.491869, -0.21016, -0.894059, -0.584419, 0.263283, -0.814074, + 0.266069, -0.022853, -0.08235, -0.292103, -0.537429, -0.934944, -0.680488, 0.755228, -0.074122, + 0.973749, 0.05272, -0.11787, 0.599696, -0.941468, -0.619819, 0.573643, -0.260801, 0.791161, + -0.091314, 0.713153, 0.048567, 0.10385, -0.844634, -0.345587, 0.05014, 0.456906, 0.194031, + -0.217116, 0.006751, 0.859628, 0.667063, 0.341219, -0.720676, -0.336241, 0.638441, 0.900176, + -0.472751, 0.424905, -0.234159, 0.634362, -0.150259, -0.794907, -0.989847, -0.037467, 0.294805, + -0.589494, 0.786774, 0.47433, 0.603031, 0.460727, -0.96449, -0.183353, 0.519437, 0.495025, + -0.909868, -0.566836, 0.728885, -0.827933, 0.757898, -0.192935, 0.073363, 0.48773, 0.269202, + -0.641041, 0.325728, -0.858567, -0.504649, -0.175656, -0.200034, 0.727947, -0.545885, 0.839117, + 0.465786, 0.32541, 0.71217, -0.682929, -0.861632, 0.037302, 0.492968, 0.504786, 0.041585, + 0.956406, 0.355284, 0.432093, -0.484688, 0.305038, -0.374321, -0.807831, -0.650534, -0.603745, + -0.150782, -0.418829, 0.918707, 0.413451, -0.831382, 0.042086, 0.862333, -0.040315, 0.162295, + 0.273007, -0.329957, -0.647439, -0.374776, -0.260908, 0.786896, -0.812875, 0.134443, -0.382266, + -0.106394, -0.088839, -0.387903, 0.230748, 0.236337, -0.574257, 0.614419, 0.902085, -0.414188, + 0.203826, -0.370285, 0.685481, -0.077538, -0.891614, 0.2327, 0.828684, 0.003906, -0.256095, + -0.027435, 0.566246, 0.857649, -0.250261, 0.532705, 0.557197, 0.89343, 0.716415, -0.825926, + -0.826155, -0.829865, 0.628362, -0.507811, 0.552376, -0.148896, -0.412054, 0.752486, -0.193142, + -0.539678, -0.153258, -0.636009, -0.96288, -0.175207, -0.056301, -0.569974, 0.886305, -0.223408, + -0.254008, 0.792489, 0.111279, -0.235241, 0.229937, -0.903517, 0.983125, 0.263787, 0.351693, + -0.737551, 0.764548, -0.821885, -0.347489, -0.641201, -0.505032, 0.213402, -0.991713, -0.978977, + 0.228445, 0.32958, 0.014334, -0.379911, -0.27973, -0.13811, -0.202756, -0.618645, 0.752705, + 0.202396, -0.66903, -0.203249, -0.723599, -0.584272, 0.759555, 0.305276, 0.438087, -0.129741, + -0.249527, 0.12926, -0.710423, -0.995024, 0.70302, 0.020379, 0.606558, 0.752423, 0.437381, + -0.341792, -0.183378, -0.05219, 0.059818, 0.038896, -0.78181, -0.549706, 0.728743, 0.032009, + -0.453388, 0.676089, -0.296793, -0.406747, 0.698896, -0.788952, -0.478904, 0.756802, -0.09778, + -0.412367, 0.829777, 0.152169, -0.939561, -0.739474, -0.2535, -0.054879, -0.752912, -0.37683, + 0.338047, -0.932571, -0.937128, 0.259989, 0.190857, -0.965711, -0.93044, 0.830886, 0.997995, + -0.437053, 0.996127, 0.690665, 0.888893, -0.430302, -0.244715, 0.589573, 0.37092, -0.798121, + 0.598466, 0.975171, -0.63506, -0.928451, -0.952568, -0.632673, -0.440371, -0.565129, -0.875836, + 0.624557, 0.978047, 0.837211, 0.6262, 0.443992, -0.394238, -0.806967, -0.590626, 0.45278, + 0.218784, 0.127663, -0.606911, -0.470476, -0.421737, -0.126938, -0.188698, 0.10575, -0.333013, + -0.11331, -0.636006, 0.494158, -0.831053, 0.182531, -0.951366, -0.570283, 0.966907, -0.187121, + -0.183705, 0.515884, -0.862685, -0.230363, -0.032186, 0.112549, -0.165611, -0.705396, -0.916521, + 0.010779, 0.835069, -0.448902, 0.126429, 0.635647, -0.977057, 0.884929, 0.844601, -0.437462, + 0.871649, 0.683101, 0.83071, 0.86604, 0.229333, 0.549484, -0.535449, 0.167941, 0.958954, + -0.344592, 0.235659, -0.510938, 0.369622, 0.325597, 0.75498, 0.005513, 0.477456, 0.60626, + 0.161034, -0.943358, 0.709008, -0.640323, 0.463229, -0.748186, 0.291281, -0.187141, -0.895533, + 0.456621, -0.232681, -0.4161, -0.310708, 0.679935, 0.587595, 0.27242, 0.41843, 0.513644, + 0.413708, 0.851486, 0.602143, -0.514596, -0.152308, 0.466405, 0.79562, -0.830954, -0.495973, + -0.495929, 0.944502, 0.981511, -0.446985, -0.309032, 0.017729, 0.058557, -0.285006, -0.729551, + -0.532205, -0.08344, 0.108244, 0.038373, -0.918301, 0.885442, -0.58248, -0.244854, 0.927631, + 0.006526, -0.799367, 0.576088, -0.376219, 0.969411, -0.290153, -0.747489, -0.743916, 0.005395, + -0.161071, 0.778545, 0.059875, -0.601108, 0.11202, -0.739652, 0.149297, 0.264167, -0.942802, + -0.684044, -0.502268, -0.349656, -0.181682, 0.41936, -0.789308, 0.5172, -0.693191, 0.878132, + -0.570733, -0.765005, 0.716698, 0.813388, -0.338804, 0.876771, 0.112622, 0.363178, -0.058675, + -0.273179, -0.361713, -0.857389, 0.729846, 0.529771, 0.908521, -0.983054, 0.988019, 0.666948, + 0.27267, -0.429213, 0.705647, 0.64125, 0.860633, -0.825644, 0.151995, 0.360106, -0.983711, + 0.936039, 0.624227, -0.803051, -0.858518, 0.040796, 0.802078, 0.290384, 0.140617, -0.064777, + -0.9936, 0.601893, 0.637829, -0.703136, -0.184214, 0.972187, -0.383283, -0.686582, 0.572056, + 0.461937, 0.861407, -0.430607, 0.243146, 0.240737, 0.813646, 0.560386, 0.234978, -0.140693, + -0.178388, -0.539661, 0.420622, 0.852228, -0.508334, -0.683354, 0.744592, 0.134362, -0.471388, + 0.64757, -0.814779, -0.491335, -0.32134, -0.031844, 0.213172, 0.478234, -0.349177, -0.096951, + -0.521544, -0.657527, 0.218187, 0.737386, 0.862952, -0.780459, 0.473211, -0.308521, -0.049835, + -0.041735, 0.863742, 0.837935, -0.809713, 0.21687, 0.584808, 0.268295, -0.023169, -0.472067, + -0.705561, -0.984272, -0.01938, -0.38583, 0.236004, -0.422758, 0.830623, -0.705557, 0.887342, + -0.396493, 0.154564, -0.366704, 0.421482, 0.789174, 0.935045, -0.692597, 0.686488, 0.661412, + -0.820602, 0.404199, 0.193332, 0.548867, 0.876159, 0.022876, -0.370167, -0.450712, 0.129143, + -0.146739, -0.716209, 0.027892, 0.572597, 0.033153, 0.628671, -0.377778, 0.784256, 0.238245, + -0.33607, 0.482157, 0.491772, -0.428763, -0.181895, 0.516111, -0.88128, 0.381022, 0.219232, + -0.681653, -0.123285, 0.292689, 0.695619, 0.731274, -0.645078, -0.650202, 0.472893, 0.986595, + 0.853988, 0.393806, 0.948172, -0.459093, -0.028305, -0.815695, -0.613685, -0.676281, -0.907125, + 0.282143, 0.258302, 0.402591, 0.662733, -0.796518, -0.288616, 0.786881, -0.884987, 0.702839, + 0.307946, -0.811833, 0.215742, 0.032129, 0.19314, -0.286913, 0.45267, 0.777719, 0.69698, + -0.095977, -0.919893, 0.979003, 0.278292, 0.887585, 0.360225, 0.016439, 0.538106, 0.559648, + -0.064711, 0.153098, -0.040597, 0.685191, 0.455257, -0.166742, 0.931898, 0.958243, 0.81236, + 0.179179, 0.061162, -0.522192, 0.728997, -0.718507, -0.861915, 0.301732, -0.935445, 0.318815, + -0.481615, -0.01257, -0.385267, 0.808629, -0.743277, 0.183704, 0.014176, -0.951536, 0.773246, + 0.197779, -0.802401, -0.992488, 0.44219, 0.820894, -0.227881, -0.295414, -0.852731, 0.675287, + -0.376738, -0.459638, 0.380498, 0.874561, 0.462831, 0.288426, 0.885082, 0.042531, 0.154696, + -0.073067, -0.626602, 0.183706, -0.519304, 0.578702, -0.689775, -0.817393, -0.193211, 0.742867, + -0.759784, -0.318698, -0.076621, -0.437325, 0.472418, 0.873519, 0.54125, -0.210893, -0.785125, + -0.825652, -0.239459, -0.315026, -0.758384, 0.247302, -0.37892, 0.289996, -0.531024, -0.090105, + -0.300948, 0.614248, -0.912653, -0.394334, 0.213551, -0.281733, -0.017114, 0.675853, 0.143152, + 0.123275, 0.292146, -0.538014, -0.399369, 0.479018, 0.144965, 0.652335, -0.127672, 0.939406, + 0.597199, -0.280143, -0.511051, 0.201941, -0.834228, -0.457964, 0.30635, 0.08722, 0.452556, + -0.418283, 0.84155, -0.549901, -0.5124, 0.669039, -0.192934, 0.286075, -0.177645, -0.707232, + -0.040002, 0.453677, 0.673938, 0.762824, -0.035214, 0.724299, 0.282085, 0.037007, 0.018892, + -0.095419, 0.285588, -0.051663, 0.643108, -0.152311, -0.555305, 0.290613, -0.560336, 0.621021, + 0.81671, 0.160533, -0.200602, -0.045157, 0.468336, -0.763917, -0.267674, -0.609262, -0.904498, + -0.715503, -0.642518, 0.761419, 0.611228, -0.678887, -0.789155, 0.895537, 0.237365, 0.460499, + 0.156166, -0.373647, -0.540257, 0.538022, -0.987853, -0.83212, 0.301981, -0.262243, 0.191282, + 0.533345, -0.574668, -0.562911, -0.61506, -0.874954, -0.06769, 0.849166, -0.061121, 0.548428, + -0.497319, 0.099219, -0.750896, -0.066101, 0.219449, -0.427866, 0.918113, 0.282337, 0.500183, + 0.995226, 0.423905, -0.078562, 0.477599, 0.985438, -0.962738, -0.188538, 0.485604, -0.242375, + -0.813578, -0.580512, -0.519753, 0.414585, 0.636659, -0.113801, -0.81825, 0.142084, 0.279576, + -0.377207, 0.344817, -0.408494, 0.336644, 0.715488, 0.498722, -0.094504, 0.960494, -0.087934, + -0.891949, 0.71881, 0.929859, 0.456362, 0.876385, 0.540106, 0.408172, 0.579002, -0.768185, + -0.011932, -0.427196, 0.275087, -0.884334, 0.059118, 0.391225, -0.371587, -0.40333, -0.648555, + 0.275327, -0.839401, -0.205258, 0.055622, 0.285311, -0.858496, 0.20179, -0.392321, -0.116423, + -0.72971, -0.785427, 0.136416, 0.16981, 0.859457, 0.940948, 0.730645, 0.387481, 0.66507, + 0.427047, -0.931588, 0.727763, 0.121409, -0.249379, -0.297396, 0.797654, 0.697823, -0.09289, + -0.373817, -0.537641, 0.576487, -0.606443, -0.662952, -0.600111, 0.290355, 0.766571, 0.199872, + 0.372745, -0.807649, -0.726573, -0.58569, -0.639899, -0.446384, -0.606261, -0.327196, -0.619038, + 0.29787, 0.025807, 0.050889, 0.423979, -0.900342, -0.391501, -0.033967, -0.934384, 0.531391, + -0.750888, 0.675987, 0.989638, 0.206087, -0.486725, 0.705771, -0.655582, 0.047347, 0.626974, + 0.937491, 0.073275, -0.075897, -0.086776, -0.969523, 0.177698, -0.793734, 0.089894, -0.237621, + 0.635886, -0.400402, 0.710737, -0.23829, -0.193409, -0.910355, 0.869081, 0.086495, -0.901261, + 0.056238, 0.409569, -0.211321, 0.816052, 0.489086, -0.128179, 0.999758, 0.705254, -0.12266, + -0.08638, 0.306901, -0.34846, 0.615603, -0.962098, -0.535745, 0.458384, -0.959771, -0.33133, + -0.531721, 0.541729, 0.050279, -0.710246, 0.805835, -0.456028, -0.110325, 0.337424, -0.666795, + -0.092234, -0.336883, -0.237191, -0.362742, 0.640093, -0.491406, -0.674873, 0.431971, 0.323998, + 0.010442, 0.082404, 0.981502, -0.334542, -0.892417, -0.984956, 0.259251, 0.389754, 0.014131, + -0.831062, -0.78114, -0.681382, 0.643781, 0.195969, -0.556967, -0.945708, 0.574504, 0.010746, + 0.994013, -0.819332, -0.811096, 0.172532, 0.67024, 0.660557, 0.994211, 0.636638, 0.446673, + -0.61486, 0.985459, -0.442565, 0.643065, 0.411391, -0.592733, -0.089335, -0.083267, 0.755087, + 0.765208, 0.214409, -0.568293, 0.284806, 0.819316, -0.529905, 0.801431, 0.225975, 0.55316, + 0.343019, 0.631324, -0.85079, 0.413003, -0.867189, -0.068238, 0.782021, -0.820067, -0.760642, + -0.438281, 0.037624, -0.138255, -0.78494, 0.130298, -0.251207, -0.467044, 0.010915, 0.3396, + 0.160432, -0.662905, 0.677881, 0.188673, -0.409461, 0.865592, 0.201582, 0.520015, 0.707068, + -0.017821, 0.824138, -0.004461, 0.80001, 0.121295, 0.460142, 0.503584, -0.554221, 0.873891, + 0.030323, 0.367537, -0.737821, -0.373271, 0.651871, -0.631106, 0.138543, 0.878103, -0.949826, + -0.011045, 0.162498, 0.655412, -0.335994, -0.977316, -0.618924, 0.300127, -0.736413, -0.856026, + -0.025231, 0.262382, -0.627064, -0.388407, 0.547004, -0.676129, -0.822552, -0.302233, 0.803483, + -0.293185, -0.67786, -0.709417, -0.23502, 0.710262, 0.375862, -0.333887, -0.867524, -0.606815, + 0.21118, 0.840859, 0.515002, -0.127822, 0.530457, 0.072016, 0.137423, 0.466238, -0.246158, + 0.291332, 0.089162, 0.305086, -0.213905, 0.646426, -0.900861, 0.664199, -0.825094, -0.672808, + -0.614889, -0.09655, -0.099128, -0.972413, 0.530614, 0.246016, 0.977072, -0.713646, -0.804129, + 0.240293, 0.77038, 0.667616, 0.405653, 0.168181, 0.498465, -0.397986, -0.997419, -0.832515, + -0.639529, 0.223303, 0.895328, 0.645353, -0.652708, 0.278853, 0.884588, 0.024587, -0.186315, + -0.54172, -0.07267, 0.752508, -0.282359, -0.151017, 0.485194, -0.383344, -0.461984, 0.168883, + 0.724032, 0.106669, -0.040274, -0.794381, 0.597133, 0.045635, -0.440194, -0.8798, -0.474453, + -0.702772, 0.204776, 0.732772, -0.197672, 0.608673, -0.21251, -0.475931, -0.915157, -0.670117, + 0.750683, 0.673535, 0.964859, -0.100895, 0.338033, -0.122732, 0.989781, -0.797385, -0.271531, + -0.958822, 0.098754, -0.778528, -0.701337, 0.231264, 0.994937, 0.833494, 0.687062, -0.247506, + -0.030192, -0.898981, 0.672219, 0.273221, 0.848807, -0.972169, -0.243871, -0.644033, -0.765286, + -0.594516, 0.315928, 0.664783, 0.451596, -0.342522, 0.441117, 0.984942, 0.048903, -0.359856, + -0.789632, 0.706899, -0.228534, -0.784559, 0.578289, 0.19936, -0.403616, -0.984317, 0.125445, + -0.296163, -0.173407, -0.333591, 0.822497, 0.530799, 0.792798, 0.377551, 0.285381, 0.986913, + -0.00355, 0.574885, 0.406627, -0.957048, 0.679357, -0.098064, -0.675241, 0.673909, -0.809921, + 0.468878, -0.82258, -0.286825, -0.938191, 0.715165, 0.247234, 0.815995, 0.305205, -0.495837, + 0.150367, 0.676731, -0.77313, -0.667104, -0.254359, -0.624743, -0.181666, 0.94697, 0.556051, + -0.81075, -0.539594, 0.802502, -0.076692, -0.421068, 0.195506, -0.158766, 0.336917, 0.018422, + 0.568596, 0.550479, 0.351081, 0.309752, -0.256801, -0.925521, -0.096274, -0.759492, -0.799927, + -0.88055, -0.249893, -0.739512, 0.169076, 0.431841, 0.594093, -0.96519, 0.8414, 0.297545, + 0.811507, 0.484539, 0.181789, -0.191938, 0.836611, -0.650862, 0.780022, 0.872221, 0.163313, + -0.428849, -0.80782, -0.054965, 0.849735, 0.046226, -0.251709, -0.497318, 0.074725, 0.55303, + 0.194815, 0.172424, -0.692002, 0.483945, 0.103939, -0.982869, 0.831774, 0.635952, 0.007839, + -0.197523, 0.898181, 0.992762, 0.162967, 0.928285, 0.422751, 0.477232, -0.059226, -0.073044, + 0.639531, -0.438001, -0.714298, 0.624378, -0.240011, 0.706022, -0.166156, -0.609201, -0.01692, + -0.115291, 0.229533, -0.7715, -0.846674, 0.051713, 0.90259, -0.632127, -0.503044, 0.09544, + 0.748883, 0.766363, -0.208804, -0.052425, -0.787319, 0.976682, 0.607545, 0.25568, -0.971437, + 0.565276, -0.563444, 0.041618, 0.479808, -0.039827, -0.487748, 0.675454, 0.677791, 0.097414, + -0.624939, -0.518044, -0.898296, -0.535216, -0.893237, -0.088241, -0.710187, 0.569504, -0.809179, + -0.689421, -0.616194, -0.262745, 0.391341, 0.719702, 0.991829, -0.238496, 0.234772, 0.070406, + 0.551523, 0.469927, 0.587965, 0.682099, 0.832469, 0.051088, 0.700043, -0.5619, -0.210009, + -0.27938, -0.299416, 0.057262, -0.940845, -0.566772, -0.093742, 0.201109, 0.708519, -0.686602, + 0.243988, 0.461488, -0.533574, 0.170058, -0.524138, -0.026661, -0.549503, -0.279847, -0.395594, + 0.865221, 0.241352, -0.97017, 0.126543, 0.54532, -0.435482, -0.598014, -0.196351, -0.883302, + -0.372062, 0.122839, -0.74607, -0.949814, -0.594514, -0.730493, 0.029365, 0.361422, 0.630078, + 0.999242, 0.522682, -0.45148, -0.132833, -0.513532, 0.601032, 0.333398, 0.460933, -0.671854, + 0.779564, -0.880372, 0.502041, -0.872304, 0.76572, -0.592844, -0.778226, 0.500333, 0.886618, + -0.072729, 0.418516, 0.914932, -0.812665, 0.406618, 0.230178, -0.568988, 0.593837, 0.89076, + 0.768965, -0.718559, 0.884239, 0.841148, 0.380261, -0.137136, 0.769479, -0.648088, -0.607565, + 0.54995, 0.667031, -0.100958, 0.919642, 0.526588, 0.489128, 0.810724, 0.984481, 0.699384, + 0.814857, 0.094255, 0.783737, 0.537379, -0.491778, 0.558876, 0.069704, -0.345189, 0.750181, + 0.261588, 0.77924, 0.215598, 0.298616, 0.600454, -0.249334, 0.621441, -0.516895, -0.141662, + 0.091739, 0.691218, 0.44071, 0.964839, -0.53697, -0.079088, -0.083375, 0.814969, 0.944052, + 0.252389, -0.808142, -0.725377, 0.183542, -0.880922, -0.348806, -0.749812, 0.51285, -0.137245, + -0.782938, 0.653436, -0.886596, -0.09776, 0.962831, 0.501286, -0.86639, 0.107898, -0.148864, + 0.4453, 0.923937, 0.85232, -0.095443, 0.460727, -0.982041, 0.787829, 0.531424, -0.70339, + -0.289225, -0.388776, -0.584677, 0.412051, -0.29158, 0.415907, -0.303849, 0.776791, -0.393399, + -0.173233, -0.310904, 0.04604, -0.368508, -0.702383, -0.950327, 0.62202, 0.138754, -0.64282, + 0.518134, 0.104636, -0.361102, -0.065525, 0.109962, 0.71647, -0.919168, -0.776151, -0.806261, + -0.785191, 0.006312, 0.555305, 0.261391, 0.423692, 0.120313, -0.019058, -0.905926, 0.892601, + 0.966454, -0.0057, 0.180663, 0.185143, 0.989628, -0.001908, -0.164505, -0.544465, 0.258573, + 0.461011, -0.844054, 0.342075, 0.249756, 0.443568, 0.468805, -0.261814, 0.133904, -0.700663, + 0.601939, -0.841365, -0.877305, -0.741599, -0.557948, 0.041731, 0.656239, -0.131754, 0.718086, + -0.163395, 0.84792, 0.690183, 0.631553, 0.408249, -0.673559, 0.979946, -0.951731, -0.701004, + -0.604303, -0.263889, 0.434326, 0.207075, -0.860636, 0.965507, 0.938549, 0.493178, -0.979582, + 0.558647, 0.285322, -0.123627, -0.837731, 0.847217, -0.298939, -0.808867, 0.771835, 0.390262, + 0.294386, 0.646319, 0.348368, -0.217646, -0.17389, 0.826746, -0.032778, -0.835287, -0.691031, + -0.754691, 0.095584, 0.731233, 0.598211, 0.2645, 0.333281, -0.473662, 0.935983, 0.381394, + -0.630288, -0.666193, -0.89588, -0.284503, 0.731426, 0.058711, -0.473941, 0.278362, -0.69413, + 0.298084, 0.68277, 0.486232, -0.30446, -0.340242, 0.416841, 0.598755, -0.245052, -0.002266, + -0.112784, -0.117526, -0.887411, -0.825089, 0.857341, -0.481556, 0.73939, 0.620421, -0.152107, + -0.483708, 0.033202, -0.173352, -0.5933, 0.972015, -0.078992, -0.153743, -0.677489, 0.162644, + 0.138591, 0.986121, -0.308792, 0.562403, 0.048504, 0.530878, 0.017528, -0.172418, 0.391979, + -0.445424, 0.605997, -0.837575, -0.716866, 0.952727, -0.376829, -0.795131, -0.731021, 0.969698, + -0.139856, -0.841477, -0.14415, -0.487474, -0.670787, -0.489347, 0.757425, 0.403373, 0.584288, + 0.082535, -0.418075, -0.408132, -0.671153, -0.722477, -0.862202, 0.177659, 0.524729, 0.816037, + -0.025395, -0.145713, -0.083122, 0.393999, -0.158394, -0.351378, -0.275537, -0.976855, -0.770122, + -0.428043, 0.096887, -0.628089, 0.382985, -0.546914, 0.967507, -0.883758, 0.557599, -0.519214, + -0.354574, -0.933739, -0.926793, -0.946378, -0.019207, 0.921073, 0.458515, 0.626149, 0.223907, + -0.38637, -0.389454, -0.297056, -0.934287, 0.549675, -0.297257, -0.565662, 0.248108, 2.6e-05, + 0.543839, -0.654876, 0.993423, -0.398062, 0.377841, 0.91036, -0.057366, -0.878719, -0.96751, + 0.983676, -0.936267, -0.370959, 0.682059, -0.777805, 0.934532, 0.097115, 0.310829, 0.156916, + 0.109959, 0.561229, -0.866472, 0.216169, -0.452581, 0.946418, 0.827955, -0.392821, 0.556083, + -0.170286, 0.527671, -0.282843, -0.585192, 0.421902, 0.495137, 0.900426, 0.316917, -0.446238, + 0.255487, 0.06019, 0.869951, 0.410266, 0.852927, 0.074278, -0.758084, -0.64029, 0.902935, + 0.895606, 0.301232, -0.713646, 0.730721, 0.414824, -0.789045, 0.290723, 0.963837, -0.660487, + 0.075997, 0.2857, -0.359925, 0.658226, 0.88929, 0.973447, -0.895044, 0.05567, 0.816267, + 0.85185, -0.257596, 0.662463, 0.746394, -0.063254, 0.685853, 0.57492, -0.148752, -0.417746, + -0.53036, -0.805734, -0.597695, 0.261069, 0.356835, -0.286728, -0.0827, 0.692134, 0.14812, + -0.693859, 0.847268, 0.603401, 0.115195, 0.476591, -0.845293, 0.58649, 0.243332, -0.08845, + -0.320808, 0.807627, 0.215449, -0.558617, 0.449668, 0.176871, -0.350609, 0.706127, 0.995674, + -0.044155, -0.41248, -0.53668, -0.521918, 0.513087, 0.627212, -0.60603, 0.553892, 0.039845, + -0.034846, -0.318043, -0.92115, -0.857723, 0.733295, -0.163805, -0.043653, -0.603059, -0.182603, + -0.390104, 0.090001, -0.954543, 0.09698, -0.885137, -0.710791, -0.021349, -0.106515, -0.281095, + 0.581536, 0.072211, 0.207259, 0.409167, 0.056464, -0.885752, -0.371891, 0.627903, 0.573622, + 0.345932, 0.882675, -0.519922, -0.297994, -0.148991, -0.245765, 0.862538, -0.999229, 0.189474, + 0.981552, -0.555882, 0.794772, -0.861581, 0.16913, -0.569277, 0.31639, 0.218757, 0.219855, + -0.226848, -0.30975, -0.968405, 0.165889, 0.954597, -0.752491, -0.384696, 0.262413, 0.511495, + 0.363192, 0.647933, 0.126426, -0.24603, -0.833572, -0.999522, -0.765787, 0.502358, 0.898694, + 0.951883, 0.748921, 0.051611, 0.688596, 0.380181, -0.6771, -0.187674, -0.928099, 0.858437, + 0.217358, 0.918291, -0.121094, 0.794068, 0.468069, -0.122056, -0.033072, 0.712704, -0.131514, + 0.777566, 0.219378, -0.39175, -0.463519, -0.48641, 0.641617, 0.755911, -0.470125, -0.912782, + 0.566779, -0.227394, -0.918188, 0.209948, -0.099502, 0.720464, 0.212292, -0.616544, -0.180845, + -0.718091, 0.467584, 0.292527, 0.590311, -0.740107, -0.556638, -0.608548, -0.829212, -0.932745, + -0.806575, 0.696607, -0.30169, -0.184487, 0.301418, 0.263206, 0.449593, -0.706078, 0.888565, + -0.079889, -0.47487, 0.645458, -0.831442, -0.59612, 0.563573, 0.387648, -0.396032, -0.079916, + -0.182629, 0.406634, 0.200627, 0.366464, 0.825997, -0.687764, -0.769238, -0.23724, -0.455372, + -0.711162, 0.92806, 0.835406, 0.807442, -0.615906, -0.118249, -0.778072, -0.360562, 0.833323, + 0.125371, 0.346909, -0.994067, 0.411987, 0.674263, -0.384001, 0.759909, 0.450405, -0.730163, + -0.749622, 0.014039, -0.96453, -0.698842, 0.39114, -0.329022, -0.035434, -0.408582, 0.647232, + 0.821159, 0.721582, -0.889271, -0.295646, 0.484328, 0.591453, -0.224123, 0.547567, -0.029566, + 0.111076, 0.673791, 0.684089, -0.705969, -0.607112, 0.354252, 0.601015, -0.232842, 0.886798, + -0.115201, -0.507116, -0.102074, -0.851138, 0.309837, -0.919374, 0.927909, -0.758774, 0.650955, + -0.750087, -0.145738, -0.553809, 0.510988, 0.579988, -0.935109, -0.858495, 0.131645, -0.021512, + 0.005798, 0.304008, -0.197636, 0.843868, 0.07113, -0.460685, 0.346988, -0.775867, -0.478251, + 0.291555, -0.419542, -0.954692, 0.500493, 0.257375, 0.291057, 0.347585, -0.986773, -0.435655, + -0.485767, 0.956865, -0.4213, -0.656955, -0.350976, 0.096085, 0.402996, 0.736434, 0.721923, + 0.102699, 0.911006, 0.531693, 0.533547, -0.857504, 0.081697, -0.212389, -0.950342, -0.493853, + 0.760875, 0.366719, 0.924186, 0.681848, -0.00765, 0.89876, 0.210924, -0.14689, -0.427624, + 0.644549, 0.448312, 0.694318, -0.173719, -0.925505, 0.18134, 0.109434, -0.650915, 0.242444, + -0.121027, 0.853159, 0.04706, -0.493888, 0.801149, 0.029715, -0.16795, 0.477627, 0.964615, + 0.455973, 0.028198, 0.819018, -0.438554, 0.883773, -0.569758, 0.018323, 0.910108, 0.398225, + -0.20957, 0.616098, 0.589862, -0.901396, -0.111455, -0.786991, -0.215547, -0.120542, -0.400044, + -0.365488, 0.540835, -0.029698, -0.994977, 0.171893, -0.983439, -0.686024, 0.611258, 0.764444, + -0.354801, -0.607217, 0.45253, -0.955269, 0.61694, 0.688817, 0.421969, 0.305208, 0.206785, + -0.766613, -0.400565, 0.645041, 0.842246, 0.02671, 0.256912, -0.948504, 0.705938, -0.582452, + -0.536054, 0.986737, -0.286658, -0.505212, 0.137555, 0.788069, 0.908644, 0.08371, 0.680791, + 0.713171, -0.167133, -0.790175, 0.026904, -0.339699, 0.35044, -0.732689, -0.670761, -0.753107, + -0.748105, 0.760652, -0.996446, -0.03681, -0.61717, -0.420602, -0.288184, 0.469135, 0.672421, + -0.224995, 0.032609, -0.011, 0.910662, 0.446939, -0.207633, 0.677152, -0.807455, 0.396337, + 0.775714, -0.519032, 0.374185, 0.45852, -0.83897, 0.287662, 0.75624, 0.091833, -0.193273, + -0.391899, -0.663704, 0.24285, -0.945305, -0.855988, -0.361829, -0.946967, 0.933777, -0.322218, + -0.531664, 0.251377, 0.430365, 0.753068, -0.403722, -0.174739, -0.755138, -0.873198, -0.43511, + 0.112513, -0.495743, -0.27605, 0.366544, 0.206332, 0.617022, 0.46178, 0.527319, -0.516971, + 0.536366, -0.896294, 0.30795, -0.630683, 0.276133, -0.914908, -0.165625, 0.615084, -0.500082, + 0.619049, -0.155481, 0.938156, 0.942154, -0.590017, -0.23422, -0.204385, -0.378107, 0.32872, + -0.910501, -0.5997, -0.156764, -0.889732, -0.957825, 0.410107, -0.834952, 0.6644, -0.580648, + -0.079754, 0.602971, -0.986145, -0.973605, 0.041642, -0.406012, 0.46743, 0.349041, 0.12308, + 0.375368, 0.855531, 0.158713, 0.661636, -0.563814, 0.82394, -0.177812, 0.541388, -0.831058, + -0.600944, -0.585392, 0.528265, -0.033323, -0.917755, 0.980723, 0.260638, 0.919745, 0.12483, + 0.143353, 0.7208, -0.680343, 0.944389, -0.64318, 0.090638, -0.650374, -0.662575, 0.769699, + -0.264115, -0.187675, 0.781314, 0.979697, -0.901943, -0.017455, 0.285555, 0.960129, -0.398671, + -0.325446, -0.586119, 0.255511, 0.24663, -0.015769, -0.101423, -0.696183, -0.410735, -0.380321, + 0.262673, 0.441602, 0.466853, -0.763321, -0.077083, -0.190843, 0.997499, 0.721617, -0.746458, + -0.549468, -0.755416, -0.25027, -0.874957, 0.469985, -0.441012, -0.501888, 0.047261, -0.319518, + 0.755447, 0.906481, -0.892866, 0.448357, 0.020866, 0.524868, -0.374895, -0.075714, -0.018706, + 0.342877, 0.498597, 0.390004, 0.122728, -0.797748, -0.57445, -0.569692, -0.996557, 0.9579, + -0.452743, -0.664694, -0.452857, 0.542971, -0.626877, -0.83557, -0.747427, 0.219766, -0.040913, + -0.902252, -0.684035, -0.866623, 0.343054, 0.452546, 0.170341, -0.320382, -0.535782, 0.395341, + -0.229636, -0.160522, -0.327819, 0.173797, 0.234575, 0.821609, 0.888098, -0.257724, 0.148622, + -0.668401, -0.750707, 0.829237, 0.117799, -0.497219, 0.502742, 0.403424, 0.357965, 0.423126, + 0.053407, -0.72745, -0.888986, 0.976286, 0.698115, -0.780172, 0.783648, -0.935275, 0.665197, + 0.696346, 0.628255, 0.42322, -0.605687, -0.428853, 0.214371, 0.394395, 0.876602, 0.044482, + 0.411793, -0.755214, -0.202974, 0.594688, 0.081731, 0.790537, -0.802424, -0.667258, 0.314376, + -0.041817, -0.854447, 0.426682, 0.041216, 0.241827, 0.219755, -0.68954, -0.670789, -0.800104, + 0.72635, -0.548936, 0.900231, -0.319349, 0.221343, 0.955086, -0.536642, -0.94848, 0.14421, + -0.721431, 0.551021, 0.397556, 0.72454, -0.10388, -0.653329, -0.921544, -0.645898, 0.890715, + -0.214069, -0.018317, -0.212183, -0.510585, 0.818637, -0.259086, -0.485339, 0.923949, 0.598532, + 0.532949, 0.716617, -0.635043, 0.325656, -0.278317, 0.035745, 0.471041, -0.331943, 0.981208, + 0.004904, 0.576199, 0.092025, -0.963826, -0.598088, -0.833279, 0.1175, -0.670844, -0.795261, + 0.21439, -0.875341, -0.544159, -0.64691, 0.488119, 0.916859, 0.349881, -0.559666, 0.756907, + 0.928196, -0.270944, 0.737898, 0.252807, -0.695588, -0.261183, -0.797533, 0.301727, 0.552989, + -0.983573, -0.408707, 0.021671, 0.800741, -0.544885, -0.05873, -0.02828, -0.502878, -0.448221, + -0.267562, -0.298805, -0.321877, 0.095607, -0.083599, -0.486675, 0.605581, 0.715394, -0.156764, + -0.188771, -0.974632, -0.731074, -0.045545, -0.190649, 0.292569, -0.497456, -0.207121, 0.149528, + 0.981601, 0.786773, -0.6578, -0.083288, -0.163719, -0.031966, 0.416598, -0.402279, -0.213159, + -0.990602, -0.355239, -0.980772, 0.354011, -0.769762, -0.49414, -0.725171, 0.760425, -0.293558, + 0.86902, -0.496908, 0.757053, -0.196625, -0.75121, 0.836255, -0.680314, -0.588052, 0.548003, + -0.093354, -0.015189, 0.991562, -0.793586, -0.361193, 0.406818, -0.192556, 0.016916, -0.338077, + -0.154912, 0.798211, -0.185882, 0.402176, 0.754513, 0.774155, 0.474155, 0.687373, -0.259389, + 0.079736, -0.428953, -0.969831, 0.84142, -0.956025, -0.630227, -0.356406, -0.91473, -0.77603, + -0.523075, 0.118333, -0.874328, -0.718817, -0.584556, -0.751978, 0.23472, 0.033834, 0.219443, + 0.902143, -0.437845, -0.374922, 0.319013, 0.877044, 0.319168, -0.085723, 0.324834, -0.984997, + -0.684033, -0.42049, -0.905243, -0.755232, -0.769076, 0.287075, 0.302958, -0.024085, -0.231133, + 0.026963, 0.604249, -0.752978, 0.710452, 0.434928, -0.349071, 0.701617, -0.000828, -0.458272, + 0.901182, 0.29556, 0.754667, -0.271364, -0.856908, 0.801938, 0.057851, 0.474908, -0.259198, + 0.472976, -0.790144, 0.035274, 0.7593, -0.268524, 0.858895, 0.367749, 0.49296, 0.988117, + -0.24331, -0.232806, 0.628833, -0.506068, -0.737319, 0.652049, -0.872516, -0.473602, 0.242308, + 0.147259, -0.606236, -0.25299, 0.641908, -0.647972, 0.573599, -0.107088, -0.35795, -0.952603, + -0.262292, 0.822277, -0.547828, -0.793644, -0.07802, 0.708889, -0.271262, 0.980298, 0.963208, + 0.916181, -0.571978, -0.711846, -0.937186, -0.194449, -0.65124, 0.46587, 0.090187, 0.793112, + -0.92767, -0.840324, -0.18609, 0.263562, 0.841943, -0.083606, 0.854584, -0.270715, -0.141166, + -0.385051, -0.425004, -0.378828, -0.864421, -0.122755, -0.337188, -0.647435, -0.74175, -0.964334, + -0.224085, -0.814147, 0.899095, -0.268434, 0.268799, -0.716938, 0.102038, -0.93984, 0.450192, + 0.472264, -0.971768, 0.436061, 0.127313, -0.624561, -0.457836, 0.982922, -0.520149, 0.87494, + 0.20124, 0.458167, -0.50334, 0.325063, 0.215321, 0.797546, -0.988884, -0.363572, 0.024901, + -0.717747, 0.170423, 0.644769, 0.602631, -0.515645, 0.404225, -0.727631, 0.621633, -0.817331, + -0.906592, 0.347049, -0.094401, 0.2465, 0.93049, 0.95796, 0.563851, -0.907123, -0.153964, + 0.109314, -0.973735, 0.836285, 0.656215, -0.461943, -0.208696, -0.580048, 0.384624, 0.172465, + -0.346691, 0.534628, -0.216166, 0.10739, 0.692372, -0.469838, -0.922297, 0.539726, -0.65353, + 0.378039, -0.300641, 0.67128, -0.038034, -0.455315, -0.705451, 0.671975, -0.625709, 0.283473, + 0.764755, -0.803278, -0.839299, 0.102017, -0.392549, -0.734085, 0.661251, -0.930269, -0.455944, + -0.830645, 0.264302, 0.086248, 0.41712, 0.418676, -0.003956, -0.300302, 0.884242, 0.041586, + 0.238082, -0.82343, -0.980093, -0.488442, -0.524004, 0.289728, -0.444472, 0.104434, 0.92669, + -0.294989, 0.255485, 0.012264, 0.658079, 0.437366, -0.046459, 0.546959, -0.050878, -0.17, + -0.389791, -0.815782, 0.835326, -0.633699, -0.953309, -0.448533, 0.202002, -0.09075, 0.455237, + 0.572932, 0.588111, -0.839027, 0.407696, 0.495, -0.55476, 0.004844, 0.149882, 0.125395, + 0.536612, 0.849009, 0.960474, 0.223895, 0.584796, 0.427553, -0.540996, 0.66881, -0.071051, + 0.408098, -0.663698, 0.800053, 0.223184, 0.22661, -0.889599, -0.086909, -0.349684, 0.944116, + -0.91552, -0.246776, -0.49599, -0.72492, 0.384619, -0.690428, 0.4727, 0.120031, -0.529418, + -0.113801, 0.086721, -0.445665, -0.642509, -0.563538, 0.241276, -0.881142, 0.629677, 0.656745, + 0.919526, 0.846065, -0.562007, -0.433925, 0.731927, -0.129367, -0.736274, -0.47902, 0.701951, + -0.568663, 0.351727, -0.834965, 0.660331, 0.27504, 0.68978, 0.034106, 0.507615, 0.819481, + -0.126149, -0.755754, -0.7056, 0.586313, -0.637685, -0.875363, -0.846715, -0.442865, 0.185517, + -0.906111, -0.463371, 0.957404, -0.170083, -0.337456, 0.472957, -0.8229, -0.780831, 0.14298, + 0.316121, -0.985453, 0.878608, -0.389387, 0.152768, 0.710852, 0.382771, 0.310503, -0.912375, + -0.932984, 0.371899, 0.037162, 0.61404, 0.500432, -0.802256, 0.184056, -0.784501, -0.552783, + 0.274812, -0.055897, -0.638641, 0.339087, 0.693954, -0.98278, 0.93798, 0.552028, -0.084287, + -0.969716, -0.423325, 0.305185, -0.426049, -0.328707, -0.412969, 0.859785, 0.8463, -0.779971, + -0.308511, 0.905765, -0.057599, -0.486877, 0.120925, 0.791232, -0.127256, -0.943613, -0.334266, + 0.497687, -0.147755, 0.706545, 0.343918, 0.00877, 0.381981, -0.134982, -0.857254, -0.857005, + -0.786588, -0.159275, -0.723056, 0.14655, 0.114662, 0.760882, 0.056228, 0.170438, 0.355588, + -0.282717, -0.498285, -0.940679, -0.973947, 0.065755, -0.472888, 0.276837, 0.24853, 0.779929, + -0.122079, -0.004229, 0.690181, 0.169579, 0.457686, -0.539995, -0.722785, 0.762388, 0.71284, + -0.378638, 0.166117, -0.889344, 0.069985, -0.928434, 0.565211, -0.991151, -0.241225, 0.932997, + -0.338784, -0.579646, 0.902104, -0.505822, 0.220553, 0.558877, 0.268679, -0.690884, 0.907583, + 0.479523, -0.628838, -0.570732, -0.23064, 0.33362, 0.378115, 0.128762, 0.655812, 0.994806, + 0.205733, 0.391692, 0.568694, 0.198235, 0.061655, 0.899113, 0.690373, 0.653127, -0.389109, + -0.478103, -0.54224, -0.837415, -0.1016, 0.563434, 0.146509, -0.353737, -0.138341, -0.766324, + -0.642341, 0.092064, -0.581018, 0.123248, 0.824709, 0.256081, 0.76552, -0.633555, 0.026008, + -0.982336, 0.006929, -0.736669, 0.93854, -0.854885, 0.341838, -0.598181, 0.276806, -0.005216, + -0.127905, -0.388107, 0.642984, -0.180508, 0.085235, -0.30136, -0.728728, -0.41676, 0.896594, + 0.951866, -0.4646, 0.099659, 0.162318, 0.882175, 0.139551, 0.046552, -0.290885, 0.210894, + -0.995689, -0.997716, -0.115915, -0.693591, -0.694504, -0.169738, 0.554815, 0.494918, -0.347436, + -0.070667, 0.928337, 0.216321, 0.680038, -0.414205, -0.89488, -0.46364, 0.087881, -0.242199, + -0.546017, 0.961635, -0.923033, 0.02539, 0.398518, -0.269785, 0.433712, 0.00355, -0.594432, + -0.543754, -0.449853, -0.976383, 0.62326, 0.916645, -0.513694, 0.049427, 0.334154, 0.283141, + -0.555049, -0.607674, 0.973449, 0.582322, 0.934814, 0.701989, -0.074404, 0.704003, -0.032074, + -0.006204, -0.433285, 0.779856, -0.2126, 0.145189, -0.797398, 0.343036, -0.475464, -0.22581, + -0.089422, 0.37072, 0.04082, 0.174243, -0.649512, -0.755592, 0.360135, -0.41178, -0.862165, + -0.412701, -0.981046, 0.199804, 0.074267, 0.923446, -0.551433, -0.517175, 0.238778, -0.262762, + 0.779307, 0.152125, -0.021729, -0.383651, 0.604209, -0.468098, 0.402116, 0.642408, -0.784408, + -0.886035, -0.563944, 0.479833, -0.551593, 0.094528, 0.150987, 0.209943, -0.509931, 0.034966, + 0.692941, 0.518366, 0.191036, -0.795275, 0.470473, -0.398191, 0.699852, 0.415322, -0.183556, + 0.386571, -0.415837, 0.172606, -0.049897, 0.015868, 0.352111, 0.973874, -0.441392, 0.976521, + -0.183509, 0.951109, 0.225033, 0.081548, -0.334435, -0.526956, -0.983414, -0.545849, -0.089533, + 0.84128, 0.541147, 0.174355, -0.967813, 0.70451, 0.688475, -0.449535, 0.405022, -0.833191, + -0.50559, -0.301778, -0.90673, -0.06109, 0.204781, 0.291076, 0.93583, 0.577526, -0.914957, + -0.313887, 0.560242, -0.959807, -0.061845, 0.378395, -0.670532, 0.857804, -0.659274, -0.733571, + -0.759092, -0.175165, 0.333939, 0.28805, -0.494102, 0.87463, -0.535895, 0.784654, 0.335902, + -0.322669, 0.739588, 0.331576, -0.850278, 0.508237, 0.94574, -0.748029, -0.210824, -0.806949, + 0.670441, 0.530556, 0.729369, 0.280865, -0.164897, -0.097574, -0.74508, 0.634617, -0.401188, + 0.109748, 0.034009, 0.302302, -0.80331, -0.158392, 0.461342, -0.739161, -0.429587, -0.550642, + -0.846112, 0.976349, 0.863985, 0.626637, -0.828891, -0.009127, 0.183636, 0.443583, 0.201413, + -0.612945, 0.031707, -0.808646, 0.501486, 0.629891, -0.357813, -0.875325, 0.009298, 0.51123, + -0.682317, 0.422183, 0.696455, -0.828967, 0.553031, 0.452248, -0.514621, 0.839286, -0.480904, + 0.760057, -0.766515, 0.788765, -0.224844, -0.88335, 0.532658, -0.081908, 0.282445, 0.46067, + 0.106772, 0.319395, -0.842864, -0.882628, -0.46959, -0.522834, -0.942585, 0.156135, -0.079341, + -0.220231, -0.046469, 0.480545, -0.371073, 0.063175, -0.089325, 0.482894, -0.106384, 0.359218, + -0.391539, 0.774643, 0.168313, 0.168227, 0.484153, -0.99684, 0.441877, 0.803358, 0.598896, + 0.649361, -0.80326, 0.865543, 0.223581, -0.974703, 0.904885, 0.779783, -0.159538, 0.980599, + 0.062963, 0.802055, -0.883984, -0.93231, 0.278617, -0.007481, -0.848886, -0.560736, 0.560534, + 0.637498, -0.75846, -0.447078, 0.005816, -0.001276, -0.736525, 0.739541, -0.698258, 0.711413, + -0.61852, -0.993563, 0.249154, -0.478374, 0.674149, -0.331543, 0.095484, 0.744364, -0.649465, + -0.411703, 0.680877, 0.84355, 0.174297, 0.768746, 0.604939, 0.565435, -0.039423, 0.965488, + -0.317899, 0.068068, -0.301852, -0.074935, 0.600949, 0.75815, 0.149068, 0.657393, 0.700972, + 0.486058, -0.272526, 0.583464, 0.839412, 0.827248, 0.259111, 0.737985, -0.690837, 0.189407, + -0.87858, 0.513341, 0.045908, -0.192373, 0.637478, -0.153074, 0.408301, 0.538006, -0.496074, + -0.86626, 0.089313, -0.611511, -0.567097, 0.470933, 0.23763, -0.222235, -0.363549, -0.739524, + -0.427324, 0.064098, -0.584207, -0.907871, -0.968836, -0.943037, -0.459989, 0.269432, -0.457295, + 0.660625, 0.547279, -0.782412, 0.246204, -0.430676, 0.829361, 0.757752, 0.458669, -0.500788, + 0.144598, -0.630471, 0.149724, 0.988579, -0.192815, -0.575078, -0.487461, -0.62066, 0.506578, + -0.589817, 0.699969, 0.583807, 0.601604, -0.047956, -0.208755, 0.362251, -0.149373, 0.401877, + 0.22322, 0.347777, -0.427469, 0.62, -0.191803, 0.568222, -0.061645, -0.982789, -0.085198, + -0.318844, -0.495805, -0.039122, -0.382069, 0.078351, -0.295236, -0.620459, 0.367114, -0.818974, + -0.774168, -0.157283, -0.087071, -0.935413, 0.508184, 0.082527, 0.421703, -0.009868, -0.218268, + -0.351916, -0.089315, -0.785874, 0.439171, 0.284233, 0.715161, -0.93417, -0.104168, -0.392163, + 0.031079, 0.152695, -0.148892, -0.081172, -0.165103, 0.243235, -0.546638, -0.115883, 0.494269, + 0.673325, 0.111841, -0.109848, 0.167539, 0.460388, 0.183952, -0.581916, -0.788017, 0.46518, + -0.429901, 0.3745, -0.859231, 0.546902, 0.420433, -0.197338, -0.763915, -0.112902, 0.566293, + 0.755696, -0.03705, -0.082754, 0.820318, 0.174253, 0.954934, 0.904661, -0.649332, -0.705032, + -0.331916, -0.152908, 0.905393, -0.752171, 0.446006, 0.767329, 0.062864, -0.83846, -0.754978, + 0.148712, 0.289335, 0.232303, 0.622262, 0.642487, -0.871369, 0.471224, 0.621108, -0.505049, + -0.623871, -0.897993, -0.986644, 0.522492, 0.284293, -0.543207, -0.89394, -0.929625, 0.907332, + 0.329126, 0.163489, -0.082675, 0.408221, 0.108376, 0.431693, 0.255145, -0.515178, -0.467397, + 0.263389, 0.253395, 0.706054, -0.739704, 0.485738, -0.917333, 0.085679, -0.811957, -0.491851, + -0.571583, 0.892165, 0.890038, -0.443504, -0.041934, -0.838071, -0.819312, -0.506304, 0.097289, + -0.900154, -0.20815, 0.137871, 0.01126, -0.031644, 0.179963, 0.989143, -0.85409, -0.721432, + 0.522642, 0.306304, 0.849681, 0.795896, -0.742705, -0.227141, -0.900441, 0.403033, 0.596849, + -0.79324, -0.544374, 0.534128, 0.243626, -0.625112, -0.004961, -0.664689, 0.387761, 0.185221, + 0.271584, -0.047193, 0.054372, -0.741733, 0.933483, -0.040915, 0.027905, 0.090381, -0.940622, + 0.258381, 0.860859, 0.581789, 0.139205, 0.29031, 0.177672, 0.002572, 0.437896, 0.329406, + 0.324779, -0.603002, -0.121832, 0.623485, 0.65839, -0.562998, 0.326391, -0.667247, 0.260616, + 0.347072, -0.602195, 0.742274, 0.714015, 0.718186, 0.274236, 0.411576, -0.018428, -0.529705, + 0.304547, -0.431607, 0.257941, -0.513209, -0.423485, -0.787778, -0.269645, 0.603255, 0.310901, + -0.080917, 0.634715, 0.713723, -0.428294, -0.740121, 0.770099, -0.907022, -0.771836, -0.820305, + -0.644775, -0.676682, 0.030311, -0.438072, 0.769598, -0.891411, -0.754784, -0.922059, -0.881216, + 0.242625, -0.692261, -0.218482, -0.510175, -0.269435, -0.418653, 0.636609, -0.442807, -0.498858, + 0.568507, 0.909004, 0.813957, -0.149023, 0.178558, -0.518814, -0.097887, 0.112868, -0.584383, + -0.146061, 0.47804, 0.249815, 0.930634, -0.343256, -0.419091, -0.944175, 0.477198, -0.48377, + -0.932015, 0.117856, -0.38357, -0.604504, 0.590189, -0.602242, 0.499331, 0.850891, 0.625665, + -0.403866, 0.756045, -0.682797, 0.808773, -0.166021, -0.44971, 0.066652, 0.904731, -0.284918, + 0.730253, 0.234122, -0.720801, -0.738661, 0.851717, 0.915862, 0.598141, 0.966523, -0.660805, + -0.528342, -0.375768, -0.555162, -0.24395, 0.361486, 0.143288, 0.601498, -0.304884, 0.853807, + 0.189584, 0.631464, 0.77264, -0.053577, 0.942418, 0.528684, -0.612039, 0.072169, -0.486457, + 0.189246, -0.603877, -0.371551, -0.411658, -0.968993, 0.918219, -0.342343, -0.306377, -0.020771, + 0.017599, -0.839895, 0.278198, -0.623416, -0.794205, -0.600288, -0.779797, 0.783402, 0.382357, + 0.87628, -0.804735, -0.793865, 0.396702, -0.468136, -0.306479, -0.587524, -0.841408, -0.589105, + -0.628841, 0.512342, -0.026394, 0.624915, 0.869389, 0.660399, -0.813913, 0.586146, 0.569528, + -0.452905, -0.210623, 0.336128, -0.102134, -0.611618, -0.17721, -0.275937, 0.611781, 0.435621, + 0.625135, -0.042314, -0.910358, 0.97634, 0.030926, 0.426472, -0.567131, -0.049526, 0.266928, + -0.406717, -0.553778, 0.281057, 0.802912, 0.780232, 0.340441, 0.085147, 0.449471, -0.312376, + 0.771191, 0.527634, -0.997096, 0.911816, 0.047064, -0.756099, -0.382657, 0.971289, -0.834889, + 0.250193, -0.336332, -0.821371, 0.386375, 0.582599, 0.983061, -0.815787, 0.489071, 0.711664, + -0.024591, 0.771496, 0.912903, -0.809847, 0.502462, 0.23831, 0.113145, 0.73719, 0.053692, + -0.372425, 0.853995, 0.579449, 0.485099, -0.269228, -0.834116, -0.13941, -0.187317, -0.201082, + -0.510341, 0.718043, -0.166367, -0.979587, -0.641165, -0.989302, 0.553391, -0.11473, -0.509701, + -0.766921, 0.487337, -0.86429, -0.909545, -0.090107, 0.597092, -0.789633, -0.647401, 0.3224, + -0.971432, 0.664437, 0.534566, 0.488016, 0.851204, 0.868749, -0.461871, 0.564897, 0.546072, + 0.452747, -0.272953, -0.550281, -0.649214, 0.214601, -0.027398, 0.05062, 0.895633, -0.812516, + 0.231337, 0.179987, -0.044324, 0.662004, 0.649216, -0.673265, 0.177816, -0.601788, -0.552939, + -0.835469, 0.372834, -0.102285, -0.635164, -0.198556, -0.07374, 0.377828, 0.85098, -0.663977, + -0.062491, 0.967928, 0.659409, 0.460936, -0.300951, 0.174324, 0.067975, 0.014686, 0.6526, + -0.340647, -0.246478, 0.696985, 0.253776, -0.949433, -0.196104, 0.674628, 0.60597, 0.667354, + -0.586022, -0.747196, 0.319391, 0.767418, 0.817488, 0.38421, 0.590313, -0.690297, 0.240363, + -0.103054, -0.011169, 0.472265, -0.749134, 0.096464, -0.350357, 0.501876, -0.892875, -0.551647, + -0.714289, 0.748857, 0.622342, 0.829227, 0.987217, 0.304641, 0.12751, 0.279361, 0.160414, + 0.119409, -0.754757, 0.769364, -0.67719, 0.697593, 0.45877, 0.25925, 0.374619, 0.21947, + -0.490677, -0.531731, -0.50824, -0.602, 0.455635, 0.074405, -0.010294, 0.267717, 0.923672, + -0.077479, -0.480144, -0.725305, 0.826228, -0.88362, 0.487991, 0.875175, 0.534148, -0.007716, + -0.129862, 0.633613, -0.531735, 0.353513, -0.309077, 0.526871, -0.221394, -0.667364, -0.381857, + 0.588087, 0.364937, -0.706048, -0.650256, -0.205226, -0.095542, -0.281159, 0.672339, 0.069417, + -0.267166, -0.057378, 0.457905, -0.701297, -0.982632, -0.803336, 0.439667, 0.108575, -0.894426, + 0.817328, 0.535622, -0.933058, 0.614441, -0.038815, 0.084022, 0.82106, 0.773364, 0.218451, + -0.477882, 0.75205, 0.831321, -0.147622, -0.7969, 0.936864, -0.432288, -0.597414, -0.944156, + 0.403862, 0.384095, -0.430438, -0.969074, 0.700069, 0.060869, 0.887766, -0.093494, 0.902417, + -0.253793, -0.464167, 0.584539, 0.249545, 0.89791, 0.075156, -0.765385, -0.708544, -0.224551, + -0.149872, -0.548539, 0.848251, -0.545834, 0.09488, 0.571484, 0.205665, 0.05113, 0.38981, + -0.518663, -0.990324, 0.294858, -0.739713, -0.858244, -0.731842, 0.809427, -0.671057, 0.778793, + 0.66459, 0.173121, -0.587072, -0.906628, -0.77386, 0.645504, -0.659909, -0.130124, 0.162193, + -0.121206, 0.223862, -0.790048, 0.821126, -0.721386, -0.584453, -0.833047, 0.650899, -0.495144, + -0.340826, 0.52493, -0.103765, 0.825146, 0.305708, -0.084898, -0.671293, -0.953658, 0.276797, + 0.076641, 0.910707, -0.919303, 0.200882, 0.372327, 0.551601, 0.485579, -0.07093, -0.952188, + -0.198575, 0.987809, -0.750181, -0.667608, 0.909944, -0.065014, -0.334637, 0.113965, 0.419772, + 0.088604, 0.804899, -0.014158, -0.420687, -0.467271, -0.077053, -0.19534, 0.676165, 0.466272, + 0.770329, 0.783558, 0.853961, -0.949991, -0.22657, -0.095613, 0.716115, -0.008316, 0.379072, + -0.092941, -0.981135, 0.07984, -0.021404, -0.617175, 0.974025, -0.802168, -0.847424, -0.718089, + -0.908073, -0.201542, -0.534324, 0.82004, 0.535369, 0.475151, 0.859119, -0.825784, -0.600822, + 0.843011, 0.728289, 0.15811, 0.559174, 0.256045, -0.075694, -0.334761, 0.35072, -0.812025, + 0.985507, -0.882135, -0.757123, 0.732534, -0.579536, -0.488635, -0.237192, -0.872975, -0.04753, + -0.14298, -0.200412, -0.004714, -0.671693, -0.173379, -0.119111, -0.989074, -0.742178, 0.769904, + -0.957901, -0.198377, -0.588286, 0.993191, 0.735968, 0.492332, -0.511104, -0.882229, -0.15665, + 0.611588, 0.117065, -0.546878, -0.897142, 0.844657, 0.200539, 0.682952, -0.873118, 0.13192, + 0.933897, -0.971998, -0.94503, -0.919531, -0.491626, -0.101523, 0.489912, -0.346991, 0.79152, + 0.817971, 0.672685, -0.808579, 0.39143, 0.568047, 0.732537, -0.903793, -0.209096, -0.507374, + -0.376274, 0.291263, -0.055822, 0.434266, -0.743124, -0.311122, 0.42836, -0.368984, 0.123189, + -0.668005, 0.86315, -0.002072, 0.367565, 0.053881, 0.097699, 0.948747, -0.420717, 0.874488, + -0.414408, -0.031247, -0.63319, 0.255674, -0.982301, 0.278642, -0.502831, 0.880413, 0.974431, + 0.633054, -0.938441, 0.449915, -0.750754, 0.062002, -0.607765, 0.63155, -0.115959, 0.322356, + 0.315521, 0.654742, 0.631007, -0.035545, -0.71165, 0.36713, -0.374773, -0.135837, 0.063449, + 0.893741, 0.749169, -0.14203, -0.477377, 0.915497, 0.540866, -0.86532, -0.031395, -0.738107, + -0.255943, -0.860414, -0.834126, -0.69972, -0.212722, 0.356785, -0.897512, -0.379255, 0.198821, + 0.269142, -0.017408, -0.776822, -0.057696, 0.322799, -0.89109, -0.641237, 0.180054, 0.002019, + 0.74516, 0.302921, 0.53655, -0.757689, -0.226242, -0.139115, -0.242595, -0.167664, 0.484587, + -0.607803, -0.326163, -0.380344, 0.151086, 0.156853, -0.133393, 0.517858, -0.778966, 0.722926, + 0.267963, 0.700448, -0.955031, 0.728648, 0.557161, 0.641243, 0.528393, -0.469075, -0.246462, + 0.027947, 0.241542, -0.956555, -0.194256, -0.946483, -0.683155, -0.375101, -0.311809, 0.224379, + 0.70779, -0.327157, -0.170895, 0.34662, 0.247721, 0.982589, 0.17543, 0.098142, -0.768481, + 0.358951, 0.320645, 0.350464, -0.035053, -0.128406, 0.200625, -0.062615, -0.200027, -0.902017, + 0.511831, -0.566366, 0.296245, 0.417605, 0.471588, -0.109459, -0.026851, 0.673907, -0.569094, + -0.701962, 0.64885, 0.958205, 0.756214, 0.618289, -0.531196, 0.602742, -0.516603, 0.447914, + 0.907558, -0.298889, -0.738184, -0.710357, -0.333983, 0.074084, 0.915513, 0.182562, -0.511609, + -0.099023, -0.282915, 0.247227, 0.403116, -0.582569, 0.324006, 0.484615, -0.061551, -0.689471, + 0.637842, -0.952554, 0.491049, 0.157828, -0.2751, -0.380875, 0.221045, -0.576849, -0.042797, + 0.745614, -0.062078, -0.666614, 0.779509, 0.622944, 0.824975, -0.308324, -0.979257, -0.335912, + 0.678771, 0.287844, 0.81024, 0.465681, -0.992148, -0.989417, -0.118182, -0.678714, -0.649348, + 0.104198, -0.190318, 0.782989, -0.550907, 0.458953, -0.499913, -0.513079, 0.880224, 0.12148, + 0.998124, -0.831424, -0.361635, -0.848821, 0.796799, 0.485678, 0.046579, 0.944663, -0.693543, + -0.731571, 0.923948, -0.261534, 0.64951, 0.479979, 0.271339, -0.628013, -0.330541, 0.869043, + 0.394063, -0.267173, 0.323153, -0.248419, -0.077478, 0.174334, 0.696992, 0.956604, 0.910533, + -0.211372, 0.080573, -0.961999, -0.09857, 0.05801, -0.639526, 0.89532, -0.421881, -0.92706, + -0.459516, -0.173982, -0.832182, 0.636362, 0.143606, -0.587917, 0.088031, -0.864286, 0.315477, + -0.033292, -0.078851, 0.081418, -0.457037, 0.668235, -0.727248, -0.015065, 0.825533, 0.210712, + -0.719999, 0.993124, -0.592853, -0.425119, 0.614084, -0.601263, 0.039996, 0.36895, 0.553922, + -0.618313, 0.954068, 0.744077, -0.397764, 0.00599, -0.350475, -0.515392, 0.867149, 0.743399, + 0.259523, 0.899599, -0.971349, 0.073769, -0.494999, 0.541945, 0.079175, -0.785824, 0.031321, + 0.409778, -0.307655, -0.094626, -0.71128, 0.861857, -0.968038, -0.591857, -0.78896, -0.444655, + -0.544042, 0.315483, 0.864471, 0.043483, 0.228927, 0.755354, -0.998465, 0.066529, 0.45035, + 0.182583, -0.416383, -0.334715, -0.523265, 0.989502, -0.441832, -0.171535, 0.019011, -0.75073, + -0.654825, -0.674815, 0.20242, -0.606569, -0.78787, -0.56918, -0.344874, -0.271591, -0.624517, + 0.2858, -0.125684, -0.722699, 0.46595, 0.230668, 0.159618, 0.984915, -0.171288, 0.630726, + -0.506317, -0.489019, 0.242913, -0.52196, 0.431271, -0.942437, -0.366608, 0.997204, -0.050636, + 0.54331, 0.901638, -0.285776, -0.233099, -0.143527, -0.498166, -0.030137, 0.476549, 0.863097, + 0.691794, 0.984826, -0.50503, -0.689362, -0.986009, 0.58881, 0.443354, -0.239342, 0.826778, + -0.719754, -0.161792, -0.026157, 0.402132, 0.833971, -0.568576, 0.997486, 0.952484, 0.266044, + -0.658144, 0.329715, 0.208387, -0.362587, 0.962706, -0.803242, -0.355222, -0.3751, -0.277554, + 0.741164, -0.049765, 0.139143, -0.891859, -0.676387, 0.628146, -0.305648, 0.357726, -0.770725, + -0.567833, 0.481179, 0.704211, 0.062155, -0.905536, -0.62914, -0.363836, 0.465442, -0.813226, + -0.642232, -0.993793, -0.705416, 0.723869, -0.373076, -0.235867, 0.030813, -0.197817, -0.342654, + -0.020252, -0.501347, 0.634349, -0.040235, 0.447313, 0.120546, 0.753467, 0.48644, -0.502735, + -0.235027, 0.230768, -0.360775, -0.693163, 0.838331, 0.671619, -0.499591, 0.23085, 0.725108, + -0.605925, -0.164766, -0.824661, -0.915014, 0.794775, 0.349995, -0.64993, -0.074212, -0.465138, + -0.182268, -0.216208, 0.31676, 0.173034, -0.678017, 0.500991, 0.073686, -0.52229, -0.580916, + -0.022068, 0.348055, -0.923532, -0.232544, -0.722589, -0.935072, 0.535903, -0.343543, -0.953129, + -0.287978, -0.552311, 0.540574, -0.157021, -0.606097, -0.408759, -0.221214, 0.765341, 0.090932, + -0.791373, -0.25892, 0.921558, -0.854483, -0.374965, 0.871066, -0.403318, 0.761705, -0.654887, + 0.75696, 0.660792, -0.186945, -0.927602, -0.338239, 0.25045, -0.334917, -0.798098, -0.883854, + 0.476172, 0.720843, -0.378767, 0.038216, -0.612152, 0.577388, -0.657126, -0.567145, -0.407165, + -0.18364, 0.123579, -0.942699, -0.365711, -0.434003, -0.203133, -0.056929, 0.046856, 0.510613, + -0.569307, 0.021818, 0.908752, 0.128275, -0.742854, 0.684459, -0.887424, 0.406434, 0.827906, + 0.12533, 0.536385, 0.793504, 0.456616, -0.300414, 0.217435, 0.808815, 0.234467, -0.794752, + 0.870166, 0.969104, 0.580301, 0.543636, 0.561845, -0.607151, -0.300152, 0.432207, 0.25469, + 0.424945, -0.018927, -0.963696, 0.473997, -0.62899, -0.826372, 0.988932, 0.440827, 0.496982, + -0.438131, 0.36851, 0.084988, 0.682113, 0.116977, 0.89378, -0.234218, 0.92281, 0.990362, + 0.11828, -0.733191, 0.000392, 0.795989, -0.683225, -0.357384, 0.361605, 0.203191, 0.940042, + 0.16471, -0.007647, 0.131427, -0.205691, -0.920609, -0.350745, -0.906507, 0.731684, 0.060505, + 0.116441, -0.069402, -0.513095, -0.705486, -0.153062, 0.302562, -0.547236, -0.61868, 0.649703, + -0.347204, 0.563379, 0.957331, 0.939906, -0.77316, 0.074174, -0.784106, 0.041274, 0.139066, + -0.432825, 0.296807, -0.313491, 0.563411, 0.009533, 0.694123, 0.6759, 0.223303, 0.186688, + -0.452603, -0.660361, 0.674206, 0.65992, 0.15682, 0.839023, 0.522147, 0.653233, -0.191807, + 0.142945, -0.899094, -0.913707, 0.475475, -0.602794, 0.761619, -0.806903, -0.827824, -0.820862, + 0.641779, -0.662836, -0.857576, 0.422421, -0.201706, -0.952456, 0.709223, 0.724775, 0.802137, + 0.627734, -0.775268, -0.440219, -0.392987, -0.972511, 0.69883, -0.404681, 0.343227, -0.508501, + 0.896115, 0.70462, 0.690173, 0.489451, 0.837065, 0.326949, 0.170884, -0.225482, 0.812599, + -0.96491, 0.714204, -0.094617, -0.066201, -0.657417, -0.437212, 0.188633, -0.407489, 0.356005, + 0.140876, -0.851256, 0.546545, -0.440294, -0.361303, -0.368037, 0.395117, -0.986063, -0.720675, + 0.402438, -0.302995, -0.189749, -0.898486, 0.101413, 0.470629, -0.360957, 0.07643, 0.02836, + -0.211752, 0.806583, 0.25752, 0.190072, -0.031105, -0.020958, 0.536986, 0.057513, 0.226288, + 0.811557, 0.707057, -0.36699, -0.81885, 0.263391, -0.682995, -0.994539, 0.686692, -0.828817, + 0.987033, -0.921262, -0.814239, 0.574933, 0.077161, -0.435858, 0.379571, -0.649729, -0.551178, + -0.96305, -0.512231, -0.858917, 0.856885, -0.434724, 0.169667, -0.449465, -0.2291, 0.730514, + 0.203518, 0.482819, 0.326745, -0.81502, 0.600556, 0.810222, 0.298855, 0.796594, -0.476475, + -0.654269, -0.803201, -0.158118, -0.098896, -0.568391, -0.341988, -0.322041, 0.96443, -0.071411, + 0.810697, 0.096328, 0.356336, 0.576261, -0.920423, -0.450749, -0.759991, 0.971466, 0.366971, + -0.41913, -0.754116, 0.553772, 0.232121, -0.49197, -0.725746, -0.521879, 0.243515, -0.841949, + -0.105523, 0.593541, 0.53413, 0.107926, 0.106246, 0.233653, 0.390553, 0.789274, 0.27163, + 0.549738, 0.697073, -0.77572, -0.533743, 0.54904, 0.200351, -0.577232, 0.295501, -0.909096, + -0.372079, 0.504263, -0.026349, -0.675785, 0.494299, 0.069491, -0.143111, -0.96171, -0.360717, + 0.110448, -0.543429, 0.168293, -0.710382, 0.771642, 0.770024, 0.589005, -0.118799, -0.996532, + -0.390477, -0.081013, -0.921657, 0.787296, 0.284649, 0.758676, -0.894686, -0.513443, 0.225374, + -0.01524, -0.581583, 0.731184, 0.41239, -0.047685, 0.952997, -0.975255, -0.908324, 0.199436, + 0.907524, 0.565321, -0.550297, 0.717432, 0.519579, 0.056846, 0.63267, 0.197899, 0.001313, + -0.276885, -0.531282, -0.630358, -0.131455, -0.683882, 0.423836, 0.282381, -0.974999, -0.735567, + 0.714635, -0.524245, -0.010314, -0.64051, -0.218706, 0.493192, 0.254174, 0.490831, -0.058226, + -0.797866, -0.012586, 0.592855, 0.233908, 0.206813, 0.196901, 0.820488, 0.50447, -0.163555, + -0.542537, 0.813727, -0.520238, -0.668494, 0.312375, -0.638574, -0.862872, -0.809769, 0.246589, + -0.628404, 0.884629, -0.040131, -0.42471, -0.613188, -0.298951, 0.87241, -0.638327, -0.925882, + 0.297535, 0.339093, -0.847262, -0.448873, 0.866783, -0.472681, 0.419565, -0.480026, -0.88281, + -0.964665, 0.762796, 0.306571, 0.284389, 0.344184, 0.385387, 0.660179, 0.767211, 0.77113, + 0.321336, 0.17859, 0.214676, -0.809937, 0.445868, 0.246609, 0.434674, -0.246758, 0.830595, + 0.120128, -0.237033, -0.028266, -0.399142, -0.146931, 0.848752, 0.331705, -0.111764, 0.037764, + 0.228428, -0.577107, -0.548505, 0.881765, 0.005449, 0.297623, -0.460188, -0.735058, 0.198375, + 0.540114, -0.941861, -0.989022, -0.333508, 0.646684, -0.893528, 0.798917, 0.904352, -0.224422, + 0.063876, -0.041301, 0.97426, 0.111126, 0.244348, -0.34216, -0.012214, -0.530308, 0.050276, + -0.138762, 0.186382, 0.194415, -0.818198, 0.66809, 0.550059, 0.70442, 0.736454, 0.258023, + 0.546659, 0.492904, 0.596235, -0.602197, 0.473801, -0.080122, 0.386798, 0.367589, -0.745381, + -0.454912, -0.711902, -0.265864, 0.322751, 0.233254, 0.793995, -0.721989, 0.312935, 0.817878, + -0.770373, -0.752727, 0.240666, -0.40587, 0.255736, -0.483327, 0.12883, -0.84761, 0.796747, + -0.638544, -0.917653, -0.51791, 0.021238, 0.939737, 0.209081, -0.209082, -0.719744, 0.456449, + 0.072921, -0.289593, -0.280428, 0.146623, 0.588794, -0.60138, -0.241534, 0.471603, -0.684954, + -0.024712, 0.80989, 0.698272, -0.802311, -0.469347, 0.160891, 0.631655, -0.401716, -0.908056, + -0.037168, 0.627242, -0.514222, -0.920913, 0.068867, 0.831242, -0.810647, 0.21519, 0.633374, + 0.030102, -0.535939, -0.361828, -0.65774, 0.072685, -0.435141, 0.033751, -0.220106, -0.684805, + 0.968331, 0.235585, 0.494619, 0.592123, 0.402879, -0.236622, -0.306905, -0.551379, -0.889601, + -0.763556, -0.380833, 0.941956, -0.95427, -0.629855, -0.777903, -0.70067, 0.817768, -0.790989, + -0.715549, -0.584962, 0.268088, -0.312593, -0.665856, 0.826653, 0.153345, -0.730024, -0.373366, + 0.615703, 0.363048, -0.637101, -0.508077, -0.392244, 0.381968, -0.801953, 0.934812, 0.097703, + 0.3973, 0.294875, 0.778421, -0.326967, -0.377858, -0.652274, 0.818115, -0.080824, -0.015609, + 0.881198, -0.25212, -0.335534, -0.417519, 0.574489, 0.12121, -0.53425, 0.65711, 0.389865, + -0.229103, 0.229676, -0.906327, -0.7106, -0.366861, 0.481607, -0.218257, 0.729649, -0.932779, + 0.727558, -0.96688, -0.343522, 0.917127, -0.334209, -0.436062, 0.540237, -0.53576, 0.207265, + -0.358761, 0.391874, -0.613166, -0.523332, -0.664293, -0.177369, 0.992958, 0.574954, -0.793513, + 0.510596, 0.915971, 0.989638, 0.099605, 0.266929, 0.725785, 0.96228, 0.034169, -0.176855, + 0.811695, -0.268663, 0.797002, 0.846207, 0.278669, -0.805157, 0.780733, 0.477638, 0.240159, + 0.216534, 0.47056, 0.590393, -0.655775, -0.791743, 0.517957, -0.416234, -0.878365, 0.835426, + -0.775109, -0.341532, -0.628147, 0.867393, -0.129644, -0.522747, 0.834947, 0.930696, 0.530133, + 0.783303, -0.900468, -0.90375, 0.54647, -0.224528, 0.425205, 0.929318, -0.228473, -0.531294, + 0.936978, -0.479388, -0.573007, 0.802514, -0.041112, -0.487727, 0.356661, -0.505333, 0.036448, + -0.78782, -0.241396, 0.775795, 0.144053, -0.135462, 0.758332, 0.541597, 0.561181, 0.474516, + -0.342176, -0.890298, -0.592173, -0.594401, 0.278477, 0.801941, 0.924398, 0.800764, 0.141893, + 0.688688, 0.050187, 0.464455, -0.662005, 0.963233, 0.462296, 0.001471, -0.397014, 0.175143, + -0.1152, -0.647264, -0.619565, -0.398889, 0.229556, -0.64479, 0.551101, -0.550753, 0.601221, + 0.034496, 0.00172, 0.135049, -0.007542, 0.494256, -0.079972, -0.353055, 0.104249, -0.585532, + 0.40027, 0.10059, 0.504448, -0.175361, -0.005649, -0.47617, -0.448922, 0.024736, 0.511904, + -0.378347, 0.785886, -0.337619, -0.205577, 0.80131, -0.181509, 0.543865, -0.098464, 0.594395, + 0.130059, -0.471213, -0.658734, 0.593624, 0.245743, -0.155312, -0.191054, -0.415097, -0.692642, + 0.221844, -0.850279, -0.013268, 0.714608, 0.456242, 0.540265, 0.184838, -0.559348, 0.509769, + 0.780357, 0.409301, 0.696535, -0.807445, -0.870169, -0.231594, 0.263132, 0.642504, -0.293589, + -0.442673, 0.644961, -0.030647, 0.067822, -0.954116, -0.092886, 0.485135, 0.965691, 0.093175, + 0.635193, 0.139001, -0.789189, -0.033698, -0.341729, -0.1358, -0.388969, 0.747558, -0.816333, + -0.60108, -0.310508, 0.837812, -0.204632, 0.408063, 0.490277, 0.855919, -0.229765, 0.186806, + -0.488076, -0.076011, -0.856981, -0.815942, 0.271992, -0.766411, 0.522655, 0.739109, 0.350884, + 0.382806, -0.908551, -0.462437, -0.722031, -0.948219, 0.425123, 0.228974, 0.951479, -0.275512, + -0.662099, -0.860823, 0.061581, -0.548042, 0.177408, 0.66148, 0.855021, -0.163094, -0.650262, + -0.543007, 0.635065, 0.258786, 0.063318, -0.971585, 0.538631, 0.632616, 0.103202, -0.180193, + -0.474537, 0.008168, 0.049679, 0.282092, -0.042383, 0.948076, 0.644602, 0.225769, -0.887799, + -0.477478, 0.391295, -0.646261, 0.278794, 0.245575, -0.628704, 0.198365, -0.129335, 0.74483, + -0.220618, 0.872695, 0.868832, -0.331544, 0.167796, -0.273358, 0.800772, 0.479451, 0.002741, + 0.604755, -0.802946, -0.255731, 0.204129, -0.947409, 0.874041, 0.082159, 0.88344, -0.291048, + 0.059542, -0.275804, -0.409994, -0.370556, 0.691615, 0.898499, 0.287761, 0.558396, 0.434993, + 0.001253, -0.744343, 0.250862, -0.343619, 0.382884, -0.650681, -0.067969, -0.393072, -0.925092, + -0.924494, 0.922621, -0.001088, -0.862044, 0.163975, -0.062759, 0.823817, 0.942453, -0.257031, + -0.600053, -0.573074, -0.26589, -0.548932, 0.901345, -0.382235, 0.515211, 0.452553, 0.233809, + 0.487499, 0.846798, 0.425482, 0.440025, -0.839056, -0.088622, 0.02309, 0.783162, 0.427303, + 0.7777, 0.773485, -0.466457, 0.141867, 0.953532, 0.353522, 0.565409, 0.406474, -0.313912, + 0.238794, -0.690957, 0.922561, 0.057217, 0.774926, -0.702964, -0.918658, 0.119735, -0.12812, + -0.404499, 0.523951, -0.650519, 0.876287, -0.976213, 0.205081, -0.584698, 0.216941, 0.987578, + -0.120028, 0.232518, -0.393539, -0.513145, -0.854202, 0.5772, -0.011106, 0.346295, -0.769094, + -0.832562, -0.909287, -0.576285, -0.130025, -0.150886, 0.439703, -0.480504, 0.974386, -0.455707, + -0.9404, 0.756463, -0.642671, 0.095303, -0.096545, -0.208595, 0.000648, -0.983363, 0.899235, + -0.649178, 0.609704, -0.591319, -0.246245, -0.02365, -0.394145, -0.433229, -0.841731, -0.686836, + -0.04692, -0.292324, -0.140436, 0.2551, -0.128201, -0.946639, -0.367781, 0.306081, 0.359901, + 0.483909, 0.055377, 0.683679, -0.684311, -0.839199, -0.266626, 0.006744, 0.726071, -0.57669, + -0.700356, -0.027054, 0.2543, -0.912077, -0.403106, -0.785548, 0.233692, 0.093285, -0.889244, + -0.665887, 0.046242, -0.264991, -0.773466, -0.303027, -0.918382, -0.114186, -0.116561, 0.052418, + 0.084936, -0.174188, 0.798041, -0.358034, 0.451913, 0.37755, -0.122572, -0.732839, -0.842607, + 0.276807, 0.305735, 0.606506, -0.442645, 0.807383, 0.999874, -0.159053, -0.389691, -0.314109, + -0.869396, 0.576488, 0.108983, 0.460709, 0.642503, -0.424675, 0.009312, 0.808394, -0.770905, + 0.879206, 0.520004, -0.314062, -0.816511, 0.534126, 0.477107, -0.452863, 0.476085, 0.296791, + 0.98436, 0.511522, 0.154391, -0.98982, 0.813852, 0.858597, -0.277188, -0.078202, -0.03896, + -0.061063, 0.543611, 0.135167, -0.869697, 0.32174, -0.614255, 0.285514, 0.435283, -0.477502, + 0.677423, 0.025537, -0.502957, 0.856897, 0.638995, 0.731253, -0.688535, -0.762123, -0.879233, + 0.646535, 0.583219, -0.609581, 0.392027, 0.200998, -0.425668, 0.034321, -0.603297, -0.292782, + 0.395405, 0.141214, -0.74418, 0.251654, -0.19955, -0.734614, -0.924573, 0.043125, -0.735972, + -0.611282, 0.240965, 0.061662, -0.452737, 0.155027, 0.50377, -0.386145, -0.356638, 0.17658, + 0.244609, 0.345631, 0.681003, -0.066844, 0.332203, -0.575436, -0.127519, 0.740768, -0.968743, + -0.657807, -0.864426, 0.832044, -0.1129, 0.915873, -0.538983, -0.271928, 0.643643, -0.995979, + -0.974573, -0.669667, 0.017015, -0.91998, 0.185154, 0.845716, -0.202692, -0.176071, -0.880057, + -0.211385, 0.082709, 0.204706, -0.329303, -0.6111, -0.523906, 0.689519, -0.544014, 0.077744, + -0.175769, -0.4021, -0.043195, 0.755877, 0.757165, -0.20888, -0.201136, -0.560161, -0.465125, + -0.170822, 0.742029, 0.142462, -0.855881, -0.257052, -0.863891, 0.924127, 0.092583, -0.253813, + 0.400986, -0.937456, -0.330135, 0.093808, 0.721583, 0.815673, -0.033428, -0.999619, 0.184732, + -0.563942, 0.901942, -0.269262, -0.272148, -0.148521, 0.926872, 0.438522, -0.689617, 0.17524, + 0.317966, -0.259737, 0.331972, -0.897622, -0.515493, 0.638837, 0.929015, 0.317651, -0.566541, + 0.36444, -0.575973, -0.801265, -0.659835, -0.094779, 0.212352, 0.074457, 0.961107, -0.070954, + 0.919921, -0.743184, -0.514809, 0.137106, 0.596012, 0.296821, 0.980646, -0.533057, 0.935855, + 0.319279, 0.264037, -0.025638, -0.719773, 0.534959, 0.216896, 0.689336, 0.735911, -0.849319, + 0.926353, -0.230273, -0.669951, 0.872799, -0.158151, 0.164773, 0.150098, -0.537904, 0.634143, + 0.379188, 0.805486, -0.277929, -0.733756, 0.195868, -0.268689, 0.000516, -0.813321, 0.896846, + -0.525928, -0.090347, 0.025374, -0.434429, 0.594139, -0.814818, -0.134514, -0.647599, 0.592993, + -0.728001, 0.791723, -0.864907, -0.999442, 0.024388, -0.984463, 0.931515, 0.934102, -0.456658, + 0.747478, -0.384591, 0.24463, -0.700908, -0.067699, -0.30533, 0.224344, 0.321473, -0.933392, + 0.06757, 0.774359, 0.805613, 0.452762, 0.023156, 0.686088, 0.530664, -0.657781, -0.057044, + -0.926397, 0.07041, 0.07594, -0.658359, 0.23882, 0.69154, -0.850888, -0.890793, -0.488668, + 0.129579, -0.970569, -0.199016, 0.767817, -0.825348, -0.267116, -0.211393, 0.604378, -0.371855, + 0.75914, -0.501198, 0.371009, -0.184827, 0.8705, -0.490316, -0.37572, 0.90192, -0.792191, + 0.282728, 0.497061, -0.086849, 0.879192, -0.930087, -0.145226, -0.526214, 0.394004, 0.977763, + -0.978874, -0.445761, -0.74054, -0.560897, 0.302317, 0.014742, -0.783236, -0.613217, -0.654942, + 0.075869, -0.823549, -0.781909, -0.801196, 0.806597, 0.730391, -0.473163, 0.234727, -0.139662, + -0.4019, 0.466281, -0.672633, -0.0033, 0.747326, -0.868371, 0.824477, 0.66056, 0.442234, + -0.130667, -0.388979, -0.549018, -0.725036, -0.974792, -0.143445, 0.198816, -0.96798, 0.984366, + -0.714515, 0.078942, -0.338925, 0.910091, -0.435316, 0.261224, 0.318728, 0.458563, -0.701056, + -0.553818, 0.011143, -0.986343, -0.390243, -0.839069, 0.442023, 0.103622, -0.934476, 0.977951, + 0.409944, -0.573125, -0.100682, 0.678155, -0.594306, 0.250095, 0.3252, -0.642875, -0.525532, + -0.177335, -0.782249, 0.860563, 0.285538, -0.318318, -0.011757, 0.010929, 0.331189, 0.710314, + -0.840369, -0.355713, 0.360564, -0.558524, -0.049265, -0.292566, 0.572984, -0.536192, 0.901129, + 0.475454, -0.716979, -0.198813, -0.093806, -0.978843, -0.857042, 0.82741, 0.718504, -0.681011, + -0.009843, 0.268693, 0.610182, 0.885778, 0.627352, 0.829333, -0.648344, -0.227926, 0.478492, + -0.769754, -0.968406, 0.563641, 0.729144, 0.399646, 0.635156, 0.467878, 0.13539, -0.22514, + 0.137883, -0.348787, 0.811898, 0.844657, -0.306344, 0.441323, -0.271506, 0.800133, -0.899587, + 0.142286, -0.076922, 0.682782, 0.105974, 0.18973, -0.979187, -0.55015, 0.933439, -0.089622, + 0.427467, -0.81757, 0.514871, -0.435064, -0.102612, 0.942279, 0.708386, -0.876822, -0.448593, + 0.59005, -0.183759, 0.789618, 0.410861, -0.110921, -0.623472, 0.057392, 0.78876, 0.768483, + -0.43156, -0.276371, 0.322512, -0.84997, 0.133607, 0.255458, 0.981423, -0.123817, 0.972917, + 0.972604, -0.514569, 0.155466, 0.57317, -0.11613, -0.547736, 0.21323, 0.440684, -0.810253, + -0.805826, -0.754581, -0.766303, 0.875587, -0.444789, -0.118761, -0.266121, -0.514011, 0.846081, + -0.357065, 0.607259, -0.462113, 0.980853, 0.252736, -0.176501, 0.007042, 0.414304, -0.53707, + -0.296579, -0.74205, -0.670673, 0.481002, -0.083724, -0.499155, 0.046487, 0.570589, 0.9184, + -0.585402, 0.408147, 0.095568, -0.507513, 0.221638, 0.112358, 0.590982, 0.818267, 0.469686, + 0.189202, -0.751309, -0.837248, 0.468508, -0.613497, 0.013826, 0.769825, 0.501944, -0.127038, + 0.157596, 0.0344, 0.086316, 0.872029, -0.611794, 0.870499, 0.047999, 0.948413, -0.426358, + 0.614738, -0.549775, -0.819334, 0.726891, 0.345668, 0.983048, 0.4053, -0.421875, -0.594734, + 0.818509, -0.198242, -0.594137, -0.738592, -0.669407, -0.420057, -0.803999, 0.962462, 0.115541, + 0.329918, -0.491963, 0.028185, 0.681634, -0.338909, 0.807369, -0.310897, -0.373869, -0.736049, + -0.991083, 0.435995, -0.645129, -0.548255, -0.409067, -0.764815, -0.768676, -0.652875, 0.974935, + 0.058095, -0.37685, -0.083369, 0.835949, -0.581675, 0.403875, -0.186312, -0.849629, 0.661402, + 0.461966, 0.734965, 0.457824, 0.162941, 0.307451, -0.746558, 0.963668, -0.644156, 0.705506, + -0.63317, -0.722678, 0.412118, 0.655371, -0.27237, 0.280078, -0.871631, -0.112292, 0.882303, + 0.934392, -0.318425, 0.369483, 0.922274, 0.37086, 0.183314, -0.805803, 0.287485, 0.266977, + -0.563302, 0.499332, -0.652315, 0.957344, -0.050322, 0.680832, -0.262578, -0.507971, 0.727485, + 0.607141, 0.981899, 0.293962, -0.419816, -0.587237, -0.954214, 0.063371, 0.957317, -0.331478, + -0.193007, 0.704364, 0.889545, 0.271659, 0.079423, 0.977897, 0.837493, -0.636317, -0.69768, + -0.229414, 0.396294, -0.611975, -0.428074, 0.083013, -0.252654, 0.670866, 0.633423, 0.688674, + 0.531892, -0.578542, -0.769652, -0.671957, -0.127997, 0.786018, -0.222047, 0.920187, 0.746345, + -0.949105, 0.461789, -0.421808, -0.953943, 0.350493, -0.343594, -0.888455, -0.703744, 0.735757, + -0.239561, 0.783793, -0.347016, 0.976879, -0.250306, 0.946505, 0.387903, -0.751393, 0.436977, + 0.419897, -0.839501, -0.864569, 0.058007, 0.541658, 0.852049, -0.277255, -0.936457, 0.456795, + 0.069729, 0.025503, 0.631339, 0.119414, 0.86685, 0.76769, 0.256051, 0.744892, 0.320156, + -0.949013, 0.897578, 0.030463, -0.123544, 0.824107, 0.87223, -0.791281, 0.393929, -0.549726, + -0.256956, 0.214848, -0.371116, -0.422147, 0.497869, -0.24047, 0.377667, 0.958838, 0.242594, + 0.23256, 0.877326, -0.375969, 0.001445, -0.925597, -0.425749, -0.07834, 0.906881, 0.564939, + -0.185716, -0.272057, 0.244844, -0.434242, -0.146161, 0.264786, -0.309924, 0.73197, 0.395967, + -0.103847, -0.174597, 0.099424, 0.52287, 0.280314, -0.272636, 0.348634, -0.042475, -0.7298, + -0.788256, 0.007484, 0.865321, -0.388726, 0.627536, -0.297004, 0.597853, -0.224105, -0.414603, + 0.293223, 0.529059, -0.762162, -0.072957, 0.207552, 0.179867, 0.974867, -0.876606, 0.853377, + 0.517099, -0.942974, -0.385313, 0.347401, -0.752731, 0.935098, -0.376206, 0.383306, 0.193013, + -0.389295, -0.941086, 0.073123, -0.817106, -0.218415, 0.210261, -0.350172, 0.571046, -0.898436, + -0.789441, 0.532581, -0.520777, 0.821266, -0.202264, -0.179052, 0.953557, -0.110889, -0.801796, + -0.416578, 0.31118, 0.681036, 0.843186, -0.36711, 0.147176, 0.728492, -0.409106, 0.066858, + -0.484629, 0.142492, 0.972852, 0.844994, -0.657665, 0.490802, 0.940846, -0.177034, 0.354935, + -0.897998, 0.555604, -0.187336, 0.918475, 0.700439, -0.574832, -0.442217, -0.786334, -0.923835, + -0.907271, 0.484092, 0.663134, -0.634449, 0.699888, -0.313723, 0.298367, 0.837593, 0.775858, + -0.797055, 0.393587, -0.502271, -0.85867, -0.04431, -0.223961, 0.209924, 0.112808, 0.578894, + 0.515831, -0.896546, -0.873891, -0.631916, 0.514967, 0.923504, -0.585367, 0.187379, 0.055817, + 0.373194, 0.386264, 0.155814, 0.665261, -0.33242, 0.954636, -0.028247, -0.906315, 0.487322, + 0.704013, 0.670472, 0.109938, 0.338329, 0.310354, -0.426985, -0.040005, 0.023605, -0.553709, + -0.373049, -0.398407, -0.164143, -0.657998, 0.579997, -0.025221, 0.76919, -0.641988, 0.2777, + -0.327983, 0.52984, -0.39987, -0.495945, 0.079486, -0.573412, 0.690085, -0.037672, 0.560526, + -0.293449, -0.246166, -0.945816, 0.279453, 0.341073, 0.656536, 0.132533, -0.095644, -0.13436, + 0.407833, 0.956485, 0.064278, -0.843642, -0.892647, 0.382857, 0.89018, -0.528553, 0.504066, + 0.836953, 0.87529, 0.635322, -0.648838, 0.701504, 0.035139, -0.600301, -0.992697, -0.392688, + 0.831935, 0.999168, 0.734577, -0.706804, 0.576746, 0.552827, 0.902465, -0.588478, 0.828292, + -0.130689, 0.399493, -0.854769, -0.154958, -0.632811, -0.284402, -0.103673, -0.358275, 0.443696, + 0.926671, 0.232227, -0.441048, -0.223075, -0.309442, 0.074173, -0.088986, 0.584785, 0.07654, + -0.896809, -0.357737, -0.48442, 0.351295, 0.896389, 0.812713, 0.23669, -0.645605, -0.03425, + 0.156163, 0.020108, 0.551481, 0.482857, -0.307239, -0.370581, 0.116339, 0.095819, 0.020376, + -0.964189, -0.938254, 0.899787, 0.975741, -0.876547, -0.700558, -0.14537, -0.566033, -0.980456, + 0.30948, -0.639708, 0.320738, -0.645966, -0.052211, -0.317547, -0.189312, -0.43304, -0.83806, + 0.809944, -0.083284, -0.538539, 0.934015, 0.12765, -0.23562, 0.290539, -0.061151, 0.250772, + 0.839699, 0.369352, 0.704881, 0.528775, -0.402728, -0.08223, -0.188466, 0.994113, -0.378853, + 0.714857, -0.289513, 0.836324, 0.426488, 0.551264, -0.7151, -0.029611, 0.932181, -0.794164, + -0.218602, -0.986004, -0.924132, 0.737338, -0.590456, 0.095283, -0.852593, -0.757204, 0.902692, + 0.195612, -0.274314, -0.265291, 0.964793, 0.712594, 0.707863, 0.899418, 0.037884, 0.149157, + 0.058506, -0.399648, -0.868014, 0.892423, 0.829871, 0.093793, -0.355254, 0.86887, -0.444602, + -0.037978, -0.342864, -0.583413, -0.762436, 0.975926, 0.877926, 0.491549, -0.367455, -0.326618, + 0.585959, 0.758274, 0.999691, 0.467269, -0.380718, -0.437773, 0.95262, -0.705189, -0.841705, + -0.103943, -0.163531, 0.49792, -0.679646, -0.227688, -0.773508, 0.682261, 0.2272, -0.499463, + -0.268955, 0.630244, 0.792983, -0.919865, -0.58152, 0.171701, 0.253244, -0.633955, 0.381849, + 0.047409, -0.555083, -0.764846, -0.009737, 0.311837, 0.455914, 0.376521, 0.703228, 0.891957, + -0.602353, -0.354833, -0.839772, 0.77803, -0.951783, -0.483896, -0.905631, -0.15601, -0.393357, + 0.58634, -0.809121, 0.602012, -0.374305, 0.191599, -0.642964, 0.275291, 0.783427, 0.340484, + 0.303224, -0.260463, -0.942252, 0.288214, 0.713961, 0.562518, 0.859584, -0.528062, 0.571192, + 0.685214, 0.741031, -0.513224, 0.743305, -0.86777, -0.535844, 0.522959, 0.790586, 0.659954, + -0.261966, -0.750866, 0.615877, -0.498832, 0.695196, -0.009402, 0.403022, 0.18019, -0.132893, + -0.425209, -0.212607, -0.264234, -0.821659, 0.339638, 0.394911, -0.998688, -0.478761, -0.794545, + -0.008982, -0.558998, 0.796481, -0.762611, -0.336048, 0.883121, 0.039378, 0.801653, -0.474405, + 0.864777, -0.677102, -0.397555, -0.880756, 0.947129, 0.381285, -0.325477, 0.112889, -0.025554, + -0.727564, -0.661101, 0.411317, 0.725651, 0.021132, 0.966715, -0.062921, 0.601064, 0.384639, + 0.993695, 0.42061, -0.637988, 0.655923, -0.477335, -0.798442, -0.805502, 0.992771, 0.235505, + 0.416121, -0.430943, -0.8021, 0.279566, -0.81979, 0.210654, -0.1326, 0.09921, 0.634211, + -0.902653, 0.433349, -0.453489, -0.188532, -0.515734, -0.333949, 0.380128, 0.496403, -0.802653, + 0.167706, -0.00137, 0.662622, -0.003868, 0.927588, 0.79587, -0.895235, 0.802285, 0.074336, + -0.099238, -0.609284, -0.622122, 0.294386, -0.393431, 0.361436, -0.132157, -0.234332, 0.600536, + -0.71639, -0.346699, 0.691378, 0.536769, 0.974374, 0.75192, -0.670929, 0.571974, 0.083135, + 0.705016, -0.24069, 0.531194, -0.23313, 0.448963, -0.494404, 0.49751, 0.587417, 0.760133, + -0.534507, -0.544533, 0.339664, -0.660443, -0.601311, 0.125945, 0.943222, -0.708635, -0.173837, + -0.735991, -0.106393, 0.884425, -0.766981, 0.673462, 0.547061, 0.131067, 0.658058, 0.494017, + 0.317101, 0.141522, -0.650316, -0.949735, 0.670123, -0.365337, -0.904666, -0.326817, -0.704091, + 0.815205, 0.73864, -0.890112, 0.406161, -0.408073, 0.955794, 0.0943, -0.061383, 0.393523, + -0.857697, -0.39664, 0.825964, 0.856672, -0.176031, 0.752488, -0.82067, -0.788064, -0.202935, + -0.936117, 0.859822, -0.146783, -0.532885, 0.306239, -0.168917, 0.588198, 0.573747, -0.737395, + 0.221696, -0.200873, 0.491707, -0.695755, 0.016188, 0.302025, -0.794409, 0.307826, -0.383721, + 0.371067, -0.424199, -0.217189, -0.957316, -0.135884, 0.753035, 0.352293, -0.752325, -0.832932, + 0.757498, -0.430192, -0.795372, -0.409615, 0.524998, 0.121372, -0.511204, 0.495735, 0.997674, + 0.224965, -0.749933, -0.273353, -0.995546, 0.853373, -0.654431, -0.028821, -0.587151, -0.035231, + -0.707001, -0.78997, -0.720919, 0.425755, -0.999996, 0.833255, 0.431201, 0.536188, 0.935493, + 0.074092, -0.254711, -0.922077, -0.594193, -0.683375, -0.916119, -0.414483, -0.020578, -0.030634, + 0.155679, -0.687449, 0.593679, -0.929193, 0.341621, -0.397673, 0.855233, -0.525182, 0.932861, + -0.72792, -0.661427, -0.102608, -0.695951, 0.101593, -0.714764, -0.10541, -0.128085, -0.354049, + 0.162359, -0.568159, 0.583534, -0.285159, -0.570019, -0.292429, 0.365845, -0.570823, -0.933358, + -0.226179, -0.677987, 0.977705, -0.351024, 0.252632, -0.47122, 0.024603, -0.220114, -0.145821, + 0.828478, 0.420462, -0.507004, 0.517278, -0.643792, 0.769476, -0.883186, -0.974493, 0.981344, + 0.546299, 0.035162, -0.773295, 0.616609, -0.405712, 0.279886, 0.174577, 0.642607, -0.235944, + 0.999539, -0.725492, -0.453049, 0.984825, -0.882524, -0.3048, 0.31245, 0.39999, -0.319206, + -0.784658, 0.845103, -0.767493, 0.951869, 0.074853, -0.571547, 0.140304, -0.03362, -0.832341, + 0.867622, -0.584013, -0.178761, -0.535669, 0.220035, -0.670385, 0.857186, -0.265374, 0.933189, + 0.004337, -0.160985, -0.897215, 0.627782, -0.00642, -0.795162, 0.483051, 0.151975, -0.546876, + -0.601046, -0.201694, 0.468405, 0.322731, -0.617854, -0.701253, 0.837579, 0.194956, 0.48787, + -0.942413, 0.472041, 0.868018, -0.031282, 0.811091, 0.211872, 0.039026, 0.349134, -0.350103, + -0.106044, -0.19581, 0.258032, 0.099318, -0.466751, 0.512209, -0.560977, 0.630777, 0.100452, + -0.063999, -0.065204, 0.21893, 0.041918, 0.872572, 0.800969, 0.994245, 0.60768, 0.021213, + -0.387508, -0.371241, 0.606642, -0.079159, -0.896896, 0.031412, -0.2358, -0.723638, -0.758435, + -0.091325, 0.357876, 0.539568, -0.716294, -0.845694, -0.763346, -0.040082, -0.081708, 0.467086, + -0.814019, 0.90992, -0.299256, -0.947186, -0.630562, 0.242605, -0.207172, 0.72405, -0.004711, + 0.608559, 0.829088, -0.380046, 0.082173, -0.076467, -0.457283, -0.910445, -0.485541, 0.510797, + -0.192238, -0.881292, 0.264757, 0.365035, 0.183716, 0.811475, -0.766314, -0.394523, -0.057933, + -0.659836, 0.337056, -0.251074, 0.931861, -0.33077, -0.70679, 0.767512, 0.983177, 0.736774, + -0.773805, -0.494551, 0.470858, 0.918458, 0.681748, -0.855108, -0.336672, -0.057794, 0.490796, + -0.692403, 0.395243, -0.234063, 0.308909, -0.159576, 0.967672, -0.105196, -0.38584, -0.162411, + -0.493679, -0.826971, 0.645883, -0.606505, -0.435375, -0.515534, -0.010208, 0.561814, -0.269669, + 0.005832, -0.354981, 0.782797, -0.147324, 0.714292, -0.271967, -0.28324, -0.5528, -0.66871, + 0.543287, -0.942328, 0.19919, 0.832743, -0.742661, 0.411067, 0.244401, 0.094922, 0.949682, + -0.6874, 0.587591, -0.496237, 0.595043, 0.078828, 0.072757, -0.851495, 0.113997, -0.734528, + -0.83094, 0.559842, 0.008908, -0.256951, -0.159038, 0.793671, -0.017968, -0.640111, 0.966208, + -0.555718, 0.723711, 0.83434, 0.18275, -0.905525, -0.295373, -0.833918, -0.876593, -0.738983, + -0.530942, -0.922857, -0.549131, -0.790033, -0.776205, -0.655131, -0.962412, 0.017952, 0.085937, + -0.192186, 0.98612, 0.484455, 0.628999, 0.522072, -0.528049, 0.254267, 0.318581, -0.735954, + 0.872741, -0.593991, -0.1233, -0.97661, -0.781122, 0.801962, -0.733245, 0.899973, 0.517427, + 0.924634, -0.468513, -0.783866, 0.831991, -0.40906, -0.118386, 0.931765, -0.453153, -0.343491, + 0.572544, 0.903541, 0.044981, 0.010032, 0.710506, -0.406548, 0.800107, 0.590393, 0.134232, + -0.526481, 0.88181, -0.264837, -0.502652, -0.212819, 0.155933, -0.990589, 0.232933, -0.147343, + 0.302596, -0.030049, -0.526809, -0.238497, -0.288359, 0.848387, -0.884557, 0.287403, 0.906237, + 0.309835, -0.530716, 0.294123, 0.401469, 0.43057, 0.082843, -0.875923, 0.22391, -0.210056, + 0.532125, 0.895717, -0.357885, 0.017001, 0.819829, -0.17125, 0.151272, -0.387905, 0.25056, + -0.412688, -0.8772, -0.876645, 0.439207, -0.150178, 0.174537, 0.670708, 0.209404, 0.885954, + 0.306037, -0.910707, 0.633196, -0.896037, 0.480947, -0.077787, -0.953818, -0.188738, 0.873038, + -0.456193, -0.432722, 0.540777, 0.20363, 0.40379, -0.630332, -0.340213, -0.650454, 0.227708, + 0.20362, -0.500818, -0.545551, 0.465016, 0.081226, 0.204548, -0.233059, -0.885948, 0.642296, + 0.936237, 0.848154, -0.736447, -0.472051, -0.724718, 0.904119, 0.802837, -0.450354, 0.179388, + 0.716752, 0.764705, -0.464103, -0.37823, -0.765446, -0.899832, -0.269363, -0.312051, 0.59886, + 0.756415, -0.218273, 0.444754, 0.006275, 0.502497, -0.882741, -0.176074, -0.33289, 0.807847, + 0.473965, 0.389034, 0.49902, -0.667207, -0.754203, -0.590928, -0.169914, -0.513848, 0.428703, + 0.864663, 0.990222, 0.676109, 0.413142, 0.011533, -0.533974, 0.172686, 0.574985, 0.11425, + -0.109877, -0.08379, -0.890832, 0.035925, 0.158295, 0.853405, 0.362664, 0.94496, -0.020756, + 0.768508, -0.598334, 0.288263, 0.953604, 0.25148, -0.558483, 0.416375, -0.954479, 0.43434, + -0.551124, 0.704075, 0.091, 0.322829, -0.454129, -0.092422, -0.521148, 0.851201, 0.394354, + -0.528504, -0.375066, 0.476704, -0.610317, 0.198022, -0.492948, -0.122984, 0.687609, -0.14921, + 0.555114, -0.659761, 0.783371, -0.943211, -0.952504, -0.985464, -0.864861, -0.087795, -0.954897, + 0.225469, -0.523924, 0.160744, -0.068393, 0.371438, -0.132492, -0.800294, 0.123915, 0.233546, + -0.02568, -0.212146, -0.10148, 0.065493, 0.050959, -0.281771, 0.681009, -0.837784, 0.694382, + -0.621921, 0.712215, -0.690706, -0.620557, 0.13421, 0.927446, -0.117081, -0.162025, 0.387159, + 0.340164, -0.30969, 0.067095, 0.998973, -0.013819, -0.899793, -0.898658, 0.553272, -0.69331, + -0.912911, 0.062195, -0.245595, 0.988789, -0.778031, 0.699519, 0.292123, 0.182714, 0.352902, + 0.565125, 0.716525, -0.76093, 0.947384, 0.342926, 0.152865, -0.450961, 0.96863, -0.52106, + 0.184049, 0.416806, -0.796666, 0.902627, -0.007505, 0.120223, -0.925282, 0.324032, -0.789955, + -0.222371, 0.117075, -0.584427, 0.895762, -0.815149, 0.213602, 0.370746, -0.702584, -0.071445, + -0.938484, -0.994353, 0.715937, -0.138584, -0.320995, -0.805361, 0.929763, -0.420292, 0.798633, + -0.956522, 0.318848, -0.364889, 0.697464, 0.02917, -0.373783, -0.413396, -0.371691, 0.861309, + -0.004268, -0.945805, -0.012382, -0.04446, 0.847782, -0.843759, 0.004928, 0.778962, 0.115602, + -0.026082, -0.893577, -0.759823, -0.303521, -0.831523, 0.374351, 0.301066, -0.841373, 0.990847, + 0.114943, 0.657587, -0.37388, 0.827608, 0.839909, -0.887328, -0.40386, -0.722389, -0.006554, + -0.677285, -0.425468, 0.367976, 0.458476, 0.766433, 0.909475, 0.321268, -0.210564, 0.214285, + 0.947277, 0.950987, -0.993681, 0.902667, -0.30795, -0.342376, -0.891845, 0.521539, 0.29758, + 0.691927, -0.514292, 0.666503, -0.93606, 0.733521, 0.706079, -0.892347, -0.791306, 0.193496, + 0.475224, 0.97821, 0.508325, -0.687683, 0.325902, -0.920907, -0.50653, 0.155326, 0.288034, + -0.881864, -0.237711, -0.81069, -0.885643, -0.006063, -0.056466, 0.216239, 0.644669, -0.968704, + -0.56714, -0.319455, -0.756532, 0.909829, 0.942588, -0.97404, -0.867681, -0.538656, -0.298746, + 0.07701, -0.97765, -0.13409, -0.805834, 0.932757, -0.596085, 0.170035, 0.991849, -0.793364, + 0.043701, 0.895243, 0.011289, -0.737422, -0.457591, -0.861373, -0.514181, -0.65079, 0.461234, + 0.566627, -0.236895, 0.781047, -0.610943, 0.359685, -0.885785, 0.583007, -0.991713, 0.584814, + -0.065609, -0.885481, 0.905588, 0.142656, -0.744663, 0.264595, -0.644795, -0.726766, 0.018953, + -0.150901, -0.688638, 0.721894, 0.241731, -0.495341, 0.512665, 0.598843, 0.811283, -0.121537, + -0.302343, 0.110541, -0.087228, 0.519956, -0.469436, 0.5025, 0.928309, 0.402945, 0.688846, + -0.657466, 0.364238, -0.834278, -0.032816, -0.150267, 0.987677, -0.302463, 0.820745, 0.601815, + -0.008888, 0.683794, 0.98423, -0.550412, -0.911014, 0.230419, 0.518278, 0.136991, 0.918571, + -0.157361, 0.187488, -0.771295, 0.714006, -0.58759, -0.133078, -0.662626, 0.686101, -0.591114, + -0.843667, -0.501022, 0.001858, -0.664513, 0.054515, -0.1586, 0.779261, 0.460414, 0.382674, + -0.521045, 0.563299, 0.629785, -0.054453, 0.005646, -0.149235, -0.018571, -0.733011, 0.49594, + 0.920425, 0.50175, 0.472066, 0.906473, 0.697465, 0.233527, 0.664268, 0.696222, 0.204561, + -0.241424, -0.591875, -0.274664, 0.299083, -0.780137, -0.909419, -0.15358, 0.167999, 0.641114, + 0.809016, -0.810216, 0.014587, -0.726615, 0.094491, -0.816519, -0.901791, 0.046823, 0.665436, + -0.957509, -0.899671, 0.114649, 0.966334, -0.285789, 0.92093, 0.935411, -0.436244, 0.275049, + 0.617959, -0.876578, 0.400791, 0.414182, -0.00268, -0.987719, -0.15586, -0.760203, 2.5e-05, + 0.026473, -0.546215, 0.873065, -0.653869, 0.649463, 0.638103, 0.921527, 0.293122, 0.664438, + -0.347565, 0.358516, 0.906918}; + const std::vector v_data{ + -0.974228, -0.707451, 0.296319, -0.228183, -0.169658, -0.571165, 0.000882, -0.313698, 0.952617, + 0.612369, 0.261761, 0.410257, -0.420981, -0.268992, 0.5921, 0.859229, -0.205509, -0.876735, + -0.025215, 0.594898, 0.046914, -0.964146, 0.125838, -0.541142, 0.410784, 0.824738, 0.608189, + -0.813502, 0.229021, -0.055912, 0.19872, -0.494296, -0.811937, -0.466631, 0.041515, 0.551844, + -0.882427, 0.500546, 0.956309, -0.8319, -0.698162, 0.192444, -0.595401, 0.175485, -0.903371, + -0.075734, 0.908296, 0.751721, 0.170342, 0.442807, 0.901121, -0.809286, 0.740804, 0.34101, + -0.839248, 0.513851, 0.138148, -0.882984, -0.51804, 0.09607, 0.114386, 0.26478, 0.777063, + 0.832091, 0.380042, 0.088354, 0.00376, 0.915017, 0.056715, -0.660908, -0.4846, -0.975187, + -0.693234, 0.972298, -0.778417, -0.223884, -0.942706, 0.564903, -0.411643, 0.998526, 0.677893, + -0.420273, -0.413572, -0.166351, -0.261317, -0.866223, 0.098269, -0.679217, -0.638066, 0.307915, + 0.536931, -0.949031, 0.216436, 0.835776, 0.381173, -0.741858, -0.956399, -0.10383, 0.701917, + -0.074074, -0.94229, 0.978404, -0.743431, 0.312234, -0.595771, 0.203263, -0.208272, -0.116348, + -0.161825, 0.798168, -0.468894, -0.300081, -0.716375, -0.580495, -0.17022, -0.787306, -0.380307, + -0.124869, -0.706328, 0.208011, 0.122633, 0.189184, 0.933041, -0.663934, -0.191777, -0.400852, + -0.769578, -0.254862, 0.256199, 0.222464, -0.091563, 0.715019, 0.691989, 0.774031, 0.718564, + 0.031394, -0.048149, 0.766698, 0.134392, 0.855519, 0.040923, -0.761283, -0.683761, 0.461567, + 0.632291, 0.331207, 0.782527, 0.931615, -0.430492, 0.296651, 0.168128, -0.121806, -0.838079, + -0.772176, 0.439262, -0.432981, -0.388053, -0.548666, -0.422044, 0.441477, -0.710875, 0.446249, + -0.088569, 0.511873, -0.533006, 0.355077, 0.220725, 0.745971, 0.624701, 0.080407, 0.846743, + -0.748972, -0.339077, 0.420642, 0.548774, -0.715029, -0.291574, 0.792207, -0.860316, 0.439952, + 0.991066, -0.371042, -0.111996, 0.253543, 0.459084, -0.14346, -0.887629, -0.043518, 0.118255, + 0.660847, 0.180114, 0.752404, -0.383489, -0.153675, 0.291939, 0.794912, 0.416828, 0.921957, + 0.327775, 0.512223, 0.216866, 0.825768, 0.782205, 0.607449, -0.847379, -0.111003, -0.338769, + -0.150339, 0.712041, -0.660217, -0.521281, -0.405561, 0.07046, -0.555628, 0.199839, -0.847487, + -0.511811, 0.597231, 0.689545, -0.312516, 0.053454, -0.034012, -0.707955, -0.224239, 0.590363, + 0.033597, 0.959168, -0.816914, -0.708826, -0.852542, -0.632969, 0.209812, 0.668954, -0.818672, + -0.763009, -0.370385, 0.593183, 0.528193, -0.101593, 0.912167, 0.363909, 0.939941, 0.002688, + -0.61927, 0.011159, 0.316739, 0.39097, -0.003763, 0.034158, 0.189736, -0.220478, 0.244831, + -0.636494, -0.220051, 0.539158, 0.305666, 0.559575, -0.665997, -0.29433, -0.517712, -0.777909, + -0.410556, -0.063967, -0.073259, -0.061791, -0.631666, -0.067844, 0.265162, 0.718207, 0.604984, + -0.835712, -0.637078, 0.788803, 0.678818, 0.555096, -0.515758, 0.843315, -0.97153, -0.795275, + 0.0895, 0.465084, -0.942564, 0.147203, -0.015049, -0.131633, -0.783256, -0.479388, 0.046942, + 0.239165, 0.627194, -0.354267, 0.946542, 0.37653, -0.679412, -0.995568, 0.672338, 0.075576, + -0.100364, -0.331052, 0.470144, -0.359844, -0.731619, 0.694471, -0.428746, 0.575791, -0.687684, + -0.20103, -0.547975, 0.042564, -0.118265, 0.29834, -0.77565, -0.881992, 0.795298, -0.765679, + 0.337196, -0.868483, 0.19487, -0.021277, -0.491748, -0.020592, 0.122776, 0.027984, 0.756532, + -0.572796, 0.452825, 0.921005, -0.71827, -0.783251, 0.337976, -0.354996, -0.022553, -0.932825, + 0.610831, -0.066023, 0.06148, -0.34761, 0.347143, -0.016399, -0.39854, 0.248409, -0.371302, + 0.371121, -0.957778, -0.386931, -0.685174, 0.42545, -0.702215, 0.774808, 0.243489, 0.612877, + -0.652316, -0.812334, -0.164102, -0.54946, -0.338718, 0.822003, 0.534482, -0.295459, 0.607238, + -0.669816, -0.581089, 0.442942, 0.431729, -0.289139, -0.682412, 0.156301, 0.964683, 0.984208, + 0.8204, -0.749905, 0.662885, 0.183129, -0.811663, 0.064226, -0.965721, 0.214676, -0.549872, + -0.672836, 0.048658, 0.67447, 0.561287, -0.618838, 0.568803, 0.372075, -0.667567, -0.257934, + -0.239637, -0.812782, -0.912482, -0.679064, 0.909084, -0.265703, 0.095991, -0.830392, -0.17201, + 0.377808, -0.020265, -0.078584, -0.01332, 0.672383, -0.704465, -0.898024, -0.9632, 0.406618, + -0.557042, -0.437367, -0.132267, 0.586246, 0.008691, 0.195738, -0.280895, 0.544237, -0.498877, + 0.770826, 0.823137, -0.899554, -0.316638, -0.120501, -0.538475, 0.053694, -0.328218, 0.827878, + -0.079114, -0.558992, -0.496563, -0.934587, -0.614604, 0.194152, 0.302067, -0.430997, 0.010175, + 0.501754, 0.132184, 0.112657, -0.656012, 0.940172, -0.295225, 0.082495, -0.12315, 0.434446, + -0.828297, 0.227576, -0.776205, 0.789313, -0.39417, 0.204141, 0.066177, -0.397471, -0.133461, + 0.951201, -0.505635, -0.259938, 0.659159, 0.587085, 0.276671, -0.875036, -0.161305, -0.985316, + -0.494208, -0.106906, -0.377969, 0.410527, 0.010026, 0.1968, 0.293154, 0.241425, -0.980392, + 0.201904, 0.822821, 0.337536, 0.717858, -0.541455, -0.253842, -0.912374, -0.913279, -0.753878, + 0.511028, -0.588167, 0.335675, 0.692562, 0.357156, -0.419142, 0.638836, 0.366749, 0.22679, + -0.250867, 0.794417, 0.483282, -0.175772, 0.461186, -0.666374, -0.086594, -0.830217, -0.892377, + 0.814543, 0.531568, -0.339397, -0.557194, -0.383733, -0.237654, -0.170124, 0.856286, 0.957209, + 0.522169, -0.559449, -0.352555, 0.124704, -0.595596, 0.894611, -0.592721, 0.9256, -0.00438, + 0.90603, 0.653568, 0.089897, 0.98156, 0.087366, 0.383844, -0.257901, -0.880597, -0.613009, + -0.8049, 0.685019, 0.444715, 0.281728, 0.927176, -0.705946, 0.281309, 0.043143, -0.875277, + -0.965983, 0.97121, 0.849141, 0.181699, -0.641974, 0.139319, 0.713061, -0.217572, 0.013886, + -0.491863, 0.755938, -0.609512, -0.561932, -0.256903, -0.031695, 0.251952, 0.778386, 0.612381, + 0.144269, 0.262237, 0.847681, -0.293648, -0.476063, 0.765849, 0.867532, -0.040959, -0.039225, + 0.75888, -0.186501, 0.987145, -0.732731, 0.245815, 0.75751, -0.962801, -0.264476, 0.85215, + 0.723831, -0.667286, 0.800023, 0.856949, 0.393073, -0.253422, -0.574646, -0.206463, 0.314884, + 0.211719, 0.137598, -0.708783, 0.810704, 0.118037, 0.20663, -0.831651, -0.281747, -0.241497, + 0.690949, 0.794891, -0.62291, -0.681117, -0.592803, -0.28035, -0.767511, 0.924056, -0.665793, + 0.824156, 0.406285, -0.3669, -0.49285, 0.100519, -0.980295, -0.42601, 0.131371, -0.964573, + 0.935665, -0.593983, -0.026562, -0.501952, -0.418636, -0.400091, 0.198768, -0.615065, 0.412385, + 0.38369, 0.553203, -0.929973, -0.591057, 0.601248, 0.798982, 0.374362, -0.865101, 0.245183, + 0.675647, -0.045965, 0.609454, -0.705969, 0.594575, 0.19867, -0.354044, 0.8037, -0.907448, + 0.857723, 0.227036, 0.273844, -0.110178, 0.128319, 0.704203, 0.120025, 0.117003, 0.493922, + -0.456464, -0.222821, 0.39007, 0.888898, -0.183882, 0.026149, 0.420931, -0.642926, -0.800294, + 0.057769, 0.178256, -0.772531, 0.973135, 0.347753, -0.607877, 0.771116, 0.281067, 0.077037, + 0.09177, -0.667859, -0.08049, 0.776916, -0.498221, 0.463471, 0.634916, 0.986772, -0.803379, + 0.273762, 0.328763, -0.338258, 0.589371, 0.387023, 0.850243, -0.714851, 0.270859, -0.723812, + 0.265319, 0.638871, -0.852969, 0.774783, 0.572904, -0.090979, 0.925143, 0.006058, -0.731884, + -0.707746, 0.648065, -0.82153, -0.335773, 0.803259, 0.514143, 0.914053, 0.346455, 0.023297, + 0.464213, -0.452141, 0.597427, -0.488593, -0.315543, -0.278465, -0.546157, -0.019531, -0.21535, + -0.188665, 0.641875, 0.763364, -0.525422, 0.951076, 0.700252, -0.275276, 0.713931, -0.328066, + 0.928574, -0.052725, 0.754741, 0.816023, 0.687497, 0.392274, 0.140979, -0.80078, 0.011384, + 0.62398, 0.95269, 0.357323, -0.615144, -0.019152, -0.416013, -0.007597, -0.640688, -0.09491, + -0.007137, 0.585456, -0.434055, -0.748316, -0.049244, 0.961552, 0.463585, 0.540704, -0.974173, + -0.009904, -0.210756, 0.183684, 0.752024, 0.944217, 0.411811, 0.656376, -0.24099, -0.097289, + -0.927819, -0.697775, -0.814015, 0.589111, 0.481619, -0.807884, 0.797501, -0.944191, 0.100113, + -0.908208, 0.818858, -0.463688, -0.64236, 0.468722, -0.214439, 0.644675, 0.933411, 0.710891, + 0.124532, -0.083649, -0.716428, -0.585575, -0.594979, 0.606336, 0.041573, -0.663644, 0.899628, + -0.315668, 0.981752, 0.951189, 0.17277, -0.819734, 0.32957, 0.021649, -0.491812, -0.598415, + -0.696667, 0.154391, 0.417183, 0.168655, 0.578651, -0.365102, -0.360652, 0.978999, -0.758218, + -0.921406, 0.973129, 0.61973, -0.167266, 0.305757, -0.314692, -0.138539, 0.138633, -0.343541, + 0.070251, -0.375669, -0.827645, 0.466218, -0.73369, -0.977016, 0.197869, 0.731623, 0.347142, + -0.707575, 0.60227, -0.289539, -0.123552, 0.595348, 0.392983, -0.35253, 0.607584, -0.266472, + -0.268953, 0.689685, -0.226187, -0.019995, 0.93553, 0.961883, 0.2355, 0.752106, -0.141065, + -0.460166, 0.935344, 0.524776, 0.683686, -0.484155, 0.523446, 0.818557, 0.095664, 0.666534, + -0.907357, 0.395485, -0.246973, 0.908658, 0.360957, 0.990203, -0.347617, 0.091966, 0.711833, + -0.723197, -0.348788, -0.800193, -0.750775, 0.442925, -0.302016, 0.653944, 0.092322, 0.352172, + 0.106472, -0.937157, -0.150777, -0.549165, -0.396143, 0.804628, -0.773805, -0.730162, -0.320688, + -0.443797, 0.246831, 0.641657, 0.156934, 0.017611, 0.480324, 0.59717, 0.035164, -0.675273, + -0.866508, 0.997924, 0.325243, 0.915514, -0.383813, 0.274951, -0.526598, -0.526457, -0.457593, + 0.999434, 0.729075, -0.615401, -0.70544, 0.329846, -0.235801, 0.047824, 0.127678, -0.875614, + 0.220874, -0.008738, -0.699876, -0.988927, 0.510604, -0.914422, -0.450489, 0.607825, -0.66634, + -0.473586, -0.630103, 0.588654, 0.309384, 0.103211, 0.352104, 0.286095, -0.211282, -0.092163, + -0.625936, -0.469711, 0.015434, -0.12136, 0.251739, 0.474641, 0.767101, 0.958209, -0.076001, + 0.394303, -0.809912, 0.578733, -0.26738, -0.79349, -0.778618, -0.833704, -0.461882, 0.45662, + -0.815636, -0.118029, -0.15541, 0.367843, -0.407661, 0.506614, -0.618424, 0.587577, -0.996438, + -0.681053, 0.350752, 0.153453, 0.700462, 0.520849, -0.833261, 0.786499, -0.259506, -0.188861, + -0.425706, -0.173395, -0.933621, 0.077315, 0.7535, -0.199869, 0.768933, -0.451926, 0.403935, + 0.098866, -0.388114, 0.974874, 0.082197, 0.044527, -0.108025, -0.054178, 0.806154, -0.152195, + 0.60052, 0.362682, 0.652205, -0.757899, -0.876272, -0.328348, -0.279148, 0.952832, 0.985358, + -0.238443, -0.479145, -0.004225, 0.382728, 0.341778, 0.188762, 0.734428, 0.1063, 0.809151, + 0.243595, -0.088896, 0.832553, 0.032513, 0.039904, -0.193261, 0.587355, -0.296525, 0.780143, + 0.53389, -0.016037, -0.16394, 0.391842, -0.976496, -0.330752, -0.353475, -0.122502, -0.478543, + -0.431925, 0.475547, -0.105995, -0.693086, -0.072238, 0.322886, -0.40514, 0.850813, -0.694167, + 0.870704, 0.38492, -0.57478, -0.946702, 0.390084, -0.18646, 0.296295, 0.426994, -0.677964, + 0.117538, -0.213134, -0.900418, 0.176429, 0.213723, -0.764982, 0.940588, 0.524388, 0.568506, + -0.871346, -0.864049, 0.431974, 0.577498, -0.857611, 0.96029, -0.220372, -0.810706, -0.733654, + -0.232006, 0.526271, -0.689688, 0.736787, 0.999325, 0.940049, 0.455184, -0.408504, -0.380154, + 0.71802, -0.208843, 0.153017, 0.999536, -0.994052, -0.228352, -0.395342, -0.161871, 0.041191, + -0.216614, 0.970741, 0.405543, -0.628292, 0.968976, -0.277556, 0.143997, 0.093348, -0.735015, + 0.508765, -0.607535, -0.890911, 0.839405, 0.598785, -0.418578, -0.715773, 0.903051, 0.353602, + -0.663785, -0.830919, -0.413732, -0.555741, 0.07089, 0.095735, -0.978528, 0.501744, 0.509437, + -0.906182, 0.804016, -0.398202, 0.514713, 0.980805, 0.592329, 0.671452, 0.035188, 0.146477, + -0.850652, -0.725498, 0.805484, -0.913913, 0.430671, -0.589204, 0.866922, 0.737803, -0.225983, + -0.127883, -0.693704, 0.932703, -0.602681, 0.356951, 0.700753, -0.962876, -0.983552, -0.701832, + -0.150116, 0.621673, -0.30434, -0.412991, 0.665442, 0.802009, 0.526977, 0.864144, -0.90168, + -0.8918, 0.166148, -0.839018, -0.279148, 0.608713, 0.971678, -0.200975, -0.881936, -0.493436, + 0.97184, -0.185194, -0.930016, -0.529474, -0.623732, -0.261024, -0.724014, -0.338466, 0.916783, + -0.473575, -0.214859, 0.561455, -0.934475, -0.525186, -0.084966, 0.786361, 0.139087, -0.004944, + -0.331822, 0.463106, -0.429826, -0.156465, -0.43098, 0.373768, 0.997429, -0.754498, -0.070459, + -0.070872, -0.5007, -0.712901, -0.426559, -0.781518, 0.759339, -0.708847, 0.61003, 0.826972, + -0.183762, 0.930439, 0.722602, -0.69732, 0.570878, 0.257101, 0.786854, -0.758471, 0.778345, + 0.141899, 0.488839, -0.555156, 0.658502, -0.071912, 0.824627, 0.085363, 0.620755, -0.631919, + -0.886247, 0.347312, 0.529739, 0.276773, 0.314172, 0.658684, -0.514523, 0.535241, 0.479381, + -0.42446, -0.594867, -0.993082, 0.735391, -0.015417, 0.22866, -0.707752, -0.75186, 0.820634, + 0.704557, 0.540813, 0.799671, 0.805288, 0.590693, 0.722322, -0.128463, 0.260454, -0.859495, + -0.358432, -0.093429, -0.048754, 0.986265, 0.815934, 0.314895, 0.932458, -0.50982, 0.194427, + -0.793239, -0.850646, 0.534654, 0.321075, -0.053823, -0.64704, 0.720888, -0.076715, 0.682698, + -0.690907, 0.768504, -0.047233, -0.312496, -0.082551, -0.771271, -0.182845, 0.058593, -0.740375, + 0.540023, 0.944661, 0.51557, -0.491226, -0.621439, -0.792506, -0.61648, 0.596905, 0.460889, + -0.374007, 0.01638, -0.157517, 0.014445, -0.99444, 0.845093, -0.350958, -0.86142, -0.018092, + 0.298907, 0.457982, -0.505098, -0.073026, -0.74906, -0.753857, -0.660204, -0.62809, 0.62797, + -0.902018, -0.207597, -0.414602, 0.657672, -0.06462, -0.550317, 0.812029, -0.758262, -0.378648, + -0.912446, -0.079854, 0.284653, 0.873816, -0.725026, -0.667424, 0.999335, 0.175962, -0.677666, + 0.431194, 0.963232, 0.036801, -0.458562, -0.534623, -0.359708, 0.509774, -0.707702, 0.909589, + -0.618785, 0.280407, 0.994795, -0.442098, -0.668527, -0.518393, -0.419355, -0.614077, -0.985364, + -0.513935, -0.347652, 0.866376, -0.170656, 0.116523, -0.313813, 0.155877, 0.476388, 0.17473, + -0.123079, 0.084211, 0.943624, -0.666056, 0.98104, -0.222107, 0.713044, 0.774484, 0.034785, + 0.022516, 0.693178, -0.138933, 0.275187, 0.956794, -0.197972, -0.352221, 0.775488, 0.898427, + 0.958944, -0.943516, 0.658502, 0.492217, -0.638097, 0.653121, -0.53706, 0.528934, 0.085493, + 0.315252, -0.614791, -0.193347, -0.543632, 0.544045, -0.794384, 0.07002, 0.386328, -0.023268, + -0.300871, 0.228109, 0.078993, -0.551291, -0.271537, -0.21872, -0.563589, 0.024751, -0.310654, + -0.56533, -0.810194, -0.652072, -0.217708, 0.799826, -0.117657, -0.536933, -0.762627, 0.170512, + 0.85031, -0.901161, 0.771121, 0.893245, 0.226244, 0.498892, 0.296945, -0.874252, -0.398876, + -0.234106, -0.596328, -0.031437, 0.210979, 0.034199, 0.545522, -0.589314, 0.841166, -0.406691, + 0.801827, 0.907069, -0.816965, -0.958305, 0.742092, 0.761267, -0.10706, 0.20737, 0.147422, + -0.305334, 0.526178, 0.337414, -0.964693, -0.27586, -0.593922, 0.429265, -0.998458, -0.859402, + -0.881482, -0.343479, -0.77119, -0.199332, -0.569063, 0.642885, 0.877389, 0.386846, -0.388005, + 0.408003, -0.858663, -0.500167, -0.209635, -0.934971, 0.937732, 0.655284, 0.463259, 0.469991, + 0.984081, -0.380226, 0.239877, -0.33627, -0.169757, -0.819803, 0.597929, -0.720321, -0.446917, + 0.891465, -0.586881, 0.128542, -0.917776, -0.580722, 0.907271, 0.537812, 0.042372, -0.498566, + 0.762654, 0.941266, 0.200398, -0.644654, 0.03445, 0.48717, 0.292028, 0.899864, 0.900551, + 0.506522, -0.695505, -0.054057, 0.193648, -0.333552, 0.299118, 0.652705, -0.540282, -0.304843, + -0.760663, 0.155333, 0.598588, 0.904465, 0.052433, 0.65119, -0.965757, -0.021734, -0.188662, + -0.460506, 0.925742, 0.624435, -0.833351, -0.908113, -0.46847, 0.339453, 0.47443, 0.517665, + 0.773036, -0.640038, 0.0843, -0.445642, -0.485108, 0.009673, -0.088012, -0.810211, -0.014544, + 0.48086, 0.89684, -0.270248, 0.676235, -0.22367, -0.735601, 0.864946, -0.236359, -0.23235, + -0.169186, 0.901319, -0.42707, -0.265549, 0.05825, -0.654728, 0.389974, 0.841925, 0.361556, + -0.240478, -0.191336, -0.980084, -0.788305, -0.274139, 0.554346, 0.930145, -0.070077, -0.095946, + 0.684195, -0.209716, -0.682202, 0.566274, -0.432369, -0.712163, 0.008609, -0.66532, -0.77991, + -0.551224, -0.086765, 0.33284, -0.414337, -0.956364, -0.340368, 0.930143, -0.230932, -0.730065, + -0.374295, 0.900603, 0.15949, -0.140185, 0.978313, 0.103122, 0.152127, 0.985557, -0.102656, + -0.17615, 0.800137, 0.317007, -0.701521, 0.640092, -0.419169, -0.852339, 0.883842, -0.738699, + -0.425772, -0.159408, -0.005896, -0.1144, 0.74404, 0.748214, -0.889742, -0.927789, -0.978621, + 0.832208, -0.121286, -0.494989, -0.659727, 0.130698, 0.286109, 0.57378, 0.807139, 0.889111, + -0.66667, -0.052856, -0.635808, -0.360814, 0.028768, 0.560756, -0.448909, -0.563784, -0.264932, + 0.41339, 0.027803, 0.749351, -0.900117, 0.36346, 0.757361, 0.62991, -0.870194, -0.667462, + 0.014791, 0.00474, 0.595717, 0.815598, -0.065881, -0.293827, 0.545202, -0.648313, -0.456205, + 0.123048, -0.168287, 0.604467, -0.19828, 0.106229, 0.284049, -0.085499, -0.321537, 0.622645, + 0.557284, -0.152668, -0.64026, -0.327882, 0.691769, 0.585241, -0.326108, 0.546687, -0.117823, + -0.058585, -0.470338, 0.029237, -0.208982, 0.252565, -0.951091, -0.059752, -0.781941, -0.929179, + -0.991474, -0.160728, 0.186852, 0.104428, 0.23541, -0.42951, -0.662309, -0.216361, -0.750591, + -0.124712, 0.209907, 0.139523, -0.908331, 0.949635, 0.861418, -0.447941, -0.851761, 0.146014, + 0.225616, -0.267366, -0.459392, 0.075447, -0.608602, -0.524015, 0.319904, 0.113084, 0.403496, + 0.8457, -0.009735, 0.34033, 0.713904, -0.625998, 0.666149, 0.685416, -0.381903, 0.78161, + -0.458467, -0.477208, 0.716995, 0.463889, -0.072051, -0.789929, 0.570406, 0.245528, -0.596978, + -0.037183, 0.722461, 0.422256, -0.459799, -0.010702, -0.353449, 0.660055, 0.469316, -0.14808, + -0.11721, -0.728373, -0.221309, 0.490242, -0.959078, 0.12763, 0.951461, 0.430427, 0.496737, + -0.270651, -0.084339, -0.853895, -0.483946, 0.251259, 0.341363, 0.589621, -0.563376, 0.287178, + -0.552232, -0.737371, -0.38348, -0.680099, 0.189629, 0.157474, 0.641782, 0.522215, 0.194947, + 0.385858, 0.306392, -0.945617, -0.462095, -0.816418, -0.579816, 0.200375, 0.942996, 0.69238, + -0.407149, 0.23239, 0.688221, 0.208364, -0.817805, 0.122609, 0.407261, 0.163718, 0.913396, + 0.834524, -0.558766, 0.760292, -0.894972, -0.567711, 0.405463, 0.030344, 0.86359, 0.59498, + -0.213032, 0.956286, -0.717664, 0.186364, 0.31915, 0.781711, 0.978404, 0.487638, -0.445651, + 0.804078, 0.68845, -0.01971, 0.71789, 0.159308, -0.086958, 0.30895, 0.002795, -0.281813, + 0.145168, -0.006663, -0.687044, -0.732771, 0.328594, -0.389407, 0.024457, 0.883102, 0.737738, + 0.555575, 0.532503, 0.677126, -0.670619, 0.930539, -0.737372, -0.648009, -0.40964, 0.977363, + 0.559777, 0.280277, 0.579768, -0.955067, -0.953784, 0.31156, -0.273431, 0.478554, -0.709723, + 0.946799, -0.872369, 0.509658, 0.526831, -0.536273, 0.883672, 0.521073, -0.45656, -0.452403, + 0.76529, -0.246315, 0.065751, 0.458368, 0.466583, -0.500735, 0.752773, 0.303263, 0.321965, + -0.464662, 0.450801, -0.12416, 0.709137, 0.512756, 0.723386, -0.13578, 0.649931, 0.769305, + 0.221886, -0.063075, -0.653474, -0.516134, 0.576002, -0.612983, -0.491775, 0.510035, -0.508221, + -0.773496, 0.222239, 0.431589, -0.906479, 0.127847, -0.771167, 0.421905, 0.547054, 0.336493, + 0.976549, -0.194084, -0.39779, 0.270556, 0.300144, -0.446887, -0.658252, -0.304466, 0.414797, + 0.422567, -0.44284, 0.845789, -0.743237, -0.116058, 0.244214, -0.720306, 0.910136, -0.491497, + 0.592168, 0.040275, -0.561427, 0.934783, -0.111289, 0.177998, 0.940575, -0.94171, 0.804613, + -0.493486, -0.811638, 0.556198, -0.305971, -0.798123, -0.490274, 0.646412, 0.438205, -0.0491, + 0.513553, 0.19864, -0.74874, 0.192075, 0.712062, -0.093712, -0.114271, 0.981981, -0.285905, + 0.932141, 0.875571, 0.808471, 0.265664, 0.274493, 0.257276, -0.91662, -0.395681, -0.559961, + -0.147226, -0.500168, -0.322052, -0.680871, -0.727155, 0.323234, 0.976129, -0.40557, -0.660831, + -0.336226, -0.377637, -0.973874, 0.878299, 0.679231, 0.741537, -0.516786, -0.661225, 0.958542, + -0.604973, -0.840197, -0.832982, 0.304374, -0.133453, -0.610124, 0.851519, -0.554376, 0.065132, + 0.498356, 0.478527, 0.837032, -0.123891, 0.515479, -0.079358, 0.132107, -0.587287, 0.618929, + 0.227568, 0.200453, -0.076632, 0.404696, -0.965886, 0.817188, 0.784505, 0.535782, -0.036471, + -0.933108, -0.2709, -0.803393, -0.479111, 0.786461, -0.115377, 0.996263, -0.504094, -0.465742, + -0.801467, 0.380872, 0.370128, 0.504974, 0.864901, 0.601236, -0.917088, 0.028698, 0.87233, + 0.697877, 0.387017, -0.469552, -0.843752, 0.963879, -0.3275, 0.341832, -0.270289, -0.337684, + 0.356079, 0.925117, -0.237519, 0.433183, 0.402606, -0.159743, 0.19898, 0.332258, 0.892783, + -0.37749, 0.76917, -0.064566, 0.394436, -0.810772, 0.672091, 0.842803, 0.232926, 0.030693, + 0.26097, -0.789811, -0.862004, 0.744829, -0.897979, -0.223986, -0.612465, -0.933468, -0.424383, + -0.008071, -0.802458, -0.766579, -0.806528, -0.036134, -0.266329, 0.734895, -0.957281, -0.873473, + -0.304817, 0.999959, 0.910831, -0.129301, -0.272573, 0.138247, 0.042017, 0.094, -0.432195, + -0.048642, 0.192386, 0.597566, -0.630839, -0.20343, 0.502112, 0.658241, 0.541695, -0.242538, + 0.228034, -0.342291, 0.849308, 0.568063, -0.902403, 0.485736, 0.981668, 0.267413, -0.793195, + 0.643246, 0.053538, -0.268308, 0.436433, 0.776407, 0.453801, -0.788466, 0.417349, -0.617079, + -0.934034, -0.495981, 0.526037, 0.768802, 0.295222, 0.614655, -0.95416, -0.486944, -0.570573, + -0.849597, -0.624446, -0.714016, -0.835651, 0.14591, -0.466105, 0.041295, -0.160114, 0.068712, + -0.90831, -0.820191, -0.904156, 0.695932, 0.033122, -0.851141, -0.384877, -0.010307, -0.661811, + 0.809049, 0.717614, 0.240351, -0.172202, 0.581631, 0.261835, 0.085124, 0.123319, -0.870391, + 0.283152, 0.365112, 0.616955, 0.474235, 0.851131, -0.531591, 0.082044, -0.736431, 0.858514, + -0.046681, -0.864174, 0.648233, 0.11793, -0.288243, 0.894635, -0.526683, -0.496143, -0.343296, + 0.114545, -0.777093, 0.216244, -0.967622, -0.538996, -0.584947, -0.726597, 0.229108, 0.439318, + -0.244514, -0.300418, 0.021183, -0.810542, -0.949158, -0.647709, -0.724956, 0.141035, 0.807109, + 0.713536, -0.615622, 0.556376, 0.877062, -0.211563, -0.326077, -0.94472, -0.072056, -0.387417, + 0.252344, -0.918131, -0.095763, 0.175879, -0.248765, -0.153696, 0.949187, 0.435016, -0.744184, + -0.45276, 0.461326, 0.435655, -0.842284, -0.683522, -0.41355, -0.121756, 0.059784, 0.246514, + -0.466255, -0.558378, 0.560037, -0.780173, -0.176383, -0.896902, -0.760769, 0.373673, -0.048966, + 0.839116, 0.990785, -0.828978, -0.534093, 0.227369, -0.125859, -0.91592, -0.595395, -0.536341, + 0.103973, 0.424867, 0.61348, 0.845649, -0.528185, 0.756891, -0.573387, -0.859071, -0.43075, + 0.458607, 0.165764, -0.86959, 0.269112, -0.038728, 0.726461, -0.565084, -0.829407, -0.06309, + -0.400882, -0.170052, -0.267763, 0.975336, -0.131064, -0.967496, -0.588322, -0.03161, 0.564141, + 0.24189, -0.986644, 0.145947, 0.713942, -0.320717, 0.465137, 0.831172, 0.84049, 0.165761, + -0.959406, -0.854954, 0.74042, -0.322003, 0.856975, 0.642231, -0.896867, 0.451643, -0.830945, + -0.724948, 0.703936, 0.900439, 0.484039, 0.464436, 0.116769, 0.646677, -0.937678, 0.490586, + 0.118151, -0.30041, -0.583105, 0.374813, -0.21796, 0.108588, -0.206964, -0.029378, -0.357604, + -0.9506, 0.239196, -0.144653, -0.298486, 0.652239, -0.469624, -0.135589, -0.913016, -0.373209, + 0.711453, 0.053499, 0.552602, 0.836845, 0.257672, 0.734523, 0.239264, 0.594984, -0.863217, + 0.74018, 0.333967, 0.154361, -0.980833, 0.56455, 0.539231, -0.752591, 0.859572, 0.927076, + -0.094188, -0.317875, -0.060266, -0.843296, -0.891499, -0.13865, -0.344207, 0.886904, 0.587557, + -0.278057, -0.985492, 0.308684, -0.084446, -0.530121, 0.888205, 0.625735, -0.383104, 0.851149, + -0.873085, -0.829168, 0.466261, 0.607813, -0.208801, -0.190667, -0.970326, 0.333889, -0.028967, + -0.750743, -0.768649, 0.564911, -0.837481, 0.217358, 0.912176, -0.293657, 0.565015, 0.442315, + -0.225331, -0.616331, -0.598024, -0.977293, 0.144791, 0.230702, -0.259303, 0.535771, -0.069474, + 0.306055, 0.972143, 0.935937, 0.799387, -0.413993, 0.021381, -0.301566, 0.288217, 0.587789, + 0.16605, -0.32159, 0.16892, -0.739774, -0.874635, -0.172503, -0.092113, -0.209472, 0.451313, + 0.31497, 0.239983, 0.248219, -0.056645, 0.186343, -0.684362, -0.637931, 0.117414, 0.626735, + 0.042371, 0.909144, 0.807746, -0.998195, -0.460654, 0.347757, -0.04795, 0.335606, -0.549067, + 0.534523, -0.575416, 0.068507, -0.798161, -0.287927, 0.638534, 0.51702, -0.721396, 0.572837, + -0.14697, -0.768169, 0.906532, 0.339754, 0.105392, 0.31767, 0.442761, -0.901741, 0.570983, + 0.730203, 0.123091, -0.284228, 0.140857, 0.068388, 0.169165, -0.621196, 0.631789, 0.061235, + 0.058521, -0.369709, 0.867, -0.716782, -0.338315, -0.674477, 0.750229, -0.401172, 0.016771, + -0.069152, 0.753969, -0.846721, -0.514799, -0.972138, -0.217027, -0.861935, -0.020917, 0.38498, + 0.098271, 0.09664, -0.208333, -0.71765, -0.153665, 0.813921, 0.188386, 0.179454, -0.299327, + 0.671808, 0.6648, 0.21428, 0.707167, 0.077015, 0.019228, 0.274345, -0.961705, 0.638418, + -0.520907, -0.435353, -0.059943, -0.751862, -0.643708, 0.809177, -0.163486, 0.366827, 0.19969, + 0.980163, -0.468684, -0.511969, 0.957582, -0.666189, -0.984398, -0.175681, 0.56543, 0.446414, + -0.670731, -0.774395, 0.321147, -0.655043, 0.554432, -0.226502, -0.404868, -0.179709, 0.814047, + -0.601427, -0.767898, 0.404965, 0.421365, -0.191987, 0.602119, -0.241126, -0.419274, -0.76047, + -0.500094, -0.555872, 0.265941, -0.183476, 0.721635, -0.484824, 0.582289, 0.811231, -0.227984, + -0.558858, 0.497898, -0.951893, 0.661857, 0.767557, -0.058348, -0.619807, 0.127189, 0.723678, + 0.133877, 0.187058, 0.435865, 0.565578, 0.218187, -0.545013, 0.02793, -0.426476, 0.503197, + -0.514225, 0.874073, 0.420833, -0.998951, -0.418878, -0.150326, -0.324221, -0.03342, -0.535051, + 0.702943, 0.45565, -0.094745, -0.436378, -0.764304, -0.576336, -0.552053, 0.9397, -0.001062, + -0.570487, -0.077157, -0.0392, 0.24312, 0.325637, 0.627166, -0.498062, -0.216116, -0.858225, + -0.359575, -0.879206, -0.086686, -0.604483, -0.342343, 0.935703, 0.905351, 0.130144, 0.508855, + 0.646115, 0.043979, 0.199164, -0.06723, -0.797632, 0.796552, -0.740914, -0.29904, -0.832382, + -0.59244, 0.99556, -0.092273, 0.313079, 0.241955, 0.781229, 0.209315, 0.035347, -0.458927, + 0.183442, 0.217192, -0.688719, -0.723249, -0.432383, 0.860319, 0.397288, 0.559826, 0.66648, + -0.009975, -0.667722, 0.958162, 0.164733, -0.359722, 0.402456, -0.70215, 0.035247, 0.928599, + 0.329668, -0.937301, 0.871943, 0.213351, -0.267258, 0.786598, 0.44415, 0.584215, 0.489152, + -0.560077, -0.722522, 0.718166, -0.061782, 0.81208, 0.496861, -0.964005, 0.546545, 0.498687, + -0.962747, 0.059087, -0.79898, 0.489707, 0.532288, 0.304395, 0.625942, -0.554867, -0.034884, + -0.270941, 0.764309, 0.713828, -0.352807, -0.848575, -0.034861, 0.781619, -0.21578, 0.368047, + -0.726908, -0.664865, -0.858255, -0.860158, -0.406478, -0.426472, 0.386171, 0.824161, 0.122863, + 0.403086, -0.639042, -0.433172, -0.934227, 0.936382, 0.10673, -0.274015, -0.913715, 0.187409, + -0.981304, 0.672154, -0.93805, 0.214058, 0.62051, -0.807963, 0.734446, 0.960038, 0.698784, + 0.908041, -0.467898, -0.175435, 0.897277, 0.473724, -0.67877, 0.984951, -0.169022, -0.325294, + 0.137891, 0.962188, -0.503915, 0.087817, -0.117604, -0.299546, 0.461195, 0.060175, -0.820418, + -0.02469, 0.631773, -0.474162, 0.888445, -0.82387, 0.338664, 0.620108, 0.350655, 0.394985, + 0.147066, -0.210655, 0.716651, -0.221691, 0.840312, 0.956606, -0.86581, 0.813169, 0.248838, + -0.682056, -0.555878, -0.137945, 0.934701, 0.610551, -0.265945, -0.596997, -0.647196, -0.505267, + -0.022681, -0.868138, -0.892533, -0.627966, 0.275582, 0.354982, 0.294895, 0.831512, 0.242067, + -0.388322, 0.396969, -0.466605, 0.889456, -0.38383, -0.624561, -0.191797, -0.557695, -0.100431, + -0.167125, 0.117172, -0.132336, -0.696695, -0.936821, -0.722962, -0.930526, -0.997213, 0.970447, + 0.585543, 0.453407, 0.643899, 0.303946, -0.330343, -0.124194, -0.411039, 0.45107, 0.257371, + -0.839944, 0.155402, -0.76984, 0.751942, 0.108641, -0.015433, -0.591254, 0.15406, 0.127241, + 0.256728, -0.700354, -0.422298, -0.69683, -0.62512, -0.548037, -0.806581, 0.982482, -0.946348, + -0.261847, 0.042396, -0.402702, -0.277379, 0.468037, -0.229785, -0.11818, 0.88241, -0.358992, + -0.044244, 0.636179, -0.234501, -0.797684, 0.770051, -0.861819, -0.985608, -0.513496, 0.132652, + 0.810242, -0.780659, -0.497761, 0.903333, 0.780697, 0.378711, -0.846602, 0.549567, -0.063551, + -0.76861, 0.783382, -0.68395, 0.162972, -0.544851, 0.847773, 0.031133, -0.2421, 0.562507, + 0.91, -0.077858, 0.678435, -0.359172, -0.540154, -0.540862, -0.959948, 0.884613, 0.247643, + -0.705912, -0.867075, 0.627444, 0.047656, -0.683504, -0.09979, -0.363555, 0.130287, -0.413389, + -0.467883, -0.586092, -0.412866, 0.016046, 0.486601, 0.213022, 0.637774, -0.312392, -0.344924, + -0.601012, -0.862083, -0.61356, -0.208142, 0.941682, -0.974653, 0.748141, 0.513338, 0.497765, + 0.53124, 0.53713, 0.864778, 0.370354, -0.208032, 0.380496, -0.074529, -0.48415, 0.366268, + 0.999798, 0.750125, -0.431148, -0.088592, 0.382951, 0.554785, -0.870645, 0.136091, -0.118074, + 0.95954, 0.284235, -0.448833, -0.31865, 0.815752, -0.295889, 0.185881, 0.874743, -0.883808, + -0.081928, -0.901685, -0.303765, 0.366827, 0.00056, 0.4958, -0.680568, 0.445543, -0.43493, + 0.648311, -0.259682, 0.818352, 0.080379, 0.342111, -0.757078, 0.146405, 0.737851, -0.763206, + 0.73983, 0.37274, -0.425642, -0.65227, 0.614233, -0.304322, 0.486909, 0.122123, 0.933872, + -0.688452, -0.139958, 0.437793, -0.491374, -0.274729, -0.219015, 0.980879, 0.43943, -0.927411, + 0.27929, 0.845005, 0.503836, 0.908357, -0.19798, 0.099329, 0.977203, 0.921795, -0.293778, + 0.210649, 0.040629, 0.882489, -0.439137, -0.123545, 0.366011, -0.155369, -0.470619, 0.851476, + -0.370995, 0.614377, -0.225173, -0.986283, -0.69129, 0.256362, 0.716187, -0.140572, 0.651287, + 0.183684, 0.425234, 0.990191, 0.682205, 0.774673, -0.63542, -0.737638, 0.792822, 0.922288, + 0.508136, 0.396771, -0.231371, 0.350276, -0.481694, -0.042284, 0.935752, -0.629998, -0.840424, + -0.077896, 0.521594, -0.930036, 0.636528, 0.044575, 0.119643, 0.61921, 0.505603, -0.056721, + -0.951404, 0.864888, -0.323756, -0.555463, 0.33445, 0.672113, 0.142395, -0.569013, -0.908155, + 0.435346, 0.350044, 0.594399, 0.996407, -0.544724, 0.310621, 0.992042, -0.031221, -0.371286, + -0.780629, 0.016023, -0.505054, -0.680796, -0.950813, 0.412672, -0.144249, 0.43114, 0.535375, + -0.993795, -0.362542, 0.891149, -0.172315, 0.673698, -0.864547, 0.914008, 0.422315, -0.702235, + 0.234833, 0.637237, 0.538784, 0.194149, -0.388506, -0.31303, -0.72584, 0.982929, 0.190788, + 0.216694, -0.577612, -0.780852, -0.117537, 0.516279, 0.754325, -0.098042, 0.420012, -0.17608, + -0.296888, 0.999353, 0.243532, 0.981697, -0.980941, 0.079307, -0.34242, 0.774465, 0.501257, + 0.166825, 0.622701, -0.593457, -0.262196, 0.507528, -0.581403, 0.240439, 0.325346, -0.831385, + -0.587735, -0.740109, -0.914625, -0.354816, 0.314338, 0.371362, 0.566741, 0.125348, -0.640068, + -0.942878, 0.871382, 0.177798, 0.76723, -0.937854, -0.543838, -0.02637, 0.827465, -0.820137, + -0.531878, -0.75864, 0.508682, 0.07724, -0.379784, 0.666867, -0.743425, -0.098765, -0.457247, + -0.223369, 0.01032, -0.022611, 0.990643, -0.882682, -0.418803, -0.076174, -0.418479, 0.928909, + 0.514608, 0.756414, 0.734406, -0.053441, 0.658911, -0.084336, 0.718358, 0.145649, 0.398217, + 0.412041, -0.379591, 0.854913, 0.814974, -0.241675, -0.296016, -0.887297, 0.526084, -0.766498, + -0.923817, 0.822881, 0.221613, 0.870895, -0.836535, -0.563316, -0.266838, 0.618207, -0.75918, + -0.861637, -0.294479, -0.518801, 0.968979, 0.510135, -0.674985, -0.431023, -0.036807, -0.625822, + -0.755588, 0.89612, -0.665039, 0.577565, -0.287877, -0.759657, -0.453089, -0.458201, -0.679183, + -0.612563, -0.04542, -0.52655, 0.813255, -0.955375, -0.162915, 0.658307, -0.66002, -0.228436, + -0.815405, -0.96473, 0.473759, 0.255448, 0.097328, 0.790786, -0.022875, -0.83441, -0.972953, + 0.145009, -0.592551, 0.931244, -0.125112, 0.860168, -0.161371, -0.462799, -0.990635, 0.953605, + -0.864298, 0.707093, -0.388272, -0.738114, -0.343796, 0.484147, 0.763141, -0.836396, -0.74565, + 0.339515, 0.477347, -0.642191, 0.416237, -0.140055, -0.872562, 0.560128, -0.837605, -0.056624, + -0.216193, -0.459621, -0.161696, -0.892579, 0.885206, -0.747961, 0.617264, 0.03459, -0.044618, + -0.072802, -0.426714, -0.181206, 0.71965, -0.474965, 0.456148, -0.806797, -0.494452, 0.691519, + 0.365883, -0.908141, -0.700381, 0.647205, -0.068556, 0.929062, -0.986286, 0.265249, -0.988979, + 0.416192, -0.338671, -0.106082, -0.123471, 0.128575, -0.672994, -0.554832, 0.435811, -0.5785, + 0.279859, -0.118113, 0.631553, -0.251651, 0.704876, -0.026588, -0.555599, 0.188806, -0.614648, + 0.241078, -0.48002, 0.120725, -0.188398, -0.258921, -0.862944, -0.335692, 0.834908, 0.563873, + -0.418166, 0.117275, 0.250218, 0.614306, 0.682416, -0.548919, -0.237427, 0.820811, 0.102313, + -0.553754, -0.502543, -0.495521, -0.942637, -0.671086, 0.992994, -0.120433, 0.667008, -0.925199, + 0.471544, 0.385357, -0.935624, -0.242108, 0.261752, -0.785739, 0.384489, 0.582136, -0.909911, + -0.384969, 0.70142, -0.089045, -0.584813, 0.249927, -0.828809, 0.333921, -0.578291, 0.3633, + -0.53138, -0.298874, -0.46422, 0.52277, -0.91702, 0.605409, 0.519404, -0.704182, 0.675259, + 0.74192, -0.629929, 0.091342, 0.250301, -0.137682, 0.727493, -0.253918, -0.342966, 0.282291, + 0.537245, 0.789928, -0.995702, -0.248103, -0.442434, -0.365781, -0.272496, -0.562945, -0.590396, + -0.540727, -0.678075, 0.396694, 0.548219, -0.455453, 0.943634, 0.367036, -0.758856, 0.475356, + 0.088983, 0.850206, -0.087265, -0.403234, 0.77765, -0.91923, 0.428666, -0.85543, -0.239342, + -0.100404, -0.940733, -0.555048, -0.400159, -0.137015, 0.204842, -0.694778, 0.816696, 0.151857, + 0.123465, 0.22471, -0.631244, -0.015557, -0.883349, 0.96901, -0.374759, -0.92779, 0.088286, + -0.732145, -0.857226, -0.703624, -0.147972, 0.352518, -0.999592, -0.149112, -0.228694, -0.435504, + 0.41403, 0.700111, 0.120803, -0.382929, 0.31482, -0.446994, -0.062008, 0.56377, -0.19538, + 0.963501, 0.989995, 0.286933, -0.095759, -0.23935, 0.408535, 0.150892, -0.844027, -0.852736, + 0.006979, 0.251129, 0.623102, 0.710438, 0.317782, 0.740412, 0.736917, -0.733827, 0.949759, + -0.480705, -0.632874, 0.130898, -0.674594, 0.074715, 0.035192, 0.305292, -0.570743, 0.508411, + 0.743107, 0.092945, 0.468647, -0.571271, 0.425662, -0.584599, -0.355155, -0.188691, -0.006214, + 0.904136, 0.147472, 0.98967, 0.235873, -0.312218, -0.330641, -0.097745, -0.656187, 0.387971, + 0.894239, 0.574776, 0.611526, 0.971104, 0.129185, -0.060841, -0.338088, -0.837097, -0.662244, + -0.054103, -0.705179, -0.689588, 0.165122, -0.574679, -0.830941, -0.694603, 0.382975, 0.13733, + -0.950509, -0.806895, 0.399478, 0.936621, 0.346392, 0.503307, -0.046407, 0.422884, 0.506813, + -0.536987, 0.507273, -0.270767, 0.355617, -0.942247, -0.541922, -0.587042, -0.405082, 0.916517, + -0.491424, 0.264074, -0.092085, 0.157887, -0.44678, -0.578589, -0.813036, 0.081335, -0.918444, + -0.927563, 0.894964, 0.41917, -0.164151, -0.465378, 0.884788, -0.043247, -0.833389, 0.713893, + 0.930645, 0.182304, 0.71913, -0.801628, 0.027695, 0.980355, -0.983569, -0.946971, 0.0887, + 0.266913, 0.251216, -0.285836, 0.835032, 0.723771, -0.987733, -0.950424, 0.84817, -0.406901, + 0.191671, 0.353206, 0.230053, -0.515751, -0.681503, -0.773431, 0.413229, -0.127412, -0.582014, + -0.807733, 0.540083, 0.135919, -0.958226, -0.054614, -0.272476, -0.027887, 0.247467, 0.348369, + -0.940045, 0.145697, 0.516898, -0.233542, 0.768913, 0.979575, 0.277936, 0.959674, 0.425141, + -0.668122, 0.625113, -0.426295, -0.717664, -0.9015, 0.088099, 0.899905, -0.344386, 0.160136, + 0.324908, 0.61835, 0.844573, 0.530403, -0.356024, -0.028269, -0.958636, -0.775261, -0.542616, + 0.596014, 0.172596, -0.003161, 0.659679, -0.091801, 0.762167, 0.940373, -0.811992, 0.794194, + 0.633039, -0.113513, 0.300516, -0.671973, -0.3161, -0.569098, -0.695523, -0.167006, -0.996699, + -0.187143, 0.637342, -0.616948, -0.327246, 0.040617, -0.434345, 0.091896, -0.921869, 0.270033, + 0.935687, 0.061234, 0.974425, -0.880901, -0.519554, -0.303748, 0.854854, -0.916007, -0.181764, + -0.895568, 0.192345, -0.86849, -0.821281, -0.622378, -0.384078, 0.634977, 0.161736, -0.901464, + 0.945578, -0.020295, 0.292065, -0.516377, -0.471486, -0.74894, -0.786305, -0.510957, 0.551905, + -0.380573, -0.848603, 0.293045, -0.262707, -0.716684, 0.809797, -0.933166, -0.972524, 0.57796, + 0.555685, -0.382726, 0.706838, -0.657745, -0.470265, -0.143951, -0.334729, 0.646568, -0.929434, + 0.809681, 0.57277, -0.55134, -0.527044, 0.155559, -0.076035, -0.886736, 0.818102, 0.786847, + 0.800208, 0.474833, -0.69614, -0.52619, -0.4222, 0.277381, 0.539054, -0.047239, -0.983904, + -0.633844, -0.478152, -0.673141, 0.514835, 0.044622, -0.713688, -0.606658, -0.730591, -0.692779, + 0.375002, -0.525319, -0.856281, 0.07222, -0.059962, -0.829124, 0.269425, 0.085364, 0.130608, + 0.439266, -0.504776, -0.873837, 0.646399, 0.907014, 0.92876, 0.533694, 0.919184, 0.282264, + -0.872491, 0.29745, -0.764691, -0.942019, 0.386939, -0.52963, -0.722423, 0.944382, 0.318689, + 0.427299, -0.298465, 0.373952, -0.01574, -0.23356, -0.190802, 0.742133, -0.683752, -0.308306, + 0.730215, -0.04659, 0.490941, -0.423849, 0.670935, -0.710847, -0.53621, -0.879648, -0.798731, + 0.629652, 0.646589, 0.536011, 0.494984, 0.678306, 0.608255, 0.588491, -0.490934, 0.749313, + 0.664042, 0.309816, -0.18014, 0.874212, -0.066455, -0.93211, -0.375714, -0.025545, 0.475363, + 0.268983, 0.172995, 0.850875, 0.653782, -0.568023, -0.362651, -0.095312, -0.056989, -0.762449, + -0.267934, 0.75746, -0.969491, 0.144073, 0.202522, -0.319426, -0.340161, -0.501217, -0.908811, + -0.901768, 0.531687, -0.029995, -0.043514, -0.164003, -0.945834, -0.163152, -0.922193, 0.492741, + -0.35096, -0.339828, 0.352211, -0.685445, -0.650741, -0.554934, -0.225524, -0.631832, -0.996263, + 0.447179, 0.543702, -0.412681, -0.768982, 0.676908, -0.607236, -0.775389, -0.901914, 0.247677, + 0.226754, 0.951879, -0.393135, -0.62476, 0.976989, 0.68737, -0.885105, -0.936633, 0.372278, + -0.498123, 0.17428, -0.065643, -0.31109, 0.853645, 0.327912, 0.300943, -0.750575, -0.351029, + 0.467428, 0.549675, 0.106341, -0.979436, -0.537932, 0.985391, 0.812006, 0.526586, -0.583843, + -0.539499, 0.361735, -0.837237, -0.116766, 0.383024, 0.394189, 0.491881, 0.059816, 0.671118, + -0.97787, -0.51601, -0.308289, 0.584689, -0.780645, 0.737455, -0.579277, -0.302088, 0.739991, + 0.978908, 0.299926, -0.213654, 0.707451, -0.04841, 0.602635, 0.405011, -0.021805, 0.943677, + 0.482091, 0.939101, 0.944384, 0.193318, -0.467899, -0.336213, -0.159109, -0.326349, 0.104338, + 0.97215, 0.658693, 0.273829, 0.519795, -0.564593, 0.402012, 0.875963, 0.323426, 0.01539, + 0.807547, -0.822319, 0.564526, -0.193611, -0.921772, 0.560644, -0.199978, -0.22465, -0.457144, + -0.330195, -0.153717, -0.981924, 0.486313, 0.129114, 0.371363, 0.995048, -0.223151, -0.600149, + -0.649352, -0.137814, -0.194666, 0.356075, 0.0711, 0.33319, -0.509591, -0.861009, 0.03729, + 0.211519, -0.478343, -0.356867, -0.176349, -0.894173, 0.93336, 0.720458, -0.730096, -0.952916, + 0.870708, 0.83027, -0.898047, 0.21198, -0.635235, -0.736084, -0.695636, 0.031348, 0.92353, + 0.46616, -0.923467, 0.539191, 0.907623, 0.70571, 0.923887, -0.581463, -0.508907, 0.555673, + -0.787729, -0.282803, 0.717818, 0.307199, -0.267539, 0.399973, -0.46756, -0.506743, 0.300046, + -0.48263, 0.69587, 0.445827, 0.607294, 0.717915, 0.126156, -0.369209, -0.840043, -0.289647, + -0.841105, 0.607818, 0.077845, -0.424782, -0.031105, 0.721604, -0.438085, 0.192794, 0.120249, + -0.135442, -0.23247, 0.374612, -0.32278, -0.821226, 0.225713, -0.581657, -0.512581, 0.028133, + 0.481096, -0.290171, -0.600613, 0.462082, -0.61779, 0.215882, 0.284557, -0.023701, -0.257029, + -0.134588, -0.565785, 0.657666, -0.08934, -0.418039, -0.547933, 0.441932, -0.617117, 0.412989, + 0.003114, -0.923464, 0.638935, 0.393953, 0.422198, -0.448506, -0.869637, 0.471385, -0.779208, + 0.4743, 0.866306, -0.124219, -0.810368, 0.750164, -0.957927, -0.331154, -0.741738, 0.424227, + 0.904066, -0.639542, -0.574034, 0.81092, 0.490936, 0.699959, -0.716801, 0.934652, -0.363127, + -0.552797, -0.334272, 0.064618, 0.583758, -0.255747, -0.67539, 0.161777, -0.962767, -0.796543, + 0.21511, 0.890083, -0.577932, 0.566828, -0.622665, -0.343406, 0.991796, 0.271505, -0.422094, + -0.450202, 0.219912, 0.621558, 0.751891, 0.073432, -0.504689, 0.498538, -0.837282, -0.032097, + -0.921537, -0.209912, -0.005916, 0.818983, 0.229013, -0.67498, 0.459065, 0.026276, -0.636065, + -0.845854, 0.206644, -0.574603, -0.382784, -0.512365, -0.744707, -0.647061, -0.148637, -0.02458, + 0.675148, -0.820693, 0.855758, 0.923414, -0.966963, 0.64393, 0.816529, -0.760963, 0.518895, + 0.425753, 0.523788, -0.344285, -0.52084, -0.006351, -0.306267, 0.444203, -0.744705, 0.848245, + -0.319483, 0.573471, -0.323297, -0.152521, 0.148513, -0.881999, 0.46057, 0.904786, -0.746904, + 0.382452, -0.909383, -0.039339, -0.455227, -0.864824, 0.438184, 0.625369, 0.136375, 0.336903, + -0.553122, 0.660809, -0.795891, -0.274773, -0.360057, -0.431424, 0.823318, 0.77402, 0.513982, + -0.385331, -0.616056, -0.277027, -0.390452, 0.111464, 0.504598, 0.937881, 0.700746, -0.821537, + 0.858994, -0.927807, 0.110615, 0.118746, -0.17787, -0.308146, -0.43128, 0.573404, -0.637406, + 0.197182, 0.36086, 0.764279, 0.019259, 0.861336, -0.978626, -0.552574, -0.869025, -0.028801, + -0.61843, 0.667425, -0.475393, 0.085015, 0.845406, -0.985542, 0.412506, -0.851817, 0.484582, + -0.262034, -0.858038, 0.164784, 0.073019, 0.347889, 0.599643, -0.103231, -0.463743, 0.97733, + -0.308814, 0.855583, 0.666829, -0.980726, -0.289581, 0.064598, -0.801374, 0.170943, -0.413346, + -0.51318, 0.744307, 0.429935, 0.995209, -0.204564, -0.284418, -0.638683, 0.113131, 0.784588, + -0.10945, -0.346427, 0.639219, 0.034872, 0.14203, 0.942377, 0.957778, 0.956088, -0.903355, + 0.169821, 0.813077, 0.886588, -0.867829, 0.737584, -0.462037, -0.500801, -0.563255, -0.531555, + -0.15637, -0.017936, -0.438132, 0.642704, -0.574281, 0.890854, -0.902438, 0.329554, -0.612554, + -0.556093, 0.237085, -0.187205, -0.670908, -0.059077, -0.720814, -0.594738, 0.591041, 0.061946, + -0.282399, 0.800715, 0.123026, 0.723199, 0.41406, 0.082102, -0.368491, -0.439393, 0.875583, + 0.213801, 0.852541, 0.597561, -0.056474, -0.921493, 0.40328, -0.22185, 0.200489, -0.364285, + 0.785775, 0.962572, -0.593073, -0.237843, -0.744413, 0.484056, -0.724569, -0.773239, -0.731019, + -0.806532, 0.772494, -0.430558, 0.618165, -0.276733, -0.301762, -0.27393, -0.811163, 0.287014, + -0.402228, 0.299337, -0.852066, 0.156418, 0.812205, -0.307386, 0.213163, -0.98724, -0.408446, + 0.82827, 0.396654, 0.366384, 0.433996, -0.204184, -0.424474, 0.941089, -0.366699, -0.079752, + -0.757869, 0.766533, -0.326702, -0.372827, -0.621981, 0.232758, -0.77431, 0.861387, 0.735157, + -0.761062, -0.917558, 0.261305, -0.594598, -0.991288, 0.627855, -0.251477, 0.206909, 0.10695, + -0.624135, -0.490545, 0.347662, -0.882956, -0.137331, -0.087984, -0.554442, 0.98836, -0.886162, + -0.85718, -0.722959, 0.567088, -0.851241, 0.607042, 0.970669, 0.938553, 0.931958, 0.162437, + -0.874403, 0.244894, 0.411725, -0.075561, -0.876363, 0.754431, 0.192692, 0.673623, -0.11092, + -0.893826, 0.851609, -0.978724, -0.714415, 0.913663, -0.287808, 0.543008, 0.612555, -0.117434, + -0.20108, 0.444329, -0.202929, 0.413292, -0.31685, -0.548615, -0.631642, -0.994022, -0.304467, + -0.456845, 0.316498, 0.008684, -0.661492, -0.72475, -0.150176, 0.360482, 0.058838, 0.116401, + -0.53702, -0.449532, -0.137703, 0.416714, -0.917495, 0.425081, 0.561709, -0.988089, 0.419703, + 0.150838, 0.398129, -0.555137, 0.630157, -0.577469, -0.435044, 0.321869, -0.215385, 0.696965, + -0.115806, -0.779639, -0.833354, 0.051479, -0.779271, 0.89395, 0.869303, 0.602012, -0.763026, + -0.229881, 0.737815, 0.203653, 0.078674, -0.077591, -0.548865, -0.318133, 0.582909, -0.194785, + -0.267925, 0.492827, -0.481338, -0.148361, 0.830715, 0.143142, 0.45551, -0.493355, 0.483422, + -0.541767, 0.978906, -0.276861, -0.729926, -0.21621, 0.736603, 0.784609, 0.070711, 0.695558, + -0.33365, -0.098764, 0.735497, -0.010857, 0.211043, 0.594773, 0.077348, -0.582628, 0.108342, + -0.060255, -0.099144, 0.967569, 0.852937, -0.905822, -0.363809, -0.11005, 0.576432, -0.219278, + -0.1537, -0.259166, -0.623005, -0.859061, -0.794741, 0.189772, 0.466199, -0.064175, 0.920753, + -0.173753, 0.744994, -0.167649, -0.556013, 0.098183, -0.996899, 0.374781, 0.211827, 0.46599, + 0.521619, 0.858718, -0.656038, -0.9422, 0.085189, -0.441547, 0.00503, 0.866444, 0.106252, + 0.120164, -0.831933, 0.005236, -0.801867, -0.25026, 0.687786, -0.081537, 0.420763, 0.339734, + 0.673756, 0.320967, -0.887082, -0.077277, 0.091404, -0.420685, -0.753996, -0.645143, 0.461747, + -0.344564, -0.09054, 0.303158, 0.660133, 0.516544, 0.447698, 0.905671, 0.18378, -0.440969, + 0.452412, -0.096886, 0.984863, -0.773316, -0.583039, 0.649567, -0.655266, 0.5462, -0.660198, + 0.306068, 0.860086, 0.399804, -0.595433, 0.39992, -0.008712, -0.206468, -0.984442, -0.659154, + -0.339821, 0.745578, -0.68711, -0.935673, -0.731813, 0.32161, -0.891696, -0.999617, 0.027672, + -0.943178, 0.197942, -0.109246, 0.910145, -0.372377, -0.923933, -0.583898, -0.051078, -0.400669, + 0.978702, -0.781174, -0.961169, 0.436055, -0.240697, 0.621712, 0.167444, 0.344195, 0.71772, + -0.123036, -0.422149, -0.360003, -0.26157, -0.893423, 0.822826, 0.435588, -0.348166, 0.785639, + 0.400741, 0.413115, 0.58597, 0.158445, -0.078565, 0.752887, 0.319716, 0.669363, 0.560488, + -0.666818, -0.248881, 0.779296, -0.178343, -0.434212, -0.432161, -0.792129, 0.584601, 0.577341, + -0.548694, -0.970181, 0.234337, 0.059632, 0.704419, 0.208163, -0.147478, 0.611401, 0.654386, + 0.501619, 0.689674, -0.907179, 0.416198, 0.555905, 0.606211, -0.407189, 0.239872, -0.817343, + 0.801031, 0.072153, 0.69625, 0.275411, -0.451669, 0.553907, 0.644591, -0.530815, 0.084726, + -0.532921, -0.713646, 0.385664, -0.838491, 0.381085, -0.759079, -0.037881, -0.359163, 0.474204, + 0.932005, -0.750401, -0.272819, -0.162238, -0.878072, -0.887372, -0.463411, -0.218184, 0.868294, + 0.312505, 0.870733, -0.811575, -0.532054, 0.10866, -0.794081, 0.45546, -0.003852, -0.9832, + -0.978167, 0.100539, 0.330193, -0.035404, -0.29433, 0.644713, 0.058949, -0.497681, 0.837522, + -0.259185, -0.319551, -0.097356, -0.198441, -0.066272, -0.426944, 0.599247, 0.04561, 0.567326, + 0.112977, 0.665982, -0.671469, 0.520067, 0.386998, 0.445325, -0.537251, 0.099235, -0.379576, + -0.359643, -0.157827, -0.152721, 0.450718, 0.990718, -0.261146, 0.951904, 0.531915, -0.892553, + 0.781894, -0.792149, -0.410409, -0.375312, -0.019802, -0.984822, -0.938942, -0.817852, -0.487249, + 0.004651, 0.664799, -0.913196, 0.11116, 0.767298, 0.306923, 0.21874, -0.888698, 0.63558, + -0.223562, 0.411394, -0.663274, -0.169308, 0.588972, -0.641612, -0.770989, -0.118219, 0.514292, + -0.679651, 0.128547, -0.420363, 0.146524, 0.152335, 0.673189, -0.505322, -0.919644, 0.117731, + 0.558603, -0.440958, 0.32358, -0.91149, 0.4934, 0.517665, -0.93312, -0.235135, 0.432315, + 0.451337, 0.297128, -0.721863, 0.832661, -0.874145, -0.020365, -0.532416, -0.820398, -0.438773, + 0.892851, -0.869614, 0.682639, 0.888187, -0.562381, 0.303948, -0.385407, -0.94085, -0.876672, + -0.173174, -0.720503, -0.131249, 0.576853, 0.485714, -0.988641, 0.389254, -0.006926, 0.343073, + 0.639485, -0.833564, -0.518194, 0.428547, 0.165923, -0.282876, -0.504276, 0.147958, -0.2702, + 0.292493, -0.44174, 0.972015, 0.125488, -0.266844, -0.825151, 0.973547, -0.749554, -0.871314, + 0.39184, -0.515734, 0.729695, 0.200054, -0.585541, -0.88569, -0.661721, 0.964214, 0.027371, + -0.584166, 0.849567, 0.349896, 0.746656, 0.685669, 0.637395, 0.518499, 0.451038, 0.40569, + 0.491895, -0.298199, -0.242657, -0.431537, -0.546494, 0.849817, 0.598284, 0.764701, 0.397186, + 0.701838, 0.606989, -0.092809, -0.929806, 0.387752, -0.310725, -0.639639, 0.746709, 0.877958, + 0.599187, -0.324149, -0.444174, 0.845689, 0.595928, -0.173855, -0.763925, -0.444669, -0.394884, + -0.602263, -0.851564, -0.22682, 0.79252, -0.166955, 0.414191, 0.016487, -0.864419, 0.798832, + 0.855441, -0.214624, 0.356003, 0.405303, -0.636584, 0.190319, -0.57063, 0.494772, -0.789179, + 0.038669, -0.330465, -0.856585, 0.094676, -0.260697, -0.06925, 0.056344, 0.804916, -0.706519, + 0.432914, -0.577893, 0.455555, 0.358678, 0.822424, -0.4307, 0.100156, -0.226522, -0.806894, + -0.79408, 0.944291, 0.032449, 0.589241, -0.905179, 0.796803, 0.564884, 0.51366, 0.652785, + -0.660952, 0.056135, -0.870364, -0.083137, 0.808387, 0.511343, 0.573708, -0.562181, -0.886466, + -0.27201, 0.752797, 0.778327, 0.979782, 0.435793, -0.056491, -0.952685, -0.054241, 0.5906, + 0.357409, -0.310871, -0.503414, 0.564961, 0.050749, 0.066767, -0.28677, 0.411728, -0.262639, + 0.609194, 0.1997, -0.298978, -0.097311, -0.451976, 0.74467, -0.278726, 0.829701, -0.978407, + 0.645037, 0.405196, 0.814657, -0.360271, -0.702953, 0.358724, -0.784487, 0.807073, 0.110016, + 0.698112, 0.700277, -0.223499, -0.403794, -0.280956, -0.531941, 0.309526, 0.208501, -0.643145, + 0.193851, 0.927849, 0.802474, 0.532076, 0.119867, 0.475343, 0.524524, -0.417001, -0.285547, + -0.04165, 0.513852, -0.873879, 0.175885, 0.712437, 0.304099, -0.75771, -0.549007, -0.893083, + -0.8092, -0.804323, -0.079466, -0.41261, -0.96843, 0.888254, 0.23891, -0.658511, -0.559897, + -0.060474, 0.660379, -0.31896, -0.370173, 0.632515, -0.142878, -0.359674, 0.66987, -0.803831, + 0.265274, -0.869574, 0.038751, -0.174403, -0.679818, -0.531383, 0.64322, 0.793796, 0.208787, + 0.419326, 0.562285, -0.172784, -0.055171, 0.812529, 0.613284, -0.379259, 0.228222, 0.303758, + -0.353833, 0.609004, -0.39775, 0.409634, 0.563722, -0.101143, -0.789756, -0.823991, -0.125942, + 0.557342, 0.899719, 0.597277, 0.061566, -0.108412, 0.111521, -0.357581, -0.202611, 0.565918, + -0.816114, -0.632572, -0.266358, -0.62378, -0.74576, 0.491565, 0.450294, 0.530487, -0.705615, + 0.307831, 0.533199, 0.202487, -0.46909, -0.447683, 0.548108, 0.331124, 0.256664, -0.763952, + -0.89169, 0.78317, 0.062257, 0.84409, -0.958718, -0.468252, -0.925524, 0.924965, 0.147164, + 0.391439, 0.76469, 0.058819, 0.215615, -0.723567, 0.107871, 0.700719, -0.147437, -0.693009, + -0.517162, 0.028935, 0.661098, 0.085974, -0.573852, 0.084182, -0.324484, 0.055551, 0.625788, + -0.833231, -0.271163, -0.525659, 0.842007, -0.839811, -0.233747, -0.897564, -0.70956, -0.399247, + 0.183424, -0.883225, -0.102327, -0.545495, 0.705677, -0.646002, -0.840834, -0.095291, -0.823018, + -0.384809, 0.326629, -0.810037, -0.404077, 0.569739, 0.740243, 0.829005, 0.844568, 0.817281, + -0.239058, -0.444182, -0.220861, 0.215754, 0.103303, -0.630735, 0.831368, -0.273075, 0.755956, + 0.022155, 0.407488, 0.071706, 0.373921, -0.60756, 0.423865, -0.585143, 0.505129, -0.454574, + 0.267802, -0.949861, -0.642282, 0.842618, 0.760342, -0.889202, -0.617093, -0.916229, 0.102371, + -0.269053, -0.010838, 0.317902, 0.277982, -0.15975, 0.159472, -0.817162, 0.767694, -0.875852, + -0.523894, -0.332386, -0.583479, 0.052695, 0.503381, -0.342178, -0.318976, -0.561636, 0.375521, + -0.695524, 0.735335, 0.22216, -0.775335, -0.071631, 0.293614, 0.994023, -0.354501, -0.80856, + -0.538682, 0.245221, 0.670159, 0.032138, 0.890974, -0.693582, -0.994007, 0.125633, 0.628793, + 0.9356, 0.057955, -0.072817, 0.497869, 0.616024, -0.911764, -0.490148, 0.713148, -0.287778, + -0.810657, -0.744956, -0.515151, -0.106885, -0.068933, -0.82206, 0.952231, 0.042864, 0.973063, + -0.35541, 0.734488, 0.296878, -0.906116, 0.69698, 0.644478, -0.744167, 0.822239, -0.205012, + -0.405081, -0.301157, -0.696821, 0.84634, -0.335103, -0.588988, 0.963729, -0.990037, -0.747549, + 0.315102, 0.907323, -0.495699, -0.502317, -0.531647, 0.647515, -0.044991, -0.764294, -0.441129, + -0.807445, 0.389339, -0.49841, 0.071594, 0.680401, 0.705377, -0.978664, 0.48437, 0.888038, + 0.789106, 0.359787, -0.048495, -0.583434, -0.508377, -0.566018, -0.286964, 0.552911, 0.968024, + 0.578763, -0.266299, 0.098514, -0.381615, -0.327201, -0.207434, -0.044197, 0.071433, 0.460134, + 0.345381, 0.684552, 0.132573, -0.800602, 0.060666, 0.408966, -0.888864, 0.045032, 0.620707, + -0.665029, 0.468511, -0.612496, 0.382282, 0.355937, 0.405457, -0.689336, 0.445047, -0.716867, + -0.503402, 0.406882, -0.695594, 0.567037, 0.515733, 0.960308, -0.56851, 0.26716, 0.782947, + 0.369743, -0.246744, 0.871402, 0.630019, 0.271396, -0.318201, -0.614418, 0.890048, 0.010927, + -0.154994, -0.003691, -0.526117, 0.470799, 0.23406, 0.19776, -0.154943, 0.337899, 0.851566, + 0.532282, 0.920397, 0.307708, 0.515486, -0.323378, -0.696468, 0.516771, 0.134057, -0.034699, + 0.146435, 0.407812, -0.039555, 0.448727, 0.966486, -0.145308, -0.279348, -0.46673, 0.629855, + -0.275834, 0.228972, -0.686295, 0.309469, -0.755243, 0.158212, -0.584305, -0.915428, 0.053169, + 0.320435, -0.692479, -0.540769, 0.67144, -0.149567, 0.638518, -0.524665, -0.271552, 0.517755, + -0.881568, 0.290905, -0.622351, -0.490488, 0.19512, 0.574404, -0.521891, 0.093499, -0.149735, + -0.706473, -0.158435, 0.103734, -0.472209, -0.501228, 0.810133, -0.608156, -0.103633, 0.754693, + -0.395953, -0.772978, -0.508529, -0.779741, 0.704984, -0.460201, 0.33471, 0.5322, -0.244287, + 0.433843, 0.847416, -0.127464, 0.326916, -0.497685, 0.75163, -0.943175, -0.234724, 0.083727, + -0.772417, -0.749992, 0.508206, -0.850984, -0.014953, 0.904539, -0.826807, 0.991435, 0.791692, + -0.262117, 0.326437, -0.266908, -0.521413, 0.601459, 0.148287, 0.357852, 0.907545, -0.124536, + -0.11091, -0.860133, -0.884876, -0.558765, -0.618974, 0.768744, -0.411212, -0.168932, 0.730523, + -0.467439, 0.053609, -0.874686, 0.738542, -0.983664, 0.604275, -0.083346, -0.429814, -0.214325, + -0.770269, -0.324045, 0.703357, 0.818182, 0.581471, -0.364588, -0.248283, 0.388581, -0.961693, + -0.896702, -0.946646, 0.962898, 0.439631, -0.490094, -0.271877, 0.178482, 0.308926, 0.151591, + 0.442646, 0.15485, -0.28264, 0.28779, 0.620059, -0.130847, 0.249161, -0.996662, -0.90381, + -0.937504, 0.323446, -0.602203, 0.449687, 0.056868, 0.351535, -0.83374, 0.876737, -0.877398, + -0.311372, -0.09852, 0.194334, -0.144066, -0.982531, -0.628996, -0.553445, 0.990687, 0.267613, + 0.6363, -0.418118, 0.60671, -0.4348, 0.291775, 0.384263, 0.970024, 0.277318, -0.070994, + 0.822153, 0.688079, -0.67143, -0.433763, 0.68531, -0.33627, -0.418973, -0.141921, 0.60259, + -0.860522, 0.571643, 0.090572, 0.469579, -0.7578, -0.094295, 0.805254, -0.447845, 0.085437, + 0.096332, -0.561736, 0.957941, -0.968604, 0.110829, -0.194806, 0.892457, 0.593175, -0.81044, + -0.111839, 0.902037, 0.09199, 0.490841, -0.814969, -0.270235, -0.979823, -0.720538, -0.712971, + -0.168481, 0.130311, -0.976272, -0.350251, -0.002526, 0.995899, -0.285001, -0.656283, 0.172693, + 0.087004, 0.008878, -0.21575, -0.058674, 0.77411, -0.783836, 0.413576, -0.431034, 0.290166, + -0.524742, -0.781417, 0.420815, 0.280047, 0.490032, -0.362887, 0.19442, 0.717358, 0.751966, + 0.647639, -0.204621, -0.515578, 0.084404, -0.670582, -0.292576, 0.127193, 0.354955, -0.103903, + 0.382073, -0.854928, 0.380082, -0.653705, -0.817792, 0.103641, 0.881198, 0.14532, 0.356032, + -0.133875, 0.053678, 0.10808, -0.442932, 0.810362, -0.623982, 0.515776, 0.673461, -0.524835, + 0.862283, 0.403647, 0.871012, 0.399661, -0.587896, 0.613208, 0.807992, 0.613026, 0.359157, + 0.16813, 0.069191, 0.983735, -0.487424, 0.225066, -0.024334, 0.901941, 0.570105, -0.618825, + 0.45511, -0.325024, 0.69661, -0.842864, -0.90267, 0.445434, -0.27835, 0.258055, 0.827934, + -0.694269, -0.126026, -0.353853, 0.541142, -0.378736, 0.844241, 0.033229, 0.289111, -0.494922, + -0.039336, -0.896208, -0.448032, -0.285933, -0.838773, -0.016175, 0.510369, -0.591641, -0.067451, + 0.747527, -0.604881, 0.292518, -0.207083, 0.8317, -0.086141, 0.82926, -0.328196, -0.775837, + 0.028381, -0.596373, -0.54543, 0.702207, 0.92357, -0.656057, -0.994872, 0.302916, -0.840856, + -0.284968, 0.414862, 0.356421, 0.147269, 0.439641, -0.5591, -0.321439, -0.326939, -0.996833, + -0.57091, 0.132475, 0.265045, -0.434811, 0.694461, -0.547507, 0.054999, 0.863745, 0.661627, + 0.944391, 0.278146, -0.690878, -0.34083, -0.286945, -0.739121, -0.374581, -0.936969, -0.47173, + -0.997273, 0.977562, 0.157886, 0.952804, 0.570734, 0.980559, -0.297651, -0.472761, -0.423527, + -0.915917, -0.059464, 0.14705, 0.569629, -0.189175, 0.323959, 0.424418, 0.204115, 0.243726, + -0.3799, 0.54404, -0.970941, 0.118044, 0.528947, 0.626535, 0.440745, -0.151937, 0.712726, + -0.948086, -0.209239, -0.37423, 0.61018, 0.878942, -0.264454, 0.20124, -0.144532, -0.284526, + 0.400001, 0.235289, -0.480884, 0.218264, 0.903239, -0.699332, -0.159505, -0.887687, -0.252409, + 0.945835, 0.650398, -0.943255, -0.8955, 0.040184, -0.114373, 0.753291, -0.275712, 0.758417, + -0.591411, -0.182202, -0.021424, -0.514707, 0.042435, -0.215477, -0.474475, -0.787004, -0.001614, + 0.930638, 0.388157, -0.764842, -0.505134, 0.656831, -0.372746, -0.092663, -0.470201, 0.476794, + -0.676303, -0.947841, -0.734805, -0.862896, 0.096149, 0.155038, -0.316524, 0.414476, 0.093802, + 0.241641, 0.521539, 0.202221, 0.992833, 0.735765, -0.56572, 0.746691, -0.107045, -0.052765, + 0.090649, -0.874999, 0.652913, 0.657089, 0.969515, 0.182325, -0.272964, -0.14712, -0.327814, + -0.904285, 0.339906, 0.149193, -0.308453, -0.583023, -0.223431, 0.276503, 0.752488, 0.407807, + 0.753862, 0.805393, -0.491821, -0.020812, -0.840471, -0.575292, 0.387052, 0.373616, 0.443057, + 0.85547, 0.406178, -0.489946, -0.206711, 0.073588, 0.509745, -0.514501, -0.41813, 0.382772, + 0.33691, 0.94821, 0.824708, -0.464084, 0.343652, -0.616472, -0.042311, -0.084577, 0.225778, + 0.876401, -0.78235, 0.920315, 0.69758, -0.483911, -0.27, -0.219392, 0.627047, -0.256717, + 0.351581, -0.396119, 0.8074, -0.160585, 0.95602, -0.744441, -0.298579, 0.646323, 0.332579, + -0.506349, -0.818856, -0.754976, -0.835583, -0.552634, -0.605915, -0.28861, 0.866458, -0.265427, + -0.618093, 0.488897, -0.588568, -0.500484, -0.165247, -0.123088, -0.616678, -0.795291, -0.976133, + -0.424139, 0.506666, 0.080223, 0.797148, 0.173439, -0.750211, 0.094204, -0.256221, 0.566228, + 0.27208, 0.989932, -0.896588, -0.47595, -0.848791, 0.088978, -0.63744, -0.415237, 0.954579, + -0.33504, 0.492009, 0.642933, 0.725247, 0.818017, 0.616863, 0.099097, 0.843747, 0.967743, + -0.689815, 0.208827, 0.688048, -0.676064, 0.392461, 0.624371, 0.031202, -0.289093, -0.082702, + 0.869881, -0.791782, 0.396743, -0.5413, 0.674845, -0.410993, 0.221063, 0.631929, -0.129925, + -0.160015, 0.902735, 0.952867, 0.531661, 0.02196, -0.008126, -0.623729, 0.679385, 0.444448, + 0.797459, -0.652843, 0.248008, 0.195543, -0.297776, -0.104343, 0.200324, -0.272205, 0.947419, + -0.897419, -0.14364, -0.47203, 0.75999, -0.360135, -0.229865, 0.860217, -0.873723, -0.334031, + 0.859182, 0.702626, -0.284796, -0.188169, -0.476583, 0.197893, 0.293153, 0.675547, 0.438956, + 0.504407, -0.159251, -0.714681, 0.552156, -0.017369, -0.654349, 0.089474, 0.989439, -0.084311, + -0.835351, 0.603931, 0.743603, -0.639049, -0.874636, -0.715499, 0.411155, -0.410407, -0.982311, + -0.071761, -0.508075, -0.296012, -0.394675, -0.335552, -0.651103, -0.203058, -0.630218, -0.13215, + -0.623048, 0.065565, 0.709073, -0.407146, -0.131489, -0.170066, -0.330992, -0.692715, 0.25329, + -0.084894, 0.051452, -0.257059, -0.636683, -0.364785, 0.514182, 0.692301, -0.319275, 0.524267, + -0.573572, -0.056702, -0.902669, -0.139761, 0.291426, 0.609638, 0.349947, 0.471774, -0.214548, + 0.98358, -0.829499, -0.225324, -0.156925, 0.671927, 0.195008, 0.97652, -0.674562, 0.332235, + -0.840812, 0.317089, -0.458757, -0.438617, 0.109847, 0.099387, 0.985703, 0.801595, 0.051538, + 0.341375, 0.205812, -0.21452, -0.72299, -0.803309, 0.096442, -0.389101, 0.914839, -0.438635, + 0.271929, -0.483112, 0.995972, 0.429107, 0.549251, 0.271341, -0.144837, -0.341522, -0.446827, + -0.860392, -0.167585, -0.402652, 0.908725, 0.953254, -0.659127, 0.073988, -0.807029, 0.489836, + 0.755591, -0.56817, -0.706363, -0.179029, 0.808393, 0.705696, -0.522666, 0.047206, -0.763738, + 0.935025, 0.436887, -0.404107, 0.455794, 0.072107, -0.594841, -0.966531, 0.613891, -0.747277, + 0.661105, -0.298642, 0.571798, 0.412544, 0.621999, -0.444449, 0.492777, 0.236714, 0.017239, + -0.007622, 0.016304, 0.582755, 0.594972, -0.369601, -0.0214, -0.224255, -0.360026, 0.439548, + 0.924198, 0.505223, -0.251234, 0.598343, 0.968753, 0.262517, 0.882225, 0.3229, -0.200185, + 0.334694, 0.240604, 0.293757, -0.244983, -0.732437, -0.925148, -0.64453, 0.604442, -0.238649, + -0.810665, 0.760951, -0.918575, 0.178935, 0.862617, -0.497402, -0.017902, 0.992876, 0.855333, + 0.716818, -0.179593, 0.590711, 0.401822, 0.054374, 0.922732, 0.284075, 0.625241, -0.756899, + 0.301165, -0.92109, 0.167098, 0.268849, 0.593177, 0.53188, -0.445601, 0.594629, -0.997866, + 0.831999, 0.480421, -0.153509, 0.293786, 0.551071, -0.801965, 0.649018, 0.298492, 0.973259, + 0.044055, 0.099856, 0.229966, 0.808806, -0.832968, 0.552915, 0.575537, -0.080628, -0.679888, + 0.772139, 0.608507, -0.231713, 0.173777, -0.306248, -0.450627, 0.993336, 0.402508, 0.063653, + 0.63568, 0.669193, 0.535024, 0.445164, -0.747952, -0.400532, 0.831203, 0.304302, 0.27474, + -0.655622, -0.478099, -0.3754, 0.476238, -0.401955, 0.764454, -0.709499, -0.171758, 0.848928, + -0.419673, 0.01793, -0.293825, 0.352952, -0.504555, -0.755606, -0.376379, 0.403305, -0.259305, + -0.766874, -0.208676, -0.436348, 0.831355, -0.145369, 0.443755, 0.961705, -0.700123, 0.384049, + 0.136044, 0.847384, 0.030921, 0.29331, -0.978938, 0.959182, -0.759556, 0.741216, -0.65317, + 0.214483, 0.011498, 0.746836, -0.931088, 0.837299, 0.9699, 0.290292, 0.924134, 0.807855, + 0.048691, 0.564074, 0.068732, 0.244756, -0.694057, -0.27064, -0.544337, -0.58869, -0.63698, + -0.42657, 0.17442, -0.029984, 0.450071, 0.437711, -0.280827, 0.705353, -0.695732, -0.566507, + 0.96806, 0.481617, 0.48397, -0.941171, 0.724511, -0.818862, 0.151247, -0.503609, 0.378016, + -0.557164, -0.8569, -0.900911, -0.766864, -0.374115, 0.032783, -0.353084, -0.332664, 0.174551, + 0.843442, -0.307558, 0.809068, -0.412369, 0.796959, -0.43685, -0.48675, -0.276617, -0.227047, + -0.632374, 0.682134, -0.841568, -0.014485, -0.952231, -0.62478, 0.139227, -0.151579, -0.196299, + 0.090796, -0.284009, -0.881235, -0.03936, 0.279665, 0.713054, -0.595473, -0.683399, -0.80981, + 0.44917, -0.883778, 0.783423, 0.370139, 0.687098, -0.363644, 0.639836, -0.447466, -0.122948, + 0.765566, -0.531697, -0.241527, 0.111962, 0.325449, -0.13914, -0.791127, -0.237273, 0.390315, + -0.778662, -0.82633, -0.306731, 0.218903, -0.355286, 0.325411, 0.137512, 0.746318, -0.096471, + -0.543718, -0.336601, -0.769591, -0.359533, -0.493493, -0.797709, -0.94697, -0.861725, 0.440729, + -0.41991, 0.836305, -0.425086, 0.436432, -0.617935, 0.955351, 0.233074, 0.132232, 0.299817, + 0.236411, -0.391888, 0.238926, -0.584575, 0.484791, 0.958624, 0.966436, -0.202721, -0.195703, + 0.883083, -0.651672, 0.301232, 0.222098, 0.900164, -0.387589, 0.802616, -0.114522, 0.969462, + -0.998929, -0.575618, -0.212302, -0.987226, -0.09084, -0.793985, 0.624976, 0.849465, -0.068238, + 0.584217, 0.495259, 0.397903, 0.125436, -0.653719, -0.888398, 0.400483, -0.677399, 0.770672, + 0.207411, -0.506265, -0.420937, 0.243994, -0.037512, 0.875516, -0.380124, -0.589475, -0.913895, + 0.186977, -0.745486, -0.101399, 0.983077, -0.440612, 0.885012, 0.608672, -0.612952, 0.529633, + -0.395556, 0.539148, -0.584286, 0.264153, 0.562447, 0.734579, -0.371924, 0.58853, 0.71559, + -0.251952, 0.698313, -0.2124, -0.569587, 0.35037, 0.280465, -0.908444, -0.412725, -0.248066, + 0.657846, -0.067922, -0.952857, 0.158635, 0.265134, 0.164399, 0.807628, -0.982321, 0.105217, + -0.548696, -0.44723, -0.641612, -0.235072, -0.937667, -0.928535, 0.674472, 0.612912, -0.374871, + -0.326796, -0.356097, 0.247067, -0.397298, 0.412443, -0.002508, 0.254377, -0.502157, -0.49419, + 0.428962, 0.762788, -0.542162, 0.521657, -0.072065, 0.986049, -0.429413, 0.849464, 0.411009, + 0.771705, -0.005633, 0.677704, 0.01046, 0.015056, -0.176329, 0.286291, 0.96394, 0.80081, + -0.549715, -0.416894, 0.544282, -0.380406, -0.319981, 0.213111, -0.572583, -0.723772, 0.803859, + -0.904724, -0.603459, 0.451664, -0.145121, 0.501633, -0.136505, 0.001833, -0.193153, 0.282814, + 0.278204, -0.133904, 0.6764, -0.619184, -0.250507, 0.075971, 0.496723, -0.348911, 0.039175, + -0.918097, 0.484555, 0.600096, -0.830515, -0.825443, 0.052837, 0.873471, 0.370144, 0.76103, + -0.819315, 0.716289, 0.927417, -0.80047, 0.228708, -0.193449, 0.988184, -0.507474, -0.943637, + -0.817032, 0.711149, 0.275018, -0.929226, -0.803701, 0.533304, -0.51236, -0.682472, -0.426196, + -0.390236, -0.613371, -0.437125, 0.136598, 0.204055, 0.84402, -0.949917, -0.243111, -0.295903, + -0.546765, 0.336736, -0.481911, -0.354782, -0.775845, -0.391609, 0.049142, -0.553756, -0.192244, + -0.588943, 0.185528, 0.354965, -0.597974, -0.417262, -0.147051, -0.528462, -0.437081, 0.485098, + -0.16812, 0.389755, 0.009387, 0.041459, -0.703302, 0.07202, 0.944033, 0.929402, 0.699464, + -0.314736, -0.005498, 0.906535, -0.22768, 0.241437, 0.086895, 0.640839, -0.485803, 0.191738, + -0.886584, -0.239218, 0.450097, 0.103307, 0.926689, -0.713336, 0.446211, -0.049052, 0.93471, + 0.867522, 0.884369, -0.660772, 0.995366, -0.628906, -0.468238, 0.575555, -9.3e-05, 0.484088, + 0.854059, -0.113228, 0.266222, 0.025974, 0.670016, 0.51763, 0.055404, -0.731722, 0.300356, + 0.61286, 0.070506, 0.466463, 0.249441, -0.492816, -0.517065, -0.175668, -0.860858, -0.022327, + -0.248024, -0.842295, 0.126425, 0.186968, 0.384933, -0.040778, -0.355337, -0.168373, -0.788997, + 0.017013, 0.534402, 0.015155, 0.104202, 0.842841, 0.813442, 0.900603, 0.815702, 0.536421, + -0.027847, -0.94717, 0.118259, 0.563867, 0.038159, 0.534099, -0.758951, -0.028472, 0.983614, + -0.909651, -0.146096, 0.445833, -0.956358, -0.388693, -0.435145, 0.663381, -0.156, 0.030529, + 0.805164, 0.230232, -0.341015, 0.493119, -0.416625, 0.863824, -0.297156, 0.885913, -0.302434, + 0.542333, 0.887756, -0.364542, -0.079947, -0.486807, 0.511237, -0.342649, 0.747735, -0.647596, + -0.349347, -0.23391, 0.82438, 0.535347, -0.049736, 0.498879, -0.878825, -0.082495, 0.893021, + -0.232942, -0.555529, -0.471214, 0.786513, 0.145546, 0.244773, -0.46416, 0.501869, -0.01272, + 0.994843, 0.639112, -0.865674, 0.823115, -0.665658, -0.333122, 0.151264, -0.799898, -0.049376, + -0.520125, -0.257509, -0.005779, -0.163423, 0.346905, -0.277401, 0.131532, -0.010835, -0.330859, + -0.912436, 0.512379, -0.837791, 0.114525, 0.614539, 0.915238, -0.524672, 0.845031, -0.532193, + -0.594753, 0.14925, -0.396757, -0.640026, 0.277339, 0.81829, 0.598962, 0.354076, 0.544491, + 0.821438, -0.443148, 0.791274, 0.270379, 0.674827, -0.970365, 0.23274, -0.050053, -0.023132, + -0.728575, -0.108362, -0.225593, -0.340757, 0.831557, -0.890304, 0.100168, 0.448138, 0.190289, + 0.688418, 0.123711, 0.623921, 0.47071, -0.664271, -0.859553, -0.498836, -0.579942, -0.748808, + 0.218477, -0.779892, -0.729078, -0.344191, -0.943054, -0.626613, -0.22072, 0.063292, 0.425893, + 0.888246, -0.198439, -0.591887, -0.623812, -0.723724, 0.644701, 0.8835, 0.249964, 0.24579, + 0.326224, 0.673928, 0.559071, 0.66557, 0.340469, 0.125591, -0.262376, 0.621, 0.287306, + 0.619835, 0.952297, 0.748316, 0.921008, 0.753244, -0.243438, -0.376205, 0.215307, 0.623869, + -0.832474, 0.300939, 0.457735, -0.480068, -0.503717, -0.459328, 0.981847, -0.048155, -0.560501, + 0.490167, -0.681308, -0.96054, 0.662193, -0.000134, 0.080774, 0.574555, -0.130968, -0.086931, + -0.171284, 0.525517, -0.197745, 0.065584, -0.671883, -0.437345, -0.836834, 0.692664, 0.838808, + 0.400903, 0.370723, -0.466073, 0.328615, 0.413049, 0.935115, -0.815003, -0.602418, -0.500952, + 0.8067, -0.011793, 0.793996, -0.371098, -0.147574, 0.153754, -0.266226, 0.765295, 0.711188, + -0.79962, -0.450537, 0.656921, 0.632807, 0.016007, 0.812234, 0.10046, -0.966491, -0.331718, + 0.704325, -0.219131, -0.740591, -0.227709, -0.593623, 0.412289, 0.318719, -0.45912, 0.2668, + 0.690977, 0.762511, 0.150271, 0.358959, -0.409672, -0.706918, 0.439976, 0.303705, 0.816546, + -0.009832, 0.610104, 0.605489, 0.029974, -0.592222, -0.842637, 0.684792, -0.962193, 0.446053, + -0.416731, -0.094429, 0.531676, -0.991189, 0.703611, 0.0508, 0.622021, 0.240558, 0.507071, + -0.276338, -0.451802, 0.45104, -0.927401, -0.721798, 0.006757, 0.878386, 0.244424, -0.439636, + 0.575297, 0.461153, 0.385384, 0.951819, 0.784655, 0.364222, -0.997793, 0.444844, 0.555516, + -0.587529, 0.590598, 0.994826, 0.315705, 0.684262, 0.58664, -0.167602, -0.888392, -0.410082, + 0.563823, -0.765338, 0.865981, 0.189007, -0.347298, 0.760232, -0.830758, -0.070884, -0.993712, + 0.475786, 0.132469, 0.660638, -0.511563, 0.738952, -0.996582, 0.83172, 0.422743, 0.284414, + -0.765231, -0.529135, -0.167174, 0.527856, 0.722869, 0.922003, 0.222646, -0.246931, -0.856718, + 0.000429, 0.14032, -0.402996, 0.408085, -0.690054, 0.157718, -0.009799, -0.718386, -0.923056, + -0.802656, 0.953878, -0.362505, 0.250553, -0.317075, 0.188611, -0.834217, 0.46365, 0.803982, + -0.050249, 0.062146, -0.82502, -0.606756, -0.781976, 0.919335, -0.048888, 0.326466, -0.125207, + 0.471817, 0.737064, -0.7412, -0.674499, -0.286957, 0.065775, -0.187759, 0.429347, 0.454435, + 0.213269, -0.860653, -0.61665, 0.516912, -0.374537, -0.685632, -0.222369, 0.769715, 0.25335, + -0.410817, 0.845625, -0.17208, 0.820883, 0.975296, -0.758827, -0.211669, 0.764502, -0.956361, + 0.707569, 0.80873, 0.930773, -0.377536, 0.832681, 0.236515, 0.819621, 0.404655, 0.031787, + -0.978855, -0.612775, 0.821925, 0.393566, -0.296399, 0.96586, -0.734442, 0.680644, 0.979202, + -0.371957, 0.278771, 0.626824, -0.236995, 0.217756, 0.490589, -0.286472, -0.567848, 0.308657, + -0.868796, -0.879732, 0.015549, -0.489347, 0.288262, 0.199783, -0.806937, -0.575005, 0.971004, + -0.0705, -0.136929, -0.451577, 0.373495, 0.377685, 0.388386, -0.362954, 0.504459, 0.645059, + 0.934626, -0.952668, 0.366068, -0.359311, -0.283458, -0.731878, 0.284052, -0.799321, -0.587108, + -0.043507, 0.366103, 0.441893, 0.629974, -0.986697, -0.479386, 0.168249, -0.714611, -0.542615, + -0.406454, 0.499625, 0.43816, -0.381919, -0.507935, 0.201371, 0.293307, 0.893165, 0.715433, + -0.273003, -0.079804, 0.5415, 0.223034, 0.485509, 0.921897, 0.34488, -0.06802, -0.976849, + -0.461648, 0.468261, 0.90935, 0.337288, -0.69741, -0.807403, 0.9615, -0.302876, -0.254638, + -0.199798, 0.572359, 0.896664, 0.349334, 0.650342, 0.874604, -0.964146, -0.398704, -0.525759, + 0.506758, 0.712373, 0.136799, 0.674692, -0.938258, -0.188522, 0.109863, -0.088354, 0.769202, + -0.395802, 0.819498, -0.283633, 0.054369, 0.170242, 0.844749, -0.19743, -0.069236, 0.711954, + 0.979432, -0.556933, 0.281382, -0.017509, -0.943352, -0.859329, -0.25865, -0.224347, 0.153882, + -0.503706, 0.224448, 0.982341, 0.105204, 0.649191, -0.629899, 0.878763, -0.252872, 0.988252, + -0.346235, 0.127837, 0.173492, 0.252745, 0.059635, -0.191486, -0.280579, 0.713838, 0.903566, + 0.94428, -0.557111, 0.824835, 0.866359, 0.506954, -0.085128, -0.681108, -0.300158, -0.949921, + 0.581047, 0.687418, 0.393317, -0.969101, 0.338356, -0.515114, -0.436697, -0.786981, 0.8484, + 0.537133, 0.891557, 0.927019, -0.483439, 0.733589, 0.765816, 0.256749, -0.975744, -0.15581, + -0.984891, -0.102458, 0.842164, -0.028821, -0.785117, 0.93716, -0.127272, 0.554362, -0.205349, + -0.631043, 0.314229, 0.163752, 0.3215, -0.038335, 0.836812, -0.892617, -0.769633, -0.832208, + -0.27655, 0.249977, -0.362648, -0.254258, -0.489734, -0.392254, -0.895412, 0.070439, 0.317489, + -0.377581, 0.063313, 0.844765, 0.645003, -0.962607, -0.786724, 0.421174, -0.042133, 0.819765, + 0.716756, -0.708806, -0.853718, 0.166203, 0.311249, -0.228124, 0.657408, 0.96019, -0.114747, + 0.338113, -0.936356, -0.117839, -0.786442, 0.818225, 0.311269, 0.525391, -0.392818, 0.434543, + 0.373186, -0.450886, -0.181327, 0.555475, 0.246135, -0.040317, -0.018052, -0.690214, -0.14218, + 0.102337, 0.410463, -0.364778, 0.361876, 0.152972, 0.913092, 0.38869, -0.987245, -0.244037, + -0.069893, -0.437962, -0.359423, 0.045383, -0.023283, -0.262397, -0.411204, -0.449453, 0.337395, + 0.321681, 0.182217, 0.71628, 0.08478, 0.928027, -0.206509, 0.009571, -0.520468, -0.792632, + -0.430824, 0.237507, 0.07493, 0.412227, 0.319938, -0.973635, 0.830494, -0.274428, -0.773779, + 0.389974, 0.262168, -0.564788, 0.013181, 0.842036, 0.26657, -0.28088, -0.239702, 0.323911, + 0.951569, -0.277958, 0.883852, -0.400281, 0.702639, 0.096448, -0.422823, 0.835569, 0.730332, + -0.189227, -0.952185, -0.513276, -0.05699, -0.857325, -0.763106, -0.081123, -0.246001, 0.032995, + -0.513188, -0.503969, 0.325147, 0.049806, 0.656136, -0.551308, -0.428018, -0.461357, -0.653923, + 0.544397, -0.163466, 0.994624, 0.575122, -0.489196, -0.251573, 0.435523, -0.709591, 0.871766, + 0.161679, 0.28689, 0.860675, -0.861259, -0.352545, -0.446731, -0.654736, 0.652566, 0.654951, + 0.757977, 0.954824, -0.490561, 0.007186, 0.256944, -0.307949, 0.563473, 0.975212, -0.985237, + -0.206282, 0.590079, -0.710169, -0.178099, 0.643145, 0.246999, -0.530663, -0.251728, -0.000685, + 0.947384, -0.651721, -0.076725, -0.207536, 0.994061, 0.755633, -0.141619, -0.445593, 0.985144, + -0.118711, -0.275262, 0.792044, 0.296877, 0.108747, 0.900192, -0.502168, 0.794175, 0.499887, + -0.639473, 0.914194, 0.346519, -0.726248, 0.856492, -0.815483, 0.135172, 0.45792, 0.532538, + -0.880698, 0.875763, 0.875539, 0.585655, 0.342408, -0.642578, 0.750999, 0.061541, -0.143018, + -0.315887, 0.064296, -0.208561, -0.74828, -0.654687, -0.354511, -0.181151, -0.516469, -0.289582, + -0.766014, -0.709089, 0.598262, -0.311449, -0.318844, 0.000259, 0.157602, -0.648632, 0.456183, + 0.429134, 0.444616, -0.727474, 0.901013, 0.541158, 0.284849, 0.551028, -0.569912, 0.385056, + 0.895581, 0.418475, -0.044523, -0.933378, -0.36349, -0.669901, 0.975103, -0.181566, -0.327421, + -0.995142, -0.851078, -0.362036, 0.383843, -0.159011, 0.524408, 0.972522, -0.621004, 0.313879, + 0.075035, -0.882204, -0.199871, 0.123922, -0.322408, -0.72769, 0.923475, 0.416829, -0.904915, + -0.955708, 0.239404, -0.50291, 0.203564, 0.385752, 0.130083, 0.580314, 0.434183, -0.122106, + 0.2284, -0.259874, -0.522284, -0.981445, 0.42681, 0.786165, -0.287407, 0.619182, 0.796042, + 0.140441, 0.435525, 0.055055, 0.580869, 0.485501, 0.673741, 0.910429, -0.374817, 0.311931, + 0.387239, -0.790819, -0.865278, -0.229874, 0.446069, 0.762724, -0.39266, -0.412977, -0.886547, + 0.599969, -0.486515, 0.337088, 0.362302, -0.077363, 0.885478, 0.707398, -0.175031, -0.021804, + 0.658472, -0.581011, -0.845347, 0.629352, -0.521783, 0.09962, 0.079962, 0.726281, 0.140334, + 0.103271, 0.201469, -0.430102, -0.962891, 0.854284, -0.807602, -0.725658, -0.249892, 0.653732, + -0.399785, 0.772606, 0.350347, 0.645718, -0.370759, 0.470849, 0.222809, 0.886801, -0.458371, + 0.863851, -0.634184, -0.699667, 0.934131, 0.488519, 0.574128, -0.493618, 0.830994, -0.266469, + 0.843363, 0.646536, -0.860649, -0.277828, 0.994591, 0.63972, 0.094779, -0.094609, 0.385417, + -0.297623, -0.30415, -0.50775, -0.04342, -0.526987, -0.534743, 0.718478, 0.677897, -0.50114, + -0.17212, -0.48652, 0.449303, -0.663984, -0.528277, 0.356555, 0.133558, 0.300264, -0.124003, + 0.982073, -0.159525, 0.862416, 0.094772, 0.939358, -0.608734, 0.601534, -0.295266, 0.539099, + -0.809892, 0.602122, -0.290731, -0.429717, -0.367901, 0.710534, -0.171014, -0.124054, 0.91619, + 0.745077, 0.09121, -0.300733, 0.306225, -0.264798, 0.873004, 0.353834, 0.668934, 0.538301, + -0.229176, -0.836893, -0.311958, -0.379794, 0.350284, 0.399162, 0.896764, 0.614098, 0.920447, + 0.230558, -0.762592, -0.099125, -0.06691, -0.383879, -0.57517, -0.202932, 0.53096, 0.07452, + 0.891022, -0.745231, 0.030464, 0.616959, 0.213578, 0.557559, 0.796936, -0.955297, -0.797001, + 0.832637, -0.17301, 0.931671, -0.505367, -0.121211, -0.069261, 0.785571, -0.787968, -0.116982, + 0.408453, -0.666328, -0.011516, 0.532263, 0.139367, 0.548338, 0.337186, 0.28372, -0.215124, + 0.691741, -0.443446, -0.803367, 0.136154, 0.655048, 0.96184, -0.26355, 0.390162, -0.060192, + -0.452088, -0.350984, -0.285781, -0.385917, 0.43079, 0.817702, -0.611022, -0.05739, 0.480013, + 0.504453, 0.129493, -0.573617, -0.543103, -0.911764, -0.975704, -0.805749, -0.478633, 0.190082, + 0.811655, -0.31304, 0.903515, 0.533133, 0.350759, 0.420353, -0.160152, -0.254122, -0.337523, + -0.936753, -0.312971, -0.547526, -0.850776, -0.753618, 0.869231, 0.053252, 0.795764, 0.615606, + 0.373138, -0.793657, -0.364101, 0.37063, 0.241687, -0.82642, 0.960755, 0.811027, 0.396269, + -0.607958, 0.450575, 0.598974, 0.444128, -0.514738, 0.011608, -0.783046, -0.529213, -0.583087, + 0.813022, -0.738995, 0.347846, 0.009572, -0.055189, 0.261332, -0.731928, 0.460108, 0.71369, + -0.954244, 0.496931, -0.113447, 0.183905, -0.215063, 0.247444, 0.561429, -0.343523, -0.878077, + -0.189596, 0.675494, -0.933875, 0.734047, -0.021271, -0.469729, 0.150285, 0.500349, -0.898483, + -0.855723, -0.996148, 0.594856, -0.995178, 0.619767, 0.596964, 0.207523, 0.914654, -0.176407, + -0.035174, 0.419371, -0.68979, 0.830711, -0.428572, -0.8206, 0.346751, -0.41968, 0.842962, + -0.149459, 0.687618, -0.259133, -0.601328, -0.221784, -0.144704, 0.378101, 0.183167, -0.455357, + -0.773334, -0.986082, 0.984105, 0.209119, -0.011197, 0.75575, 0.206586, 0.159624, -0.618526, + -0.723864, -0.860559, -0.060316, -0.107796, -0.63659, 0.644511, -0.091177, 0.341992, -0.310692, + -0.371904, -0.514864, -0.225582, -0.266625, -0.548744, 0.909283, 0.777997, 0.936551, 0.918896, + -0.36755, 0.438139, -0.394418, 0.954108, -0.304352, -0.745665, -0.494742, -0.006018, -0.852503, + 0.11617, 0.003269, -0.892227, 0.825927, -0.307848, 0.920825, -0.07106, 0.643592, 0.991436, + -0.688826, 0.481769, 0.698813, 0.116435, -0.919967, -0.30299, 0.255347, -0.760252, 0.901287, + -0.583016, -0.396344, 0.439913, -0.945619, 0.610932, -0.018024, 0.129922, -0.870374, -0.863218, + -0.732176, -0.998893, 0.9219, -0.33378, 0.221024, 0.098911, -0.489845, -0.779448, -0.811886, + 0.348756, -0.216638, 0.4804, 0.689124, -0.077312, 0.09359, -0.142772, -0.760523, 0.740937, + -0.777626, -0.11077, 0.986044, -0.338612, 0.224175, 0.662597, -0.705025, 0.187464, -0.402823, + -0.598454, -0.888561, 0.600354, -0.412035, 0.86834, 0.967159, 0.036536, 0.823638, -0.2363, + 0.573435, -0.05632, -0.670656, -0.504977, -0.636869, 0.265671, -0.023581, 0.789257, 0.254873, + -0.22607, -0.127789, 0.645197, -0.534922, 0.986992, -0.063585, 0.198271, 0.924441, -0.882125, + 0.676825, 0.814691, 0.828709, 0.348863, -0.310756, -0.68008, 0.734149, 0.236659, 0.772661, + 0.610651, -0.536371, 0.666216, 0.083501, -0.916546, 0.087314, -0.498198, -0.366014, -0.347158, + -0.932734, -0.66703, 0.82077, -0.532357, -0.186735, -0.139357, 0.796602, 0.496676, -0.421804, + 0.048591, -0.448907, 0.083496, -0.505101, -0.578209, -0.269626, -0.751775, -0.423404, 0.359954, + -0.175213, -0.808193, -0.677918, -0.598442, 0.61339, -0.685327, -0.066168, 0.565362, -0.906239, + 0.184629, 0.384613, 0.89685, 0.386737, -0.326047, 0.988615, -0.118505, -0.02046, 0.308398, + -0.752182, 0.835551, 0.281023, 0.689987, 0.28993, -0.835872, 0.404189, -0.077113, 0.713027, + 0.380914, 0.173037, 0.418965, 0.649987, 0.314685, 0.858151, 0.957903, -0.790279, -0.690713, + -0.759124, -0.782443, 0.526397, 0.661416, 0.063462, -0.187343, -0.895635, -0.96411, 0.250785, + 0.242053, 0.354836, -0.060642, 0.254336, 0.255136, -0.430247, 0.833275, -0.050734, -0.012438, + -0.644681, 0.737048, 0.878693, 0.225869, -0.638629, -0.590351, -0.97664, -0.077666, 0.486735, + -0.553436, -0.508139, -0.582021, 0.179383, 0.488499, -0.744654, -0.513726, 0.40531, 0.731965, + 0.637924, -0.236477, -0.096605, -0.591228, 0.308208, 0.760704, -0.059639, -0.674897, 0.972939, + 0.403186, 0.350003, 0.877647, -0.285424, -0.05571, 0.216257, 0.78214, 0.462977, -0.127291, + 0.774286, 0.032423, -0.440892, 0.03611, 0.985503, -0.903755, 0.870096, -0.769493, -0.623173, + -0.873118, 0.662524, 0.171614, -0.670162, -0.377007, 0.682948, 0.958903, 0.04431, 0.265549, + -0.36462, 0.40479, 0.285347, -0.868872, 0.917091, 0.747172, 0.799701, 0.142441, -0.233477, + 0.746972, -0.714528, -0.866365, 0.064675, 0.334116, 0.228206, 0.097952, 0.230686, -0.144919, + -0.596432, -0.896108, -0.2149, 0.460252, -0.452686, -0.450288, -0.188327, 0.835313, 0.555123, + -0.483132, -0.069105, -0.958066, 0.260774, -0.458018, 0.405117, 0.209726, 0.102138, 0.011227, + 0.701765, 0.039937, 0.568149, 0.459434, 0.094859, -0.064633, -0.77922, 0.010883, -0.892793, + -0.117909, -0.554686, 0.868178, -0.69959, -0.620322, 0.422583, -0.743956, -0.266226, -0.530929, + 0.08489, 0.634668, 0.998534, -0.061754, -0.673225, 0.060451, 0.262847, 0.264058, 0.734964, + -0.369347, 0.91842, -0.837062, 0.523482, -0.543611, -0.74721, 0.852411, 0.766305, 0.180683, + 0.012036, -0.555785, -0.604676, -0.036077, -0.0502, 0.919529, 0.230983, -0.317625, 0.512907, + -0.647447, 0.301553, 0.608649, -0.24593, 0.263077, -0.801029, 0.907131, 0.836462, 0.83636, + 0.262193, 0.675319, 0.688619, -0.064047, 0.059665, -0.867494, 0.44187, 0.010639, -0.637677, + 0.696982, -0.159769, 0.023135, -0.078112, 0.951253, 0.564592, 0.989163, -0.921591, -0.847958, + 0.310165, -0.270838, -0.916973, 0.158373, -0.384329, -0.194303, 0.659584, -0.139463, 0.877792, + -0.255312, -0.137774, 0.839522, -0.768326, 0.21248, -0.450801, -0.60348, -0.710397, 0.896815, + -0.645626, 0.941917, -0.715433, 0.85517, -0.878338, -0.918305, 0.861447, 0.425262, 0.634267, + -0.945524, 0.526937, 0.810752, -0.70227, -0.260841, 0.667866, 0.062957, 0.366087, 0.229114, + -0.101595, 0.143934, 0.382614, 0.613625, -0.66785, 0.619088, -0.777385, 0.595737, 0.173812, + 0.12798, 0.537367, -0.54651}; + const std::vector wanted_output{ + -0.974228, -0.707451, 0.296319, -0.228183, -0.169658, -0.571165, 0.000882, -0.313698, 0.952617, + 0.612369, 0.261761, 0.410257, -0.420981, -0.268992, 0.5921, 0.859229, -0.205509, -0.876735, + -0.025215, 0.594898, 0.046914, -0.964146, 0.125838, -0.541142, 0.410784, 0.824738, 0.608189, + -0.813502, 0.229021, -0.055912, 0.19872, -0.494296, -0.911752, -0.614744, 0.198228, 0.072099, + -0.444049, -0.158595, 0.368688, -0.513187, 0.317126, 0.450713, -0.068216, 0.319878, -0.606684, + -0.194595, 0.713824, 0.817843, -0.060819, -0.368758, 0.331392, 0.054337, 0.314037, -0.461707, + -0.245686, -0.135007, 0.305829, 0.167325, 0.174631, -0.463349, 0.184891, 0.067543, 0.421362, + 0.016316, -0.555454, -0.397721, 0.109696, 0.406701, -0.423423, -0.125249, 0.294294, -0.710315, + -0.192366, 0.521043, -0.380421, 0.144686, -0.766038, 0.029707, 0.472714, 0.847955, 0.185802, + -0.182115, 0.280408, -0.215026, 0.271398, -0.367889, -0.303545, -0.114952, 0.022153, -0.055243, + 0.097074, -0.450292, 0.175627, 0.31339, 0.498644, 0.022536, -0.661738, -0.330963, 0.286641, + 0.224046, -0.498911, 0.077517, -0.070099, -0.399827, -0.177398, 0.475812, -0.272607, 0.087968, + -0.568971, 0.227873, 0.182909, 0.551586, -0.077917, -0.396274, 0.07659, -0.256598, 0.034508, + -0.413185, -0.32923, -0.1201, 0.060826, 0.150201, 0.415991, -0.586529, 0.087001, 0.104735, + 0.112077, -0.167544, -0.563567, -0.336154, 0.139979, 0.352705, -0.337454, 0.131532, 0.342164, + -0.48801, -0.128291, 0.493048, -0.238904, 0.269969, -0.575789, -0.08454, 0.314554, 0.688749, + 0.127028, -0.131634, 0.376846, -0.075194, 0.161744, -0.219142, -0.292082, -0.04886, -0.026348, + -0.154793, 0.183371, -0.426586, 0.061663, 0.073848, 0.268824, 0.121549, -0.340445, -0.056109, + 0.085083, 0.575375, -0.332709, 0.336627, 0.261693, -0.367443, -0.413654, 0.472217, -0.286135, + 0.073635, -0.565547, 0.115281, 0.06602, 0.446643, 0.202595, 0.117763, 0.234764, -0.186532, + 0.154849, -0.087892, -0.331411, 0.045486, -0.19632, -0.357512, 0.071838, -0.36785, -0.001326, + 0.189545, 0.174036, 0.234, -0.241845, 0.091828, 0.146636, 0.608821, 0.056135, 0.544409, + 0.113203, 0.159179, -0.05512, 0.609584, 0.221384, 0.195579, -0.438634, 0.061215, -0.309606, + 0.071681, 0.291331, -0.106447, -0.168893, 0.062185, -0.026738, -0.28541, -0.019788, -0.280239, + -0.352047, 0.006866, 0.371198, -0.454614, -0.062456, 0.031408, -0.319611, 0.026573, -0.216688, + 0.084743, 0.338907, 0.242572, -0.158265, 0.533597, -0.001682, 0.285879, 0.03878, 0.282951, + 0.070279, 0.166485, -0.085473, 0.09365, -0.334637, 0.105303, 0.123509, 0.116294, 0.03057, + -0.009596, -0.104429, -0.005138, -0.060649, -0.060586, -0.237301, -0.106911, 0.331368, -0.321625, + -0.25587, -0.239428, -0.321654, 0.187258, 0.109951, 0.010659, 0.152031, 0.148523, -0.126913, + 0.166892, 0.146444, 0.251659, 0.262498, 0.068792, 0.134376, 0.163924, 0.07665, 0.063505, + -0.312511, 0.058438, 0.447137, 0.458211, 0.086003, 0.060984, 0.22022, -0.170516, -0.001073, + -0.098791, -0.139647, -0.281968, 0.044216, -0.127337, -0.237921, -0.224657, -0.161937, 0.30105, + 0.067028, 0.080385, 0.150719, 0.177306, -0.230982, -0.150551, -0.255411, 0.422103, 0.326356, + -0.131153, 0.06128, 0.036997, -0.055758, 0.129439, 0.015444, -0.140769, 0.425503, 0.204051, + -0.220007, -0.344558, 0.349248, -0.291977, 0.045011, -0.273553, -0.117148, 0.151799, -0.209309, + 0.051864, -0.317266, -0.022439, -0.067367, 0.074032, 0.180245, -0.022214, 0.135721, 0.248432, + -0.352386, -0.030384, 0.092542, -0.038403, -0.096856, -0.043134, -0.19028, 0.132957, -0.242071, + 0.300873, -0.163042, -0.008629, 0.295401, 0.223058, -0.010547, -0.483277, 0.260407, -0.351542, + 0.116481, -0.536968, -0.230979, -0.166198, 0.136963, -0.193166, 0.003324, -0.090202, 0.094546, + -0.248031, 0.161608, -0.017087, 0.031831, -0.013853, -0.270169, -0.208639, -0.157805, 0.071951, + -0.130446, -0.349343, -0.266433, 0.105264, -0.041103, 0.163793, -0.067026, 0.183543, 0.412282, + 0.456058, -0.042526, -0.334204, 0.266418, -0.35367, 0.081975, -0.49071, -0.104454, -0.259187, + -0.155052, -0.047346, -0.034414, -0.031656, 0.078156, -0.065989, -0.033117, -0.092743, -0.293468, + 0.170879, -0.08376, -0.122828, -0.214721, 0.306518, -0.396055, -0.146924, -0.203812, 0.199112, + -0.205684, -0.127836, 0.060382, 0.10607, 0.517054, 0.087645, -0.358033, -0.275999, 0.286094, + -0.537776, -0.012747, -0.643734, -0.043893, -0.238012, -0.18167, -0.134069, 0.267265, 0.056596, + 0.071884, 0.069649, -0.262182, -0.040299, -0.286927, 0.10255, 0.096492, -0.222409, -0.152669, + 0.366338, -0.396865, -0.212673, -0.367796, 0.058894, -0.168549, -0.21483, 0.103422, 0.120632, + 0.55999, -0.035852, -0.355963, -0.34029, 0.355843, -0.42271, 0.082174, -0.5926, -0.034446, + -0.181257, -0.223734, -0.200562, 0.286404, 0.042202, 0.097453, 0.078185, -0.44945, -0.240411, + -0.075612, -0.241478, -0.005612, 0.098773, 0.206942, 0.264914, -0.624508, -0.248246, -0.433775, + -0.124314, -0.124642, -0.115175, -0.006462, 0.297583, 0.506464, 0.24929, -0.315441, -0.333369, + 0.405195, -0.321559, 0.069467, -0.354246, 0.12066, -0.486927, -0.205381, -0.45724, 0.457884, + 0.109675, -0.016166, 0.2904, -0.263942, -0.142026, -0.122658, -0.180663, 0.151572, 0.122613, + 0.047882, 0.49169, -0.377064, -0.307576, -0.2595, -0.268619, -0.025184, -0.373793, -0.176992, + 0.435652, 0.602961, 0.126771, -0.374608, -0.34866, 0.275272, -0.235526, 0.224431, 0.044199, + 0.238497, -0.478598, -0.349343, -0.31886, 0.140447, 0.292044, -0.256259, 0.538624, -0.036688, + -0.042327, 0.116886, -0.14866, -0.010521, -0.196174, 0.098782, 0.350173, -0.442175, -0.251394, + -0.691475, -0.194681, 0.220651, -0.052363, 0.022174, -0.039132, 0.466017, -0.179065, -0.474202, + -0.823573, 0.518734, 0.048646, 0.090804, 0.033109, 0.288319, -0.129144, -0.120887, -0.355474, + 0.030132, 0.127019, -0.023073, 0.316004, -0.104765, 0.15603, 0.287035, 0.159787, 0.336674, + 0.222298, 0.309876, 0.400446, -0.383178, -0.354548, -0.1981, -0.031699, 0.041522, -0.211925, + 0.172429, 0.03265, 0.512317, -0.157658, -0.14555, -0.389527, 0.04165, 0.203664, 0.523421, + 0.447419, -0.091381, 0.014712, -0.111019, -0.19179, -0.368898, 0.276096, -0.407082, 0.286794, + 0.016554, 0.174251, 0.125127, 0.437299, 0.363203, 0.257625, 0.037297, 0.384864, -0.316604, + -0.163963, 0.195798, 0.030836, -0.117946, -0.312256, 0.211652, -0.134025, 0.65578, -0.360835, + 0.056596, -0.058651, -0.257723, 0.05024, 0.535554, 0.278797, -0.271378, 0.216139, -0.166666, + 0.156994, -0.502399, 0.171833, -0.454893, 0.187724, -0.002849, 0.360613, -0.122976, 0.499206, + 0.523754, 0.24241, -0.272961, -0.033964, -0.155551, 0.064796, 0.218244, -0.078743, 0.006511, + -0.010038, 0.20147, -0.167879, 0.352303, -0.165653, -0.036728, -0.173965, 0.177489, -0.14009, + 0.500322, -0.117573, -0.044825, 0.266502, -0.150092, 0.448019, -0.353208, 0.23865, -0.274482, + -0.190196, -0.133603, 0.360699, 0.174322, 0.337012, 0.447925, 0.275058, -0.306499, -0.235592, + -0.191092, 0.060378, -0.024023, 0.285506, 0.106241, -0.053862, 0.483321, -0.166676, 0.30099, + -0.112849, -0.141138, -0.106741, 0.310977, -0.197358, 0.475566, -0.006988, 0.10516, 0.147623, + 0.026446, 0.433526, -0.321887, 0.224729, -0.098805, -0.042058, -0.307196, 0.168945, -0.016678, + 0.41887, 0.400838, 0.110382, -0.159422, 0.081743, -0.022961, 0.239767, 0.232487, 0.175291, + -0.082467, 0.022546, 0.252104, -0.02874, 0.458668, -0.103229, 0.207007, 0.277884, -0.05003, + -0.323376, 0.471259, 0.432678, -0.087674, 0.034937, 0.232844, 0.323682, -0.200845, -0.085121, + 0.018865, 0.285622, 0.005934, 0.082517, 0.0455, 0.411927, 0.117748, 0.355551, -0.56637, + -0.147533, 0.076579, 0.626665, 0.261494, -0.028381, 0.003255, -0.044, -0.131521, 0.001463, + 0.272987, 0.248365, 0.232413, -0.106706, 0.282344, -0.492183, 0.29163, -0.11125, 0.137404, + -0.214688, -0.030381, 0.321347, -0.352872, 0.132805, 0.276563, 0.152781, -0.246535, 0.025579, + -0.141482, 0.191267, 0.328144, -0.01192, 0.150809, 0.156538, 0.153026, 0.594956, 0.000101, + -0.323302, -0.245776, 0.175564, -0.218602, 0.075323, 0.191809, 0.537619, 0.204233, 0.020096, + 0.152647, 0.024337, -0.030947, 0.242476, 0.069938, -0.322309, 0.104124, 0.024839, -0.033096, + 0.045804, 0.162432, 0.297802, -0.120992, -0.308587, 0.268298, 0.112026, -0.022214, 0.358461, + 0.14189, 0.491574, 0.354524, 0.357145, -0.216655, -0.01829, -0.186244, -0.20894, -0.233938, + -0.114223, 0.173474, 0.551321, 0.0202, 0.139836, -0.15603, 0.040746, 0.119722, -0.187749, + -0.119168, 0.007814, 0.356971, 0.000245, 0.048047, -0.023455, 0.113671, 0.242692, -0.022617, + -0.377537, 0.121609, -0.048095, 0.055933, 0.186826, -0.049853, 0.603401, 0.474042, 0.357486, + -0.175274, 0.048702, -0.23303, -0.174716, -0.136076, 0.015073, 0.021409, 0.670333, -0.024518, + -0.010126, -0.100582, 0.030131, 0.019194, -0.109512, 0.059794, 0.151825, 0.519541, -0.037555, + -0.059388, 0.146812, 0.255584, 0.227496, -0.004661, -0.391877, 0.375585, -0.050246, 0.053276, + 0.25753, 0.095312, 0.46321, 0.679944, 0.194896, -0.012527, -0.079194, -0.167856, -0.216304, + -0.131994, -0.026844, -0.313551, 0.413405, -0.142339, -0.021155, -0.134162, 0.084067, 0.151, + -0.304625, -0.128433, 0.164487, 0.420266, 0.079649, 0.258917, -0.056706, 0.018784, -0.076532, + -0.316617, -0.150538, 0.338887, -0.15426, 0.066938, 0.144239, 0.035154, 0.32859, 0.506326, + -0.042326, -0.014251, 0.092146, 0.04593, -0.246423, 0.008444, -0.188808, -0.397304, 0.145971, + 0.125266, 0.213287, -0.10751, -0.155131, 0.305381, -0.121275, -0.095026, 0.275121, 0.150262, + 0.050605, 0.21059, -0.128374, -0.258714, 0.135976, -0.559491, 0.050739, 0.544125, -0.179184, + 0.062431, -0.234277, 0.236993, 0.147447, 0.269756, -0.008558, 0.417742, 0.069704, 0.22589, + -0.129444, -0.202176, -0.261473, -0.411447, -0.143985, 0.483596, 0.322484, 0.255298, -0.260126, + 0.376097, -0.177293, -0.081408, 0.076781, -0.395448, -0.247546, -0.000589, -0.411958, -0.315619, + -0.01341, -0.437301, 0.13168, 0.417022, -0.271981, 0.315728, -0.489387, 0.191998, -0.143355, + 0.167724, 0.091802, 0.392561, 0.195915, 0.232628, -0.127878, 0.062048, -0.163715, -0.457923, + -0.21092, 0.308193, -0.045542, 0.331939, -0.060651, 0.179457, 0.211693, -0.039814, 0.071222, + -0.255753, -0.253572, 0.176907, -0.201484, -0.234467, 0.052798, -0.445782, 0.077369, 0.481544, + -0.147658, 0.137068, -0.248577, 0.376929, -0.300406, -0.199954, 0.003316, 0.596689, 0.267954, + 0.27506, -0.419409, 0.018585, -0.165377, -0.253277, -0.207793, 0.465335, 0.116901, 0.348219, + 0.052994, 0.166538, 0.041922, -0.063692, 0.035604, -0.482504, -0.228989, 0.072206, -0.254293, + -0.104039, -0.183605, -0.369639, 0.165654, 0.141305, -0.111742, -0.005057, -0.023636, 0.108397, + -0.34868, -0.220054, -0.119587, 0.400662, 0.34033, 0.251025, -0.539206, 0.211071, -0.175779, + 0.053296, 0.003684, 0.363857, 0.051868, 0.362421, -0.019163, 0.159835, 0.139827, -0.029165, + 0.05583, -0.434933, -0.2198, -0.082796, -0.03057, -0.09453, 0.045446, -0.159849, 0.28203, + -0.139289, -0.216719, 0.127593, 0.050942, -0.226782, -0.266729, -0.171244, -0.109388, 0.163605, + 0.331614, 0.129028, -0.596909, 0.274517, 0.161194, 0.329266, 0.170758, 0.152382, -0.155266, + 0.645168, 0.126219, 0.087686, 0.450787, -0.208074, 0.000148, -0.308339, -0.194293, -0.072878, + 0.150843, 0.338426, 0.000713, -0.178361, 0.473114, -0.281733, -0.155566, 0.203041, -0.232661, + 0.00087, -0.535574, -0.412866, 0.167629, 0.120826, 0.183357, 0.04388, -0.218518, 0.564008, + -0.209681, 0.049548, -0.076528, -0.250813, -0.452725, 0.32191, -0.076624, 0.140313, 0.670793, + -0.612085, 0.330048, -0.194027, -0.077304, 0.532981, 0.308028, 0.238685, 0.203554, 0.019122, + 0.3332, -0.653668, -0.009369, -0.084742, 0.187632, -0.472516, 0.115398, -0.004814, -0.179063, + -0.118454, -0.151238, 0.244985, -0.307365, 0.504044, 0.211791, 0.126182, -0.055446, -0.362627, + -0.297682, 0.53646, -0.290882, 0.086008, 0.70202, -0.379778, 0.22114, -0.059849, -0.244247, + -0.018053, 0.239093, 0.113323, 0.242958, 0.198204, 0.323294, -0.611391, -0.234058, -0.337803, + 0.372814, -0.392805, 0.010705, -0.002495, -0.302684, -0.30109, -0.471221, 0.22902, -0.017048, + 0.298824, 0.110355, 0.147427, -0.387781, -0.560908, -0.297953, 0.583505, -0.2211, 0.030738, + 0.403807, -0.081914, 0.087543, 0.023084, -0.483873, 0.017622, 0.369247, -0.298992, 0.16226, + 0.072624, 0.067092, -0.620668, -0.214641, -0.363717, 0.411114, -0.448346, 0.366362, 0.142155, + -0.191736, 0.175998, -0.121036, -0.067388, 0.153411, 0.323372, 0.457135, -0.312936, -0.036096, + -0.340052, 0.038991, 0.210938, -0.066652, 0.014771, 0.656361, -0.136895, 0.344099, -0.185507, + -0.440024, 0.142515, 0.353413, 0.16263, 0.124174, 0.22697, -0.294555, -0.260123, 0.250683, + -0.598846, 0.133139, -0.557891, 0.422985, 0.219244, -0.023933, -0.060173, -0.458332, 0.317727, + 0.289328, 0.295923, 0.490447, -0.241723, -0.193179, -0.130509, -0.01097, 0.295383, -0.327326, + -0.198293, 0.344876, 0.226832, 0.589551, 0.358782, -0.351251, 0.165748, 0.175984, -0.199414, + -0.271372, 0.040372, -0.088758, -0.214725, -0.016176, -0.677389, 0.516386, -0.490676, 0.421436, + 0.106127, -0.006453, 0.020154, -0.303921, 0.094355, 0.096042, 0.092589, 0.428341, -0.330476, + -0.013385, 0.088074, 0.154283, 0.09037, -0.155409, -0.335531, 0.129944, 0.408265, 0.4267, + 0.062904, -0.434458, 0.047274, 0.268148, -0.452616, 0.06196, -0.021115, -0.054535, 0.032974, + -0.08565, -0.387596, 0.253713, -0.407969, 0.120735, -0.262785, -0.034851, -0.173546, -0.134116, + -0.185828, 0.200943, -0.042869, 0.408974, -0.035684, 0.119508, 0.463484, 0.021515, -0.079766, + -0.369566, -0.295997, -0.034118, 0.392494, 0.221888, -0.168042, 0.028271, 0.330599, 0.038189, + -0.204114, 0.243772, -0.123318, -0.334628, -0.081498, -0.023309, -0.204775, -0.034215, -0.194092, + 0.165312, -0.059255, 0.254011, -0.156841, -0.088062, -0.262931, -0.028524, -0.074163, 0.256797, + -0.271664, 0.229726, 0.694344, 0.019324, -0.214404, -0.393222, -0.241411, 0.164362, 0.327519, + 0.27197, -0.152202, 0.246711, 0.122646, 0.086153, -0.086891, 0.403587, 0.058096, -0.27445, + 0.085895, 0.205378, -0.061322, -0.198427, 0.068957, 0.009937, -0.288354, 0.404955, -0.245716, + -0.098957, -0.251829, 0.002158, -0.028534, 0.03163, 0.040738, -0.015483, 0.780944, -0.098088, + -0.032405, -0.673156, -0.259064, -0.08172, 0.400612, 0.033921, 0.022558, 0.527916, 0.092095, + -0.105338, -0.071734, 0.318237, -0.139036, -0.121249, -0.018861, 0.106065, -0.044622, 0.022904, + 0.262399, -0.233774, -0.479963, 0.373414, 0.193851, 0.211254, -0.606723, -0.215112, -0.034158, + -0.030788, -0.215467, -0.04528, 0.784192, 0.021889, -0.01083, -0.492237, -0.382839, -0.254955, + 0.451407, -0.357189, -0.193189, 0.45315, -0.089697, -0.001995, -0.21907, 0.633801, -0.105702, + -0.145456, -0.024532, -0.256407, 0.020612, -0.169934, 0.517417, -0.498668, -0.110275, 0.360942, + -0.06541, 0.077942, -0.44624, -0.416128, -0.241886, -0.338608, -0.148376, -0.369925, 0.442034, + -0.311722, 0.032995, -0.443279, -0.161066, -0.050966, 0.361117, -0.153694, 0.024762, 0.473201, + -0.119198, 0.1079, -0.187108, 0.481815, -0.161074, 0.154161, 0.104265, -0.024362, 0.040788, + 0.162633, 0.305235, -0.314275, -0.228772, 0.319306, 0.123954, 0.283456, -0.565816, -0.294072, + 0.19831, -0.349524, -0.052006, -0.340975, 0.273448, 0.116306, 0.282678, -0.237352, -0.345683, + -0.056843, 0.392431, -0.211306, -0.056661, 0.281439, 0.028343, 0.181161, 0.004872, 0.501651, + -0.071014, 0.022732, 0.185659, 0.066701, -0.130775, 0.370936, 0.251978, -0.323613, -0.329886, + -0.179521, 0.141099, 0.50598, -0.086266, -0.233832, 0.477178, -0.431255, -0.005088, -0.301485, + -0.105669, 0.44506, 0.422356, -0.380913, -0.619899, -0.215291, 0.42134, 0.047365, 0.074775, + 0.31123, -0.049192, 0.051859, -0.085649, 0.194157, -0.336872, 0.088259, 0.06565, -0.251017, + -0.075713, 0.374486, -0.053351, -0.237678, -0.318965, -0.303199, 0.247805, 0.206782, -0.134099, + -0.536162, 0.385084, -0.124386, -0.253547, -0.088015, -0.118998, 0.252266, 0.416638, -0.107005, + -0.592168, -0.227139, 0.087308, -0.058725, -0.003125, 0.207148, 0.215605, 0.071625, -0.23977, + 0.425596, -0.232192, -0.088098, 0.29898, -0.110269, -0.231761, 0.483557, -0.174657, -0.219772, + -0.333257, -0.295035, 0.074684, 0.096539, -0.347816, -0.335914, 0.745566, -0.497873, -0.234147, + -0.45616, -0.073047, 0.374966, 0.266922, 0.197522, -0.279426, 0.050522, 0.520482, 0.050664, + -0.118735, 0.468724, 0.30216, -0.274294, 0.280186, 0.050289, -0.312251, 0.115768, -0.163001, + -0.090884, -0.106957, 0.346011, -0.090454, 0.10209, -0.019759, -0.595038, -0.183151, -0.173627, + 0.161713, -0.172807, 0.422687, -0.61386, -0.108824, -0.147379, 0.037308, 0.678977, 0.594505, + -0.172231, -0.319425, -0.192126, 0.131754, 0.016262, 0.12601, 0.265922, -0.058832, -0.146528, + 0.248262, 0.057281, -0.006914, -0.189426, -0.347479, -0.031341, 0.048369, 0.323707, -0.139614, + 0.18061, -0.083716, -0.559063, 0.311365, -0.208015, 0.097569, -0.070908, 0.451815, -0.55828, + -0.167788, -0.029696, -0.063301, 0.492728, 0.606137, -0.000928, -0.284127, -0.29708, -0.180946, + -0.159168, 0.068525, 0.336537, 0.130149, -0.087564, 0.086945, 0.079456, 0.118541, -0.270445, + -0.076385, -0.042415, 0.096079, -0.09435, -0.335588, -0.072714, -0.042146, -0.285994, 0.132481, + -0.482767, -0.208778, 0.057419, 0.127415, -0.314028, -0.221181, -0.181183, 0.268634, 0.050452, + 0.283847, 0.271139, -0.031801, -0.357673, 0.28602, 0.134462, -0.118388, -0.127823, 0.091117, + 0.026576, 0.28387, -0.116643, 0.029424, -0.253111, -0.148103, -0.001514, 0.019177, -0.11802, + -0.023313, -0.09148, 0.167069, -0.044708, -0.293659, -0.299807, 0.130544, -0.029382, 0.095503, + -0.362291, -0.238237, 0.046492, 0.479771, 0.037686, -0.001962, 0.224293, 0.067001, -0.482364, + 0.33613, 0.420036, 0.106185, -0.364524, -0.133583, -0.074305, 0.438167, -0.083371, 0.126712, + -0.220743, -0.323375, -0.010007, 0.194863, -0.244127, 0.177926, 0.025415, 0.260963, 0.028142, + -0.453231, -0.253877, 0.087322, -0.057564, 0.086258, -0.187559, -0.100992, -0.050709, 0.304174, + -0.202856, -0.19894, 0.0862, -0.029538, -0.512063, 0.303469, 0.608333, 0.142736, -0.484575, + -0.048434, 0.086282, 0.120319, -0.115663, 0.161274, -0.430108, -0.16458, 0.178256, 0.376585, + -0.465252, 0.11153, 0.092809, 0.172261, 0.057519, -0.195506, -0.116401, -0.178589, 0.115118, + 0.182413, -0.109593, 0.093697, -0.345605, 0.142842, -0.315258, -0.304618, 0.230606, -0.027148, + -0.370631, 0.533267, 0.50164, 0.074633, -0.330082, 0.163224, 0.360225, 0.006587, -0.282896, + 0.095134, -0.14124, -0.239645, 0.236846, 0.298255, -0.270823, 0.346131, 0.147807, 0.132744, + -0.036545, -0.345431, -0.148059, -0.202357, 0.094296, 0.308249, -0.066, 0.269203, -0.144839, + 0.110712, -0.106127, -0.201555, 0.098803, 0.219749, -0.440551, 0.272698, 0.2383, 0.333372, + -0.046639, 0.3155, 0.344007, -0.231348, -0.375888, 0.177835, -0.127091, -0.055954, 0.140784, + 0.479166, -0.353959, 0.447401, 0.357502, -0.061426, 0.396863, -0.012777, -0.11107, -0.249237, + 0.263379, 0.144335, -0.101429, 0.416132, 0.278936, 0.064271, 0.303738, -0.013018, 0.107004, + 0.140486, -0.18865, -0.059963, 0.24514, 0.567512, 0.305494, 0.179546, 0.411758, 0.058492, + -0.189737, -0.027005, -0.247423, -0.182267, 0.303665, 0.243692, -0.565559, 0.34306, 0.27595, + -0.2129, 0.166755, 0.167118, -0.371613, -0.301697, 0.040279, 0.229062, 0.126323, 0.581057, + 0.170616, -0.092147, 0.060834, 0.08591, 0.112283, -0.067784, -0.233747, 0.010323, 0.150923, + 0.50234, 0.186744, 0.490663, 0.248166, -0.16921, -0.238082, -0.235143, 0.007037, -0.061828, + 0.447152, 0.298615, -0.505821, 0.514774, 0.174541, -0.167046, 0.243302, -0.031394, -0.020059, + -0.244555, 0.108346, 0.325447, -0.1191, 0.264666, -0.010744, -0.043035, 0.368722, 0.189178, + 0.375063, 0.169594, -0.359334, 0.139498, 0.135664, 0.324669, 0.199999, 0.596566, 0.271566, + 0.360833, 0.052911, 0.172012, 0.256477, -0.055057, 0.273314, -0.049321, -0.498871, 0.365166, + -0.027629, -0.333779, 0.421122, -0.215619, -0.290222, -0.26285, 0.086763, 0.007921, -0.115962, + 0.01945, 0.165464, -0.069138, 0.483404, 0.348259, 0.284397, -0.058179, -0.467251, 0.064938, + 0.200201, 0.140341, -0.023675, 0.46921, 0.018711, 0.094418, 0.323996, -0.164796, 0.143528, + 0.128539, 0.314002, 0.193093, -0.408349, 0.404489, -0.068766, -0.17263, 0.070798, 0.024941, + -0.056203, -0.016456, -0.007162, 0.203041, -0.45332, 0.168178, 0.290762, 0.056379, 0.290192, + -0.146111, 0.223596, -0.456303, -0.464713, 0.441504, 0.140481, 0.30307, -0.311661, 0.17537, + -0.371853, 0.305989, 0.526844, -0.06789, 0.103817, -0.114554, 0.288057, -0.229102, -0.22694, + 0.508379, -0.187937, -0.387468, 0.03298, 0.138601, -0.303291, 0.067297, -0.416513, 0.230885, + 0.019755, 0.186704, 0.305539, 0.082866, 0.089877, 0.031297, 0.305218, -0.240716, -0.40167, + 0.060992, 0.353401, 0.168725, -0.290592, 0.379783, -0.358661, 0.26009, 0.454045, -0.050198, + 0.451104, 0.162738, 0.021058, 0.187647, -0.120078, 0.361798, -0.052231, -0.213211, -0.293095, + 0.102459, -0.063529, 0.024125, -0.139835, 0.080975, -0.431138, 0.322228, -0.062921, 0.115575, + 0.28438, -0.110709, 0.281526, -0.250987, -0.245806, 0.389615, 0.156629, 0.13939, -0.290296, + -0.087886, -0.164902, 0.425831, 0.418664, 0.122727, 0.371738, 0.224188, -0.103616, 0.106496, + -0.10121, 0.019567, 0.03293, -0.271972, -0.594722, 0.246357, -0.178845, 0.061581, -0.153274, + 0.034355, -0.337428, 0.391191, -0.084321, -0.070206, 0.269503, -0.005666, 0.399188, -0.355207, + -0.291718, 0.259852, 0.081658, 0.168898, -0.261535, -0.098547, -0.19451, 0.155247, 0.085765, + -0.0929, 0.34053, 0.188839, -0.361076, 0.27683, 0.093072, 0.244181, 0.137738, -0.168939, + -0.743339, 0.41315, -0.142588, 0.170825, -0.365947, -0.038507, -0.165443, 0.539349, -0.085932, + 0.355233, 0.251643, -0.185771, 0.204705, -0.102946, 0.025585, -0.015782, 0.343053, 0.211291, + 0.047022, -0.212438, 0.006856, 0.429616, 0.067581, -0.201686, 0.2093, -0.333399, -0.249284, + 0.196931, -0.368167, 0.176886, 0.008568, -0.331122, -0.308458, -0.036242, -0.4219, -0.099083, + -0.349149, -0.311662, -0.01623, 0.088122, -0.495947, -0.087849, -0.023871, 0.248421, 0.432194, + -0.031122, -0.084685, -0.072334, 0.030963, -0.257205, -0.132998, -0.191327, 0.175109, 0.525975, + 0.09714, -0.455144, 0.124911, -0.192485, 0.005124, 0.030301, -0.567301, 0.06469, 0.023386, + -0.047058, -0.349304, -0.226439, -0.210569, -0.046956, -0.278476, -0.107998, 0.015941, -0.322291, + -0.408936, 0.114007, 0.071968, -0.032803, 0.203991, -0.159336, -0.284885, -0.050967, -0.03574, + -0.332716, -0.20613, 0.091626, -0.127435, 0.277472, 0.011804, -0.602997, 0.135291, -0.135615, + 0.327431, 0.174485, -0.588835, -0.017579, 0.159506, 0.037828, -0.435161, -0.374339, -0.250297, + 0.096731, -0.019932, -0.010482, 0.239222, -0.515874, -0.070898, 0.06562, -0.119148, -0.229402, + 0.186489, -0.062027, -0.413362, 0.006059, -0.075853, -0.171548, -0.258705, -0.141315, -0.109623, + 0.107549, 0.118703, -0.632407, 0.159707, -0.273088, -0.054443, 0.087539, -0.621905, 0.132847, + 0.015992, -0.200063, -0.331655, -0.357406, -0.49552, 0.176758, 0.236734, -0.016086, 0.200247, + -0.586119, -0.351987, 0.158616, -0.134601, 0.057614, 0.157472, -0.066966, -0.113185, -0.046857, + -0.242665, -0.251799, -0.109276, -0.07456, 0.158289, 0.225596, 0.343683, -0.610235, 0.534188, + 0.065657, -0.067524, -0.190868, -0.418076, 0.095141, 0.04613, -0.286542, -0.17684, -0.109265, + -0.402667, 0.062556, 0.215748, 0.320143, 0.444989, -0.740401, -0.306524, -0.098785, -0.309583, + 0.130526, 0.150464, -0.204877, 0.070533, -0.082666, -0.099901, 0.06533, 0.014768, -0.18931, + 0.10075, 0.129424, 0.07143, -0.670649, 0.606362, 0.422864, -0.325757, 0.006129, -0.268351, + -0.032171, -0.124051, -0.137972, -0.616401, -0.188398, -0.183267, -0.037361, 0.312702, 0.693715, + 0.32279, -0.775976, -0.188258, 0.137241, -0.146785, 0.018284, 0.045324, -0.328271, 0.16554, + -0.241679, -0.136765, 0.164259, 0.052845, 0.073005, -0.187751, -0.255281, -0.167845, -0.517103, + 0.179205, -0.164015, 0.034851, -0.082786, 0.077685, 0.204919, -0.03229, -0.06065, -0.182816, + -0.276265, -0.523711, -0.099999, 0.054084, 0.369015, 0.339621, -0.581504, 0.21811, -0.174929, + -0.291209, 0.587933, 0.600473, 0.152709, 0.013703, -0.170986, -0.242471, 0.475967, 0.386768, + -0.215269, 0.045369, -0.121904, -0.079815, -0.602064, 0.145247, -0.120429, -0.278618, -0.159848, + 0.322448, 0.317227, 0.026815, -0.128623, 0.053096, -0.28598, -0.561502, -0.011345, 0.213715, + 0.229431, 0.410475, -0.241247, -0.302162, -0.177763, -0.042194, 0.613233, 0.511852, -0.099594, + 0.412856, -0.383376, -0.164045, 0.087708, 0.413499, 0.115085, 0.269919, -0.209122, 0.194085, + -0.601515, -0.097045, 0.208005, -0.093159, 0.016599, 0.448965, 0.22588, -0.264405, 0.159162, + 0.076727, -0.396073, -0.510311, -0.075905, 0.114228, 0.136005, 0.121602, -0.095985, -0.012586, + -0.29029, -0.177892, 0.711341, 0.200544, 0.008129, 0.233383, -0.054327, -0.156707, 0.084003, + 0.305639, 0.065266, -0.04721, -0.346325, -0.149661, -0.397153, -0.459766, -0.027171, 0.137796, + 0.016561, 0.336847, 0.310352, -0.378196, 0.190958, 0.312501, -0.275585, -0.319748, -0.25218, + 0.134935, 0.315458, 0.149209, 0.164683, 0.044683, -0.106482, 0.075757, 0.325551, 0.471463, + -0.096498, -0.077281, -0.146119, -0.431471, -0.130539, 0.383085, 0.205136, -0.06771, -0.270322, + 0.023838, -0.398517, -0.572519, 0.094651, 0.03762, -0.236985, 0.142322, 0.372861, -0.140508, + -0.01919, 0.222662, -0.108417, -0.426344, -0.030224, 0.062987, 0.116213, 0.241536, 0.544385, + -0.256387, -0.290861, 0.269469, 0.153074, 0.320558, 0.008059, -0.154337, -0.181714, -0.40862, + -0.39567, 0.10034, 0.294388, 0.032173, -0.005015, 0.016248, -0.230811, -0.334973, 0.323228, + -0.165292, -0.048813, -0.098498, 0.325029, -0.012284, -0.143445, 0.0229, 0.058931, -0.139526, + 0.136551, 0.250699, 0.16891, 0.163707, 0.649223, -0.391384, -0.25493, 0.092289, 0.09451, + -0.04533, 0.050702, -0.104757, -0.287381, -0.505109, -0.439911, -0.066229, 0.242218, -0.102592, + 0.168524, 0.140698, -0.100175, -0.434839, 0.235197, -0.176242, -0.190796, 0.16212, 0.300183, + -0.318233, 0.003098, 0.099582, 0.196797, -0.001439, 0.265415, -0.014295, 0.083548, -0.309863, + 0.386631, -0.361046, -0.135085, -0.200214, 0.193575, -0.01603, 0.266751, -0.220085, 0.119747, + -0.275172, -0.188166, -0.00621, 0.232848, -0.498443, 0.287998, -0.350795, -0.085405, -0.352504, + -0.258415, -0.028414, -0.199049, 0.106787, 0.269349, 0.233604, -0.090437, -0.156268, 0.023165, + 0.19969, 0.294883, -0.24202, -0.16047, -0.22113, 0.40782, -0.295347, 0.029937, 0.049643, + -0.023653, -0.029675, 0.710886, 0.080642, -0.255996, -0.012466, -0.369883, -0.004556, 0.267047, + -0.196872, 0.201073, 0.197576, 0.026635, -0.229436, -0.110659, 0.03476, -0.013533, 0.129608, + 0.169198, 0.178191, 0.093972, -0.236274, 0.147479, 0.307861, 0.088435, -0.159729, -0.082842, + -0.363709, 0.305599, -0.416367, 0.150883, 0.103391, 0.148185, -0.007098, 0.597385, 0.134856, + -0.320864, 0.207825, -0.128496, -0.152822, 0.090701, -0.22315, 0.301554, 0.094413, 0.101375, + -0.364817, -0.383828, -0.134049, -0.179024, 0.192169, -0.022123, 0.07753, 0.287602, -0.081688, + 0.197972, 0.193745, 0.009015, -0.35667, 0.110632, -0.384751, 0.067878, -0.552791, 0.211924, + -0.202297, 0.153632, -0.033937, 0.546629, 0.250164, -0.279227, 0.471986, 0.141062, 0.096756, + 0.215658, -0.334762, 0.223104, 0.181183, 0.084822, -0.600593, -0.113499, 0.000475, -0.271837, + 0.36554, 0.125341, -0.116583, 0.265915, -0.018638, 0.059503, 0.211224, 0.032497, -0.52439, + -0.037562, -0.31788, -0.015239, -0.183902, 0.033512, 0.016986, 0.176675, 0.11714, 0.505182, + 0.186315, -0.149645, 0.630897, 0.027594, 0.286334, 0.417149, -0.38308, 0.241354, 0.164642, + 0.038425, -0.590263, 0.066045, 0.230002, -0.009768, 0.058634, -0.159403, -0.14829, 0.337086, + -0.002761, 0.019232, -0.07953, -0.412446, -0.278557, 0.27851, -0.14786, 0.179536, -0.168386, + 0.072547, 0.146869, 0.245391, 0.034059, 0.070562, 0.076803, -0.389358, 0.449186, 0.231032, + 0.179216, 0.329039, -0.216731, -0.00789, 0.18086, -0.09193, -0.610509, 0.058959, 0.283334, + 0.125621, 0.004525, -0.076344, -0.323923, 0.095051, -0.034352, -0.17525, -0.164607, -0.394658, + -0.273627, 0.382083, -0.000596, 0.204862, -0.022549, -0.185608, 0.03314, 0.182038, 0.297995, + -0.056804, -0.135812, -0.351286, 0.162569, 0.145272, 0.137439, 0.17848, -0.207059, -0.056765, + -0.138585, -0.115645, -0.705382, -0.262395, 0.239356, -0.035241, 0.003067, 0.294256, -0.088024, + 0.029336, 0.039946, -0.255161, -0.162804, -0.027734, -0.676927, 0.192104, -0.058894, 0.190009, + 0.150718, -0.297336, -0.303907, 0.360748, 0.135282, 0.186639, -0.218862, -0.311468, 0.035951, + -0.106535, 0.259227, 0.135551, -0.031582, -0.297706, 0.134354, -0.201512, -0.554166, 0.089926, + 0.593329, 0.154475, 0.029705, 0.188179, -0.457063, -0.26853, -0.033229, -0.374278, -0.309118, + -0.1267, -0.428715, 0.021966, 0.087501, 0.219375, 0.447802, -0.525401, 0.087721, 0.110153, + 0.519632, -0.021546, -0.474332, -0.051373, -0.066189, -0.270859, 0.301451, 0.018539, -0.161814, + -0.33541, -0.249981, -0.418568, -0.565436, -0.216504, 0.587468, 0.333096, 0.327583, 0.363796, + -0.036857, -0.210183, 0.012319, -0.069706, -0.042799, 0.108041, -0.635768, -0.043142, -0.30839, + 0.40979, 0.305155, -0.318671, -0.274748, 0.163166, 0.272137, -0.096523, -0.549638, -0.092381, + -0.110603, -0.318437, -0.025435, -0.535129, 0.451114, -0.691031, -0.165167, -0.067022, -0.449949, + 0.19553, 0.166565, 0.117119, 0.426517, 0.222066, -0.017334, -0.222947, 0.0261, 0.211171, + 0.055548, -0.027071, -0.437091, -0.034013, -0.043435, -0.016918, 0.302884, -0.237082, -0.256004, + 0.235618, 0.171577, -0.343123, -0.448432, 0.118967, 0.215594, -0.009797, 0.206417, -0.249753, + 0.102715, -0.500117, -0.064289, -0.028208, -0.390751, 0.161987, 0.306776, 0.105512, 0.048038, + 0.135125, 0.204092, -0.086459, 0.243651, 0.130172, 0.111042, 0.157818, 0.066668, -0.056333, + 0.125089, -0.200886, 0.432288, -0.225989, -0.213481, 0.2773, 0.046943, -0.445278, -0.082683, + 0.06678, 0.361807, 0.037567, -0.038116, -0.221097, -0.04623, -0.092014, -0.085259, 0.084526, + -0.225579, 0.357948, 0.185761, 0.403392, 0.299723, -0.042721, 0.10848, 0.281461, 0.615827, + 0.223267, 0.214801, 0.097295, 0.298225, -0.228619, 0.180813, 0.31618, 0.191828, -0.348268, + -0.178863, 0.388148, -0.147832, -0.261914, 0.058863, 0.035097, 0.534957, 0.272439, -0.227428, + -0.363294, 0.342476, -0.114386, -0.163303, 0.269287, -0.163222, 0.138097, -0.039745, 0.054217, + 0.189274, 0.050757, 0.344824, 0.329501, 0.498776, 0.035094, 0.45328, 0.131019, 0.427009, + -0.340226, 0.174372, -0.006873, 0.055241, -0.289223, -0.186669, 0.406101, 0.019129, -0.080234, + -0.159976, 0.031776, 0.446776, 0.184821, -0.113984, -0.285308, 0.299347, 0.105514, -0.137919, + 0.232541, -0.051069, 0.099108, 0.230953, -0.002557, -0.08049, -0.105254, 0.501174, 0.294735, + 0.502092, -0.139183, 0.222202, 0.181689, 0.570264, -0.113701, 0.118083, 0.011904, 0.084855, + -0.283349, 0.012252, 0.388346, 0.11235, -0.245043, 0.016744, -0.066437, 0.47567, 0.190007, + -0.173121, -0.159562, 0.076498, 0.142767, -0.034233, -0.091233, 0.274574, 0.227097, 0.07562, + -0.214168, -0.336701, -0.353411, 0.35902, 0.489872, 0.373684, 0.067149, 0.072694, 0.00923, + 0.073175, 0.159293, 0.071515, 0.325713, -0.250667, -0.556942, 0.257571, 0.391763, -0.047258, + -0.329666, -0.130605, -0.082368, 0.557158, -0.008923, 0.080058, -0.449778, 0.13253, 0.023535, + -0.142721, 0.046649, 0.312755, 0.484499, -0.32129, -0.35778, -0.062053, -0.507381, 0.226855, + 0.541614, 0.36216, 0.369574, 0.147832, -0.104581, -0.209214, 0.293297, 0.061433, 0.438684, + -0.434382, -0.594308, 0.38848, 0.509057, -0.21547, -0.159572, -0.558727, 0.158664, 0.244338, + -0.168642, 0.498385, -0.384549, 0.377117, -0.328441, -0.324854, -0.007544, 0.468649, 0.255108, + -0.555474, -0.581467, -0.167534, -0.154816, 0.508942, 0.389907, 0.000967, 0.197001, 0.079592, + -0.179723, -0.095365, 0.103708, 0.123562, 0.106535, -0.489465, -0.583462, 0.379952, 0.199129, + 0.038762, -0.192763, -0.648056, 0.11394, 0.205035, -0.185172, 0.589097, -0.35731, 0.232384, + -0.250782, -0.374836, -0.162296, 0.307271, 0.275692, -0.510434, -0.404768, -0.515222, -0.460793, + 0.309518, 0.055174, 0.358509, 0.256151, -0.077682, -0.25812, -0.182604, 0.326243, 0.298454, + 0.25816, -0.318891, -0.440878, 0.135381, 0.337925, -0.258424, -0.29988, -0.640589, 0.297361, + -0.154887, -0.231835, 0.470626, -0.199105, 0.009981, -0.62405, -0.230323, -0.199047, 0.227281, + 0.023733, -0.340239, -0.266112, -0.651919, -0.100446, 0.070206, -0.047297, 0.33896, 0.15765, + 0.095832, -0.305965, -0.148703, -0.001982, 0.3344, -0.005828, -0.240408, -0.449521, -0.036267, + 0.102862, -0.362773, -0.083636, -0.469327, 0.127742, -0.025632, -0.30566, 0.260003, -0.325924, + 0.106173, -0.675249, -0.198613, -0.151782, 0.134981, -0.08061, -0.366296, -0.047495, -0.589019, + 0.095493, 0.08024, 0.215498, 0.238636, 0.295738, 0.068897, -0.217618, -0.003203, -0.119942, + 0.240576, -0.143833, -0.005868, -0.365686, 0.067353, -0.115402, -0.310739, 0.145265, -0.118976, + -0.07378, 0.041707, -0.270355, 0.333106, 0.011813, 0.078992, -0.575155, 0.077294, -0.169306, + 0.124286, -0.471773, -0.395719, -0.064835, -0.673814, 0.439893, -0.070479, 0.192087, -0.148527, + 0.26577, 0.025575, -0.563109, 0.112921, -0.319954, 0.148596, -0.213094, -0.084788, -0.419665, + -0.208376, -0.322712, -0.347088, 0.180907, 0.115901, -0.205086, 0.111787, -0.135273, 0.343608, + -0.091995, -0.213777, -0.494004, 0.21294, -0.308834, 0.102984, -0.099923, -0.306889, 0.020303, + -0.372097, 0.071112, -0.140235, 0.306551, -0.073872, 0.358751, 0.155746, -0.47592, -0.069102, + 0.043205, 0.172035, -0.328541, 0.045206, -0.493289, -0.213445, -0.063533, -0.302793, -0.123962, + -0.027616, -0.557757, 0.433851, -0.038812, -0.014357, 0.12854, 0.001701, -0.555033, 0.441362, + -0.343564, 0.220214, -0.231301, -0.524356, 0.233013, -0.488398, 0.370219, -0.354629, 0.399766, + -0.232502, 0.205984, -0.122179, -0.512053, 0.007606, 0.143769, -0.128522, -0.011098, -0.072208, + -0.33491, -0.002281, -0.246085, -0.402421, -0.258321, 0.421224, -0.437196, 0.167419, -0.099273, + 0.061166, -0.079464, -0.179607, -0.364305, 0.435267, -0.376311, 0.204873, -0.173973, -0.503972, + 0.303838, -0.144079, 0.249707, -0.330576, 0.274017, -0.364214, 0.066979, 0.014267, -0.463842, + 0.225208, 0.341304, -0.078397, 0.008172, 0.063502, -0.148413, -0.082187, -0.402567, -0.371113, + -0.316364, 0.336461, -0.284817, 0.082176, 0.124265, 0.063573, 0.125288, -0.420934, -0.070688, + 0.277763, -0.470638, 0.066492, -0.245608, -0.384145, 0.055016, 0.050167, 0.100757, -0.082455, + 0.425961, -0.356187, 0.240583, -0.026885, -0.310106, 0.030016, 0.312295, -0.136173, -0.001753, + 0.284466, -0.200487, 0.105394, -0.051838, -0.368831, -0.448925, 0.113243, -0.420199, 0.277647, + 0.218311, 0.198285, 0.208749, -0.026952, -0.06914, 0.164983, -0.587647, 0.139445, -0.155553, + -0.347326, 0.264171, 0.071669, -0.123383, -0.244117, 0.025853, -0.268773, 0.165049, -0.122055, + -0.334014, -0.020365, 0.398867, 0.306928, -0.070706, 0.155027, -0.008274, 0.206266, -0.208609, + -0.474766, -0.266181, 0.005873, -0.161696, -0.061443, 0.249477, -0.151265, 0.249667, 0.168777, + -0.13597, 0.148053, -0.407844, -0.025483, -0.419244, -0.293417, -0.099902, -0.095506, -0.142424, + -0.487684, 0.142619, -0.176719, -0.052248, -0.12326, -0.080593, -0.089799, 0.122331, 0.283067, + 0.397071, 0.26628, 0.279345, 0.1539, -0.143322, -0.161532, -0.294913, -0.052262, 0.076601, + -0.100891, 0.153936, -0.066326, 0.196572, 0.224942, -0.11224, -0.198233, -0.314488, -0.183438, + -0.326229, -0.214661, -0.126036, 0.087623, -0.352581, -0.501439, 0.361928, -0.148247, -0.048, + -0.129229, 0.165287, 0.126346, -0.047477, 0.366257, 0.198991, 0.149163, 0.358506, 0.095599, + -0.319534, -0.117951, -0.115894, -0.244676, 0.320994, 0.3712, 0.242206, 0.316274, 0.526547, + 0.082631, 0.11043, -0.426806, -0.165333, -0.294514, -0.277429, 0.074715, -0.370794, -0.069728, + -0.426161, -0.299779, 0.563251, 0.154913, -0.115249, -0.381599, 0.137757, -0.342855, -0.570637, + 0.427728, 0.326165, 0.258402, 0.435169, -0.003262, 0.093368, 0.42701, -0.384333, -0.22925, + 0.24267, 0.193752, 0.274698, -0.03336, 0.331167, 0.254568, -0.386906, -0.399029, -0.209386, + -0.517603, -0.098752, 0.034337, -0.381659, -0.294572, -0.236569, -0.357183, -0.079818, -0.067239, + 0.069275, -0.192305, -0.060582, -0.505275, -0.369969, 0.417137, 0.33384, 0.020068, 0.205557, + -0.050091, 0.105039, -0.012734, -0.110821, -0.231847, 0.337346, 0.0467, -0.001889, -0.263038, + 0.179462, 0.130857, -0.196432, -0.244076, -0.376676, -0.435427, -0.053844, -0.182568, -0.073871, + -0.139023, -0.534547, -0.062176, 0.012205, 0.005314, 0.288658, -0.435706, 0.070971, -0.189781, + -0.357467, 0.003619, 0.530658, -0.399182, 0.074619, -0.349248, -0.070013, 0.249049, -0.64763, + -0.002714, 0.288736, 0.209299, 0.033954, -0.187314, 0.374614, -0.337703, 0.148923, -0.164192, + -0.127779, -0.377384, -0.147309, -0.042939, -0.070769, -0.065598, -0.178509, 0.082759, -0.140596, + -0.130341, 0.042393, -0.471188, -0.069862, -0.182046, -0.415822, -0.123403, 0.135492, -0.442296, + 0.150327, -0.252848, -0.193982, 0.25536, -0.45268, 0.043223, 0.39624, 0.151232, 0.064439, + -0.02504, 0.03627, -0.623226, 0.295331, 0.152215, -0.270801, -0.215457, 0.054433, -0.21983, + -0.220785, 0.036287, -0.307295, 0.047169, -0.325219, -0.176705, 0.24818, -0.171564, 0.066651, + -0.193695, -0.274642, -0.137, 0.340017, -0.58508, -0.033625, -0.30696, -0.135837, -0.015964, + -0.500732, -0.02889, 0.219697, 0.009121, 0.092221, -0.382318, 0.075831, -0.562133, 0.163897, + 0.227892, 0.277477, 0.143346, -0.036219, -0.144734, -0.03729, 0.173817, -0.317854, 0.083628, + -0.243203, -0.313435, 0.0136, -0.047883, 0.086778, -0.111657, -0.270739, -0.240143, 0.163314, + -0.430896, -0.01356, 0.009776, -0.248837, -0.119989, -0.293768, -0.15942, 0.215497, -0.250408, + -0.01539, 0.100017, -0.333363, -0.544918, 0.319552, 0.386972, 0.325691, 0.063126, -0.112599, + -0.109789, 0.07467, 0.138569, -0.427535, 0.010371, -0.104172, -0.372359, -0.159823, 0.089177, + -0.158849, 0.018225, -0.083811, -0.202398, 0.103325, -0.349915, -0.092988, 0.161803, -0.351096, + 0.040296, -0.124604, 0.005123, 0.220214, -0.331583, -0.094962, 0.045391, -0.540005, -0.532801, + 0.224213, 0.541802, 0.241716, 0.002833, -0.000807, -0.089438, -0.155545, 0.004591, -0.016562, + -0.186221, -0.28629, -0.231096, -0.564452, 0.438971, 0.114634, -0.103015, -0.303026, -0.339368, + -0.181988, -0.195681, 0.034195, -0.238988, -0.578988, 0.200059, 0.35737, -0.215348, -0.205818, + -0.075439, -0.010244, -0.2834, -0.617218, -0.15859, 0.187121, 0.610588, 0.057532, 0.007153, + 0.113817, 0.051011, -0.274893, -0.03853, -0.245326, -0.073095, -0.110247, -0.155993, -0.261209, + 0.823739, 0.130254, -0.082809, -0.10263, -0.199015, 0.195892, 0.136938, -0.02455, 0.006433, + -0.279292, 0.456632, 0.614184, 0.094393, -0.359208, -0.263472, 0.020189, -0.483192, -0.40939, + 0.250582, 0.204687, 0.45113, 0.171574, -0.013673, 0.006472, 0.199908, 0.128038, 0.133688, + -0.082711, 0.086046, 0.036185, -0.052745, -0.293098, 0.762781, -0.009768, -0.356598, -0.102926, + -0.256333, 0.176484, -0.053476, 0.115142, 0.186936, 0.090881, 0.457698, 0.265487, -0.098672, + -0.462072, -0.265471, -0.196032, -0.052173, -0.407633, 0.401925, 0.186919, 0.040717, -0.042614, + -0.086366, -0.445722, -0.247654, -0.007415, -0.046843, 0.035455, 0.069191, -0.434982, -0.292714, + -0.133445, 0.733522, -0.114983, -0.141779, 0.082062, -0.402389, -0.065339, -0.13271, 0.126346, + 0.05656, -0.267144, 0.758272, 0.61707, -0.015207, -0.435043, -0.053719, -0.279475, -0.306838, + -0.335324, 0.433246, 0.317719, 0.325098, 0.009086, 0.107527, -0.252847, -0.087244, -0.156922, + -0.390287, 0.438513, 0.287802, -0.183734, -0.332377, 0.304976, 0.646937, -0.363538, -0.005309, + -0.370206, -0.277502, -0.065256, -0.035837, 0.404133, 0.357253, -0.308444, 0.701311, 0.618045, + 0.254176, 0.016899, -0.315947, -0.241004, -0.056882, -0.228605, 0.121768, 0.296468, 0.111184, + 0.194581, 0.086927, -0.38935, 0.037359, -0.057019, 0.022765, 0.261841, 0.138053, -0.037487, + -0.165208, 0.003774, 0.583367, -0.222397, -0.205217, -0.206022, -0.041463, -0.021228, -0.168334, + 0.240286, 0.36212, 0.155626, 0.713918, 0.403235, -0.111874, -0.368883, -0.086038, -0.322307, + 0.00699, 0.110071, 0.240875, -0.055414, -0.021368, -0.048796, -0.05562, -0.377993, 0.087299, + 0.139849, -0.444381, 0.508976, 0.294045, 0.06063, -0.068148, -0.086409, 0.527683, -0.552996, + -0.191937, -0.580665, -0.08159, -0.203548, -0.244869, 0.240589, 0.211111, -0.37625, 0.298539, + 0.35053, 0.165061, -0.112838, 0.042981, -0.470427, 0.06743, 0.117822, -0.113387, -0.171124, + -0.03409, -0.156094, 0.095892, -0.401588, -0.027153, 0.048842, -0.423527, 0.226464, 0.487928, + -0.167963, -0.064568, 0.050606, 0.616987, -0.503031, -0.256955, -0.452183, -0.045034, -0.246421, + -0.167276, 0.161072, 0.10312, -0.546472, 0.017856, 0.331205, 0.259272, -0.026453, 0.077288, + -0.394875, -0.076707, 0.252038, -0.033074, -0.19906, 0.192216, 0.239855, -0.193972, 0.062381, + 0.221398, 0.177997, -0.165828, -0.274971, 0.170247, -0.159527, 0.313229, -0.442057, 0.636924, + -0.269963, -0.09907, -0.295049, 0.119413, -0.063479, -0.519505, 0.109364, 0.220782, -0.450344, + 0.025398, -0.359373, -0.099388, -0.44443, -0.114088, 0.030275, -0.023946, 0.513577, 0.223157, + -0.644222, 0.418414, 0.055845, -0.241701, 0.001947, 0.205007, 0.230569, 0.080555, -0.260827, + 0.048607, -0.348293, 0.119904, -0.495602, 0.68808, -0.02532, 0.030768, -0.021434, -0.097712, + 0.054958, -0.55121, 0.08049, 0.019089, -0.358399, -0.111751, -0.370095, 0.028203, -0.520606, + -0.033038, 0.083147, 0.177012, 0.527682, 0.457478, -0.738273, 0.272166, -0.209951, -0.184117, + -0.002685, 0.189684, 0.297946, 0.09994, -0.167456, -0.100438, -0.272654, 0.001605, -0.330292, + 0.531711, -0.099025, 0.148837, 0.1293, -0.160941, 0.281469, -0.670906, 0.00798, 0.300455, + -0.514446, -0.093008, -0.35633, -0.005598, -0.429303, -0.076308, 0.119258, 0.12738, 0.325884, + 0.449419, -0.532705, 0.162936, 0.092425, -0.156279, 0.040517, -0.060488, 0.207067, 0.401855, + -0.065465, -0.29199, -0.255401, -0.11298, -0.18828, 0.530974, 0.204809, 0.44837, 0.053404, + -0.183964, 0.364367, -0.461137, -0.046469, 0.36216, -0.411155, -0.107029, -0.499736, -0.19275, + -0.367672, -0.132627, 0.157702, 0.322422, 0.052108, 0.612186, -0.676391, 0.231112, -0.161569, + -0.354685, -0.120814, -0.051022, 0.055295, 0.268462, 0.022852, -0.480157, 0.1399, -0.139464, + -0.150294, 0.465308, 0.093236, 0.677387, 0.037377, -0.091334, 0.413655, -0.307183, 0.034434, + 0.561897, -0.132246, 0.202288, -0.23461, -0.373564, -0.221917, -0.139857, -0.04551, 0.355245, + 0.005048, 0.522473, -0.461506, 0.084679, -0.404205, -0.108037, -0.317911, -0.312091, -0.311584, + 0.046622, 0.181506, -0.542877, 0.42202, -0.219703, -0.095773, 0.298463, -0.06047, 0.596047, + -0.058746, 0.07931, 0.052081, -0.046733, 0.21117, 0.295487, 0.120993, -0.081759, -0.171792, + -0.227737, 0.047989, 0.064196, -0.004995, 0.100288, -0.068674, 0.690923, -0.428403, -0.022567, + -0.344239, 0.084864, -0.335823, -0.257358, -0.449614, 0.101946, -0.025599, -0.280696, 0.6013, + -0.358544, -0.167251, 0.326087, -0.188672, 0.229771, -0.051325, 0.121767, 0.140565, 0.150647, + -0.125105, 0.252664, 0.100731, -0.183154, -0.104533, -0.37406, -0.069111, 0.237085, -0.339355, + -0.10061, -0.291767, 0.562165, -0.412574, 0.232823, -0.191427, 0.308395, -0.265459, -0.50171, + -0.549026, -0.097711, 0.100522, -0.176506, 0.477253, -0.141002, -0.260454, 0.303804, -0.220188, + 0.133611, -0.088773, 0.013439, -0.257452, 0.301787, 0.11636, 0.032141, 0.22404, -0.573965, + -0.326307, 0.131199, 0.058798, 0.323931, -0.078422, -0.201087, -0.373132, 0.660834, -0.579998, + 0.05903, -0.138902, 0.337217, 0.008482, -0.308749, -0.642478, 0.028897, -0.116432, -0.021123, + 0.100549, -0.073434, -0.285776, 0.434719, -0.383618, -0.155769, 0.467459, -0.375716, -0.284366, + 0.18743, 0.184005, -0.050053, 0.555328, -0.310323, -0.217962, 0.039872, -0.045967, 0.420713, + -0.174571, -0.553991, -0.309825, 0.259318, -0.572044, 0.082713, -0.006057, 0.58294, -0.290465, + -0.393659, -0.411947, 0.054428, 0.017378, 0.16921, -0.002254, -0.265068, -0.237233, 0.199435, + -0.558481, -0.259277, 0.302886, -0.401405, -0.042031, 0.280478, 0.0539, -0.274183, 0.442065, + -0.655876, -0.097928, 0.235778, -0.268821, 0.537858, -0.156072, -0.427783, -0.556476, 0.271084, + -0.569551, 0.228601, 0.37813, 0.516417, -0.150465, -0.073347, -0.110533, 0.066043, -0.086103, + 0.191636, -0.168797, 0.003903, 0.11342, -0.024373, -0.408338, -0.26256, 0.353168, -0.40639, + 0.16284, 0.177158, -0.18627, -0.403549, 0.211821, -0.409309, 0.249147, -0.006678, -0.198561, + 0.299222, 0.056978, -0.216101, -0.471634, 0.194539, -0.646949, 0.219885, 0.65148, 0.508941, + 0.112294, 0.155539, -0.21281, -0.121897, 0.169234, -0.133956, -0.453246, 0.37218, 0.299993, + 0.112165, -0.457964, -0.067079, 0.0595, -0.515145, 0.219445, 0.250302, 0.119899, -0.072992, + 0.437249, -0.148753, -0.02268, 0.067081, -0.140015, 0.032238, -0.007675, -0.22575, -0.2184, + -0.152238, -0.404963, 0.089585, 0.585309, 0.240757, -0.05301, 0.250152, 0.0718, -0.234422, + 0.175462, -0.056465, 0.0088, 0.001214, 0.14978, -0.00989, -0.602528, 0.275622, 0.022185, + -0.278985, 0.436436, 0.074541, -0.135132, -0.327623, 0.043623, -0.187681, -0.165898, -0.14121, + 0.041488, 0.252249, 0.049953, -0.431198, -0.510398, 0.182836, -0.759064, 0.100512, 0.379791, + -0.067784, 0.212788, 0.374798, 0.320781, -0.464265, -0.191537, -0.330721, 0.120183, -0.045674, + 0.415084, -0.250917, -0.719456, 0.310723, -0.363063, 0.19143, 0.448662, 0.173081, 0.180748, + -0.053997, -0.066543, -0.142134, -0.312189, -0.50961, 0.275192, 0.183668, -0.244007, 0.014869, + 0.014616, 0.234026, -0.163165, -0.05929, 0.274814, 0.225372, 0.364875, 0.621519, 0.140139, + -0.638344, -0.089692, -0.086035, 0.128555, 0.066482, 0.114187, -0.273299, -0.452232, 0.290839, + -0.432912, -0.14199, 0.416667, 0.090674, 0.196165, 0.0773, -0.02631, 0.145588, -0.279255, + -0.204893, 0.379434, -0.118919, -0.212934, -0.126896, 0.114395, -0.037545, -0.178811, -0.201627, + 0.238837, 0.29255, 0.435566, 0.604574, 0.009304, -0.544438, -0.032256, -0.120134, 0.081195, + -0.022076, -0.089646, -0.144558, -0.469519, 0.326074, -0.63334, -0.211996, 0.390195, 0.143652, + 0.47286, 0.113175, 0.105751, 0.171652, -0.415398, -0.219608, 0.228377, -0.251138, -0.19081, + -0.050967, 0.39208, -0.225345, -0.06151, -0.187603, 0.240686, 0.223705, 0.36104, 0.304024, + 0.081696, -0.210852, 0.12276, -0.102084, 0.271945, -0.401213, -0.223819, -0.043606, -0.312612, + 0.383426, -0.53814, 0.029511, 0.269536, 0.278215, 0.130201, 0.108968, -0.138839, 0.025066, + -0.412631, -0.350411, -0.048117, 0.220557, -0.016358, 0.021982, -0.013091, -0.014362, -0.319572, + -0.485745, -0.04586, 9.4e-05, 0.338483, 0.152547, -0.12943, 0.214243, 0.133173, -0.34627, + 0.110634, -0.299132, -0.112895, -0.370497, -0.105162, -0.055852, -0.580423, -0.239931, -0.176806, + 0.16151, 0.497572, -0.247718, -0.120913, 0.289729, -0.051919, -0.093496, -0.216731, 0.184124, + 0.206807, 0.487461, 0.063815, -0.169943, 0.088089, -0.290399, -0.324846, 0.097233, 0.417869, + -0.12469, -0.209927, 0.082355, 0.30171, -0.139767, 0.332946, -0.344083, -0.558054, -0.132866, + 0.26485, -0.275305, -0.305655, -0.599169, 0.006664, 0.259264, -0.059368, -0.255244, 0.123724, + 0.444844, 0.099336, -0.194063, -0.012037, -0.215953, 0.208767, 0.078125, -0.314801, -0.346947, + 0.293471, -0.559825, -0.0025, 0.315414, 0.139962, -0.119333, -0.412342, -0.10907, 0.051476, + -0.221101, -0.025647, -0.184305, -0.206403, 0.085688, -0.139377, -0.064177, -0.255242, -0.205728, + 0.107463, -0.036322, -0.168834, -0.044538, 0.099032, 0.185901, -0.197996, -0.119253, -0.234581, + 0.034355, 0.116733, 0.356542, -0.142581, -0.322129, -0.172698, -0.03769, -0.387943, -0.006331, + 0.187246, -0.204632, -0.096019, -0.035957, -0.101644, -0.362977, -0.025931, 0.03343, -0.171021, + -0.166453, 0.277734, -0.181963, 0.011783, -0.169056, 0.251821, 0.072624, -0.167658, 0.047288, + 0.270298, 0.228263, -0.000266, -0.084116, -0.253367, 0.241845, 0.070933, 0.375342, -0.298527, + -0.012433, 0.236903, -0.227137, -0.39413, -0.022134, 0.059491, -0.186103, 0.2726, 0.096934, + -0.159151, -0.467651, -0.256464, 0.263121, 0.077906, -0.136601, -0.045289, -0.088559, 0.065985, + -0.073727, 0.165062, -0.002738, 0.140492, 0.032245, 0.34561, 0.012862, -0.282345, -0.005184, + -0.048408, 0.238396, 0.123989, 0.510111, -0.183639, 0.108797, 0.083229, 0.085979, -0.486957, + 0.060494, -0.08569, -0.475468, 0.231821, -0.157931, -0.205806, -0.23041, -0.040841, 0.038586, + 0.178034, -0.172164, 0.05468, 0.102233, 0.354611, -0.143958, 0.241845, -0.076962, -0.255491, + -0.093839, 0.515776, -0.034799, -0.093043, -0.284178, 0.308241, 0.200659, 0.213113, 0.505322, + -0.298567, 0.058332, -0.212353, 0.098394, -0.306365, 0.170917, -0.105195, -0.451441, 0.167888, + -0.019224, -0.072458, -0.193818, -0.113708, 0.302987, 0.355444, -0.304793, -0.13302, 0.19062, + 0.268381, -0.06199, 0.008817, -0.093749, 0.031333, -0.018718, 0.396155, -0.058358, -0.288476, + 0.036227, 0.229769, 0.261823, 0.21544, 0.538996, -0.088048, 0.116555, -0.255626, 0.164966, + -0.313584, 0.059986, 0.200963, -0.574099, 0.131562, 0.293688, -0.053825, -0.019377, -0.010978, + 0.557265, 0.379008, -0.438624, -0.037684, 0.026399, 0.120113, -0.044621, -0.090913, -0.042021, + 0.251818, 0.135056, 0.507026, 0.104556, -0.215491, 0.162225, 0.366211, 0.09788, 0.243017, + 0.324091, 0.019386, 0.004443, -0.006053, 0.132415, 0.120128, 0.023437, 0.028285, -0.670625, + -0.429745, -0.114325, 0.011371, 0.160868, -0.026077, 0.512047, 0.373145, -0.528683, -0.307752, + 0.013827, 0.20618, -0.23456, -0.261585, 0.072704, 0.003267, -0.031308, 0.53388, -0.034956, + 0.021564, -0.061191, 0.414828, -0.143214, -0.14966, -0.085439, 0.24179, 0.022689, 0.030395, + 0.169853, 0.30387, -0.118662, -0.018323, -0.338837, -0.300247, -0.347329, -0.00375, 0.20123, + -0.076854, 0.455449, 0.150981, -0.35308, -0.017924, 0.053746, 0.099661, -0.35881, -0.154573, + 0.251928, 0.079264, 0.066044, 0.459876, -0.110222, 0.188008, -0.332672, 0.209615, 0.076819, + -0.366556, -0.263845, 0.190815, -0.093803, -0.130196, 0.209186, 0.566966, 0.137636, 0.144053, + -0.171644, -0.322087, -0.101639, -0.182185, 0.303063, 0.051029, 0.614654, 0.23184, -0.390444, + -0.279088, 0.099106, -0.132273, -0.017582, -0.251536, 0.015856, 0.060828, 0.505038, 0.36707, + 0.144532, 0.18322, 0.049819, 0.209321, -0.229377, -0.355554, -0.181233, 0.330752, -0.414537, + 0.0147, 0.239284, 0.525444, -0.028395, -0.261362, -0.067639, -0.215633, -0.140984, -0.022496, + -0.201598, -0.252748, 0.339363, 0.381016, -0.473114, -0.312364, -0.199597, -0.24988, -0.131146, + -0.1718, -0.185296, -0.025139, 0.173327, 0.520933, -0.226323, -0.006094, -0.195708, -0.121359, + -0.238548, -0.237424, -0.344415, 0.064131, -0.023666, 0.076376, 0.53185, 0.567789, 0.126549, + -0.442782, 0.053517, 0.008361, -0.101539, 0.102677, -0.418649, -0.02717, 0.154498, 0.351367, + -0.405745, -0.172496, -0.06714, -0.169795, -0.217289, -0.189244, -0.221393, -0.000708, 0.069504, + 0.370888, -0.367995, -0.078214, -0.079778, -0.076378, -0.319649, -0.255475, -0.398275, -0.079638, + -0.064441, -0.051006, 0.43258, 0.578645, 0.265554, -0.357032, 0.009136, 0.193744, -0.074173, + 0.037992, -0.462618, 0.088401, -0.022253, 0.455429, -0.394213, -0.156466, -0.138525, -0.165065, + -0.25025, -0.006182, -0.35551, -0.1251, 0.057517, 0.331604, -0.147355, -0.210228, -0.010524, + -0.126326, -0.337269, -0.033523, -0.325983, -0.036045, -0.25448, -0.175254, 0.386149, 0.56954, + 0.439997, -0.243405, -0.192762, 0.261299, 0.044773, -0.251946, -0.545498, 0.235125, -0.150548, + 0.278319, -0.545096, -0.317964, -0.167947, -0.003631, -0.36678, 0.305845, -0.316743, -0.039491, + -0.120271, 0.445561, 0.038853, -0.426232, 0.133784, 0.042596, -0.488683, 0.297632, -0.243897, + 0.002332, -0.269789, -0.306968, 0.448735, 0.454567, 0.351605, 0.063789, -0.351322, 0.055251, + 0.20691, -0.105629, -0.55684, 0.165549, -0.329504, 0.154416, -0.478366, -0.344813, -0.348072, + -0.19736, -0.484199, 0.449546, -0.197504, 0.424242, -0.186155, 0.307884, 0.057103, -0.473878, + 0.38945, 0.179909, -0.449212, 0.255013, -0.446238, -0.192233, -0.178162, -0.14438, 0.694445, + 0.418106, 0.241043, 0.214488, -0.445358, 0.049623, 0.145317, -0.230743, -0.36517, 0.278177, + -0.150571, 0.119533, -0.292403, -0.496964, -0.172726, 0.003816, -0.573893, 0.40538, 0.12787, + 0.28817, 0.042939, 0.022304, 0.306527, -0.204632, 0.469794, 0.163394, -0.247069, 0.058284, + -0.37048, -0.035873, -0.431139, -0.160753, 0.646325, 0.61311, -0.168061, 0.263297, 0.055871, + 0.253828, -0.094823, 0.20364, 0.078211, 0.179843, -0.205147, -0.211385, 0.191134, -0.320331, + -0.208656, -0.000778, -0.555768, 0.455533, 0.220364, 0.170135, -0.020996, 0.163696, 0.664654, + 0.12726, 0.554337, 0.146729, 0.14974, -0.018907, -0.449128, 0.252836, -0.214011, -0.176005, + 0.417321, 0.295051, -0.38314, 0.541155, -0.139284, -0.223709, 0.049188, 0.517877, 0.014658, + -0.052802, -0.270088, 0.048899, 0.236405, -0.524134, -0.213653, -0.351839, -0.247379, 0.006279, + 0.208438, 0.259509, 0.227206, -0.265924, 0.5028, 0.570213, 0.643172, 0.174122, 0.184309, + -0.455907, -0.461692, -0.126477, -0.234866, 0.260509, 0.625528, 0.331024, -0.323686, 0.358598, + 0.068088, -0.151977, -0.090385, 0.263763, 0.161164, 0.10832, -0.163753, -0.078216, 0.430037, + -0.500351, -0.186628, -0.272263, -0.523806, 0.145226, 0.201333, -0.030106, 0.136644, -0.100784, + 0.433268, 0.632852, 0.368181, 0.019491, 0.262095, -0.424384, -0.451561, -0.048971, -0.235592, + 0.144184, 0.35005, 0.494239, -0.334607, 0.186428, 0.433241, -0.140427, -0.020555, 0.173625, + 0.247541, 0.245026, -0.077551, -0.299883, 0.534507, -0.372989, -0.034198, 0.002474, -0.668184, + 0.224342, 0.083843, -0.340535, -0.104361, 0.021536, 0.441542, 0.424105, 0.161758, 0.029823, + 0.230885, -0.352769, -0.465452, 0.146062, -0.358895, 0.144692, 0.182058, 0.223448, -0.343084, + -0.040721, 0.376933, -0.008092, 0.293409, 0.308669, 0.048096, 0.150365, -0.095286, -0.599711, + 0.315329, -0.379125, 0.154137, 0.088417, -0.550738, 0.142737, -0.108078, -0.171311, -0.146399, + 0.126814, 0.419173, 0.229452, 0.093071, 0.350697, 0.006044, -0.062931, -0.63792, -0.082123, + -0.466071, 0.107013, -0.116671, 0.013541, -0.183617, -0.093432, -0.047407, 0.11748, 0.211643, + 0.050159, -0.156643, 0.159511, -0.068115, -0.647238, -0.003942, -0.528136, 0.331942, 0.103666, + -0.374, 0.006509, -0.052379, -0.20096, 0.010502, 0.130248, 0.410594, 0.201814, -0.089797, + 0.45182, -0.020467, -0.028501, -0.641373, -0.14353, -0.538975, -0.017269, -0.257301, -0.010846, + -0.27721, -0.047315, -0.301108, 0.238017, 0.035274, -0.000508, -0.120228, 0.178705, -0.142896, + -0.431293, -0.097494, -0.205936, -0.038103, 0.100237, -0.308515, 0.266752, 0.00851, -0.156521, + 0.160304, 0.189281, 0.424462, 0.301343, -0.171653, 0.39179, -0.330016, 0.049922, -0.822737, + -0.115903, -0.313117, -0.366332, -0.469251, 0.148977, -0.089654, -0.140017, -0.147514, 0.21514, + 0.218477, 0.263895, -0.09614, -0.04842, 0.240353, -0.66372, -0.136893, -0.239676, 0.367098, + 0.211762, -0.30828, 0.104622, 0.094347, -0.157983, -0.162964, 0.206801, 0.529214, 0.150983, + 0.078117, 0.314399, -0.333825, -0.093679, -0.771805, -0.080568, -0.429164, 0.109373, -0.262148, + 0.217082, -0.18613, 0.064454, -0.404681, 0.363258, -0.18133, 0.147388, 0.117482, -0.111544, + 0.218895, -0.492581, -0.354322, -0.154256, 0.249848, -0.020282, -0.136297, 0.302838, 0.30601, + -0.039874, 0.026323, 0.568999, 0.428288, 0.215075, 0.019871, 0.251989, -0.216047, -0.215322, + -0.598923, -0.158708, -0.057161, -0.282075, -0.239453, 0.234908, 0.214914, 0.175875, -0.620055, + 0.192619, -0.258279, 0.181837, -0.088565, -0.050164, 0.275647, -0.516226, 0.001511, -0.184032, + 0.322572, -0.257258, -0.088152, 0.339802, 0.145818, 0.269662, 0.0121, 0.454544, 0.511894, + 0.255317, 0.159515, 0.202043, -0.029365, -0.215116, -0.375165, 0.107969, 0.114093, -0.169802, + 0.027745, 0.106014, 0.078623, 0.120405, -0.223548, 0.024639, -0.007263, 0.149114, -0.054648, + -0.11649, 0.176455, -0.338181, 0.16746, 0.216472, -0.136766, -0.448724, -0.173368, 0.369644, + 0.047502, 0.276943, -0.00112, 0.488372, 0.371281, 0.143741, 0.019186, -0.061939, -0.468265, + -0.23088, -0.328239, -0.036046, 0.143134, -0.08929, -0.108582, 0.039319, 0.19959, 0.198555, + -0.172058, -0.169958, 0.053825, 0.288112, -0.263865, -0.095465, 0.023568, -0.414364, 0.206405, + -0.149681, 0.304044, -0.491238, 0.155764, 0.337636, -0.069411, 0.534179, 0.054536, 0.344987, + 0.181384, -0.144617, 0.224674, 0.216137, -0.124054, 0.001545, -0.008082, 0.091603, 0.269717, + -0.041285, 0.131591, -0.313528, 0.236583, 0.34871, 0.345204, 0.054441, 0.012881, 0.275899, + -0.568092, -0.243354, -0.278064, -0.196234, 0.353586, 0.005869, 0.125388, -0.38269, 0.235419, + 0.189042, 0.03122, 0.19542, 0.127964, 0.369776, -0.231926, -0.30094, -0.279084, 0.050762, + 0.015635, 0.030563, -0.087413, -0.03256, 0.044482, -0.022907, 0.29132, -0.32809, 0.607482, + 0.302507, 0.444727, 0.243212, -0.269795, 0.111489, -0.577969, -0.497166, -0.342091, -0.296366, + 0.320578, -0.065756, 0.047405, -0.219589, 0.339768, 0.181637, 0.260493, -0.084393, 0.021401, + 0.022239, -0.612467, -0.253051, -0.463057, 0.030047, -0.018993, -0.010988, 0.0121, 0.002063, + -0.02863, 0.01884, 0.412167, -0.242708, 0.544229, 0.0193, 0.578329, 0.125656, -0.148835, + 0.044912, -0.598454, -0.217069, -0.360026, -0.037694, 0.456352, -0.060041, -0.048777, -0.34413, + 0.220018, 0.024371, 0.218489, -0.241752, 0.033032, -0.039724, -0.444985, -0.209075, -0.359392, + 0.134964, 0.129418, -0.027986, -0.007036, -0.205787, -0.049019, 0.190353, 0.284202, -0.065038, + 0.603705, 0.157006, 0.319002, 0.107833, -0.232483, 0.288695, -0.615313, -0.241521, -0.110443, + 0.263265, 0.575559, -0.036168, -0.038996, -0.081161, -0.105276, 0.192023, 0.214623, -0.268712, + 0.164158, -0.119967, -0.264175, 0.095156, -0.420846, 0.096293, 0.358849, 0.245441, -0.200758, + -0.277134, -0.0893, 0.231937, 0.367861, 0.166563, 0.26643, -0.019169, 0.369643, 0.139113, + -0.206846, 0.151657, -0.734408, -0.227644, -0.111113, 0.3135, 0.507284, 0.234608, -0.193728, + -0.236931, -0.20372, 0.016224, -0.029598, -0.254036, 0.124285, -0.121604, -0.261118, -0.055709, + -0.447813, 0.15189, 0.442633, 0.331258, -0.24506, -0.524492, -0.130163, 0.192679, 0.413481, + 0.434564, 0.661771, -0.454894, -0.064267, -0.302326, -0.113631, -0.188899, -0.529426, 0.171269, + -0.112054, 0.331627, 0.548432, 0.522682, -0.006983, 0.050309, -0.08666, 0.198192, 0.252481, + -0.338004, 0.195963, -0.155847, -0.246079, 0.163002, -0.008118, 0.175724, 0.04585, 0.052692, + 0.322372, -0.425953, -0.001807, 0.104915, 0.36411, 0.546377, 0.393908, -0.187968, 0.144081, + -0.159211, 0.036719, -0.021127, -0.490542, 0.06157, 0.068342, 0.174242, 0.380351, 0.473522, + 0.063312, -0.150558, -0.197408, 0.117555, 0.025934, -0.202253, 0.059453, -0.279689, 0.107742, + 0.049491, -0.002995, 0.191675, 0.250304, 0.107704, 0.091703, -0.320574, -0.273255, 0.066243, + 0.43199, 0.171654, 0.316053, -0.006885, -0.215925, -0.239895, 0.349644, 0.244262, 4.1e-05, + 0.174238, -0.130548, -0.23112, 0.571381, 0.551515, 0.341248, -0.10585, 0.232386, 0.207391, + -0.03802, -0.132598, 0.314576, -0.171094, 0.081835, -0.360984, 0.05478, -0.194869, 0.066653, + 0.001105, 0.063492, 0.032673, -0.312177, -0.244764, 0.460984, 0.294755, 0.035207, -0.220282, + -0.281986, -0.139256, 0.306611, 0.056037, 0.007382, 0.265372, -0.249079, -0.36997, 0.45136, + 0.368966, 0.144412, -0.054506, 0.343165, 0.105787, -0.05086, 0.046349, 0.251496, -0.074553, + -0.425065, -0.414643, 0.080867, -0.153829, -0.16679, 0.071695, 0.099332, -0.162162, -0.195876, + -0.207603, 0.115514, 0.003903, 0.047653, 0.069585, -0.279224, 0.045765, 0.287405, 0.253831, + -0.045405, 0.315187, -0.241611, -0.409522, 0.463456, 0.249541, 0.43153, 0.082086, 0.177918, + 0.196529, 0.067698, 0.036232, 0.037262, -0.138364, -0.131111, -0.38165, 0.190278, -0.304709, + 0.05129, -0.115117, 0.260237, 0.178641, -0.152161, -0.032275, 0.049409, -0.112624, -0.235413, + 0.033887, -0.249474, 0.084018, 0.499893, 0.53555, -0.06918, 0.134233, -0.330363, -0.404088, + 0.496861, -0.003922, 0.102308, -0.108815, 0.298261, 0.156436, -0.207829, 0.200788, -0.133967, + -0.030678, 0.063001, -0.519608, 0.100856, -0.281652, -0.013846, -0.254812, 0.191054, 0.17372, + -0.122823, 0.025966, 0.022285, 0.120576, -0.173762, -0.259639, -0.173597, 0.146842, 0.356926, + 0.182536, -0.112176, 0.239197, -0.141082, -0.421763, 0.307286, -0.160408, -0.23057, 0.094177, + 0.368569, 0.130477, -0.139867, 0.478174, 0.130032, 0.159549, -0.06408, -0.178096, -0.095448, + -0.071487, -0.119303, 0.063533, 0.11344, -0.174789, -0.238938, 0.047374, -0.16681, -0.102447, + -0.230784, -0.067848, -0.142647, 0.190924, 0.350749, 0.14369, -0.343017, 0.363915, -0.046264, + -0.035903, 0.206276, -0.080171, 0.016076, 0.186905, 0.485245, 0.349138, 0.043428, 0.08424, + -0.094685, 0.049741, 0.272398, -0.059561, 0.206703, 0.081494, -0.066693, -0.06112, 0.165058, + -0.050474, 0.100524, -0.045849, 0.175239, -0.042741, -0.379369, 0.182534, -0.107728, 0.357024, + 0.282847, 0.183129, -0.303911, 0.54514, -0.122204, 0.229279, 0.24106, -0.005035, -0.000664, + 0.334898, 0.65311, 0.342787, 0.074215, -0.190277, -0.196266, 0.000113, 0.350895, -0.056742, + 0.528638, 0.204639, -0.068488, -0.068965, -0.039507, -0.034561, 0.395484, -0.088627, 0.300518, + -0.179221, -0.475558, 0.022557, 0.015802, 0.054661, 0.593667, -0.243579, -0.097842, 0.75762, + -0.075707, 0.291549, 0.032851, 0.165259, -0.304541, -0.07903, 0.419503, 0.315178, 0.011203, + -0.424087, -0.032523, -0.08154, 0.550724, 0.025207, 0.434446, 0.622412, -0.300757, 0.283032, + -0.295469, 0.257445, 0.230607, -0.005417, -0.068301, 0.254377, -0.251328, 0.104007, 0.092109, + 0.221372, 0.260753, -0.040827, -0.167836, 0.765778, 0.247571, 0.102838, 0.185533, 0.19691, + -0.285812, 0.236886, 0.446864, 0.288175, -0.172396, -0.136387, 0.136395, -0.040764, 0.429589, + 0.037709, 0.224856, 0.469795, 0.067222, 0.39632, -0.338739, 0.078456, -0.244901, -0.228808, + 0.264712, 0.216714, -0.468253, 0.137735, 0.104974, 0.088983, 0.338958, -0.193847, -0.028651, + 0.573696, -0.239618, 0.131932, 0.053892, 0.180376, -0.232742, 0.079137, 0.177246, 0.131927, + 0.160123, -0.468242, -0.045056, -0.109662, 0.391507, -0.12105, 0.296209, 0.421633, -0.043731, + 0.236119, -0.240497, 0.121098, 0.219049, -0.143695, -0.075265, 0.347738, -0.350083, 0.004381, + 0.187297, -0.025869, 0.050947, -0.059383, -0.05375, 0.502252, -0.336794, -0.109695, -0.010995, + 0.203569, -0.361138, 0.204584, 0.069335, 0.213429, -0.022821, -0.23939, -0.145625, -0.087135, + 0.395235, -0.281283, 0.118811, 0.274231, 0.094615, 0.104213, -0.175295, -0.011735, 0.101161, + -0.330229, -0.16366, 0.193508, -0.217552, -0.10045, 0.087562, -0.155516, 0.163805, -0.014457, + -0.306936, 0.370636, -0.182673, -0.239161, -0.140777, 0.159676, -0.418505, -0.065495, 0.054864, + 0.205389, -0.016322, -0.239944, -0.064267, -0.459381, 0.41289, -0.261367, 0.043535, 0.205651, + 0.073307, -0.001065, -0.043438, 0.073924, -0.032814, -0.195221, 0.061043, 0.191443, -0.140738, + 0.13449, -0.120065, -0.038948, -0.023735, 0.280092, -0.253606, 0.419376, -0.223926, -0.055308, + -0.446937, -0.045038, -0.42153, -0.117973, 0.116295, -0.017244, 0.169598, 0.205761, -0.062739, + -0.164117, 0.451261, -0.142407, -0.036928, -0.123814, -0.033889, 0.003441, -0.296012, 0.063911, + 0.088727, -0.401506, -0.03826, 0.157691, 0.126259, -0.162666, 0.173411, -0.378206, -0.180696, + -0.062149, -0.071876, 0.003938, -0.382573, -0.490979, -0.465909, -0.09209, -0.4902, -0.069652, + -0.020307, 0.16786, 0.2768, 0.119006, 0.310842, -0.075775, 0.58082, -0.085999, -0.052836, + -0.119802, 0.080252, -0.295893, -0.104628, -0.282349, 0.24058, -0.54096, -0.352477, -0.060138, + 0.086085, 0.271576, -0.330822, -0.074273, -0.154079, 0.236623, -0.138812, 0.033612, -0.027365, + -0.202104, -0.332323, -0.154822, -0.568737, -0.261527, -0.139024, 0.149038, 0.188563, 0.214549, + 0.042928, 0.08987, 0.380692, 0.079891, 0.24678, -0.119665, 0.130807, -0.158363, -0.47832, + 0.17407, 0.415133, -0.401393, -0.072952, -0.108583, 0.275775, 0.272468, -0.235374, 0.074361, + 0.163521, 0.287917, -0.071698, -0.057199, 0.084625, -0.03959, -0.18066, -0.098874, -0.242455, + -0.553618, -0.292333, 0.071718, 0.219188, 0.080172, 0.146598, 0.042691, 0.119541, 0.329574, + 0.130031, -0.281269, 0.087648, -0.127404, -0.26825, 0.241401, 0.338898, -0.314416, 0.105478, + -0.024137, 0.228638, 0.424576, -0.433724, 0.010165, 0.054175, 0.375242, -0.011747, -0.050776, + 0.060747, 0.06357, -0.026066, -0.149911, -0.245041, -0.426993, -0.250764, 0.220239, 0.237658, + -0.003998, 0.169061, 0.271672, -0.134461, 0.284052, 0.111041, -0.148416, -0.021477, -0.236791, + -0.454815, 0.454693, 0.334009, -0.618441, -0.149426, 0.096674, 0.300038, 0.120446, -0.242873, + -0.089431, -0.019045, 0.114791, 0.128241, -0.204995, 0.192606, -0.293358, 0.258623, 0.062567, + -0.203172, -0.171459, -0.302507, 0.434649, -0.054532, -0.292879, 0.246381, 0.048095, -0.380172, + 0.224401, 0.016218, 0.005604, 0.171954, -0.4128, -0.276693, 0.205045, 0.230098, -0.487017, + -0.073141, 0.254061, 0.071865, -0.162353, -0.375789, -0.058471, 0.196558, 0.178024, 0.353025, + -0.125565, 0.11286, -0.107733, -0.029501, -0.105344, -0.190014, 0.039881, -0.291904, 0.177034, + -0.283835, -0.418984, 0.233187, -0.126555, -0.084708, -0.214593, 0.023221, 0.170251, 0.041792, + -0.192297, 0.025948, -0.149981, 0.232581, -0.255432, -0.18068, 0.290818, 0.160789, -0.075483, + 0.085198, -0.016058, 0.282378, 0.124384, 0.371717, 0.093075, 0.031223, -0.164398, 0.158014, + 0.202183, -0.007637, 0.079432, -0.100413, 0.102807, -0.34996, -0.39361, 0.133759, -0.11482, + -0.318734, -0.075742, -0.186142, 0.099934, 0.099673, -0.195964, 0.035338, -0.145196, -0.03219, + -0.204864, -0.079991, 0.315371, -0.059975, 0.395886, 0.25021, 0.194444, 0.378679, 0.30549, + 0.219184, -0.198155, 0.06144, 0.044747, 0.100155, 0.207769, -0.423372, 0.245423, 0.376011, + -0.412127, -0.308236, -0.090785, -0.377835, -0.086981, -0.227135, -0.132681, 0.037646, 0.235787, + 0.328211, -0.010796, -0.222153, 0.0553, -0.240542, 0.169789, -0.161307, 0.525259, -0.151319, + 0.226552, 0.302516, -0.054818, 0.218983, 0.063941, 0.445011, -0.07965, 0.35705, -0.273718, + -0.08258, 0.169041, 0.005176, 0.4247, -0.005893, -0.175098, -0.668921, -0.129985, -0.064103, + -0.196499, -0.101485, -0.491887, 0.304635, 0.145729, 0.320005, 0.003398, 0.110191, -0.215127, + 0.055197, 0.229376, -0.206416, 0.549491, -0.204856, 0.23156, 0.302761, -0.119117, 0.380272, + 0.098277, 0.282616, -0.196133, 0.096372, 0.173118, -0.119633, 0.257199, 0.022215, 0.216554, + -0.152524, 0.013042, -0.679202, 0.008802, 0.085602, 0.165479, -0.129619, -0.042536, 0.072317, + -0.111732, 0.499532, 0.056173, -0.015643, -0.024701, 0.38729, 0.263516, -0.09769, 0.551082, + 0.004983, 0.187991, 0.680095, -0.017313, 0.346968, -0.262674, 0.215365, -0.109863, 0.086198, + -0.223771, -0.043304, 0.214522, -0.105677, 0.274144, -0.136419, -0.108617, -0.359714, 0.098843, + -0.018717, 0.119488, -0.203877, 0.148251, -0.160244, -0.239704, 0.21598, -0.22911, -0.394001, + 0.160641, -0.139278, 0.235426, -0.020516, 0.264139, -0.210431, 0.004496, 0.474162, 0.003103, + 0.418292, -0.35856, -0.078052, -0.355489, -0.064384, 0.085955, 0.048771, 0.094619, 0.013875, + 0.217692, -0.112318, 0.226034, -0.172448, 0.196381, 0.321805, 0.112716, -0.055548, 0.40106, + -0.015028, -0.072935, 0.28586, -0.049105, -0.106985, 0.134611, 0.104985, 0.32474, -0.019312, + -0.021723, -0.015588, 0.103883, 0.215056, -0.218448, 0.101062, -0.071927, 0.007141, -0.362968, + 0.170908, -0.331592, -0.282085, 0.172937, 0.159869, 0.302409, 0.007383, 0.24415, -0.134885, + 0.033573, 0.579452, -0.018986, 0.046564, -0.074367, -0.04504, -0.296766, 0.324232, 0.15991, + 0.146897, 0.145558, -0.024618, 0.224495, 0.02641, 0.044328, -0.256123, -0.192234, -0.042366, + -0.024985, 0.166825, 0.070684, -0.234252, -0.298312, -0.057225, -0.086003, 0.030751, 0.334806, + -0.142992, 0.045219, 0.060341, 0.339731, -0.006312, 0.235837, 0.404976, -0.047799, 0.052976, + 0.299403, -0.222969, -0.379717, 0.243963, 0.109244, 0.076236, 0.185665, -0.189544, 0.20868, + 0.390165, 0.080384, 0.011506, -0.116379, -0.064751, 0.091434, 0.284039, 0.153504, -0.016465, + -0.281635, 0.094973, -0.181346, 0.077798, 0.196871, -0.326377, 0.288642, 0.025175, 0.290417, + 0.152212, 0.221781, 0.407533, -0.404005, 0.314362, 0.16793, -0.1033, -0.343543, 0.195087, + 0.049432, 0.059851, 0.224178, -0.592975, -0.11746, 0.262675, 0.105803, -0.230412, -0.17202, + -0.102621, 0.228623, 0.290963, 0.539206, 0.018364, -0.215598, -0.218243, 0.163287, 0.371136, + 0.142667, -0.089634, 0.295139, 0.380477, 0.472957, 0.243401, 0.199387, 0.014844, -0.531612, + 0.306093, -0.037182, 0.302567, 0.01053, 0.247816, 0.38267, 0.126852, 0.109555, -0.610589, + 0.191581, 0.423013, 0.657534, -0.282105, -0.039368, -0.364652, 0.411935, 0.180889, 0.672924, + -0.026148, -0.146981, -0.074175, 0.130141, 0.43973, 0.308469, -0.195198, 0.104539, 0.03558, + 0.401248, 0.101894, 0.115379, 0.053098, -0.708551, 0.141505, 0.003941, -0.012243, -0.466857, + -0.193595, 0.230132, -0.137907, 0.241402, -0.602696, 0.176828, 0.117334, 0.758722, 0.004172, + -0.051769, -0.171263, 0.107835, 0.153376, 0.377737, 0.358001, -0.022267, -0.073961, 0.256264, + 0.493552, 0.121242, -0.272299, 0.170835, -0.17736, 0.411069, 0.058506, 0.104191, 0.038057, + -0.575133, 0.111696, -0.167672, 0.303766, -0.245549, -0.269198, 0.136032, -0.160406, 0.221443, + -0.672303, 0.199334, 0.012039, 0.718843, 0.284452, -0.000499, -0.214719, 0.151334, -0.022062, + 0.311238, 0.454068, 0.111293, -0.148653, 0.45959, 0.424651, 0.267133, -0.039658, 0.162457, + -0.542813, 0.129537, 0.196348, 0.002182, 0.034266, -0.218722, -0.004201, -0.146455, 0.403493, + -0.269452, -0.245597, 0.409496, -0.247895, 0.213387, -0.44495, 0.116629, -0.302048, 0.587192, + 0.159476, -0.107616, -0.18971, 0.013355, -0.122815, 0.044781, 0.189016, -0.08083, 0.043898, + 0.242326, 0.425829, 0.44935, -0.013547, -0.107866, -0.342655, -0.023111, 0.224181, 0.167065, + 0.254934, -0.183212, -0.216378, -0.278027, 0.17522, -0.500648, -0.407126, 0.223061, -0.054778, + 0.162642, -0.229627, 0.427454, -0.233079, 0.429438, 0.064821, -0.372977, -0.272343, 0.059196, + -0.289891, 0.256679, 0.092941, 0.012557, 0.130462, 0.327802, 0.24502, 0.468912, 0.225443, + -0.046575, -0.384981, -0.239589, 0.42123, 0.357718, 0.38591, -0.000922, -0.243339, -0.068017, + 0.159396, -0.480105, 0.03006, 0.117705, -0.247515, 0.058531, 0.24126, 0.160503, -0.180002, + -0.040167, 0.200135, 0.074663, -0.054239, -0.056822, 0.008924, -0.226583, 0.103552, -0.241608, + 0.227073, 0.330795, 0.199945, 0.56495, -0.171578, -0.178573, -0.087944, -0.031281, 0.435027, + 0.212841, 0.660264, -0.018128, -0.185321, -0.250691, 0.33274, -0.19628, 0.124594, 0.197312, + 0.178377, -0.28276, 0.336277, 0.126997, -0.347347, -0.454474, -0.103066, -0.13733, -0.023259, + -0.195352, 0.079574, 0.501386, 0.066662, 0.200145, -0.232895, 0.626034, -0.034683, 0.741377, + -0.080582, 0.033012, 0.011322, 0.079897, 0.329073, 0.058695, 0.216803, 0.346782, 0.364782, + 0.329426, -0.129422, 0.298831, 0.604081, 0.370677, -0.112425, -0.50537, 0.164659, -0.469582, + 0.094259, -0.172145, -0.133853, -0.226397, 0.066121, -0.267956, 0.150739, -0.020021, -0.016078, + -0.057229, 0.289828, 0.530971, -0.106307, 0.526502, 0.073439, 0.083523, -0.051043, 0.004319, + 0.133099, 0.079492, 0.629793, -0.078959, 0.127718, 0.187878, -0.10397, 0.145477, 0.335999, + 0.001893, 0.004851, -0.363689, 0.287366, -0.159122, 0.19683, -0.629824, -0.225724, -0.110806, + -0.17792, -0.206029, -0.08055, 0.086281, 0.12395, -0.094223, -0.284544, 0.47477, 0.075057, + 0.630737, 0.139377, 0.082827, 0.026531, 0.035314, -0.048209, 0.136229, 0.483881, 0.36443, + 0.202391, -0.148994, -0.312681, 0.392727, 0.513801, 0.21401, 0.042844, -0.312264, 0.338072, + -0.241459, -0.190395, -0.296527, -0.184519, -0.312652, 0.124149, -0.015608, -0.094136, -0.150503, + 0.089171, 0.036842, -0.108291, 0.601706, -0.038936, 0.373494, 0.011715, 0.225514, -0.032437, + -0.260283, -0.309699, -0.043192, 0.29937, 0.352246, 0.303599, 0.303633, -0.389726, 0.304909, + 0.198009, -0.074545, 0.340962, 0.101695, 0.023139, -0.144264, -0.107224, -0.374945, -0.301278, + -0.185361, 0.107387, 0.14308, -0.206432, 0.221586, 0.071137, -0.009557, -0.330892, 0.300118, + -0.056764, 0.213907, 0.096732, 0.212833, 0.066896, -0.395366, -0.129711, -0.063264, 0.025898, + 0.437826, 0.461554, 0.103922, -0.561179, 0.366803, 0.224049, -0.230407, 0.094809, 0.243888, + 0.135839, -0.177359, 0.044269, -0.200589, -0.086667, -0.157457, 0.063046, 0.299626, -0.150916, + 0.004519, 0.002707, -0.126925, -0.133296, 0.085264, -0.17743, 0.114755, 0.170213, 0.178225, + -0.128546, -0.480082, -0.111679, -0.056502, 0.21056, 0.204565, 0.162526, -0.021661, -0.519688, + 0.348728, 0.032997, -0.210064, 0.173323, 0.253151, 0.191683, 0.015107, -0.027903, -0.287525, + -0.019071, -0.003202, 0.032088, 0.321967, 0.004709, 0.01674, -0.496414, -0.173388, -0.255785, + -0.156064, 0.002463, -0.171926, -0.03481, 0.28311, 0.027733, -0.459148, 0.238808, -0.135593, + 0.024441, 0.268236, 0.102151, -0.405308, -0.39458, 0.357853, -0.011801, 0.057767, 0.247683, + 0.36226, -0.043254, 0.114421, -0.362507, 0.206349, 0.252251, 0.267597, 0.140005, 0.398363, + -0.038281, 0.122997, -0.121557, 0.060669, -0.000302, 0.116033, -0.068349, 0.091798, 0.08274, + -0.074476, 0.097669, -0.108794, 0.402722, -0.172855, -0.253333, 0.204436, 0.084691, -0.081751, + -0.28893, 0.49069, 0.089504, 0.066241, 0.034819, 0.102383, 0.206417, -0.054226, -0.023528, + 0.269405, 0.437213, 0.069536, -0.083019, 0.271669, -0.025354, -0.051498, -0.188833, 0.099995, + -0.050012, 0.019987, -0.056577, 0.105329, 0.070183, -0.039558, 0.192245, -0.146382, 0.285958, + 0.046591, -0.251911, 0.044541, 0.088185, 0.005848, -0.172288, 0.632249, 0.074088, 0.275055, + 0.274495, 0.066903, 0.207739, -0.11795, -0.082875, 0.150906, 0.590191, -0.024094, -0.174729, + -0.100367, -0.210441, -0.304477, -0.095985, 0.039532, 0.18655, 0.362526, -0.141511, 0.11152, + 0.055847, -0.305128, 0.031059, 0.059028, 0.068273, -0.112318, 0.156566, 0.064878, -0.227047, + -0.15865, -0.110487, 0.313133, 0.049943, 0.41511, 0.329913, 0.13966, 0.095669, -0.059977, + -0.201465, 0.066826, 0.35131, -0.202704, -0.155506, -0.271329, -0.417372, -0.184368, 0.09111, + 0.074696, 0.110794, 0.351033, 0.162078, 0.118524, 0.116342, -0.165845, 0.066485, 0.061136, + 0.129989, -0.169293, 0.032271, 0.002911, 0.048721, 0.08939, 0.027011, 0.186011, -0.146634, + 0.339284, 0.272512, 0.336875, 0.165754, -0.290712, 0.007668, 0.027216, 0.286721, -0.246423, + -0.098102, -0.308241, -0.568124, 0.051826, 0.093895, -0.019207, 0.07999, 0.437639, -0.014783, + 0.226358, 0.163026, -0.325177, -0.16954, 0.195875, -0.244825, -0.266684, 0.060429, 0.112992, + -0.039092, 0.204683, 0.031075, 0.201147, -0.136687, 0.462659, 0.261399, 0.411304, 0.158562, + -0.021145, -0.069167, -0.310551, 0.322797, -0.11854, 0.185713, -0.36491, -0.15178, 0.0561, + 0.304122, 0.162803, -0.19589, 0.095088, 0.430689, 0.306806, 0.155682, -0.067687, -0.126251, + 0.027488, -0.126214, -0.481738, 0.003967, -0.14568, -0.141027, 0.422482, 0.270545, -0.119329, + -0.34972, 0.181344, 0.245341, 0.18318, -0.095334, 0.05813, 0.089982, -0.086507, 0.237077, + -0.001078, 0.292678, -0.237563, -0.299256, 0.274491, 0.165459, 0.221896, 0.003151, 0.43691, + 0.11259, 0.382829, 0.176844, -0.223506, -0.355365, 0.355466, -0.316957, -0.621376, 0.073421, + 0.222463, -0.326558, 0.263178, 0.256613, -0.124089, -0.149558, 0.269402, 0.177663, 0.372199, + -0.110833, 0.182294, 0.008879, 0.029092, 0.062445, 0.325112, 0.361517, 0.278225, 0.089451, + 0.517163, -0.136061, 0.351531, -0.187109, 0.237602, -0.05066, 0.388841, 0.12623, -0.106496, + -0.190054, 0.30986, -0.216209, -0.320241, 0.152148, 0.324627, 0.018674, 0.177278, 0.140466, + -0.006908, 0.037085, 0.33221, 0.218902, 0.273461, -0.223136, 0.044598, -0.17898, -0.135461, + 0.341969, 0.224515, 0.330505, 0.307547, 0.359215, 0.39943, -0.068193, 0.334933, -0.314777, + 0.225728, -0.19393, 0.019775, 0.122276, 0.040285, 0.366591, -0.063024, -0.060302, -0.08371, + 0.094866, 0.130248, -0.036943, -0.152101, 0.18994, 0.28495, -0.076978, 0.195193, 0.284838, + 0.161584, -0.182612, -0.022471, -0.406587, -0.485152, 0.00733, 0.031185, 0.139879, 0.257261, + 0.657882, 0.09065, 0.259226, 0.417283, -0.172354, 0.14241, -0.106975, 0.041752, -0.006956, + -0.297423, 0.211932, -0.303843, -0.314505, -0.25139, 0.399454, 0.088223, 0.268348, 0.077634, + 0.202854, -0.152038, -0.112277, 0.239556, 0.229962, -0.298256, 0.137771, 0.302668, -0.109418, + -0.360844, -0.047902, 0.131242, 0.122901, 0.350347, 0.436224, 0.117057, -0.135014, 0.173508, + 0.122779, 0.098246, -0.341338, -0.078203, -0.022799, -0.167507, 0.032946, -0.085279, -0.051986, + -0.258009, 0.489019, 0.231448, 0.378208, -0.218326, 0.09008, 0.144829, -0.075673, 0.201221, + 0.129665, 0.088645, 0.01122, 0.232672, -0.223389, -0.531286, 0.021274, 0.102761, -0.224981, + -0.204477, -0.03945, 0.130179, -0.34838, 0.266285, 0.387343, 0.063871, 0.222497, -0.235056, + 0.006516, 0.083059, -0.191433, 0.120239, -0.179961, -0.518835, 0.372407, -0.112021, 0.603362, + -0.15281, 0.291981, 0.043938, -0.445398, 9e-05, -0.061363, 0.10767, 0.126923, 0.175819, + -0.391101, -0.638769, 0.218182, -0.059298, -0.213782, 0.084441, 0.052535, 0.081805, -0.173159, + 0.023094, 0.059439, 0.138979, 0.084695, -0.402052, 0.099918, 0.035871, -0.036109, -0.009102, + -0.166183, -0.600568, 0.178429, -0.223986, 0.167235, 0.211889, 0.52675, 0.262, -0.142111, + -0.201371, 0.195972, 0.009013, 0.353624, 0.000962, -0.364211, -0.689911, 0.103266, -0.076477, + -0.255043, -0.09622, -0.226088, 0.184, -0.335604, 0.223971, 0.142402, 0.155994, 0.424223, + -0.363203, 0.142519, 0.071095, -0.247332, -0.076387, -0.328426, -0.551433, 0.138286, 0.005808, + 0.18014, 0.169396, 0.53641, -0.145676, 0.032592, -0.177904, 0.102564, -0.231602, 0.151159, + -0.064215, -0.474879, -0.419799, 0.301863, 0.156989, -0.029328, -0.20839, -0.436543, -0.000466, + -0.470524, -0.027299, 0.196263, 0.066475, 0.429649, -0.288894, 0.189574, 0.158761, -0.119925, + -0.078509, -0.057487, -0.319831, -0.052118, 0.042741, 0.075912, -0.071201, 0.474998, 0.044121, + 0.023724, -0.473414, 0.127158, -0.068545, -0.046065, 0.025656, -0.506223, 0.092827, 0.004442, + 0.028635, -0.059504, -0.277929, -0.641946, -0.013397, -0.132265, 0.193798, 0.245502, 0.416827, + 0.300752, -0.312709, 0.353974, -0.063479, 0.416078, -0.399049, -0.153945, 0.37175, -0.513517, + 0.407466, 0.207674, 0.045521, 0.431461, -0.354562, -0.078192, -0.075063, 0.266735, -0.149084, + 0.231921, -0.233506, -0.288165, -0.07414, -0.060451, -0.030868, -0.075578, -0.077075, -0.445746, + -0.17512, -0.274952, 0.209025, -0.145287, 0.249578, 0.150322, -0.150629, 0.451386, -0.130477, + 0.375242, -0.529909, -0.132031, 0.119448, -0.5506, 0.239572, -0.21931, 0.030274, 0.44876, + -0.167585, -0.00076, -0.266241, 0.128489, -0.126637, 0.072854, -0.20059, -0.197935, 0.214927, + -0.311926, 0.133805, 0.082055, -0.274905, -0.575813, -0.277831, -0.057303, 0.230426, 0.205265, + 0.169624, 0.185947, 0.138169, 0.356514, -0.270662, 0.273367, -0.401935, -0.036844, 0.502695, + -0.414121, 0.273315, 0.167311, -0.112828, 0.308144, -0.192961, -0.226436, -0.438444, -0.009667, + -0.111659, -0.034038, 0.185344, 0.225682, 0.104713, -0.26962, 0.008812, -0.144882, -0.109583, + -0.271794, -0.086846, -0.073869, 0.186952, 0.25126, -0.183237, 0.326895, 0.187526, 0.357431, + -0.383821, 0.301376, 0.129023, 0.083656, 0.201556, -0.395899, -0.107139, 0.174395, 0.272361, + 0.08612, -0.084409, -0.298936, -0.223187, -0.020431, -0.147764, -0.214103, 0.224982, 0.586008, + 0.03691, -0.326308, 0.04701, -0.183214, -0.008707, -0.074688, -0.075461, -0.3222, 0.448051, + 0.13388, -0.204728, 0.415693, 0.227028, 0.388474, -0.17869, 0.190278, 0.171412, 0.041716, + 0.195762, -0.273857, -0.170852, -0.015868, 0.39487, -0.016576, 0.201862, -0.318483, -0.38356, + -0.401806, 0.108464, -0.356664, -0.024216, 0.454814, -0.084415, -0.265842, 0.016208, -0.108171, + 0.004837, -0.072312, -0.011915, -0.44967, 0.532675, 0.028309, -0.232063, 0.404916, 0.325689, + 0.443914, -0.204425, -0.108914, 0.116865, 0.055537, 0.029973, -0.180185, -0.213406, -0.188727, + 0.1441, -0.026883, 0.186504, -0.161604, -0.569534, -0.497457, -0.021434, -0.459737, 0.151715, + 0.416668, 0.000839, 0.017204, 0.028415, -0.011564, 0.173591, 0.186301, 0.39854, -0.332509, + 0.532241, 0.360661, 0.109363, 0.581089, -0.003659, 0.344975, -0.349496, -0.235797, 0.101659, + 0.055426, 0.113227, 0.237989, -0.249014, -0.074439, 0.300487, -0.495479, 0.135536, 0.072316, + -0.346135, -0.17829, -0.053005, -0.064947, 0.107114, 0.129754, 0.382732, 0.012781, -0.028788, + -0.39088, 0.228009, 0.281198, 0.200568, -0.485398, 0.564677, 0.461132, 0.419625, 0.525798, + -0.129391, 0.083549, -0.436997, 0.12834, 0.139735, 0.18661, 0.102524, 0.03686, -0.28405, + -0.228462, 0.32339, -0.616399, 0.02775, -0.256663, -0.348042, -0.048076, 0.290462, 0.267224, + -0.060537, -0.002003, 0.478226, 0.011254, 0.168483, -0.441207, 0.309768, 0.110138, -0.064517, + -0.115238, 0.297045, 0.345262, 0.404892, 0.567075, 0.119972, 0.39205, -0.663534, -0.37249, + -0.002101, 0.071794, -0.229997, 0.19841, -0.194044, -0.298428, 0.334203, -0.409888, 0.267745, + -0.145474, -0.316163, 0.316805, 0.0938, 0.376359, -0.204245, -0.245989, 0.160362, 0.041695, + 0.114931, -0.218618, 0.226514, 0.098516, -0.158196, -0.180503, 0.263919, 0.335637, 0.47831, + 0.251237, 0.237103, 0.358358, -0.762111, -0.364944, -0.04633, 0.120133, -0.249979, 0.265841, + -0.181785, -0.328781, 0.336781, -0.117505, -0.034779, 0.00199, -0.349486, 0.606767, 0.237495, + 0.311784, -0.089736, -0.162392}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + { + const std::string name = "long_input_all1s"; + const std::vector token_types{ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; + const std::vector q_data{ + 0.764539, 0.830008, -0.234272, 0.918611, -0.219104, 0.201791, -0.486855, 0.587283, 0.881543, + -0.733628, 0.869196, 0.187159, 0.738809, 0.135431, 0.482188, -0.141191, 0.770886, 0.147809, + -0.46684, 0.254898, -0.460737, -0.117273, -0.406158, 0.663371, -0.78937, -0.46101, -0.282375, + -0.601272, 0.094383, -0.987679, 0.903109, -0.849468, 0.772027, 0.166419, -0.324705, 0.61795, + 0.155851, 0.807963, 0.10932, -0.315373, 0.268684, -0.271179, 0.420858, 0.892822, 0.57806, + -0.437173, 0.577265, 0.178926, 0.507835, -0.609505, -0.989908, -0.386361, -0.767023, 0.820539, + 0.288031, 0.414214, 0.316261, -0.017396, 0.782608, -0.710514, 0.062964, -0.68254, 0.308352, + -0.344382, 0.306416, -0.208341, 0.829392, -0.592702, -0.596398, -0.596434, 0.899443, 0.333251, + 0.962251, -0.825276, -0.991876, -0.782364, -0.672689, 0.40504, 0.358076, 0.830924, -0.516425, + -0.681712, 0.530578, -0.404204, 0.606924, -0.237301, 0.572046, -0.776968, -0.50465, 0.304876, + 0.211408, -0.254959, 0.596069, 0.679809, -0.725173, -0.533868, 0.915662, -0.337433, -0.354516, + -0.967595, -0.57267, 0.249804, -0.131993, -0.725886, 0.023457, -0.683082, -0.848397, -0.550663, + -0.875212, -0.636738, 0.999609, 0.188875, 0.30816, -0.932684, -0.656774, -0.332856, 0.156371, + -0.879921, -0.430873, -0.598669, 0.002771, -0.372103, -0.069296, -0.67763, -0.686395, -0.583402, + -0.342297, -0.789281, 0.83847, -0.198464, 0.860397, 0.311582, -0.846797, 0.692035, -0.275145, + -0.383326, -0.83007, -0.994161, 0.286111, -0.218444, 0.389323, -0.820663, 0.742429, -0.734054, + -0.172673, 0.20887, 0.516252, 0.80731, 0.910959, -0.792922, 0.251667, -0.430126, -0.109585, + -0.74849, 0.910859, -0.73395, 0.534451, 0.35144, 0.324956, -0.540646, 0.908952, 0.21975, + 0.12864, -0.881255, 0.419788, -0.150021, -0.458124, 0.858947, 0.222949, -0.553276, -0.506139, + -0.047756, 0.558361, -0.255534, -0.570575, -0.342443, -0.747075, 0.356632, 0.77404, -0.94144, + 0.232251, 0.516592, 0.181329, -0.356125, 0.521942, 0.525513, 0.373927, -0.175721, -0.264801, + 0.106981, -0.176654, -0.298001, 0.639207, 0.8594, -0.098997, -0.223897, 0.014592, -0.059708, + 0.240411, 0.280234, -0.908257, -0.369038, 0.842129, 0.389555, -0.049738, -0.602906, -0.611805, + -0.895767, -0.325962, 0.337704, 0.637622, 0.461697, -0.883944, -0.601362, -0.157817, 0.96735, + 0.144657, -0.258971, 0.413715, -0.380882, -0.647256, 0.729887, -0.454702, -0.200467, -0.994804, + 0.669271, 0.757635, 0.364448, -0.697274, -0.98694, -0.812179, 0.7457, 0.480106, 0.841504, + 0.52387, 0.253092, -0.009793, -0.760506, -0.856772, -0.935349, 0.409362, -0.490968, -0.201253, + -0.575505, -0.182224, -0.703835, -0.653416, 0.331711, -0.297196, 0.617343, -0.320809, -0.733567, + -0.176439, -0.484747, -0.305942, -0.951996, 0.559491, -0.696205, 0.502618, 0.453784, 0.714433, + -0.767052, 0.719197, -0.472752, 0.371069, 0.939115, -0.141032, -0.007733, -0.230231, -0.834985, + 0.479903, -0.992718, 0.6208, 0.748225, 0.945706, -0.23588, -0.821642, 0.22483, 0.552427, + -0.995309, -0.226984, -0.599455, -0.087464, -0.492213, -0.408768, -0.317459, -0.950304, 0.820508, + 0.838331, -0.156869, -0.113882, -0.40812, -0.903063, -0.973144, 0.371658, -0.549046, -0.642877, + -0.078023, -0.333011, -0.323521, 0.032131, -0.212112, -0.344312, -0.478806, -0.813827, 0.838507, + -0.400187, 0.264979, -0.346966, 0.081261, 0.9323, 0.460723, -0.8666, 0.396903, 0.949243, + 0.263083, 0.670425, 0.985888, -0.153229, 0.207554, -0.695035, -0.206077, 0.740584, 0.512646, + -0.632789, -0.801885, -0.683364, -0.986878, -0.771639, -0.247297, 0.674877, 0.167382, -0.760605, + -0.802224, 0.497475, -0.743841, -0.123127, 0.479706, -0.462812, -0.10904, -0.087044, -0.236583, + -0.507032, -0.891438, -0.808357, -0.535462, 0.965838, -0.483015, -0.671528, 0.242394, 0.27561, + 0.54791, 0.76012, 0.556874, -0.991501, 0.088689, 0.605753, -0.092425, -0.589279, 0.95334, + -0.374028, -0.569345, -0.901555, 0.044668, 0.443133, 0.221363, 0.19775, -0.758387, -0.933887, + 0.017609, 0.911834, 0.576921, -0.582234, -0.129809, -0.737184, -0.482423, 0.181098, 0.544538, + 0.828369, -0.918106, 0.668615, -0.705292, 0.374467, 0.846245, 0.014042, 0.909809, -0.852051, + -0.381959, 0.583253, -0.217868, -0.2047, -0.416792, 0.689306, 0.490503, 0.32045, -0.561964, + -0.81175, 0.108161, 0.296279, -0.461712, -0.279798, 0.675368, 0.07966, 0.045118, -0.246101, + -0.90559, -0.940257, -0.478015, -0.508321, 0.311554, -0.291111, -0.391222, 0.95343, 0.348323, + 0.712902, -0.484113, -0.408467, 0.36754, -0.666275, -0.653704, -0.0483, -0.365761, -0.749658, + 0.593159, 0.804163, 0.162223, -0.174113, -0.926273, -0.364239, 0.254586, 0.471531, -0.126418, + -0.395353, 0.557226, -0.7964, 0.632018, -0.387955, 0.015305, -0.197616, 0.121239, -0.302198, + 0.727127, -0.025997, 0.780599, 0.96148, -0.487191, -0.729509, 0.802302, 0.783614, -0.763547, + -0.077303, -0.986126, -0.818599, 0.193143, 0.266035, 0.211981, -0.272165, 0.922578, 0.142978, + -0.590085, -0.056614, 0.240145, 0.350193, -0.707081, 0.37479, -0.510882, -0.83094, -0.546207, + 0.964409, 0.854858, 0.895484, 0.587011, 0.75545, -0.13385, -0.550228, 0.499657, -0.518183, + -0.674866, -0.319334, 0.209859, 0.514797, -0.388409, -0.588566, 0.134893, -0.589433, -0.651061, + 0.521252, -0.167985, 0.913785, 0.972783, 0.299106, 0.344158, 0.230284, 0.015661, -0.072732, + 0.013744, 0.373425, 0.929771, -0.259159, -0.422716, -0.242165, -0.483124, 0.170039, 0.746448, + 0.781977, 0.459126, -0.735932, -0.536705, -0.219711, -0.184324, 0.082248, -0.917971, 0.311245, + -0.762872, -0.632745, -0.831383, 0.87132, -0.94694, 0.754367, -0.033617, -0.116299, 0.625479, + -0.092428, 0.627154, 0.723015, -0.86821, 0.384784, 0.188779, 0.215012, 0.145991, 0.273531, + -0.481067, -0.127941, 0.95012, 0.671849, -0.037568, -0.940531, 0.043828, -0.680974, 0.813192, + -0.607087, -0.072202, -0.221943, 0.177954, 0.941028, 0.095019, 0.579164, 0.776222, 0.807311, + -0.345351, -0.223657, 0.481938, -0.272868, 0.468264, -0.218468, -0.678252, 0.407043, 0.153318, + 0.445848, 0.993486, 0.682733, 0.947981, 0.053523, -0.860213, -0.701527, -0.621174, -0.881248, + -0.501248, -0.920568, -0.922615, -0.597555, -0.985834, -0.613812, 0.381309, 0.834053, -0.297463, + -0.290879, 0.533953, -0.493371, -0.472833, 0.61613, -0.871302, 0.122275, 0.883382, 0.171486, + 0.271944, -0.582391, -0.013797, 0.054984, 0.245434, 0.388546, 0.868928, -0.763299, 0.029975, + -0.499636, -0.791064, -0.080078, -0.880237, 0.697899, 0.115815, -0.538958, 0.522579, -0.946428, + -0.386799, -0.194819, -0.84975, -0.635888, -0.163219, 0.758765, 0.965654, 0.636262, -0.597124, + -0.654221, 0.872693, 0.353717, 0.026568, 0.135332, -0.803697, -0.333885, 0.962618, -0.246632, + -0.050164, -0.830331, -0.559407, -0.02042, -0.621159, -0.12401, 0.406959, -0.978177, 0.297012, + -0.661208, -0.488051, 0.38391, 0.79512, -0.273309, -0.410569, -0.904236, -0.515658, -0.875637, + -0.228871, 0.204055, -0.936876, 0.873114, 0.627391, -0.978946, -0.477633, 0.326155, -0.20546, + -0.108976, -0.451516, 0.80322, -0.558998, 0.829277, 0.064522, 0.201022, 0.780132, -0.164766, + -0.569343, -0.161734, 0.811053, -0.741987, 0.22698, -0.982791, 0.524302, 0.369468, 0.042392, + 0.429193, 0.001125, 0.553353, -0.79162, -0.146852, 0.443615, 0.995817, 0.509391, -0.727174, + 0.769097, -0.222998, -0.213514, -0.90891, -0.157414, 0.707327, 0.139445, -0.582454, 0.307812, + -0.320644, 0.912994, -0.867955, -0.315876, -0.965574, -0.39383, 0.315248, 0.962615, 0.167946, + 0.980358, 0.195652, 0.577536, 0.801662, 0.835923, -0.559724, 0.91939, 0.605765, -0.467579, + -0.477203, -0.838746, 0.251137, -0.810549, 0.422425, 0.315798, -0.868802, 0.272501, -0.081331, + 0.456818, 0.57379, -0.994145, 0.917099, 0.838642, 0.397884, -0.913961, -0.357221, -0.289809, + -0.256998, 0.563923, 0.363571, 0.792179, -0.374523, 0.33654, 0.355795, -0.832591, -0.97002, + -0.518889, 0.684548, -0.94146, -0.870434, 0.560201, 0.539529, 0.822393, -0.754939, -0.7319, + 0.512987, 0.86963, 0.598339, 0.156652, 0.329575, 0.949127, -0.645204, -0.454012, 0.699467, + -0.68424, -0.551413, 0.729991, 0.315522, 0.32307, -0.42384, -0.013801, 0.915233, -0.60022, + 0.007862, 0.4756, -0.690356, 0.971177, -0.499611, -0.240136, -0.27057, -0.651659, -0.981265, + 0.563852, 0.265674, -0.936601, -0.643627, 0.988368, 0.382235, 0.401245, -0.598298, -0.438396, + -0.150954, -0.18288, -0.685248, 0.082385, 0.099388, -0.126621, 0.138632, -0.396351, 0.260252, + 0.37714, -0.526739, -0.991579, 0.523434, 0.238537, -0.508588, 0.963702, -0.452248, 0.675747, + 0.507329, -0.838408, 0.644941, -0.919473, -0.554015, -0.166715, -0.674047, 0.97691, -0.20058, + 0.39719, -0.892912, 0.575666, -0.310784, -0.760671, 0.146223, 0.484462, 0.865397, -0.610793, + -0.492104, 0.192263, 0.271261, 0.384472, 0.548875, -0.226754, 0.55557, 0.737292, -0.261222, + 0.711457, 0.48858, 0.882053, -0.568274, -0.493809, -0.289139, 0.050726, 0.600199, -0.570863, + 0.500654, -0.358381, 0.604109, -0.047477, -0.876087, -0.550246, -0.723752, 0.495963, -0.670548, + -0.083318, 0.215756, -0.548395, 0.28847, -0.976423, -0.715508, -0.906123, -0.302477, -0.364297, + 0.143193, -0.184914, 0.470082, 0.916795, 0.358791, -0.393968, -0.936386, 0.362202, -0.495458, + 0.508876, 0.668485, 0.38572, 0.938311, 0.949796, 0.21174, -0.728637, 0.893441, -0.474496, + -0.472354, 0.836779, 0.77481, 0.302151, 0.062684, -0.841166, -0.103804, 0.959126, 0.254659, + 0.085618, -0.207651, -0.348782, 0.596023, 0.061669, 0.650574, -0.176999, 0.436909, 0.41277, + 0.159464, 0.628373, 0.626646, 0.926923, 0.768776, -0.255697, -0.84662, 0.182817, -0.008728, + -0.260825, -0.167455, 0.047033, 0.72963, 0.311741, -0.355094, -0.411225, -0.247631, -0.386503, + 0.899223, 0.529645, 0.902976, 0.003194, 0.201671, 0.346765, -0.946553, 0.089297, -0.06689, + -0.560654, -0.775947, 0.885274, 0.813066, 0.463469, 0.95425, -0.405808, -0.172723, 0.378619, + -0.165227, -0.196235, -0.826561, 0.268661, -0.604327, 0.036366, 0.974976, -0.307815, -0.315192, + 0.603313, -0.367653, -0.085877, 0.933738, -0.409974, -0.71541, -0.559644, -0.277246, -0.474499, + -0.518932, 0.403944, 0.169938, -0.320062, -0.776911, -0.31486, -0.422039, -0.325419, -0.902123, + 0.215429, -0.734724, -0.778799, -0.817033, 0.417384, -0.602027, -0.412751, 0.783841, 0.530964, + 0.573391, -0.949507, -0.7171, -0.377511, 0.826098, 0.1023, -0.747897, 0.006262, -0.776671, + -0.219099, -0.274975, 0.865662, 0.309737, -0.174371, 0.168929, -0.288666, 0.3929, 0.395564, + 0.268546, -0.389777, 0.853151, -0.14437, -0.389317, 0.626314, 0.815057, 0.99516, 0.296258, + -0.340894, 0.507892, 0.857955, -0.980834, -0.123887, -0.681965, 0.18636, 0.413585, -0.206588, + -0.083657, 0.450111, -0.16807, -0.839779, 0.800136, -0.503314, -0.109859, 0.094326, -0.060097, + -0.940686, 0.4588, -0.454232, -0.51866, 0.238915, -0.521862, -0.46216, -0.33695, -0.375678, + -0.417637, -0.269686, 0.259876, -0.809218, -0.60528, 0.014591, 0.139068, 0.552292, -0.702444, + 0.319197, 0.56839, 0.55526, -0.931422, -0.381604, -0.859566, -0.632811, 0.556983, -0.149319, + 0.424711, -0.587006, 0.15196, -0.604858, 0.499892, -0.437379, -0.250759, -0.867631, 0.003304, + 0.94948, 0.485378, -0.533541, 0.013449, -0.109648, -0.805074, 0.784091, 0.016121, 0.210597, + -0.403829, -0.467919, 0.16489, 0.369711, 0.224298, -0.481945, 0.970898, -0.147204, -0.612415, + -0.467713, 0.984421, 4.8e-05, -0.135744, -0.416162, -0.262145, -0.842229, -0.794683, 0.585289, + 0.855449, 0.9543, -0.721942, 0.540863, -0.618967, 0.59656, 0.721554, 0.773871, 0.720051, + 0.625573, 0.019464, 0.459482, -0.357771, 0.435435, -0.321402, -0.016791, -0.870379, -0.261475, + -0.525873, -0.337321, -0.638587, -0.899444, 0.065117, 0.648979, 0.910749, 0.583554, -0.518337, + -0.98901, 0.379314, 0.560314, -0.858512, 0.358586, 0.845477, 0.060577, -0.602459, 0.819876, + 0.427016, 0.662201, -0.676286, 0.581946, -0.683074, 0.989494, -0.4237, 0.602567, 0.200242, + 0.26501, -0.153355, 0.410735, -0.416772, -0.942579, -0.384203, 0.783539, -0.26327, 0.314318, + -0.369726, 0.750149, 0.59849, 0.353014, -0.511162, -0.81713, 0.037649, -0.586658, 0.822194, + -0.960976, 0.446868, 0.996914, 0.500828, 0.340979, -0.962147, 0.961893, -0.171048, -0.934408, + 0.987163, -0.406931, -0.070748, 0.91528, -0.693201, -0.70749, 0.162617, -0.133854, 0.230342, + -0.838705, 0.029907, -0.44476, -0.491609, -0.915637, 0.530218, 0.192636, -0.845443, 0.793552, + 0.301621, 0.185563, -0.587136, 0.150805, 0.96354, 0.685884, -0.77887, 0.912821, 0.07751, + 0.480965, 0.776676, 0.852509, -0.779535, 0.875664, -0.679175, 0.074966, -0.698764, -0.219233, + -0.045443, -0.119635, -0.157976, 0.078871, 0.986419, 0.581012, 0.55947, 0.400247, 0.774181, + -0.046149, 0.079512, 0.205797, -0.872131, -0.805557, 0.122601, -0.39125, -0.01835, -0.229459, + 0.155663, 0.650616, -0.331642, 0.800861, 0.789562, -0.767498, -0.772226, -0.809075, -0.54802, + -0.389276, -0.075269, -0.243192, -0.505249, -0.317694, -0.361745, 0.981038, -0.370629, -0.716001, + 0.415698, -0.057762, 0.765564, 0.624833, 0.918729, -0.73236, 0.642863, 0.839239, -0.493832, + 0.91918, 0.749643, 0.010951, 0.482152, -0.349622, -0.872184, 0.25278, 0.298125, -0.653559, + 0.485, -0.854223, 0.860624, 0.96839, 0.272258, -0.627429, 0.486671, 0.170416, 0.271919, + 0.328653, 0.761356, -0.429836, -0.224945, 0.272706, 0.108961, 0.806378, -0.525239, -0.036417, + 0.186853, -0.265589, 0.681717, 0.109382, -0.92423, -0.108336, -0.453557, 0.097171, -0.116216, + -0.991934, -0.182225, -0.095779, -0.294878, 0.91878, -0.218199, 0.642417, 0.247718, -0.844133, + 0.234986, 0.828736, -0.654101, -0.646375, 0.978849, 0.80351, -0.557894, 0.601745, -0.127932, + -0.985929, 0.075133, 0.323094, -0.299961, 0.347883, -0.855101, 0.693016, 0.852534, 0.551467, + 0.169491, 0.329349, -0.723548, -0.249873, -0.095468, -0.556486, -0.73862, 0.672618, 0.678645, + -0.908188, 0.318212, 0.406802, 0.949968, 0.578554, 0.919337, -0.32739, 0.700386, 0.813401, + -0.944328, -0.802707, 0.202405, 0.546038, -0.496813, 0.110134, -0.001452, 0.253108, -0.53735, + 0.564039, 0.665009, -0.693858, 0.009687, 0.002775, 0.321116, 0.931584, 0.293263, -0.227222, + 0.898133, -0.380533, -0.290372, 0.068275, -0.761509, 0.108817, -0.678475, 0.102821, 0.095808, + 0.138421, -0.843296, -0.949784, 0.460117, 0.857596, -0.887372, 0.370394, -0.736122, 0.062691, + 0.930358, 0.758619, -0.73114, 0.618572, 0.522317, -0.001534, 0.968727, -0.397175, -0.232716, + -0.505414, 0.143897, 0.264787, 0.07968, -0.562637, -0.450166, 0.340153, -0.876826, -0.155735, + -0.022152, -0.405164, 0.363918, 0.064454, 0.702065, -0.088812, -0.631138, 0.706552, 0.139649, + -0.286398, -0.659103, 0.234389, -0.953753, 0.263378, 0.494445, -0.8772, -0.654672, -0.718926, + 0.840507, 0.850121, 0.062601, 0.938806, -0.334304, -0.970822, 0.349295, 0.354269, 0.980382, + -0.000289, 0.766396, 0.612964, 0.723769, -0.992332, 0.823458, -0.852453, 0.896511, -0.041441, + -0.886217, 0.278093, -0.203547, -0.898193, -0.362538, 0.103105, 0.778847, -0.30743, 0.593968, + 0.125229, 0.033708, 0.191345, -0.656269, -0.831198, -0.314212, -0.931854, -0.466351, 0.046006, + -0.658609, -0.414796, -0.179686, -0.115203, -0.552015, 0.048051, -0.14036, 0.285996, 0.045167, + -0.49937, -0.344284, -0.011526, -0.623985, 0.078285, -0.070606, 0.387979, 0.236666, 0.748384, + -0.032965, -0.738905, 0.447009, -0.675838, -0.137452, -0.323803, -0.379444, -0.369984, 0.918921, + 0.572457, 0.277137, 0.938957, -0.906222, 0.161368, 0.640176, 0.66429, -0.795854, 0.35589, + -0.569686, -0.039074, -0.20867, -0.834965, -0.953914, -0.657898, 0.453771, 0.457435, -0.869764, + -0.375542, 0.016334, -0.864583, 0.563455, 0.905732, 0.176862, -0.743015, 0.233186, 0.363014, + 0.791843, -0.53207, -0.89591, 0.439351, 0.062256, -0.325826, -0.419022, -0.515616, 0.809497, + -0.172539, 0.721207, 0.89265, 0.126676, 0.213018, -0.068105, 0.686815, -0.901088, 0.397683, + -0.162929, 0.456616, -0.004454, -0.370266, -0.10795, 0.539993, -0.69453, -0.632099, -0.223996, + -0.362725, 0.392839, 0.67297, -0.107099, 0.945574, -0.41782, -0.561159, -0.447694, -0.688972, + -0.700934, -0.891016, -0.886279, 0.260999, 0.609854, 0.938847, 0.851797, -0.057594, 0.194047, + -0.59832, 0.386521, -0.958841, 0.471673, 0.183416, 0.307304, 0.366148, -0.459105, 0.858106, + 0.477252, 0.656895, 0.132079, 0.627987, 0.673001, 0.453235, 0.761769, -0.181378, 0.657536, + 0.230399, 0.601696, 0.973999, 0.226437, -0.371167, -0.099496, 0.281528, 0.168609, -0.27317, + 0.783518, 0.600807, -0.621154, -0.081481, -0.095994, -0.626731, 0.145855, -0.306993, -0.516261, + -0.321547, -0.356549, 0.95664, 0.383572, 0.984113, 0.274196, 0.226431, 0.411094, 0.171633, + -0.784771, -0.591354, -0.242279, 0.015033, 0.376714, 0.385048, 0.793313, 0.203573, -0.341293, + -0.752026, -0.732411, -0.597337, 0.301604, 0.540272, 0.874913, -0.316312, -0.078883, -0.296963, + -0.003654, 0.321001, -0.021971, 0.046295, 0.126687, 0.372418, -0.303401, -0.596298, 0.235925, + -0.118406, -0.453028, 0.419963, 0.009069, -0.145465, -0.484084, -0.131566, -0.850325, 0.22749, + 0.015007, 0.606836, 0.06457, 0.079952, 0.272413, 0.760938, -0.472558, 0.597005, 0.244562, + -0.667117, 0.348187, -0.599733, -0.314781, -0.476669, -0.680314, 0.787571, -0.893821, 0.500015, + -0.900012, -0.121706, 0.059642, 0.710911, -0.361894, 0.287827, 0.154906, 0.588385, 0.059452, + 0.374445, -0.604091, -0.694911, 0.891078, -0.728667, -0.17024, -0.12088, 0.97788, -0.216114, + -0.761304, -0.253499, 0.515821, 0.39629, 0.827292, -0.204717, 0.471045, -0.94104, 0.38694, + 0.459464, 0.645087, -0.573442, -0.266978, 0.24193, -0.710615, -0.795481, -0.962043, 0.055823, + 0.620988, 0.25686, 0.060965, 0.348426, -0.628404, 0.105426, -0.248424, -0.495144, 0.862373, + -0.773653, 0.146548, -0.878713, -0.033927, -0.444362, 0.329147, -0.561538, 0.64004, -0.811467, + 0.600636, -0.751179, 0.535585, -0.421066, -0.00233, -0.182503, 0.64903, 0.327728, -0.881204, + 0.091941, -0.689862, 0.747561, 0.1643, -0.257181, -0.510169, 0.346129, -0.598897, 0.474262, + 0.545675, 0.613803, 0.261238, -0.875369, 0.719317, -0.310223, -0.295636, -0.107439, 0.731135, + 0.768927, 0.154412, 0.477152, -0.931997, 0.002362, -0.884684, 0.34035, -0.712449, -0.356405, + 0.699031, 0.955696, -0.60038, -0.555011, 0.123846, 0.393105, -0.162872, -0.31229, -0.656844, + 0.426876, 0.979762, -0.484079, 0.471664, 0.488395, 0.803797, -0.113854, 0.031498, 0.734699, + 0.632114, 0.987707, -0.28657, 0.395687, 0.698276, -0.678816, 0.198659, -0.223753, 0.642824, + -0.449127, 0.070139, 0.598311, -0.916117, -0.844362, -0.512184, 0.641417, 0.670528, -0.68297, + 0.190687, -0.529881, -0.464153, 0.862417, 0.483009, -0.273483, 0.147202, 0.193757, 0.234241, + -0.342279, -0.588886, 0.662064, 0.134373, 0.41855, -0.37873, 0.48437, 0.727766, 0.608173, + 0.271896, 0.983883, -0.002187, 0.212897, 0.95013, 0.971897, -0.42222, 0.900803, 0.36906, + -0.111938, 0.873146, -0.518029, 0.649749, 0.990944, -0.689702, -0.590093, -0.990914, -0.179962, + -0.908204, -0.334922, 0.303595, 0.706878, 0.557035, 0.555081, 0.414864, -0.620233, -0.793995, + 0.041454, 0.949583, 0.056306, -0.08601, -0.678737, -0.495838, -0.770864, 0.800668, -0.16293, + -0.883409, 0.107275, 0.072568, -0.123549, 0.357964, 0.537779, -0.94041, -0.766092, -0.04804, + -0.927138, -0.90836, 0.88291, -0.076059, -0.49439, -0.343017, -0.780722, 0.780366, -0.216839, + -0.562238, -0.758413, 0.58449, -0.138231, -0.105057, -0.260633, -0.482723, 0.17789, 0.76937, + -0.57958, 0.047913, -0.760513, -0.468897, 0.87777, 0.010485, 0.963319, -0.175204, -0.545044, + -0.597488, 0.886315, -0.768987, 0.524794, 0.248582, 0.295107, 0.56424, -0.261623, 0.618764, + -0.796723, -0.351841, 0.732041, 0.29678, -0.133173, -0.233531, -0.610615, 0.608092, -0.0318, + -0.033834, 0.236493, 0.737948, -0.510183, -0.344397, 0.677631, 0.564772, -0.491936, -0.98926, + 0.185511, 0.525894, 0.238857, 0.709314, -0.793474, 0.504286, -0.621679, 0.562807, 0.743714, + 0.316716, 0.809075, -0.659152, -0.894376, -0.961505, 0.627831, 0.35031, -0.732267, 0.484281, + 0.912412, -0.986084, 0.725421, 0.153373, 0.093021, 0.899793, 0.90559, 0.421351, 0.790135, + 0.416024, 0.162942, -0.879011, 0.186783, -0.711446, 0.307866, 0.176434, 0.022466, -0.683727, + -0.606197, 0.739138, 0.487019, 0.52724, -0.297977, -0.172196, -0.256278, 0.687693, -0.431688, + 0.629865, 0.689494, -0.914556, 0.006107, -0.190454, -0.552822, 0.431718, -0.121495, 0.875508, + -0.625904, 0.464631, -0.853793, -0.501222, 0.068213, 0.790093, 0.526719, -0.821085, 0.110765, + -0.58949, 0.04333, -0.833073, -0.293373, 0.685866, -0.917536, -0.953423, 0.182144, 0.137084, + -0.182886, 0.873212, -0.602089, -0.60708, -0.747476, -0.186123, -0.255205, 0.618747, -0.056149, + 0.319354, -0.415557, 0.811192, 0.843019, -0.895569, -0.257, -0.848497, 0.424827, -0.873683, + -0.472812, 0.999172, -0.954919, 0.737805, 0.084479, 0.799635, -0.507489, 0.656829, 0.120654, + 0.076912, 0.682532, -0.950527, -0.805451, 0.965763, -0.600497, -0.720808, -0.048895, -0.320102, + -0.136812, -0.669986, 0.360819, -0.860482, 0.080993, 0.583539, 0.192136, 0.13287, 0.146264, + -0.292951, -0.190498, -0.421693, -0.675529, -0.529456, 0.988561, -0.167356, 0.350296, 0.691554, + -0.078118, -0.537974, -0.677539, -0.368403, 0.356936, -0.842159, -0.122097, 0.380387, 0.815855, + 0.300931, 0.197767, 0.684591, 0.462088, 0.338314, -0.310047, -0.801899, -0.216002, -0.181364, + 0.073437, -0.10998, 0.404289, 0.66455, -0.40542, -0.948861, -0.51306, -0.478476, 0.56684, + -0.645044, -0.094057, -0.211939, -0.606932, 0.453285, -0.416556, -0.051732, -0.703085, -0.10086, + 0.142086, -0.040693, -0.373648, 0.297084, -0.259098, -0.554399, -0.737433, -0.21183, -0.944678, + 0.83002, -0.477728, -0.414418, 0.092439, 0.259233, -0.094292, 0.686023, -0.58295, 0.358381, + -0.002255, -0.813471, -0.387295, 0.254487, 0.191042, 0.727135, 0.668993, -0.545423, -0.427029, + -0.212041, -0.716421, -0.26999, -0.818313, 0.380342, 0.707559, 0.079176, -0.715881, -0.757308, + -0.389299, 0.290853, 0.024392, 0.181822, 0.942481, 0.464442, 0.215023, -0.202322, 0.473049, + 0.365841, -0.900102, -0.590709, 0.033566, 0.379442, 0.486503, -0.595279, -0.992114, -0.052092, + -0.114317, 0.29018, -0.275006, 0.764523, 0.066724, 0.730247, -0.696314, 0.400036, 0.119156, + -0.500148, 0.495748, -0.984019, 0.808467, 0.080588, 0.096553, 0.462446, 0.083012, 0.428652, + 0.636214, -0.780458, 0.66156, -0.149739, -0.232549, 0.201282, 0.782152, -0.543615, -0.673931, + 0.620607, -0.469668, 0.32195, -0.147326, 0.275253, 0.763115, -0.506799, -0.485264, 0.490621, + 0.054752, -0.110058, -0.878388, 0.847258, -0.037871, -0.184187, -0.41049, -0.197338, 0.486034, + -0.022983, 0.855209, -0.057735, -0.143458, 0.564452, -0.025876, -0.199593, 0.334227, 0.788631, + 0.24955, 0.696318, 0.648038, 0.282798, 0.347689, 0.322684, 0.103727, 0.850736, 0.923141, + 0.355989, -0.049939, 0.896594, -0.778321, 0.734784, 0.529826, 0.642136, -0.076836, -0.746098, + 0.713339, -0.437256, 0.263113, 0.566545, -0.934526, 0.066364, -0.355226, 0.709755, -0.636701, + 0.60717, 0.62357, 0.551715, 0.960012, 0.151451, -0.906381, 0.713865, 0.091547, 0.019845, + -0.952589, -0.224756, -0.485368, 0.979411, 0.712029, 0.745988, 0.684837, -0.619874, -0.42947, + -0.39135, -0.400882, 0.778432, 0.339767, 0.801354, -0.046779, -0.891427, -0.290123, 0.702795, + 0.608806, 0.309572, -0.293328, -0.933371, -0.537327, 0.52138, -0.403358, 0.478339, 0.273041, + -0.384087, 0.609078, -0.321333, -0.033223, -0.380913, -0.948572, 0.161238, 0.288969, -0.503481, + 0.613447, -0.897056, -0.963977, -0.617649, -0.345605, -0.111058, -0.193248, 0.456388, -0.877625, + 0.147248, 0.017318, 0.26413, 0.99408, 0.615448, -0.553705, -0.819453, -0.242101, -0.501627, + 0.349305, 0.009167, 0.804324, 0.392806, -0.18387, 0.03437, 0.239486, -0.124087, 0.806935, + -0.7819, 0.487406, -0.637444, -0.876081, -0.205297, 0.487305, 0.706562, 0.250942, -0.086429, + -0.056059, -0.405381, -0.089737, -0.069094, 0.850963, 0.585244, -0.800224, 0.004137, -0.61507, + -0.158741, -0.794768, 0.259961, -0.721078, 0.987221, 0.755203, -0.688359, -0.941464, 0.039018, + -0.279152, 0.293567, -0.676914, 0.409341, -0.863749, -0.52777, -0.525702, 0.483891, -0.026181, + -0.961029, -0.57112, -0.462777, -0.92783, 0.128047, 0.356338, -0.183478, -0.397945, -0.006065, + -0.794282, -0.608902, -0.022806, 0.888377, -0.307508, 0.495659, -0.39355, -0.266198, -0.951944, + 0.828485, 0.973728, -0.021003, 0.63537, 0.817942, 0.496718, 0.515019, -0.951991, -0.939671, + -0.76754, 0.312786, -0.864977, -0.763345, -0.484703, -0.921685, 0.001347, 0.144268, -0.5852, + 0.654765, -0.379645, -0.281527, 0.761875, 0.858552, -0.11472, -0.717878, -0.501669, 0.127339, + 0.586192, 0.497845, -0.441582, -0.945367, -0.875147, -0.318156, 0.012544, -0.449176, -0.790705, + 0.105388, -0.793741, -0.767924, -0.812946, -0.270973, 0.883258, 0.390919, -0.118569, 0.205811, + 0.398209, 0.005826, -0.806574, -0.616113, -0.679353, -0.025392, -0.915402, -0.181821, -0.365672, + 0.98137, 0.812824, 0.580854, 0.056082, -0.323773, 0.25507, -0.69093, -0.426504, -0.200885, + -0.234955, -0.947302, 0.397531, 0.823482, -0.551573, 0.269566, -0.115974, -0.036472, 0.05829, + 0.866583, 0.133991, -0.632677, -0.359714, 0.488527, 0.312055, 0.019436, -0.131977, -0.389077, + -0.354927, -0.527486, 0.163862, 0.280842, 0.765745, -0.225913, 0.071589, 0.646289, 0.434991, + 0.128488, 0.307279, 0.051906, -0.857792, 0.038551, -0.218579, 0.902412, 0.902628, 0.198391, + 0.893803, -0.515019, 0.869174, 0.860985, -0.038221, -0.802509, -0.322696, -0.267427, 0.016518, + -0.906651, 0.185326, -0.415892, -0.256041, -0.516492, -0.211134, -0.928725, -0.530168, 0.092125, + 0.655276, 0.908748, -0.756456, 0.419921, -0.563696, -0.773157, -0.044035, -0.573647, -0.861246, + -0.934536, -0.669348, 0.821736, 0.557708, -0.395847, -0.669321, -0.769242, -0.590521, -0.411498, + 0.600589, 0.327256, -0.385372, 0.688431, -0.621233, -0.814688, 0.21825, -0.551401, 0.284478, + 0.847236, -0.472905, -0.697812, 0.3764, -0.903147, 0.892178, -0.472256, 0.48346, -0.795172, + -0.676868, 0.110155, 0.355405, 0.775395, 0.836336, -0.057512, -0.128567, 0.165302, -0.232291, + 0.034041, -0.947048, -0.820907, 0.685262, -0.584357, 0.787485, 0.109744, 0.243585, 0.908878, + -0.55619, -0.157858, 0.177169, 0.341642, -0.973214, 0.355419, -0.589726, 0.13135, 0.67655, + -0.099615, -0.031635, -0.074715, 0.834483, 0.568329, 0.168169, -0.601815, -0.543037, 0.796555, + 0.719421, 0.57901, -0.779717, 0.778793, -0.095592, 0.736757, 0.868549, 0.109611, -0.416118, + 0.940651, -0.52112, 0.653415, -0.95889, -0.314513, -0.871855, -0.448576, 0.424619, -0.716528, + -0.864804, 0.715035, 0.533821, -0.010935, -0.704961, -0.264936, -0.323781, 0.61759, -0.327087, + -0.288016, -0.708859, -0.470988, 0.541449, 0.644286, 0.145287, -0.375198, 0.960491, 0.19738, + -0.385996, -0.346597, -0.139951, 0.474098, 0.365768, 0.724961, -0.045057, 0.827093, -0.406187, + -0.460553, -0.369297, -0.938208, -0.65644, -0.904875, -0.059098, 0.009427, -0.259542, -0.683384, + 0.907289, -0.33134, 0.476553, 0.69641, -0.657357, -0.125023, 0.577967, 0.969359, -0.126161, + 0.724623, -0.784866, -0.649739, 0.822335, -0.09468, 0.987923, 0.072717, -0.414709, 0.949715, + 0.874484, 0.092806, -0.606205, -0.043297, -0.480917, 0.728681, 0.046324, 0.210521, 0.606465, + 0.331241, -0.624266, 0.830724, 0.614345, -0.617336, 0.756103, 0.283703, -0.196849, -0.715163, + -0.165923, -0.980443, 0.570761, 0.724254, -0.287898, 0.92705, -0.370291, 0.171248, -0.696894, + -0.042278, 0.40423, 0.430735, -0.033533, -0.504262, 0.698985, 0.662066, 0.16048, -0.459876, + 0.212026, 0.002674, 0.913603, 0.148193, 0.077129, 0.068359, 0.532009, -0.012356, 0.857144, + 0.52099, -0.755627, -1.1e-05, -0.848807, -0.767809, 0.194293, 0.224719, -0.087512, 0.950462, + -0.537212, -0.419086, -0.160146, 0.006063, -0.084702, 0.900389, -0.422346, -0.523075, 0.08595, + 0.751082, 0.237356, 0.538733, 0.193585, 0.852288, 0.600624, 0.715569, -0.13469, -0.827896, + -0.474364, 0.340668, 0.701547, -0.390704, 0.827419, 0.143726, 0.003972, 0.038984, -0.176673, + 0.936189, 0.043435, 0.612509, -0.844014, -0.515221, 0.112437, 0.7985, 0.476087, 0.190459, + -0.987992, 0.0188, -0.660102, -0.853872, 0.136743, -0.632705, 0.907639, -0.543542, 0.322268, + 0.586963, -0.777237, 0.51178, -0.133896, 0.518163, 0.967735, -0.426165, -0.433104, 0.794549, + 0.1112, -0.099733, 0.758668, -0.483144, -0.049376, 0.686876, 0.390811, -0.646815, 0.259917, + -0.762437, -0.543073, 0.643012, -0.266512, -0.509357, 0.070882, 0.24437, -0.621617, -0.674363, + -0.968469, 0.258384, -0.645229, 0.076208, -0.223658, -0.65386, -0.319099, -0.76869, -0.529333, + -0.031171, -0.854915, -0.877033, 0.749061, 0.094098, -0.442254, -0.033249, 0.741565, -0.834266, + -0.530184, -0.72314, -0.072701, -0.034413, -0.779306, 0.694084, -0.76792, 0.933636, -0.688369, + -0.137046, 0.186987, -0.444477, 0.919642, -0.689434, -0.055428, -0.734261, 0.277591, 0.852587, + 0.927586, 0.118714, -0.500645, 0.971845, 0.07463, 0.676577, -0.519417, -0.464093, -0.830133, + 0.920126, 0.165884, -0.718189, 0.085889, -0.428905, 0.049956, 0.331923, -0.496235, 0.174499, + -0.631382, 0.192696, -0.965536, 0.159351, 0.993519, 0.921113, 0.364781, 0.735829, 0.972258, + 0.283369, 0.333518, 0.130034, 0.88533, 0.859041, -0.47026, -0.04111, -0.503843, 0.35883, + -0.968992, 0.353868, -0.274448, 0.362652, 0.312106, -0.497619, 0.518811, 0.42465, -0.850041, + 0.997752, 0.860753, 0.622182, -0.1015, 0.354288, -0.541016, -0.339799, 0.471959, 0.445168, + 0.395985, -0.953738, 0.828679, -0.417687, 0.865416, 0.823951, 0.370651, 0.99629, 0.57422, + 0.586486, -0.339572, 0.927485, 0.262095, 0.590836, -0.226108, 0.724221, 0.887102, -0.766251, + 0.819804, -0.66089, -0.688473, -0.835686, 0.28896, -0.750827, -0.376434, -0.502686, 0.267265, + -0.981761, -0.458441, 0.007316, 0.089802, -0.451624, 0.358264, -0.659754, -0.84689, -0.142165, + -0.540648, 0.630333, -0.683519, -0.083952, 0.415354, -0.875739, 0.77412, -0.454375, -0.272116, + -0.611714, -0.372638, -0.38559, -0.889877, 0.341708, -0.003204, 0.978231, 0.674676, 0.869934, + 0.294227, 0.525459, 0.936385, 0.82104, -0.768399, -0.224229, -0.964465, 0.037831, -0.35319, + 0.867917, 0.158105, 0.011006, -0.723352, -0.784731, 0.157424, -0.496882, -0.459252, 0.701434, + -0.521319, -0.445105, 0.767808, 0.390699, -0.568208, 0.302848, 0.504137, -0.888201, 0.186807, + 0.22847, -0.038947, 0.958801, -0.660976, 0.542117, -0.531217, -0.856106, 0.681519, -0.479722, + 0.047001, 0.525902, -0.834659, -0.855989, 0.340461, 0.871926, -0.105816, 0.704222, 0.351401, + 0.285303, -0.637572, 0.951718, 0.458041, 0.154624, 0.707304, -0.859227, 0.215484, -0.470729, + -0.101548, 0.327633, 0.442897, 0.229406, -0.773953, -0.625833, 0.017461, -0.173191, -0.837014, + 0.985166, 0.125783, -0.71055, 0.438586, 0.434499, -0.490566, 0.501444, -0.620343, 0.346481, + 0.949905, 0.660131, 0.493689, -0.203451, 0.187735, 0.348966, 0.244247, -0.202592, 0.139527, + -0.405031, -0.565267, -0.922836, -0.815309, -0.627715, 0.95589, 0.200115, -0.904621, -0.511169, + 0.233579, -0.299306, -0.28306, -0.375515, -0.24424, 0.115027, 0.059218, 0.642482, 0.639943, + 0.822991, -0.031811, -0.44652, 0.003412, -0.662214, 0.409122, -0.12065, -0.320276, -0.847812, + 0.481916, 0.558175, 0.912227, -0.35427, 0.301311, 0.037695, -0.63697, -0.625149, 0.512085, + -0.574323, 0.728184, 0.349359, 0.341509, 0.658576, 0.489416, 0.431283, 0.518842, -0.424367, + -0.530281, -0.183201, 0.555168, 0.699827, 0.736412, -0.315437, -0.126885, -0.68682, 0.616596, + -0.663127, -0.411489, 0.825765, 0.243013, -0.418632, -0.673372, -0.687674, 0.807026, -0.914004, + 0.864129, 0.799965, 0.061962, -0.080155, 0.777722, 0.440977, 0.945511, 0.807812, -0.65576, + 0.617119, 0.50433, -0.710012, 0.480272, -0.519412, -0.595792, 0.018656, -0.122881, -0.268882, + -0.655807, 0.547038, 0.99707, -0.221582, -0.673774, -0.051564, -0.86881, -0.812056, -0.333122, + 0.628305, -0.766114, -0.159583, -0.51927, -0.920789, -0.225111, -0.058251, -0.168141, 0.731135, + 0.400562, 0.622595, 0.391689, 0.104918, 0.542759, -0.63795, 0.509534, 0.476314, -0.424407, + -0.034321, -0.756477, -0.875048, -0.001105, 0.179055, -0.215706, 0.30895, -0.772002, -0.549682, + 0.690196, -0.973172, 0.157021, 0.769873, 0.749687, 0.341118, -0.910901, 0.128737, -0.351658, + -0.28111, 0.766192, -0.339842, -0.716171, -0.802738, 0.631384, 0.048253, 0.987665, 0.204503, + -0.931919, 0.247408, 0.915044, 0.62023, 0.30009, -0.751304, -0.599635, 0.679014, -0.668658, + 0.228133, -0.128123, 0.335081, 0.065432, -0.76167, -0.398608, 0.872191, 0.117716, 0.507055, + -0.504503, 0.791641, -0.214064, -0.337064, 0.202855, -0.358313, -0.40185, -0.143095, -0.05709, + -0.568754, 0.341814, -0.969182, 0.613863, 0.927464, 0.161783, -0.233658, -0.915901, 0.469602, + 0.81938, 0.854926, 0.08917, 0.332462, 0.95821, 0.149259, -0.48277, -0.949428, 0.437211, + 0.389543, 0.888684, -0.509105, 0.429523, -0.330854, -0.248535, 0.583487, -0.916678, 0.737137, + 0.465099, -0.594319, 0.510296, -0.251532, 0.089997, -0.267658, -0.979113, -0.103568, 0.48792, + -0.116347, -0.492413, 0.031686, 0.182487, -0.279016, -0.775484, -0.536143, -0.163033, 0.360143, + 0.889274, 0.018559, 0.358042, 0.575371, -0.436052, -0.331817, 0.663306, 0.715988, 0.236959, + -0.772782, 0.567586, -0.826495, 0.499822, 0.118514, 0.323015, -0.974748, -0.351575, 0.424697, + 0.769686, -0.286291, 0.89175, -0.223159, -0.603146, -0.433043, 0.062227, -0.177733, 0.484004, + -0.553422, -0.284471, -0.991013, 0.816243, -0.188163, -0.788312, -0.048254, -0.001825, 0.277728, + -0.109761, 0.629063, -0.345024, -0.299311, -0.23747, 0.17853, 0.80122, -0.046013, 0.769429, + 0.785546, -0.52065, -0.08592, -0.472059, 0.415974, -0.351569, 0.30505, 0.059745, -0.656465, + -0.672294, -0.976725, -0.559381, 0.279354, 0.060926, 0.752102, -0.879314, -0.029222, -0.89665, + 0.005854, 0.364337, -0.897043, 0.883152, -0.310591, 0.886036, -0.167851, 0.567315, 0.909077, + -0.364074, -0.243087, 0.524529, -0.856131, 0.591928, -0.628113, 0.928763, -0.655365, -0.411511, + 0.746185, -0.435387, 0.857151, 0.68802, 0.914011, -0.969282, 0.011208, -0.328914, 0.238204, + -0.755051, 0.410054, -0.047374, -0.472689, -0.899604, 0.523068, -0.361905, 0.737876, 0.178014, + 0.30414, -0.151664, -0.138524, -0.33971, -0.865901, 0.628696, -0.629741, 0.582838, -0.337283, + 0.626469, 0.857022, -0.611606, 0.825726, 0.024372, -0.763931, 0.408212, 0.566239, 0.881512, + -0.95192, 0.902962, 0.758107, 0.983762, 0.545006, -0.486113, 0.758612, 0.913917, -0.38237, + -0.16346, 0.782532, 0.804983, 0.660587, 0.766132, -0.513898, -0.172515, -0.399509, 0.519738, + 0.249212, -0.772453, -0.125612, -0.815455, -0.941117, 0.911628, -0.503021, 0.44633, -0.222679, + -0.202499, -0.000646, 0.779928, -0.138336, 0.827466, 0.585108, 0.686009, -0.90694, -0.467595, + -0.814724, -0.212389, -0.207122, 0.203204, 0.895971, 0.448905, -0.695858, -0.627143, 0.755105, + 0.099544, 0.282505, -0.523035, -0.121949, 0.284705, -0.656225, 0.652661, 0.498344, -0.583172, + -0.410081, -0.235101, 0.155626, -0.36682, 0.956621, -0.963209, -0.565199, -0.606979, 0.27038, + 0.141907, -0.284956, 0.853458, -0.863253, 0.35245, -0.550252, -0.227709, -0.963, -0.746507, + -0.848449, 0.436274, -0.375507, 0.523101, -0.541949, -0.247765, 0.121047, 0.837925, -0.269514, + 0.579722, 0.275872, 0.608203, 0.631708, 0.405816, -0.301547, -0.280666, 0.389301, 0.545043, + -0.053373, 0.501275, -0.601619, 0.563658, -0.122715, -0.688172, -0.485884, -0.763698, 0.201717, + -0.593061, -0.286363, -0.062655, -0.610161, 0.025678, -0.126913, 0.316742, 0.722408, -0.603669, + 0.546746, -0.021187, -0.571555, -0.453514, 0.254538, 0.208213, -0.0323, -0.497846, 0.504296, + 0.148371, -0.972131, -0.176727, -0.271312, -0.42671, -0.554698, -0.811262, 0.984904, -0.913415, + 0.929577, -0.786104, -0.242617, -0.409667, -0.53525, 0.355536, 0.579595, -0.656902, -0.46575, + 0.510427, -0.120876, 0.243549, 0.522853, -0.369632, -0.554974, 0.368097, -0.366195, -0.665642, + -0.504416, -0.464965, 0.995718, 0.192323, 0.430673, 0.134325, -0.674146, 0.721638, -0.155449, + -0.258931, 0.814957, -0.509411, 0.203058, -0.850684, 0.512423, 0.397211, -0.822296, 0.558137, + 0.110049, -0.516365, 0.852633, 0.429473, 0.351416, -0.371426, -0.54832, -0.538075, 0.375703, + 0.269386, -0.598498, 0.909952, 0.582617, -0.381808, 0.517379, -0.423898, 0.313828, 0.832333, + -0.884532, -0.497207, -0.056516, 0.149126, -0.822374, -0.657902, -0.095779, -0.144178, 0.215695, + 0.127068, 0.205142, 0.066293, 0.114937, -0.057719, 0.359123, 0.682496, -0.49905, -0.518051, + 0.438915, -0.723134, 0.649858, 0.461979, 0.144632, -0.434141, 0.029986, -0.790654, -0.899682, + 0.941704, -0.896926, -0.829754, -0.388447, 0.056157, 0.229034, -0.492782, -0.097039, -0.22331, + 0.836725, 0.867954, 0.411009, -0.006164, 0.749933, -0.807384, 0.417817, -0.581258, 0.779862, + -0.883988, 0.371553, -0.822183, 0.583648, 0.18285, 0.858039, -0.754217, 0.643609, -0.667363, + -0.539785, 0.380357, -0.168323, -0.789533, -0.850913, -0.259625, 0.276878, 0.878355, 0.735457, + 0.016389, -0.613394, -0.891554, 0.893402, -0.557545, -0.175872, -0.806915, -0.691211, 0.194035, + -0.247221, 0.114514, -0.007648, 0.050949, -0.198145, -0.03867, 0.434668, 0.730519, 0.84523, + -0.815868, -0.845309, -0.149454, -0.076287, 0.551938, 0.941359, 0.256798, -0.710259, -0.11319, + 0.646728, 0.368954, -0.707214, 0.058368, -0.965565, -0.402959, 0.699403, -0.433784, 0.610562, + -0.815674, 0.884104, 0.477005, 0.64801, 0.273093, 0.070847, -0.492485, -0.551793, -0.686719, + 0.826445, -0.34708, 0.024362, -0.940107, 0.268388, -0.340886, -0.799828, 0.123763, -0.921214, + -0.098526, -0.816643, 0.632204, -0.794164, 0.163325, 0.495146, -0.799014, 0.647364, 0.814414, + -0.612997, 0.083737, 0.303243, 0.828205, 0.781269, -0.838812, -0.815067, -0.884218, -0.444741, + -0.201857, -0.358803, 0.658923, -0.689172, -0.798126, -0.781717, -0.590257, 0.979465, 0.126281, + -0.175087, -0.29388, -0.765924, -0.339281, 0.526824, 0.675852, 0.72128, 0.071194, -0.545199, + -0.590367, 0.971854, -0.9026, 0.236745, -0.094416, 0.928469, 0.585759, -0.252638, -0.82976, + 0.13136, -0.69944, -0.105467, 0.25038, 0.488328, -0.270457, -0.675034, -0.851669, -0.947198, + 0.125433, -0.608639, 0.036266, -0.473754, -0.676729, 0.674293, 0.565918, 0.70214, 0.959256, + -0.723539, -0.532315, -0.752845, 0.671477, 0.589207, 0.810639, -0.699715, -0.536291, 0.974877, + -0.794077, -0.666006, 0.368151, -0.874154, -0.282735, 0.424907, 0.819234, -0.11347, -0.884941, + 0.56609, 0.996938, -0.742378, -0.044179, -0.723377, -0.510619, 0.336526, 0.467187, 0.413512, + -0.941884, -0.242427, 0.426193, -0.092822, -0.309152, -0.516553, 0.948178, -0.800458, -0.787718, + 0.728714, -0.607404, 0.604281, -0.551242, -0.135278, -0.483166, 0.826215, 0.693264, 0.048051, + 0.023978, -0.377394, -0.534521, -0.378249, 0.327452, -0.179867, 0.678778, 0.143979, 0.011039, + -0.621429, 0.403412, -0.925007, 0.233641, 0.358806, 0.18097, 0.703773, 0.240007, -0.27618, + -0.699755, -0.928105, 0.504682, 0.544338, -0.762777, 0.267727, -0.367721, 0.842255, -0.344684, + 0.827746, 0.707314, 0.553093, 0.683405, 0.31188, 0.338982, -0.850153, -0.228298, -0.113358, + 0.485207, -0.387503, 0.458203, 0.678975, 0.431178, 0.514693, -0.133287, 0.479026, -0.342926, + 0.866255, -0.025664, -0.058332, -0.880413, 0.924882, -0.139912, 0.744809, -0.654205, -0.836625, + -0.160063, -0.7996, 0.192158, 0.013469, -0.366713, 0.626133, 0.647861, -0.88295, -0.801121, + 0.585023, -0.60736, 0.192964, -0.266325, 0.178822, -0.551832, 0.003196, -0.354011, -0.450482, + -0.491641, 0.223365, 0.647073, -0.024644, -0.009766, 0.825068, 0.806105, -0.14517, -0.818849, + 0.234668, 0.298579, -0.791296, -0.897074, 0.104893, 0.976492, -0.89445, -0.489977, -0.344865, + -0.883314, -0.615726, 0.784927, 0.764835, -0.735691, 0.021437, -0.814449, 0.415342, -0.683013, + -0.509616, -0.463511, 0.147402, 0.668231, -0.418532, 0.184448, 0.796221, -0.060593, 0.103257, + 0.074255, -0.012775, 0.60037, 0.541093, -0.535566, 0.954862, 0.575405, -0.15647, 0.870636, + 0.053782, 0.631915, -0.849093, 0.897624, 0.94269, -0.747212, -0.895047, -0.291045, -0.614813, + 0.267182, 0.445133, -0.127416, 0.701715, 0.037894, -0.293912, -0.853571, 0.317821, -0.942206, + -0.00342, 0.146167, -0.560048, 0.30042, 0.194391, 0.669222, 0.625448, -0.809276, -0.741982, + -0.367023, -0.7194, 0.313538, -0.65519, -0.763475, 0.291262, 0.603518, -0.290722, -0.996457, + 0.141331, 0.512464, 0.781172, 0.094882, 0.694229, -0.894138, 0.956678, -0.645736, -0.682574, + 0.717673, -0.222212, 0.617135, -0.700424, 0.756574, 0.948395, 0.302796, 0.806694, -0.714126, + -0.220813, 0.304379, 0.56509, -0.533959, 0.636335, -0.329121, -0.533755, 0.195613, -0.796508, + -0.917799, 0.332504, 0.340612, 0.384549, -0.131139, -0.731335, -0.803337, 0.956899, -0.86693, + 0.301393, 0.812181, 0.763976, -0.630504, -0.322439, -0.799533, 0.627269, -0.938439, -0.920587, + -0.667601, 0.815699, 0.648187, 0.670045, 0.767287, -0.466381, -0.557687, -0.614335, 0.329958, + 0.388986, 0.207506, -0.769319, 0.088833, -0.530641, -0.196647, -0.154809, 0.049708, -0.876819, + 0.853599, -0.425521, 0.312452, 0.688644, 0.40297, 0.70032, 0.564683, 0.732242, 0.211058, + 0.638699, -0.434674, -0.538845, 0.477505, 0.262385, -0.0375, -0.843509, 0.326764, 0.647753, + -0.115455, 0.229741, 0.445181, -0.987579, -0.164528, -0.370965, -0.511118, 0.611208, 0.991488, + 0.15956, 0.622384, -0.741882, 0.176174, -0.129332, -0.61676, 0.205043, 0.318326, -0.0483, + 0.424644, 0.480109, 0.907042, 0.057968, 0.035628, -0.014313, 0.138003, -0.648418, -0.123089, + -0.845632, -0.701429, -0.851788, 0.741599, -0.5747, -0.080702, 0.106909, 0.883217, 0.45384, + -0.712133, 0.978076, -0.947187, 0.130018, 0.913705, 0.867252, -0.231774, -0.667362, 0.439101, + 0.770862, -0.5331, -0.158241, -0.608152, 0.381887, 0.21285, 0.495694, -0.343098, -0.96531, + -0.421129, -0.782083, -0.24091, 0.363421, -0.831932, -0.046678, -0.97838, -0.708649, -0.700139, + -0.340485, -0.506678, 0.153924, 0.611304, 0.754028, 0.315077, -0.006617, -0.178204, 0.679003, + -0.57273, 0.722809, -0.962812, -0.74637, 0.265264, -0.41187, 0.186571, 0.8713, 0.456732, + 0.978769, -0.423569, -0.47753, -0.126971, -0.2014, -0.43987, -0.062086, 0.90342, -0.548158, + 0.561583, 0.464546, 0.579118, 0.269781, -0.369415, 0.412714, -0.470996, -0.613817, 0.934795, + 0.828888, -0.722703, 0.812253, 0.20736, 0.256327, 0.963866, -0.052508, -0.318048, 0.627776, + -0.258314, -0.240062, -0.403255, 0.984289, 0.477161, -0.162111, -0.01995, 0.069988, -0.592796, + 0.283925, -0.776128, -0.046625, -0.187635, -0.408316, 0.924888, 0.28006, 0.481732, -0.658256, + 0.159373, 0.267975, 0.519119, -0.295078, -0.196376, -0.811891, 0.607777, 0.667557, 0.469088, + 0.508216, 0.59895, 0.942605, 0.327489, 0.360983, 0.314535, -0.564721, 0.250898, 0.301292, + -0.795953, -0.295956, -0.616995, -0.638959, 0.694942, 0.786686, -0.137853, 0.306507, -0.234204, + 0.212018, -0.167407, -0.520214, -0.420736, 0.993312, 0.168565, -0.546856, 0.113517, -0.997655, + 0.008821, 0.767653, 0.115342, 0.23826, -0.941969, -0.188089, 0.590084, -0.733203, -0.467809, + 0.675806, 0.287179, 0.467473, -0.932517, 0.636449, -0.218113, 0.210166, 0.808301, -0.92156, + 0.286112, -0.904023, 0.740339, 0.293632, 0.111269, -0.400612, 0.377035, -0.519054, 0.191158, + 0.839783, -0.750602, -0.285324, 0.233568, 0.173578, 0.013752, 0.86032, -0.259864, 0.257952, + 0.529963, -0.193892, 0.653433, 0.6531, 0.4453, -0.243968, 0.86861, -0.577822, 0.309066, + 0.20079, 0.705827, -0.819665, 0.174336, -0.57589, 0.530032, 0.343393, -0.777885, -0.062607, + 0.279734, 0.42599, 0.889637, 0.449092, 0.19071, 0.533434, -0.946245, 0.666728, -0.117574, + 0.565964, 0.286363, -0.052735, 0.70391, -0.582957, 0.282001, 0.438376, -0.355882, 0.362267, + -0.989151, -0.505069, 0.486205, 0.51542, -0.917898, 0.346068, 0.094028, 0.976145, -0.975385, + -0.238335, -0.566338, -0.608478, -0.163327, -0.919076, 0.783452, -0.353801, 0.350392, -0.58843, + 0.005392, -0.708433, 0.804882, 0.843377, 0.78729, -0.350074, 0.622387, -0.835503, 0.45884, + -0.123434, -0.828674, -0.802551, -0.935789, 0.187391, -0.361688, -0.460564, 0.952005, -0.304676, + 0.337297, -0.176043, 0.603079, 0.298416, 0.63326, 0.261119, -0.219168, 0.88383, -0.071291, + -0.598643, 0.311192, -0.121346, -0.741631, 0.130815, -0.232349, -0.398232, -0.477266, -0.42556, + -0.404963, 0.098259, 0.966068, -0.586135, -0.46652, -0.670347, -0.037946, 0.070114, -0.686393, + 0.45677, -0.896867, 0.925563, 0.188188, -0.100785, -0.358066, 0.449, 0.730234, -0.654088, + -0.250658, 0.736156, -0.187407, -0.73634, -0.321366, 0.034543, -0.186687, -0.685296, -0.626492, + 0.270389, 0.68614, 0.909721, -0.113029, 0.384753, -0.794221, 0.532867, 0.955551, 0.520745, + -0.395381, 0.815319, -0.947078, -0.119997, -0.247776, -0.997466, -0.570476, -0.728586, 0.268771, + -0.08318, 0.459274, -0.224954, 0.82488, 0.113268, 0.828942, 0.812048, -0.848052, -0.671571, + 0.602327, 0.944772, -0.853515, 0.014636, -0.384461, 0.941463, 0.830724, 0.727803, 0.538144, + -0.093801, 0.922738, -0.46795, 0.049424, -0.263117, -0.729506, -0.473887, 0.24246, -0.089221, + -0.662451, -0.127131, 0.172706, -0.699651, 0.603936, -0.850188, 0.009567, -0.818023, -0.901754, + -0.124222, 0.907575, 0.945343, 0.359409, 0.775099, -0.546649, 0.562993, 0.610165, -0.9557, + -0.766331, 0.432022, 0.092406, -0.67688, -0.789123, 0.722729, 0.109241, -0.002213, -0.966715, + 0.877393, -0.66106, 0.445588, -0.120243, 0.032586, 0.49101, -0.266389, -0.280546, 0.797184, + -0.76628, 0.445009, -0.258071, -0.334132, 0.669417, 0.168825, -0.931015, 0.893623, -0.496203, + 0.864486, -0.313844, 0.975039, 0.295002, -0.048308, 0.381733, -0.031097, -0.495984, 0.547009, + 0.64862, -0.125279, 0.94062, 0.063506, -0.528854, -0.544949, 0.672829, -0.405087, 0.631607, + -0.971394, 0.034447, -0.690946, 0.354723, 0.812122, 0.393512, -0.343827, -0.938111, -0.4738, + -0.589817, 0.954917, -0.537663, 0.386653, 0.802766, 0.360518, -0.877506, -0.113596, -0.296798, + 0.644312, -0.093804, -0.052745, 0.889571, 0.237962, 0.463555, -0.321909, 0.653974, 0.143781, + -0.200873, 0.192713, -0.787145, 0.03677, 0.458613, -0.936386, -0.53118, 0.626521, 0.022678, + -0.034062, 0.102049, -0.44882, 0.826923, -0.099153, -0.36411, 0.52639, -0.832348, -0.184453, + 0.100788, -0.310342, 0.544254, -0.853999, -0.288294, -0.420298, 0.925333, 0.399085, -0.745963, + 0.387565, -0.021207, 0.915426, 0.551865, -0.584028, 0.89139, -0.178855, -0.227709, 0.299028, + 0.993511, 0.301729, -0.964864, -0.319225, 0.931187, -0.352453, -0.481095, -0.797087, -0.552013, + -0.546745, 0.238827, 0.399526, 0.954375, 0.656268, 0.014776, 0.539296, 0.571587, -0.862525, + 0.504595, -0.684067, 0.772217, -0.434943, 0.207488, -0.01064, 0.463943, 0.15554, -0.725395, + 0.405091, 0.589896, -0.520764, -0.648707, -0.680934, -0.486555, -0.126076, 0.07477, -0.007053, + -0.264489, 0.620558, 0.052847, -0.580653, -0.26465, -0.587935, -0.352787, -0.943305, 0.17473, + -0.774837, 0.386765, 0.68504, -0.743928, -0.527731, -0.790137, 0.266871, 0.193495, -0.516148, + 0.604081, 0.414947, -0.903538, -0.054395, -0.430489, -0.17339, 0.556805, -0.10756, -0.694514, + 0.703435, -0.914046, -0.343433, 0.385314, 0.883889, 0.970543, -0.23492, 0.333697, -0.878231, + -0.19458, -0.311056, 0.283874, -0.655203, 0.216047, 0.516635, 0.779347, -0.169088, 0.913606, + -0.944806, -0.283374, 0.379115, 0.256426, 0.470938, -0.663575, 0.615732, -0.938525, -0.685678, + -0.068008, -0.971507, -0.950529, -0.887733, 0.803989, 0.219355, -0.319071, -0.041099, -0.871619, + -0.944451, -0.697379, -0.967438, 0.657913, -0.349931, -0.269944, -0.861146, 0.165621, -0.150034, + -0.680788, 0.641161, 0.84291, -0.712779, 0.56658, -0.162377, -0.009441, 0.425649, -0.182318, + 0.849643, 0.615266, -0.649132, -0.608562, -0.9908, 0.320166, -0.752187, -0.838179, -0.640967, + -0.988672, -0.814243, 0.891965, 0.558585, 0.886026, -0.485081, -0.410151, -0.350868, 0.019531, + -0.717765, 0.146602, -0.640899, 0.15802, 0.915998, 0.168899, 0.729444, -0.712209, -0.141124, + -0.617478, -0.110947, -0.397797, -0.567788, -0.965941, -0.370793, 0.133918, -0.17592, -0.931345, + 0.751178, 0.741487, -0.602901, 0.101655, 0.664009, -0.949648, -0.8836, 0.554865, -0.019806, + 0.318438, -0.415855, 0.181311, 0.663241, -0.244648, -0.323005, -0.952189, -0.154308, 0.633666, + -0.945069, -0.077247, 0.728935, -0.285415, -0.369468, -0.301632, -0.405157, 0.119686, -0.962804, + 0.382137, -0.252556, -0.127319, -0.067469, 0.558635, -0.621165, -0.909984, -0.723349, -0.73359, + -0.486869, 0.789816, -0.773615, -0.587828, -0.815204, -0.502363, -0.028073, -0.609766, 0.01057, + 0.337939, -0.170138, 0.43146, 0.229468, 0.966008, -0.051054, 0.866759, 0.748493, 0.478049, + 0.565934, -0.669702, -0.669746, 0.427043, 0.363101, 0.902436, -0.130201, -0.183829, 0.685537, + 0.032295, 0.938822, -0.510073, -0.328102, 0.043208, 0.533344, -0.876668, -0.279916, 0.726239, + 0.208221, 0.706979, -0.338735, -0.630382, -0.682708, -0.56223, -0.751508, 0.495569, 0.268785, + -0.639824, 0.916597, 0.284699, 0.372157, -0.421353, 0.692338, -0.705389, 0.728927, -0.543414, + 0.424736, -0.361764, 0.649669, -0.838671, -0.194979, -0.269916, -0.597972, -0.491194, -0.280605, + 0.103689, 0.709806, -0.164327, 0.980201, -0.47587, -0.514815, -0.052163, -0.181033, 0.317633, + 0.923986, 0.34239, -0.836769, -0.341659, -0.198664, -0.910596, 0.309188, 0.872906, 0.496654, + -0.019801, -0.076131, -0.468294, -0.111094, 0.877037, -0.514122, 0.159986, -0.733721, -0.273462, + 0.057907, -0.755099, 0.271699, -0.858724, -0.408504, 0.695898, 0.938054, -0.078184, -0.714742, + -0.821073, -0.245752, -0.510308, 0.794911, -0.712869, 0.601933, 0.190129, -0.304152, 0.815147, + 0.556489, -0.034975, -0.677778, -0.294326, 0.322427, 0.86647, -0.337458, -0.415583, -0.977051, + 0.614644, 0.976026, 0.688479, -0.557212, 0.716378, -0.303168, 0.522819, 0.584715, -0.815295, + 0.247468, 0.399223, -0.601168, 0.924549, 0.780675, 0.835765, -0.009021, -0.535039, -0.546479, + 0.353447, -0.198669, 0.794818, 0.837505, 0.077169, -0.818685, 0.39693, 0.894895, -0.251169, + -0.523351, -0.233927, 0.14327, -0.741964, 0.534037, 0.427446, -0.382332, -0.370445, -0.474491, + 0.781696, 0.593094, 0.28423, -0.044851, 0.249814, 0.9648, 0.316618, -0.49873, 0.38683, + -0.396841, -0.035509, -0.644077, -0.029257, 0.052169, -0.606477, 0.6429, 0.923589, -0.836437, + 0.289765, -0.690804, -0.198758, 0.479016, -0.017554, 0.303032, -0.323999, 0.954324, -0.469489, + 0.187165, 0.102647, 0.681177, 0.102118, 0.602919, 0.257653, 0.637618, 0.012639, 0.333682, + 0.98642, -0.325796, -0.406928, 0.725909, 0.382399, -0.943909, 0.355663, -0.980754, -0.542923, + 0.391344, 0.526775, -0.225795, 0.846466, 0.993784, 0.779775, -0.918457, -0.363738, 0.060841, + 0.812772, -0.167747, 0.208899, 0.526342, -0.523199, -0.605595, 0.988934, -0.022314, 0.707588, + -0.975092, -0.381699, 0.701687, -0.096814, 0.336825, -0.83772, 0.973327, -0.499111, -0.050564, + -0.654996, -0.443673, -0.857287, -0.875288, -0.204296, -0.441089, 0.738698, -0.004838, 0.777596, + -0.16749, 0.212155, 0.960403, -0.7738, -0.433205, 0.854902, -0.229267, -0.269314, 0.080254, + -0.536842, 0.071918, -0.415629, 0.31724, -0.212276, -0.335564, -0.376706, 0.259808, 0.50184, + -0.91424, -0.69743, -0.959718, 0.466796, 0.749976, -0.960801, 0.259961, 0.202804, -0.536633, + 0.216052, 0.771077, 0.980869, 0.432425, -0.198285, -0.568981, -0.380859, 0.008202, -0.073436, + 0.729682, -0.903709, 0.089256, -0.318049, 0.083392, 0.961642, 0.029254, -0.173438, -0.338936, + -0.997938, -0.90601, 0.435719, -0.610667, 0.567747, -0.283512, 0.360774, 0.729995, 0.146287, + 0.343359, 0.845076, -0.314235, 0.73542, -0.841026, 0.915696, -0.328014, -0.037638, 0.560988, + 0.073417, 0.874414, -0.439517, -0.55117, 0.892704, -0.603592, 0.688185, 0.963117, 0.676932, + -0.378074, -0.014782, -0.9012, -0.544515, -0.206979, -0.660698, 0.576913, 0.523992, -0.286163, + -0.157269, 0.965961, -0.061594, 0.849364, 0.926313, -0.350777, -0.955083, 0.932767, -0.537653, + 0.956274, -0.638397, 0.181373, 0.295669, -0.23622, 0.779814, -0.906674, -0.415538, -0.157413, + 0.765884, 0.46315, 0.643254, 0.43044, 0.899429, -0.249042, -0.308712, -0.137319, 0.393387, + -0.293251, 0.367281, 0.274169, 0.235131, 0.814741, 0.159275, 0.663583, -0.278802, -0.89863, + 0.61116, 0.414732, 0.840075, 0.382093, 0.019985, -0.721804, -0.948087, 0.200692, 0.815804, + -0.077739, -0.326236, 0.50028, -0.484145, 0.352863, -0.81148, -0.90627, -0.583398, -0.17122, + 0.337199, 0.505972, -0.63295, -0.205378, 0.329266, -0.220532, 0.015028, 0.647406, -0.288484, + 0.515562, 0.812541, 0.333364, -0.177689, -0.633181, -0.660947, -0.1943, 0.312516, 0.546918, + -0.04824, 0.805845, -0.396072, 0.199413, -0.511971, 0.26871, 0.853469, 0.350399, 0.067003, + -0.368029, -0.820454, -0.68431, -0.857792, 0.710745, -0.417176, -0.149626, -0.896106, -0.27884, + 0.850565, 0.18385, -0.178563, 0.521209, 0.770953, 0.778167, -0.739897, 0.071797, -0.82117, + -0.689474, 0.767884, -0.796719, -0.490417, 0.47957, 0.972973, -0.971416, -0.64528, -0.392133, + 0.774658, 0.582771, 0.623424, 0.640761, -0.250263, 0.737336, -0.0281, 0.093954, -0.265192, + 0.424211, 0.446562, -0.106, 0.880339, -0.258986, 0.25311, 0.90826, 0.563416, -0.364141, + -0.452981, 0.192995, -0.007579, 0.070379, 0.644164, 0.34955, -0.560844, -0.816465, 0.945418, + -0.11009, -0.393964, -0.734461, 0.960279, 0.504606, -0.633936, -0.863667, 0.868722, 0.430542, + -0.14689, -0.831086, 0.606106, -0.678821, 0.491403, -0.94978, -0.89161, -0.959325, 0.906543, + 0.908739, -0.853284, 0.773034, -0.607826, -0.929353, 0.481261, 0.566862, 0.566828, 0.175497, + 0.959708, -0.861456, 0.461391, -0.316885, 0.049388, 0.689688, -0.716105, 0.438232, -0.19974, + 0.64682, -0.02626, 0.496137, 0.959492, -0.35705, -0.985047, 0.943276, -0.550559, 0.228529, + 0.621938, -0.155294, 0.781534, 0.648054, -0.201328, 0.262188, 0.075784, 0.978289, 0.692329, + -0.666042, 0.096352, 0.539359, 0.764504, 0.341432, 0.424917, -0.184634, 0.02169, -0.692105, + 0.823241, 0.787439, -0.550646, -0.856144, 0.779788, -0.886311, 0.641322, -0.97404, -0.511253, + -0.423395, 0.939805, -0.169215, 0.862587, 0.290542, 0.968783, 0.662348, 0.736474, 0.871849, + -0.295451, -0.274945, 0.322209, 0.880942, -0.368008, -0.786614, -0.782261, -0.462, 0.159565, + -0.115721, -0.26668, -0.467498, 0.260104, -0.823717, 0.983823, -0.154868, 0.186588, 0.329423, + -0.389091, 0.789192, -0.007412, 0.082034, -0.951961, 0.123779, 0.343126, 0.139348, -0.099104, + 0.755093, 0.790604, 0.688462, -0.173562, 0.172745, -0.698218, -0.748642, -0.174774, 0.111775, + -0.582454, -0.834694, 0.454918, 0.365613, -0.660703, 0.665437, -0.747463, 0.75646, 0.531244, + -0.337967, 0.952057, -0.561474, -0.456791, 0.79704, -0.257682, -0.403888, 0.154733, -0.168976, + 0.629991, 0.816429, 0.444818, 0.216268, 0.251217, 0.026035, 0.117437, 0.018989, 0.681895, + 0.559219, -0.100543, 0.377626, 0.055306, 0.353383, 0.821001, -0.680375, 0.142109, -0.208041, + -0.977616, -0.971724, -0.130939, 0.715721, -0.659386, 0.325737, 0.57635, -0.72888, 0.429465, + 0.188734, -0.910412, -0.019227, -0.938808, 0.874303, 0.468682, 0.383164, 0.767726, 0.764764, + 0.992751, 0.412582, -0.721978, 0.928836, 0.277785, -0.3942, -0.372165, 0.935736, 0.222142, + 0.726845, 0.07799, 0.923734, -0.731732, 0.238333, 0.238618, -0.011533, 0.889574, 0.200812, + 0.054171, 0.682532, -0.078946, -0.064611, -0.824459, -0.006552, -0.466775, 0.578982, 0.869938, + -0.93293, -0.579215, 0.96277, -0.426822, 0.889336, 0.984564, -0.250787, -0.809492, 0.500019, + 0.454573, 0.86902, 0.14443, 0.54375, -0.857439, 0.137816, 0.235358, 0.626758, -0.5353, + -0.119504, -0.596066, -0.673012, 0.416291, 0.15249, 0.397346, -0.022771, -0.024566, -0.038397, + 0.540162, -0.691941, 0.215564, 0.548334, 0.579991, -0.479879, 0.774382, -0.666462, 0.521438, + 0.818002, 0.032086, 0.30636, -0.947321, -0.39556, -0.392892, -0.931034, -0.211763, 0.698119, + -0.095479, 0.988177, -0.900175, 0.398815, 0.86471, 0.971959, -0.387915, -0.902913, -0.367543, + 0.741308, 0.087617, 0.9558, -0.730178, -0.626182, 0.509633, 0.342879, -0.649681, 0.930316, + -0.385663, -0.831099, 0.277907, -0.560234, -0.475878, -0.558637, 0.271989, 0.468494, 0.672566, + -0.565867, -0.233711, 0.933422, -0.513693, -0.361464, -0.192285, -0.885481, -0.739126, 0.89089, + 0.184594, 0.186842, 0.39643, 0.608148, 0.671713, 0.716237, 0.403612, 0.753867, 0.653376, + -0.16721, 0.090076, -0.523815, -0.752465, 0.948482, -0.744664, -0.625169, -0.965951, -0.766005, + 0.227316, 0.479983, -0.833532, 0.079577, -0.738253, 0.189332, 0.597302, -0.383678, -0.439023, + 0.651349, -0.644469, -0.204374, -0.832588, 0.700735, 0.318942, -0.397267, 0.711633, 0.946841, + 0.408183, -0.706182, -0.218054, 0.804399, 0.726719, -0.328761, 0.66173, -0.654163, 0.268248, + 0.881506, 0.1815, -0.794613, 0.299927, 0.557317, 0.695477, -0.657801, -0.179506, -0.052046, + -0.174835, -0.22193, -0.360325, 0.344388, 0.475202, -0.19423, 0.785821, -0.005374, 0.243776, + 0.250269, -0.340488, -0.043898, -0.111683, 0.378177, -0.537247, -0.459044, -0.965255, -0.435019, + 0.318745, 0.808282, -0.985864, -0.35975, 0.629145, -0.540775, 0.675183, 0.040357, -0.940206, + 0.169088, -0.599398, 0.194355, -0.89601, 0.939662, -0.426665, 0.639558, -0.629177, -0.838102, + 0.393433, 0.6012, -0.008994, -0.845706, -0.274302, -0.692976, 0.283267, 0.161923, 0.694922, + 0.998221, -0.462273, 0.790081, 0.694766, 0.153716, -0.980441, -0.693577, 0.435731, 0.743079, + 0.53443, 0.094252, -0.608148, -0.878707, -0.571466, 0.007451, 0.131811, 0.765875, -0.721244, + 0.523016, 0.847108, -0.90385, -0.532825, -0.279081, 0.191864, 0.895747, 0.204081, 0.676617, + 0.809129, 0.785051, -0.912029, -0.653333, -0.065384, -0.003649, 0.084302, 0.84009, 0.905733, + -0.292581, -0.462297, 0.080996, 0.126529, 0.616719, 0.355273, 0.311612, 0.328292, 0.744529, + 0.595561, -0.098361, -0.697777, 0.674296, -0.081529, -0.716412, -0.166655, 0.7358, -0.459661, + -0.096423, 0.337352, 0.719077, -0.149665, -0.718289, -0.418031, -0.322793, 0.10909, -0.678994, + 0.881124, 0.263637, -0.72037, 0.546101, 0.050465, 0.978409, -0.020095, -0.013188, -0.965122, + -0.82599, 0.003497, 0.848637, -0.618402, 0.195792, -0.689147, -0.775056, -0.3677, -0.66948, + -0.827391, -0.306944, -0.136633, 0.497869, 0.459761, -0.013126, -0.2284, -0.212447, -0.821384, + 0.695143, 0.897009, -0.919379, -0.954815, -0.936972, -0.161285, -0.002415, -0.652959, 0.552577, + 0.065856, -0.506171, -0.967402, 0.778712, 0.991828, 0.09285, -0.478931, 0.635765, 0.589344, + -0.143497, 0.937763, -0.738941, -0.114597, 0.847461, -0.61875, -0.308462, -0.425156, -0.409368, + 0.880849, 0.616359, -0.909118, -0.611623, -0.013049, -0.325149, -0.550706, -0.982955, 0.737525, + 0.559887, 0.290156, -0.225046, -0.969321, -0.062605, 0.382297, -0.290219, 0.787142, 0.228543, + -0.04962, 0.39521, 0.521129, -0.733462, 0.304101, -0.908893, -0.209542, -0.324216, 0.763553, + -0.96321, 0.355285, -0.911219, 0.433512, 0.244905, -0.3935, 0.295371, 0.959771, 0.608807, + -0.912468, -0.259157, 0.907085, 0.154712, 0.123285, 0.071347, -0.351585, -0.261591, 0.066366, + 0.752753, -0.281848, -0.261693, 0.19036, -0.366006, 0.87226, 0.752264, 0.042011, -0.64667, + 0.279867, 0.848051, 0.32944, 0.419157, -0.529314, -0.985107, -0.376028, 0.031958, 0.888471, + 0.208795, -0.18332, -0.251275, -0.191204, -0.537729, -0.418651, 0.185779, 0.677212, 0.849367, + 0.385097, -0.690972, 0.924453, 0.965609, -0.297175, 0.034478, 0.905198, -0.35165, 0.474067, + 0.166331, 0.557426, 0.348414, 0.992136, 0.847497, -0.682337, 0.601793, -0.19785, -0.523228, + 0.167725, -0.136113, -0.651672, -0.882679, -0.557311, 0.102956, 0.609434, 0.589261, 0.266675, + 0.948627, -0.856482, -0.629427, 0.430459, -0.910849, 0.943121, 0.13788, -0.36855, 0.892291, + 0.466245, 0.841012, 0.753377, -0.17404, 0.907784, 0.132061, 0.096832, 0.347479, -0.782876, + -0.597923, 0.94625, -0.654408, 0.540336, 0.604369, -0.81185, -0.114608, -0.0107, 0.741893, + -0.273649, 0.9032, -0.839116, 0.417762, 0.546002, -0.360246, -0.328863, -0.636945, 0.265305, + 0.335114, -0.351489, 0.808699, -0.153225, -0.155816, 0.781021, 0.175213, 0.535311, 0.589429, + -0.654567, -0.012666, 0.883158, -0.618355, 0.13097, 0.742827, 0.110413, -0.224226, 0.361615, + -0.827148, 0.82159, 0.785564, -0.280033, -0.361758, -0.195607, 0.994972, -0.38386, 0.299443, + -0.949392, 0.302268, 0.605906, 0.32368, -0.047518, 0.072978, 0.865978, 0.43458, -0.231074, + -0.803206, 0.72881, -0.372306, 0.623478, -0.200977, 0.016597, -0.788635, -0.380963, 0.082509, + -0.9664, -0.20579, 0.581049, 0.702845, 0.736592, -0.304963, 0.078717, -0.802452, 0.518012, + 0.177056, 0.837026, -0.155568, 0.956393, 0.495434, 0.853412, -0.06508, -0.784626, -0.784248, + -0.942889, 0.166215, -0.773295, -0.326659, 0.508145, 0.909089, -0.250802, 0.692351, -0.075776, + -0.200116, -0.118343, -0.453432, 0.273697, -0.005413, -0.487233, 0.636058, -0.446738, -0.677279, + 0.347145, -0.061407, -0.550489, -0.816331, -0.29961, -0.765667, 0.543896, -0.124559, 0.515057, + 0.486766, 0.080546, -0.153967, -0.515745, 0.22513, -0.869547, -0.487291, 0.797466, -0.194097, + 0.806723, 0.592174, -0.210806, -0.804893, 0.803093, 0.084242, 0.945038, -0.904412, 0.206073, + -0.86159, -0.121412, -0.876512, -0.910177, 0.050447, 0.985877, 0.076623, -0.092647, 0.932141, + 0.091538, -0.558366, 0.635887, 0.713549, 0.867098, 0.786419, 0.929564, -0.370883, 0.143788, + -0.364903, -0.13311, 0.790612, -0.790131, 0.546464, -0.577783, 0.005484, -0.119062, -0.450428, + 0.085275, -0.506558, 0.905745, -0.362013, 0.632947, -0.238198, -0.78733, 0.776281, -0.276124, + -0.414268, 0.074969, -0.010188, 0.282181, -0.242628, -0.288519, 0.547135, 0.458346, 0.883893, + 0.110361, -0.259596, -0.213045, -0.203783, -0.316027, -0.341282, -0.281753, 0.301579, 0.395674, + 0.761126, -0.973131, 0.775464, -0.201472, -0.977185, 0.653745, -0.566957, -0.450627, 0.331887, + 0.163802, 0.681673, -0.697757, 0.543263, 0.521225, 0.618981, -0.332842, 0.169833, 0.294345, + 0.942876, -0.607674, -0.91819, -0.9044, 0.132443, -0.760014, -0.185117, -0.467466, 0.18115, + -0.708618, 0.616677, -0.982387, -0.54786, 0.20635, -0.983587, 0.246481, -0.374116, -0.505052, + 0.71683, -0.322894, 0.236397, -0.386128, 0.467804, 0.910666, 0.959938, -0.604899, -0.994042, + -0.69928, 0.281707, 0.401451, 0.525214, 0.434243, 0.972821, -0.758325, -0.78398, -0.313151, + 0.77617, -0.767871, 0.749745, 0.166392, 0.618568, 0.990748, 0.973328, 0.960007, -0.245401, + -0.426717, 0.424536, 0.852776, 0.024898, -0.236716, -0.161739, -0.356935, 0.480163, -0.994579, + 0.850919, -0.036723, -0.606208, -0.356703, -0.613851, -0.86892, 0.100622, -0.227108, -0.448891, + -0.170307, -0.137876, 0.440565, -0.808911, -0.023447, -0.013647, -0.817483, 0.921798, -0.474062, + 0.79338, 0.766485, 0.027083, 0.744595, -0.752498, -0.109923, -0.824891, -0.608762, 0.315943, + 0.745154, -0.593427, -0.40406, -0.560701, -0.086882, -0.830621, -0.791505, -0.217556, 0.960805, + 0.172265, -0.416256, 0.66851, 0.738056, 0.683441, 0.009308, -0.108336, 0.64953, 0.537553, + 0.758236, 0.720216, -0.283849, 0.846984, 0.19565, 0.995583, 0.994818, 0.838675, 0.665663, + 0.785174, -0.470017, -0.389295, -0.233051, -0.511829, 0.734709, 0.093483, -0.253273, -0.448033, + -0.890314, 0.071751, 0.879038, 0.657529, 0.792587, 0.683238, 0.420799, -0.028796, -0.739775, + 0.735241, -0.703685, -0.601334, 0.401269, 0.549194, -0.520388, 0.632861, -0.935868, 0.238301, + 0.441467, 0.185745, -0.562707, -0.675344, 0.799244, 0.220306, -0.429606, 0.963192, -0.208732, + -0.18492, 0.257393, 0.832551, -0.44515, 0.005041, -0.448946, -0.452942, -0.136312, -0.00103, + 0.5362, -0.746939, 0.580305, 0.781271, -0.114001, -0.089578, 0.246605, -0.91552, 0.735819, + -0.174934, 0.040218, 0.474092, 0.416394, -0.462704, -0.734516, -0.964707, -0.835029, -0.210218, + -0.776323, -0.100973, -0.528315, 0.566634, 0.68401, 0.846005, -0.655753, -0.705712, 0.346897, + -0.228361, 0.758381, -0.917397, 0.927336, -0.693618, -0.801915, -0.106042, -0.443005, -0.630392, + 0.570908, 0.772323, 0.556759, 0.122061, -0.143901, -0.545614, 0.953124, -0.544655, -0.876777, + 0.848422, -0.080649, 0.671921, -0.331912, 0.778871, -0.705172, 0.601784, 0.778312, -0.013981, + 0.663164, 0.035486, -0.915579, 0.438094, -0.7774, 0.031427, -0.899526, -0.476118, -0.297962, + -0.388618, -0.985057, -0.496686, -0.926575, -0.836015, -0.997678, -0.576067, -0.224084, 0.900876, + -0.703513, -0.760436, -0.814062, 0.935538, -0.127885, -0.26606, 0.548292, -0.590849, -0.264283, + 0.916575, 0.532614, -0.775732, -0.274843, 0.0982, 0.361306, -0.460068, 0.700191, 0.015638, + -0.864623, 0.267959, -0.970758, 0.069619, -0.989028, -0.285245, -0.232405, -0.898268, -0.282852, + 0.033581, -0.563415, 0.141913, 0.528064, 0.118021, -0.981559, -0.00316, -0.468644, 0.285041, + -0.802364, -0.691735, -0.033197, 0.576643, -0.267154, -0.052732, -0.099035, -0.782447, -0.079118, + -0.028145, 0.165523, 0.447576, 0.29781, 0.557671, -0.190639, -0.43199, 0.849253, 0.797324, + 0.545213, 0.728464, 0.489772, 0.883974, 0.869899, -0.813062, -0.942368, -0.518823, 0.764583, + 0.902923, 0.065234, -0.739377, -0.469998, 0.475382, 0.931495, 0.193689, -0.657672, 0.948798, + 0.878098, -0.438695, -0.540337, 0.574909, -0.722632}; + const std::vector k_data{ + 0.834719, -0.201866, -0.01361, -0.534234, -0.988609, 0.226245, -0.356285, -0.586345, 0.797112, + 0.185434, -0.268132, -0.922186, -0.562938, -0.326426, 0.420375, -0.911417, 0.577539, 0.909615, + 0.309448, -0.992874, 0.130464, -0.403553, 0.316325, -0.03738, 0.489282, -0.08136, 0.180374, + 0.39841, -0.740897, 0.166768, 0.891116, 0.69826, 0.062246, -0.175851, 0.413487, -0.879369, + -0.30119, 0.867368, 0.128689, -0.012937, -0.787114, -0.648128, 0.138297, -0.751691, -0.289172, + -0.492628, 0.308176, 0.152767, -0.965533, 0.330055, -0.090161, -0.48446, 0.736668, -0.658338, + -0.912132, 0.109025, -0.542761, -0.406094, -0.874541, -0.248527, 0.794491, -0.907307, -0.676203, + -0.218833, -0.791415, 0.187186, -0.198719, 0.756477, -0.993836, 0.033478, 0.440967, 0.129815, + -0.272331, 0.937815, -0.776227, 0.931392, 0.272248, 0.476172, 0.704965, 0.099525, 0.106036, + -0.202768, -0.90716, 0.421252, 0.747909, 0.41812, -0.156034, -0.89516, -0.016529, 0.260059, + -0.782712, 0.850339, -0.026333, 0.273125, 0.882185, 0.434118, -0.541862, 0.368775, 0.587988, + 0.498918, -0.469829, 0.101572, -0.718521, -0.112349, -0.69392, 0.571664, 0.978422, -0.9685, + -0.467212, -0.422985, -0.700222, 0.909943, -0.77244, -0.522807, -0.830732, -0.003318, -0.74019, + -0.673611, 0.994391, 0.446859, 0.424244, 0.709196, 0.17279, 0.162272, -0.751084, 0.280932, + -0.781262, -0.004351, -0.539641, -0.566818, -0.585499, -0.484086, -0.594718, -0.546887, -0.36427, + -0.913709, 0.800444, 0.33604, -0.994658, -0.999507, -0.503617, 0.385869, 0.915303, -0.155771, + 0.594996, -0.53937, -0.207561, -0.155025, -0.973589, 0.005217, 0.264666, 0.60951, -0.773747, + -0.301096, 0.037725, 0.106079, 0.168648, -0.742832, 0.776122, -0.903643, -0.34716, 0.498327, + -0.249399, -0.481838, -0.986537, 0.688745, -0.022454, 0.483023, 0.159539, -0.743676, -0.353356, + 0.713032, -0.489707, -0.460753, 0.54838, -0.4334, 0.163244, -0.486146, 0.307817, 0.101725, + -0.793758, -0.758469, 0.367708, -0.327495, 0.547782, 0.05204, -0.341971, -0.174012, -0.455607, + 0.493454, 0.793206, -0.031146, -0.644676, 0.718871, 0.813704, 0.681712, -0.018099, 0.24582, + 0.050864, -0.379824, -0.990176, -0.122229, 0.432504, 0.583313, 0.237839, 0.456006, 0.625957, + -0.193324, 0.652998, -0.021004, -0.354153, -0.388325, -0.582803, -0.770198, 0.229081, 0.924051, + 0.142157, 0.135154, -0.375143, -0.394195, -0.313424, 0.346137, 0.172406, -0.367417, 0.195945, + -0.174716, -0.068116, 0.709065, -0.416698, 0.933058, -0.546967, 0.926465, 0.375676, 0.401529, + -0.228749, -0.27252, -0.731464, -0.958977, 0.700152, 0.970032, 0.28676, -0.391152, 0.219626, + -0.037451, -0.86441, -0.800878, 0.347198, -0.291976, -0.237847, -0.602923, 0.441016, -0.504628, + -0.319358, 0.53503, 0.961328, 0.891495, 0.393653, 0.035523, 0.751581, 0.884144, 0.448942, + 0.29396, 0.241135, 0.101758, 0.660039, 0.282877, -0.843142, -0.59071, -0.908126, -0.300539, + 0.05111, -0.42397, -0.919675, -0.650362, 0.425591, -0.070442, -0.167651, 0.161901, -0.211233, + -0.544973, -0.458889, -0.4076, -0.936027, -0.922226, -0.378883, 0.375261, 0.977958, -0.027066, + 0.682898, 0.330655, -0.796445, -0.500287, -0.274381, -0.824212, 0.140053, 0.237533, -0.779535, + -0.210469, -0.882062, 0.995817, 0.591468, -0.377222, 0.859684, -0.625909, 0.841289, -0.384841, + 0.292179, 0.694898, 0.465573, 0.242331, -0.115313, 0.007362, 0.853856, -0.326803, -0.324451, + 0.12779, -0.485204, -0.378075, 0.078141, 0.752076, 0.326048, -0.617907, 0.603825, -0.368282, + 0.257891, 0.058888, 0.714186, -0.223358, -0.406321, -0.199208, 0.009089, -0.471915, 0.687312, + -0.536139, 0.158196, -0.767773, -0.124169, -0.21547, -0.40006, 0.522759, -0.89291, 0.104887, + -0.093547, -0.52007, 0.777666, 0.627766, 0.30219, 0.019453, 0.554258, -0.439257, -0.813733, + 0.9596, -0.374342, 0.200591, 0.019971, 0.841868, 0.994682, -0.672794, -0.010665, -0.810717, + 0.645876, 0.954784, -0.382245, 0.181243, -0.220181, -0.24226, 0.794031, -0.929123, -0.136935, + -0.004101, -0.881968, 0.411192, 0.666864, -0.794358, 0.386918, -0.064699, 0.936889, -0.942369, + 0.848988, -0.371502, 0.84298, -0.510104, 0.169376, 0.233278, 0.620386, 0.468709, 0.558867, + -0.210505, -0.79117, 0.011612, 0.912127, 0.865004, -0.588392, 0.687912, 0.449756, -0.180951, + 0.545846, -0.041705, 0.121765, -0.655257, -0.123148, 0.978916, 0.619499, -0.80817, -0.056638, + 0.636986, -0.427939, -0.125255, 0.4988, 0.840451, 0.90728, -0.722424, -0.94227, 0.706707, + -0.077455, 0.902849, 0.709807, -0.390396, 0.286488, 0.336437, -0.35792, 0.898466, 0.082056, + -0.326838, -0.913401, 0.800322, -0.9916, 0.761146, -0.350232, -0.18307, 0.135086, 0.983012, + -0.658292, -0.710203, 0.601083, -0.485686, -0.368003, 0.578097, -0.414515, 0.595635, -0.390014, + 0.769202, 0.996191, 0.138318, -0.33291, 0.562523, 0.279509, 0.004341, 0.892153, -0.057841, + 0.351504, -0.297822, -0.181427, -0.043045, 0.067285, 0.43732, 0.754347, 0.613034, -0.420605, + 0.896335, 0.67546, 0.360491, 0.109134, -0.565942, -0.596844, 0.005013, -0.743821, 0.350806, + -0.907738, -0.891713, -0.449159, 0.575389, 0.782999, -0.840526, -0.631532, 0.221845, -0.18226, + -0.819505, 0.277799, -0.832374, 0.062585, 0.407642, 0.922404, -0.853437, 0.746697, 0.13915, + 0.870656, 0.984346, -0.249405, -0.155745, -0.241739, 0.786489, -0.433041, 0.660407, 0.411282, + 0.940264, 0.708304, 0.811569, -0.821955, -0.526344, -0.709507, 0.496537, 0.203433, 0.381165, + 0.375329, 0.042326, 0.381614, -0.542255, 0.649693, -0.860922, -0.918858, 0.339613, 0.938819, + -0.365839, 0.941976, -0.354971, -0.75991, -0.155478, 0.553045, -0.520509, 0.937784, -0.447202, + -0.442635, -0.416478, -0.761643, 0.932828, -0.564976, -0.449913, -0.302999, 0.841797, 0.466513, + 0.368189, -0.262962, 0.505376, 0.181403, 0.796744, 0.221992, 0.733963, 0.690124, 0.174751, + -0.958269, 0.20347, -0.754502, 0.17181, -0.111987, 0.795666, -0.717793, -0.83601, 0.445707, + 0.660263, -0.217644, 0.27066, 0.802557, 0.099473, -0.2795, 0.578205, 0.90126, -0.169742, + 0.678504, 0.083434, -0.209387, -0.087275, -0.970777, 0.479725, -0.544295, -0.851661, -0.138642, + -0.407433, -0.636493, -0.210528, -0.10554, 0.303932, 0.137059, -0.13361, 0.22013, -0.647035, + 0.846155, 0.489666, 0.632626, -0.891943, 0.682579, 0.176763, -0.966366, 0.949531, -0.020927, + 0.191783, 0.827302, 0.644882, 0.889675, -0.933364, 0.988636, 0.243583, 0.012987, -0.785719, + -0.537755, 0.970821, 0.743515, 0.779513, -0.084038, -0.557027, 0.233494, -0.476504, -0.650943, + 0.322966, 0.784358, -0.767144, -0.883922, 0.13511, -0.352336, -0.534737, -0.20468, -0.05783, + -0.277337, 0.740541, 0.554139, 0.314526, -0.320672, -0.089135, 0.64832, 0.082914, -0.96473, + 0.095017, 0.523632, -0.256504, -0.186682, -0.135665, 0.614538, 0.825731, -0.784765, 0.658853, + 0.409494, 0.350062, -0.568054, -0.570902, 0.992967, 0.255903, -0.222554, -0.202543, 0.669512, + -0.249108, 0.675625, -0.283525, 0.236374, 0.263435, -0.512233, 0.024718, 0.199735, -0.978004, + -0.196941, 0.095207, 0.823635, 0.221443, -0.84996, -0.293095, 0.990072, -0.130131, 0.754413, + 0.114733, 0.656173, -0.429736, 0.982393, 0.211047, -0.204731, 0.768906, 0.493136, -0.672171, + -0.071903, 0.716727, 0.24914, -0.31626, -0.651077, -0.70026, 0.55588, 0.452498, -0.886131, + -0.205327, 0.253092, -0.884766, 0.861798, -0.106649, -0.406226, 0.111347, 0.36127, 0.222215, + 0.948334, 0.562947, -0.096855, 0.17023, 0.242318, -0.396622, -0.856885, -0.106373, -0.380901, + -0.944632, 0.356629, -0.419579, 0.957412, 0.357641, 0.425863, 0.291464, 0.39, 0.640285, + 0.734626, -0.054644, -0.283486, 0.270934, -0.451205, -0.050812, 0.29198, 0.446831, -0.967273, + 0.387216, -0.38718, -0.704359, -0.425873, -0.021575, 0.492471, -0.890629, 0.271628, 0.900985, + -0.564972, 0.238957, -0.402018, 0.245853, 0.433016, -0.616011, 0.239293, 0.988395, 0.070163, + -0.709828, 0.012508, 0.220527, 0.307916, -0.07209, -0.214312, -0.497212, 0.646199, -0.5649, + -0.340376, 0.6635, -0.469941, -0.130522, -0.398699, -0.886379, 0.482054, -0.444037, -0.461465, + -0.22035, 0.273985, 0.878043, 0.884515, 0.01366, -0.857666, 0.073791, 0.023107, 0.844542, + -0.206692, -0.939626, 0.363301, -0.219311, 0.348932, 0.300891, 0.356459, 0.553152, -0.701054, + -0.814533, 0.936268, 0.914023, -0.394751, 0.957489, 0.197416, -0.262765, -0.541584, -0.532165, + 0.802393, -0.614662, -0.410177, 0.995498, -0.488509, 0.983927, 0.446597, 0.496102, 0.227729, + -0.179013, 0.445846, 0.297854, -0.545573, -0.823799, -0.812735, -0.121026, 0.286, -0.633832, + 0.184237, 0.576055, 0.58816, -0.373677, 0.229236, -0.886641, 0.719434, -0.799198, 0.055503, + -0.314145, -0.829139, -0.866799, -0.642419, -0.725967, 0.763129, -0.153608, -0.667632, 0.003607, + -0.451431, -0.144807, 0.859999, -0.882548, -0.868719, 0.245076, 0.697009, -0.950072, 0.314172, + 0.990757, -0.160659, -0.590065, 0.490587, 0.564838, -0.103814, -0.815591, 0.038782, -0.647599, + -0.853704, 0.624154, 0.6868, 0.401479, -0.815963, 0.848063, 0.732594, 0.859443, -0.066468, + -0.185201, -0.896853, 0.737937, -0.052436, -0.999891, 0.977762, -0.129295, 0.601448, -0.147605, + -0.157318, 0.879662, 0.830278, -0.466724, 0.031244, 0.679247, 0.04806, -0.180208, 0.893423, + 0.890467, -0.268055, 0.757131, -0.099043, 0.029715, 0.802172, -0.077585, -0.099474, -0.217297, + -0.834916, 0.774299, -0.784541, -0.767554, 0.135347, -0.105312, 0.039199, 0.078677, 0.991115, + -0.970928, -0.601242, 0.184467, -0.890237, -0.790028, 0.766246, 0.387208, -0.310187, 0.263893, + 0.174901, -0.09852, 0.830411, -0.000267, 0.709446, -0.77839, -0.406308, 0.169137, 0.534173, + -0.406878, 0.721425, -0.829615, -0.381452, 0.751788, -0.747192, -0.937863, -0.252406, -0.833135, + 0.297474, -0.175817, -0.294357, 0.553019, 0.05818, -0.901559, -0.947615, 0.628042, 0.431251, + 0.549527, -0.849303, -0.193243, 0.854375, 0.807731, 0.679838, 0.928336, -0.313364, -0.774152, + 0.562155, 0.637599, -0.301992, -0.093353, -0.048157, -0.887076, -0.414196, -0.316873, 0.373316, + -0.291774, 0.451322, 0.900446, -0.213167, -0.243748, -0.628099, -0.076318, -0.91513, 0.675928, + 0.862621, 0.266707, 0.945766, 0.503706, 0.662875, 0.923629, -0.687534, -0.078454, 0.375685, + -0.267668, -0.70936, -0.313993, -0.49572, -0.350734, -0.761799, -0.301648, 0.572985, -0.438906, + 0.425966, -0.822376, -0.630136, 0.103646, 0.926069, -0.923516, 0.435276, 0.174896, -0.817106, + -0.726068, 0.503827, -0.499669, 0.700791, -0.69154, 0.755438, -0.510161, 0.405087, 0.299204, + -0.784683, -0.52444, -0.242234, 0.003173, 0.493871, -0.411063, 0.14713, -0.542452, -0.475335, + 0.652575, -0.273883, -0.876235, 0.042005, -0.142555, 0.284287, -0.510121, 0.043071, -0.493341, + -0.604363, 0.228593, 0.309087, 0.185001, 0.923712, 0.092701, 0.085037, -0.130736, -0.966801, + 0.391117, 0.779553, 0.099094, -0.779897, 0.897889, 0.224025, 0.723307, 0.434318, 0.157735, + -0.294632, 0.205302, 0.321762, -0.060624, -0.638738, -0.525541, -0.91655, -0.39111, -0.16121, + 0.817872, -0.534917, -0.983973, 0.548107, 0.862205, -0.779975, -0.009987, 0.317929, 0.644685, + -0.179515, 0.455459, 0.768339, 0.585193, 0.487225, 0.608144, -0.896105, 0.212623, 0.771171, + -0.792318, -0.87657, -0.825798, 0.307036, 0.928066, -0.090702, -0.397525, 0.05918, -0.824533, + 0.173108, -0.657449, -0.673074, -0.729465, -0.283111, 0.651705, 0.203111, 0.695933, -0.964762, + -0.81439, 0.612715, 0.787713, 0.849233, -0.928724, 0.447923, -0.986071, -0.295744, 0.020258, + 0.467628, -0.305482, -0.864665, -0.971739, -0.401022, 0.762089, 0.433885, 0.494634, -0.808759, + -0.898534, 0.925258, 0.653193, -0.431021, 0.084085, 0.720423, 0.90017, -0.804634, -0.495627, + 0.388601, 0.764042, 0.173975, -0.061715, 0.038735, 0.910003, -0.785129, 0.455572, -0.71594, + 0.095079, -0.94465, 0.647679, -0.557167, 0.066428, -0.627156, 0.091579, -0.486962, -0.511417, + -0.433363, 0.620466, 0.13975, -0.25757, 0.851712, 0.195969, -0.323614, -0.045218, -0.390992, + -0.396706, -0.312276, 0.238313, -0.890431, -0.778772, 0.67128, -0.239503, -0.036922, 0.349252, + -0.447293, 0.70054, -0.22636, 0.060935, -0.693546, 0.406639, -0.710765, 0.608168, -0.141575, + -0.365228, -0.334751, 0.381523, 0.979419, 0.271683, 0.612943, -0.842927, -0.235996, -0.566321, + -0.717725, 0.171703, -0.312623, 0.226369, -0.39762, -0.911836, -0.51464, -0.961205, 0.216575, + -0.750732, 0.768701, 0.432804, -0.561085, -0.285781, -0.89595, 0.720428, -0.447182, -0.210074, + 0.073874, 0.48545, -0.298123, 0.490276, 0.514313, -0.123558, 0.663047, -0.876917, -0.544515, + -0.078476, -0.101817, 0.35477, 0.722259, -0.722082, 0.524749, 0.239939, 0.830502, 0.533737, + -0.217359, -0.1418, -0.665465, 0.220647, 0.782547, 0.344106, 0.808546, 0.399405, 0.192416, + -0.216493, -0.863928, -0.18746, 0.848868, 0.869496, -0.338322, 0.820786, 0.824327, -0.853278, + -0.986418, -0.498059, -0.101189, 0.387368, 0.418699, 0.63351, -0.489733, 0.668856, 0.227987, + -0.709922, -0.739043, 0.355506, 0.931087, -0.663927, 0.118491, -0.946684, 0.651356, 0.294827, + -0.254702, 0.528339, 0.414729, 0.674034, 0.100008, 0.009871, 0.479859, 0.337248, -0.84757, + -0.38385, 0.618273, -0.509365, 0.773541, -0.191893, 0.957836, -0.587831, 0.707241, -0.441622, + 0.707164, 0.552164, 0.402681, 0.292623, 0.597407, -0.39861, -0.322431, 0.271681, -0.709283, + 0.059427, 0.417348, -0.908514, -0.05388, 0.056658, -0.769874, 0.785056, 0.045251, -0.940997, + -0.346867, 0.18122, 0.724421, -0.322952, 0.874716, -0.422985, -0.806103, -0.273217, -0.652551, + 0.332353, 0.660361, -0.844073, -0.732056, 0.555791, -0.214512, 0.911844, 0.907848, -0.663611, + 0.589021, -0.964382, 0.402559, -0.57054, -0.00568, 0.971097, 0.135614, -0.537477, 0.459586, + -0.160781, 0.897469, -0.747845, -0.170021, -0.840178, -0.567223, -0.285388, -0.659763, -0.68127, + -0.248085, -0.571184, -0.605941, 0.054028, -0.751017, 0.57603, 0.658968, 0.920101, 0.309864, + -0.094422, -0.174717, -0.475378, 0.680155, 0.553761, 0.722094, -0.194146, -0.690872, 0.333537, + 0.876577, -0.158618, 0.807606, 0.706113, 0.351585, -0.270448, -0.335351, -0.175086, -0.075046, + -0.20582, -0.974094, -0.685869, -0.317122, 0.768412, 0.413183, -0.910749, -0.715929, -0.586738, + 0.948372, 0.247571, 0.801005, -0.807513, 0.934162, 0.81372, 0.069368, -0.467651, 0.391985, + -0.537332, -0.414554, 0.375125, -0.768074, 0.243352, -0.053331, 0.009312, 0.04582, 0.241118, + -0.597709, 0.411585, -0.938084, 0.420675, -0.812587, 0.962361, 0.240485, 0.277009, 0.265662, + 0.194282, -0.382412, -0.973028, 0.598035, 0.605618, -0.182954, 0.050132, -0.064272, -0.22582, + 0.682273, -0.59787, -0.934406, -0.165316, -0.583026, -0.66044, -0.287354, -0.038479, 0.656845, + 0.562734, 0.81399, 0.748388, 0.300755, -0.006519, -0.031929, -0.758978, 0.09533, -0.233831, + -0.275427, 0.84062, 0.458847, 0.627431, 0.645933, -0.578992, 0.28859, -0.125445, 0.348986, + 0.587912, -0.251029, 0.7504, 0.041804, -0.190263, 0.655107, 0.774747, -0.282163, 0.575134, + -0.222805, -0.030571, -0.710786, -0.426404, 0.131652, -0.230638, -0.100222, 0.240365, -0.397305, + 0.528429, 0.980461, 0.796796, 0.88025, -0.277441, 0.032204, -0.335431, -0.487182, -0.223976, + 0.608634, -0.935147, -0.529974, 0.513563, 0.521517, -0.255718, -0.226996, -0.139148, 0.724082, + 0.7226, -0.466885, 0.165731, -0.967998, -0.660161, -0.091511, -0.334421, -0.471822, 0.821794, + 0.497737, 0.077042, -0.294423, 0.014852, 0.820578, -0.186724, 0.076187, 0.309722, 0.592235, + 0.612496, -0.468182, 0.393051, 0.159103, 0.144061, -0.861699, 0.925394, 0.445974, 0.117262, + 0.384242, -0.248357, -0.717965, -0.261475, -0.895084, 0.864851, 0.428013, 0.26242, -0.676375, + -0.651368, 0.570342, -0.810198, 0.193961, 0.748163, -0.871912, 0.705935, -0.824369, -0.194219, + 0.690536, 0.741561, 0.908188, 0.827401, -0.964525, 0.167585, -0.893664, 0.569257, 0.296057, + 0.770564, 0.234612, 0.685558, -0.043882, -0.803144, -0.657719, -0.014072, -0.898107, 0.849225, + -0.600385, -0.758766, 0.97387, -0.64117, -0.446382, 0.016862, 0.318889, -0.358499, 0.535276, + -0.640174, 0.194152, -0.983863, -0.897881, 0.354027, 0.480713, -0.446549, 0.35098, -0.261514, + 0.558631, 0.109196, -0.220941, 0.189994, -0.949069, 0.560162, 0.924297, 0.852929, -0.576102, + -0.402642, -0.438143, 0.152039, -0.700264, -0.750934, -0.388955, 0.875342, 0.263431, -0.905547, + -0.466557, -0.792224, -0.128317, 0.031728, -0.667775, -0.779944, -0.19716, 0.058343, 0.7351, + 0.362907, -0.582345, -0.922989, 0.194998, -0.143468, 0.58641, -0.691822, -0.04853, -0.729419, + -0.501499, -0.590005, -0.208257, -0.083779, 0.929624, 0.886311, 0.77896, 0.239078, 0.015814, + 0.952006, -0.690238, -0.923721, -0.540353, 0.749056, 0.97907, -0.410938, -0.647204, -0.888382, + 0.463356, -0.402741, 0.747459, -0.353579, 0.914878, 0.644704, 0.65874, 0.5319, -0.803564, + 0.13721, -0.596599, -0.3073, 0.619382, -0.508154, 0.630616, 0.051597, -0.474161, -0.485624, + -0.972105, 0.343016, 0.038402, 0.890337, 0.36043, 0.310567, -0.053122, 0.467344, -0.148367, + 0.40093, -0.454742, 0.632344, 0.274213, 0.528261, 0.067533, 0.474618, 0.903739, 0.153887, + 0.695288, -0.915589, -0.079129, -0.869109, 0.071501, 0.187793, 0.282378, -0.42566, 0.468098, + -0.420769, -0.254394, 0.749962, -0.920293, 0.202949, -0.860376, 0.429736, -0.835057, -0.938732, + -0.278561, 0.79978, 0.50525, 0.642696, -0.232969, 0.883347, -0.45597, -0.07, -0.918282, + 0.050383, 0.229265, -0.959793, 0.84067, 0.18814, 0.953676, -0.430487, 0.046632, -0.320937, + 0.845505, -0.559016, 0.575545, -0.702223, 0.751467, -0.931084, -0.497134, -0.451327, -0.169802, + -0.012401, 0.32316, 0.896778, 0.589098, -0.482191, 0.939648, -0.147259, -0.557629, 0.373794, + -0.174265, 0.954351, 0.111554, 0.661853, 0.257484, -0.653519, 0.210466, -0.578696, -0.267779, + -0.322138, -0.792351, 0.387005, 0.707615, -0.985454, 0.544328, -0.789558, -0.978661, 0.344864, + -0.022169, -0.613048, 0.895368, 0.081598, -0.62723, 0.45874, 0.070778, -0.16006, -0.711892, + -0.072546, 0.5787, -0.488539, 0.460594, -0.982742, -0.378367, -0.314595, -0.879727, 0.357403, + -0.782931, 0.578758, 0.204746, 0.013275, -0.533113, -0.340316, 0.24277, 0.961397, -0.478984, + -0.680401, -0.44358, -0.718326, -0.131648, -0.712776, 0.725068, 0.709786, -0.636293, 0.88194, + 0.207319, -0.636218, 0.332151, -0.907578, -0.531823, -0.721808, -0.556156, -0.216458, 0.227716, + 0.190823, -0.977461, -0.95717, -0.15171, 0.853499, 0.370449, 0.892628, -0.473809, 0.278759, + -0.870585, 0.520431, -0.024638, -0.075849, -0.539985, -0.873738, -0.368179, -0.094491, -0.531052, + 0.417968, -0.173525, 0.098462, -0.931274, 0.281627, -0.488904, -0.755615, -0.401333, -0.909472, + -0.763288, 0.745577, 0.818532, -0.694596, 0.216869, -0.515082, 0.935757, 0.610498, 0.397608, + -0.815307, -0.491869, -0.21016, -0.894059, -0.584419, 0.263283, -0.814074, 0.266069, -0.022853, + -0.08235, -0.292103, -0.537429, -0.934944, -0.680488, 0.755228, -0.074122, 0.973749, 0.05272, + -0.11787, 0.599696, -0.941468, -0.619819, 0.573643, -0.260801, 0.791161, -0.091314, 0.713153, + 0.048567, 0.10385, -0.844634, -0.345587, 0.05014, 0.456906, 0.194031, -0.217116, 0.006751, + 0.859628, 0.667063, 0.341219, -0.720676, -0.336241, 0.638441, 0.900176, -0.472751, 0.424905, + -0.234159, 0.634362, -0.150259, -0.794907, -0.989847, -0.037467, 0.294805, -0.589494, 0.786774, + 0.47433, 0.603031, 0.460727, -0.96449, -0.183353, 0.519437, 0.495025, -0.909868, -0.566836, + 0.728885, -0.827933, 0.757898, -0.192935, 0.073363, 0.48773, 0.269202, -0.641041, 0.325728, + -0.858567, -0.504649, -0.175656, -0.200034, 0.727947, -0.545885, 0.839117, 0.465786, 0.32541, + 0.71217, -0.682929, -0.861632, 0.037302, 0.492968, 0.504786, 0.041585, 0.956406, 0.355284, + 0.432093, -0.484688, 0.305038, -0.374321, -0.807831, -0.650534, -0.603745, -0.150782, -0.418829, + 0.918707, 0.413451, -0.831382, 0.042086, 0.862333, -0.040315, 0.162295, 0.273007, -0.329957, + -0.647439, -0.374776, -0.260908, 0.786896, -0.812875, 0.134443, -0.382266, -0.106394, -0.088839, + -0.387903, 0.230748, 0.236337, -0.574257, 0.614419, 0.902085, -0.414188, 0.203826, -0.370285, + 0.685481, -0.077538, -0.891614, 0.2327, 0.828684, 0.003906, -0.256095, -0.027435, 0.566246, + 0.857649, -0.250261, 0.532705, 0.557197, 0.89343, 0.716415, -0.825926, -0.826155, -0.829865, + 0.628362, -0.507811, 0.552376, -0.148896, -0.412054, 0.752486, -0.193142, -0.539678, -0.153258, + -0.636009, -0.96288, -0.175207, -0.056301, -0.569974, 0.886305, -0.223408, -0.254008, 0.792489, + 0.111279, -0.235241, 0.229937, -0.903517, 0.983125, 0.263787, 0.351693, -0.737551, 0.764548, + -0.821885, -0.347489, -0.641201, -0.505032, 0.213402, -0.991713, -0.978977, 0.228445, 0.32958, + 0.014334, -0.379911, -0.27973, -0.13811, -0.202756, -0.618645, 0.752705, 0.202396, -0.66903, + -0.203249, -0.723599, -0.584272, 0.759555, 0.305276, 0.438087, -0.129741, -0.249527, 0.12926, + -0.710423, -0.995024, 0.70302, 0.020379, 0.606558, 0.752423, 0.437381, -0.341792, -0.183378, + -0.05219, 0.059818, 0.038896, -0.78181, -0.549706, 0.728743, 0.032009, -0.453388, 0.676089, + -0.296793, -0.406747, 0.698896, -0.788952, -0.478904, 0.756802, -0.09778, -0.412367, 0.829777, + 0.152169, -0.939561, -0.739474, -0.2535, -0.054879, -0.752912, -0.37683, 0.338047, -0.932571, + -0.937128, 0.259989, 0.190857, -0.965711, -0.93044, 0.830886, 0.997995, -0.437053, 0.996127, + 0.690665, 0.888893, -0.430302, -0.244715, 0.589573, 0.37092, -0.798121, 0.598466, 0.975171, + -0.63506, -0.928451, -0.952568, -0.632673, -0.440371, -0.565129, -0.875836, 0.624557, 0.978047, + 0.837211, 0.6262, 0.443992, -0.394238, -0.806967, -0.590626, 0.45278, 0.218784, 0.127663, + -0.606911, -0.470476, -0.421737, -0.126938, -0.188698, 0.10575, -0.333013, -0.11331, -0.636006, + 0.494158, -0.831053, 0.182531, -0.951366, -0.570283, 0.966907, -0.187121, -0.183705, 0.515884, + -0.862685, -0.230363, -0.032186, 0.112549, -0.165611, -0.705396, -0.916521, 0.010779, 0.835069, + -0.448902, 0.126429, 0.635647, -0.977057, 0.884929, 0.844601, -0.437462, 0.871649, 0.683101, + 0.83071, 0.86604, 0.229333, 0.549484, -0.535449, 0.167941, 0.958954, -0.344592, 0.235659, + -0.510938, 0.369622, 0.325597, 0.75498, 0.005513, 0.477456, 0.60626, 0.161034, -0.943358, + 0.709008, -0.640323, 0.463229, -0.748186, 0.291281, -0.187141, -0.895533, 0.456621, -0.232681, + -0.4161, -0.310708, 0.679935, 0.587595, 0.27242, 0.41843, 0.513644, 0.413708, 0.851486, + 0.602143, -0.514596, -0.152308, 0.466405, 0.79562, -0.830954, -0.495973, -0.495929, 0.944502, + 0.981511, -0.446985, -0.309032, 0.017729, 0.058557, -0.285006, -0.729551, -0.532205, -0.08344, + 0.108244, 0.038373, -0.918301, 0.885442, -0.58248, -0.244854, 0.927631, 0.006526, -0.799367, + 0.576088, -0.376219, 0.969411, -0.290153, -0.747489, -0.743916, 0.005395, -0.161071, 0.778545, + 0.059875, -0.601108, 0.11202, -0.739652, 0.149297, 0.264167, -0.942802, -0.684044, -0.502268, + -0.349656, -0.181682, 0.41936, -0.789308, 0.5172, -0.693191, 0.878132, -0.570733, -0.765005, + 0.716698, 0.813388, -0.338804, 0.876771, 0.112622, 0.363178, -0.058675, -0.273179, -0.361713, + -0.857389, 0.729846, 0.529771, 0.908521, -0.983054, 0.988019, 0.666948, 0.27267, -0.429213, + 0.705647, 0.64125, 0.860633, -0.825644, 0.151995, 0.360106, -0.983711, 0.936039, 0.624227, + -0.803051, -0.858518, 0.040796, 0.802078, 0.290384, 0.140617, -0.064777, -0.9936, 0.601893, + 0.637829, -0.703136, -0.184214, 0.972187, -0.383283, -0.686582, 0.572056, 0.461937, 0.861407, + -0.430607, 0.243146, 0.240737, 0.813646, 0.560386, 0.234978, -0.140693, -0.178388, -0.539661, + 0.420622, 0.852228, -0.508334, -0.683354, 0.744592, 0.134362, -0.471388, 0.64757, -0.814779, + -0.491335, -0.32134, -0.031844, 0.213172, 0.478234, -0.349177, -0.096951, -0.521544, -0.657527, + 0.218187, 0.737386, 0.862952, -0.780459, 0.473211, -0.308521, -0.049835, -0.041735, 0.863742, + 0.837935, -0.809713, 0.21687, 0.584808, 0.268295, -0.023169, -0.472067, -0.705561, -0.984272, + -0.01938, -0.38583, 0.236004, -0.422758, 0.830623, -0.705557, 0.887342, -0.396493, 0.154564, + -0.366704, 0.421482, 0.789174, 0.935045, -0.692597, 0.686488, 0.661412, -0.820602, 0.404199, + 0.193332, 0.548867, 0.876159, 0.022876, -0.370167, -0.450712, 0.129143, -0.146739, -0.716209, + 0.027892, 0.572597, 0.033153, 0.628671, -0.377778, 0.784256, 0.238245, -0.33607, 0.482157, + 0.491772, -0.428763, -0.181895, 0.516111, -0.88128, 0.381022, 0.219232, -0.681653, -0.123285, + 0.292689, 0.695619, 0.731274, -0.645078, -0.650202, 0.472893, 0.986595, 0.853988, 0.393806, + 0.948172, -0.459093, -0.028305, -0.815695, -0.613685, -0.676281, -0.907125, 0.282143, 0.258302, + 0.402591, 0.662733, -0.796518, -0.288616, 0.786881, -0.884987, 0.702839, 0.307946, -0.811833, + 0.215742, 0.032129, 0.19314, -0.286913, 0.45267, 0.777719, 0.69698, -0.095977, -0.919893, + 0.979003, 0.278292, 0.887585, 0.360225, 0.016439, 0.538106, 0.559648, -0.064711, 0.153098, + -0.040597, 0.685191, 0.455257, -0.166742, 0.931898, 0.958243, 0.81236, 0.179179, 0.061162, + -0.522192, 0.728997, -0.718507, -0.861915, 0.301732, -0.935445, 0.318815, -0.481615, -0.01257, + -0.385267, 0.808629, -0.743277, 0.183704, 0.014176, -0.951536, 0.773246, 0.197779, -0.802401, + -0.992488, 0.44219, 0.820894, -0.227881, -0.295414, -0.852731, 0.675287, -0.376738, -0.459638, + 0.380498, 0.874561, 0.462831, 0.288426, 0.885082, 0.042531, 0.154696, -0.073067, -0.626602, + 0.183706, -0.519304, 0.578702, -0.689775, -0.817393, -0.193211, 0.742867, -0.759784, -0.318698, + -0.076621, -0.437325, 0.472418, 0.873519, 0.54125, -0.210893, -0.785125, -0.825652, -0.239459, + -0.315026, -0.758384, 0.247302, -0.37892, 0.289996, -0.531024, -0.090105, -0.300948, 0.614248, + -0.912653, -0.394334, 0.213551, -0.281733, -0.017114, 0.675853, 0.143152, 0.123275, 0.292146, + -0.538014, -0.399369, 0.479018, 0.144965, 0.652335, -0.127672, 0.939406, 0.597199, -0.280143, + -0.511051, 0.201941, -0.834228, -0.457964, 0.30635, 0.08722, 0.452556, -0.418283, 0.84155, + -0.549901, -0.5124, 0.669039, -0.192934, 0.286075, -0.177645, -0.707232, -0.040002, 0.453677, + 0.673938, 0.762824, -0.035214, 0.724299, 0.282085, 0.037007, 0.018892, -0.095419, 0.285588, + -0.051663, 0.643108, -0.152311, -0.555305, 0.290613, -0.560336, 0.621021, 0.81671, 0.160533, + -0.200602, -0.045157, 0.468336, -0.763917, -0.267674, -0.609262, -0.904498, -0.715503, -0.642518, + 0.761419, 0.611228, -0.678887, -0.789155, 0.895537, 0.237365, 0.460499, 0.156166, -0.373647, + -0.540257, 0.538022, -0.987853, -0.83212, 0.301981, -0.262243, 0.191282, 0.533345, -0.574668, + -0.562911, -0.61506, -0.874954, -0.06769, 0.849166, -0.061121, 0.548428, -0.497319, 0.099219, + -0.750896, -0.066101, 0.219449, -0.427866, 0.918113, 0.282337, 0.500183, 0.995226, 0.423905, + -0.078562, 0.477599, 0.985438, -0.962738, -0.188538, 0.485604, -0.242375, -0.813578, -0.580512, + -0.519753, 0.414585, 0.636659, -0.113801, -0.81825, 0.142084, 0.279576, -0.377207, 0.344817, + -0.408494, 0.336644, 0.715488, 0.498722, -0.094504, 0.960494, -0.087934, -0.891949, 0.71881, + 0.929859, 0.456362, 0.876385, 0.540106, 0.408172, 0.579002, -0.768185, -0.011932, -0.427196, + 0.275087, -0.884334, 0.059118, 0.391225, -0.371587, -0.40333, -0.648555, 0.275327, -0.839401, + -0.205258, 0.055622, 0.285311, -0.858496, 0.20179, -0.392321, -0.116423, -0.72971, -0.785427, + 0.136416, 0.16981, 0.859457, 0.940948, 0.730645, 0.387481, 0.66507, 0.427047, -0.931588, + 0.727763, 0.121409, -0.249379, -0.297396, 0.797654, 0.697823, -0.09289, -0.373817, -0.537641, + 0.576487, -0.606443, -0.662952, -0.600111, 0.290355, 0.766571, 0.199872, 0.372745, -0.807649, + -0.726573, -0.58569, -0.639899, -0.446384, -0.606261, -0.327196, -0.619038, 0.29787, 0.025807, + 0.050889, 0.423979, -0.900342, -0.391501, -0.033967, -0.934384, 0.531391, -0.750888, 0.675987, + 0.989638, 0.206087, -0.486725, 0.705771, -0.655582, 0.047347, 0.626974, 0.937491, 0.073275, + -0.075897, -0.086776, -0.969523, 0.177698, -0.793734, 0.089894, -0.237621, 0.635886, -0.400402, + 0.710737, -0.23829, -0.193409, -0.910355, 0.869081, 0.086495, -0.901261, 0.056238, 0.409569, + -0.211321, 0.816052, 0.489086, -0.128179, 0.999758, 0.705254, -0.12266, -0.08638, 0.306901, + -0.34846, 0.615603, -0.962098, -0.535745, 0.458384, -0.959771, -0.33133, -0.531721, 0.541729, + 0.050279, -0.710246, 0.805835, -0.456028, -0.110325, 0.337424, -0.666795, -0.092234, -0.336883, + -0.237191, -0.362742, 0.640093, -0.491406, -0.674873, 0.431971, 0.323998, 0.010442, 0.082404, + 0.981502, -0.334542, -0.892417, -0.984956, 0.259251, 0.389754, 0.014131, -0.831062, -0.78114, + -0.681382, 0.643781, 0.195969, -0.556967, -0.945708, 0.574504, 0.010746, 0.994013, -0.819332, + -0.811096, 0.172532, 0.67024, 0.660557, 0.994211, 0.636638, 0.446673, -0.61486, 0.985459, + -0.442565, 0.643065, 0.411391, -0.592733, -0.089335, -0.083267, 0.755087, 0.765208, 0.214409, + -0.568293, 0.284806, 0.819316, -0.529905, 0.801431, 0.225975, 0.55316, 0.343019, 0.631324, + -0.85079, 0.413003, -0.867189, -0.068238, 0.782021, -0.820067, -0.760642, -0.438281, 0.037624, + -0.138255, -0.78494, 0.130298, -0.251207, -0.467044, 0.010915, 0.3396, 0.160432, -0.662905, + 0.677881, 0.188673, -0.409461, 0.865592, 0.201582, 0.520015, 0.707068, -0.017821, 0.824138, + -0.004461, 0.80001, 0.121295, 0.460142, 0.503584, -0.554221, 0.873891, 0.030323, 0.367537, + -0.737821, -0.373271, 0.651871, -0.631106, 0.138543, 0.878103, -0.949826, -0.011045, 0.162498, + 0.655412, -0.335994, -0.977316, -0.618924, 0.300127, -0.736413, -0.856026, -0.025231, 0.262382, + -0.627064, -0.388407, 0.547004, -0.676129, -0.822552, -0.302233, 0.803483, -0.293185, -0.67786, + -0.709417, -0.23502, 0.710262, 0.375862, -0.333887, -0.867524, -0.606815, 0.21118, 0.840859, + 0.515002, -0.127822, 0.530457, 0.072016, 0.137423, 0.466238, -0.246158, 0.291332, 0.089162, + 0.305086, -0.213905, 0.646426, -0.900861, 0.664199, -0.825094, -0.672808, -0.614889, -0.09655, + -0.099128, -0.972413, 0.530614, 0.246016, 0.977072, -0.713646, -0.804129, 0.240293, 0.77038, + 0.667616, 0.405653, 0.168181, 0.498465, -0.397986, -0.997419, -0.832515, -0.639529, 0.223303, + 0.895328, 0.645353, -0.652708, 0.278853, 0.884588, 0.024587, -0.186315, -0.54172, -0.07267, + 0.752508, -0.282359, -0.151017, 0.485194, -0.383344, -0.461984, 0.168883, 0.724032, 0.106669, + -0.040274, -0.794381, 0.597133, 0.045635, -0.440194, -0.8798, -0.474453, -0.702772, 0.204776, + 0.732772, -0.197672, 0.608673, -0.21251, -0.475931, -0.915157, -0.670117, 0.750683, 0.673535, + 0.964859, -0.100895, 0.338033, -0.122732, 0.989781, -0.797385, -0.271531, -0.958822, 0.098754, + -0.778528, -0.701337, 0.231264, 0.994937, 0.833494, 0.687062, -0.247506, -0.030192, -0.898981, + 0.672219, 0.273221, 0.848807, -0.972169, -0.243871, -0.644033, -0.765286, -0.594516, 0.315928, + 0.664783, 0.451596, -0.342522, 0.441117, 0.984942, 0.048903, -0.359856, -0.789632, 0.706899, + -0.228534, -0.784559, 0.578289, 0.19936, -0.403616, -0.984317, 0.125445, -0.296163, -0.173407, + -0.333591, 0.822497, 0.530799, 0.792798, 0.377551, 0.285381, 0.986913, -0.00355, 0.574885, + 0.406627, -0.957048, 0.679357, -0.098064, -0.675241, 0.673909, -0.809921, 0.468878, -0.82258, + -0.286825, -0.938191, 0.715165, 0.247234, 0.815995, 0.305205, -0.495837, 0.150367, 0.676731, + -0.77313, -0.667104, -0.254359, -0.624743, -0.181666, 0.94697, 0.556051, -0.81075, -0.539594, + 0.802502, -0.076692, -0.421068, 0.195506, -0.158766, 0.336917, 0.018422, 0.568596, 0.550479, + 0.351081, 0.309752, -0.256801, -0.925521, -0.096274, -0.759492, -0.799927, -0.88055, -0.249893, + -0.739512, 0.169076, 0.431841, 0.594093, -0.96519, 0.8414, 0.297545, 0.811507, 0.484539, + 0.181789, -0.191938, 0.836611, -0.650862, 0.780022, 0.872221, 0.163313, -0.428849, -0.80782, + -0.054965, 0.849735, 0.046226, -0.251709, -0.497318, 0.074725, 0.55303, 0.194815, 0.172424, + -0.692002, 0.483945, 0.103939, -0.982869, 0.831774, 0.635952, 0.007839, -0.197523, 0.898181, + 0.992762, 0.162967, 0.928285, 0.422751, 0.477232, -0.059226, -0.073044, 0.639531, -0.438001, + -0.714298, 0.624378, -0.240011, 0.706022, -0.166156, -0.609201, -0.01692, -0.115291, 0.229533, + -0.7715, -0.846674, 0.051713, 0.90259, -0.632127, -0.503044, 0.09544, 0.748883, 0.766363, + -0.208804, -0.052425, -0.787319, 0.976682, 0.607545, 0.25568, -0.971437, 0.565276, -0.563444, + 0.041618, 0.479808, -0.039827, -0.487748, 0.675454, 0.677791, 0.097414, -0.624939, -0.518044, + -0.898296, -0.535216, -0.893237, -0.088241, -0.710187, 0.569504, -0.809179, -0.689421, -0.616194, + -0.262745, 0.391341, 0.719702, 0.991829, -0.238496, 0.234772, 0.070406, 0.551523, 0.469927, + 0.587965, 0.682099, 0.832469, 0.051088, 0.700043, -0.5619, -0.210009, -0.27938, -0.299416, + 0.057262, -0.940845, -0.566772, -0.093742, 0.201109, 0.708519, -0.686602, 0.243988, 0.461488, + -0.533574, 0.170058, -0.524138, -0.026661, -0.549503, -0.279847, -0.395594, 0.865221, 0.241352, + -0.97017, 0.126543, 0.54532, -0.435482, -0.598014, -0.196351, -0.883302, -0.372062, 0.122839, + -0.74607, -0.949814, -0.594514, -0.730493, 0.029365, 0.361422, 0.630078, 0.999242, 0.522682, + -0.45148, -0.132833, -0.513532, 0.601032, 0.333398, 0.460933, -0.671854, 0.779564, -0.880372, + 0.502041, -0.872304, 0.76572, -0.592844, -0.778226, 0.500333, 0.886618, -0.072729, 0.418516, + 0.914932, -0.812665, 0.406618, 0.230178, -0.568988, 0.593837, 0.89076, 0.768965, -0.718559, + 0.884239, 0.841148, 0.380261, -0.137136, 0.769479, -0.648088, -0.607565, 0.54995, 0.667031, + -0.100958, 0.919642, 0.526588, 0.489128, 0.810724, 0.984481, 0.699384, 0.814857, 0.094255, + 0.783737, 0.537379, -0.491778, 0.558876, 0.069704, -0.345189, 0.750181, 0.261588, 0.77924, + 0.215598, 0.298616, 0.600454, -0.249334, 0.621441, -0.516895, -0.141662, 0.091739, 0.691218, + 0.44071, 0.964839, -0.53697, -0.079088, -0.083375, 0.814969, 0.944052, 0.252389, -0.808142, + -0.725377, 0.183542, -0.880922, -0.348806, -0.749812, 0.51285, -0.137245, -0.782938, 0.653436, + -0.886596, -0.09776, 0.962831, 0.501286, -0.86639, 0.107898, -0.148864, 0.4453, 0.923937, + 0.85232, -0.095443, 0.460727, -0.982041, 0.787829, 0.531424, -0.70339, -0.289225, -0.388776, + -0.584677, 0.412051, -0.29158, 0.415907, -0.303849, 0.776791, -0.393399, -0.173233, -0.310904, + 0.04604, -0.368508, -0.702383, -0.950327, 0.62202, 0.138754, -0.64282, 0.518134, 0.104636, + -0.361102, -0.065525, 0.109962, 0.71647, -0.919168, -0.776151, -0.806261, -0.785191, 0.006312, + 0.555305, 0.261391, 0.423692, 0.120313, -0.019058, -0.905926, 0.892601, 0.966454, -0.0057, + 0.180663, 0.185143, 0.989628, -0.001908, -0.164505, -0.544465, 0.258573, 0.461011, -0.844054, + 0.342075, 0.249756, 0.443568, 0.468805, -0.261814, 0.133904, -0.700663, 0.601939, -0.841365, + -0.877305, -0.741599, -0.557948, 0.041731, 0.656239, -0.131754, 0.718086, -0.163395, 0.84792, + 0.690183, 0.631553, 0.408249, -0.673559, 0.979946, -0.951731, -0.701004, -0.604303, -0.263889, + 0.434326, 0.207075, -0.860636, 0.965507, 0.938549, 0.493178, -0.979582, 0.558647, 0.285322, + -0.123627, -0.837731, 0.847217, -0.298939, -0.808867, 0.771835, 0.390262, 0.294386, 0.646319, + 0.348368, -0.217646, -0.17389, 0.826746, -0.032778, -0.835287, -0.691031, -0.754691, 0.095584, + 0.731233, 0.598211, 0.2645, 0.333281, -0.473662, 0.935983, 0.381394, -0.630288, -0.666193, + -0.89588, -0.284503, 0.731426, 0.058711, -0.473941, 0.278362, -0.69413, 0.298084, 0.68277, + 0.486232, -0.30446, -0.340242, 0.416841, 0.598755, -0.245052, -0.002266, -0.112784, -0.117526, + -0.887411, -0.825089, 0.857341, -0.481556, 0.73939, 0.620421, -0.152107, -0.483708, 0.033202, + -0.173352, -0.5933, 0.972015, -0.078992, -0.153743, -0.677489, 0.162644, 0.138591, 0.986121, + -0.308792, 0.562403, 0.048504, 0.530878, 0.017528, -0.172418, 0.391979, -0.445424, 0.605997, + -0.837575, -0.716866, 0.952727, -0.376829, -0.795131, -0.731021, 0.969698, -0.139856, -0.841477, + -0.14415, -0.487474, -0.670787, -0.489347, 0.757425, 0.403373, 0.584288, 0.082535, -0.418075, + -0.408132, -0.671153, -0.722477, -0.862202, 0.177659, 0.524729, 0.816037, -0.025395, -0.145713, + -0.083122, 0.393999, -0.158394, -0.351378, -0.275537, -0.976855, -0.770122, -0.428043, 0.096887, + -0.628089, 0.382985, -0.546914, 0.967507, -0.883758, 0.557599, -0.519214, -0.354574, -0.933739, + -0.926793, -0.946378, -0.019207, 0.921073, 0.458515, 0.626149, 0.223907, -0.38637, -0.389454, + -0.297056, -0.934287, 0.549675, -0.297257, -0.565662, 0.248108, 2.6e-05, 0.543839, -0.654876, + 0.993423, -0.398062, 0.377841, 0.91036, -0.057366, -0.878719, -0.96751, 0.983676, -0.936267, + -0.370959, 0.682059, -0.777805, 0.934532, 0.097115, 0.310829, 0.156916, 0.109959, 0.561229, + -0.866472, 0.216169, -0.452581, 0.946418, 0.827955, -0.392821, 0.556083, -0.170286, 0.527671, + -0.282843, -0.585192, 0.421902, 0.495137, 0.900426, 0.316917, -0.446238, 0.255487, 0.06019, + 0.869951, 0.410266, 0.852927, 0.074278, -0.758084, -0.64029, 0.902935, 0.895606, 0.301232, + -0.713646, 0.730721, 0.414824, -0.789045, 0.290723, 0.963837, -0.660487, 0.075997, 0.2857, + -0.359925, 0.658226, 0.88929, 0.973447, -0.895044, 0.05567, 0.816267, 0.85185, -0.257596, + 0.662463, 0.746394, -0.063254, 0.685853, 0.57492, -0.148752, -0.417746, -0.53036, -0.805734, + -0.597695, 0.261069, 0.356835, -0.286728, -0.0827, 0.692134, 0.14812, -0.693859, 0.847268, + 0.603401, 0.115195, 0.476591, -0.845293, 0.58649, 0.243332, -0.08845, -0.320808, 0.807627, + 0.215449, -0.558617, 0.449668, 0.176871, -0.350609, 0.706127, 0.995674, -0.044155, -0.41248, + -0.53668, -0.521918, 0.513087, 0.627212, -0.60603, 0.553892, 0.039845, -0.034846, -0.318043, + -0.92115, -0.857723, 0.733295, -0.163805, -0.043653, -0.603059, -0.182603, -0.390104, 0.090001, + -0.954543, 0.09698, -0.885137, -0.710791, -0.021349, -0.106515, -0.281095, 0.581536, 0.072211, + 0.207259, 0.409167, 0.056464, -0.885752, -0.371891, 0.627903, 0.573622, 0.345932, 0.882675, + -0.519922, -0.297994, -0.148991, -0.245765, 0.862538, -0.999229, 0.189474, 0.981552, -0.555882, + 0.794772, -0.861581, 0.16913, -0.569277, 0.31639, 0.218757, 0.219855, -0.226848, -0.30975, + -0.968405, 0.165889, 0.954597, -0.752491, -0.384696, 0.262413, 0.511495, 0.363192, 0.647933, + 0.126426, -0.24603, -0.833572, -0.999522, -0.765787, 0.502358, 0.898694, 0.951883, 0.748921, + 0.051611, 0.688596, 0.380181, -0.6771, -0.187674, -0.928099, 0.858437, 0.217358, 0.918291, + -0.121094, 0.794068, 0.468069, -0.122056, -0.033072, 0.712704, -0.131514, 0.777566, 0.219378, + -0.39175, -0.463519, -0.48641, 0.641617, 0.755911, -0.470125, -0.912782, 0.566779, -0.227394, + -0.918188, 0.209948, -0.099502, 0.720464, 0.212292, -0.616544, -0.180845, -0.718091, 0.467584, + 0.292527, 0.590311, -0.740107, -0.556638, -0.608548, -0.829212, -0.932745, -0.806575, 0.696607, + -0.30169, -0.184487, 0.301418, 0.263206, 0.449593, -0.706078, 0.888565, -0.079889, -0.47487, + 0.645458, -0.831442, -0.59612, 0.563573, 0.387648, -0.396032, -0.079916, -0.182629, 0.406634, + 0.200627, 0.366464, 0.825997, -0.687764, -0.769238, -0.23724, -0.455372, -0.711162, 0.92806, + 0.835406, 0.807442, -0.615906, -0.118249, -0.778072, -0.360562, 0.833323, 0.125371, 0.346909, + -0.994067, 0.411987, 0.674263, -0.384001, 0.759909, 0.450405, -0.730163, -0.749622, 0.014039, + -0.96453, -0.698842, 0.39114, -0.329022, -0.035434, -0.408582, 0.647232, 0.821159, 0.721582, + -0.889271, -0.295646, 0.484328, 0.591453, -0.224123, 0.547567, -0.029566, 0.111076, 0.673791, + 0.684089, -0.705969, -0.607112, 0.354252, 0.601015, -0.232842, 0.886798, -0.115201, -0.507116, + -0.102074, -0.851138, 0.309837, -0.919374, 0.927909, -0.758774, 0.650955, -0.750087, -0.145738, + -0.553809, 0.510988, 0.579988, -0.935109, -0.858495, 0.131645, -0.021512, 0.005798, 0.304008, + -0.197636, 0.843868, 0.07113, -0.460685, 0.346988, -0.775867, -0.478251, 0.291555, -0.419542, + -0.954692, 0.500493, 0.257375, 0.291057, 0.347585, -0.986773, -0.435655, -0.485767, 0.956865, + -0.4213, -0.656955, -0.350976, 0.096085, 0.402996, 0.736434, 0.721923, 0.102699, 0.911006, + 0.531693, 0.533547, -0.857504, 0.081697, -0.212389, -0.950342, -0.493853, 0.760875, 0.366719, + 0.924186, 0.681848, -0.00765, 0.89876, 0.210924, -0.14689, -0.427624, 0.644549, 0.448312, + 0.694318, -0.173719, -0.925505, 0.18134, 0.109434, -0.650915, 0.242444, -0.121027, 0.853159, + 0.04706, -0.493888, 0.801149, 0.029715, -0.16795, 0.477627, 0.964615, 0.455973, 0.028198, + 0.819018, -0.438554, 0.883773, -0.569758, 0.018323, 0.910108, 0.398225, -0.20957, 0.616098, + 0.589862, -0.901396, -0.111455, -0.786991, -0.215547, -0.120542, -0.400044, -0.365488, 0.540835, + -0.029698, -0.994977, 0.171893, -0.983439, -0.686024, 0.611258, 0.764444, -0.354801, -0.607217, + 0.45253, -0.955269, 0.61694, 0.688817, 0.421969, 0.305208, 0.206785, -0.766613, -0.400565, + 0.645041, 0.842246, 0.02671, 0.256912, -0.948504, 0.705938, -0.582452, -0.536054, 0.986737, + -0.286658, -0.505212, 0.137555, 0.788069, 0.908644, 0.08371, 0.680791, 0.713171, -0.167133, + -0.790175, 0.026904, -0.339699, 0.35044, -0.732689, -0.670761, -0.753107, -0.748105, 0.760652, + -0.996446, -0.03681, -0.61717, -0.420602, -0.288184, 0.469135, 0.672421, -0.224995, 0.032609, + -0.011, 0.910662, 0.446939, -0.207633, 0.677152, -0.807455, 0.396337, 0.775714, -0.519032, + 0.374185, 0.45852, -0.83897, 0.287662, 0.75624, 0.091833, -0.193273, -0.391899, -0.663704, + 0.24285, -0.945305, -0.855988, -0.361829, -0.946967, 0.933777, -0.322218, -0.531664, 0.251377, + 0.430365, 0.753068, -0.403722, -0.174739, -0.755138, -0.873198, -0.43511, 0.112513, -0.495743, + -0.27605, 0.366544, 0.206332, 0.617022, 0.46178, 0.527319, -0.516971, 0.536366, -0.896294, + 0.30795, -0.630683, 0.276133, -0.914908, -0.165625, 0.615084, -0.500082, 0.619049, -0.155481, + 0.938156, 0.942154, -0.590017, -0.23422, -0.204385, -0.378107, 0.32872, -0.910501, -0.5997, + -0.156764, -0.889732, -0.957825, 0.410107, -0.834952, 0.6644, -0.580648, -0.079754, 0.602971, + -0.986145, -0.973605, 0.041642, -0.406012, 0.46743, 0.349041, 0.12308, 0.375368, 0.855531, + 0.158713, 0.661636, -0.563814, 0.82394, -0.177812, 0.541388, -0.831058, -0.600944, -0.585392, + 0.528265, -0.033323, -0.917755, 0.980723, 0.260638, 0.919745, 0.12483, 0.143353, 0.7208, + -0.680343, 0.944389, -0.64318, 0.090638, -0.650374, -0.662575, 0.769699, -0.264115, -0.187675, + 0.781314, 0.979697, -0.901943, -0.017455, 0.285555, 0.960129, -0.398671, -0.325446, -0.586119, + 0.255511, 0.24663, -0.015769, -0.101423, -0.696183, -0.410735, -0.380321, 0.262673, 0.441602, + 0.466853, -0.763321, -0.077083, -0.190843, 0.997499, 0.721617, -0.746458, -0.549468, -0.755416, + -0.25027, -0.874957, 0.469985, -0.441012, -0.501888, 0.047261, -0.319518, 0.755447, 0.906481, + -0.892866, 0.448357, 0.020866, 0.524868, -0.374895, -0.075714, -0.018706, 0.342877, 0.498597, + 0.390004, 0.122728, -0.797748, -0.57445, -0.569692, -0.996557, 0.9579, -0.452743, -0.664694, + -0.452857, 0.542971, -0.626877, -0.83557, -0.747427, 0.219766, -0.040913, -0.902252, -0.684035, + -0.866623, 0.343054, 0.452546, 0.170341, -0.320382, -0.535782, 0.395341, -0.229636, -0.160522, + -0.327819, 0.173797, 0.234575, 0.821609, 0.888098, -0.257724, 0.148622, -0.668401, -0.750707, + 0.829237, 0.117799, -0.497219, 0.502742, 0.403424, 0.357965, 0.423126, 0.053407, -0.72745, + -0.888986, 0.976286, 0.698115, -0.780172, 0.783648, -0.935275, 0.665197, 0.696346, 0.628255, + 0.42322, -0.605687, -0.428853, 0.214371, 0.394395, 0.876602, 0.044482, 0.411793, -0.755214, + -0.202974, 0.594688, 0.081731, 0.790537, -0.802424, -0.667258, 0.314376, -0.041817, -0.854447, + 0.426682, 0.041216, 0.241827, 0.219755, -0.68954, -0.670789, -0.800104, 0.72635, -0.548936, + 0.900231, -0.319349, 0.221343, 0.955086, -0.536642, -0.94848, 0.14421, -0.721431, 0.551021, + 0.397556, 0.72454, -0.10388, -0.653329, -0.921544, -0.645898, 0.890715, -0.214069, -0.018317, + -0.212183, -0.510585, 0.818637, -0.259086, -0.485339, 0.923949, 0.598532, 0.532949, 0.716617, + -0.635043, 0.325656, -0.278317, 0.035745, 0.471041, -0.331943, 0.981208, 0.004904, 0.576199, + 0.092025, -0.963826, -0.598088, -0.833279, 0.1175, -0.670844, -0.795261, 0.21439, -0.875341, + -0.544159, -0.64691, 0.488119, 0.916859, 0.349881, -0.559666, 0.756907, 0.928196, -0.270944, + 0.737898, 0.252807, -0.695588, -0.261183, -0.797533, 0.301727, 0.552989, -0.983573, -0.408707, + 0.021671, 0.800741, -0.544885, -0.05873, -0.02828, -0.502878, -0.448221, -0.267562, -0.298805, + -0.321877, 0.095607, -0.083599, -0.486675, 0.605581, 0.715394, -0.156764, -0.188771, -0.974632, + -0.731074, -0.045545, -0.190649, 0.292569, -0.497456, -0.207121, 0.149528, 0.981601, 0.786773, + -0.6578, -0.083288, -0.163719, -0.031966, 0.416598, -0.402279, -0.213159, -0.990602, -0.355239, + -0.980772, 0.354011, -0.769762, -0.49414, -0.725171, 0.760425, -0.293558, 0.86902, -0.496908, + 0.757053, -0.196625, -0.75121, 0.836255, -0.680314, -0.588052, 0.548003, -0.093354, -0.015189, + 0.991562, -0.793586, -0.361193, 0.406818, -0.192556, 0.016916, -0.338077, -0.154912, 0.798211, + -0.185882, 0.402176, 0.754513, 0.774155, 0.474155, 0.687373, -0.259389, 0.079736, -0.428953, + -0.969831, 0.84142, -0.956025, -0.630227, -0.356406, -0.91473, -0.77603, -0.523075, 0.118333, + -0.874328, -0.718817, -0.584556, -0.751978, 0.23472, 0.033834, 0.219443, 0.902143, -0.437845, + -0.374922, 0.319013, 0.877044, 0.319168, -0.085723, 0.324834, -0.984997, -0.684033, -0.42049, + -0.905243, -0.755232, -0.769076, 0.287075, 0.302958, -0.024085, -0.231133, 0.026963, 0.604249, + -0.752978, 0.710452, 0.434928, -0.349071, 0.701617, -0.000828, -0.458272, 0.901182, 0.29556, + 0.754667, -0.271364, -0.856908, 0.801938, 0.057851, 0.474908, -0.259198, 0.472976, -0.790144, + 0.035274, 0.7593, -0.268524, 0.858895, 0.367749, 0.49296, 0.988117, -0.24331, -0.232806, + 0.628833, -0.506068, -0.737319, 0.652049, -0.872516, -0.473602, 0.242308, 0.147259, -0.606236, + -0.25299, 0.641908, -0.647972, 0.573599, -0.107088, -0.35795, -0.952603, -0.262292, 0.822277, + -0.547828, -0.793644, -0.07802, 0.708889, -0.271262, 0.980298, 0.963208, 0.916181, -0.571978, + -0.711846, -0.937186, -0.194449, -0.65124, 0.46587, 0.090187, 0.793112, -0.92767, -0.840324, + -0.18609, 0.263562, 0.841943, -0.083606, 0.854584, -0.270715, -0.141166, -0.385051, -0.425004, + -0.378828, -0.864421, -0.122755, -0.337188, -0.647435, -0.74175, -0.964334, -0.224085, -0.814147, + 0.899095, -0.268434, 0.268799, -0.716938, 0.102038, -0.93984, 0.450192, 0.472264, -0.971768, + 0.436061, 0.127313, -0.624561, -0.457836, 0.982922, -0.520149, 0.87494, 0.20124, 0.458167, + -0.50334, 0.325063, 0.215321, 0.797546, -0.988884, -0.363572, 0.024901, -0.717747, 0.170423, + 0.644769, 0.602631, -0.515645, 0.404225, -0.727631, 0.621633, -0.817331, -0.906592, 0.347049, + -0.094401, 0.2465, 0.93049, 0.95796, 0.563851, -0.907123, -0.153964, 0.109314, -0.973735, + 0.836285, 0.656215, -0.461943, -0.208696, -0.580048, 0.384624, 0.172465, -0.346691, 0.534628, + -0.216166, 0.10739, 0.692372, -0.469838, -0.922297, 0.539726, -0.65353, 0.378039, -0.300641, + 0.67128, -0.038034, -0.455315, -0.705451, 0.671975, -0.625709, 0.283473, 0.764755, -0.803278, + -0.839299, 0.102017, -0.392549, -0.734085, 0.661251, -0.930269, -0.455944, -0.830645, 0.264302, + 0.086248, 0.41712, 0.418676, -0.003956, -0.300302, 0.884242, 0.041586, 0.238082, -0.82343, + -0.980093, -0.488442, -0.524004, 0.289728, -0.444472, 0.104434, 0.92669, -0.294989, 0.255485, + 0.012264, 0.658079, 0.437366, -0.046459, 0.546959, -0.050878, -0.17, -0.389791, -0.815782, + 0.835326, -0.633699, -0.953309, -0.448533, 0.202002, -0.09075, 0.455237, 0.572932, 0.588111, + -0.839027, 0.407696, 0.495, -0.55476, 0.004844, 0.149882, 0.125395, 0.536612, 0.849009, + 0.960474, 0.223895, 0.584796, 0.427553, -0.540996, 0.66881, -0.071051, 0.408098, -0.663698, + 0.800053, 0.223184, 0.22661, -0.889599, -0.086909, -0.349684, 0.944116, -0.91552, -0.246776, + -0.49599, -0.72492, 0.384619, -0.690428, 0.4727, 0.120031, -0.529418, -0.113801, 0.086721, + -0.445665, -0.642509, -0.563538, 0.241276, -0.881142, 0.629677, 0.656745, 0.919526, 0.846065, + -0.562007, -0.433925, 0.731927, -0.129367, -0.736274, -0.47902, 0.701951, -0.568663, 0.351727, + -0.834965, 0.660331, 0.27504, 0.68978, 0.034106, 0.507615, 0.819481, -0.126149, -0.755754, + -0.7056, 0.586313, -0.637685, -0.875363, -0.846715, -0.442865, 0.185517, -0.906111, -0.463371, + 0.957404, -0.170083, -0.337456, 0.472957, -0.8229, -0.780831, 0.14298, 0.316121, -0.985453, + 0.878608, -0.389387, 0.152768, 0.710852, 0.382771, 0.310503, -0.912375, -0.932984, 0.371899, + 0.037162, 0.61404, 0.500432, -0.802256, 0.184056, -0.784501, -0.552783, 0.274812, -0.055897, + -0.638641, 0.339087, 0.693954, -0.98278, 0.93798, 0.552028, -0.084287, -0.969716, -0.423325, + 0.305185, -0.426049, -0.328707, -0.412969, 0.859785, 0.8463, -0.779971, -0.308511, 0.905765, + -0.057599, -0.486877, 0.120925, 0.791232, -0.127256, -0.943613, -0.334266, 0.497687, -0.147755, + 0.706545, 0.343918, 0.00877, 0.381981, -0.134982, -0.857254, -0.857005, -0.786588, -0.159275, + -0.723056, 0.14655, 0.114662, 0.760882, 0.056228, 0.170438, 0.355588, -0.282717, -0.498285, + -0.940679, -0.973947, 0.065755, -0.472888, 0.276837, 0.24853, 0.779929, -0.122079, -0.004229, + 0.690181, 0.169579, 0.457686, -0.539995, -0.722785, 0.762388, 0.71284, -0.378638, 0.166117, + -0.889344, 0.069985, -0.928434, 0.565211, -0.991151, -0.241225, 0.932997, -0.338784, -0.579646, + 0.902104, -0.505822, 0.220553, 0.558877, 0.268679, -0.690884, 0.907583, 0.479523, -0.628838, + -0.570732, -0.23064, 0.33362, 0.378115, 0.128762, 0.655812, 0.994806, 0.205733, 0.391692, + 0.568694, 0.198235, 0.061655, 0.899113, 0.690373, 0.653127, -0.389109, -0.478103, -0.54224, + -0.837415, -0.1016, 0.563434, 0.146509, -0.353737, -0.138341, -0.766324, -0.642341, 0.092064, + -0.581018, 0.123248, 0.824709, 0.256081, 0.76552, -0.633555, 0.026008, -0.982336, 0.006929, + -0.736669, 0.93854, -0.854885, 0.341838, -0.598181, 0.276806, -0.005216, -0.127905, -0.388107, + 0.642984, -0.180508, 0.085235, -0.30136, -0.728728, -0.41676, 0.896594, 0.951866, -0.4646, + 0.099659, 0.162318, 0.882175, 0.139551, 0.046552, -0.290885, 0.210894, -0.995689, -0.997716, + -0.115915, -0.693591, -0.694504, -0.169738, 0.554815, 0.494918, -0.347436, -0.070667, 0.928337, + 0.216321, 0.680038, -0.414205, -0.89488, -0.46364, 0.087881, -0.242199, -0.546017, 0.961635, + -0.923033, 0.02539, 0.398518, -0.269785, 0.433712, 0.00355, -0.594432, -0.543754, -0.449853, + -0.976383, 0.62326, 0.916645, -0.513694, 0.049427, 0.334154, 0.283141, -0.555049, -0.607674, + 0.973449, 0.582322, 0.934814, 0.701989, -0.074404, 0.704003, -0.032074, -0.006204, -0.433285, + 0.779856, -0.2126, 0.145189, -0.797398, 0.343036, -0.475464, -0.22581, -0.089422, 0.37072, + 0.04082, 0.174243, -0.649512, -0.755592, 0.360135, -0.41178, -0.862165, -0.412701, -0.981046, + 0.199804, 0.074267, 0.923446, -0.551433, -0.517175, 0.238778, -0.262762, 0.779307, 0.152125, + -0.021729, -0.383651, 0.604209, -0.468098, 0.402116, 0.642408, -0.784408, -0.886035, -0.563944, + 0.479833, -0.551593, 0.094528, 0.150987, 0.209943, -0.509931, 0.034966, 0.692941, 0.518366, + 0.191036, -0.795275, 0.470473, -0.398191, 0.699852, 0.415322, -0.183556, 0.386571, -0.415837, + 0.172606, -0.049897, 0.015868, 0.352111, 0.973874, -0.441392, 0.976521, -0.183509, 0.951109, + 0.225033, 0.081548, -0.334435, -0.526956, -0.983414, -0.545849, -0.089533, 0.84128, 0.541147, + 0.174355, -0.967813, 0.70451, 0.688475, -0.449535, 0.405022, -0.833191, -0.50559, -0.301778, + -0.90673, -0.06109, 0.204781, 0.291076, 0.93583, 0.577526, -0.914957, -0.313887, 0.560242, + -0.959807, -0.061845, 0.378395, -0.670532, 0.857804, -0.659274, -0.733571, -0.759092, -0.175165, + 0.333939, 0.28805, -0.494102, 0.87463, -0.535895, 0.784654, 0.335902, -0.322669, 0.739588, + 0.331576, -0.850278, 0.508237, 0.94574, -0.748029, -0.210824, -0.806949, 0.670441, 0.530556, + 0.729369, 0.280865, -0.164897, -0.097574, -0.74508, 0.634617, -0.401188, 0.109748, 0.034009, + 0.302302, -0.80331, -0.158392, 0.461342, -0.739161, -0.429587, -0.550642, -0.846112, 0.976349, + 0.863985, 0.626637, -0.828891, -0.009127, 0.183636, 0.443583, 0.201413, -0.612945, 0.031707, + -0.808646, 0.501486, 0.629891, -0.357813, -0.875325, 0.009298, 0.51123, -0.682317, 0.422183, + 0.696455, -0.828967, 0.553031, 0.452248, -0.514621, 0.839286, -0.480904, 0.760057, -0.766515, + 0.788765, -0.224844, -0.88335, 0.532658, -0.081908, 0.282445, 0.46067, 0.106772, 0.319395, + -0.842864, -0.882628, -0.46959, -0.522834, -0.942585, 0.156135, -0.079341, -0.220231, -0.046469, + 0.480545, -0.371073, 0.063175, -0.089325, 0.482894, -0.106384, 0.359218, -0.391539, 0.774643, + 0.168313, 0.168227, 0.484153, -0.99684, 0.441877, 0.803358, 0.598896, 0.649361, -0.80326, + 0.865543, 0.223581, -0.974703, 0.904885, 0.779783, -0.159538, 0.980599, 0.062963, 0.802055, + -0.883984, -0.93231, 0.278617, -0.007481, -0.848886, -0.560736, 0.560534, 0.637498, -0.75846, + -0.447078, 0.005816, -0.001276, -0.736525, 0.739541, -0.698258, 0.711413, -0.61852, -0.993563, + 0.249154, -0.478374, 0.674149, -0.331543, 0.095484, 0.744364, -0.649465, -0.411703, 0.680877, + 0.84355, 0.174297, 0.768746, 0.604939, 0.565435, -0.039423, 0.965488, -0.317899, 0.068068, + -0.301852, -0.074935, 0.600949, 0.75815, 0.149068, 0.657393, 0.700972, 0.486058, -0.272526, + 0.583464, 0.839412, 0.827248, 0.259111, 0.737985, -0.690837, 0.189407, -0.87858, 0.513341, + 0.045908, -0.192373, 0.637478, -0.153074, 0.408301, 0.538006, -0.496074, -0.86626, 0.089313, + -0.611511, -0.567097, 0.470933, 0.23763, -0.222235, -0.363549, -0.739524, -0.427324, 0.064098, + -0.584207, -0.907871, -0.968836, -0.943037, -0.459989, 0.269432, -0.457295, 0.660625, 0.547279, + -0.782412, 0.246204, -0.430676, 0.829361, 0.757752, 0.458669, -0.500788, 0.144598, -0.630471, + 0.149724, 0.988579, -0.192815, -0.575078, -0.487461, -0.62066, 0.506578, -0.589817, 0.699969, + 0.583807, 0.601604, -0.047956, -0.208755, 0.362251, -0.149373, 0.401877, 0.22322, 0.347777, + -0.427469, 0.62, -0.191803, 0.568222, -0.061645, -0.982789, -0.085198, -0.318844, -0.495805, + -0.039122, -0.382069, 0.078351, -0.295236, -0.620459, 0.367114, -0.818974, -0.774168, -0.157283, + -0.087071, -0.935413, 0.508184, 0.082527, 0.421703, -0.009868, -0.218268, -0.351916, -0.089315, + -0.785874, 0.439171, 0.284233, 0.715161, -0.93417, -0.104168, -0.392163, 0.031079, 0.152695, + -0.148892, -0.081172, -0.165103, 0.243235, -0.546638, -0.115883, 0.494269, 0.673325, 0.111841, + -0.109848, 0.167539, 0.460388, 0.183952, -0.581916, -0.788017, 0.46518, -0.429901, 0.3745, + -0.859231, 0.546902, 0.420433, -0.197338, -0.763915, -0.112902, 0.566293, 0.755696, -0.03705, + -0.082754, 0.820318, 0.174253, 0.954934, 0.904661, -0.649332, -0.705032, -0.331916, -0.152908, + 0.905393, -0.752171, 0.446006, 0.767329, 0.062864, -0.83846, -0.754978, 0.148712, 0.289335, + 0.232303, 0.622262, 0.642487, -0.871369, 0.471224, 0.621108, -0.505049, -0.623871, -0.897993, + -0.986644, 0.522492, 0.284293, -0.543207, -0.89394, -0.929625, 0.907332, 0.329126, 0.163489, + -0.082675, 0.408221, 0.108376, 0.431693, 0.255145, -0.515178, -0.467397, 0.263389, 0.253395, + 0.706054, -0.739704, 0.485738, -0.917333, 0.085679, -0.811957, -0.491851, -0.571583, 0.892165, + 0.890038, -0.443504, -0.041934, -0.838071, -0.819312, -0.506304, 0.097289, -0.900154, -0.20815, + 0.137871, 0.01126, -0.031644, 0.179963, 0.989143, -0.85409, -0.721432, 0.522642, 0.306304, + 0.849681, 0.795896, -0.742705, -0.227141, -0.900441, 0.403033, 0.596849, -0.79324, -0.544374, + 0.534128, 0.243626, -0.625112, -0.004961, -0.664689, 0.387761, 0.185221, 0.271584, -0.047193, + 0.054372, -0.741733, 0.933483, -0.040915, 0.027905, 0.090381, -0.940622, 0.258381, 0.860859, + 0.581789, 0.139205, 0.29031, 0.177672, 0.002572, 0.437896, 0.329406, 0.324779, -0.603002, + -0.121832, 0.623485, 0.65839, -0.562998, 0.326391, -0.667247, 0.260616, 0.347072, -0.602195, + 0.742274, 0.714015, 0.718186, 0.274236, 0.411576, -0.018428, -0.529705, 0.304547, -0.431607, + 0.257941, -0.513209, -0.423485, -0.787778, -0.269645, 0.603255, 0.310901, -0.080917, 0.634715, + 0.713723, -0.428294, -0.740121, 0.770099, -0.907022, -0.771836, -0.820305, -0.644775, -0.676682, + 0.030311, -0.438072, 0.769598, -0.891411, -0.754784, -0.922059, -0.881216, 0.242625, -0.692261, + -0.218482, -0.510175, -0.269435, -0.418653, 0.636609, -0.442807, -0.498858, 0.568507, 0.909004, + 0.813957, -0.149023, 0.178558, -0.518814, -0.097887, 0.112868, -0.584383, -0.146061, 0.47804, + 0.249815, 0.930634, -0.343256, -0.419091, -0.944175, 0.477198, -0.48377, -0.932015, 0.117856, + -0.38357, -0.604504, 0.590189, -0.602242, 0.499331, 0.850891, 0.625665, -0.403866, 0.756045, + -0.682797, 0.808773, -0.166021, -0.44971, 0.066652, 0.904731, -0.284918, 0.730253, 0.234122, + -0.720801, -0.738661, 0.851717, 0.915862, 0.598141, 0.966523, -0.660805, -0.528342, -0.375768, + -0.555162, -0.24395, 0.361486, 0.143288, 0.601498, -0.304884, 0.853807, 0.189584, 0.631464, + 0.77264, -0.053577, 0.942418, 0.528684, -0.612039, 0.072169, -0.486457, 0.189246, -0.603877, + -0.371551, -0.411658, -0.968993, 0.918219, -0.342343, -0.306377, -0.020771, 0.017599, -0.839895, + 0.278198, -0.623416, -0.794205, -0.600288, -0.779797, 0.783402, 0.382357, 0.87628, -0.804735, + -0.793865, 0.396702, -0.468136, -0.306479, -0.587524, -0.841408, -0.589105, -0.628841, 0.512342, + -0.026394, 0.624915, 0.869389, 0.660399, -0.813913, 0.586146, 0.569528, -0.452905, -0.210623, + 0.336128, -0.102134, -0.611618, -0.17721, -0.275937, 0.611781, 0.435621, 0.625135, -0.042314, + -0.910358, 0.97634, 0.030926, 0.426472, -0.567131, -0.049526, 0.266928, -0.406717, -0.553778, + 0.281057, 0.802912, 0.780232, 0.340441, 0.085147, 0.449471, -0.312376, 0.771191, 0.527634, + -0.997096, 0.911816, 0.047064, -0.756099, -0.382657, 0.971289, -0.834889, 0.250193, -0.336332, + -0.821371, 0.386375, 0.582599, 0.983061, -0.815787, 0.489071, 0.711664, -0.024591, 0.771496, + 0.912903, -0.809847, 0.502462, 0.23831, 0.113145, 0.73719, 0.053692, -0.372425, 0.853995, + 0.579449, 0.485099, -0.269228, -0.834116, -0.13941, -0.187317, -0.201082, -0.510341, 0.718043, + -0.166367, -0.979587, -0.641165, -0.989302, 0.553391, -0.11473, -0.509701, -0.766921, 0.487337, + -0.86429, -0.909545, -0.090107, 0.597092, -0.789633, -0.647401, 0.3224, -0.971432, 0.664437, + 0.534566, 0.488016, 0.851204, 0.868749, -0.461871, 0.564897, 0.546072, 0.452747, -0.272953, + -0.550281, -0.649214, 0.214601, -0.027398, 0.05062, 0.895633, -0.812516, 0.231337, 0.179987, + -0.044324, 0.662004, 0.649216, -0.673265, 0.177816, -0.601788, -0.552939, -0.835469, 0.372834, + -0.102285, -0.635164, -0.198556, -0.07374, 0.377828, 0.85098, -0.663977, -0.062491, 0.967928, + 0.659409, 0.460936, -0.300951, 0.174324, 0.067975, 0.014686, 0.6526, -0.340647, -0.246478, + 0.696985, 0.253776, -0.949433, -0.196104, 0.674628, 0.60597, 0.667354, -0.586022, -0.747196, + 0.319391, 0.767418, 0.817488, 0.38421, 0.590313, -0.690297, 0.240363, -0.103054, -0.011169, + 0.472265, -0.749134, 0.096464, -0.350357, 0.501876, -0.892875, -0.551647, -0.714289, 0.748857, + 0.622342, 0.829227, 0.987217, 0.304641, 0.12751, 0.279361, 0.160414, 0.119409, -0.754757, + 0.769364, -0.67719, 0.697593, 0.45877, 0.25925, 0.374619, 0.21947, -0.490677, -0.531731, + -0.50824, -0.602, 0.455635, 0.074405, -0.010294, 0.267717, 0.923672, -0.077479, -0.480144, + -0.725305, 0.826228, -0.88362, 0.487991, 0.875175, 0.534148, -0.007716, -0.129862, 0.633613, + -0.531735, 0.353513, -0.309077, 0.526871, -0.221394, -0.667364, -0.381857, 0.588087, 0.364937, + -0.706048, -0.650256, -0.205226, -0.095542, -0.281159, 0.672339, 0.069417, -0.267166, -0.057378, + 0.457905, -0.701297, -0.982632, -0.803336, 0.439667, 0.108575, -0.894426, 0.817328, 0.535622, + -0.933058, 0.614441, -0.038815, 0.084022, 0.82106, 0.773364, 0.218451, -0.477882, 0.75205, + 0.831321, -0.147622, -0.7969, 0.936864, -0.432288, -0.597414, -0.944156, 0.403862, 0.384095, + -0.430438, -0.969074, 0.700069, 0.060869, 0.887766, -0.093494, 0.902417, -0.253793, -0.464167, + 0.584539, 0.249545, 0.89791, 0.075156, -0.765385, -0.708544, -0.224551, -0.149872, -0.548539, + 0.848251, -0.545834, 0.09488, 0.571484, 0.205665, 0.05113, 0.38981, -0.518663, -0.990324, + 0.294858, -0.739713, -0.858244, -0.731842, 0.809427, -0.671057, 0.778793, 0.66459, 0.173121, + -0.587072, -0.906628, -0.77386, 0.645504, -0.659909, -0.130124, 0.162193, -0.121206, 0.223862, + -0.790048, 0.821126, -0.721386, -0.584453, -0.833047, 0.650899, -0.495144, -0.340826, 0.52493, + -0.103765, 0.825146, 0.305708, -0.084898, -0.671293, -0.953658, 0.276797, 0.076641, 0.910707, + -0.919303, 0.200882, 0.372327, 0.551601, 0.485579, -0.07093, -0.952188, -0.198575, 0.987809, + -0.750181, -0.667608, 0.909944, -0.065014, -0.334637, 0.113965, 0.419772, 0.088604, 0.804899, + -0.014158, -0.420687, -0.467271, -0.077053, -0.19534, 0.676165, 0.466272, 0.770329, 0.783558, + 0.853961, -0.949991, -0.22657, -0.095613, 0.716115, -0.008316, 0.379072, -0.092941, -0.981135, + 0.07984, -0.021404, -0.617175, 0.974025, -0.802168, -0.847424, -0.718089, -0.908073, -0.201542, + -0.534324, 0.82004, 0.535369, 0.475151, 0.859119, -0.825784, -0.600822, 0.843011, 0.728289, + 0.15811, 0.559174, 0.256045, -0.075694, -0.334761, 0.35072, -0.812025, 0.985507, -0.882135, + -0.757123, 0.732534, -0.579536, -0.488635, -0.237192, -0.872975, -0.04753, -0.14298, -0.200412, + -0.004714, -0.671693, -0.173379, -0.119111, -0.989074, -0.742178, 0.769904, -0.957901, -0.198377, + -0.588286, 0.993191, 0.735968, 0.492332, -0.511104, -0.882229, -0.15665, 0.611588, 0.117065, + -0.546878, -0.897142, 0.844657, 0.200539, 0.682952, -0.873118, 0.13192, 0.933897, -0.971998, + -0.94503, -0.919531, -0.491626, -0.101523, 0.489912, -0.346991, 0.79152, 0.817971, 0.672685, + -0.808579, 0.39143, 0.568047, 0.732537, -0.903793, -0.209096, -0.507374, -0.376274, 0.291263, + -0.055822, 0.434266, -0.743124, -0.311122, 0.42836, -0.368984, 0.123189, -0.668005, 0.86315, + -0.002072, 0.367565, 0.053881, 0.097699, 0.948747, -0.420717, 0.874488, -0.414408, -0.031247, + -0.63319, 0.255674, -0.982301, 0.278642, -0.502831, 0.880413, 0.974431, 0.633054, -0.938441, + 0.449915, -0.750754, 0.062002, -0.607765, 0.63155, -0.115959, 0.322356, 0.315521, 0.654742, + 0.631007, -0.035545, -0.71165, 0.36713, -0.374773, -0.135837, 0.063449, 0.893741, 0.749169, + -0.14203, -0.477377, 0.915497, 0.540866, -0.86532, -0.031395, -0.738107, -0.255943, -0.860414, + -0.834126, -0.69972, -0.212722, 0.356785, -0.897512, -0.379255, 0.198821, 0.269142, -0.017408, + -0.776822, -0.057696, 0.322799, -0.89109, -0.641237, 0.180054, 0.002019, 0.74516, 0.302921, + 0.53655, -0.757689, -0.226242, -0.139115, -0.242595, -0.167664, 0.484587, -0.607803, -0.326163, + -0.380344, 0.151086, 0.156853, -0.133393, 0.517858, -0.778966, 0.722926, 0.267963, 0.700448, + -0.955031, 0.728648, 0.557161, 0.641243, 0.528393, -0.469075, -0.246462, 0.027947, 0.241542, + -0.956555, -0.194256, -0.946483, -0.683155, -0.375101, -0.311809, 0.224379, 0.70779, -0.327157, + -0.170895, 0.34662, 0.247721, 0.982589, 0.17543, 0.098142, -0.768481, 0.358951, 0.320645, + 0.350464, -0.035053, -0.128406, 0.200625, -0.062615, -0.200027, -0.902017, 0.511831, -0.566366, + 0.296245, 0.417605, 0.471588, -0.109459, -0.026851, 0.673907, -0.569094, -0.701962, 0.64885, + 0.958205, 0.756214, 0.618289, -0.531196, 0.602742, -0.516603, 0.447914, 0.907558, -0.298889, + -0.738184, -0.710357, -0.333983, 0.074084, 0.915513, 0.182562, -0.511609, -0.099023, -0.282915, + 0.247227, 0.403116, -0.582569, 0.324006, 0.484615, -0.061551, -0.689471, 0.637842, -0.952554, + 0.491049, 0.157828, -0.2751, -0.380875, 0.221045, -0.576849, -0.042797, 0.745614, -0.062078, + -0.666614, 0.779509, 0.622944, 0.824975, -0.308324, -0.979257, -0.335912, 0.678771, 0.287844, + 0.81024, 0.465681, -0.992148, -0.989417, -0.118182, -0.678714, -0.649348, 0.104198, -0.190318, + 0.782989, -0.550907, 0.458953, -0.499913, -0.513079, 0.880224, 0.12148, 0.998124, -0.831424, + -0.361635, -0.848821, 0.796799, 0.485678, 0.046579, 0.944663, -0.693543, -0.731571, 0.923948, + -0.261534, 0.64951, 0.479979, 0.271339, -0.628013, -0.330541, 0.869043, 0.394063, -0.267173, + 0.323153, -0.248419, -0.077478, 0.174334, 0.696992, 0.956604, 0.910533, -0.211372, 0.080573, + -0.961999, -0.09857, 0.05801, -0.639526, 0.89532, -0.421881, -0.92706, -0.459516, -0.173982, + -0.832182, 0.636362, 0.143606, -0.587917, 0.088031, -0.864286, 0.315477, -0.033292, -0.078851, + 0.081418, -0.457037, 0.668235, -0.727248, -0.015065, 0.825533, 0.210712, -0.719999, 0.993124, + -0.592853, -0.425119, 0.614084, -0.601263, 0.039996, 0.36895, 0.553922, -0.618313, 0.954068, + 0.744077, -0.397764, 0.00599, -0.350475, -0.515392, 0.867149, 0.743399, 0.259523, 0.899599, + -0.971349, 0.073769, -0.494999, 0.541945, 0.079175, -0.785824, 0.031321, 0.409778, -0.307655, + -0.094626, -0.71128, 0.861857, -0.968038, -0.591857, -0.78896, -0.444655, -0.544042, 0.315483, + 0.864471, 0.043483, 0.228927, 0.755354, -0.998465, 0.066529, 0.45035, 0.182583, -0.416383, + -0.334715, -0.523265, 0.989502, -0.441832, -0.171535}; + const std::vector v_data{ + 0.019011, -0.75073, -0.654825, -0.674815, 0.20242, -0.606569, -0.78787, -0.56918, -0.344874, + -0.271591, -0.624517, 0.2858, -0.125684, -0.722699, 0.46595, 0.230668, 0.159618, 0.984915, + -0.171288, 0.630726, -0.506317, -0.489019, 0.242913, -0.52196, 0.431271, -0.942437, -0.366608, + 0.997204, -0.050636, 0.54331, 0.901638, -0.285776, -0.233099, -0.143527, -0.498166, -0.030137, + 0.476549, 0.863097, 0.691794, 0.984826, -0.50503, -0.689362, -0.986009, 0.58881, 0.443354, + -0.239342, 0.826778, -0.719754, -0.161792, -0.026157, 0.402132, 0.833971, -0.568576, 0.997486, + 0.952484, 0.266044, -0.658144, 0.329715, 0.208387, -0.362587, 0.962706, -0.803242, -0.355222, + -0.3751, -0.277554, 0.741164, -0.049765, 0.139143, -0.891859, -0.676387, 0.628146, -0.305648, + 0.357726, -0.770725, -0.567833, 0.481179, 0.704211, 0.062155, -0.905536, -0.62914, -0.363836, + 0.465442, -0.813226, -0.642232, -0.993793, -0.705416, 0.723869, -0.373076, -0.235867, 0.030813, + -0.197817, -0.342654, -0.020252, -0.501347, 0.634349, -0.040235, 0.447313, 0.120546, 0.753467, + 0.48644, -0.502735, -0.235027, 0.230768, -0.360775, -0.693163, 0.838331, 0.671619, -0.499591, + 0.23085, 0.725108, -0.605925, -0.164766, -0.824661, -0.915014, 0.794775, 0.349995, -0.64993, + -0.074212, -0.465138, -0.182268, -0.216208, 0.31676, 0.173034, -0.678017, 0.500991, 0.073686, + -0.52229, -0.580916, -0.022068, 0.348055, -0.923532, -0.232544, -0.722589, -0.935072, 0.535903, + -0.343543, -0.953129, -0.287978, -0.552311, 0.540574, -0.157021, -0.606097, -0.408759, -0.221214, + 0.765341, 0.090932, -0.791373, -0.25892, 0.921558, -0.854483, -0.374965, 0.871066, -0.403318, + 0.761705, -0.654887, 0.75696, 0.660792, -0.186945, -0.927602, -0.338239, 0.25045, -0.334917, + -0.798098, -0.883854, 0.476172, 0.720843, -0.378767, 0.038216, -0.612152, 0.577388, -0.657126, + -0.567145, -0.407165, -0.18364, 0.123579, -0.942699, -0.365711, -0.434003, -0.203133, -0.056929, + 0.046856, 0.510613, -0.569307, 0.021818, 0.908752, 0.128275, -0.742854, 0.684459, -0.887424, + 0.406434, 0.827906, 0.12533, 0.536385, 0.793504, 0.456616, -0.300414, 0.217435, 0.808815, + 0.234467, -0.794752, 0.870166, 0.969104, 0.580301, 0.543636, 0.561845, -0.607151, -0.300152, + 0.432207, 0.25469, 0.424945, -0.018927, -0.963696, 0.473997, -0.62899, -0.826372, 0.988932, + 0.440827, 0.496982, -0.438131, 0.36851, 0.084988, 0.682113, 0.116977, 0.89378, -0.234218, + 0.92281, 0.990362, 0.11828, -0.733191, 0.000392, 0.795989, -0.683225, -0.357384, 0.361605, + 0.203191, 0.940042, 0.16471, -0.007647, 0.131427, -0.205691, -0.920609, -0.350745, -0.906507, + 0.731684, 0.060505, 0.116441, -0.069402, -0.513095, -0.705486, -0.153062, 0.302562, -0.547236, + -0.61868, 0.649703, -0.347204, 0.563379, 0.957331, 0.939906, -0.77316, 0.074174, -0.784106, + 0.041274, 0.139066, -0.432825, 0.296807, -0.313491, 0.563411, 0.009533, 0.694123, 0.6759, + 0.223303, 0.186688, -0.452603, -0.660361, 0.674206, 0.65992, 0.15682, 0.839023, 0.522147, + 0.653233, -0.191807, 0.142945, -0.899094, -0.913707, 0.475475, -0.602794, 0.761619, -0.806903, + -0.827824, -0.820862, 0.641779, -0.662836, -0.857576, 0.422421, -0.201706, -0.952456, 0.709223, + 0.724775, 0.802137, 0.627734, -0.775268, -0.440219, -0.392987, -0.972511, 0.69883, -0.404681, + 0.343227, -0.508501, 0.896115, 0.70462, 0.690173, 0.489451, 0.837065, 0.326949, 0.170884, + -0.225482, 0.812599, -0.96491, 0.714204, -0.094617, -0.066201, -0.657417, -0.437212, 0.188633, + -0.407489, 0.356005, 0.140876, -0.851256, 0.546545, -0.440294, -0.361303, -0.368037, 0.395117, + -0.986063, -0.720675, 0.402438, -0.302995, -0.189749, -0.898486, 0.101413, 0.470629, -0.360957, + 0.07643, 0.02836, -0.211752, 0.806583, 0.25752, 0.190072, -0.031105, -0.020958, 0.536986, + 0.057513, 0.226288, 0.811557, 0.707057, -0.36699, -0.81885, 0.263391, -0.682995, -0.994539, + 0.686692, -0.828817, 0.987033, -0.921262, -0.814239, 0.574933, 0.077161, -0.435858, 0.379571, + -0.649729, -0.551178, -0.96305, -0.512231, -0.858917, 0.856885, -0.434724, 0.169667, -0.449465, + -0.2291, 0.730514, 0.203518, 0.482819, 0.326745, -0.81502, 0.600556, 0.810222, 0.298855, + 0.796594, -0.476475, -0.654269, -0.803201, -0.158118, -0.098896, -0.568391, -0.341988, -0.322041, + 0.96443, -0.071411, 0.810697, 0.096328, 0.356336, 0.576261, -0.920423, -0.450749, -0.759991, + 0.971466, 0.366971, -0.41913, -0.754116, 0.553772, 0.232121, -0.49197, -0.725746, -0.521879, + 0.243515, -0.841949, -0.105523, 0.593541, 0.53413, 0.107926, 0.106246, 0.233653, 0.390553, + 0.789274, 0.27163, 0.549738, 0.697073, -0.77572, -0.533743, 0.54904, 0.200351, -0.577232, + 0.295501, -0.909096, -0.372079, 0.504263, -0.026349, -0.675785, 0.494299, 0.069491, -0.143111, + -0.96171, -0.360717, 0.110448, -0.543429, 0.168293, -0.710382, 0.771642, 0.770024, 0.589005, + -0.118799, -0.996532, -0.390477, -0.081013, -0.921657, 0.787296, 0.284649, 0.758676, -0.894686, + -0.513443, 0.225374, -0.01524, -0.581583, 0.731184, 0.41239, -0.047685, 0.952997, -0.975255, + -0.908324, 0.199436, 0.907524, 0.565321, -0.550297, 0.717432, 0.519579, 0.056846, 0.63267, + 0.197899, 0.001313, -0.276885, -0.531282, -0.630358, -0.131455, -0.683882, 0.423836, 0.282381, + -0.974999, -0.735567, 0.714635, -0.524245, -0.010314, -0.64051, -0.218706, 0.493192, 0.254174, + 0.490831, -0.058226, -0.797866, -0.012586, 0.592855, 0.233908, 0.206813, 0.196901, 0.820488, + 0.50447, -0.163555, -0.542537, 0.813727, -0.520238, -0.668494, 0.312375, -0.638574, -0.862872, + -0.809769, 0.246589, -0.628404, 0.884629, -0.040131, -0.42471, -0.613188, -0.298951, 0.87241, + -0.638327, -0.925882, 0.297535, 0.339093, -0.847262, -0.448873, 0.866783, -0.472681, 0.419565, + -0.480026, -0.88281, -0.964665, 0.762796, 0.306571, 0.284389, 0.344184, 0.385387, 0.660179, + 0.767211, 0.77113, 0.321336, 0.17859, 0.214676, -0.809937, 0.445868, 0.246609, 0.434674, + -0.246758, 0.830595, 0.120128, -0.237033, -0.028266, -0.399142, -0.146931, 0.848752, 0.331705, + -0.111764, 0.037764, 0.228428, -0.577107, -0.548505, 0.881765, 0.005449, 0.297623, -0.460188, + -0.735058, 0.198375, 0.540114, -0.941861, -0.989022, -0.333508, 0.646684, -0.893528, 0.798917, + 0.904352, -0.224422, 0.063876, -0.041301, 0.97426, 0.111126, 0.244348, -0.34216, -0.012214, + -0.530308, 0.050276, -0.138762, 0.186382, 0.194415, -0.818198, 0.66809, 0.550059, 0.70442, + 0.736454, 0.258023, 0.546659, 0.492904, 0.596235, -0.602197, 0.473801, -0.080122, 0.386798, + 0.367589, -0.745381, -0.454912, -0.711902, -0.265864, 0.322751, 0.233254, 0.793995, -0.721989, + 0.312935, 0.817878, -0.770373, -0.752727, 0.240666, -0.40587, 0.255736, -0.483327, 0.12883, + -0.84761, 0.796747, -0.638544, -0.917653, -0.51791, 0.021238, 0.939737, 0.209081, -0.209082, + -0.719744, 0.456449, 0.072921, -0.289593, -0.280428, 0.146623, 0.588794, -0.60138, -0.241534, + 0.471603, -0.684954, -0.024712, 0.80989, 0.698272, -0.802311, -0.469347, 0.160891, 0.631655, + -0.401716, -0.908056, -0.037168, 0.627242, -0.514222, -0.920913, 0.068867, 0.831242, -0.810647, + 0.21519, 0.633374, 0.030102, -0.535939, -0.361828, -0.65774, 0.072685, -0.435141, 0.033751, + -0.220106, -0.684805, 0.968331, 0.235585, 0.494619, 0.592123, 0.402879, -0.236622, -0.306905, + -0.551379, -0.889601, -0.763556, -0.380833, 0.941956, -0.95427, -0.629855, -0.777903, -0.70067, + 0.817768, -0.790989, -0.715549, -0.584962, 0.268088, -0.312593, -0.665856, 0.826653, 0.153345, + -0.730024, -0.373366, 0.615703, 0.363048, -0.637101, -0.508077, -0.392244, 0.381968, -0.801953, + 0.934812, 0.097703, 0.3973, 0.294875, 0.778421, -0.326967, -0.377858, -0.652274, 0.818115, + -0.080824, -0.015609, 0.881198, -0.25212, -0.335534, -0.417519, 0.574489, 0.12121, -0.53425, + 0.65711, 0.389865, -0.229103, 0.229676, -0.906327, -0.7106, -0.366861, 0.481607, -0.218257, + 0.729649, -0.932779, 0.727558, -0.96688, -0.343522, 0.917127, -0.334209, -0.436062, 0.540237, + -0.53576, 0.207265, -0.358761, 0.391874, -0.613166, -0.523332, -0.664293, -0.177369, 0.992958, + 0.574954, -0.793513, 0.510596, 0.915971, 0.989638, 0.099605, 0.266929, 0.725785, 0.96228, + 0.034169, -0.176855, 0.811695, -0.268663, 0.797002, 0.846207, 0.278669, -0.805157, 0.780733, + 0.477638, 0.240159, 0.216534, 0.47056, 0.590393, -0.655775, -0.791743, 0.517957, -0.416234, + -0.878365, 0.835426, -0.775109, -0.341532, -0.628147, 0.867393, -0.129644, -0.522747, 0.834947, + 0.930696, 0.530133, 0.783303, -0.900468, -0.90375, 0.54647, -0.224528, 0.425205, 0.929318, + -0.228473, -0.531294, 0.936978, -0.479388, -0.573007, 0.802514, -0.041112, -0.487727, 0.356661, + -0.505333, 0.036448, -0.78782, -0.241396, 0.775795, 0.144053, -0.135462, 0.758332, 0.541597, + 0.561181, 0.474516, -0.342176, -0.890298, -0.592173, -0.594401, 0.278477, 0.801941, 0.924398, + 0.800764, 0.141893, 0.688688, 0.050187, 0.464455, -0.662005, 0.963233, 0.462296, 0.001471, + -0.397014, 0.175143, -0.1152, -0.647264, -0.619565, -0.398889, 0.229556, -0.64479, 0.551101, + -0.550753, 0.601221, 0.034496, 0.00172, 0.135049, -0.007542, 0.494256, -0.079972, -0.353055, + 0.104249, -0.585532, 0.40027, 0.10059, 0.504448, -0.175361, -0.005649, -0.47617, -0.448922, + 0.024736, 0.511904, -0.378347, 0.785886, -0.337619, -0.205577, 0.80131, -0.181509, 0.543865, + -0.098464, 0.594395, 0.130059, -0.471213, -0.658734, 0.593624, 0.245743, -0.155312, -0.191054, + -0.415097, -0.692642, 0.221844, -0.850279, -0.013268, 0.714608, 0.456242, 0.540265, 0.184838, + -0.559348, 0.509769, 0.780357, 0.409301, 0.696535, -0.807445, -0.870169, -0.231594, 0.263132, + 0.642504, -0.293589, -0.442673, 0.644961, -0.030647, 0.067822, -0.954116, -0.092886, 0.485135, + 0.965691, 0.093175, 0.635193, 0.139001, -0.789189, -0.033698, -0.341729, -0.1358, -0.388969, + 0.747558, -0.816333, -0.60108, -0.310508, 0.837812, -0.204632, 0.408063, 0.490277, 0.855919, + -0.229765, 0.186806, -0.488076, -0.076011, -0.856981, -0.815942, 0.271992, -0.766411, 0.522655, + 0.739109, 0.350884, 0.382806, -0.908551, -0.462437, -0.722031, -0.948219, 0.425123, 0.228974, + 0.951479, -0.275512, -0.662099, -0.860823, 0.061581, -0.548042, 0.177408, 0.66148, 0.855021, + -0.163094, -0.650262, -0.543007, 0.635065, 0.258786, 0.063318, -0.971585, 0.538631, 0.632616, + 0.103202, -0.180193, -0.474537, 0.008168, 0.049679, 0.282092, -0.042383, 0.948076, 0.644602, + 0.225769, -0.887799, -0.477478, 0.391295, -0.646261, 0.278794, 0.245575, -0.628704, 0.198365, + -0.129335, 0.74483, -0.220618, 0.872695, 0.868832, -0.331544, 0.167796, -0.273358, 0.800772, + 0.479451, 0.002741, 0.604755, -0.802946, -0.255731, 0.204129, -0.947409, 0.874041, 0.082159, + 0.88344, -0.291048, 0.059542, -0.275804, -0.409994, -0.370556, 0.691615, 0.898499, 0.287761, + 0.558396, 0.434993, 0.001253, -0.744343, 0.250862, -0.343619, 0.382884, -0.650681, -0.067969, + -0.393072, -0.925092, -0.924494, 0.922621, -0.001088, -0.862044, 0.163975, -0.062759, 0.823817, + 0.942453, -0.257031, -0.600053, -0.573074, -0.26589, -0.548932, 0.901345, -0.382235, 0.515211, + 0.452553, 0.233809, 0.487499, 0.846798, 0.425482, 0.440025, -0.839056, -0.088622, 0.02309, + 0.783162, 0.427303, 0.7777, 0.773485, -0.466457, 0.141867, 0.953532, 0.353522, 0.565409, + 0.406474, -0.313912, 0.238794, -0.690957, 0.922561, 0.057217, 0.774926, -0.702964, -0.918658, + 0.119735, -0.12812, -0.404499, 0.523951, -0.650519, 0.876287, -0.976213, 0.205081, -0.584698, + 0.216941, 0.987578, -0.120028, 0.232518, -0.393539, -0.513145, -0.854202, 0.5772, -0.011106, + 0.346295, -0.769094, -0.832562, -0.909287, -0.576285, -0.130025, -0.150886, 0.439703, -0.480504, + 0.974386, -0.455707, -0.9404, 0.756463, -0.642671, 0.095303, -0.096545, -0.208595, 0.000648, + -0.983363, 0.899235, -0.649178, 0.609704, -0.591319, -0.246245, -0.02365, -0.394145, -0.433229, + -0.841731, -0.686836, -0.04692, -0.292324, -0.140436, 0.2551, -0.128201, -0.946639, -0.367781, + 0.306081, 0.359901, 0.483909, 0.055377, 0.683679, -0.684311, -0.839199, -0.266626, 0.006744, + 0.726071, -0.57669, -0.700356, -0.027054, 0.2543, -0.912077, -0.403106, -0.785548, 0.233692, + 0.093285, -0.889244, -0.665887, 0.046242, -0.264991, -0.773466, -0.303027, -0.918382, -0.114186, + -0.116561, 0.052418, 0.084936, -0.174188, 0.798041, -0.358034, 0.451913, 0.37755, -0.122572, + -0.732839, -0.842607, 0.276807, 0.305735, 0.606506, -0.442645, 0.807383, 0.999874, -0.159053, + -0.389691, -0.314109, -0.869396, 0.576488, 0.108983, 0.460709, 0.642503, -0.424675, 0.009312, + 0.808394, -0.770905, 0.879206, 0.520004, -0.314062, -0.816511, 0.534126, 0.477107, -0.452863, + 0.476085, 0.296791, 0.98436, 0.511522, 0.154391, -0.98982, 0.813852, 0.858597, -0.277188, + -0.078202, -0.03896, -0.061063, 0.543611, 0.135167, -0.869697, 0.32174, -0.614255, 0.285514, + 0.435283, -0.477502, 0.677423, 0.025537, -0.502957, 0.856897, 0.638995, 0.731253, -0.688535, + -0.762123, -0.879233, 0.646535, 0.583219, -0.609581, 0.392027, 0.200998, -0.425668, 0.034321, + -0.603297, -0.292782, 0.395405, 0.141214, -0.74418, 0.251654, -0.19955, -0.734614, -0.924573, + 0.043125, -0.735972, -0.611282, 0.240965, 0.061662, -0.452737, 0.155027, 0.50377, -0.386145, + -0.356638, 0.17658, 0.244609, 0.345631, 0.681003, -0.066844, 0.332203, -0.575436, -0.127519, + 0.740768, -0.968743, -0.657807, -0.864426, 0.832044, -0.1129, 0.915873, -0.538983, -0.271928, + 0.643643, -0.995979, -0.974573, -0.669667, 0.017015, -0.91998, 0.185154, 0.845716, -0.202692, + -0.176071, -0.880057, -0.211385, 0.082709, 0.204706, -0.329303, -0.6111, -0.523906, 0.689519, + -0.544014, 0.077744, -0.175769, -0.4021, -0.043195, 0.755877, 0.757165, -0.20888, -0.201136, + -0.560161, -0.465125, -0.170822, 0.742029, 0.142462, -0.855881, -0.257052, -0.863891, 0.924127, + 0.092583, -0.253813, 0.400986, -0.937456, -0.330135, 0.093808, 0.721583, 0.815673, -0.033428, + -0.999619, 0.184732, -0.563942, 0.901942, -0.269262, -0.272148, -0.148521, 0.926872, 0.438522, + -0.689617, 0.17524, 0.317966, -0.259737, 0.331972, -0.897622, -0.515493, 0.638837, 0.929015, + 0.317651, -0.566541, 0.36444, -0.575973, -0.801265, -0.659835, -0.094779, 0.212352, 0.074457, + 0.961107, -0.070954, 0.919921, -0.743184, -0.514809, 0.137106, 0.596012, 0.296821, 0.980646, + -0.533057, 0.935855, 0.319279, 0.264037, -0.025638, -0.719773, 0.534959, 0.216896, 0.689336, + 0.735911, -0.849319, 0.926353, -0.230273, -0.669951, 0.872799, -0.158151, 0.164773, 0.150098, + -0.537904, 0.634143, 0.379188, 0.805486, -0.277929, -0.733756, 0.195868, -0.268689, 0.000516, + -0.813321, 0.896846, -0.525928, -0.090347, 0.025374, -0.434429, 0.594139, -0.814818, -0.134514, + -0.647599, 0.592993, -0.728001, 0.791723, -0.864907, -0.999442, 0.024388, -0.984463, 0.931515, + 0.934102, -0.456658, 0.747478, -0.384591, 0.24463, -0.700908, -0.067699, -0.30533, 0.224344, + 0.321473, -0.933392, 0.06757, 0.774359, 0.805613, 0.452762, 0.023156, 0.686088, 0.530664, + -0.657781, -0.057044, -0.926397, 0.07041, 0.07594, -0.658359, 0.23882, 0.69154, -0.850888, + -0.890793, -0.488668, 0.129579, -0.970569, -0.199016, 0.767817, -0.825348, -0.267116, -0.211393, + 0.604378, -0.371855, 0.75914, -0.501198, 0.371009, -0.184827, 0.8705, -0.490316, -0.37572, + 0.90192, -0.792191, 0.282728, 0.497061, -0.086849, 0.879192, -0.930087, -0.145226, -0.526214, + 0.394004, 0.977763, -0.978874, -0.445761, -0.74054, -0.560897, 0.302317, 0.014742, -0.783236, + -0.613217, -0.654942, 0.075869, -0.823549, -0.781909, -0.801196, 0.806597, 0.730391, -0.473163, + 0.234727, -0.139662, -0.4019, 0.466281, -0.672633, -0.0033, 0.747326, -0.868371, 0.824477, + 0.66056, 0.442234, -0.130667, -0.388979, -0.549018, -0.725036, -0.974792, -0.143445, 0.198816, + -0.96798, 0.984366, -0.714515, 0.078942, -0.338925, 0.910091, -0.435316, 0.261224, 0.318728, + 0.458563, -0.701056, -0.553818, 0.011143, -0.986343, -0.390243, -0.839069, 0.442023, 0.103622, + -0.934476, 0.977951, 0.409944, -0.573125, -0.100682, 0.678155, -0.594306, 0.250095, 0.3252, + -0.642875, -0.525532, -0.177335, -0.782249, 0.860563, 0.285538, -0.318318, -0.011757, 0.010929, + 0.331189, 0.710314, -0.840369, -0.355713, 0.360564, -0.558524, -0.049265, -0.292566, 0.572984, + -0.536192, 0.901129, 0.475454, -0.716979, -0.198813, -0.093806, -0.978843, -0.857042, 0.82741, + 0.718504, -0.681011, -0.009843, 0.268693, 0.610182, 0.885778, 0.627352, 0.829333, -0.648344, + -0.227926, 0.478492, -0.769754, -0.968406, 0.563641, 0.729144, 0.399646, 0.635156, 0.467878, + 0.13539, -0.22514, 0.137883, -0.348787, 0.811898, 0.844657, -0.306344, 0.441323, -0.271506, + 0.800133, -0.899587, 0.142286, -0.076922, 0.682782, 0.105974, 0.18973, -0.979187, -0.55015, + 0.933439, -0.089622, 0.427467, -0.81757, 0.514871, -0.435064, -0.102612, 0.942279, 0.708386, + -0.876822, -0.448593, 0.59005, -0.183759, 0.789618, 0.410861, -0.110921, -0.623472, 0.057392, + 0.78876, 0.768483, -0.43156, -0.276371, 0.322512, -0.84997, 0.133607, 0.255458, 0.981423, + -0.123817, 0.972917, 0.972604, -0.514569, 0.155466, 0.57317, -0.11613, -0.547736, 0.21323, + 0.440684, -0.810253, -0.805826, -0.754581, -0.766303, 0.875587, -0.444789, -0.118761, -0.266121, + -0.514011, 0.846081, -0.357065, 0.607259, -0.462113, 0.980853, 0.252736, -0.176501, 0.007042, + 0.414304, -0.53707, -0.296579, -0.74205, -0.670673, 0.481002, -0.083724, -0.499155, 0.046487, + 0.570589, 0.9184, -0.585402, 0.408147, 0.095568, -0.507513, 0.221638, 0.112358, 0.590982, + 0.818267, 0.469686, 0.189202, -0.751309, -0.837248, 0.468508, -0.613497, 0.013826, 0.769825, + 0.501944, -0.127038, 0.157596, 0.0344, 0.086316, 0.872029, -0.611794, 0.870499, 0.047999, + 0.948413, -0.426358, 0.614738, -0.549775, -0.819334, 0.726891, 0.345668, 0.983048, 0.4053, + -0.421875, -0.594734, 0.818509, -0.198242, -0.594137, -0.738592, -0.669407, -0.420057, -0.803999, + 0.962462, 0.115541, 0.329918, -0.491963, 0.028185, 0.681634, -0.338909, 0.807369, -0.310897, + -0.373869, -0.736049, -0.991083, 0.435995, -0.645129, -0.548255, -0.409067, -0.764815, -0.768676, + -0.652875, 0.974935, 0.058095, -0.37685, -0.083369, 0.835949, -0.581675, 0.403875, -0.186312, + -0.849629, 0.661402, 0.461966, 0.734965, 0.457824, 0.162941, 0.307451, -0.746558, 0.963668, + -0.644156, 0.705506, -0.63317, -0.722678, 0.412118, 0.655371, -0.27237, 0.280078, -0.871631, + -0.112292, 0.882303, 0.934392, -0.318425, 0.369483, 0.922274, 0.37086, 0.183314, -0.805803, + 0.287485, 0.266977, -0.563302, 0.499332, -0.652315, 0.957344, -0.050322, 0.680832, -0.262578, + -0.507971, 0.727485, 0.607141, 0.981899, 0.293962, -0.419816, -0.587237, -0.954214, 0.063371, + 0.957317, -0.331478, -0.193007, 0.704364, 0.889545, 0.271659, 0.079423, 0.977897, 0.837493, + -0.636317, -0.69768, -0.229414, 0.396294, -0.611975, -0.428074, 0.083013, -0.252654, 0.670866, + 0.633423, 0.688674, 0.531892, -0.578542, -0.769652, -0.671957, -0.127997, 0.786018, -0.222047, + 0.920187, 0.746345, -0.949105, 0.461789, -0.421808, -0.953943, 0.350493, -0.343594, -0.888455, + -0.703744, 0.735757, -0.239561, 0.783793, -0.347016, 0.976879, -0.250306, 0.946505, 0.387903, + -0.751393, 0.436977, 0.419897, -0.839501, -0.864569, 0.058007, 0.541658, 0.852049, -0.277255, + -0.936457, 0.456795, 0.069729, 0.025503, 0.631339, 0.119414, 0.86685, 0.76769, 0.256051, + 0.744892, 0.320156, -0.949013, 0.897578, 0.030463, -0.123544, 0.824107, 0.87223, -0.791281, + 0.393929, -0.549726, -0.256956, 0.214848, -0.371116, -0.422147, 0.497869, -0.24047, 0.377667, + 0.958838, 0.242594, 0.23256, 0.877326, -0.375969, 0.001445, -0.925597, -0.425749, -0.07834, + 0.906881, 0.564939, -0.185716, -0.272057, 0.244844, -0.434242, -0.146161, 0.264786, -0.309924, + 0.73197, 0.395967, -0.103847, -0.174597, 0.099424, 0.52287, 0.280314, -0.272636, 0.348634, + -0.042475, -0.7298, -0.788256, 0.007484, 0.865321, -0.388726, 0.627536, -0.297004, 0.597853, + -0.224105, -0.414603, 0.293223, 0.529059, -0.762162, -0.072957, 0.207552, 0.179867, 0.974867, + -0.876606, 0.853377, 0.517099, -0.942974, -0.385313, 0.347401, -0.752731, 0.935098, -0.376206, + 0.383306, 0.193013, -0.389295, -0.941086, 0.073123, -0.817106, -0.218415, 0.210261, -0.350172, + 0.571046, -0.898436, -0.789441, 0.532581, -0.520777, 0.821266, -0.202264, -0.179052, 0.953557, + -0.110889, -0.801796, -0.416578, 0.31118, 0.681036, 0.843186, -0.36711, 0.147176, 0.728492, + -0.409106, 0.066858, -0.484629, 0.142492, 0.972852, 0.844994, -0.657665, 0.490802, 0.940846, + -0.177034, 0.354935, -0.897998, 0.555604, -0.187336, 0.918475, 0.700439, -0.574832, -0.442217, + -0.786334, -0.923835, -0.907271, 0.484092, 0.663134, -0.634449, 0.699888, -0.313723, 0.298367, + 0.837593, 0.775858, -0.797055, 0.393587, -0.502271, -0.85867, -0.04431, -0.223961, 0.209924, + 0.112808, 0.578894, 0.515831, -0.896546, -0.873891, -0.631916, 0.514967, 0.923504, -0.585367, + 0.187379, 0.055817, 0.373194, 0.386264, 0.155814, 0.665261, -0.33242, 0.954636, -0.028247, + -0.906315, 0.487322, 0.704013, 0.670472, 0.109938, 0.338329, 0.310354, -0.426985, -0.040005, + 0.023605, -0.553709, -0.373049, -0.398407, -0.164143, -0.657998, 0.579997, -0.025221, 0.76919, + -0.641988, 0.2777, -0.327983, 0.52984, -0.39987, -0.495945, 0.079486, -0.573412, 0.690085, + -0.037672, 0.560526, -0.293449, -0.246166, -0.945816, 0.279453, 0.341073, 0.656536, 0.132533, + -0.095644, -0.13436, 0.407833, 0.956485, 0.064278, -0.843642, -0.892647, 0.382857, 0.89018, + -0.528553, 0.504066, 0.836953, 0.87529, 0.635322, -0.648838, 0.701504, 0.035139, -0.600301, + -0.992697, -0.392688, 0.831935, 0.999168, 0.734577, -0.706804, 0.576746, 0.552827, 0.902465, + -0.588478, 0.828292, -0.130689, 0.399493, -0.854769, -0.154958, -0.632811, -0.284402, -0.103673, + -0.358275, 0.443696, 0.926671, 0.232227, -0.441048, -0.223075, -0.309442, 0.074173, -0.088986, + 0.584785, 0.07654, -0.896809, -0.357737, -0.48442, 0.351295, 0.896389, 0.812713, 0.23669, + -0.645605, -0.03425, 0.156163, 0.020108, 0.551481, 0.482857, -0.307239, -0.370581, 0.116339, + 0.095819, 0.020376, -0.964189, -0.938254, 0.899787, 0.975741, -0.876547, -0.700558, -0.14537, + -0.566033, -0.980456, 0.30948, -0.639708, 0.320738, -0.645966, -0.052211, -0.317547, -0.189312, + -0.43304, -0.83806, 0.809944, -0.083284, -0.538539, 0.934015, 0.12765, -0.23562, 0.290539, + -0.061151, 0.250772, 0.839699, 0.369352, 0.704881, 0.528775, -0.402728, -0.08223, -0.188466, + 0.994113, -0.378853, 0.714857, -0.289513, 0.836324, 0.426488, 0.551264, -0.7151, -0.029611, + 0.932181, -0.794164, -0.218602, -0.986004, -0.924132, 0.737338, -0.590456, 0.095283, -0.852593, + -0.757204, 0.902692, 0.195612, -0.274314, -0.265291, 0.964793, 0.712594, 0.707863, 0.899418, + 0.037884, 0.149157, 0.058506, -0.399648, -0.868014, 0.892423, 0.829871, 0.093793, -0.355254, + 0.86887, -0.444602, -0.037978, -0.342864, -0.583413, -0.762436, 0.975926, 0.877926, 0.491549, + -0.367455, -0.326618, 0.585959, 0.758274, 0.999691, 0.467269, -0.380718, -0.437773, 0.95262, + -0.705189, -0.841705, -0.103943, -0.163531, 0.49792, -0.679646, -0.227688, -0.773508, 0.682261, + 0.2272, -0.499463, -0.268955, 0.630244, 0.792983, -0.919865, -0.58152, 0.171701, 0.253244, + -0.633955, 0.381849, 0.047409, -0.555083, -0.764846, -0.009737, 0.311837, 0.455914, 0.376521, + 0.703228, 0.891957, -0.602353, -0.354833, -0.839772, 0.77803, -0.951783, -0.483896, -0.905631, + -0.15601, -0.393357, 0.58634, -0.809121, 0.602012, -0.374305, 0.191599, -0.642964, 0.275291, + 0.783427, 0.340484, 0.303224, -0.260463, -0.942252, 0.288214, 0.713961, 0.562518, 0.859584, + -0.528062, 0.571192, 0.685214, 0.741031, -0.513224, 0.743305, -0.86777, -0.535844, 0.522959, + 0.790586, 0.659954, -0.261966, -0.750866, 0.615877, -0.498832, 0.695196, -0.009402, 0.403022, + 0.18019, -0.132893, -0.425209, -0.212607, -0.264234, -0.821659, 0.339638, 0.394911, -0.998688, + -0.478761, -0.794545, -0.008982, -0.558998, 0.796481, -0.762611, -0.336048, 0.883121, 0.039378, + 0.801653, -0.474405, 0.864777, -0.677102, -0.397555, -0.880756, 0.947129, 0.381285, -0.325477, + 0.112889, -0.025554, -0.727564, -0.661101, 0.411317, 0.725651, 0.021132, 0.966715, -0.062921, + 0.601064, 0.384639, 0.993695, 0.42061, -0.637988, 0.655923, -0.477335, -0.798442, -0.805502, + 0.992771, 0.235505, 0.416121, -0.430943, -0.8021, 0.279566, -0.81979, 0.210654, -0.1326, + 0.09921, 0.634211, -0.902653, 0.433349, -0.453489, -0.188532, -0.515734, -0.333949, 0.380128, + 0.496403, -0.802653, 0.167706, -0.00137, 0.662622, -0.003868, 0.927588, 0.79587, -0.895235, + 0.802285, 0.074336, -0.099238, -0.609284, -0.622122, 0.294386, -0.393431, 0.361436, -0.132157, + -0.234332, 0.600536, -0.71639, -0.346699, 0.691378, 0.536769, 0.974374, 0.75192, -0.670929, + 0.571974, 0.083135, 0.705016, -0.24069, 0.531194, -0.23313, 0.448963, -0.494404, 0.49751, + 0.587417, 0.760133, -0.534507, -0.544533, 0.339664, -0.660443, -0.601311, 0.125945, 0.943222, + -0.708635, -0.173837, -0.735991, -0.106393, 0.884425, -0.766981, 0.673462, 0.547061, 0.131067, + 0.658058, 0.494017, 0.317101, 0.141522, -0.650316, -0.949735, 0.670123, -0.365337, -0.904666, + -0.326817, -0.704091, 0.815205, 0.73864, -0.890112, 0.406161, -0.408073, 0.955794, 0.0943, + -0.061383, 0.393523, -0.857697, -0.39664, 0.825964, 0.856672, -0.176031, 0.752488, -0.82067, + -0.788064, -0.202935, -0.936117, 0.859822, -0.146783, -0.532885, 0.306239, -0.168917, 0.588198, + 0.573747, -0.737395, 0.221696, -0.200873, 0.491707, -0.695755, 0.016188, 0.302025, -0.794409, + 0.307826, -0.383721, 0.371067, -0.424199, -0.217189, -0.957316, -0.135884, 0.753035, 0.352293, + -0.752325, -0.832932, 0.757498, -0.430192, -0.795372, -0.409615, 0.524998, 0.121372, -0.511204, + 0.495735, 0.997674, 0.224965, -0.749933, -0.273353, -0.995546, 0.853373, -0.654431, -0.028821, + -0.587151, -0.035231, -0.707001, -0.78997, -0.720919, 0.425755, -0.999996, 0.833255, 0.431201, + 0.536188, 0.935493, 0.074092, -0.254711, -0.922077, -0.594193, -0.683375, -0.916119, -0.414483, + -0.020578, -0.030634, 0.155679, -0.687449, 0.593679, -0.929193, 0.341621, -0.397673, 0.855233, + -0.525182, 0.932861, -0.72792, -0.661427, -0.102608, -0.695951, 0.101593, -0.714764, -0.10541, + -0.128085, -0.354049, 0.162359, -0.568159, 0.583534, -0.285159, -0.570019, -0.292429, 0.365845, + -0.570823, -0.933358, -0.226179, -0.677987, 0.977705, -0.351024, 0.252632, -0.47122, 0.024603, + -0.220114, -0.145821, 0.828478, 0.420462, -0.507004, 0.517278, -0.643792, 0.769476, -0.883186, + -0.974493, 0.981344, 0.546299, 0.035162, -0.773295, 0.616609, -0.405712, 0.279886, 0.174577, + 0.642607, -0.235944, 0.999539, -0.725492, -0.453049, 0.984825, -0.882524, -0.3048, 0.31245, + 0.39999, -0.319206, -0.784658, 0.845103, -0.767493, 0.951869, 0.074853, -0.571547, 0.140304, + -0.03362, -0.832341, 0.867622, -0.584013, -0.178761, -0.535669, 0.220035, -0.670385, 0.857186, + -0.265374, 0.933189, 0.004337, -0.160985, -0.897215, 0.627782, -0.00642, -0.795162, 0.483051, + 0.151975, -0.546876, -0.601046, -0.201694, 0.468405, 0.322731, -0.617854, -0.701253, 0.837579, + 0.194956, 0.48787, -0.942413, 0.472041, 0.868018, -0.031282, 0.811091, 0.211872, 0.039026, + 0.349134, -0.350103, -0.106044, -0.19581, 0.258032, 0.099318, -0.466751, 0.512209, -0.560977, + 0.630777, 0.100452, -0.063999, -0.065204, 0.21893, 0.041918, 0.872572, 0.800969, 0.994245, + 0.60768, 0.021213, -0.387508, -0.371241, 0.606642, -0.079159, -0.896896, 0.031412, -0.2358, + -0.723638, -0.758435, -0.091325, 0.357876, 0.539568, -0.716294, -0.845694, -0.763346, -0.040082, + -0.081708, 0.467086, -0.814019, 0.90992, -0.299256, -0.947186, -0.630562, 0.242605, -0.207172, + 0.72405, -0.004711, 0.608559, 0.829088, -0.380046, 0.082173, -0.076467, -0.457283, -0.910445, + -0.485541, 0.510797, -0.192238, -0.881292, 0.264757, 0.365035, 0.183716, 0.811475, -0.766314, + -0.394523, -0.057933, -0.659836, 0.337056, -0.251074, 0.931861, -0.33077, -0.70679, 0.767512, + 0.983177, 0.736774, -0.773805, -0.494551, 0.470858, 0.918458, 0.681748, -0.855108, -0.336672, + -0.057794, 0.490796, -0.692403, 0.395243, -0.234063, 0.308909, -0.159576, 0.967672, -0.105196, + -0.38584, -0.162411, -0.493679, -0.826971, 0.645883, -0.606505, -0.435375, -0.515534, -0.010208, + 0.561814, -0.269669, 0.005832, -0.354981, 0.782797, -0.147324, 0.714292, -0.271967, -0.28324, + -0.5528, -0.66871, 0.543287, -0.942328, 0.19919, 0.832743, -0.742661, 0.411067, 0.244401, + 0.094922, 0.949682, -0.6874, 0.587591, -0.496237, 0.595043, 0.078828, 0.072757, -0.851495, + 0.113997, -0.734528, -0.83094, 0.559842, 0.008908, -0.256951, -0.159038, 0.793671, -0.017968, + -0.640111, 0.966208, -0.555718, 0.723711, 0.83434, 0.18275, -0.905525, -0.295373, -0.833918, + -0.876593, -0.738983, -0.530942, -0.922857, -0.549131, -0.790033, -0.776205, -0.655131, -0.962412, + 0.017952, 0.085937, -0.192186, 0.98612, 0.484455, 0.628999, 0.522072, -0.528049, 0.254267, + 0.318581, -0.735954, 0.872741, -0.593991, -0.1233, -0.97661, -0.781122, 0.801962, -0.733245, + 0.899973, 0.517427, 0.924634, -0.468513, -0.783866, 0.831991, -0.40906, -0.118386, 0.931765, + -0.453153, -0.343491, 0.572544, 0.903541, 0.044981, 0.010032, 0.710506, -0.406548, 0.800107, + 0.590393, 0.134232, -0.526481, 0.88181, -0.264837, -0.502652, -0.212819, 0.155933, -0.990589, + 0.232933, -0.147343, 0.302596, -0.030049, -0.526809, -0.238497, -0.288359, 0.848387, -0.884557, + 0.287403, 0.906237, 0.309835, -0.530716, 0.294123, 0.401469, 0.43057, 0.082843, -0.875923, + 0.22391, -0.210056, 0.532125, 0.895717, -0.357885, 0.017001, 0.819829, -0.17125, 0.151272, + -0.387905, 0.25056, -0.412688, -0.8772, -0.876645, 0.439207, -0.150178, 0.174537, 0.670708, + 0.209404, 0.885954, 0.306037, -0.910707, 0.633196, -0.896037, 0.480947, -0.077787, -0.953818, + -0.188738, 0.873038, -0.456193, -0.432722, 0.540777, 0.20363, 0.40379, -0.630332, -0.340213, + -0.650454, 0.227708, 0.20362, -0.500818, -0.545551, 0.465016, 0.081226, 0.204548, -0.233059, + -0.885948, 0.642296, 0.936237, 0.848154, -0.736447, -0.472051, -0.724718, 0.904119, 0.802837, + -0.450354, 0.179388, 0.716752, 0.764705, -0.464103, -0.37823, -0.765446, -0.899832, -0.269363, + -0.312051, 0.59886, 0.756415, -0.218273, 0.444754, 0.006275, 0.502497, -0.882741, -0.176074, + -0.33289, 0.807847, 0.473965, 0.389034, 0.49902, -0.667207, -0.754203, -0.590928, -0.169914, + -0.513848, 0.428703, 0.864663, 0.990222, 0.676109, 0.413142, 0.011533, -0.533974, 0.172686, + 0.574985, 0.11425, -0.109877, -0.08379, -0.890832, 0.035925, 0.158295, 0.853405, 0.362664, + 0.94496, -0.020756, 0.768508, -0.598334, 0.288263, 0.953604, 0.25148, -0.558483, 0.416375, + -0.954479, 0.43434, -0.551124, 0.704075, 0.091, 0.322829, -0.454129, -0.092422, -0.521148, + 0.851201, 0.394354, -0.528504, -0.375066, 0.476704, -0.610317, 0.198022, -0.492948, -0.122984, + 0.687609, -0.14921, 0.555114, -0.659761, 0.783371, -0.943211, -0.952504, -0.985464, -0.864861, + -0.087795, -0.954897, 0.225469, -0.523924, 0.160744, -0.068393, 0.371438, -0.132492, -0.800294, + 0.123915, 0.233546, -0.02568, -0.212146, -0.10148, 0.065493, 0.050959, -0.281771, 0.681009, + -0.837784, 0.694382, -0.621921, 0.712215, -0.690706, -0.620557, 0.13421, 0.927446, -0.117081, + -0.162025, 0.387159, 0.340164, -0.30969, 0.067095, 0.998973, -0.013819, -0.899793, -0.898658, + 0.553272, -0.69331, -0.912911, 0.062195, -0.245595, 0.988789, -0.778031, 0.699519, 0.292123, + 0.182714, 0.352902, 0.565125, 0.716525, -0.76093, 0.947384, 0.342926, 0.152865, -0.450961, + 0.96863, -0.52106, 0.184049, 0.416806, -0.796666, 0.902627, -0.007505, 0.120223, -0.925282, + 0.324032, -0.789955, -0.222371, 0.117075, -0.584427, 0.895762, -0.815149, 0.213602, 0.370746, + -0.702584, -0.071445, -0.938484, -0.994353, 0.715937, -0.138584, -0.320995, -0.805361, 0.929763, + -0.420292, 0.798633, -0.956522, 0.318848, -0.364889, 0.697464, 0.02917, -0.373783, -0.413396, + -0.371691, 0.861309, -0.004268, -0.945805, -0.012382, -0.04446, 0.847782, -0.843759, 0.004928, + 0.778962, 0.115602, -0.026082, -0.893577, -0.759823, -0.303521, -0.831523, 0.374351, 0.301066, + -0.841373, 0.990847, 0.114943, 0.657587, -0.37388, 0.827608, 0.839909, -0.887328, -0.40386, + -0.722389, -0.006554, -0.677285, -0.425468, 0.367976, 0.458476, 0.766433, 0.909475, 0.321268, + -0.210564, 0.214285, 0.947277, 0.950987, -0.993681, 0.902667, -0.30795, -0.342376, -0.891845, + 0.521539, 0.29758, 0.691927, -0.514292, 0.666503, -0.93606, 0.733521, 0.706079, -0.892347, + -0.791306, 0.193496, 0.475224, 0.97821, 0.508325, -0.687683, 0.325902, -0.920907, -0.50653, + 0.155326, 0.288034, -0.881864, -0.237711, -0.81069, -0.885643, -0.006063, -0.056466, 0.216239, + 0.644669, -0.968704, -0.56714, -0.319455, -0.756532, 0.909829, 0.942588, -0.97404, -0.867681, + -0.538656, -0.298746, 0.07701, -0.97765, -0.13409, -0.805834, 0.932757, -0.596085, 0.170035, + 0.991849, -0.793364, 0.043701, 0.895243, 0.011289, -0.737422, -0.457591, -0.861373, -0.514181, + -0.65079, 0.461234, 0.566627, -0.236895, 0.781047, -0.610943, 0.359685, -0.885785, 0.583007, + -0.991713, 0.584814, -0.065609, -0.885481, 0.905588, 0.142656, -0.744663, 0.264595, -0.644795, + -0.726766, 0.018953, -0.150901, -0.688638, 0.721894, 0.241731, -0.495341, 0.512665, 0.598843, + 0.811283, -0.121537, -0.302343, 0.110541, -0.087228, 0.519956, -0.469436, 0.5025, 0.928309, + 0.402945, 0.688846, -0.657466, 0.364238, -0.834278, -0.032816, -0.150267, 0.987677, -0.302463, + 0.820745, 0.601815, -0.008888, 0.683794, 0.98423, -0.550412, -0.911014, 0.230419, 0.518278, + 0.136991, 0.918571, -0.157361, 0.187488, -0.771295, 0.714006, -0.58759, -0.133078, -0.662626, + 0.686101, -0.591114, -0.843667, -0.501022, 0.001858, -0.664513, 0.054515, -0.1586, 0.779261, + 0.460414, 0.382674, -0.521045, 0.563299, 0.629785, -0.054453, 0.005646, -0.149235, -0.018571, + -0.733011, 0.49594, 0.920425, 0.50175, 0.472066, 0.906473, 0.697465, 0.233527, 0.664268, + 0.696222, 0.204561, -0.241424, -0.591875, -0.274664, 0.299083, -0.780137, -0.909419, -0.15358, + 0.167999, 0.641114, 0.809016, -0.810216, 0.014587, -0.726615, 0.094491, -0.816519, -0.901791, + 0.046823, 0.665436, -0.957509, -0.899671, 0.114649, 0.966334, -0.285789, 0.92093, 0.935411, + -0.436244, 0.275049, 0.617959, -0.876578, 0.400791, 0.414182, -0.00268, -0.987719, -0.15586, + -0.760203, 2.5e-05, 0.026473, -0.546215, 0.873065, -0.653869, 0.649463, 0.638103, 0.921527, + 0.293122, 0.664438, -0.347565, 0.358516, 0.906918, -0.974228, -0.707451, 0.296319, -0.228183, + -0.169658, -0.571165, 0.000882, -0.313698, 0.952617, 0.612369, 0.261761, 0.410257, -0.420981, + -0.268992, 0.5921, 0.859229, -0.205509, -0.876735, -0.025215, 0.594898, 0.046914, -0.964146, + 0.125838, -0.541142, 0.410784, 0.824738, 0.608189, -0.813502, 0.229021, -0.055912, 0.19872, + -0.494296, -0.811937, -0.466631, 0.041515, 0.551844, -0.882427, 0.500546, 0.956309, -0.8319, + -0.698162, 0.192444, -0.595401, 0.175485, -0.903371, -0.075734, 0.908296, 0.751721, 0.170342, + 0.442807, 0.901121, -0.809286, 0.740804, 0.34101, -0.839248, 0.513851, 0.138148, -0.882984, + -0.51804, 0.09607, 0.114386, 0.26478, 0.777063, 0.832091, 0.380042, 0.088354, 0.00376, + 0.915017, 0.056715, -0.660908, -0.4846, -0.975187, -0.693234, 0.972298, -0.778417, -0.223884, + -0.942706, 0.564903, -0.411643, 0.998526, 0.677893, -0.420273, -0.413572, -0.166351, -0.261317, + -0.866223, 0.098269, -0.679217, -0.638066, 0.307915, 0.536931, -0.949031, 0.216436, 0.835776, + 0.381173, -0.741858, -0.956399, -0.10383, 0.701917, -0.074074, -0.94229, 0.978404, -0.743431, + 0.312234, -0.595771, 0.203263, -0.208272, -0.116348, -0.161825, 0.798168, -0.468894, -0.300081, + -0.716375, -0.580495, -0.17022, -0.787306, -0.380307, -0.124869, -0.706328, 0.208011, 0.122633, + 0.189184, 0.933041, -0.663934, -0.191777, -0.400852, -0.769578, -0.254862, 0.256199, 0.222464, + -0.091563, 0.715019, 0.691989, 0.774031, 0.718564, 0.031394, -0.048149, 0.766698, 0.134392, + 0.855519, 0.040923, -0.761283, -0.683761, 0.461567, 0.632291, 0.331207, 0.782527, 0.931615, + -0.430492, 0.296651, 0.168128, -0.121806, -0.838079, -0.772176, 0.439262, -0.432981, -0.388053, + -0.548666, -0.422044, 0.441477, -0.710875, 0.446249, -0.088569, 0.511873, -0.533006, 0.355077, + 0.220725, 0.745971, 0.624701, 0.080407, 0.846743, -0.748972, -0.339077, 0.420642, 0.548774, + -0.715029, -0.291574, 0.792207, -0.860316, 0.439952, 0.991066, -0.371042, -0.111996, 0.253543, + 0.459084, -0.14346, -0.887629, -0.043518, 0.118255, 0.660847, 0.180114, 0.752404, -0.383489, + -0.153675, 0.291939, 0.794912, 0.416828, 0.921957, 0.327775, 0.512223, 0.216866, 0.825768, + 0.782205, 0.607449, -0.847379, -0.111003, -0.338769, -0.150339, 0.712041, -0.660217, -0.521281, + -0.405561, 0.07046, -0.555628, 0.199839, -0.847487, -0.511811, 0.597231, 0.689545, -0.312516, + 0.053454, -0.034012, -0.707955, -0.224239, 0.590363, 0.033597, 0.959168, -0.816914, -0.708826, + -0.852542, -0.632969, 0.209812, 0.668954, -0.818672, -0.763009, -0.370385, 0.593183, 0.528193, + -0.101593, 0.912167, 0.363909, 0.939941, 0.002688, -0.61927, 0.011159, 0.316739, 0.39097, + -0.003763, 0.034158, 0.189736, -0.220478, 0.244831, -0.636494, -0.220051, 0.539158, 0.305666, + 0.559575, -0.665997, -0.29433, -0.517712, -0.777909, -0.410556, -0.063967, -0.073259, -0.061791, + -0.631666, -0.067844, 0.265162, 0.718207, 0.604984, -0.835712, -0.637078, 0.788803, 0.678818, + 0.555096, -0.515758, 0.843315, -0.97153, -0.795275, 0.0895, 0.465084, -0.942564, 0.147203, + -0.015049, -0.131633, -0.783256, -0.479388, 0.046942, 0.239165, 0.627194, -0.354267, 0.946542, + 0.37653, -0.679412, -0.995568, 0.672338, 0.075576, -0.100364, -0.331052, 0.470144, -0.359844, + -0.731619, 0.694471, -0.428746, 0.575791, -0.687684, -0.20103, -0.547975, 0.042564, -0.118265, + 0.29834, -0.77565, -0.881992, 0.795298, -0.765679, 0.337196, -0.868483, 0.19487, -0.021277, + -0.491748, -0.020592, 0.122776, 0.027984, 0.756532, -0.572796, 0.452825, 0.921005, -0.71827, + -0.783251, 0.337976, -0.354996, -0.022553, -0.932825, 0.610831, -0.066023, 0.06148, -0.34761, + 0.347143, -0.016399, -0.39854, 0.248409, -0.371302, 0.371121, -0.957778, -0.386931, -0.685174, + 0.42545, -0.702215, 0.774808, 0.243489, 0.612877, -0.652316, -0.812334, -0.164102, -0.54946, + -0.338718, 0.822003, 0.534482, -0.295459, 0.607238, -0.669816, -0.581089, 0.442942, 0.431729, + -0.289139, -0.682412, 0.156301, 0.964683, 0.984208, 0.8204, -0.749905, 0.662885, 0.183129, + -0.811663, 0.064226, -0.965721, 0.214676, -0.549872, -0.672836, 0.048658, 0.67447, 0.561287, + -0.618838, 0.568803, 0.372075, -0.667567, -0.257934, -0.239637, -0.812782, -0.912482, -0.679064, + 0.909084, -0.265703, 0.095991, -0.830392, -0.17201, 0.377808, -0.020265, -0.078584, -0.01332, + 0.672383, -0.704465, -0.898024, -0.9632, 0.406618, -0.557042, -0.437367, -0.132267, 0.586246, + 0.008691, 0.195738, -0.280895, 0.544237, -0.498877, 0.770826, 0.823137, -0.899554, -0.316638, + -0.120501, -0.538475, 0.053694, -0.328218, 0.827878, -0.079114, -0.558992, -0.496563, -0.934587, + -0.614604, 0.194152, 0.302067, -0.430997, 0.010175, 0.501754, 0.132184, 0.112657, -0.656012, + 0.940172, -0.295225, 0.082495, -0.12315, 0.434446, -0.828297, 0.227576, -0.776205, 0.789313, + -0.39417, 0.204141, 0.066177, -0.397471, -0.133461, 0.951201, -0.505635, -0.259938, 0.659159, + 0.587085, 0.276671, -0.875036, -0.161305, -0.985316, -0.494208, -0.106906, -0.377969, 0.410527, + 0.010026, 0.1968, 0.293154, 0.241425, -0.980392, 0.201904, 0.822821, 0.337536, 0.717858, + -0.541455, -0.253842, -0.912374, -0.913279, -0.753878, 0.511028, -0.588167, 0.335675, 0.692562, + 0.357156, -0.419142, 0.638836, 0.366749, 0.22679, -0.250867, 0.794417, 0.483282, -0.175772, + 0.461186, -0.666374, -0.086594, -0.830217, -0.892377, 0.814543, 0.531568, -0.339397, -0.557194, + -0.383733, -0.237654, -0.170124, 0.856286, 0.957209, 0.522169, -0.559449, -0.352555, 0.124704, + -0.595596, 0.894611, -0.592721, 0.9256, -0.00438, 0.90603, 0.653568, 0.089897, 0.98156, + 0.087366, 0.383844, -0.257901, -0.880597, -0.613009, -0.8049, 0.685019, 0.444715, 0.281728, + 0.927176, -0.705946, 0.281309, 0.043143, -0.875277, -0.965983, 0.97121, 0.849141, 0.181699, + -0.641974, 0.139319, 0.713061, -0.217572, 0.013886, -0.491863, 0.755938, -0.609512, -0.561932, + -0.256903, -0.031695, 0.251952, 0.778386, 0.612381, 0.144269, 0.262237, 0.847681, -0.293648, + -0.476063, 0.765849, 0.867532, -0.040959, -0.039225, 0.75888, -0.186501, 0.987145, -0.732731, + 0.245815, 0.75751, -0.962801, -0.264476, 0.85215, 0.723831, -0.667286, 0.800023, 0.856949, + 0.393073, -0.253422, -0.574646, -0.206463, 0.314884, 0.211719, 0.137598, -0.708783, 0.810704, + 0.118037, 0.20663, -0.831651, -0.281747, -0.241497, 0.690949, 0.794891, -0.62291, -0.681117, + -0.592803, -0.28035, -0.767511, 0.924056, -0.665793, 0.824156, 0.406285, -0.3669, -0.49285, + 0.100519, -0.980295, -0.42601, 0.131371, -0.964573, 0.935665, -0.593983, -0.026562, -0.501952, + -0.418636, -0.400091, 0.198768, -0.615065, 0.412385, 0.38369, 0.553203, -0.929973, -0.591057, + 0.601248, 0.798982, 0.374362, -0.865101, 0.245183, 0.675647, -0.045965, 0.609454, -0.705969, + 0.594575, 0.19867, -0.354044, 0.8037, -0.907448, 0.857723, 0.227036, 0.273844, -0.110178, + 0.128319, 0.704203, 0.120025, 0.117003, 0.493922, -0.456464, -0.222821, 0.39007, 0.888898, + -0.183882, 0.026149, 0.420931, -0.642926, -0.800294, 0.057769, 0.178256, -0.772531, 0.973135, + 0.347753, -0.607877, 0.771116, 0.281067, 0.077037, 0.09177, -0.667859, -0.08049, 0.776916, + -0.498221, 0.463471, 0.634916, 0.986772, -0.803379, 0.273762, 0.328763, -0.338258, 0.589371, + 0.387023, 0.850243, -0.714851, 0.270859, -0.723812, 0.265319, 0.638871, -0.852969, 0.774783, + 0.572904, -0.090979, 0.925143, 0.006058, -0.731884, -0.707746, 0.648065, -0.82153, -0.335773, + 0.803259, 0.514143, 0.914053, 0.346455, 0.023297, 0.464213, -0.452141, 0.597427, -0.488593, + -0.315543, -0.278465, -0.546157, -0.019531, -0.21535, -0.188665, 0.641875, 0.763364, -0.525422, + 0.951076, 0.700252, -0.275276, 0.713931, -0.328066, 0.928574, -0.052725, 0.754741, 0.816023, + 0.687497, 0.392274, 0.140979, -0.80078, 0.011384, 0.62398, 0.95269, 0.357323, -0.615144, + -0.019152, -0.416013, -0.007597, -0.640688, -0.09491, -0.007137, 0.585456, -0.434055, -0.748316, + -0.049244, 0.961552, 0.463585, 0.540704, -0.974173, -0.009904, -0.210756, 0.183684, 0.752024, + 0.944217, 0.411811, 0.656376, -0.24099, -0.097289, -0.927819, -0.697775, -0.814015, 0.589111, + 0.481619, -0.807884, 0.797501, -0.944191, 0.100113, -0.908208, 0.818858, -0.463688, -0.64236, + 0.468722, -0.214439, 0.644675, 0.933411, 0.710891, 0.124532, -0.083649, -0.716428, -0.585575, + -0.594979, 0.606336, 0.041573, -0.663644, 0.899628, -0.315668, 0.981752, 0.951189, 0.17277, + -0.819734, 0.32957, 0.021649, -0.491812, -0.598415, -0.696667, 0.154391, 0.417183, 0.168655, + 0.578651, -0.365102, -0.360652, 0.978999, -0.758218, -0.921406, 0.973129, 0.61973, -0.167266, + 0.305757, -0.314692, -0.138539, 0.138633, -0.343541, 0.070251, -0.375669, -0.827645, 0.466218, + -0.73369, -0.977016, 0.197869, 0.731623, 0.347142, -0.707575, 0.60227, -0.289539, -0.123552, + 0.595348, 0.392983, -0.35253, 0.607584, -0.266472, -0.268953, 0.689685, -0.226187, -0.019995, + 0.93553, 0.961883, 0.2355, 0.752106, -0.141065, -0.460166, 0.935344, 0.524776, 0.683686, + -0.484155, 0.523446, 0.818557, 0.095664, 0.666534, -0.907357, 0.395485, -0.246973, 0.908658, + 0.360957, 0.990203, -0.347617, 0.091966, 0.711833, -0.723197, -0.348788, -0.800193, -0.750775, + 0.442925, -0.302016, 0.653944, 0.092322, 0.352172, 0.106472, -0.937157, -0.150777, -0.549165, + -0.396143, 0.804628, -0.773805, -0.730162, -0.320688, -0.443797, 0.246831, 0.641657, 0.156934, + 0.017611, 0.480324, 0.59717, 0.035164, -0.675273, -0.866508, 0.997924, 0.325243, 0.915514, + -0.383813, 0.274951, -0.526598, -0.526457, -0.457593, 0.999434, 0.729075, -0.615401, -0.70544, + 0.329846, -0.235801, 0.047824, 0.127678, -0.875614, 0.220874, -0.008738, -0.699876, -0.988927, + 0.510604, -0.914422, -0.450489, 0.607825, -0.66634, -0.473586, -0.630103, 0.588654, 0.309384, + 0.103211, 0.352104, 0.286095, -0.211282, -0.092163, -0.625936, -0.469711, 0.015434, -0.12136, + 0.251739, 0.474641, 0.767101, 0.958209, -0.076001, 0.394303, -0.809912, 0.578733, -0.26738, + -0.79349, -0.778618, -0.833704, -0.461882, 0.45662, -0.815636, -0.118029, -0.15541, 0.367843, + -0.407661, 0.506614, -0.618424, 0.587577, -0.996438, -0.681053, 0.350752, 0.153453, 0.700462, + 0.520849, -0.833261, 0.786499, -0.259506, -0.188861, -0.425706, -0.173395, -0.933621, 0.077315, + 0.7535, -0.199869, 0.768933, -0.451926, 0.403935, 0.098866, -0.388114, 0.974874, 0.082197, + 0.044527, -0.108025, -0.054178, 0.806154, -0.152195, 0.60052, 0.362682, 0.652205, -0.757899, + -0.876272, -0.328348, -0.279148, 0.952832, 0.985358, -0.238443, -0.479145, -0.004225, 0.382728, + 0.341778, 0.188762, 0.734428, 0.1063, 0.809151, 0.243595, -0.088896, 0.832553, 0.032513, + 0.039904, -0.193261, 0.587355, -0.296525, 0.780143, 0.53389, -0.016037, -0.16394, 0.391842, + -0.976496, -0.330752, -0.353475, -0.122502, -0.478543, -0.431925, 0.475547, -0.105995, -0.693086, + -0.072238, 0.322886, -0.40514, 0.850813, -0.694167, 0.870704, 0.38492, -0.57478, -0.946702, + 0.390084, -0.18646, 0.296295, 0.426994, -0.677964, 0.117538, -0.213134, -0.900418, 0.176429, + 0.213723, -0.764982, 0.940588, 0.524388, 0.568506, -0.871346, -0.864049, 0.431974, 0.577498, + -0.857611, 0.96029, -0.220372, -0.810706, -0.733654, -0.232006, 0.526271, -0.689688, 0.736787, + 0.999325, 0.940049, 0.455184, -0.408504, -0.380154, 0.71802, -0.208843, 0.153017, 0.999536, + -0.994052, -0.228352, -0.395342, -0.161871, 0.041191, -0.216614, 0.970741, 0.405543, -0.628292, + 0.968976, -0.277556, 0.143997, 0.093348, -0.735015, 0.508765, -0.607535, -0.890911, 0.839405, + 0.598785, -0.418578, -0.715773, 0.903051, 0.353602, -0.663785, -0.830919, -0.413732, -0.555741, + 0.07089, 0.095735, -0.978528, 0.501744, 0.509437, -0.906182, 0.804016, -0.398202, 0.514713, + 0.980805, 0.592329, 0.671452, 0.035188, 0.146477, -0.850652, -0.725498, 0.805484, -0.913913, + 0.430671, -0.589204, 0.866922, 0.737803, -0.225983, -0.127883, -0.693704, 0.932703, -0.602681, + 0.356951, 0.700753, -0.962876, -0.983552, -0.701832, -0.150116, 0.621673, -0.30434, -0.412991, + 0.665442, 0.802009, 0.526977, 0.864144, -0.90168, -0.8918, 0.166148, -0.839018, -0.279148, + 0.608713, 0.971678, -0.200975, -0.881936, -0.493436, 0.97184, -0.185194, -0.930016, -0.529474, + -0.623732, -0.261024, -0.724014, -0.338466, 0.916783, -0.473575, -0.214859, 0.561455, -0.934475, + -0.525186, -0.084966, 0.786361, 0.139087, -0.004944, -0.331822, 0.463106, -0.429826, -0.156465, + -0.43098, 0.373768, 0.997429, -0.754498, -0.070459, -0.070872, -0.5007, -0.712901, -0.426559, + -0.781518, 0.759339, -0.708847, 0.61003, 0.826972, -0.183762, 0.930439, 0.722602, -0.69732, + 0.570878, 0.257101, 0.786854, -0.758471, 0.778345, 0.141899, 0.488839, -0.555156, 0.658502, + -0.071912, 0.824627, 0.085363, 0.620755, -0.631919, -0.886247, 0.347312, 0.529739, 0.276773, + 0.314172, 0.658684, -0.514523, 0.535241, 0.479381, -0.42446, -0.594867, -0.993082, 0.735391, + -0.015417, 0.22866, -0.707752, -0.75186, 0.820634, 0.704557, 0.540813, 0.799671, 0.805288, + 0.590693, 0.722322, -0.128463, 0.260454, -0.859495, -0.358432, -0.093429, -0.048754, 0.986265, + 0.815934, 0.314895, 0.932458, -0.50982, 0.194427, -0.793239, -0.850646, 0.534654, 0.321075, + -0.053823, -0.64704, 0.720888, -0.076715, 0.682698, -0.690907, 0.768504, -0.047233, -0.312496, + -0.082551, -0.771271, -0.182845, 0.058593, -0.740375, 0.540023, 0.944661, 0.51557, -0.491226, + -0.621439, -0.792506, -0.61648, 0.596905, 0.460889, -0.374007, 0.01638, -0.157517, 0.014445, + -0.99444, 0.845093, -0.350958, -0.86142, -0.018092, 0.298907, 0.457982, -0.505098, -0.073026, + -0.74906, -0.753857, -0.660204, -0.62809, 0.62797, -0.902018, -0.207597, -0.414602, 0.657672, + -0.06462, -0.550317, 0.812029, -0.758262, -0.378648, -0.912446, -0.079854, 0.284653, 0.873816, + -0.725026, -0.667424, 0.999335, 0.175962, -0.677666, 0.431194, 0.963232, 0.036801, -0.458562, + -0.534623, -0.359708, 0.509774, -0.707702, 0.909589, -0.618785, 0.280407, 0.994795, -0.442098, + -0.668527, -0.518393, -0.419355, -0.614077, -0.985364, -0.513935, -0.347652, 0.866376, -0.170656, + 0.116523, -0.313813, 0.155877, 0.476388, 0.17473, -0.123079, 0.084211, 0.943624, -0.666056, + 0.98104, -0.222107, 0.713044, 0.774484, 0.034785, 0.022516, 0.693178, -0.138933, 0.275187, + 0.956794, -0.197972, -0.352221, 0.775488, 0.898427, 0.958944, -0.943516, 0.658502, 0.492217, + -0.638097, 0.653121, -0.53706, 0.528934, 0.085493, 0.315252, -0.614791, -0.193347, -0.543632, + 0.544045, -0.794384, 0.07002, 0.386328, -0.023268, -0.300871, 0.228109, 0.078993, -0.551291, + -0.271537, -0.21872, -0.563589, 0.024751, -0.310654, -0.56533, -0.810194, -0.652072, -0.217708, + 0.799826, -0.117657, -0.536933, -0.762627, 0.170512, 0.85031, -0.901161, 0.771121, 0.893245, + 0.226244, 0.498892, 0.296945, -0.874252, -0.398876, -0.234106, -0.596328, -0.031437, 0.210979, + 0.034199, 0.545522, -0.589314, 0.841166, -0.406691, 0.801827, 0.907069, -0.816965, -0.958305, + 0.742092, 0.761267, -0.10706, 0.20737, 0.147422, -0.305334, 0.526178, 0.337414, -0.964693, + -0.27586, -0.593922, 0.429265, -0.998458, -0.859402, -0.881482, -0.343479, -0.77119, -0.199332, + -0.569063, 0.642885, 0.877389, 0.386846, -0.388005, 0.408003, -0.858663, -0.500167, -0.209635, + -0.934971, 0.937732, 0.655284, 0.463259, 0.469991, 0.984081, -0.380226, 0.239877, -0.33627, + -0.169757, -0.819803, 0.597929, -0.720321, -0.446917, 0.891465, -0.586881, 0.128542, -0.917776, + -0.580722, 0.907271, 0.537812, 0.042372, -0.498566, 0.762654, 0.941266, 0.200398, -0.644654, + 0.03445, 0.48717, 0.292028, 0.899864, 0.900551, 0.506522, -0.695505, -0.054057, 0.193648, + -0.333552, 0.299118, 0.652705, -0.540282, -0.304843, -0.760663, 0.155333, 0.598588, 0.904465, + 0.052433, 0.65119, -0.965757, -0.021734, -0.188662, -0.460506, 0.925742, 0.624435, -0.833351, + -0.908113, -0.46847, 0.339453, 0.47443, 0.517665, 0.773036, -0.640038, 0.0843, -0.445642, + -0.485108, 0.009673, -0.088012, -0.810211, -0.014544, 0.48086, 0.89684, -0.270248, 0.676235, + -0.22367, -0.735601, 0.864946, -0.236359, -0.23235, -0.169186, 0.901319, -0.42707, -0.265549, + 0.05825, -0.654728, 0.389974, 0.841925, 0.361556, -0.240478, -0.191336, -0.980084, -0.788305, + -0.274139, 0.554346, 0.930145, -0.070077, -0.095946, 0.684195, -0.209716, -0.682202, 0.566274, + -0.432369, -0.712163, 0.008609, -0.66532, -0.77991, -0.551224, -0.086765, 0.33284, -0.414337, + -0.956364, -0.340368, 0.930143, -0.230932, -0.730065, -0.374295, 0.900603, 0.15949, -0.140185, + 0.978313, 0.103122, 0.152127, 0.985557, -0.102656, -0.17615, 0.800137, 0.317007, -0.701521, + 0.640092, -0.419169, -0.852339, 0.883842, -0.738699, -0.425772, -0.159408, -0.005896, -0.1144, + 0.74404, 0.748214, -0.889742, -0.927789, -0.978621, 0.832208, -0.121286, -0.494989, -0.659727, + 0.130698, 0.286109, 0.57378, 0.807139, 0.889111, -0.66667, -0.052856, -0.635808, -0.360814, + 0.028768, 0.560756, -0.448909, -0.563784, -0.264932, 0.41339, 0.027803, 0.749351, -0.900117, + 0.36346, 0.757361, 0.62991, -0.870194, -0.667462, 0.014791, 0.00474, 0.595717, 0.815598, + -0.065881, -0.293827, 0.545202, -0.648313, -0.456205, 0.123048, -0.168287, 0.604467, -0.19828, + 0.106229, 0.284049, -0.085499, -0.321537, 0.622645, 0.557284, -0.152668, -0.64026, -0.327882, + 0.691769, 0.585241, -0.326108, 0.546687, -0.117823, -0.058585, -0.470338, 0.029237, -0.208982, + 0.252565, -0.951091, -0.059752, -0.781941, -0.929179, -0.991474, -0.160728, 0.186852, 0.104428, + 0.23541, -0.42951, -0.662309, -0.216361, -0.750591, -0.124712, 0.209907, 0.139523, -0.908331, + 0.949635, 0.861418, -0.447941, -0.851761, 0.146014, 0.225616, -0.267366, -0.459392, 0.075447, + -0.608602, -0.524015, 0.319904, 0.113084, 0.403496, 0.8457, -0.009735, 0.34033, 0.713904, + -0.625998, 0.666149, 0.685416, -0.381903, 0.78161, -0.458467, -0.477208, 0.716995, 0.463889, + -0.072051, -0.789929, 0.570406, 0.245528, -0.596978, -0.037183, 0.722461, 0.422256, -0.459799, + -0.010702, -0.353449, 0.660055, 0.469316, -0.14808, -0.11721, -0.728373, -0.221309, 0.490242, + -0.959078, 0.12763, 0.951461, 0.430427, 0.496737, -0.270651, -0.084339, -0.853895, -0.483946, + 0.251259, 0.341363, 0.589621, -0.563376, 0.287178, -0.552232, -0.737371, -0.38348, -0.680099, + 0.189629, 0.157474, 0.641782, 0.522215, 0.194947, 0.385858, 0.306392, -0.945617, -0.462095, + -0.816418, -0.579816, 0.200375, 0.942996, 0.69238, -0.407149, 0.23239, 0.688221, 0.208364, + -0.817805, 0.122609, 0.407261, 0.163718, 0.913396, 0.834524, -0.558766, 0.760292, -0.894972, + -0.567711, 0.405463, 0.030344, 0.86359, 0.59498, -0.213032, 0.956286, -0.717664, 0.186364, + 0.31915, 0.781711, 0.978404, 0.487638, -0.445651, 0.804078, 0.68845, -0.01971, 0.71789, + 0.159308, -0.086958, 0.30895, 0.002795, -0.281813, 0.145168, -0.006663, -0.687044, -0.732771, + 0.328594, -0.389407, 0.024457, 0.883102, 0.737738, 0.555575, 0.532503, 0.677126, -0.670619, + 0.930539, -0.737372, -0.648009, -0.40964, 0.977363, 0.559777, 0.280277, 0.579768, -0.955067, + -0.953784, 0.31156, -0.273431, 0.478554, -0.709723, 0.946799, -0.872369, 0.509658, 0.526831, + -0.536273, 0.883672, 0.521073, -0.45656, -0.452403, 0.76529, -0.246315, 0.065751, 0.458368, + 0.466583, -0.500735, 0.752773, 0.303263, 0.321965, -0.464662, 0.450801, -0.12416, 0.709137, + 0.512756, 0.723386, -0.13578, 0.649931, 0.769305, 0.221886, -0.063075, -0.653474, -0.516134, + 0.576002, -0.612983, -0.491775, 0.510035, -0.508221, -0.773496, 0.222239, 0.431589, -0.906479, + 0.127847, -0.771167, 0.421905, 0.547054, 0.336493, 0.976549, -0.194084, -0.39779, 0.270556, + 0.300144, -0.446887, -0.658252, -0.304466, 0.414797, 0.422567, -0.44284, 0.845789, -0.743237, + -0.116058, 0.244214, -0.720306, 0.910136, -0.491497, 0.592168, 0.040275, -0.561427, 0.934783, + -0.111289, 0.177998, 0.940575, -0.94171, 0.804613, -0.493486, -0.811638, 0.556198, -0.305971, + -0.798123, -0.490274, 0.646412, 0.438205, -0.0491, 0.513553, 0.19864, -0.74874, 0.192075, + 0.712062, -0.093712, -0.114271, 0.981981, -0.285905, 0.932141, 0.875571, 0.808471, 0.265664, + 0.274493, 0.257276, -0.91662, -0.395681, -0.559961, -0.147226, -0.500168, -0.322052, -0.680871, + -0.727155, 0.323234, 0.976129, -0.40557, -0.660831, -0.336226, -0.377637, -0.973874, 0.878299, + 0.679231, 0.741537, -0.516786, -0.661225, 0.958542, -0.604973, -0.840197, -0.832982, 0.304374, + -0.133453, -0.610124, 0.851519, -0.554376, 0.065132, 0.498356, 0.478527, 0.837032, -0.123891, + 0.515479, -0.079358, 0.132107, -0.587287, 0.618929, 0.227568, 0.200453, -0.076632, 0.404696, + -0.965886, 0.817188, 0.784505, 0.535782, -0.036471, -0.933108, -0.2709, -0.803393, -0.479111, + 0.786461, -0.115377, 0.996263, -0.504094, -0.465742, -0.801467, 0.380872, 0.370128, 0.504974, + 0.864901, 0.601236, -0.917088, 0.028698, 0.87233, 0.697877, 0.387017, -0.469552, -0.843752, + 0.963879, -0.3275, 0.341832, -0.270289, -0.337684, 0.356079, 0.925117, -0.237519, 0.433183, + 0.402606, -0.159743, 0.19898, 0.332258, 0.892783, -0.37749, 0.76917, -0.064566, 0.394436, + -0.810772, 0.672091, 0.842803, 0.232926, 0.030693, 0.26097, -0.789811, -0.862004, 0.744829, + -0.897979, -0.223986, -0.612465, -0.933468, -0.424383, -0.008071, -0.802458, -0.766579, -0.806528, + -0.036134, -0.266329, 0.734895, -0.957281, -0.873473, -0.304817, 0.999959, 0.910831, -0.129301, + -0.272573, 0.138247, 0.042017, 0.094, -0.432195, -0.048642, 0.192386, 0.597566, -0.630839, + -0.20343, 0.502112, 0.658241, 0.541695, -0.242538, 0.228034, -0.342291, 0.849308, 0.568063, + -0.902403, 0.485736, 0.981668, 0.267413, -0.793195, 0.643246, 0.053538, -0.268308, 0.436433, + 0.776407, 0.453801, -0.788466, 0.417349, -0.617079, -0.934034, -0.495981, 0.526037, 0.768802, + 0.295222, 0.614655, -0.95416, -0.486944, -0.570573, -0.849597, -0.624446, -0.714016, -0.835651, + 0.14591, -0.466105, 0.041295, -0.160114, 0.068712, -0.90831, -0.820191, -0.904156, 0.695932, + 0.033122, -0.851141, -0.384877, -0.010307, -0.661811, 0.809049, 0.717614, 0.240351, -0.172202, + 0.581631, 0.261835, 0.085124, 0.123319, -0.870391, 0.283152, 0.365112, 0.616955, 0.474235, + 0.851131, -0.531591, 0.082044, -0.736431, 0.858514, -0.046681, -0.864174, 0.648233, 0.11793, + -0.288243, 0.894635, -0.526683, -0.496143, -0.343296, 0.114545, -0.777093, 0.216244, -0.967622, + -0.538996, -0.584947, -0.726597, 0.229108, 0.439318, -0.244514, -0.300418, 0.021183, -0.810542, + -0.949158, -0.647709, -0.724956, 0.141035, 0.807109, 0.713536, -0.615622, 0.556376, 0.877062, + -0.211563, -0.326077, -0.94472, -0.072056, -0.387417, 0.252344, -0.918131, -0.095763, 0.175879, + -0.248765, -0.153696, 0.949187, 0.435016, -0.744184, -0.45276, 0.461326, 0.435655, -0.842284, + -0.683522, -0.41355, -0.121756, 0.059784, 0.246514, -0.466255, -0.558378, 0.560037, -0.780173, + -0.176383, -0.896902, -0.760769, 0.373673, -0.048966, 0.839116, 0.990785, -0.828978, -0.534093, + 0.227369, -0.125859, -0.91592, -0.595395, -0.536341, 0.103973, 0.424867, 0.61348, 0.845649, + -0.528185, 0.756891, -0.573387, -0.859071, -0.43075, 0.458607, 0.165764, -0.86959, 0.269112, + -0.038728, 0.726461, -0.565084, -0.829407, -0.06309, -0.400882, -0.170052, -0.267763, 0.975336, + -0.131064, -0.967496, -0.588322, -0.03161, 0.564141, 0.24189, -0.986644, 0.145947, 0.713942, + -0.320717, 0.465137, 0.831172, 0.84049, 0.165761, -0.959406, -0.854954, 0.74042, -0.322003, + 0.856975, 0.642231, -0.896867, 0.451643, -0.830945, -0.724948, 0.703936, 0.900439, 0.484039, + 0.464436, 0.116769, 0.646677, -0.937678, 0.490586, 0.118151, -0.30041, -0.583105, 0.374813, + -0.21796, 0.108588, -0.206964, -0.029378, -0.357604, -0.9506, 0.239196, -0.144653, -0.298486, + 0.652239, -0.469624, -0.135589, -0.913016, -0.373209, 0.711453, 0.053499, 0.552602, 0.836845, + 0.257672, 0.734523, 0.239264, 0.594984, -0.863217, 0.74018, 0.333967, 0.154361, -0.980833, + 0.56455, 0.539231, -0.752591, 0.859572, 0.927076, -0.094188, -0.317875, -0.060266, -0.843296, + -0.891499, -0.13865, -0.344207, 0.886904, 0.587557, -0.278057, -0.985492, 0.308684, -0.084446, + -0.530121, 0.888205, 0.625735, -0.383104, 0.851149, -0.873085, -0.829168, 0.466261, 0.607813, + -0.208801, -0.190667, -0.970326, 0.333889, -0.028967, -0.750743, -0.768649, 0.564911, -0.837481, + 0.217358, 0.912176, -0.293657, 0.565015, 0.442315, -0.225331, -0.616331, -0.598024, -0.977293, + 0.144791, 0.230702, -0.259303, 0.535771, -0.069474, 0.306055, 0.972143, 0.935937, 0.799387, + -0.413993, 0.021381, -0.301566, 0.288217, 0.587789, 0.16605, -0.32159, 0.16892, -0.739774, + -0.874635, -0.172503, -0.092113, -0.209472, 0.451313, 0.31497, 0.239983, 0.248219, -0.056645, + 0.186343, -0.684362, -0.637931, 0.117414, 0.626735, 0.042371, 0.909144, 0.807746, -0.998195, + -0.460654, 0.347757, -0.04795, 0.335606, -0.549067, 0.534523, -0.575416, 0.068507, -0.798161, + -0.287927, 0.638534, 0.51702, -0.721396, 0.572837, -0.14697, -0.768169, 0.906532, 0.339754, + 0.105392, 0.31767, 0.442761, -0.901741, 0.570983, 0.730203, 0.123091, -0.284228, 0.140857, + 0.068388, 0.169165, -0.621196, 0.631789, 0.061235, 0.058521, -0.369709, 0.867, -0.716782, + -0.338315, -0.674477, 0.750229, -0.401172, 0.016771, -0.069152, 0.753969, -0.846721, -0.514799, + -0.972138, -0.217027, -0.861935, -0.020917, 0.38498, 0.098271, 0.09664, -0.208333, -0.71765, + -0.153665, 0.813921, 0.188386, 0.179454, -0.299327, 0.671808, 0.6648, 0.21428, 0.707167, + 0.077015, 0.019228, 0.274345, -0.961705, 0.638418, -0.520907, -0.435353, -0.059943, -0.751862, + -0.643708, 0.809177, -0.163486, 0.366827, 0.19969, 0.980163, -0.468684, -0.511969, 0.957582, + -0.666189, -0.984398, -0.175681, 0.56543, 0.446414, -0.670731, -0.774395, 0.321147, -0.655043, + 0.554432, -0.226502, -0.404868, -0.179709, 0.814047, -0.601427, -0.767898, 0.404965, 0.421365, + -0.191987, 0.602119, -0.241126, -0.419274, -0.76047, -0.500094, -0.555872, 0.265941, -0.183476, + 0.721635, -0.484824, 0.582289, 0.811231, -0.227984, -0.558858, 0.497898, -0.951893, 0.661857, + 0.767557, -0.058348, -0.619807, 0.127189, 0.723678, 0.133877, 0.187058, 0.435865, 0.565578, + 0.218187, -0.545013, 0.02793, -0.426476, 0.503197, -0.514225, 0.874073, 0.420833, -0.998951, + -0.418878, -0.150326, -0.324221, -0.03342, -0.535051, 0.702943, 0.45565, -0.094745, -0.436378, + -0.764304, -0.576336, -0.552053, 0.9397, -0.001062, -0.570487, -0.077157, -0.0392, 0.24312, + 0.325637, 0.627166, -0.498062, -0.216116, -0.858225, -0.359575, -0.879206, -0.086686, -0.604483, + -0.342343, 0.935703, 0.905351, 0.130144, 0.508855, 0.646115, 0.043979, 0.199164, -0.06723, + -0.797632, 0.796552, -0.740914, -0.29904, -0.832382, -0.59244, 0.99556, -0.092273, 0.313079, + 0.241955, 0.781229, 0.209315, 0.035347, -0.458927, 0.183442, 0.217192, -0.688719, -0.723249, + -0.432383, 0.860319, 0.397288, 0.559826, 0.66648, -0.009975, -0.667722, 0.958162, 0.164733, + -0.359722, 0.402456, -0.70215, 0.035247, 0.928599, 0.329668, -0.937301, 0.871943, 0.213351, + -0.267258, 0.786598, 0.44415, 0.584215, 0.489152, -0.560077, -0.722522, 0.718166, -0.061782, + 0.81208, 0.496861, -0.964005, 0.546545, 0.498687, -0.962747, 0.059087, -0.79898, 0.489707, + 0.532288, 0.304395, 0.625942, -0.554867, -0.034884, -0.270941, 0.764309, 0.713828, -0.352807, + -0.848575, -0.034861, 0.781619, -0.21578, 0.368047, -0.726908, -0.664865, -0.858255, -0.860158, + -0.406478, -0.426472, 0.386171, 0.824161, 0.122863, 0.403086, -0.639042, -0.433172, -0.934227, + 0.936382, 0.10673, -0.274015, -0.913715, 0.187409, -0.981304, 0.672154, -0.93805, 0.214058, + 0.62051, -0.807963, 0.734446, 0.960038, 0.698784, 0.908041, -0.467898, -0.175435, 0.897277, + 0.473724, -0.67877, 0.984951, -0.169022, -0.325294, 0.137891, 0.962188, -0.503915, 0.087817, + -0.117604, -0.299546, 0.461195, 0.060175, -0.820418, -0.02469, 0.631773, -0.474162, 0.888445, + -0.82387, 0.338664, 0.620108, 0.350655, 0.394985, 0.147066, -0.210655, 0.716651, -0.221691, + 0.840312, 0.956606, -0.86581, 0.813169, 0.248838, -0.682056, -0.555878, -0.137945, 0.934701, + 0.610551, -0.265945, -0.596997, -0.647196, -0.505267, -0.022681, -0.868138, -0.892533, -0.627966, + 0.275582, 0.354982, 0.294895, 0.831512, 0.242067, -0.388322, 0.396969, -0.466605, 0.889456, + -0.38383, -0.624561, -0.191797, -0.557695, -0.100431, -0.167125, 0.117172, -0.132336, -0.696695, + -0.936821, -0.722962, -0.930526, -0.997213, 0.970447, 0.585543, 0.453407, 0.643899, 0.303946, + -0.330343, -0.124194, -0.411039, 0.45107, 0.257371, -0.839944, 0.155402, -0.76984, 0.751942, + 0.108641, -0.015433, -0.591254, 0.15406, 0.127241, 0.256728, -0.700354, -0.422298, -0.69683, + -0.62512, -0.548037, -0.806581, 0.982482, -0.946348, -0.261847, 0.042396, -0.402702, -0.277379, + 0.468037, -0.229785, -0.11818, 0.88241, -0.358992, -0.044244, 0.636179, -0.234501, -0.797684, + 0.770051, -0.861819, -0.985608, -0.513496, 0.132652, 0.810242, -0.780659, -0.497761, 0.903333, + 0.780697, 0.378711, -0.846602, 0.549567, -0.063551, -0.76861, 0.783382, -0.68395, 0.162972, + -0.544851, 0.847773, 0.031133, -0.2421, 0.562507, 0.91, -0.077858, 0.678435, -0.359172, + -0.540154, -0.540862, -0.959948, 0.884613, 0.247643, -0.705912, -0.867075, 0.627444, 0.047656, + -0.683504, -0.09979, -0.363555, 0.130287, -0.413389, -0.467883, -0.586092, -0.412866, 0.016046, + 0.486601, 0.213022, 0.637774, -0.312392, -0.344924, -0.601012, -0.862083, -0.61356, -0.208142, + 0.941682, -0.974653, 0.748141, 0.513338, 0.497765, 0.53124, 0.53713, 0.864778, 0.370354, + -0.208032, 0.380496, -0.074529, -0.48415, 0.366268, 0.999798, 0.750125, -0.431148, -0.088592, + 0.382951, 0.554785, -0.870645, 0.136091, -0.118074, 0.95954, 0.284235, -0.448833, -0.31865, + 0.815752, -0.295889, 0.185881, 0.874743, -0.883808, -0.081928, -0.901685, -0.303765, 0.366827, + 0.00056, 0.4958, -0.680568, 0.445543, -0.43493, 0.648311, -0.259682, 0.818352, 0.080379, + 0.342111, -0.757078, 0.146405, 0.737851, -0.763206, 0.73983, 0.37274, -0.425642, -0.65227, + 0.614233, -0.304322, 0.486909, 0.122123, 0.933872, -0.688452, -0.139958, 0.437793, -0.491374, + -0.274729, -0.219015, 0.980879, 0.43943, -0.927411, 0.27929, 0.845005, 0.503836, 0.908357, + -0.19798, 0.099329, 0.977203, 0.921795, -0.293778, 0.210649, 0.040629, 0.882489, -0.439137, + -0.123545, 0.366011, -0.155369, -0.470619, 0.851476, -0.370995, 0.614377, -0.225173, -0.986283, + -0.69129, 0.256362, 0.716187, -0.140572, 0.651287, 0.183684, 0.425234, 0.990191, 0.682205, + 0.774673, -0.63542, -0.737638, 0.792822, 0.922288, 0.508136, 0.396771, -0.231371, 0.350276, + -0.481694, -0.042284, 0.935752, -0.629998, -0.840424, -0.077896, 0.521594, -0.930036, 0.636528, + 0.044575, 0.119643, 0.61921, 0.505603, -0.056721, -0.951404, 0.864888, -0.323756, -0.555463, + 0.33445, 0.672113, 0.142395, -0.569013, -0.908155, 0.435346, 0.350044, 0.594399, 0.996407, + -0.544724, 0.310621, 0.992042, -0.031221, -0.371286, -0.780629, 0.016023, -0.505054, -0.680796, + -0.950813, 0.412672, -0.144249, 0.43114, 0.535375, -0.993795, -0.362542, 0.891149, -0.172315, + 0.673698, -0.864547, 0.914008, 0.422315, -0.702235}; + const std::vector wanted_output{ + -0.031451, -0.005409, -0.008442, -0.010516, 0.001751, 0.037254, 0.053517, 0.015999, 0.019252, + 0.020942, -0.055407, -0.017394, -0.062566, -0.07805, 0.014045, 0.005368, 0.079313, -0.023039, + 0.00222, 0.006276, 0.09923, -0.034845, -0.010782, -0.019168, 0.031812, 0.061469, -0.00443, + -0.021243, -0.034113, 0.008726, 0.020586, 0.077636, -0.02027, -0.018029, 0.014868, -0.020642, + -0.007361, 0.032315, 0.039043, -0.01183, 0.024703, 0.011409, -0.054947, -0.00567, -0.057171, + -0.069375, 0.022798, 0.020254, 0.095585, -0.033213, -0.01155, -0.002741, 0.107985, -0.022335, + 0.009583, -0.038413, 0.024334, 0.046787, -0.006079, -0.009229, -0.03582, -0.02597, 0.030746, + 0.039686, -0.040277, -0.025476, 0.011361, -0.018421, -0.0095, 0.040567, 0.037223, -0.016763, + 0.026304, 0.018, -0.065011, 0.010958, -0.067455, -0.082836, 0.019912, -0.018275, 0.075616, + -0.064961, 0.001085, 0.037964, 0.103647, -0.065996, 0.009328, -0.053437, 0.018287, 0.065472, + -0.020964, -0.026587, 0.005963, -0.043206, 0.042145, 0.048602, -0.021009, -0.021801, -0.026518, + -0.031962, -0.020774, 0.034482, 0.044999, 0.008933, 0.021708, 0.015984, -0.077661, 0.020008, + -0.05663, -0.101191, 0.030319, -0.020474, 0.097892, -0.041931, 0.010617, 0.0102, 0.103468, + -0.023087, 0.012909, -0.050932, 0.016763, 0.056315, 0.00294, -0.036404, -0.006172, -0.039867, + 0.030725, 0.046956, -0.01833, -0.01432, 0.027958, -0.031, -0.029732, 0.072027, 0.028646, + -0.007417, 0.005141, -0.011175, -0.036861, -0.010576, -0.067772, -0.087147, 0.01951, 0.004308, + 0.077595, -0.026426, -0.001536, 0.01479, 0.079515, -0.052892, -0.01964, -0.030987, 0.041675, + 0.057122, -0.015364, -0.032741, -0.010385, -0.020829, 0.015167, 0.073329, -0.043386, -0.031786, + 0.023765, -0.019546, -0.000824, 0.041617, 0.026386, -0.022765, 0.012769, -0.002511, -0.071014, + 0.001955, -0.083254, -0.074697, 0.033569, 0.011288, 0.072419, -0.038684, -0.00828, 0.001484, + 0.106428, -0.020518, 0.014805, -0.052848, 0.035442, 0.056028, -0.02425, -0.015068, -0.040818, + -0.032549, 0.049385, 0.056036, -0.010963, -0.032036, 0.011061, -0.005502, 0.015405, 0.048111, + 0.004942, -0.021746, 0.030403, 0.009674, -0.053317, -0.015783, -0.079605, -0.079406, 0.030116, + 0.005359, 0.056405, -0.023827, -0.020892, -0.007848, 0.083726, -0.036374, -0.013057, -0.048528, + 0.025938, 0.07755, 0.000834, -0.021557, -0.034112, -0.012127, 0.021773, 0.029147, -0.05042, + -0.004452, -0.037721, 0.008577, -0.016272, 0.035335, 0.024493, 0.020251, 0.047167, -0.015371, + -0.064049, -0.013595, -0.058249, -0.095724, 0.005386, 0.031878, 0.042129, -0.038679, -0.008392, + -0.002479, 0.087211, -0.062624, 0.008156, -0.034054, 0.026012, 0.078288, -0.004151, -0.016999, + -0.063118, -0.016473, -0.003485, 0.058871, -0.032241, -0.007323, -0.003023, -0.001341, -0.021847, + 0.02827, 0.021209, -0.049815, 0.012971, -0.008059, -0.08437, 0.029993, -0.047988, -0.072056, + 0.0579, -0.005835, 0.075677, -0.029273, -0.005222, 0.007047, 0.110234, -0.028018, 0.004655, + -0.034526, 0.0053, 0.055855, -0.00693, -0.021366, -0.0211, -0.026308, 0.091265, 0.033966, + -0.012357, -0.027329, -0.001654, -0.008795, -0.007078, 0.045359, 0.001916, -0.021406, -0.017329, + 0.031437, -0.054012, -0.007913, -0.086987, -0.077084, 0.021543, -0.002085, 0.074353, -0.039656, + -0.01168, -0.012105, 0.07789, -0.056232, 0.009184, -0.04886, 0.02054, 0.054287, -0.006407, + -0.012422, -0.005793, -0.023523, 0.034612, 0.048272, -0.014457, -0.003296, -0.015831, -0.010968, + -0.035339, 0.030889, 0.018535, -0.007541, 0.012561, -0.016732, -0.057664, -0.006911, -0.061249, + -0.073395, 0.028061, 0.006299, 0.061771, -0.052068, -0.017946, -0.006808, 0.108563, -0.053499, + 0.00437, -0.046065, 0.020143, 0.059049, 0.006477, -0.025926, -0.032399, -0.000721, 0.019492, + 0.053208, -0.03299, -0.019252, 0.023367, -0.013888, 6.9e-05, 0.05659, 0.034717, -0.028305, + 0.017632, 0.000844, -0.070842, -0.009216, -0.080718, -0.062318, 0.034559, -0.009961, 0.088126, + -0.011355, -0.00445, 0.018061, 0.105131, -0.013717, -0.009063, -0.056391, 0.028895, 0.049033, + -0.013203, -0.014158, -0.033298, -0.03072, 0.037675, 0.064197, -0.009166, -0.026979, -0.020912, + -0.006741, -2.3e-05, 0.033873, 0.038254, -0.00529, 0.001774, 0.021418, -0.083638, 0.007399, + -0.072711, -0.06916, 0.014996, -0.013483, 0.062728, -0.029764, 0.012137, 0.012164, 0.086008, + -0.028464, 0.006891, -0.063901, 0.007098, 0.052431, 0.008064, -0.014596, -0.022124, -0.015946, + 0.014777, 0.061984, -0.036014, -0.020436, -0.006038, 5.8e-05, 0.002313, 0.039025, 0.049699, + -0.034162, -0.005448, 0.022275, -0.078343, -0.008966, -0.078211, -0.076922, 0.029641, -0.018933, + 0.080015, -0.025903, -0.001209, 0.015762, 0.090383, -0.02809, 0.008843, -0.075974, 0.015972, + 0.047121, -0.016283, -0.010469, -0.005122, -0.026715, 0.034171, 0.053426, -0.052385, -0.015069, + 0.002305, -0.032755, -0.01435, 0.036356, 0.022812, -0.022856, -0.011494, -0.007703, -0.070384, + -0.007729, -0.05803, -0.086553, 0.02827, 0.008737, 0.090513, -0.02036, -0.011165, -0.016023, + 0.092299, -0.016579, 0.028374, -0.048024, 0.021757, 0.038759, -0.021319, -0.014053, -0.001537, + -0.025746, 0.052042, 0.041586, -0.036274, -0.019063, 0.00283, -0.004555, -0.014248, 0.022718, + 0.018196, 0.002848, 0.002126, 0.011735, -0.073361, 0.011298, -0.071117, -0.088926, 0.032131, + 0.010532, 0.084058, -0.035341, -0.001738, 0.003977, 0.070383, -0.038574, 0.023101, -0.047855, + 0.012369, 0.067335, 0.006781, -0.00819, -0.012836, -0.009889, 0.040694, 0.035472, -0.044685, + -0.027537, 0.015472, -0.004029, -0.002224, 0.037784, 0.036595, -0.024881, 0.009442, 0.025946, + -0.067011, 0.03108, -0.065415, -0.07121, 0.037282, -0.022411, 0.055771, -0.027181, -0.006218, + 0.007475, 0.113231, 0.008032, 0.028739, -0.046759, 0.018825, 0.066228, -0.010801, -0.025096, + -0.024065, -0.03159, 0.066998, 0.029059, -0.026628, 0.006666, -0.020136, 0.004267, 0.012548, + 0.003619, 0.035054, 0.013837, 0.018597, 0.044155, -0.079957, 0.010816, -0.0448, -0.043889, + 0.022004, -0.014966, 0.055476, -0.051307, 0.00614, 0.00583, 0.106377, -0.029541, -0.015199, + -0.022885, 0.024539, 0.06278, -0.005836, -0.049529, -0.05503, 0.016663, 0.036424, 0.067641, + -0.047911, -0.013995, -0.005627, -0.000274, 0.013371, 0.03574, 0.050784, -0.01516, 0.022901, + 0.038004, -0.090069, 0.026496, -0.073897, -0.067425, 0.030162, -0.017751, 0.07675, -0.038137, + 0.008939, 0.015419, 0.096239, -0.02917, 0.024402, -0.070477, 0.015621, 0.049718, -0.00837, + -0.019821, -0.021525, -0.020216, 0.036846, 0.037175, -0.027654, -0.043541, -0.019532, -0.025724, + 0.004125, 0.016294, 0.015245, -0.007073, 0.045074, -0.000799, -0.069583, -0.041469, -0.068308, + -0.087991, 0.017403, 0.025672, 0.076539, -0.047709, -0.024523, -0.002851, 0.093221, -0.022695, + 0.019068, -0.05387, 0.0305, 0.057031, -0.026355, -0.012732, -0.027571, -0.031019, 0.040282, + 0.033176, -0.042687, -0.014873, 0.021107, -0.005562, -0.008144, 0.038639, 0.03461, -0.015832, + 0.009419, 0.019048, -0.038559, -0.015388, -0.054843, -0.078209, 0.018686, -0.013628, 0.068663, + -0.031778, -0.013609, 0.023905, 0.09115, -0.045628, -0.006216, -0.037811, 0.038025, 0.061747, + -0.012303, -0.046446, -0.007484, -0.011356, 0.02785, 0.04809, -0.060925, -0.029747, 0.009184, + -0.014053, -0.003838, 0.063587, 0.037066, -0.011423, 0.003218, 0.008539, -0.044048, -0.012802, + -0.080632, -0.076951, 0.004424, 0.006691, 0.088261, -0.027951, 0.000687, 0.020449, 0.057668, + -0.047066, 0.015647, -0.054567, 0.009749, 0.059728, -0.023794, 0.000584, -0.011108, -0.018206, + 0.01435, 0.062719, -0.017483, -0.026924, 0.02733, -0.018382, -0.025451, 0.024742, 0.040502, + -0.023296, 0.017223, -0.011672, -0.045684, -0.013839, -0.073593, -0.083335, 0.057076, 0.020072, + 0.057459, -0.027308, -0.046132, 0.033884, 0.093168, -0.030232, 0.011303, -0.044642, 0.042585, + 0.076345, -0.027172, -0.019862, -0.018053, -0.009273, 0.060149, 0.060898, -0.03596, -0.014786, + 0.038032, -0.00953, -0.000142, 0.03763, 0.019729, -0.015489, 0.034391, 0.004375, -0.012885, + -0.014932, -0.060474, -0.053124, 0.045682, 0.004648, -0.003123, -0.05865, -0.022977, 0.04392, + 0.104533, -0.045759, -0.015743, -0.01321, 0.016258, 0.100394, -0.030583, -0.031129, -0.030798, + 0.009019, 0.041567, 0.050624, -0.058995, -0.015111, 0.015163, 0.002234, -0.004659, 0.057462, + 0.016662, -0.018965, 0.043646, 0.018299, -0.054303, -0.000135, -0.066643, -0.087237, 0.019003, + -0.007929, 0.088869, -0.049173, -0.015599, 0.015526, 0.106921, -0.023788, -0.023907, -0.035637, + 0.014136, 0.048427, -0.009139, -0.035033, -0.044237, -0.009732, 0.009959, 0.045549, -0.039862, + -0.010838, 0.020805, -0.019314, -0.023118, 0.031129, 0.045383, -0.010685, 0.021257, 0.002782, + -0.064508, -0.006674, -0.081717, -0.083541, 0.014333, -0.015705, 0.089709, -0.038811, -0.0087, + 0.017768, 0.102647, -0.033547, 0.013212, -0.035007, 0.018881, 0.047729, -0.011297, -0.006874, + -0.012644, -0.023989, 0.0535, 0.060738, -0.026336, -0.028365, -0.006888, -0.005281, -0.018969, + 0.031747, 0.00154, -0.018883, -0.019637, 0.017955, -0.033381, -0.001344, -0.076782, -0.098411, + 0.041713, -0.006578, 0.072041, -0.032152, -0.003909, 0.011662, 0.105588, -0.041355, -0.002177, + -0.017263, 0.005364, 0.062159, -0.001975, -0.003819, 0.008485, -0.017208, 0.035697, 0.065198, + -0.058221, 0.009809, 0.009419, -0.006005, 0.005683, 0.039958, 0.025294, -0.024916, 0.012665, + -0.000108, -0.053617, 0.000761, -0.071684, -0.07457, 0.013139, -0.005992, 0.071299, -0.034768, + -0.003849, 0.017211, 0.106318, -0.041469, -0.000754, -0.028274, 0.016297, 0.044782, -0.038898, + -0.017588, -0.028699, -0.01389, 0.03956, 0.06215, -0.038864, -0.040144, 0.006191, -0.000327, + 0.005526, 0.032456, 0.032693, -0.020115, 0.012757, 0.032569, -0.056717, 0.004796, -0.075383, + -0.07183, 0.042471, -0.011497, 0.058547, -0.033202, -0.01034, 0.03413, 0.09145, 0.008268, + 0.006637, -0.036024, 0.014177, 0.044639, -0.0088, -0.009283, -0.00479, -0.042032, 0.059583, + 0.050307, -0.025939, -0.00234, -0.03372, -0.015005, -0.012482, 9.4e-05, -0.000144, -0.013474, + -0.002292, -0.020328, -0.074685, -0.014615, -0.064499, -0.067178, 0.037789, 0.025146, 0.068904, + -0.047709, -0.015326, -0.019034, 0.103899, -0.034286, 0.02408, -0.06, 0.020482, 0.053027, + -0.002959, -0.025463, -0.038, -0.006161, 0.017058, 0.035761, -0.043911, -0.044243, 0.030352, + 0.000794, 0.00034, 0.068446, 0.0368, -0.029327, 0.001425, 0.020869, -0.043314, 0.001994, + -0.085456, -0.085392, 0.044639, -0.009611, 0.058248, -0.007748, -0.015554, 0.053507, 0.075408, + -0.006595, -0.007248, -0.03992, 0.015721, 0.056969, -0.01487, -0.013587, 0.010818, -0.007764, + 0.026455, 0.064207, -0.04574, -0.031232, -0.009657, -0.017055, -0.008299, 0.031973, 0.016776, + -0.014816, 0.01418, 0.013315, -0.036275, -0.009173, -0.069107, -0.081283, 0.03703, 0.009905, + 0.052798, -0.054759, -0.018613, 0.017034, 0.094859, -0.055534, 0.025794, -0.028494, 0.0062, + 0.083403, -0.010226, -0.01356, -0.006722, -0.027614, 0.029576, 0.05639, -0.024023, -0.014423, + 0.017501, -0.016622, 0.006552, 0.036164, 0.012059, -0.017675, 0.00517, 0.011695, -0.055096, + 0.003435, -0.078959, -0.065925, 0.031753, 0.008064, 0.083172, -0.028911, -0.011883, 0.003189, + 0.106874, -0.026125, 0.025237, -0.040749, 0.036565, 0.072793, -0.000779, -0.034313, -0.011506, + -0.013136, 0.029771, 0.036735, -0.027247, -0.015317, 0.024113, -0.023912, -0.001579, 0.005987, + 0.017729, -0.004962, 0.021399, 0.017946, -0.065108, -0.020594, -0.07377, -0.066495, 0.024768, + -0.007708, 0.056765, -0.042423, -0.035742, 0.017487, 0.073012, 0.005485, 0.006743, -0.0497, + 0.035576, 0.056339, -0.027615, -0.027628, -0.011881, -0.002041, 0.0377, 0.049859, -0.026734, + -0.017978, 0.003193, -0.011552, -0.021788, -0.003096, 0.007367, -0.011475, 0.017853, 0.003225, + -0.038322, -0.035367, -0.071364, -0.051531, 0.032319, 0.011185, 0.037229, -0.057532, -0.051227, + 0.028268, 0.060323, -0.037243, 0.021215, -0.062934, 0.02779, 0.06553, -0.013658, -0.007765, + -0.016223, 0.004757, 0.033957, 0.049393, -0.039076, -0.011394, 0.029376, -0.021593, -0.02213, + 0.026763, 0.05389, -0.048647, 0.033141, -0.01357, -0.096021, 0.032514, -0.076256, -0.075017, + 0.045902, -0.002325, 0.066246, -0.041611, -0.013411, 0.019806, 0.115602, -0.001632, 0.033851, + -0.060937, 0.018126, 0.053444, -0.027179, 0.001554, -0.016903, -0.045287, 0.082798, 0.026639, + -0.038117, -0.025545, 0.023669, -0.02302, 0.011181, 0.028638, 0.047276, -0.03385, 0.018111, + 0.007024, -0.045008, -0.021964, -0.08531, -0.059218, 0.037707, 0.029354, 0.06813, -0.052847, + -0.030775, 0.009369, 0.071602, -0.047141, 0.007528, -0.074218, 0.027077, 0.06687, -0.012127, + -0.00329, -0.028279, -0.022032, 0.009165, 0.040237, -0.0276, -0.030475, 0.026252, -0.019451, + -0.021131, 0.037712, 0.043666, -0.052522, 0.015699, 0.005519, -0.054695, -0.012724, -0.074364, + -0.088035, 0.047983, 0.013639, 0.07587, -0.021987, -0.011251, 0.037189, 0.091451, -0.05093, + -0.004966, -0.07741, 0.019214, 0.069635, -0.034363, -0.01508, -0.010716, -0.051132, 0.036337, + 0.05159, -0.036765, -0.044422, 0.026297, -0.002254, 0.006179, 0.051183, 0.030646, 0.003139, + 0.011973, 0.01062, -0.050236, 0.004141, -0.082032, -0.09988, 0.028103, 0.011927, 0.081692, + -0.049134, -0.031579, 0.019873, 0.079157, -0.033616, -0.004583, -0.026147, 0.025625, 0.063744, + -0.002447, -0.022921, -0.010009, -0.022162, 0.036953, 0.051979, -0.028009, -0.015072, -0.011011, + -0.003662, 0.012019, 0.021352, 0.022754, -0.018433, -0.019905, 0.023975, -0.052886, -0.02487, + -0.069354, -0.090134, 0.022063, -0.002283, 0.057762, -0.025408, -0.02143, -0.008341, 0.079204, + -0.033345, 0.00862, -0.045389, 0.024667, 0.051246, -0.027058, -0.009138, -0.002056, -0.008892, + 0.023468, 0.063024, -0.040858, -0.035317, 0.027445, -0.008538, -0.003092, 0.032479, 0.032206, + -0.022385, 0.015074, 0.019444, -0.049689, -0.00476, -0.063273, -0.062374, 0.034449, 0.002089, + 0.067648, -0.024896, -0.03542, 0.043473, 0.082138, -0.015388, 0.003276, -0.056814, 0.022554, + 0.054716, -0.008074, -0.032016, -0.015105, -0.01557, 0.011103, 0.048954, -0.0482, -0.001572, + 0.029331, -0.02268, -0.001818, 0.035645, 0.03777, -0.006208, 0.013775, -0.011605, -0.058124, + -0.013788, -0.08211, -0.057832, 0.028873, 0.004727, 0.081377, -0.051896, -0.010619, 0.019527, + 0.088998, -0.029937, 0.015423, -0.055658, 0.042733, 0.047126, -0.013294, -0.031731, -0.041907, + -0.02414, 0.01026, 0.039837, -0.037328, -0.006991, -0.007947, -0.023494, -0.035142, 0.012248, + 0.028398, -0.014982, -0.017687, -0.005683, -0.061664, -0.022704, -0.065931, -0.059563, 0.036233, + 0.01456, 0.075839, -0.032555, -0.002334, 0.007744, 0.086238, -0.040652, 0.032198, -0.083951, + 0.039719, 0.053406, 0.012496, -0.015796, 0.009735, 0.001963, 0.028335, 0.052146, -0.040552, + -0.006515, -0.004804, -0.005052, -0.014413, 0.039192, 0.022295, -0.006372, 0.043987, 0.01449, + -0.061968, 0.020186, -0.037206, -0.069033, 0.023017, -0.013983, 0.081046, -0.046951, 0.008012, + 0.020486, 0.10545, -0.026236, 0.021274, -0.01362, 0.00856, 0.067204, -0.005284, -0.040623, + -0.029363, -0.032538, 0.059786, 0.038926, -0.036552, -0.034615, 0.003403, 0.00355, 0.006159, + 0.059584, 0.022839, -0.020097, 0.007789, 0.021936, -0.03649, 0.00547, -0.063261, -0.098325, + 0.010326, 0.014196, 0.064371, -0.041068, -0.019612, -0.005688, 0.095759, -0.049137, 0.000462, + -0.043664, 0.000894, 0.056515, -0.024843, 0.001276, -0.015695, -0.022501, 0.022829, 0.047827, + -0.017991, -0.030165, 0.005376, -0.016068, -0.0103, 0.026506, 0.004742, -0.031011, -0.002359, + 0.012404, -0.063766, -0.008192, -0.076592, -0.098276, 0.032106, -0.019995, 0.054452, -0.044345, + -0.03448, -0.010719, 0.105899, -0.022915, -0.015784, -0.029957, 0.023289, 0.05519, -0.011819, + -0.028915, -0.007541, -0.013475, 0.042165, 0.049774, -0.005821, -0.022526, -0.026898, -0.004191, + -0.020178, 0.028373, 0.026601, 0.003727, -0.007536, 0.0489, -0.080642, 0.005613, -0.065534, + -0.061853, 0.016098, -0.022442, 0.069029, -0.03665, 0.014041, 0.001602, 0.074006, -0.025813, + -0.008902, -0.050921, 0.010286, 0.035636, 0.020762, -0.01885, -0.024535, -0.014698, 0.008196, + 0.072538, -0.058805, -0.005569, 0.051947, -0.024776, -0.003739, 0.04175, 0.033028, -0.022876, + 0.021136, -0.008521, -0.040504, -0.009437, -0.060721, -0.070035, 0.037089, 0.004854, 0.060796, + -0.039802, -0.023662, 0.031204, 0.068178, -0.043503, 0.000742, -0.040801, 0.039633, 0.08569, + -0.022727, -0.030786, -0.014373, -0.016431, 0.023744, 0.06875, -0.021332, -0.026309, 0.018444, + -0.015016, -0.01142, 0.024547, 0.033042, -0.022908, 0.024063, -0.001431, -0.066265, -0.015685, + -0.073332, -0.081269, 0.062096, 0.003516, 0.064774, -0.018933, -0.032005, 0.028974, 0.072205, + -0.019578, -0.007683, -0.069242, 0.034759, 0.058969, 0.007403, -0.0191, -0.021187, -0.030778, + 0.039339, 0.047073, -0.047633, -0.009357, 0.010091, -0.004614, -0.002919, 0.029849, 0.018553, + -0.017434, 0.020131, 0.006897, -0.05832, -0.007576, -0.07986, -0.071599, 0.028789, -0.00191, + 0.0812, -0.043, -0.015497, 0.008615, 0.086434, -0.03115, 0.006395, -0.036111, 0.029791, + 0.049102, -0.006244, -0.015902, -0.028851, -0.010022, 0.044442, 0.044829, -0.029625, -0.025491, + 0.010187, -0.017724, -0.010921, 0.056584, 0.016557, -0.03139, 0.014332, -0.007183, -0.062148, + 0.000696, -0.080179, -0.08456, 0.044394, 0.001958, 0.068399, -0.036103, -0.024166, 0.020968, + 0.091159, -0.019609, -0.017172, -0.0456, 0.00118, 0.054868, -0.013436, -0.007442, -0.024541, + -0.013189, 0.01263, 0.047271, -0.032397, -0.011423, 0.003315, -0.037122, -0.034573, 0.041989, + 0.016817, -0.025287, 0.021775, -0.004728, -0.075394, 0.006568, -0.0538, -0.098107, 0.032014, + -0.008987, 0.100343, -0.014966, -0.019699, 0.003867, 0.103965, -0.013321, 0.010933, -0.051103, + 0.017011, 0.044711, -0.00972, -0.016043, -0.009926, -0.027424, 0.038832, 0.047682, -0.03585, + -0.040369, 0.027573, -0.00336, -0.020921, 0.070126, 0.052542, -0.007102, 0.044113, -5e-05, + -0.051753, 0.000101, -0.067279, -0.074985, 0.011866, -0.013394, 0.0287, -0.0233, -0.01993, + 0.041404, 0.075105, -0.024872, -0.011761, -0.045708, 0.007624, 0.073353, -0.010866, -0.009276, + -0.047175, -0.016621, 0.023737, 0.047338, -0.030211, -0.034752, 0.005137, -0.012371, -0.001419, + 0.022414, 0.006291, -0.008448, 0.008956, 0.017119, -0.068324, 0.005925, -0.070263, -0.081051, + 0.031214, 0.004981, 0.07479, -0.049122, -0.011991, 0.023571, 0.075413, -0.033385, -0.000238, + -0.058075, 0.011539, 0.048756, -0.002197, -0.025977, -0.007714, -0.002056, 0.036628, 0.048428, + -0.04193, -0.018773, 0.029929, 0.008588, 0.022885, 0.053497, 0.026673, -0.019523, -0.006198, + 0.027683, -0.020424, -0.00048, -0.090384, -0.07144, 0.031352, -0.001276, 0.090522, -0.034869, + -0.019197, 0.034152, 0.087155, -0.042737, 0.007989, -0.037503, 0.022408, 0.056573, -0.019854, + 0.004457, 0.00086, -0.022095, 0.039867, 0.059584, -0.051088, -0.005515, 0.011298, -0.025456, + -0.043035, 0.025502, 0.046529, 0.00181, 0.026614, -0.000113, -0.069553, 0.004643, -0.05532, + -0.078197, 0.032389, -0.015839, 0.058074, -0.02874, -0.010197, 0.019534, 0.089182, -0.040141, + 0.01431, -0.058019, 0.018581, 0.074198, 0.011309, -0.025708, -0.017838, -0.013577, 0.027849, + 0.051667, -0.03356, -0.031575, -0.009785, 0.004222, 0.006307, 0.032505, 0.00182, -0.00798, + 0.026978, 0.040522, -0.032879, -0.000186, -0.070438, -0.097055, 0.014639, 0.000288, 0.055401, + -0.040769, -0.014422, -0.007612, 0.110091, -0.01964, -0.001954, -0.024454, 0.007044, 0.067021, + -0.012779, -0.019996, -0.023218, -0.010763, 0.032612, 0.036672, -0.016154, -0.031169, 0.01989, + -0.023507, 0.007151, 0.032731, -0.00123, -0.038239, -0.008916, -0.003515, -0.070091, -0.009258, + -0.077299, -0.084832, 0.05043, 0.018317, 0.076655, -0.048771, -0.03852, -0.002339, 0.100999, + -0.012916, -0.008967, -0.045415, 0.029354, 0.062459, -0.019617, -0.030501, 0.00086, -0.004877, + 0.041835, 0.041522, -0.024857, -0.001844, 0.015781, -0.014711, -0.011994, 0.017931, 0.054921, + -0.030454, 0.004056, 0.041363, -0.053941, -0.000644, -0.060499, -0.067811, 0.030211, -0.032951, + 0.053423, -0.034877, -0.022981, -0.005298, 0.093731, -0.030578, 0.004513, -0.049896, 0.035661, + 0.052721, -0.010586, -0.021468, -0.00368, -0.009953, 0.032673, 0.039529, -0.021228, -0.009398, + -0.022552, -0.018315, -0.033426, 0.018875, 0.02529, 0.004062, -0.007048, 0.007987, -0.062703, + -0.017644, -0.046878, -0.086344, 0.022848, 0.008094, 0.072933, -0.029792, 0.003555, -0.011375, + 0.085089, -0.028839, 0.000765, -0.027445, 0.03144, 0.057692, -0.011403, -0.033384, -0.016759, + 0.002648, 0.037701, 0.059717, -0.057807, -0.026097, -0.009424, 0.004094, -0.001628, 0.039401, + 0.044631, -0.031194, 0.016679, 0.001786, -0.048137, 0.006931, -0.066181, -0.092859, 0.02407, + -0.001619, 0.083807, -0.026421, -0.003248, 0.032694, 0.089749, -0.045398, 0.023994, -0.045282, + -0.008194, 0.048104, -0.023451, 0.007871, 0.008786, -0.053026, 0.038965, 0.053831, -0.028445, + -0.019796, 0.003577, 0.00648, -0.009975, 0.040679, 0.016471, -0.004378, 0.012275, 0.039109, + -0.045375, -0.00285, -0.073486, -0.073889, 0.044267, -0.015104, 0.060738, -0.030539, -0.022493, + 0.034555, 0.068366, -0.029272, -0.006277, -0.04265, 0.015152, 0.063722, 0.011089, -0.017186, + -0.015864, 0.002837, 0.017192, 0.062527, -0.046373, -0.022117, -0.005411, -0.019657, -0.012917, + 0.032653, 0.041237, -0.008516, 0.021871, 0.013394, -0.058401, -0.000498, -0.073448, -0.087536, + 0.036819, -0.01167, 0.077806, -0.035312, 0.001422, 0.022462, 0.087975, -0.044103, 0.013141, + -0.038356, 0.017932, 0.072966, -0.005291, -0.020827, -0.002277, -0.025302, 0.031322, 0.0649, + -0.039282, -0.024457, 0.012594, -0.0045, -0.004602, 0.049966, 0.023513, -0.011093, 0.004468, + 0.033219, -0.067249, 0.0266, -0.05498, -0.063956, 0.037552, -0.008061, 0.089125, -0.036715, + 0.004017, 0.025708, 0.095407, -0.013462, 0.005094, -0.044981, 0.013118, 0.061343, -0.006929, + -0.031484, 0.005092, -0.008917, 0.032121, 0.044319, -0.044881, -0.014037, -0.006831, 0.010403, + -0.000704, 0.060489, 0.019851, 0.011716, -0.002088, 0.01577, -0.055066, 0.014216, -0.061886, + -0.074789, 0.015905, -0.015144, 0.071511, -0.035502, 0.009772, 0.0198, 0.101187, -0.044918, + -0.008836, -0.029642, 0.002171, 0.053153, -0.003496, -0.003778, -0.041773, -0.020815, 0.027775, + 0.073823, -0.04401, -0.03963, -0.000881, -0.011043, -0.012913, 0.035562, 0.027368, -0.006435, + -0.005984, 0.013768, -0.041675, -0.010991, -0.073669, -0.080425, 0.014487, 0.021993, 0.06286, + -0.036429, -0.010088, 0.000961, 0.099807, -0.026092, 0.012846, -0.036057, 0.013185, 0.041892, + -0.01142, 0.00315, -0.015085, -0.015981, 0.01377, 0.093357, -0.036548, -0.017873, 0.02982, + -0.015761, 0.012176, 0.037449, 0.018258, -0.035904, 0.013164, -0.008283, -0.061865, -0.01331, + -0.066259, -0.070249, 0.028886, 0.018687, 0.065282, -0.028618, -0.025856, 0.006416, 0.110263, + 0.003522, -0.006597, -0.017818, 0.025942, 0.057209, -0.017648, -0.017246, -0.014838, -0.012115, + 0.035956, 0.041444, -0.031768, -0.048, 0.024713, -0.018499, 0.013295, 0.036094, 0.027838, + -0.011054, 0.01879, -0.003207, -0.049027, -0.017369, -0.071344, -0.069243, 0.001927, 0.007286, + 0.075233, -0.022421, -0.012599, 0.002823, 0.111077, -0.017409, 0.017047, -0.052053, 0.036649, + 0.051326, 0.000673, -0.029632, -0.036326, -0.027922, 0.013573, 0.049243, -0.049079, -0.024896, + 0.002966, 0.000721, -0.012088, 0.060846, 0.003478, 0.002922, 0.017981, -0.000262, -0.047335, + 0.011234, -0.066486, -0.08136, 0.032799, 0.024265, 0.085314, -0.043446, -0.005735, 0.016123, + 0.087514, -0.02048, 0.004613, -0.033599, 0.002114, 0.055926, -0.004455, 0.002441, -0.028643, + -0.008993, 0.026142, 0.053048, -0.022765, -0.029169, 0.038768, -0.029657, -0.015747, 0.049141, + 0.065165, -0.009199, 0.028509, 0.009848, -0.044822, -0.016584, -0.072001, -0.084354, 0.009039, + 0.000354, 0.066144, -0.037921, -0.016211, 0.015876, 0.070229, -0.04315, -0.008432, -0.046683, + 0.049703, 0.062729, -0.028028, -0.025354, -0.017571, -0.030226, 0.011026, 0.073083, -0.036745, + -0.017314, -0.012693, -0.006789, -0.008259, 0.042652, 0.035347, -0.031296, 0.001108, 0.010817, + -0.072984, 0.037958, -0.066848, -0.092212, 0.034634, -0.003164, 0.090856, -0.055691, 0.000535, + 0.011958, 0.118274, -0.025103, 0.004214, -0.048168, -0.002478, 0.04924, -0.024103, -0.022334, + -0.017965, -0.035656, 0.040887, 0.045944, -0.031322, -0.03049, -0.014846, -0.005549, 0.011452, + 0.05708, -0.011693, 0.000151, 0.007131, 0.014504, -0.079126, 0.020265, -0.081682, -0.1095, + 0.0259, -0.011162, 0.094136, -0.048241, 0.003303, -0.008325, 0.097524, -0.02374, -0.001625, + -0.017218, 0.008911, 0.06341, -0.004254, -0.04341, -0.006786, -0.006454, 0.039737, 0.031582, + -0.035309, -0.031374, 0.001742, -0.031628, -0.023347, 0.046062, 0.019016, -0.025444, 0.016107, + -0.013331, -0.037705, -0.018923, -0.069726, -0.079377, 0.051364, -0.012605, 0.03034, 0.000933, + -0.011688, 0.045772, 0.079745, -0.015009, 0.000259, -0.033673, 0.016092, 0.072903, -0.021495, + -0.021143, -0.003763, -0.017213, 0.03237, 0.058785, -0.040416, -0.02081, 0.020629, -0.013201, + -0.003935, 0.035156, 0.035866, -0.026095, -0.00426, 0.009482, -0.056415, 0.007891, -0.079455, + -0.066096, 0.030236, 0.0121, 0.075903, -0.04051, -0.006916, 0.009333, 0.083859, -0.02357, + 0.007244, -0.037816, 0.021743, 0.050564, -0.021895, -0.0064, -0.021247, -0.020271, 0.035019, + 0.068724, -0.036486, -0.020052, -0.017523, 0.00225, -0.011871, 0.050326, 0.010025, 0.020629, + 0.025727, -0.004913, -0.06783, -0.005294, -0.068692, -0.092628, 0.011369, 0.009023, 0.044299, + -0.05264, -0.013059, 0.001731, 0.081032, -0.031307, -0.00689, -0.008458, 0.024614, 0.061735, + -0.004046, -0.024483, -0.032606, 0.00127, 0.01229, 0.067813, -0.023339, -0.033203, 0.007614, + -0.000777, -0.012132, 0.026324, 0.01804, -0.027259, 0.004533, 0.037624, -0.044886, 0.007767, + -0.073704, -0.068345, 0.023523, 0.005118, 0.049845, -0.018529, 0.00244, 0.00799, 0.077743, + -0.041945, 0.024451, -0.046689, 0.01462, 0.067123, -0.007538, -0.015217, -0.009912, -0.017785, + 0.027395, 0.028169, -0.026796, -0.027572, 0.019671, -0.006529, -0.019237, 0.035993, 0.025163, + -0.035091, 0.021419, 0.025931, -0.064254, -0.005303, -0.06878, -0.064736, 0.015638, -0.007673, + 0.085478, 0.000877, 0.010591, 0.025989, 0.085619, -0.022945, -0.013419, -0.054007, 0.022229, + 0.025075, 0.005875, -0.02036, -0.025309, -0.036818, 0.028939, 0.050528, -0.049315, -0.023435, + 0.002513, -0.008072, 0.008535, 0.060547, -0.002001, -0.017897, -0.015369, 0.008941, -0.051812, + 0.012615, -0.050236, -0.074245, 0.008312, -0.014727, 0.056712, -0.031585, 0.006538, -0.008609, + 0.104503, -0.032309, 0.012485, -0.026758, 0.015069, 0.067315, -0.024089, -0.034576, -0.012181, + -0.023211, 0.009569, 0.053993, -0.035896, -0.027146, 0.0116, -0.011429, 0.007604, 0.052086, + 0.004646, -0.017104, -0.003394, 0.025133, -0.037713, 0.018949, -0.074438, -0.077312, 0.020252, + 0.009257, 0.063977, -0.065239, 0.002415, -0.009185, 0.116136, -0.025071, -0.006303, -0.031988, + 0.024394, 0.058521, -0.030437, -0.028012, -0.019864, -0.01853, 0.033237, 0.053476, -0.01744, + -0.013096, -0.011554, -0.019013, 0.004653, -0.003645, 0.007806, -0.019687, 0.008586, 0.023818, + -0.088398, -0.009607, -0.055651, -0.080526, 0.007555, 0.00281, 0.104692, -0.044914, -0.007428, + -0.021826, 0.104093, -0.023719, 0.010071, -0.054644, 0.02865, 0.039798, -0.012594, -0.034381, + -0.024546, -0.019737, 0.040286, 0.030861, -0.045713, 0.004172, -0.004457, -0.025027, -0.000487, + 0.040122, 0.045229, -0.035492, 0.026943, -0.002212, -0.060075, -0.022796, -0.059496, -0.079178, + 0.003963, 0.014388, 0.084349, -0.034736, -0.026013, -0.003028, 0.089205, -0.049909, 0.013504, + -0.049476, 0.02532, 0.03549, -0.036382, -0.007711, -0.012365, -0.020544, 0.018728, 0.057025, + -0.030129, -0.033961, 0.033591, -0.014815, 0.022293, 0.040437, 0.022082, -0.018133, 0.036596, + 0.004372, -0.051164, -0.01407, -0.070456, -0.065033, 0.017706, 0.011391, 0.078386, -0.044893, + -0.016424, 0.017518, 0.08907, -0.033416, -0.005525, -0.046856, 0.040215, 0.05043, -0.004551, + -0.022857, -0.02068, -0.032616, 0.032828, 0.034128, -0.053792, -0.020509, 0.009446, -0.00575, + -0.007302, 0.033842, 0.036518, -0.030014, 0.040505, 0.039996, -0.084172, 0.012487, -0.055571, + -0.069476, 0.012261, -0.032402, 0.068813, -0.022991, 0.012821, 0.011969, 0.087238, -0.016933, + 0.001288, -0.047636, -0.000862, 0.050686, 0.000233, -0.03783, -0.024556, -0.02255, 0.02133, + 0.042474, -0.035384, -0.034787, 0.018785, -0.028279, -0.029889, 0.034307, 0.041861, -0.007711, + 0.020171, 0.019789, -0.058653, 0.011674, -0.062065, -0.097707, 0.024199, 0.007984, 0.089272, + -0.062122, -0.011393, 0.007466, 0.092155, -0.040049, 0.015445, -0.067915, 0.025353, 0.069098, + -0.018912, -0.03544, -0.005558, -0.030348, 0.02559, 0.051029, -0.031231, -0.032321, 0.024782, + 0.000546, -0.027642, 0.036074, 0.00684, -0.03756, 0.011943, 0.018044, -0.050895, -0.00322, + -0.05415, -0.069984, 0.007531, 0.012736, 0.048765, -0.02817, 0.003252, 0.016774, 0.098051, + -0.068841, -0.001341, -0.043323, 0.018579, 0.062088, -0.018532, -0.01299, -0.017147, -0.036777, + 0.032148, 0.074192, -0.029756, -0.031288, 0.002735, -0.009512, 0.017431, 0.043731, -0.02263, + -0.001982, -0.007502, 0.002046, -0.053593, -0.003914, -0.071502, -0.094776, 0.008272, 0.0244, + 0.066851, -0.04552, -0.014151, -0.010408, 0.097625, -0.040647, 0.008277, -0.031215, 0.00675, + 0.064078, -0.01973, -0.008684, -0.007792, 0.000777, 0.027735, 0.05177, -0.026754, 0.00691, + -0.031839, -0.014227, 0.019583, 0.016256, 0.02064, -0.001203, 0.031723, 0.01357, -0.073032, + -0.010173, -0.052798, -0.036773, 0.030361, 0.019094, 0.060489, -0.03738, 0.000248, 0.012223, + 0.075486, -0.022044, 0.039143, -0.046698, 0.010756, 0.059615, -0.015111, -0.02535, -0.037247, + -0.026543, 0.014814, 0.031292, -0.031662, -0.047607, 0.019919, 0.002485, -0.008398, 0.04154, + 0.025206, -0.003745, 0.018429, 0.028285, -0.05822, 0.016394, -0.069969, -0.10266, 0.022922, + -0.010285, 0.094863, -0.053432, 0.00323, 0.001221, 0.104291, -0.042122, -0.027416, -0.044234, + 0.015243, 0.045768, 0.009463, -0.029412, -0.022829, -0.002927, 0.033878, 0.066271, -0.026863, + -0.00057, 0.040708, -0.018534, -0.025382, 0.051147, 0.026468, -0.017564, -0.007219, 0.000794, + -0.062838, -0.001115, -0.05552, -0.041358, 0.027718, -0.006307, 0.069794, -0.00103, 0.006844, + -0.003739, 0.094902, -0.025458, 0.013961, -0.053461, 0.043228, 0.05678, 0.007617, -0.024862, + -0.026083, -0.009118, 0.025219, 0.044295, -0.036501, -0.038058, 0.035433, 0.000278, -0.014603, + 0.076779, 0.023957, -0.008601, 0.018736, 0.017541, -0.0661, 0.017596, -0.084534, -0.088938, + 0.032536, -0.002205, 0.090708, -0.029258, 0.00557, 0.029987, 0.083132, -0.03206, -0.008668, + -0.05256, 0.008946, 0.056333, 0.001625, -0.006993, -0.015857, -0.024514, 0.032139, 0.042581, + -0.022531, -0.055839, 0.003595, -0.010835, -0.010255, 0.03374, 0.00907, -0.005788, -0.003252, + 0.01952, -0.050606, -0.006484, -0.075173, -0.101853, 0.043163, -0.01067, 0.051979, -0.036063, + -0.025481, 0.017964, 0.073313, 0.00779, -0.016774, -0.034243, 0.0115, 0.057491, -0.003571, + -0.014653, 0.008437, -0.018784, 0.036893, 0.055873, -0.028446, -0.043901, 0.022816, -0.017259, + -0.033426, 0.002663, 0.031265, -0.018218, 0.029985, 0.000641, -0.073773, -0.006975, -0.072232, + -0.08331, 0.056478, 0.024462, 0.06561, -0.053065, -0.034369, 0.021397, 0.072664, -0.008587, + -0.002124, -0.070468, 0.017009, 0.06074, -0.005103, -0.006469, -0.023443, -0.021877, 0.0702, + 0.040087, -0.029517, -0.007379, 0.003812, -0.024475, -0.019368, 0.040391, 0.039266, -0.028003, + 0.048473, 0.006809, -0.061964, -0.007264, -0.049552, -0.050654, 0.041193, -0.00628, 0.081473, + -0.027797, -4.6e-05, 0.037812, 0.070801, -0.039473, 0.002978, -0.048854, 0.009417, 0.053024, + -0.010151, -0.02403, -0.023342, -0.031735, 0.031984, 0.047137, -0.037596, -0.020062, 0.012873, + 0.002028, -0.002423, 0.026556, 0.020712, -0.029787, 0.019555, -0.001642, -0.060333, -0.012094, + -0.059631, -0.055466, 0.043185, 0.021875, 0.052993, -0.028687, -0.017462, 0.004552, 0.101502, + -0.015166, -0.005604, -0.046207, 0.028487, 0.049644, -0.010318, -0.015079, -0.055754, -0.03452, + 0.041564, 0.041238, -0.022811, -0.022682, 0.011193, -0.015518, -0.030054, 0.039176, 0.021593, + -0.049515, 0.007251, -0.002223, -0.04723, 0.004089, -0.062805, -0.075458, 0.058782, 0.010559, + 0.064094, -0.032476, -0.017132, 0.017999, 0.076389, -0.041934, -0.010753, -0.052172, 0.001239, + 0.060717, -0.000426, -0.007584, 0.000358, -0.01867, 0.025919, 0.042395, -0.024887, -0.042799, + 0.048285, -0.023872, -0.017361, 0.02431, 0.055131, -0.005511, 0.047061, 0.027799, -0.046943, + -0.018274, -0.081214, -0.086297, 0.013315, 0.006108, 0.075617, -0.040201, -0.036104, 0.02082, + 0.075969, -0.022158, 0.000715, -0.039095, 0.042591, 0.044818, -0.016315, -0.012988, -0.021121, + -0.028595, 0.039261, 0.041501, -0.039009, -0.045414, -0.014512, -0.005486, -0.000348, 0.03664, + 0.025788, -0.018302, -0.003446, 0.035971, -0.058299, 0.005464, -0.085179, -0.090221, 0.039104, + -0.018992, 0.059971, -0.056492, -0.003417, 0.022021, 0.083975, -0.01763, -0.004515, -0.048831, + -0.001355, 0.049106, -0.011669, -0.017933, 0.001146, -0.02742, 0.039487, 0.047811, -0.038677, + -0.009452, -0.017382, -0.009911, -0.013435, 0.057267, 0.0161, -0.000634, 0.0005, 0.000742, + -0.059009, -0.011173, -0.068561, -0.07483, 0.001136, 0.000963, 0.077733, -0.040006, 0.005042, + -0.004937, 0.081639, -0.058465, 0.00512, -0.047523, 0.01461, 0.043939, 0.000451, 0.004382, + -0.019196, -0.015238, 0.013009, 0.06394, -0.030742, -0.033369, -0.008135, -0.007624, -0.01381, + 0.040338, 0.026683, -0.033587, -0.014337, 0.016466, -0.06072, 0.001128, -0.074603, -0.077665, + 0.026959, -0.004344, 0.058125, -0.035094, 0.010434, 0.012679, 0.073103, -0.054151, 0.005409, + -0.069208, 0.012828, 0.066533, -0.024537, -0.032591, -0.016147, -0.008586, 0.049295, 0.050533, + -0.023039, -0.011574, 0.000675, 0.01014, 0.008266, 0.063924, 0.022906, 0.008314, -0.004799, + 0.009463, -0.030559, 0.007942, -0.054181, -0.06899, 0.023905, -0.003563, 0.046771, -0.02795, + 0.004252, 0.01345, 0.110209, -0.045656, 0.001002, -0.020116, 0.020721, 0.075492, -0.003637, + -0.018123, -0.020571, -0.023711, 0.033776, 0.047652, -0.031683, -0.025104, 0.016012, -0.021812, + -0.025188, 0.016488, 0.027504, -0.020442, 0.037219, 0.018408, -0.056894, -0.011695, -0.067258, + -0.083764, 0.033171, 0.019559, 0.050856, -0.058804, -0.041797, 0.019448, 0.073225, -0.023836, + -0.006718, -0.043565, 0.027367, 0.056036, -0.01855, -0.022439, 0.00036, 0.008089, 0.050655, + 0.049462, -0.03263, -0.025356, 0.001692, -0.007505, 0.004292, 0.051966, 0.017428, 0.006911, + 0.001982, 0.011252, -0.024546, -0.016777, -0.066849, -0.082172, 0.003276, 0.020693, 0.063819, + -0.031807, 0.008136, -0.012696, 0.107095, -0.016063, -0.011894, 0.005751, 0.023042, 0.047173, + -0.018717, -0.002138, -0.037803, -0.000793, 0.000169, 0.085684, -0.047919, -0.022034, 0.015923, + -0.015654, -0.00533, 0.042249, 0.023905, -0.029487, 0.001232, 0.011381, -0.020851, -0.025783, + -0.083908, -0.079303, 0.03605, 0.008432, 0.059933, -0.056218, -0.017238, 0.037875, 0.082373, + -0.036721, -0.010573, -0.042765, 0.013616, 0.056182, -0.049316, -0.015718, -0.006787, -0.012799, + 0.02077, 0.060175, -0.04189, -0.021062, -0.015524, -0.021151, -0.012216, 0.026192, 0.020241, + -0.003975, 0.020084, 0.008525, -0.073268, 0.016398, -0.063628, -0.107624, 0.002531, -0.007592, + 0.082848, -0.044803, 0.000885, -0.018461, 0.112216, -0.022161, 0.023353, -0.03498, 0.003492, + 0.038184, -0.017829, -0.020751, -0.012836, -0.028317, 0.034564, 0.040095, -0.042482, -0.004917, + -0.006968, -0.031358, 0.002876, 0.039691, 0.014716, -0.005959, -0.020566, -0.002996, -0.062408, + -0.002719, -0.07068, -0.080375, 0.042926, 0.028785, 0.072092, -0.049903, -0.014546, -0.00738, + 0.104165, -0.037178, 0.042783, -0.038255, 0.026461, 0.080951, -0.034746, -0.016575, 0.007377, + -0.002877, 0.027652, 0.051799, -0.060376, -0.013682, 0.015099, -0.00685, -0.018151, 0.043222, + 0.023372, -0.011754, -0.007074, -0.002077, -0.055012, 0.006643, -0.069194, -0.066387, 0.060864, + 0.004177, 0.060868, -0.033595, -0.002048, 0.04475, 0.057192, -0.045428, 0.005922, -0.028834, + 0.019003, 0.063834, -0.002349, -0.024249, 0.001192, 0.010521, 0.026486, 0.069728, -0.007806, + -0.012161, 0.010216, -0.018077, -0.006654, 0.030374, 0.035887, -0.022736, 0.012312, 0.015022, + -0.045485, -0.017985, -0.04445, -0.083755, 0.011842, -0.006511, 0.050162, -0.02809, -0.003206, + 0.000601, 0.091184, -0.05072, -0.005984, -0.049339, 0.033378, 0.070285, -0.028329, -0.032449, + -0.008077, -0.021577, 0.008958, 0.049082, -0.041546, -0.013092, 0.004431, -0.017223, -0.011831, + 0.0243, 0.065858, -0.043426, 0.004737, 0.016884, -0.072768, 0.027632, -0.053125, -0.062623, + 0.029067, -0.018152, 0.084527, -0.021585, 0.003777, -0.005449, 0.110484, -0.02773, 0.033614, + -0.047993, 0.032387, 0.04814, -0.004606, -0.040607, -0.022311, -0.044719, 0.055546, 0.029695, + -0.031643, -0.018284, 0.034075, -0.022733, -0.01116, 0.033988, 0.027336, -0.024907, 0.031395, + 0.000893, -0.067857, -0.00451, -0.071052, -0.073132, 0.027759, -0.005285, 0.070065, -0.049202, + -0.014182, 0.044528, 0.100766, -0.027413, -0.008453, -0.044508, 0.022807, 0.072271, -0.026596, + -0.030135, -0.006587, -0.020416, 0.031316, 0.054665, -0.051326, -0.031975, 0.016734, -0.018941, + 0.000586, 0.025157, 0.044054, -0.008338, 0.022552, 0.009261, -0.054233, 0.012639, -0.091349, + -0.070581, 0.03296, -0.004728, 0.087066, -0.056506, -0.001153, 0.034978, 0.107927, -0.021461, + 0.038804, -0.049722, 0.006836, 0.052203, 0.010741, -0.014943, -0.028551, -0.043759, 0.047789, + 0.042625, -0.043825, -0.032881, 0.013941, -0.013546, -0.009159, 0.05831, 0.009135, -0.01105, + 0.019824, 0.022773, -0.065663, 0.019108, -0.077547, -0.100696, 0.023498, -0.019808, 0.090792, + -0.040343, -0.007752, 0.015135, 0.107057, -0.021194, -0.008241, -0.025111, 0.00766, 0.054231, + -0.007434, -0.034392, -0.000356, -0.007952, 0.024978, 0.050565, -0.046864, -0.009614, 0.001318, + 0.00836, -0.030575, 0.018403, 0.045273, 0.014978, -0.005019, 0.01185, -0.036992, 0.002178, + -0.073036, -0.074282, 0.051119, 0.016804, 0.075043, -0.0415, -0.033063, 0.022574, 0.068896, + -0.017589, 0.033865, -0.04816, 0.0345, 0.054966, 0.023177, 0.002986, -0.01563, -0.001856, + 0.01559, 0.080947, -0.03262, -0.042717, -0.008751, 0.001277, 0.006643, 0.034562, 0.001146, + -0.033547, 0.001823, 0.018498, -0.036239, -0.005046, -0.069934, -0.088379, 0.031075, 0.010462, + 0.070773, -0.031875, -0.014014, 0.009482, 0.097121, -0.025198, 0.001834, -0.040005, -0.007432, + 0.053665, -0.010381, 0.002733, 9.6e-05, -0.019977, 0.031256, 0.056065, -0.052206, -0.035242, + 0.008433, -0.012597, -0.024478, 0.061762, 0.012545, -0.0196, 0.010869, -0.013186, -0.051178, + 0.005023, -0.070817, -0.095822, 0.038879, 0.008501, 0.08044, -0.031189, -0.008903, 0.031458, + 0.079012, -0.043114, -0.008315, -0.039424, -0.00691, 0.054662, -0.023647, 0.002468, -0.002649, + -0.011931, 0.053092, 0.051769, -0.029471, -0.028304, 0.025197, -0.023425, -0.015547, 0.030639, + 0.044031, -0.026464, 0.019415, 0.001616, -0.077059, -0.0024, -0.061206, -0.060873, 0.017828, + 0.001063, 0.065406, -0.0151, -0.003711, -0.005671, 0.107447, -0.012284, 0.021508, -0.038526, + 0.050129, 0.045497, -0.003176, -0.040078, -0.031797, -0.032759, 0.05013, 0.038494, -0.030484, + 0.000407, 0.017109, -0.024015, -0.02424, 0.022784, 0.040298, -0.038498, 0.028112, 0.007878, + -0.062586, 0.01314, -0.065267, -0.062016, 0.0717, 0.01325, 0.061289, -0.042031, -0.024402, + 0.025658, 0.121623, -0.019233, 0.013216, -0.053204, 0.024754, 0.05068, -0.015823, -0.027067, + -0.01194, -0.0148, 0.060298, 0.029695, -0.039947, -0.015512, 0.021995, -0.017902, 0.016954, + 0.016732, 0.020515, -0.014095, 0.019358, 0.006259, -0.059531, -0.010842, -0.074336, -0.061763, + 0.042624, 0.015129, 0.055833, -0.054043, -0.030374, 0.015491, 0.093509, -0.039115, 0.005777, + -0.038485, 0.036658, 0.081655, 0.003094, -0.034985, -0.018035, 0.007829, 0.015958, 0.049568, + -0.034052, -0.037183, 0.025137, -0.030909, -0.026285, 0.048752, 0.026566, -0.030576, 0.040927, + 0.027902, -0.059083, 0.009578, -0.053624, -0.077267, 0.027984, -0.000381, 0.084469, -0.0209, + -0.000964, 0.019445, 0.091182, -0.005301, -0.003426, -0.066481, 0.012204, 0.049703, -0.012559, + -0.025898, -0.000823, -0.042152, 0.042462, 0.040128, -0.040125, -0.018766, 0.003427, -0.011313, + -0.000673, 0.047079, 0.031235, 0.007657, 0.029723, 0.003795, -0.075548, 0.011024, -0.071529, + -0.095765, 0.013498, 0.010647, 0.113503, -0.0435, 0.015712, 0.017975, 0.072158, -0.030561, + 0.025121, -0.026805, 0.022703, 0.042028, -0.005344, -0.020396, -0.004095, -0.053244, 0.029004, + 0.036308, -0.052507, 0.003676, 0.018304, -0.014024, -0.008031, 0.042986, 0.006124, -0.021329, + 0.014448, -0.012832, -0.059443, -0.012237, -0.084891, -0.064951, 0.01536, 0.022739, 0.098149, + -0.057796, 0.000913, 0.011999, 0.075757, -0.069784, 0.015784, -0.050012, 0.020769, 0.054139, + -0.025158, -0.007817, -0.032687, -0.009412, 0.021383, 0.053142, -0.058255, -0.03501, 0.016232, + -0.008531, 0.014352, 0.042471, 0.039895, -0.016515, 0.028063, 0.022224, -0.009397, -0.016733, + -0.07972, -0.090308, 0.014637, 0.021147, 0.057667, -0.055041, -0.03072, 0.017738, 0.086309, + -0.048953, -0.000392, -0.036075, 0.026232, 0.069151, -0.026228, -0.019385, -0.026215, -0.01158, + 0.000112, 0.061406, -0.037368, -0.043778, -0.007687, -0.005717, -0.011214, 0.037411, 0.056426, + -0.006454, 0.032216, 0.02851, -0.041523, 0.004045, -0.063997, -0.096524, 0.019848, 0.011688, + 0.075705, -0.028271, -0.004542, 0.01736, 0.09464, -0.015129, 0.020705, -0.018875, 0.01745, + 0.047144, -0.010969, -0.012451, -0.011995, -0.033219, 0.031269, 0.073216, -0.04155, -0.047003, + 0.036973, -0.011732, -0.022651, 0.042265, 0.035372, -0.030988, 0.016626, 0.019799, -0.036574, + -0.005867, -0.066204, -0.072558, 0.04649, -0.010173, 0.031881, 0.012389, -0.017977, 0.044244, + 0.079178, -0.00789, 0.000387, -0.04295, 0.040229, 0.073501, -0.016407, -0.031944, -0.014786, + -0.018323, 0.033213, 0.064367, -0.036875, -0.034762, 0.026489, -0.031155, -0.016579, 0.037485, + 0.011401, -0.027117, 0.025161, -0.009627, -0.056472, -0.006689, -0.056972, -0.077409, 0.040314, + 0.015648, 0.066167, -0.034898, -0.033778, 0.033868, 0.080759, -0.013001, 0.001466, -0.047241, + 0.022211, 0.071034, -0.023406, -0.030251, -0.000459, -0.013418, 0.03561, 0.052999, -0.059383, + -0.017828, 0.036587, -0.007137, -0.005985, 0.042089, 0.038222, -0.00107, 0.030722, 0.004478, + -0.069919, 0.001205, -0.068643, -0.071061, 0.022009, 0.018734, 0.067565, -0.049429, -0.017203, + 0.014195, 0.070068, -0.040978, -0.005015, -0.039973, 0.030718, 0.074808, -0.0047, -0.027063, + -0.036958, -0.000992, -0.000882, 0.071755, -0.029608, -0.037432, 0.023605, -0.011595, -0.015341, + 0.054489, 0.024753, 0.019422, 0.046087, 0.0122, -0.041538, -0.005826, -0.078075, -0.088243, + 0.027003, -0.007044, 0.075277, -0.05832, -0.031647, 0.032044, 0.085612, -0.032577, -0.006899, + -0.03355, 0.011662, 0.072487, -0.002902, -0.010457, -0.03476, -0.027117, 0.04849, 0.035538, + -0.031559, -0.025823, 0.038514, -0.015608, 0.000395, 0.028014, 0.022005, -0.014697, 0.008656, + 0.029208, -0.052, -0.008424, -0.065775, -0.052332, 0.028605, -0.000835, 0.060585, -0.040171, + -0.024838, 0.021891, 0.068381, -0.01376, 0.004588, -0.03874, 0.027921, 0.082312, -0.013874, + -0.033335, -0.00604, -0.004224, 0.029536, 0.040238, -0.037251, -0.02116, 0.015751, -0.013416, + -0.010994, 0.047094, 0.053227, -0.004325, 0.023984, 0.019432, -0.048353, 0.007279, -0.03746, + -0.067434, 0.035009, -0.008076, 0.037129, -0.016574, -0.008447, 0.024154, 0.08135, -0.026788, + 0.005328, -0.05677, 0.039809, 0.072915, -0.01468, -0.03881, -0.035272, -0.029698, 0.028527, + 0.0558, -0.055979, -0.014295, 0.01113, -0.00545, -0.01599, 0.043165, 0.036374, -0.023184, + 0.006183, 0.022983, -0.038309, -0.011934, -0.077405, -0.08467, 0.018355, 0.000855, 0.078221, + -0.03361, 0.019191, 0.026586, 0.094277, -0.034785, -0.012509, -0.029698, 0.024463, 0.033438, + -0.043338, -0.024945, -0.017844, -0.006885, 0.018825, 0.072518, -0.03528, -0.020343, -0.004902, + -0.01295, -0.010567, 0.053405, 0.029201, -0.034154, -0.004214, 0.018585, -0.04543, 0.010194, + -0.062179, -0.078481, 0.055928, -0.019183, 0.061168, -0.013512, -0.00243, 0.035569, 0.10002, + -0.0034, -0.011815, -0.052126, 0.019102, 0.053417, -0.01754, -0.03498, -0.007467, -0.015042, + 0.025558, 0.064401, -0.015634, -0.022862, -0.001004, -0.035704, 0.004094, 0.002721, 0.029393, + -0.028731, -0.004116, 0.005323, -0.053092, -0.018107, -0.086031, -0.0604, 0.054709, 0.020586, + 0.08381, -0.028253, -0.009827, 0.023622, 0.095473, -0.028937, 0.03506, -0.05372, 0.028336, + 0.035937, -0.017204, -0.015485, 0.00474, -0.051229, 0.068243, 0.049601, -0.043911, -0.004248, + -0.012912, -0.013158, -0.012396, 0.031405, 0.005441, -0.01654, -0.013009, 0.023414, -0.051459, + -0.00294, -0.068916, -0.056564, 0.02494, 0.014619, 0.09466, -0.045287, 0.016246, -0.011097, + 0.101062, -0.039247, 0.010082, -0.046981, 0.025731, 0.037861, -0.003696, -0.01795, -0.02452, + 0.005391, 0.010806, 0.057426, -0.032235, -0.005883, 0.025397, -0.022154, -0.031948, 0.040787, + 0.017585, -0.051912, 0.017253, -0.008426, -0.036375, 0.009376, -0.06074, -0.09393, 0.024039, + 0.003821, 0.077381, -0.041207, -0.016495, 0.002766, 0.101284, -0.07801, 0.02429, -0.048871, + 0.02092, 0.071955, -0.020196, -0.014031, 0.010049, -0.033373, 0.035721, 0.027138, -0.055772, + 0.009146, 0.016799, -0.011474, -0.00478, 0.067103, 0.034456, -0.010554, 0.031932, 0.00993, + -0.062767, 0.006692, -0.065306, -0.067294, 0.006267, 0.001059, 0.106024, -0.049222, -0.005628, + 0.001618, 0.084307, -0.041759, 0.00042, -0.049884, 0.018959, 0.034836, -0.020454, -0.00741, + -0.027238, -0.010691, 0.004841, 0.062181, -0.029885, -0.033105, -0.001112, -0.001979, -0.017993, + 0.048848, 0.006179, 0.003905, 0.011762, 0.028043, -0.064395, 0.013039, -0.064283, -0.066462, + 0.003789, 0.000944, 0.057874, -0.03437, 0.02941, 0.018156, 0.078077, -0.043014, 0.00542, + -0.038981, -0.00085, 0.061337, -0.003397, -0.008713, -0.026787, -0.00865, 0.02198, 0.066683, + -0.055646, -0.020228, -0.003212, -0.025923, -0.016831, 0.024577, 0.010191, -0.038781, -0.00471, + -0.001121, -0.051116, -0.03268, -0.058655, -0.051779, 0.015558, 0.03518, 0.052898, -0.043109, + 0.002255, 0.010317, 0.067884, -0.049059, 0.0062, -0.055084, 0.006058, 0.052575, -0.041009, + -0.013142, -0.009805, -0.004097, 0.032512, 0.065481, -0.024488, -0.036048, 0.001397, -0.016363, + 0.010811, 0.038746, 0.030243, -0.013605, 0.015917, 0.018271, -0.07583, -0.000757, -0.069215, + -0.080051, 0.023066, -0.001325, 0.078777, -0.05357, -0.007875, -0.00042, 0.107037, 0.004036, + 0.002041, -0.047483, 0.019821, 0.050468, -0.016969, -0.029886, -0.022666, -0.020666, 0.021646, + 0.043928, -0.041349, -0.043042, 0.017159, -0.013679, 0.002152, 0.039899, 0.03394, -0.003305, + -0.009239, 0.02144, -0.029846, -0.013469, -0.082036, -0.079866, 0.029819, 0.014488, 0.055326, + -0.045347, -0.01534, 0.032544, 0.089104, -0.033621, 0.028855, -0.035634, 0.017235, 0.075675, + -0.03662, -0.012038, 0.014949, -0.01842, 0.019668, 0.064302, -0.02898, -0.004051, -0.015129, + 0.009691, -0.011364, 0.041752, 0.045694, -0.007935, -0.014872, 0.03058, -0.036314, -0.004441, + -0.083882, -0.087947, 0.046201, -0.007669, 0.081895, -0.035929, -0.008744, 0.021716, 0.081367, + -0.053239, 0.015907, -0.062437, 0.021457, 0.061755, -0.004864, -0.008796, -0.012681, -0.008948, + 0.019131, 0.055635, -0.044851, 0.003501, -0.010915, -0.005368, -0.044819, 0.031585, 0.054439, + -0.013163, 0.010307, -0.0036, -0.065464, 0.002568, -0.066219, -0.07884, 0.033989, -0.002668, + 0.0884, -0.017465, -0.015552, 0.003185, 0.085688, -0.031732, 0.029412, -0.068253, 0.022586, + 0.04169, 0.005332, -0.014348, -0.021558, -0.002402, 0.026353, 0.044646, -0.030353, -0.001114, + -0.011686, -0.017618, -0.021361, 0.038385, 0.005691, -0.032699, 0.019536, 0.012003, -0.035659, + -0.009345, -0.042374, -0.070111, 0.033221, 0.009266, 0.046727, -0.046145, -0.014122, 0.012074, + 0.08789, -0.05568, 0.003255, -0.043723, 0.004361, 0.071301, -0.022169, -0.028884, 0.000727, + -0.003064, 0.025025, 0.037618, -0.039332, -0.024727, 0.010272, -0.014069, -0.001959, 0.05942, + 0.026159, -0.021691, 0.010879, 0.024444, -0.052315, 0.008048, -0.094235, -0.111663, 0.025726, + -0.02349, 0.084675, -0.034475, -0.006639, 0.004974, 0.094047, -0.016992, -0.006718, -0.040497, + 0.024122, 0.053042, -0.034423, -0.028463, -0.009539, -0.023243, 0.042828, 0.035365, -0.042263, + -0.006167, 0.008328, -0.034111, -0.020583, 0.033458, 0.010954, -0.01098, -0.001651, -0.027001, + -0.066267, -0.008562, -0.070541, -0.062428, 0.023419, 0.027538, 0.084117, -0.028243, -0.017965, + -0.017269, 0.078508, -0.028916, 0.025018, -0.02501, 0.035805, 0.036776, 9.5e-05, -0.026803, + -0.022586, -0.017227, 0.023778, 0.04513, -0.052492, -0.042118, 0.021347, -0.027644, -0.02735, + 0.03525, 0.038949, -0.023191, 0.019397, 0.019764, -0.065675, 0.015201, -0.071031, -0.076588, + 0.035637, -0.007129, 0.069724, -0.048025, -0.004173, 0.024918, 0.101139, -0.019949, 0.019006, + -0.04659, 0.006868, 0.067498, -0.016472, -0.023335, 0.007224, -0.023582, 0.045628, 0.047983, + -0.021748, -0.056761, 0.029208, 0.000334, -0.003596, 0.057495, 0.016935, -0.029769, -0.012472, + 0.031523, -0.058975, 0.00419, -0.075754, -0.090858, 0.049897, -0.011079, 0.045504, -0.025644, + -0.018485, 0.022592, 0.085591, 0.00086, -0.009658, -0.034218, 0.024503, 0.06692, -0.01389, + -0.035499, 0.023536, -0.023927, 0.051503, 0.037071, -0.051246, 0.000209, 0.00817, -0.024801, + 0.005146, 0.00888, 0.043935, -0.02658, 0.023461, 0.018534, -0.070117, -0.014488, -0.067317, + -0.066742, 0.01712, -0.004535, 0.087675, -0.045349, -0.014255, 0.014117, 0.079382, -0.030789, + 0.010549, -0.061126, 0.03359, 0.047009, -0.016416, -0.025459, -0.022178, -0.027372, 0.025136, + 0.059352, -0.033605, -0.006234, 0.03335, -0.026051, -0.008869, 0.045265, 0.04028, -0.025171, + 0.006461, 0.016569, -0.071693, 0.008281, -0.068712, -0.046747, 0.02115, 0.002224, 0.089748, + -0.032202, 0.012699, 0.009848, 0.097539, -0.015326, 0.006296, -0.063855, 0.032918, 0.037649, + -0.023618, -0.021538, -0.029901, -0.023358, 0.016589, 0.051434, -0.030344, -0.015573, 0.010776, + -0.017536, -0.011435, 0.021412, 0.009563, 0.000581, 0.01629, 0.043652, -0.061542, -0.00506, + -0.064272, -0.068297, 0.002494, -0.006059, 0.065326, -0.066606, -0.003, -0.017753, 0.083501, + -0.035815, -0.005731, -0.031624, 0.031414, 0.050974, -0.017721, -0.018118, -0.014565, -0.013664, + 0.053786, 0.045427, -0.032926, -0.032319, 0.002924, -0.020205, 0.025507, 0.030856, 0.025284, + -0.016874, 0.002428, 0.022553, -0.059096, 0.009828, -0.084722, -0.077064, 0.021925, -0.021089, + 0.081359, -0.077953, -0.009735, -0.000309, 0.130851, -0.007567, 0.006764, -0.030219, 0.024617, + 0.05261, -0.011837, -0.040455, -0.009355, -0.023421, 0.045321, 0.039805, -0.05243, -0.040889, + 0.008755, -0.012343, -0.010371, 0.039723, 0.022852, -0.008975, 0.012286, 0.020151, -0.071805, + -0.001229, -0.066506, -0.083674, 0.020985, -0.005589, 0.106446, -0.022162, -0.002226, 0.01662, + 0.075235, -0.021171, 0.018758, -0.06337, 0.015303, 0.031047, 0.004138, -0.020772, 0.002084, + -0.028458, 0.030461, 0.059227, -0.050051, 0.005798, -0.006919, -0.010697, 0.022584, 0.038633, + 0.022583, -0.035199, 0.032399, 0.016896, -0.051888, -0.005276, -0.067651, -0.06874, 0.022753, + 0.000197, 0.072785, -0.030164, -0.013796, 0.014295, 0.099462, -0.012853, 0.009003, -0.035107, + 0.005194, 0.042316, -0.036745, 0.000513, -0.016091, -0.022134, 0.03315, 0.037503, -0.063233, + -0.035814, 0.028946, -0.014513, 0.008022, 0.042659, 0.039278, -0.034026, -0.00423, 0.023592, + -0.01797, -0.011127, -0.070661, -0.056652, 0.024994, 0.014524, 0.048529, -0.034395, -0.002326, + 0.045937, 0.086931, -0.040238, 0.005205, -0.037111, 0.020902, 0.072196, -0.04042, -0.030367, + -0.002471, -0.00845, 0.003754, 0.07449, -0.035028, -0.009498, -0.010051, -0.025378, -0.002584, + 0.028016, -0.002924, -0.007907, 0.009692, 0.015569, -0.068818, -0.019627, -0.050424, -0.076802, + 0.0284, 0.008982, 0.074619, -0.037109, -0.010197, -0.002999, 0.085554, -0.036304, -0.009864, + -0.023744, 0.022932, 0.069061, -0.019469, -0.026598, -0.008601, 0.003262, 0.026973, 0.062804, + -0.027098, -0.005415, -0.01934, -0.001438, -0.003449, 0.031184, 0.026787, -0.004963, -0.002135, + 0.03589, -0.084369, 0.013575, -0.05135, -0.080549, 0.026134, -0.006319, 0.095087, -0.03445, + -0.008849, -0.005278, 0.098439, -0.029146, -0.00301, -0.059742, 0.025157, 0.045434, 0.003297, + -0.037272, -0.024595, 0.007313, 0.028386, 0.05429, -0.053603, -0.023966, -0.000497, -0.012226, + 0.003072, 0.051642, 0.020684, 0.005333, -0.013991, 0.015815, -0.050192, -0.003221, -0.072785, + -0.09516, 0.024691, -0.005108, 0.091033, -0.059309, -0.020187, 0.03266, 0.067949, -0.04978, + -0.006207, -0.041673, 0.001621, 0.053711, -0.024107, -0.00698, 0.005225, -0.023849, 0.000565, + 0.07504, -0.027558, -0.020535, 0.005691, -0.007907, -0.002973, 0.021128, 0.065594, 0.001694, + 0.046826, 0.020334, -0.068418, -0.016037, -0.072948, -0.072035, 0.01346, 0.002625, 0.080567, + -0.045854, -0.024897, 0.017234, 0.09462, -0.033949, 0.013015, -0.053192, 0.037094, 0.047813, + -0.022593, -0.013902, -0.059508, -0.041054, 0.040299, 0.057751, -0.057933, -0.047588, 0.047719, + 0.004369, -0.015326, 0.06993, 0.045029, 0.000616, 0.021216, 0.017552, -0.045114, 0.000141, + -0.067752, -0.088826, 0.007224, 0.011841, 0.085823, -0.045546, -0.009888, 0.040177, 0.080045, + -0.038638, -0.039819, -0.028921, 0.019381, 0.05894, -0.01636, -0.024057, -0.029461, -0.010441, + 0.005956, 0.07609, -0.059708, -0.01014, 0.017833, -0.025732, 0.010344, 0.047307, 0.032751, + -0.020738, 0.016015, -0.008684, -0.049071, -0.030932, -0.099042, -0.085144, 0.013718, 0.021879, + 0.094642, -0.049651, -0.009893, 0.010627, 0.063625, -0.055095, 0.026284, -0.03399, 0.030661, + 0.057168, -0.038499, 0.001725, -0.00245, -0.019623, 0.032089, 0.054129, -0.063187, -0.021919, + 0.009563, -0.010563, -0.022349, 0.050076, 0.054305, -0.041156, -0.000648, -0.009648, -0.073079, + -0.00138, -0.077613, -0.092816, 0.038059, 0.002151, 0.07996, -0.005841, -0.00146, -0.003021, + 0.094965, -0.006547, 0.001105, -0.036099, 0.032787, 0.024791, -0.03801, -0.015575, -0.01982, + -0.014648, 0.055213, 0.071803, -0.025965, -0.032188, 0.038756, -0.023856, 0.021795, 0.024915, + 0.034973, -0.029902, 0.010359, 0.017788, -0.034797, -0.015757, -0.082448, -0.079332, 0.03767, + 0.010534, 0.055137, -0.057839, -0.036624, 0.00903, 0.090629, -0.033909, -0.007876, -0.047491, + 0.044376, 0.069284, -0.025535, -0.026135, -0.015597, -0.028997, 0.040639, 0.037073, -0.015317, + -0.010383, 0.029138, -0.009765, -0.019086, 0.059842, 0.040825, -0.034745, -0.014806, 0.031726, + -0.041261, 0.02903, -0.07964, -0.077562, 0.046816, -0.048537, 0.062509, -0.014282, 0.007203, + 0.02692, 0.088429, -0.045875, -0.018655, -0.050117, 0.035278, 0.058278, -0.00558, -0.025872, + 0.002995, -0.029039, 0.030292, 0.048272, -0.018331, -0.031967, 0.026095, -0.006479, 0.00304, + 0.04341, 0.001646, -0.026871, 0.01554, 0.010083, -0.01793, -0.021668, -0.063349, -0.095003, + 0.008291, 0.0078, 0.078053, -0.012458, 0.004472, 0.012771, 0.097036, -0.068087, -0.014835, + -0.023436, 0.025542, 0.065768, -0.020796, -0.015683, -0.007174, -0.028852, 0.02819, 0.060232, + -0.051877, -0.01565, 0.022907, -0.00025, -0.006385, 0.042127, 0.045717, -0.01272, -0.00274, + 0.025036, -0.052321, -0.000695, -0.072852, -0.050954, 0.039401, -0.015299, 0.077582, -0.0224, + -0.01494, 0.036403, 0.072507, -0.015955, 0.001786, -0.047006, 0.036868, 0.043308, -0.000419, + -0.019727, -0.008318, -0.004556, 0.018669, 0.084585, -0.032387, -0.025389, 0.01397, -0.028412, + -0.009223, 0.029808, 0.0253, -0.022745, 0.009403, 0.0202, -0.066224, -0.002686, -0.051302, + -0.052034, 0.023382, -0.015013, 0.076253, 0.009102, 0.012434, 0.002812, 0.107306, 0.011559, + 0.02445, -0.051568, 0.039497, 0.04915, 0.004252, -0.040778, -0.02804, -0.030549, 0.035866, + 0.031283, -0.045534, 0.005433, 0.01588, -0.004027, -0.010744, 0.053421, 0.005894, -0.033245, + 0.012384, -0.000299, -0.066258, -0.006737, -0.049983, -0.043965, 0.04457, 0.01026, 0.05399, + 0.004426, 0.007754, 0.007434, 0.092359, -0.033727, 0.001526, -0.017369, 0.030228, 0.050294, + -0.010899, -0.023709, -0.032954, -0.012685, 0.027773, 0.06967, -0.036297, -0.001182, -0.006363, + -0.013054, -0.006279, 0.005686, -0.00734, -0.007083, 0.017469, 0.018595, -0.063457, -0.016279, + -0.058716, -0.071385, -0.004469, 0.023142, 0.060979, -0.042657, -0.0193, -0.017488, 0.075289, + -0.041428, 0.014991, -0.032315, 0.025827, 0.050914, -0.019733, -0.008337, -0.033, -0.007892, + 0.025435, 0.052795, -0.061139, -0.017382, -0.000407, -0.01849, -0.015682, 0.044827, 0.036166, + -0.006219, 0.021964, -0.008355, -0.055861, -0.005256, -0.075099, -0.09555, 0.022972, 0.016657, + 0.087281, -0.061247, -0.032436, 0.007925, 0.119743, -0.065729, 0.034781, -0.044869, 0.013574, + 0.069403, -0.017214, -0.004338, -0.017787, -0.026601, 0.046948, 0.063509, -0.020714, -0.031432, + 0.009513, -0.016965, -0.003495, 0.034495, 0.002641, -0.006444, 0.00477, -0.008706, -0.03242, + -0.02288, -0.069052, -0.044496, 0.00627, 0.028097, 0.033462, -0.035239, -0.027021, -0.007917, + 0.082374, -0.020048, 0.004089, -0.018436, 0.030369, 0.052962, -0.005951, -0.014678, -0.054339, + -0.025768, 0.007318, 0.063721, -0.042902, -0.027698, 0.016712, -0.009812, 0.004532, 0.041714, + 0.034218, -0.037178, 0.02058, 0.024554, -0.045068, 0.009195, -0.05997, -0.064316, 0.041934, + 0.002702, 0.067476, -0.045966, -0.019965, 0.02844, 0.100116, -0.029367, -0.009161, -0.062201, + 0.01399, 0.056599, -0.009246, -0.026967, -0.020799, -0.019604, 0.014592, 0.055775, -0.021679, + -0.045794, 0.014589, -0.010256, -0.005498, 0.048696, 0.030118, -0.032944, 0.03357, 0.016513, + -0.065377, 0.009176, -0.070003, -0.086229, 0.010329, 0.002939, 0.053341, -0.040427, 0.010187, + 0.012684, 0.107681, -0.029037, 0.010501, -0.029318, 0.013852, 0.059952, -0.025933, -0.011303, + -0.016943, -0.046878, 0.035689, 0.038285, -0.081533, -0.035229, 0.020777, 0.00414, 0.004066, + 0.045603, 0.036735, -0.017117, 0.003808, 0.031485, -0.069885, 0.021536, -0.062008, -0.069048, + 0.04099, -0.013814, 0.07948, -0.042087, -0.00632, 0.030604, 0.079812, 0.003653, -0.00315, + -0.042626, 0.012617, 0.060786, -0.003569, -0.035823, -0.012155, -0.006718, 0.006958, 0.06869, + -0.008205, -0.029028, -0.001463, -0.028395, 0.002474, -0.016345, 0.024665, -0.027201, 0.012914, + -0.005287, -0.075712, -0.04025, -0.089567, -0.068717, 0.041688, 0.035965, 0.07108, -0.055645, + -0.033345, -0.009843, 0.08028, -0.033073, 0.025551, -0.082485, 0.031995, 0.061128, -0.021456, + -0.003325, -0.030668, -0.027932, 0.040571, 0.03078, -0.029395, 0.00295, 0.003062, -0.016308, + -5.4e-05, 0.018894, 0.042673, -0.015956, 0.004298, 0.005908, -0.062133, 0.004227, -0.053166, + -0.055913, 0.022001, 0.002375, 0.063162, -0.049559, -0.018034, -0.007272, 0.108308, -0.022616, + 0.014219, -0.058851, 0.016689, 0.052449, -0.020853, -0.014905, -0.035021, -0.016272, 0.0283, + 0.042038, -0.038158, -0.021557, 0.029232, -0.004464, 0.003719, 0.0386, 0.012385, -0.036148, + 0.040084, 0.004847, -0.072817, -0.005173, -0.062278, -0.063611, 0.031832, 0.03134, 0.077739, + -0.054066, -0.033545, 0.010126, 0.07987, -0.024249, -0.012809, -0.058645, 0.021703, 0.059888, + -0.016989, -0.015764, -0.054278, -0.0223, 0.012356, 0.046953, -0.039892, -0.005158, 0.008719, + -0.022977, -0.00403, 0.010844, 0.037661, -0.030301, 0.013741, 0.005593, -0.029914, -0.013864, + -0.05307, -0.058315, 0.028397, 0.025161, 0.047657, -0.050401, -0.006178, 0.015774, 0.097626, + -0.062609, 0.009595, -0.054698, 0.021839, 0.056286, -0.038435, -0.017798, -0.017777, -0.02169, + 0.038445, 0.060628, -0.046548, -0.018158, 0.024607, -0.008771, -0.012687, 0.046231, 0.005612, + -0.033599, -0.010086, 0.026325, -0.064495, 0.009535, -0.058143, -0.046736, 0.045492, 0.004509, + 0.086983, -0.023281, -0.002081, 0.0095, 0.074918, -0.018333, -0.007553, -0.044564, 0.023613, + 0.046924, -0.002711, -0.026188, -0.002997, 0.001982, 0.033505, 0.061613, -0.035837, -0.018069, + 0.012755, -0.018329, -0.01093, 0.040443, 0.038647, -0.007902, 0.006607, 0.026507, -0.034302, + -0.014169, -0.082815, -0.075468, 0.034402, -0.008759, 0.071649, -0.037228, 0.012456, 0.020744, + 0.086974, -0.037053, -0.005698, -0.046671, 0.019951, 0.04187, -0.011892, -0.019773, -0.013349, + -0.010637, 0.025359, 0.043546, -0.047418, -0.01783, -0.012571, 0.002162, 0.010787, 0.033395, + 0.025949, -0.03132, 0.015436, 0.023723, -0.064686, -0.003032, -0.058203, -0.067087, 0.017467, + 0.00506, 0.073785, -0.030318, 0.00372, -0.004454, 0.107638, -0.015252, 0.010085, -0.04049, + 0.024591, 0.036607, -0.020099, -0.025082, -0.039024, -0.035144, 0.024263, 0.039942, -0.040142, + -0.010855, -0.005859, -0.004155, 0.012177, 0.056203, -0.008733, -0.011797, 0.01802, 0.022679, + -0.032502, -0.022412, -0.083982, -0.085695, 0.035566, 0.007267, 0.068495, -0.056761, -0.013722, + 0.020111, 0.077538, -0.030311, -0.021441, -0.03246, 0.010868, 0.048272, -0.026376, -0.011652, + -0.02964, -0.008948, 0.01003, 0.034708, -0.052958, -0.004533, 0.006683, -0.01235, -0.01587, + 0.037135, 0.033637, -0.020395, -0.009715, 0.005684, -0.064879, -0.001487, -0.070207, -0.073145, + 0.041066, 0.001158, 0.075695, -0.018074, -0.001209, 0.003858, 0.087271, -0.020855, 0.005487, + -0.040088, 0.03401, 0.038014, -0.027338, -0.018782, -0.02608, -0.008304, 0.045946, 0.067136, + -0.041193, -0.015018, -0.015316, -0.015784, -0.008436, 0.032551, 0.031927, -0.018499, -0.012858, + -0.005365, -0.075739, 0.001774, -0.055331, -0.085842, 0.051518, -0.00385, 0.085666, -0.033154, + -0.020486, 0.008044, 0.088231, -0.031212, -0.01261, -0.045386, 0.034337, 0.04574, -0.005241, + -0.042918, 0.002963, -0.001053, 0.039196, 0.076276, -0.020977, -0.044807, -0.008388, 0.001608, + -0.009251, 0.031425, 0.020998, -0.041849, -0.009146, 0.034172, -0.07694, 0.030228, -0.071431, + -0.082568, 0.034916, -0.00708, 0.061338, -0.040709, -0.00359, -0.00068, 0.08545, -0.031664, + -0.013698, -0.065314, 0.000284, 0.047352, 0.011242, -0.021976, -0.009842, -0.034826, 0.030244, + 0.04098, -0.022087, -0.031779, -0.010783, -0.011254, -0.016097, 0.03552, 0.008812, -0.039921, + 0.021451, 0.022896, -0.081503, 0.006269, -0.064679, -0.081324, 0.01656, -0.009651, 0.092755, + -0.039765, 0.003369, -0.003442, 0.090828, -0.041594, 0.003795, -0.06521, 0.006584, 0.059019, + -0.00679, -0.031523, -0.013143, -0.033723, 0.037304, 0.040499, -0.042419, -0.016077, 0.044954, + -0.025738, -0.025004, 0.053215, 0.023652, -0.016123, 0.007138, -0.000891, -0.014428, 0.001647, + -0.075164, -0.099991, 0.009921, 0.00893, 0.069182, -0.060208, -0.027768, 0.007799, 0.090852, + -0.058174, -0.000455, -0.028891, 0.023155, 0.050796, -0.033505, -0.009317, -0.006261, -0.027862, + 0.014199, 0.062459, -0.034902, -0.016944, 0.007007, -0.022691, -0.034844, 0.032021, 0.032057, + -0.018012, 0.025039, -0.00791, -0.049917, 0.001374, -0.046721, -0.085591, 0.004909, 0.022622, + 0.074692, -0.032424, -0.019525, -0.004601, 0.087419, -0.06234, 0.017288, -0.061005, 0.011562, + 0.062528, -0.012032, -0.003937, -0.03062, -0.025435, 0.021351, 0.05667, -0.026347, 0.006683, + -0.014112, -0.016139, 0.015165, 0.03457, 0.043823, -0.014766, 0.011283, 0.015734, -0.058555, + 0.006474, -0.073121, -0.069704, 0.025158, -0.006069, 0.079914, -0.041445, 0.00431, -0.002885, + 0.102359, -0.029673, 0.018967, -0.045434, 0.027357, 0.056086, -0.016491, -0.024987, -0.001481, + -0.008515, 0.035921, 0.034175, -0.033427, 0.002204, -0.02292, -0.014429, 0.003339, 0.019819, + -0.001689, -0.018773, 0.001478, 0.006267, -0.082288, -0.020664, -0.070983, -0.07489, 0.02401, + 0.00046, 0.104822, -0.042115, -0.017776, -0.017919, 0.093279, -0.003, -0.01011, -0.043251, + 0.041673, 0.019726, -0.010065, -0.029513, -0.040755, -0.025843, 0.032759, 0.045576, -0.022791, + -0.046392, -0.039154, 0.004334, 0.000931, 0.063758, 0.012166, -0.028077, -0.003095, 0.018991, + -0.068585, 0.029774, -0.069447, -0.099683, 0.030291, -0.008824, 0.05376, -0.024574, 0.009193, + -0.007659, 0.105723, -0.036625, 0.001758, -0.04357, -0.004452, 0.050652, -0.004829, -0.021598, + -0.009087, -0.042839, 0.041503, 0.042301, -0.012098, -0.03013, -0.017768, -0.003267, -0.026604, + 0.041499, 0.028226, -0.01058, 0.012264, 0.020541, -0.069127, 0.02279, -0.069712, -0.08713, + 0.027105, -0.006432, 0.083363, -0.048643, 0.011853, -0.004789, 0.113553, -0.055003, 0.006928, + -0.041361, 0.001829, 0.045503, 0.019655, -0.009772, -0.013428, -0.026503, 0.054086, 0.050072, + -0.059086, 0.001258, 0.024484, -0.017281, 0.015914, 0.037371, 0.0146, -0.030901, -0.001855, + -0.000925, -0.053269, -0.01973, -0.07028, -0.054812, 0.035725, 0.01787, 0.05495, -0.014351, + -0.023094, -0.001283, 0.077208, -0.046138, 0.013706, -0.027749, 0.034011, 0.089154, -0.015186, + -0.021743, -0.018396, 0.010127, 0.005655, 0.074629}; + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + } + + return testData; +} + +} // namespace test \ No newline at end of file diff --git a/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h b/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h new file mode 100644 index 000000000000..e8ef6cf2882b --- /dev/null +++ b/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h @@ -0,0 +1,27 @@ +// Copyright (C) 2018-2026 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once + +#include +#include + +namespace test { + +struct TestData { + std::string name; + std::vector tokenTypes; + std::vector qData; + std::vector kData; + std::vector vData; + std::vector expectedOutput; +}; + +class PagedAttentionTokenTypeTestData { +public: + static std::vector GetTestDataForHeadSize32HeadNum1(); + static std::vector GetTestDataForHeadSize32HeadNum1SlidingWindowSize5(); +}; + +} // namespace test \ No newline at end of file From 3db880e5254e0cb11d104b6767570f778ddf7db6 Mon Sep 17 00:00:00 2001 From: Piotr Kowalczyk Date: Thu, 11 Jun 2026 07:40:56 +0000 Subject: [PATCH 2/8] [gpu][unit_tests]: Refactored PA unit tests. --- .../test_cases/paged_attention_gpu_test.cpp | 2973 +---------------- .../test_cases/paged_attention_gpu_test.hpp | 2941 ++++++++++++++++ .../paged_attention_token_type_gpu_test.cpp | 106 + 3 files changed, 3048 insertions(+), 2972 deletions(-) create mode 100644 src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp create mode 100644 src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp index c8103564ec5f..07e3e462e332 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp @@ -2,2909 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "openvino/runtime/properties.hpp" -#include "openvino/runtime/tensor.hpp" -#include "primitive_inst.h" -#include "random_generator.hpp" -#include "test_utils.h" -#include "test_utils/test_data/paged_attention_token_type_test_data.h" - -using namespace cldnn; -using namespace ov::intel_gpu; -using namespace ::tests; - -// Enable detailed xattention debugging (dumps, extra comparison info) -// Default: OFF (0). Set to 1 for investigation. -#ifndef XATTENTION_DEBUG_VERBOSE -#define XATTENTION_DEBUG_VERBOSE 0 -#endif - -/* - * PagedAttention inputs: - * [0]: query, shape: [batch_size_in_tokens, num_heads * head_size], type: f16 - * [1]: key, shape: [batch_size_in_tokens, num_kv_heads * head_size], type: f16 - * [2]: value, shape: [batch_size_in_tokens, num_kv_heads * head_size], type: f16 - * [3]: key_cache, shape: [num_blocks, num_kv_heads, head_size, block_size], type: f16 or i8 - * [4]: value_cache, shape: [num_blocks, num_kv_heads, block_size, head_size], type: f16 or i8 - * [5]: past_lens, shape: [batch_size_in_sequences], type: i32 - * [6]: subsequence_begins, shape: [batch_size_in_sequences + 1], type: i32 - * [7]: block_indices, shape: [num_blocks], type: i32 - * [8]: block_indices_begins, shape: [batch_size_in_sequences + 1], type: i32 - * [9]: scale, optional - * [10]: sliding_window, optional - * [11]: alibi_slopes, optional - * [12]: max_context_len, shape: [], type: i32 - * [13]: score_aggregation_window, optional, shape: [batch_size_in_sequences], type: i32 - * [14]: rotated_block_indices, optional, shape: [num_rotated_blocks], type: i32 - * [15]: rotation_deltas, optional, shape: [num_rotated_blocks, BLOCK_SIZE] or [num_rotated_blocks, 1], type: i32 - * [16]: rotation_trig_lut, optional, shape: [max_num_batched_tokens, head_size], type: f16 - * [17]: adaptive_rkv_start_size, optional, shape: [], type: i32 - * [18]: adaptive_rkv_evictable_sizes, optional, shape: [batch_size_in_sequences], type: i32 - * [19]: adaptive_rkv_diversity_block_set_indices, optional, shape: [total_blocks], type: i32 - * [20]: adaptive_rkv_diversity_block_set_indices_begins, optional, shape: [batch_size_in_sequences + 1], type: i32 - * [21]: qq_bias, optional, shape: [total_mask_size], type: u8 - * [22]: qq_bias_begins, optional, shape: [batch_size_in_sequences + 1], type: i32 - */ - -enum class ScoresMode { - DISABLED = 0, - LAST_TOKEN, - SNAPKV -}; - -struct SubsequenceDescriptor { - int num_tokens; - int past_len; -}; - -struct CacheRotationDescriptor { - bool apply_rotation; - // configures 2nd dimension of rotation_deltas - // if per_block is true, single value is used for all tokens inside the block - // otherwise, each token uses an independent value - bool per_block; -}; - -struct QueryToQueryAttentionDescriptor { - std::vector> qq_bias; - std::vector qq_bias_begins; -}; - -struct PagedAttentionManager { - int num_heads; - int num_kv_heads; - int k_head_size; - int v_head_size; - int block_size; - int sliding_window_size; - bool kv_cache_compression; - ov::internal::CacheQuantMode key_cache_quant_mode; - ov::element::Type kv_cache_precision = ov::element::dynamic; - bool has_score_aggregation; - CacheRotationDescriptor rotation_config; - std::vector subsequence_descs; - - // per-subsequence QKV inputs - std::vector> query_data; // {[1, num_tokens, num_heads, k_head_size], ..} - std::vector> key_data; // {[1, past_len + num_tokens, num_heads, k_head_size], ..} - std::vector> value_data; // {[1, past_len + num_tokens, num_heads, v_head_size], ..} - - // common PA inputs - std::vector past_lens; - std::vector subsequence_begins; - std::vector block_indices; - std::vector block_indices_begins; - std::vector max_context_len; - std::vector score_aggregation_window; - - // score aggregation related inputs - std::vector score_aggregation; - - // rotation related inputs - std::vector rotated_block_indices; - std::vector rotation_deltas; - std::vector rotation_trig_lut; - - // xattention related inputs - bool has_xattention; - std::vector xattention_threshold; - std::vector xattention_block_size; - std::vector xattention_stride; - - std::vector sinks; - - int adaptive_rkv_start_size = 0; - std::vector adaptive_rkv_evictable_sizes; - std::vector adaptive_rkv_diversity_block_set_indices; - std::vector adaptive_rkv_diversity_block_set_indices_begins; - - std::vector> qq_bias; - std::vector qq_bias_begins; - - // optional token_type_ids; when empty, a default single-element {0} buffer is used - std::vector token_type_ids; - cldnn::engine& test_engine; - cldnn::stream& test_stream; - tests::random_generator& rg; - - PagedAttentionManager(tests::random_generator& rg, - cldnn::engine& engine, - cldnn::stream& stream, - const std::vector& subsequence_descs, - int num_heads, - int num_kv_heads, - int k_head_size, - int v_head_size, - int block_size, - int sliding_window_size, - bool kv_cache_compression, - ov::internal::CacheQuantMode key_cache_quant_mode, - bool has_score_aggregation, - bool has_xattention, - CacheRotationDescriptor rotation_config, - ov::element::Type kv_cache_precision = ov::element::dynamic) - : num_heads(num_heads) - , num_kv_heads(num_kv_heads) - , k_head_size(k_head_size) - , v_head_size(v_head_size) - , block_size(block_size) - , sliding_window_size(sliding_window_size) - , kv_cache_compression(kv_cache_compression) - , key_cache_quant_mode(key_cache_quant_mode) - , kv_cache_precision(kv_cache_precision) - , has_score_aggregation(has_score_aggregation) - , rotation_config(rotation_config) - , subsequence_descs(subsequence_descs) - , has_xattention(has_xattention) - , test_engine(engine) - , test_stream(stream) - , rg(rg) { - // init subsequence_begins and block_indices_begins - subsequence_begins.push_back(0); - block_indices_begins.push_back(0); - - int max_len = 0; - for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { - const auto& subsequence_desc = subsequence_descs[i]; - max_len = std::max(max_len, subsequence_desc.num_tokens + subsequence_desc.past_len); - - query_data.push_back(generate_realistic_data(num_heads, subsequence_desc.num_tokens, k_head_size)); - key_data.push_back(generate_realistic_data(num_kv_heads, subsequence_desc.num_tokens + subsequence_desc.past_len, k_head_size)); - value_data.push_back(generate_realistic_data(num_kv_heads, subsequence_desc.num_tokens + subsequence_desc.past_len, v_head_size)); - - past_lens.push_back(subsequence_desc.past_len); - int subsequence_start_pos = subsequence_begins[i]; - int subsequence_end_pos = subsequence_start_pos + subsequence_desc.num_tokens; - subsequence_begins.push_back(subsequence_end_pos); - - int subsequence_length = subsequence_desc.num_tokens + subsequence_desc.past_len; - int required_blocks = ceil_div(subsequence_length, block_size); - int start_block_idx = block_indices.empty() ? 0 : block_indices.back() + 1; - int end_block_idx = start_block_idx + required_blocks; - for (int block_idx = start_block_idx; block_idx < end_block_idx; block_idx++) { - block_indices.push_back(block_idx); - } - - int block_indices_start_pos = block_indices_begins[i]; - int block_indices_end_pos = block_indices_start_pos + required_blocks; - block_indices_begins.push_back(block_indices_end_pos); - } - max_context_len.push_back(max_len); - - if (rotation_config.apply_rotation) { - // iterate over KV-cache blocks and apply cache rotation to every second - // fully occupied block - for (size_t i = 0; i < subsequence_descs.size(); i++) { - const auto& subsequence_desc = subsequence_descs[i]; - int past_len = subsequence_desc.past_len; - int start_block_idx = block_indices_begins[i]; - for (int block_idx = 1; block_idx < past_len / block_size; block_idx++) { - if (block_idx % 2 != 0) { - rotated_block_indices.push_back(start_block_idx + block_idx); - } - } - } - - if (!rotated_block_indices.empty()) { - rotation_deltas = generate_rotation_deltas_data(rg, - max_context_len[0], - rotated_block_indices.size(), - block_size, - rotation_config.per_block); - rotation_trig_lut = generate_rotation_trig_lut_data(rg, max_context_len[0], k_head_size); - } - } - - if (has_score_aggregation) { - for (const auto& subsequence_desc : subsequence_descs) { - const auto max_tokens = 10; - auto max_window_size = std::min(subsequence_desc.num_tokens, max_tokens); - auto window_size = rg.generate_random_val(1, max_window_size); - score_aggregation.push_back(window_size); - } - } - } - - memory::ptr get_query_memory() { - return get_QKV_memory(query_data, num_heads, k_head_size, false); - } - - memory::ptr get_key_memory() { - return get_QKV_memory(key_data, num_kv_heads, k_head_size, true); - } - - memory::ptr get_value_memory() { - return get_QKV_memory(value_data, num_kv_heads, v_head_size, true); - } - - memory::ptr get_key_cache_memory_cm() { - constexpr int kv_sub_block_size = 16; - auto key_cache_dt = kv_cache_compression ? data_types::i8 : data_types::f16; - const int head_size = k_head_size; - int adjusted_head_size = head_size; - int adjusted_block_size = block_size; - if (kv_cache_compression) { - if (key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL) { - OPENVINO_ASSERT(block_size % kv_sub_block_size == 0); - adjusted_block_size += block_size / kv_sub_block_size * 4; - } else { - adjusted_head_size += 4; - } - } - - const auto num_blocks = block_indices.back() + 1; - auto key_cache_shape = ov::PartialShape{static_cast(num_blocks), - static_cast(num_kv_heads), - static_cast(adjusted_block_size), - static_cast(adjusted_head_size)}; - auto key_cache_layout = layout{key_cache_shape, key_cache_dt, format::bfyx}; - auto memory = test_engine.allocate_memory(key_cache_layout); - - for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { - const int past_len = subsequence_descs[i].past_len; - if (past_len == 0) - continue; - - const int blocks_num = ceil_div(past_len + 1, block_size); - const int start_block_idx = block_indices[block_indices_begins[i]]; - - for (int block_idx = 0; block_idx < blocks_num; block_idx++) { - const int last_token_idx = (block_idx == blocks_num - 1) ? (past_len - block_size * block_idx) : block_size; - - for (int token_idx = 0; token_idx < last_token_idx; token_idx++) { - for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { - const size_t input_token_offset = static_cast(block_idx) * block_size + token_idx; - ov::float16* src_ptr = - key_data[i].data() + input_token_offset * static_cast(num_kv_heads) * head_size + static_cast(head_idx) * head_size; - - if (!kv_cache_compression) { - const size_t base = (static_cast(start_block_idx + block_idx) * num_kv_heads * block_size * head_size) + - (static_cast(head_idx) * block_size * head_size); - const size_t off = base + static_cast(token_idx) * head_size; - set_values(test_stream, memory, src_ptr, head_size, off); - } else if (key_cache_quant_mode == ov::internal::CacheQuantMode::BY_TOKEN) { - // Compressed Key cache layout: - // logical shape: [num_blocks, num_kv_heads, block_size, adjusted_head_size], dt=i8 (adjusted_head_size=head_size+4). - // Per (block, head) region starts at block_base_i8, byte-packed as: - // data: block_base_i8 + t*head_size (u8 semantics), size=head_size bytes - // scale: scale_base_i8 + t*sizeof(fp16) (fp16), indexed as (scale_base_i8/2 + t) - // zp: zp_base_i8 + t*sizeof(fp16) (fp16), indexed as (zp_base_i8/2 + t) - // xattention quant: q∈[0..255], dequant x ≈ (q - zp) * scale, where scale=(max-min)/255, zp=(-min)*255/(max-min). - auto [qdata, scale, zp] = quantize_data(src_ptr, head_size, false, true); - int8_t* qptr = reinterpret_cast(qdata.data()); - - const size_t block_stride_i8 = static_cast(adjusted_head_size) * block_size; - const size_t block_base_i8 = (static_cast(start_block_idx + block_idx) * num_kv_heads + head_idx) * block_stride_i8; - - const size_t data_off_i8 = block_base_i8 + token_idx * head_size; - set_values(test_stream, memory, qptr, head_size, data_off_i8); - - const size_t scale_base_i8 = block_base_i8 + head_size * block_size; - const size_t zp_base_i8 = scale_base_i8 + block_size * sizeof(ov::float16); - - const size_t scale_off_f16 = scale_base_i8 / 2 + token_idx; - const size_t zp_off_f16 = zp_base_i8 / 2 + token_idx; - - set_values(test_stream, memory, &scale, 1, scale_off_f16); - set_values(test_stream, memory, &zp, 1, zp_off_f16); - } else { - // Compressed Key cache layout for BY_CHANNEL: - // shape: [num_blocks, num_kv_heads, adjusted_block_size, head_size], dt=i8. - // Per (block, head): - // data bytes region : [block_size * head_size] - // scale fp16 region per-subblock per-channel : [(block_size / sub_block) * head_size] - // zp fp16 region per-subblock per-channel : [(block_size / sub_block) * head_size] - const size_t block_stride_i8 = static_cast(adjusted_block_size) * static_cast(head_size); - const size_t block_base_i8 = (static_cast(start_block_idx + block_idx) * static_cast(num_kv_heads) + - static_cast(head_idx)) * - block_stride_i8; - - const int subblock_count = block_size / kv_sub_block_size; - const size_t scale_base_i8 = block_base_i8 + static_cast(block_size) * static_cast(head_size); - const size_t zp_base_i8 = scale_base_i8 + - static_cast(subblock_count) * static_cast(head_size) * sizeof(ov::float16); - - for (int channel = 0; channel < head_size; channel++) { - for (int sub_start = 0; sub_start < last_token_idx; sub_start += kv_sub_block_size) { - const int cur_sub_block_size = std::min(kv_sub_block_size, last_token_idx - sub_start); - std::vector token_block(cur_sub_block_size); - - for (int t = 0; t < cur_sub_block_size; t++) { - const size_t input_token_offset = static_cast(block_idx) * block_size + static_cast(sub_start + t); - token_block[t] = *(key_data[i].data() + input_token_offset * static_cast(num_kv_heads) * head_size + - static_cast(head_idx) * head_size + channel); - } - - auto [quantized_data, scale, zp] = quantize_data(token_block.data(), cur_sub_block_size, true, true); - - for (int t = 0; t < cur_sub_block_size; t++) { - const size_t data_off_i8 = block_base_i8 + static_cast(sub_start + t) * head_size + channel; - set_values(test_stream, memory, quantized_data.data() + t, 1, data_off_i8); - } - - const size_t sub_idx = static_cast(sub_start / kv_sub_block_size); - const size_t scale_off_f16 = scale_base_i8 / 2 + sub_idx * static_cast(head_size) + channel; - const size_t zp_off_f16 = zp_base_i8 / 2 + sub_idx * static_cast(head_size) + channel; - - set_values(test_stream, memory, &scale, 1, scale_off_f16); - set_values(test_stream, memory, &zp, 1, zp_off_f16); - } - } - } - } - } - } - } - return memory; - } - - bool is_int4_kv_cache() const { - return kv_cache_precision == ov::element::u4 || kv_cache_precision == ov::element::i4; - } - - memory::ptr get_key_cache_memory() { - auto key_cache_dt = data_types::f16; - auto adjusted_head_size = k_head_size; - auto adjusted_block_size = block_size; - if (kv_cache_compression) { - key_cache_dt = is_int4_kv_cache() ? data_types::u8 : data_types::i8; - const int scale_zp_bytes = 4; // 2 fp16 values (scale + zp) = 4 bytes - if (key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL) { - if (is_int4_kv_cache()) { - // u4/i4 BY_CHANNEL: block_size dim is packed (2 u4 tokens per byte) + scale/zp. - // Shape: [num_blocks, kv_heads, k_head_size, block_size/2 + 4] - // head_size is NOT packed (outer dim), block_size IS packed (inner dim). - adjusted_head_size = k_head_size; // NOT packed - adjusted_block_size = block_size / 2 + scale_zp_bytes; // packed + scale/zp - } else { - adjusted_block_size += scale_zp_bytes; - } - } else { - if (is_int4_kv_cache()) { - // Scale/zp for BY_TOKEN: 2 fp16 values = 4 bytes appended to head_size dim. - adjusted_head_size = k_head_size / 2 + scale_zp_bytes; - } else { - adjusted_head_size += scale_zp_bytes; - } - } - } - - auto num_blocks = block_indices.back() + 1; - auto key_cache_shape = ov::PartialShape{ num_blocks, num_kv_heads, adjusted_head_size, adjusted_block_size }; - auto key_cache_layout = layout{ key_cache_shape, key_cache_dt, format::bfyx }; - auto memory = test_engine.allocate_memory(key_cache_layout); - for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { - int past_len = subsequence_descs[i].past_len; - if (past_len != 0) { - int blocks_num = ceil_div(past_len + 1, block_size); - int start_block_idx = block_indices[block_indices_begins[i]]; - for (int block_idx = 0; block_idx < blocks_num; block_idx++) { - int last_token_idx = block_idx == blocks_num - 1 ? (past_len - block_size * block_idx) - : block_size; - // quantize by channel - if (kv_cache_compression && key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL) { - if (is_int4_kv_cache()) { - // INT4 BY_CHANNEL: packed layout [num_blocks, kv_heads, k_head_size, block_size/2+4] - // block_size dim is packed: 2 u4 tokens per byte along innermost dim. - // Comp region at [d, block_size/2..block_size/2+3]: 2 fp16 = inv_scale, zp per head dim d. - const int packed_block = block_size / 2; - for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { - for (int d = 0; d < k_head_size; d++) { - // Gather values for this head dim across all tokens in this block - std::vector vals(block_size, 0.f); - for (int t = 0; t < last_token_idx; ++t) { - size_t in_off = (static_cast(block_idx) * block_size + t) * num_kv_heads * k_head_size - + head_idx * k_head_size; - vals[t] = static_cast(key_data[i].data()[in_off + d]); - } - // Quantize to u4 - float min_v = vals[0], max_v = vals[0]; - for (int t = 1; t < last_token_idx; ++t) { - min_v = std::min(min_v, vals[t]); - max_v = std::max(max_v, vals[t]); - } - float range = (max_v == min_v) ? 0.001f : (max_v - min_v); - const float min_range = std::abs(max_v) * 0.1f; - if (range <= min_range) range += std::max(1.0f, min_range); - float scale = 15.0f / range; - float zp_val = -min_v * scale; - std::vector q(last_token_idx); - for (int t = 0; t < last_token_idx; ++t) { - int v = static_cast(std::nearbyint(vals[t] * scale + zp_val)); - q[t] = static_cast(std::max(0, std::min(15, v))); - } - - const size_t block_offset = - static_cast(start_block_idx + block_idx) * num_kv_heads * k_head_size * adjusted_block_size - + head_idx * k_head_size * adjusted_block_size; - const size_t row_offset = block_offset + d * adjusted_block_size; - - // Pack 2 u4 tokens per byte: token t0 in lower nibble, t1 in upper nibble - std::vector packed_data(packed_block, 0); - for (int t = 0; t < last_token_idx; ++t) { - int byte_idx = t / 2; - if (t % 2 == 0) - packed_data[byte_idx] = q[t] & 0xFu; - else - packed_data[byte_idx] |= (q[t] & 0xFu) << 4; - } - set_values(test_stream, memory, packed_data.data(), static_cast(packed_block), row_offset); - - // Write comp: 2 fp16 (inv_scale, zp) at row_offset + packed_block - const size_t comp_offset_fp16 = (row_offset + packed_block) / 2; - ov::float16 inv_scale_val = static_cast(1.0f / scale); - ov::float16 fp16_zp = static_cast(zp_val); - set_values(test_stream, memory, &inv_scale_val, 1, comp_offset_fp16 + 0); - set_values(test_stream, memory, &fp16_zp, 1, comp_offset_fp16 + 1); - } - } - } else { - for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { - for (int k_head_size_idx = 0; k_head_size_idx < k_head_size; k_head_size_idx++) { - std::vector token_block(block_size); - for (int token_idx = 0; token_idx < last_token_idx; ++token_idx) { - size_t input_token_offset = block_idx * block_size + token_idx; - token_block[token_idx] = *(key_data[i].data() + input_token_offset * num_kv_heads * k_head_size + head_idx * k_head_size + k_head_size_idx); - } - auto [quantized_data, scale, zp] = quantize_data(token_block.data(), last_token_idx, true); - size_t output_block_offset = (start_block_idx + block_idx) * num_kv_heads * adjusted_head_size * adjusted_block_size + - head_idx * adjusted_head_size * adjusted_block_size; - size_t output_offset = output_block_offset + - k_head_size_idx * adjusted_block_size; - set_values(test_stream, memory, quantized_data.data(), last_token_idx, output_offset); - size_t comp_offset = (output_offset + block_size)/2; - set_values(test_stream, memory, &scale, 1, comp_offset); - set_values(test_stream, memory, &zp, 1, comp_offset + 1); - } - } - } - } - for (int token_idx = 0; token_idx < last_token_idx; token_idx++) { - for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { - if (kv_cache_compression) { - if (key_cache_quant_mode == ov::internal::CacheQuantMode::BY_TOKEN) { - // quantize by token - size_t input_token_offset = block_idx * block_size + token_idx; - ov::float16* data_ptr = key_data[i].data() + - input_token_offset * num_kv_heads * k_head_size + - head_idx * k_head_size; - // shape: [num_blocks, num_kv_heads, adjusted_head_size, block_size] - size_t output_block_offset = (start_block_idx + block_idx) * num_kv_heads * adjusted_head_size * block_size + - head_idx * adjusted_head_size * block_size; - - if (is_int4_kv_cache()) { - // INT4 BY_TOKEN: [num_blocks, kv_heads, k_head_size/2+8, block_size] u8 - // Kernel packing (SUBGROUP_SIZE=16): - // Y = pack_group*16 + sglid, where pack_group = d/(2*16), sglid = d%16 - // lower 4bit = q(dim[pack_group*32+sglid]) - // upper 4bit = q(dim[pack_group*32+sglid+16]) - // Scale/ZP: fp16 in comp region at Y=packed_head_size.. - // inv_scale[t] at fp16 idx (comp_base/2 + t) - // zp[t] at fp16 idx (comp_base/2 + block_size + t) - const int packed_head_size = k_head_size / 2; - constexpr int SG = 16; // SUBGROUP_SIZE - // Compute per-token min/max, then scale/zp in u4 range [0,15] - float min_v = std::numeric_limits::max(); - float max_v = -std::numeric_limits::max(); - for (int d = 0; d < k_head_size; d++) { - float v = static_cast(data_ptr[d]); - min_v = std::min(min_v, v); - max_v = std::max(max_v, v); - } - float range = (max_v == min_v) ? 0.001f : (max_v - min_v); - const float min_range = std::abs(max_v) * 0.1f; - if (range <= min_range) range += std::max(1.0f, min_range); - float token_scale = 15.0f / range; - float token_zp = -min_v * token_scale; - std::vector q(k_head_size); - for (int d = 0; d < k_head_size; d++) { - int v = static_cast(std::nearbyint(static_cast(data_ptr[d]) * token_scale + token_zp)); - q[d] = static_cast(std::max(0, std::min(15, v))); - } - // Pack and write: Y=pack_group*SG+sglid → (lower=q[d0], upper=q[d1]) - for (int y = 0; y < packed_head_size; y++) { - int sglid_val = y % SG; - int pack_group = y / SG; - int d0 = pack_group * 2 * SG + sglid_val; - int d1 = d0 + SG; - uint8_t packed_byte = q[d0] & 0xFu; - if (d1 < k_head_size) - packed_byte |= (q[d1] & 0xFu) << 4; - size_t offset = output_block_offset + static_cast(y) * block_size + token_idx; - set_values(test_stream, memory, &packed_byte, 1, offset); - } - // Write inv_scale and zp as fp16 in the comp region - size_t comp_offset_fp16 = (output_block_offset + static_cast(packed_head_size) * block_size) / 2; - ov::float16 fp16_inv_scale = static_cast(1.0f / token_scale); - ov::float16 fp16_zp = static_cast(token_zp); - set_values(test_stream, memory, &fp16_inv_scale, 1, comp_offset_fp16 + token_idx); - set_values(test_stream, memory, &fp16_zp, 1, comp_offset_fp16 + block_size + token_idx); - } else { - auto [quantized_data, scale, zp] = quantize_data(data_ptr, k_head_size); - for (int k_head_size_idx = 0; k_head_size_idx < k_head_size; k_head_size_idx++) { - auto quantized_data_ptr = quantized_data.data() + k_head_size_idx; - - size_t output_offset = output_block_offset + - k_head_size_idx * block_size + - token_idx; - - set_values(test_stream, memory, quantized_data_ptr, 1, output_offset); - } - size_t comp_offset = (output_block_offset + k_head_size * block_size) / 2; - set_values(test_stream, memory, &scale, 1, comp_offset + token_idx); - set_values(test_stream, memory, &zp, 1, comp_offset + block_size + token_idx); - } - } - } else { - for (int k_head_size_idx = 0; k_head_size_idx < k_head_size; k_head_size_idx++) { - size_t input_token_offset = block_idx * block_size + token_idx; - ov::float16* data_ptr = key_data[i].data() + - input_token_offset * num_kv_heads * k_head_size + - head_idx * k_head_size + k_head_size_idx; - - // shape: [num_blocks, num_kv_heads, k_head_size, block_size] - size_t output_offset = (start_block_idx + block_idx) * num_kv_heads * k_head_size * block_size + - head_idx * k_head_size * block_size + - k_head_size_idx * block_size + - token_idx; - - set_values(test_stream, memory, data_ptr, 1, output_offset); - } - } - } - } - } - } - } - - return memory; - } - - memory::ptr get_value_cache_memory() { - auto value_cache_dt = data_types::f16; - const int head_size = v_head_size; - int scale_zp_bytes = 0; - if (kv_cache_compression) { - value_cache_dt = is_int4_kv_cache() ? data_types::u8 : data_types::i8; - scale_zp_bytes = 4; // 2 fp16 values (scale + zp) = 4 bytes - } - - // For u4 (INT4), values are packed 2 per byte; the physical head size is halved. - // PACKED_ADJUSTED_V_HEAD_SIZE = v_head_size/2 + scales_zp_size = 32 + 4 = 36. - const int adjusted_head_size = is_int4_kv_cache() ? (head_size / 2 + scale_zp_bytes) : (head_size + scale_zp_bytes); - - const auto num_blocks = block_indices.back() + 1; - auto value_cache_shape = ov::PartialShape{static_cast(num_blocks), - static_cast(num_kv_heads), - static_cast(block_size), - static_cast(adjusted_head_size)}; - auto value_cache_layout = layout{value_cache_shape, value_cache_dt, format::bfyx}; - auto memory = test_engine.allocate_memory(value_cache_layout); - - for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { - const int past_len = subsequence_descs[i].past_len; - if (past_len == 0) - continue; - - const int blocks_num = ceil_div(past_len + 1, block_size); - const int start_block_idx = block_indices[block_indices_begins[i]]; - - for (int block_idx = 0; block_idx < blocks_num; block_idx++) { - const int last_token_idx = (block_idx == blocks_num - 1) ? (past_len - block_size * block_idx) : block_size; - - for (int token_idx = 0; token_idx < last_token_idx; token_idx++) { - for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { - const size_t input_token_offset = static_cast(block_idx) * block_size + token_idx; - - ov::float16* src_ptr = value_data[i].data() + input_token_offset * static_cast(num_kv_heads) * head_size + - static_cast(head_idx) * head_size; - - if (!kv_cache_compression) { - const size_t base = (static_cast(start_block_idx + block_idx) * static_cast(num_kv_heads) * - static_cast(block_size) * static_cast(head_size)) + - (static_cast(head_idx) * static_cast(block_size) * static_cast(head_size)); - const size_t off = base + static_cast(token_idx) * static_cast(head_size); - set_values(test_stream, memory, src_ptr, head_size, off); - } else if (is_int4_kv_cache()) { - // INT4 (u4) BY_TOKEN value cache: inline per-token comp layout. - // [num_blocks, kv_heads, block_size, PACKED_ADJUSTED_V_HEAD_SIZE] u8 - // PACKED_ADJUSTED_V_HEAD_SIZE = v_head_size/2 + 4 = 36 (for v_head_size=64). - // Per token: [packed_data (32 bytes) | scale (fp16) | zp (fp16)] = 36 bytes. - const int packed_head_size = head_size / 2; - - // Quantize entire token: one scale/zp for all head dims (BY_TOKEN) - float min_val = std::numeric_limits::max(); - float max_val = std::numeric_limits::lowest(); - for (int d = 0; d < head_size; d++) { - float v = static_cast(src_ptr[d]); - min_val = std::min(min_val, v); - max_val = std::max(max_val, v); - } - float diff = (max_val == min_val) ? 0.001f : (max_val - min_val); - float min_range = std::abs(max_val * 0.1f); - if (diff <= min_range) - diff += std::max(1.0f, min_range); - float scale_val = 15.0f / diff; - float zp_val = -min_val * scale_val; - ov::float16 inv_scale_fp16 = ov::float16(1.0f / scale_val); - ov::float16 zp_fp16 = ov::float16(zp_val); - - const size_t block_stride = static_cast(adjusted_head_size) * static_cast(block_size); - const size_t block_base = - (static_cast(start_block_idx + block_idx) * static_cast(num_kv_heads) + static_cast(head_idx)) * - block_stride; - - // Token base: each token occupies adjusted_head_size bytes (inline comp) - const size_t token_base = block_base + static_cast(token_idx) * static_cast(adjusted_head_size); - - // Pack pairs of groups: group (g*2) and (g*2+1), each 16 dims wide. - const int num_packed_groups = packed_head_size / 16; - for (int g = 0; g < num_packed_groups; g++) { - for (int lane = 0; lane < 16; lane++) { - int dim_even = (g * 2) * 16 + lane; - int dim_odd = (g * 2 + 1) * 16 + lane; - int q0 = static_cast(std::nearbyint(static_cast(src_ptr[dim_even]) * scale_val + zp_val)); - int q1 = static_cast(std::nearbyint(static_cast(src_ptr[dim_odd]) * scale_val + zp_val)); - q0 = std::max(0, std::min(15, q0)); - q1 = std::max(0, std::min(15, q1)); - uint8_t packed_byte = static_cast((q0 & 0xFu) | (static_cast(q1 & 0xFu) << 4)); - const size_t packed_pos = g * 16 + lane; - set_values(test_stream, memory, &packed_byte, 1, token_base + packed_pos); - } - } - - // Write inline comp: scale (fp16) and zp (fp16) right after packed data - const size_t comp_byte_off = token_base + static_cast(packed_head_size); - const size_t comp_f16_off = comp_byte_off / 2; - set_values(test_stream, memory, &inv_scale_fp16, 1, comp_f16_off); - set_values(test_stream, memory, &zp_fp16, 1, comp_f16_off + 1); - } else { - // Compressed Value cache layout: - // logical shape: [num_blocks, num_kv_heads, block_size, adjusted_head_size], dt=i8 (adjusted_head_size=head_size+4). - // Per (block, head): data at block_base_i8 + t*head_size; scale/zp are fp16 arrays at scale_base_i8/zp_base_i8 - // (fp16 element offsets: scale_base_i8/2 + t, zp_base_i8/2 + t). - // has_xattention uses unsigned [0..255] quant; dequant x ≈ (q - zp) * scale, scale=(max-min)/255, zp=(-min)*255/(max-min). - auto [qdata, scale, zp] = quantize_data(src_ptr, head_size, false, has_xattention); - int8_t* qptr = reinterpret_cast(qdata.data()); - - const size_t block_stride_i8 = static_cast(adjusted_head_size) * static_cast(block_size); - const size_t block_base_i8 = - (static_cast(start_block_idx + block_idx) * static_cast(num_kv_heads) + static_cast(head_idx)) * - block_stride_i8; - - const size_t data_off_i8 = block_base_i8 + static_cast(token_idx) * static_cast(head_size); - set_values(test_stream, memory, qptr, head_size, data_off_i8); - - const size_t scale_base_i8 = block_base_i8 + static_cast(head_size) * static_cast(block_size); - const size_t zp_base_i8 = scale_base_i8 + static_cast(block_size) * sizeof(ov::float16); - - const size_t scale_off_f16 = (scale_base_i8 >> 1) + static_cast(token_idx); - const size_t zp_off_f16 = (zp_base_i8 >> 1) + static_cast(token_idx); - - set_values(test_stream, memory, &scale, 1, scale_off_f16); - set_values(test_stream, memory, &zp, 1, zp_off_f16); - } - } - } - } - } - return memory; - } - - memory::ptr get_past_lens_memory() { - return get_memory_from_vec(past_lens); - } - - memory::ptr get_subsequence_begins_memory() { - return get_memory_from_vec(subsequence_begins); - } - - memory::ptr get_block_indices_memory() { - return get_memory_from_vec(block_indices); - } - - memory::ptr get_block_indices_begins_memory() { - return get_memory_from_vec(block_indices_begins); - } - - memory::ptr get_scale_memory() { - std::vector scale = { ov::float16(get_default_scale()) }; - return get_memory_from_vec(scale); - } - - memory::ptr get_sliding_window_memory() { - std::vector sliding_window = { 0 }; - return get_memory_from_vec(sliding_window); - } - - memory::ptr get_alibi_memory() { - std::vector alibi; - return get_memory_from_vec(alibi); - } - - memory::ptr get_max_context_len_memory() { - return get_memory_from_vec(max_context_len); - } - - memory::ptr get_score_aggregation() { - return get_memory_from_vec(score_aggregation); - } - - memory::ptr get_rotated_block_indices_memory() { - return get_memory_from_vec(rotated_block_indices); - } - - memory::ptr get_rotation_deltas_memory() { - auto mem = get_memory_from_vec(rotation_deltas); - auto layout = mem->get_layout(); - auto last_dim = rotation_config.per_block ? 1 : block_size; - layout.set_partial_shape(ov::PartialShape{ static_cast(rotated_block_indices.size()), last_dim }); - - return test_engine.reinterpret_buffer(*mem, layout); - } - - memory::ptr get_rotation_trig_lut_memory() { - auto mem = get_memory_from_vec(rotation_trig_lut); - auto layout = mem->get_layout(); - layout.set_partial_shape(ov::PartialShape{ max_context_len[0], k_head_size }); - - if (rotated_block_indices.empty()) { - auto empty_layout = mem->get_layout(); - empty_layout.set_partial_shape(ov::PartialShape{ 0, k_head_size }); - return test_engine.reinterpret_buffer(*mem, empty_layout); - } - - return test_engine.reinterpret_buffer(*mem, layout); - } - - memory::ptr get_xattention_threshold_memory() { - return get_memory_from_vec(xattention_threshold); - } - - memory::ptr get_xattention_block_size_memory() { - return get_memory_from_vec(xattention_block_size); - } - - memory::ptr get_xattention_stride_memory() { - return get_memory_from_vec(xattention_stride); - } - - memory::ptr get_sinks_memory() { - auto mem = get_memory_from_vec(sinks); - auto layout = mem->get_layout(); - layout.set_partial_shape(ov::PartialShape{ 1, num_heads, 1, 1 }); - - if (sinks.empty()) { - auto empty_layout = mem->get_layout(); - empty_layout.set_partial_shape(ov::PartialShape{ 0, 0, 0, 0 }); - return test_engine.reinterpret_buffer(*mem, empty_layout); - } - - return test_engine.reinterpret_buffer(*mem, layout); - } - - memory::ptr get_adaptive_rkv_start_size_memory() { - auto mem = test_engine.allocate_memory({{}, data_types::i32, format::bfyx}); - mem_lock lock(mem, test_stream); - lock[0] = adaptive_rkv_start_size; - return mem; - } - - memory::ptr get_adaptive_rkv_evictable_sizes_memory() { - return get_memory_from_vec(adaptive_rkv_evictable_sizes); - } - - memory::ptr get_adaptive_rkv_diversity_block_set_indices_memory() { - return get_memory_from_vec(adaptive_rkv_diversity_block_set_indices); - } - - memory::ptr get_adaptive_rkv_diversity_block_set_indices_begins_memory() { - return get_memory_from_vec(adaptive_rkv_diversity_block_set_indices_begins); - } - - memory::ptr get_token_type_ids_memory() { - if (!token_type_ids.empty()) { - return get_memory_from_vec(token_type_ids); - } - std::vector default_token_type_ids = { 0 }; - return get_memory_from_vec(default_token_type_ids); - } - - memory::ptr get_qq_bias_memory() { - std::vector flat_qq_bias; - for (const auto& matrix : qq_bias) { - for (bool val : matrix) { - flat_qq_bias.push_back(static_cast(val)); - } - } - return get_memory_from_vec(flat_qq_bias); - } - - memory::ptr get_qq_bias_begins_memory() { - return get_memory_from_vec(qq_bias_begins); - } - - float get_default_scale() { - return static_cast(1.f / std::sqrt(k_head_size)); - } - -private: - template - memory::ptr get_memory_from_vec(std::vector& input_data) { - auto data_size = input_data.empty() ? 1 : input_data.size(); - auto shape = ov::PartialShape{ static_cast(data_size) }; - auto layout = cldnn::layout{ shape, ov::element::from(), format::bfyx }; - auto memory = test_engine.allocate_memory(layout); - - if (input_data.empty()) { - auto shape = ov::PartialShape{0}; - auto layout = cldnn::layout{ shape, ov::element::from(), format::bfyx }; - return test_engine.reinterpret_buffer(*memory, layout); - } - - set_values(test_stream, memory, input_data.data(), input_data.size(), 0); - - return memory; - } - - memory::ptr get_QKV_memory(std::vector>& input_data, int num_heads, int head_size, bool skip_past_len) { - int total_tokens = 0; - for (const auto& subsequence_desc : subsequence_descs) - total_tokens += subsequence_desc.num_tokens; - - auto query_shape = ov::PartialShape{ total_tokens, num_heads * head_size }; - auto query_layout = layout{ query_shape, data_types::f16, format::bfyx }; - auto memory = test_engine.allocate_memory(query_layout); - - for (int subsequence_idx = 0; subsequence_idx < static_cast(subsequence_descs.size()); subsequence_idx++) { - for (int token_idx = 0; token_idx < subsequence_descs[subsequence_idx].num_tokens; token_idx++) { - for (int head_idx = 0; head_idx < num_heads; head_idx++) { - size_t input_token_offset = token_idx; - // as generated data stored in vectors includes past_len, ignore it for KV inputs - if (skip_past_len) - input_token_offset += subsequence_descs[subsequence_idx].past_len; - - ov::float16* data_ptr = input_data[subsequence_idx].data() + - input_token_offset * num_heads * head_size + - head_idx * head_size; - - size_t output_token_offset = subsequence_begins[subsequence_idx] + token_idx; - size_t output_offset = output_token_offset * num_heads * head_size + - head_idx * head_size; - - set_values(test_stream, memory, data_ptr, head_size, output_offset); - } - } - } - - return memory; - } - - template - static void set_values(stream& stream, memory::ptr mem, T* vals, size_t size, size_t dst_offset) { - mem_lock mem_ptr(mem, stream); - for (size_t i = 0; i < size; i++) { - mem_ptr[dst_offset + i] = vals[i]; - } - } - - static std::vector generate_input_data(tests::random_generator& rg, size_t num_heads, size_t tokens_num, size_t k_head_size) { - const size_t total_elements_num = tokens_num * num_heads * k_head_size; - auto data = rg.generate_random_1d(total_elements_num, -1, 1); - - return data; - } - - static std::vector generate_realistic_data(size_t num_heads, size_t tokens_num, size_t k_head_size) { - std::vector data(num_heads * tokens_num * k_head_size); - - std::mt19937 gen(1234); - std::normal_distribution dist(0.0f, 0.1f); - - for (size_t h = 0; h < num_heads; ++h) { - for (size_t t = 0; t < tokens_num; ++t) { - for (size_t d = 0; d < k_head_size; ++d) { - float val = dist(gen); - if (t > 0) - val = 0.8f * val + 0.2f * static_cast(data[h * tokens_num * k_head_size + (t - 1) * k_head_size + d]); - data[h * tokens_num * k_head_size + t * k_head_size + d] = static_cast(val); - } - } - } - - return data; - } - - static std::vector generate_rotation_deltas_data(tests::random_generator& rg, size_t max_tokens_num, size_t rotated_blocks_num, size_t block_size, bool per_block) { - const size_t total_elements_num = per_block ? rotated_blocks_num - : rotated_blocks_num * block_size; - auto data = rg.generate_random_1d(total_elements_num, 0, static_cast(max_tokens_num - 1)); - - return data; - } - - static std::vector generate_rotation_trig_lut_data(tests::random_generator& rg, size_t max_tokens_num, size_t k_head_size) { - const size_t total_elements_num = max_tokens_num * k_head_size; - auto data = rg.generate_random_1d(total_elements_num, -1, 1); - - return data; - } - - static std::tuple, ov::float16, ov::float16> quantize_data(ov::float16* data, - size_t size, - bool expand_range = false, - bool has_xattention = false) { - float min_value = std::numeric_limits::max(); - float max_value = std::numeric_limits::lowest(); - - for (size_t i = 0; i < size; i++) { - float v = static_cast(data[i]); - min_value = std::min(min_value, v); - max_value = std::max(max_value, v); - } - - if (has_xattention) { - if (max_value == min_value) { - std::vector qdata(size, 0); - return {qdata, ov::float16(0.0f), ov::float16(min_value)}; - } - - float diff_value = max_value - min_value; - if (expand_range && std::abs(diff_value) <= std::abs(max_value) * 0.1f) { - diff_value = (max_value - min_value) + std::max(1.0f, max_value * 0.1f); - } - - float scale_val = 255.0f / diff_value; - float zp_val = -min_value * scale_val; - - std::vector qdata(size); - for (size_t i = 0; i < size; i++) { - float q = data[i] * scale_val + zp_val; - int v = static_cast(std::nearbyint(q)); - if (v < 0) - v = 0; - if (v > 255) - v = 255; - qdata[i] = static_cast(v); - } - - ov::float16 scale = static_cast(diff_value / 255.0f); - ov::float16 zp = static_cast(zp_val); - return {qdata, scale, zp}; - } - - float diff_value = 0.001f; - if (max_value != min_value) - diff_value = max_value - min_value; - if (expand_range && std::abs(diff_value) <= std::abs(max_value) * 0.1f) { - diff_value = (max_value - min_value) + std::max(1.0f, max_value * 0.1f); - } - - float scale = (std::numeric_limits::max() - std::numeric_limits::lowest()) / diff_value; - float zp = -min_value * scale + std::numeric_limits::lowest(); - - std::vector qdata(size); - auto convert_char_rte = [](float val) { - float rounded = std::nearbyint(val); - if (rounded > 127.0f) - return static_cast(127); - if (rounded < -128.0f) - return static_cast(-128); - return static_cast(rounded); - }; - - for (size_t i = 0; i < size; i++) { - qdata[i] = convert_char_rte(data[i] * scale + zp); - } - - ov::float16 scale_out = static_cast(1.0f / scale); - ov::float16 zp_out = static_cast(zp); - return {qdata, scale_out, zp_out}; - } -}; - -namespace std { -template <> - struct hash { - uint64_t operator()(const ov::float16 __val) const { - return std::hash()(__val); - } -}; -} - -struct PagedAttentionReference { - PagedAttentionReference(PagedAttentionManager& pam) - : pam(pam) - , test_engine(pam.test_engine) - , test_stream(pam.test_stream) {} - - std::tuple, std::vector, std::vector> get_reference(memory::ptr key_cache_mem = nullptr) { - const bool has_xattention = pam.has_xattention; - if (has_xattention) { - const size_t total_iterations = pam.subsequence_descs.size(); - if (pam.xattention_threshold.size() != total_iterations) { - OPENVINO_THROW("xattention_threshold size (", pam.xattention_threshold.size(), - ") must match number of subsequences (", total_iterations, ")"); - } - if (pam.xattention_block_size.size() != total_iterations) { - OPENVINO_THROW("xattention_block_size size (", pam.xattention_block_size.size(), - ") must match number of subsequences (", total_iterations, ")"); - } - } - - std::vector ref_data_output; - std::vector ref_scores_output; - std::vector ref_diversity_output; - size_t qq_bias_offset = 0; - for (size_t i = 0; i < pam.subsequence_descs.size(); i++) { - const auto& subsequence_desc = pam.subsequence_descs[i]; - const auto kv_seq_len = subsequence_desc.num_tokens + subsequence_desc.past_len; - - auto key_data = pam.key_data[i]; - if (pam.rotation_config.apply_rotation) { - auto blocks_start = pam.block_indices_begins[i]; - auto blocks_end = pam.block_indices_begins[i + 1]; - - std::vector block_indices(pam.block_indices.begin() + blocks_start, - pam.block_indices.begin() + blocks_end); - - for (const auto& block_idx : block_indices) { - auto it = std::find(pam.rotated_block_indices.begin(), pam.rotated_block_indices.end(), block_idx); - if (it != pam.rotated_block_indices.end()) { - int index = std::distance(pam.rotated_block_indices.begin(), it); - int subsequence_rotated_block_idx = *it - blocks_start; - - rotate_block(key_data, - pam.rotation_deltas, - pam.rotation_trig_lut, - index, - subsequence_rotated_block_idx, - pam.num_kv_heads, - pam.k_head_size, - pam.block_size, - pam.rotation_config.per_block); - } - } - } - - auto window_size = pam.has_score_aggregation ? pam.score_aggregation[i] : 1; - - const std::vector* qq_bias_ptr = nullptr; - if (pam.qq_bias.size() > 0 && pam.subsequence_descs[i].past_len != 0) { - qq_bias_ptr = &pam.qq_bias[qq_bias_offset++]; - } - - double xattn_threshold = 1.0; - size_t xattn_block_size = 128; - if (has_xattention) { - xattn_threshold = static_cast(pam.xattention_threshold[i]); - - // reference path reflects runtime fallback/validation behavior for block size. - if (test_engine.get_device_info().arch < gpu_arch::xe2) { - xattn_block_size = 128; - } else { - const int user_value = pam.xattention_block_size[i]; - xattn_block_size = (user_value == 128 || user_value == 256) ? static_cast(user_value) : 256; - } - } - - auto subsequence_ref_results = run_reference(has_xattention, - pam.query_data[i], - key_data, - pam.value_data[i], - subsequence_desc.num_tokens, - kv_seq_len, - pam.num_heads, - pam.num_kv_heads, - pam.k_head_size, - pam.v_head_size, - window_size, - pam.sliding_window_size, - pam.get_default_scale(), - xattn_threshold, - xattn_block_size, - qq_bias_ptr); - - // concatenate all subsequences into one vector - ref_data_output.insert(ref_data_output.end(), - subsequence_ref_results.first.begin(), - subsequence_ref_results.first.end()); - ref_scores_output.insert(ref_scores_output.end(), - subsequence_ref_results.second.begin(), - subsequence_ref_results.second.end()); - } - - if (!pam.adaptive_rkv_evictable_sizes.empty()) { - ref_diversity_output = compute_diversity_reference(key_cache_mem); - } - - return { ref_data_output, ref_scores_output, ref_diversity_output }; - } - -private: - std::pair, std::vector> run_reference(bool has_xattention, - const std::vector& query_data, - const std::vector& key_data, - const std::vector& value_data, - int num_queries, - int num_keys, - int num_heads, - int num_kv_heads, - int k_head_size, - int v_head_size, - int window_size, - int sliding_window_size, - float scale, - double xattention_threshold, - size_t block_size, - const std::vector* qq_bias = nullptr, - size_t stride = 16) { - auto query_shape = ov::PartialShape{1, num_queries, num_heads, k_head_size}; - auto key_shape = ov::PartialShape{1, num_keys, num_kv_heads, k_head_size}; - auto value_shape = ov::PartialShape{1, num_keys, num_kv_heads, v_head_size}; - if (num_heads != num_kv_heads && !has_xattention) { - query_shape = ov::PartialShape{num_queries, num_kv_heads, (num_heads / num_kv_heads), k_head_size}; - key_shape = ov::PartialShape{num_keys, num_kv_heads, 1, k_head_size}; - value_shape = ov::PartialShape{num_keys, num_kv_heads, 1, v_head_size}; - } - bool do_gqa_expand = false; - std::vector expanded_key_data; - std::vector expanded_value_data; - if (has_xattention) { - // Grouped Query Attention - do_gqa_expand = (num_heads != num_kv_heads); - if (do_gqa_expand) { - const int group_size = num_heads / num_kv_heads; - - expanded_key_data.resize(static_cast(num_keys) * static_cast(num_heads) * static_cast(k_head_size)); - expanded_value_data.resize(static_cast(num_keys) * static_cast(num_heads) * static_cast(v_head_size)); - - for (int key_idx = 0; key_idx < num_keys; ++key_idx) { - for (int h = 0; h < num_heads; ++h) { - const int src_kv_head = h / group_size; - size_t src_key_off = (static_cast(key_idx) * static_cast(num_kv_heads) + static_cast(src_kv_head)) * static_cast(k_head_size); - size_t dst_key_off = (static_cast(key_idx) * static_cast(num_heads) + static_cast(h)) * static_cast(k_head_size); - for (int d = 0; d < k_head_size; ++d) - expanded_key_data[dst_key_off + static_cast(d)] = key_data[src_key_off + static_cast(d)]; - - size_t src_val_off = (static_cast(key_idx) * static_cast(num_kv_heads) + static_cast(src_kv_head)) * static_cast(v_head_size); - size_t dst_val_off = (static_cast(key_idx) * static_cast(num_heads) + static_cast(h)) * static_cast(v_head_size); - for (int d = 0; d < v_head_size; ++d) - expanded_value_data[dst_val_off + static_cast(d)] = value_data[src_val_off + static_cast(d)]; - } - } - - key_shape = ov::PartialShape{1, num_keys, num_heads, k_head_size}; - value_shape = ov::PartialShape{1, num_keys, num_heads, v_head_size}; - num_kv_heads = num_heads; - } - } - - auto query_layout = layout{query_shape, data_types::f16, format::bfyx}; - auto key_layout = layout{key_shape, data_types::f16, format::bfyx}; - auto value_layout = layout{value_shape, data_types::f16, format::bfyx}; - auto scale_layout = cldnn::layout({1}, data_types::f16, format::bfyx); - - OPENVINO_ASSERT(query_layout.count() == query_data.size()); - if (do_gqa_expand) { - OPENVINO_ASSERT(key_layout.count() == expanded_key_data.size()); - OPENVINO_ASSERT(value_layout.count() == expanded_value_data.size()); - } else { - OPENVINO_ASSERT(key_layout.count() == key_data.size()); - OPENVINO_ASSERT(value_layout.count() == value_data.size()); - } - - auto query_mem = test_engine.allocate_memory(query_layout); - auto key_mem = test_engine.allocate_memory(key_layout); - auto value_mem = test_engine.allocate_memory(value_layout); - auto scale_mem = test_engine.allocate_memory(scale_layout); - - set_values(query_mem, query_data); - if (do_gqa_expand) { - set_values(key_mem, expanded_key_data); - set_values(value_mem, expanded_value_data); - } else { - set_values(key_mem, key_data); - set_values(value_mem, value_data); - } - set_values(scale_mem, {static_cast(scale)}); - - ov::reference::XAttentionRetainedBlockIndicesForAllHeads retained_blocks; - if (num_queries >= static_cast(block_size) && has_xattention) { - auto reorder_qhk_to_hqd = [&](const std::vector& src, int outer_len, int num_heads, int head_dim) { - std::vector dst(num_heads * outer_len * head_dim); - for (int h = 0; h < num_heads; ++h) { - size_t dst_h_off = static_cast(h) * outer_len * head_dim; - for (int i = 0; i < outer_len; ++i) { - size_t src_off = static_cast(i) * num_heads * head_dim + static_cast(h) * head_dim; - std::copy_n(&src[src_off], head_dim, &dst[dst_h_off + static_cast(i) * head_dim]); - } - } - return dst; - }; - - const auto query_data_3d = reorder_qhk_to_hqd(query_data, num_queries, num_heads, k_head_size); - const auto key_data_3d = reorder_qhk_to_hqd(do_gqa_expand ? expanded_key_data : key_data, num_keys, num_heads, k_head_size); - const size_t padded_q = ((num_queries + block_size - 1) / block_size) * block_size; - const size_t padded_k = ((num_keys + block_size - 1) / block_size) * block_size; - - std::vector query_padded(num_heads * padded_q * k_head_size, 0.f); - std::vector key_padded(num_heads * padded_k * k_head_size, 0.f); - - for (int h = 0; h < num_heads; ++h) { - const auto* q_src = &query_data_3d[h * num_queries * k_head_size]; - const auto* k_src = &key_data_3d[h * num_keys * k_head_size]; - auto* q_dst = &query_padded[h * padded_q * k_head_size]; - auto* k_dst = &key_padded[h * padded_k * k_head_size]; - - std::transform(q_src, q_src + num_queries * k_head_size, q_dst, [](ov::float16 v) { - return static_cast(v); - }); - std::transform(k_src, k_src + num_keys * k_head_size, k_dst, [](ov::float16 v) { - return static_cast(v); - }); - } - ov::reference::XAttentionBlockSelector selector(xattention_threshold, block_size, stride); - retained_blocks = selector.select_blocks(query_padded.data(), - {static_cast(num_heads), padded_q, static_cast(k_head_size)}, - key_padded.data(), - {static_cast(num_heads), padded_k, static_cast(k_head_size)}); - } - auto mask_mem = get_mask_mem_combined_multi_head(num_queries, - num_keys, - num_heads, - num_kv_heads, - sliding_window_size, - retained_blocks, - static_cast(block_size), - qq_bias); - topology topology; - if (num_heads == num_kv_heads) { - topology.add(input_layout("query", query_layout), - input_layout("key", key_layout), - input_layout("value", value_layout), - data("mask", mask_mem), - data("scale", scale_mem), - permute("query_transposed", input_info("query"), {0, 2, 1, 3}), - permute("key_transposed", input_info("key"), {0, 2, 3, 1}), - permute("value_transposed", input_info("value"), {0, 2, 1, 3}), - gemm("qk_gemm", { input_info("query_transposed"), input_info("key_transposed") }, data_types::f16, false, false), - eltwise("scale_div", { input_info("qk_gemm"), input_info("scale") }, eltwise_mode::prod), - eltwise("eltwise", { input_info("scale_div"), input_info("mask") }, eltwise_mode::sum), - softmax("softmax", input_info("eltwise"), -1), - gemm("qkv_gemm", { input_info("softmax"), input_info("value_transposed") }, data_types::f16, false, false), - permute("qkv_gemm_transposed", input_info("qkv_gemm"), {0, 2, 1, 3}), - reorder("output_data", input_info("qkv_gemm_transposed"), format::bfyx, data_types::f16), - reorder("scores_data", input_info("softmax"), format::bfyx, data_types::f16) - ); - } else { - topology.add(input_layout("query", query_layout), - input_layout("key", key_layout), - input_layout("value", value_layout), - data("mask", mask_mem), - data("scale", scale_mem), - permute("query_transposed", input_info("query"), {1, 2, 0, 3}), - permute("key_transposed", input_info("key"), {1, 2, 3, 0}), - permute("value_transposed", input_info("value"), {1, 2, 0, 3}), - gemm("qk_gemm", { input_info("query_transposed"), input_info("key_transposed") }, data_types::f16, false, false), - eltwise("scale_div", { input_info("qk_gemm"), input_info("scale") }, eltwise_mode::prod), - eltwise("eltwise", { input_info("scale_div"), input_info("mask") }, eltwise_mode::sum), - softmax("softmax", input_info("eltwise"), -1), - gemm("qkv_gemm", { input_info("softmax"), input_info("value_transposed") }, data_types::f16, false, false), - reshape("qkv_gemm_reshape", input_info("qkv_gemm"), {1, num_heads, v_head_size, num_queries}), - permute("qkv_gemm_transposed", input_info("qkv_gemm_reshape"), {0, 2, 1, 3}), - reorder("output_data", input_info("qkv_gemm_transposed"), format::bfyx, data_types::f16), - reorder("scores_data", input_info("softmax"), format::bfyx, data_types::f16) - ); - } - - ExecutionConfig config = get_test_default_config(test_engine); - config.set_property(ov::intel_gpu::optimize_data(true)); - config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); - - network::ptr network = get_network(test_engine, topology, config, get_test_stream_ptr(), false); - network->set_input_data("query", query_mem); - network->set_input_data("key", key_mem); - network->set_input_data("value", value_mem); - - auto outputs = network->execute(); - - auto output_data_mem = outputs.at("output_data").get_memory(); - auto output_scores_mem = outputs.at("scores_data").get_memory(); - - return { get_output_data_vec(output_data_mem, num_queries, v_head_size, num_heads), - get_output_scores_vec(output_scores_mem, window_size, num_queries, num_keys, num_heads) }; - } - - std::vector get_output_scores_vec(memory::ptr scores_output, - int window_size, - int num_queries, - int num_keys, - int num_heads) { - OPENVINO_ASSERT(scores_output->count() == static_cast(num_heads * num_queries * num_keys)); - - std::vector output_scores(num_keys, 0); - mem_lock mem_ptr(scores_output, test_stream); - for (int row_idx = 0; row_idx < window_size; row_idx++) { - for (int head_idx = 0; head_idx < num_heads; head_idx++) { - for (int score_idx = 0; score_idx < num_keys; score_idx++) { - auto scores_offset = head_idx * num_queries * num_keys + - (num_queries - window_size + row_idx) * num_keys + - score_idx; - output_scores[score_idx] += mem_ptr[scores_offset]; - } - } - } - - return output_scores; - } - - std::vector get_output_data_vec(memory::ptr data_output, - int num_queries, - int k_head_size, - int num_heads) { - OPENVINO_ASSERT(data_output->count() == static_cast(num_queries * num_heads * k_head_size)); - - std::vector output_data(data_output->count()); - mem_lock mem_ptr(data_output, test_stream); - for (size_t i = 0; i < data_output->count(); i++) - output_data[i] = mem_ptr[i]; - - return output_data; - } - - memory::ptr get_mask_mem_combined_multi_head(int num_queries, - int num_keys, - int num_heads, - int num_kv_heads, - int sliding_window_size, - const ov::reference::XAttentionRetainedBlockIndicesForAllHeads& retained_blocks, - int block_size, - const std::vector* qq_bias) { - int heads_per_kv = num_heads / num_kv_heads; - - ov::PartialShape mask_shape; - if (retained_blocks.empty()) { - mask_shape = ov::PartialShape{1, 1, num_queries, num_keys}; - } else if (num_heads == num_kv_heads) { - mask_shape = ov::PartialShape{1, num_heads, num_queries, num_keys}; - } else { - mask_shape = ov::PartialShape{num_kv_heads, heads_per_kv, num_queries, num_keys}; - } - - auto mask_layout = layout{mask_shape, data_types::f16, format::bfyx}; - auto mask_mem = test_engine.allocate_memory(mask_layout); - mem_lock mem_ptr(mask_mem, test_stream); - - size_t total_elems = mask_layout.count(); - for (size_t i = 0; i < total_elems; ++i) - mem_ptr[i] = std::numeric_limits::lowest(); - if (retained_blocks.empty()) { - if (sliding_window_size == 0) { - int past_len = num_keys - num_queries + 1; - for (int i = 0; i < num_queries; i++) { - for (int j = 0; j < num_keys; j++) { - mem_ptr[i * num_keys + j] = j >= past_len + i ? std::numeric_limits::lowest() : ov::float16(0.f); - } - } - } else { - int sliding_left = num_keys - num_queries - sliding_window_size + 1; - int past_len = num_keys - num_queries + 1; - - for (int i = 0; i < num_queries; i++) { - for (int j = 0; j < num_keys; j++) { - bool is_min; - if (num_queries == num_keys) { - is_min = (j >= sliding_left + i) && (j <= i) ? 0 : 1; - } else { - is_min = (j >= sliding_left + i) && (j < past_len + i) ? 0 : 1; - } - - mem_ptr[i * num_keys + j] = is_min ? std::numeric_limits::lowest() : ov::float16(0.f); - } - } - } - } else { - for (int h = 0; h < num_heads; ++h) { - int kv_idx = (num_heads == num_kv_heads) ? 0 : (h / heads_per_kv); - int head_in_kv = (num_heads == num_kv_heads) ? h : (h % heads_per_kv); - - size_t head_offset = (static_cast(kv_idx) * heads_per_kv + static_cast(head_in_kv)) * static_cast(num_queries) * - static_cast(num_keys); - - for (int i = 0; i < num_queries; i++) { - int left_idx = 0; - int right_idx = 0; - - if (sliding_window_size == 0) { - int past_len = num_keys - num_queries + 1; - right_idx = past_len + i - 1; - left_idx = 0; - } else { - int sliding_left = num_keys - num_queries - sliding_window_size + 1; - int past_len = num_keys - num_queries + 1; - if (num_queries == num_keys) { - left_idx = sliding_left + i; - right_idx = i; - } else { - left_idx = sliding_left + i; - right_idx = past_len + i - 1; - } - } - - left_idx = std::max(0, left_idx); - right_idx = std::min(num_keys - 1, right_idx); - - for (const auto& [q_block_idx, k_block_idx] : retained_blocks[h]) { - int q_start = q_block_idx * block_size; - int q_end = std::min(q_start + block_size, num_queries); - int k_start = k_block_idx * block_size; - int k_end = std::min(k_start + block_size, num_keys); - - if (i < q_start || i >= q_end) - continue; - - for (int j = k_start; j < k_end; j++) { - if (j >= left_idx && j <= right_idx) { - mem_ptr[head_offset + i * num_keys + j] = ov::float16(0.f); - } - } - } - } - } - } - - if (qq_bias && !qq_bias->empty()) { - OPENVINO_ASSERT(qq_bias->size() == static_cast(num_queries * num_queries)); - - auto apply_mask_for_head = [&](size_t head_offset) { - for (int i = 0; i < num_queries; i++) { - for (int j = 0; j < num_queries; j++) { - if (!(*qq_bias)[static_cast(i) * static_cast(num_queries) + static_cast(j)]) { - mem_ptr[head_offset + static_cast(i) * static_cast(num_keys) + (num_keys - num_queries) + static_cast(j)] = - std::numeric_limits::lowest(); - } - } - } - }; - - if (retained_blocks.empty()) { - apply_mask_for_head(0); - } else { - for (int h = 0; h < num_heads; ++h) { - int kv_idx = (num_heads == num_kv_heads) ? 0 : (h / heads_per_kv); - int head_in_kv = (num_heads == num_kv_heads) ? h : (h % heads_per_kv); - size_t head_offset = (static_cast(kv_idx) * static_cast(heads_per_kv) + static_cast(head_in_kv)) * - static_cast(num_queries) * static_cast(num_keys); - apply_mask_for_head(head_offset); - } - } - } - - return mask_mem; - } - - void rotate_block(std::vector& cache_data, - std::vector rotation_deltas, - std::vector rotation_trig_lut_mem, - int rotated_block_idx, - int subsequence_rotated_block_idx, - int num_heads, - int k_head_size, - int block_size, - bool per_block) { - // cache_data shape: [1, num_tokens, num_heads, k_head_size] - int start_token_idx = subsequence_rotated_block_idx * block_size; - - for (int token_idx = 0; token_idx < block_size; token_idx++) { - auto rotation_deltas_offset = per_block ? rotated_block_idx : rotated_block_idx * block_size + token_idx; - auto rotation_trig_lut_idx = rotation_deltas[rotation_deltas_offset]; - for (int head_idx = 0; head_idx < num_heads; head_idx++) { - for (int k_head_size_idx = 0; k_head_size_idx < k_head_size / 2; k_head_size_idx++) { - auto input_offset = (start_token_idx + token_idx) * num_heads * k_head_size + - head_idx * k_head_size + - k_head_size_idx; - - auto cache_value_0 = cache_data[input_offset]; - auto cache_value_1 = cache_data[input_offset + k_head_size / 2]; - - ov::float16 rotation_value_cos = rotation_trig_lut_mem[rotation_trig_lut_idx * k_head_size + k_head_size_idx]; - ov::float16 rotation_value_sin = rotation_trig_lut_mem[rotation_trig_lut_idx * k_head_size + k_head_size_idx + k_head_size / 2]; - - cache_data[input_offset] = cache_value_0 * rotation_value_cos - cache_value_1 * rotation_value_sin; - cache_data[input_offset + k_head_size / 2] = cache_value_0 * rotation_value_sin + cache_value_1 * rotation_value_cos; - } - } - } - } - - std::vector read_key_from_cache(memory::ptr key_cache_mem, size_t seq_idx, int total_tokens) { - // Read key vectors from key_cache memory - // key_cache layout: [num_blocks, num_kv_heads, head_size, block_size] - std::vector key_data(pam.num_kv_heads * total_tokens * pam.k_head_size); - - const int blocks_start = pam.block_indices_begins[seq_idx]; - const int blocks_end = pam.block_indices_begins[seq_idx + 1]; - const int num_blocks = blocks_end - blocks_start; - - const bool is_compressed = pam.kv_cache_compression; - - if (!is_compressed) { - // Uncompressed case: read as float16 - mem_lock cache_ptr(key_cache_mem, test_stream); - - for (int block_idx = 0; block_idx < num_blocks; block_idx++) { - const int physical_block = pam.block_indices[blocks_start + block_idx]; - const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); - - for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { - const int token_idx = block_idx * pam.block_size + token_offset; - - for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { - const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * pam.k_head_size * pam.block_size + - static_cast(head_idx) * pam.k_head_size * pam.block_size; - - const size_t output_base = static_cast(head_idx) * total_tokens * pam.k_head_size + - static_cast(token_idx) * pam.k_head_size; - - for (int dim = 0; dim < pam.k_head_size; dim++) { - const size_t cache_offset = cache_base + static_cast(dim) * pam.block_size + token_offset; - key_data[output_base + dim] = cache_ptr[cache_offset]; - } - } - } - } - } else { - if (pam.key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL) { - if (pam.is_int4_kv_cache()) { - // INT4 BY_CHANNEL: [num_blocks, kv_heads, k_head_size, block_size/2+4] u8 - // block_size dim is packed: 2 u4 tokens per byte. - // Comp at [d, packed_block..packed_block+3]: 2 fp16 = inv_scale, zp per head dim. - mem_lock cache_ptr(key_cache_mem, test_stream); - const int packed_block = pam.block_size / 2; - const int adj_block_size = packed_block + 4; // block_size/2 + sizeof(fp16)*2 - - for (int block_idx = 0; block_idx < num_blocks; block_idx++) { - const int physical_block = pam.block_indices[blocks_start + block_idx]; - const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); - - for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { - const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * pam.k_head_size * adj_block_size - + static_cast(head_idx) * pam.k_head_size * adj_block_size; - - for (int d = 0; d < pam.k_head_size; d++) { - // Read inv_scale and zp from comp region - const size_t comp_byte_off = cache_base + static_cast(d) * adj_block_size + packed_block; - const ov::float16* comp = reinterpret_cast(&cache_ptr[comp_byte_off]); - float inv_scale = static_cast(comp[0]); - float zp_val = static_cast(comp[1]); - - for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { - const int token_idx = block_idx * pam.block_size + token_offset; - const size_t byte_off = cache_base + static_cast(d) * adj_block_size + token_offset / 2; - uint8_t packed_byte = cache_ptr[byte_off]; - uint8_t q = (token_offset % 2 == 0) ? (packed_byte & 0xFu) : ((packed_byte >> 4) & 0xFu); - float dq = (static_cast(q) - zp_val) * inv_scale; - const size_t out_base = static_cast(head_idx) * total_tokens * pam.k_head_size - + static_cast(token_idx) * pam.k_head_size; - key_data[out_base + d] = ov::float16(dq); - } - } - } - } - } else { - // I8/U8 BY_CHANNEL: [num_blocks, num_kv_heads, head_size, block_size+4] - // Each dimension quantized across all tokens in block - mem_lock cache_ptr(key_cache_mem, test_stream); - const int adj_block_size = pam.block_size + 4; - - for (int block_idx = 0; block_idx < num_blocks; block_idx++) { - const int physical_block = pam.block_indices[blocks_start + block_idx]; - const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); - - for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { - const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * pam.k_head_size * adj_block_size + - static_cast(head_idx) * pam.k_head_size * adj_block_size; - - for (int dim = 0; dim < pam.k_head_size; dim++) { - // Read scale and zero-point for this dimension - const size_t scale_offset = cache_base + static_cast(dim) * adj_block_size + pam.block_size; - ov::float16 scale = *reinterpret_cast(&cache_ptr[scale_offset]); - ov::float16 zp = *reinterpret_cast(&cache_ptr[scale_offset + 2]); - - // Dequantize all tokens for this dimension - for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { - const int token_idx = block_idx * pam.block_size + token_offset; - const size_t cache_offset = cache_base + static_cast(dim) * adj_block_size + token_offset; - const size_t output_offset = static_cast(head_idx) * total_tokens * pam.k_head_size + - static_cast(token_idx) * pam.k_head_size + dim; - - int8_t quantized_value = cache_ptr[cache_offset]; - float dequantized = (static_cast(quantized_value) - static_cast(zp)) * static_cast(scale); - key_data[output_offset] = ov::float16(dequantized); - } - } - } - } - } - } else { - // BY_TOKEN - if (pam.is_int4_kv_cache()) { - // INT4 BY_TOKEN: [num_blocks, kv_heads, k_head_size/2+8, block_size] u8 - // Packing (SUBGROUP_SIZE=16): - // Y = pack_group*16 + sglid, where pack_group = d/(2*16), sglid = d%16 - // lower nibble = q(dim[pack_group*32 + sglid]) - // upper nibble = q(dim[pack_group*32 + sglid + 16]) - // Scale/ZP: fp16 in comp region at base + packed_head_size*block_size - // inv_scale[t] at comp_ptr[t], zp[t] at comp_ptr[block_size + t] - mem_lock cache_ptr(key_cache_mem, test_stream); - const int packed_head_size = pam.k_head_size / 2; - const int adj_head_size = packed_head_size + 8; - constexpr int SG = 16; - - for (int block_idx = 0; block_idx < num_blocks; block_idx++) { - const int physical_block = pam.block_indices[blocks_start + block_idx]; - const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); - - for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { - const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * adj_head_size * pam.block_size + - static_cast(head_idx) * adj_head_size * pam.block_size; - // Scale and ZP are in the comp region after the packed data - const size_t comp_byte_base = cache_base + static_cast(packed_head_size) * pam.block_size; - const auto* inv_scale_arr = reinterpret_cast(&cache_ptr[comp_byte_base]); - const auto* zp_arr = reinterpret_cast(&cache_ptr[comp_byte_base + pam.block_size * 2]); - - for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { - const int token_idx = block_idx * pam.block_size + token_offset; - float inv_scale = static_cast(inv_scale_arr[token_offset]); - float zp_val = static_cast(zp_arr[token_offset]); - const size_t out_base = static_cast(head_idx) * total_tokens * pam.k_head_size + - static_cast(token_idx) * pam.k_head_size; - - for (int d = 0; d < pam.k_head_size; d++) { - int sglid_val = d % SG; - int pack_group = d / (2 * SG); - int group_in_pack = (d / SG) % 2; // 0=lower nibble, 1=upper nibble - int y = pack_group * SG + sglid_val; - const size_t byte_off = cache_base + static_cast(y) * pam.block_size + token_offset; - uint8_t packed_byte = cache_ptr[byte_off]; - uint8_t q_d = (group_in_pack == 0) ? (packed_byte & 0xFu) : ((packed_byte >> 4) & 0xFu); - key_data[out_base + d] = ov::float16((static_cast(q_d) - zp_val) * inv_scale); - } - } - } - } - - return key_data; - } - - // BY_TOKEN: [num_blocks, num_kv_heads, head_size+4, block_size] - // Token-wise quantization with shared scale/zp per token - // Layout: data rows [0..head_size-1], scale at [head_size], zp at [head_size+2] (fp16) - mem_lock cache_ptr(key_cache_mem, test_stream); - for (int block_idx = 0; block_idx < num_blocks; block_idx++) { - const int physical_block = pam.block_indices[blocks_start + block_idx]; - const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); - - for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { - const int token_idx = block_idx * pam.block_size + token_offset; - - for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { - const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * (pam.k_head_size + 4) * pam.block_size + - static_cast(head_idx) * (pam.k_head_size + 4) * pam.block_size; - - // Read scale and zero-point for this token - // Scale is at [head_size][token], ZP is at [head_size+2][token] (2 rows below) - // token_offset * 2 because each half is 2 bytes (token 0 at offset 0-1, token 1 at offset 2-3, etc.) - const size_t scale_offset = cache_base + static_cast(pam.k_head_size) * pam.block_size + token_offset * 2; - const size_t zp_offset = scale_offset + 2 * pam.block_size; // ZP is 2 rows below scale - ov::float16 scale = *reinterpret_cast(&cache_ptr[scale_offset]); - ov::float16 zp = *reinterpret_cast(&cache_ptr[zp_offset]); - - const size_t output_base = static_cast(head_idx) * total_tokens * pam.k_head_size + - static_cast(token_idx) * pam.k_head_size; - - // Dequantize all dimensions for this token - for (int dim = 0; dim < pam.k_head_size; dim++) { - const size_t cache_offset = cache_base + static_cast(dim) * pam.block_size + token_offset; - - int8_t quantized_value = cache_ptr[cache_offset]; - float dequantized = (static_cast(quantized_value) - static_cast(zp)) * static_cast(scale); - - key_data[output_base + dim] = ov::float16(dequantized); - } - } - } - } - } // end else (i8 BY_TOKEN) - } // is_compressed - - return key_data; - } - - std::vector compute_diversity_reference(memory::ptr key_cache_mem) { - std::vector diversity_output; - - for (size_t seq_idx = 0; seq_idx < pam.subsequence_descs.size(); seq_idx++) { - const auto start_size = pam.adaptive_rkv_start_size; - const auto evictable_size = pam.adaptive_rkv_evictable_sizes[seq_idx]; - - // Read key data from key_cache instead of original key_data - const auto& subsequence_desc = pam.subsequence_descs[seq_idx]; - const auto total_tokens = subsequence_desc.num_tokens + subsequence_desc.past_len; - - // Extract key vectors from key_cache memory - std::vector key_data = read_key_from_cache(key_cache_mem, seq_idx, total_tokens); - - ov::Shape key_shape = {static_cast(pam.num_kv_heads), - static_cast(total_tokens), - static_cast(pam.k_head_size)}; - - // Use reference implementation - ov::reference::AdaptiveRKVDiversityCalculator calculator(start_size, evictable_size, pam.block_size); - - auto block_diversity = calculator.calculate_block_diversity(key_data.data(), key_shape); - - const size_t num_evictable_blocks = static_cast(evictable_size) / static_cast(pam.block_size); - // Flatten 2D to 1D: [num_evictable_blocks, evictable_size] -> [num_evictable_blocks * evictable_size] - for (size_t block_idx = 0; block_idx < num_evictable_blocks; block_idx++) { - for (size_t token_idx = 0; token_idx < static_cast(evictable_size); token_idx++) { - diversity_output.push_back(block_diversity[block_idx][token_idx]); - } - } - } - - return diversity_output; - } - - PagedAttentionManager& pam; - cldnn::engine& test_engine; - cldnn::stream& test_stream; -}; - -template -struct PagedAttentionTest : public ::testing::TestWithParam { -public: - tests::random_generator rg; - cldnn::engine& engine = get_test_engine(); - float tolerance = 2e-3; - memory::ptr last_key_cache_mem = nullptr; - std::vector last_block_indices; - std::vector last_block_indices_begins; - - void SetUp() override { - rg.set_seed(GET_SUITE_NAME); - } - - static std::vector to_float16(const std::vector& data) { - std::vector result(data.size()); - std::transform(data.begin(), data.end(), result.begin(), [](float value) { - return ov::float16(value); - }); - return result; - } - - void apply_token_type_test_data(PagedAttentionManager& pam, const T& p, const test::TestData& data) { - ASSERT_EQ(p.subsequences.size(), 1); - ASSERT_EQ(p.subsequences[0].past_len, 0); - - const size_t seq_len = data.tokenTypes.size(); - const size_t hidden_dim = static_cast(p.num_heads) * static_cast(p.k_head_size); - ASSERT_EQ(static_cast(p.subsequences[0].num_tokens), seq_len); - ASSERT_EQ(data.qData.size(), seq_len * hidden_dim); - ASSERT_EQ(data.kData.size(), seq_len * hidden_dim); - ASSERT_EQ(data.vData.size(), seq_len * hidden_dim); - ASSERT_EQ(data.expectedOutput.size(), seq_len * hidden_dim); - - pam.query_data = {to_float16(data.qData)}; - pam.key_data = {to_float16(data.kData)}; - pam.value_data = {to_float16(data.vData)}; - pam.token_type_ids.assign(data.tokenTypes.begin(), data.tokenTypes.end()); - } - - void execute(T& p, bool run_reference = true) { - ov::element::Type kv_cache_precision = p.kv_cache_precision; - - PagedAttentionManager pam(rg, - get_test_engine(), - get_test_stream(), - p.subsequences, - p.num_heads, - p.num_kv_heads, - p.k_head_size, - p.v_head_size, - p.block_size, - p.sliding_window_size, - p.kv_cache_compression, - p.key_cache_quant_mode, - p.scores_mode == ScoresMode::SNAPKV, - p.has_xattention, - p.rotation_config, - kv_cache_precision); - if (p.has_xattention) { - pam.xattention_block_size.clear(); - if (p.xattention_block_size.has_value()) { - pam.xattention_block_size = p.xattention_block_size.value(); - } - pam.xattention_threshold.clear(); - if (p.xattention_threshold.has_value()) { - pam.xattention_threshold.reserve(p.xattention_threshold->size()); - for (const float t : p.xattention_threshold.value()) { - pam.xattention_threshold.emplace_back(static_cast(t)); - } - } - // Keep xattention_stride non-empty and per-sequence, reducing the mismatch risk with always-bound stride input. - pam.xattention_stride.assign(p.subsequences.size(), 16); - } - - if (p.has_adaptive_rkv) { - pam.adaptive_rkv_diversity_block_set_indices_begins.push_back(0); - pam.adaptive_rkv_start_size = p.start_size; - - for (size_t i = 0; i < p.subsequences.size(); i++) { - // Use per-sequence evictable_size if available, otherwise use first value - int evictable_size = i < p.evictable_sizes.size() ? p.evictable_sizes[i] : p.evictable_sizes[0]; - - pam.adaptive_rkv_evictable_sizes.push_back(evictable_size); - - int start_block = p.start_size / p.block_size; - int evictable_blocks = evictable_size / p.block_size; - int global_start_block_idx = pam.block_indices_begins[i] + start_block; - - for (int b = 0; b < evictable_blocks; b++) { - pam.adaptive_rkv_diversity_block_set_indices.push_back(global_start_block_idx + b); - } - - int prev_begin = pam.adaptive_rkv_diversity_block_set_indices_begins.back(); - pam.adaptive_rkv_diversity_block_set_indices_begins.push_back(prev_begin + evictable_blocks); - } - } - - if (p.has_qq_bias) { - pam.qq_bias = p.qq_bias_config.qq_bias; - pam.qq_bias_begins = p.qq_bias_config.qq_bias_begins; - } - - if (p.token_type_ids.has_value()) { - pam.token_type_ids = p.token_type_ids.value(); - ASSERT_EQ(pam.token_type_ids.size(), static_cast(pam.subsequence_descs.back().num_tokens + pam.subsequence_descs.back().past_len)); - } - - if (p.token_type_test_data.has_value()) { - apply_token_type_test_data(pam, p, p.token_type_test_data.value()); - } - - if (p.kv_cache_compression) { - // INT4 quantization has larger error than INT8 (~17x larger step size) - tolerance = (kv_cache_precision == ov::element::u4 || kv_cache_precision == ov::element::i4) ? 75e-3 : 25e-3; - } - - auto query_mem = pam.get_query_memory(); - auto key_mem = pam.get_key_memory(); - auto value_mem = pam.get_value_memory(); - - memory::ptr key_cache_mem; - if (p.has_xattention) { - key_cache_mem = pam.get_key_cache_memory_cm(); - } else { - key_cache_mem = pam.get_key_cache_memory(); - } - auto value_cache_mem = pam.get_value_cache_memory(); - - auto past_lens_mem = pam.get_past_lens_memory(); - auto subsequence_begins_mem = pam.get_subsequence_begins_memory(); - auto block_indices_mem = pam.get_block_indices_memory(); - auto block_indices_begins_mem = pam.get_block_indices_begins_memory(); - - auto scale_mem = pam.get_scale_memory(); - auto sliding_window_mem = pam.get_sliding_window_memory(); - auto alibi_mem = pam.get_alibi_memory(); - auto max_context_len_mem = pam.get_max_context_len_memory(); - - // scores calculation related memory buffers - auto score_aggregation_mem = pam.get_score_aggregation(); - - // cache rotation related memory buffers - auto rotated_block_indices_mem = pam.get_rotated_block_indices_memory(); - auto rotation_deltas_mem = pam.get_rotation_deltas_memory(); - auto rotation_trig_lut_mem = pam.get_rotation_trig_lut_memory(); - - auto xattention_threshold_mem = pam.get_xattention_threshold_memory(); - auto xattention_block_size_mem = pam.get_xattention_block_size_memory(); - auto xattention_stride_mem = pam.get_xattention_stride_memory(); - auto sinks_mem = pam.get_sinks_memory(); - auto adaptive_rkv_start_size_mem = pam.get_adaptive_rkv_start_size_memory(); - auto adaptive_rkv_evictable_sizes_mem = pam.get_adaptive_rkv_evictable_sizes_memory(); - auto adaptive_rkv_diversity_block_set_indices_mem = pam.get_adaptive_rkv_diversity_block_set_indices_memory(); - auto adaptive_rkv_diversity_block_set_indices_begins_mem = pam.get_adaptive_rkv_diversity_block_set_indices_begins_memory(); - auto token_type_ids_mem = pam.get_token_type_ids_memory(); - - auto qq_bias = pam.get_qq_bias_memory(); - auto qq_bias_begins = pam.get_qq_bias_begins_memory(); - auto query_layout = query_mem->get_layout(); - auto key_layout = key_mem->get_layout(); - auto value_layout = value_mem->get_layout(); - auto key_cache_layout = key_cache_mem->get_layout(); - auto value_cache_layout = value_cache_mem->get_layout(); - auto past_lens_layout = past_lens_mem->get_layout(); - auto subsequence_begins_layout = subsequence_begins_mem->get_layout(); - auto block_indices_layout = block_indices_mem->get_layout(); - auto block_indices_begins_layout = block_indices_begins_mem->get_layout(); - auto scale_layout = scale_mem->get_layout(); - auto sliding_window_layout = sliding_window_mem->get_layout(); - auto alibi_layout = alibi_mem->get_layout(); - auto max_context_len_layout = max_context_len_mem->get_layout(); - auto score_aggregation_window_layout = score_aggregation_mem->get_layout(); - auto rotated_block_indices_layout = rotated_block_indices_mem->get_layout(); - auto rotation_deltas_layout = rotation_deltas_mem->get_layout(); - auto rotation_trig_lut_layout = rotation_trig_lut_mem->get_layout(); - auto xattention_threshold_layout = xattention_threshold_mem->get_layout(); - auto xattention_block_size_layout = xattention_block_size_mem->get_layout(); - auto xattention_stride_layout = xattention_stride_mem->get_layout(); - auto sinks_layout = sinks_mem->get_layout(); - auto adaptive_rkv_start_size_layout = adaptive_rkv_start_size_mem->get_layout(); - auto adaptive_rkv_evictable_sizes_layout = adaptive_rkv_evictable_sizes_mem->get_layout(); - auto adaptive_rkv_diversity_block_set_indices_layout = adaptive_rkv_diversity_block_set_indices_mem->get_layout(); - auto adaptive_rkv_diversity_block_set_indices_begins_layout = adaptive_rkv_diversity_block_set_indices_begins_mem->get_layout(); - auto token_type_ids_layout = token_type_ids_mem->get_layout(); - auto qq_bias_layout = qq_bias->get_layout(); - auto qq_bias_begins_layout = qq_bias_begins->get_layout(); - - // make layouts dynamic - query_layout.set_partial_shape(ov::PartialShape{ -1, p.num_heads * p.k_head_size }); - key_layout.set_partial_shape(ov::PartialShape{ -1, p.num_kv_heads * p.k_head_size }); - value_layout.set_partial_shape(ov::PartialShape{ -1, p.num_kv_heads * p.v_head_size }); - // key_cache_layout.set_partial_shape(ov::PartialShape{ -1, p.num_heads, p.k_head_size, p.block_size }); - { - auto pshape = key_cache_layout.get_partial_shape(); - pshape[0] = -1; - key_cache_layout.set_partial_shape(pshape); - } - // value_cache_layout.set_partial_shape(ov::PartialShape{ -1, p.num_heads, p.block_size, p.v_head_size }); - { - auto pshape = value_cache_layout.get_partial_shape(); - pshape[0] = -1; - value_cache_layout.set_partial_shape(pshape); - } - past_lens_layout.set_partial_shape(ov::PartialShape{ -1 }); - subsequence_begins_layout.set_partial_shape(ov::PartialShape{ -1 }); - block_indices_layout.set_partial_shape(ov::PartialShape{ -1 }); - block_indices_begins_layout.set_partial_shape(ov::PartialShape{ -1 }); - score_aggregation_window_layout.set_partial_shape(ov::PartialShape{ -1 }); - rotated_block_indices_layout.set_partial_shape(ov::PartialShape{ -1 }); - rotation_deltas_layout.set_partial_shape(ov::PartialShape{ -1, -1 }); - rotation_trig_lut_layout.set_partial_shape(ov::PartialShape{ -1, p.k_head_size }); - xattention_threshold_layout.set_partial_shape(ov::PartialShape{ -1 }); - adaptive_rkv_evictable_sizes_layout.set_partial_shape(ov::PartialShape{ -1 }); - adaptive_rkv_diversity_block_set_indices_layout.set_partial_shape(ov::PartialShape{ -1 }); - adaptive_rkv_diversity_block_set_indices_begins_layout.set_partial_shape(ov::PartialShape{ -1 }); - qq_bias_layout.set_partial_shape(ov::PartialShape{ -1 }); - qq_bias_begins_layout.set_partial_shape(ov::PartialShape{ -1 }); - - if (p.dynamic_paddings) { - const auto padding_axis = 1; - const auto pad_before = p.k_head_size; - const auto pad_after = p.k_head_size * 2; - - query_layout.data_padding._dynamic_dims_mask[padding_axis] = 1; - - auto query_data_layout = query_mem->get_layout(); - auto padded_query_data_layout = query_data_layout; - padded_query_data_layout.data_padding._lower_size[padding_axis] = pad_before; - padded_query_data_layout.data_padding._upper_size[padding_axis] = pad_after; - - auto new_query_memory = get_test_engine().allocate_memory(padded_query_data_layout, false); - - mem_lock query_mem_lock(query_mem, get_test_stream()); - mem_lock new_query_mem_lock(new_query_memory, get_test_stream()); - - auto query_data_shape = query_data_layout.get_shape(); - for (size_t b = 0; b < query_data_shape[0]; b++) { - for (size_t f = 0; f < query_data_shape[1]; f++) { - auto input_offset = - query_data_layout.get_linear_offset(cldnn::tensor(static_cast(b), static_cast(f), 0, 0, 0, 0)); - auto output_offset = - padded_query_data_layout.get_linear_offset(cldnn::tensor(static_cast(b), static_cast(f), 0, 0, 0, 0)); - - new_query_mem_lock[output_offset] = query_mem_lock[input_offset]; - } - } - query_mem = new_query_memory; - } - - std::vector pa_inputs = { - input_info("query"), - input_info("key"), - input_info("value"), - input_info("key_cache"), - input_info("value_cache"), - input_info("past_lens"), - input_info("subsequence_begins"), - input_info("block_indices"), - input_info("block_indices_begins"), - input_info("scale"), - input_info("sliding_window"), - input_info("alibi"), - input_info("max_context_len"), - input_info("score_aggregation_window"), - input_info("rotated_block_indices"), - input_info("rotation_deltas"), - input_info("rotation_trig_lut_modified"), - input_info("xattention_threshold"), - input_info("xattention_block_size"), - input_info("xattention_stride"), - input_info("sinks"), - input_info("adaptive_rkv_start_size"), - input_info("adaptive_rkv_evictable_sizes"), - input_info("adaptive_rkv_diversity_block_set_indices"), - input_info("adaptive_rkv_diversity_block_set_indices_begins"), - input_info("token_type_ids"), - input_info("qq_bias"), - input_info("qq_bias_begins") - }; - - auto pa_prim = paged_attention("paged_attention", pa_inputs); - - pa_prim.k_head_size = p.k_head_size; - pa_prim.v_head_size = p.v_head_size; - pa_prim.kv_heads_num = p.num_kv_heads; - pa_prim.heads_num = p.num_heads; - pa_prim.scale_val = pam.get_default_scale(); - pa_prim.has_alibi = false; - pa_prim.has_token_type_ids = p.token_type_ids.has_value(); - - int num_outputs = 1; - if (p.scores_mode != ScoresMode::DISABLED) num_outputs++; - if (p.has_adaptive_rkv) num_outputs++; - pa_prim.num_outputs = num_outputs; - pa_prim.has_rotated_blocks = p.rotation_config.apply_rotation; - pa_prim.has_score_aggregation = p.scores_mode == ScoresMode::SNAPKV; - pa_prim.has_adaptive_rkv = p.has_adaptive_rkv; - pa_prim.sliding_window = p.sliding_window_size; - pa_prim.is_key_by_channel = (p.key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL); - if (p.has_xattention) { - pa_prim.has_xattention = true; - } - - pa_prim.has_qq_bias = p.has_qq_bias; - - topology topology; - - topology.add( - input_layout("query", query_layout), - input_layout("key", key_layout), - input_layout("value", value_layout), - input_layout("key_cache", key_cache_layout), - input_layout("value_cache", value_cache_layout), - input_layout("past_lens", past_lens_layout), - input_layout("subsequence_begins", subsequence_begins_layout), - input_layout("block_indices", block_indices_layout), - input_layout("block_indices_begins", block_indices_begins_layout), - input_layout("scale", scale_layout), - input_layout("sliding_window", sliding_window_layout), - input_layout("alibi", alibi_layout), - input_layout("max_context_len", max_context_len_layout), - input_layout("score_aggregation_window", score_aggregation_window_layout), - pa_prim, - reorder("output_data", input_info("paged_attention", 0), format::bfyx, data_types::f16) - ); - - int output_idx = 1; - if (p.scores_mode != ScoresMode::DISABLED) { - topology.add(reorder("output_scores", input_info("paged_attention", output_idx), format::bfyx, data_types::f16)); - output_idx++; - } - if (p.has_adaptive_rkv) { - topology.add(reorder("output_diversity", input_info("paged_attention", output_idx), format::bfyx, data_types::f16)); - } - - { - topology.add(input_layout("rotated_block_indices", rotated_block_indices_layout)); - topology.add(input_layout("rotation_deltas", rotation_deltas_layout)); - topology.add(input_layout("rotation_trig_lut", rotation_trig_lut_layout)); - - // add dummy activation operation to simulate an empty PA `rotation_trig_lut` buffer for shapes like [0, k_head_size] - topology.add(activation("rotation_trig_lut_modified", input_info("rotation_trig_lut"), activation_func::none)); - - topology.add(input_layout("xattention_threshold", xattention_threshold_layout)); - topology.add(input_layout("xattention_block_size", xattention_block_size_layout)); - topology.add(input_layout("xattention_stride", xattention_stride_layout)); - topology.add(input_layout("sinks", sinks_layout)); - - topology.add(input_layout("adaptive_rkv_start_size", adaptive_rkv_start_size_layout)); - topology.add(input_layout("adaptive_rkv_evictable_sizes", adaptive_rkv_evictable_sizes_layout)); - topology.add(input_layout("adaptive_rkv_diversity_block_set_indices", adaptive_rkv_diversity_block_set_indices_layout)); - topology.add(input_layout("adaptive_rkv_diversity_block_set_indices_begins", adaptive_rkv_diversity_block_set_indices_begins_layout)); - topology.add(input_layout("token_type_ids", token_type_ids_layout)); - topology.add(input_layout("qq_bias", qq_bias_layout)); - topology.add(input_layout("qq_bias_begins", qq_bias_begins_layout)); - } - - ExecutionConfig config = get_test_default_config(get_test_engine()); - config.set_property(ov::intel_gpu::optimize_data(true)); - config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); - // FlashAttn v1 or v2? - config.set_property(ov::intel_gpu::could_use_flashattn_v2(p.disable_flashattn_v2)); - config.set_property(ov::internal::key_cache_quant_mode(p.key_cache_quant_mode)); - if (kv_cache_precision != ov::element::dynamic) { - config.set_property(ov::hint::kv_cache_precision(kv_cache_precision)); - } - network::ptr network = get_network(get_test_engine(), topology, config, get_test_stream_ptr(), false); - network->set_input_data("query", query_mem); - network->set_input_data("key", key_mem); - network->set_input_data("value", value_mem); - network->set_input_data("key_cache", key_cache_mem); - network->set_input_data("value_cache", value_cache_mem); - network->set_input_data("past_lens", past_lens_mem); - network->set_input_data("subsequence_begins", subsequence_begins_mem); - network->set_input_data("block_indices", block_indices_mem); - network->set_input_data("block_indices_begins", block_indices_begins_mem); - network->set_input_data("scale", scale_mem); - network->set_input_data("sliding_window", sliding_window_mem); - network->set_input_data("alibi", alibi_mem); - network->set_input_data("max_context_len", max_context_len_mem); - network->set_input_data("score_aggregation_window", score_aggregation_mem); - network->set_input_data("rotated_block_indices", rotated_block_indices_mem); - network->set_input_data("rotation_deltas", rotation_deltas_mem); - network->set_input_data("rotation_trig_lut", rotation_trig_lut_mem); - network->set_input_data("xattention_threshold", xattention_threshold_mem); - network->set_input_data("xattention_block_size", xattention_block_size_mem); - - network->set_input_data("xattention_stride", xattention_stride_mem); - network->set_input_data("sinks", sinks_mem); - network->set_input_data("adaptive_rkv_start_size", adaptive_rkv_start_size_mem); - network->set_input_data("adaptive_rkv_evictable_sizes", adaptive_rkv_evictable_sizes_mem); - network->set_input_data("adaptive_rkv_diversity_block_set_indices", adaptive_rkv_diversity_block_set_indices_mem); - network->set_input_data("adaptive_rkv_diversity_block_set_indices_begins", adaptive_rkv_diversity_block_set_indices_begins_mem); - network->set_input_data("token_type_ids", token_type_ids_mem); - network->set_input_data("qq_bias", qq_bias); - network->set_input_data("qq_bias_begins", qq_bias_begins); - - last_key_cache_mem = key_cache_mem; - last_block_indices = pam.block_indices; - last_block_indices_begins = pam.block_indices_begins; - - auto outputs = network->execute(); - - if (!run_reference) { - return; - } - - cldnn::memory::ptr output_data_mem = nullptr; - cldnn::memory::ptr output_scores_mem = nullptr; - cldnn::memory::ptr output_diversity_mem = nullptr; - - output_data_mem = outputs.at("output_data").get_memory(); - if (p.scores_mode != ScoresMode::DISABLED) { - output_scores_mem = outputs.at("output_scores").get_memory(); - } - if (p.has_adaptive_rkv) { - output_diversity_mem = outputs.at("output_diversity").get_memory(); - } - - if (p.token_type_test_data.has_value()) { - compare_token_type_output(output_data_mem, p.token_type_test_data->expectedOutput); - return; - } - - // Verify KV cache was correctly written (CM PA path only) - // NOTE: This verification is specific to CM PA layout and should NOT run for OCL micro_sdpa - // because they use different layouts (key cache is [N,K,H,B] in OCL vs [N,K,B,H] in CM) - verify_cm_kv_cache_write(p); - - auto ref_data = PagedAttentionReference(pam).get_reference(key_cache_mem); - if (p.has_xattention) { - compare_xattention(output_data_mem, output_scores_mem, ref_data, p.num_heads, p.k_head_size); - } else { - compare(output_data_mem, output_scores_mem, output_diversity_mem, ref_data); - } - } - - void compare(memory::ptr data_output_mem, memory::ptr scores_output_mem, memory::ptr diversity_output_mem, std::tuple, std::vector, std::vector> ref_data) { - if (data_output_mem) { - ASSERT_EQ(data_output_mem->count(), std::get<0>(ref_data).size()); - mem_lock mem_ptr(data_output_mem, get_test_stream()); - for (size_t i = 0; i < data_output_mem->count(); i++) { - ASSERT_NEAR(mem_ptr[i], std::get<0>(ref_data)[i], tolerance) << " at index=" << i; - } - } - - if (scores_output_mem) { - ASSERT_EQ(scores_output_mem->count(), std::get<1>(ref_data).size()); - mem_lock mem_ptr(scores_output_mem, get_test_stream()); - for (size_t i = 0; i < scores_output_mem->count(); i++) { - ASSERT_NEAR(mem_ptr[i], std::get<1>(ref_data)[i], tolerance) << " at index=" << i; - } - } - - if (diversity_output_mem) { - ASSERT_EQ(diversity_output_mem->count(), std::get<2>(ref_data).size()); - mem_lock mem_ptr(diversity_output_mem, get_test_stream()); - // Relaxed tolerance due to float32 (GPU) vs float16 (reference) accumulator difference - float diversity_tolerance = tolerance * 10.0f; - for (size_t i = 0; i < diversity_output_mem->count(); i++) { - ASSERT_NEAR(mem_ptr[i], std::get<2>(ref_data)[i], diversity_tolerance) << " at index=" << i; - } - } - } - - void compare_token_type_output(memory::ptr data_output_mem, const std::vector& expected_output) { - ASSERT_TRUE(data_output_mem); - ASSERT_EQ(data_output_mem->count(), expected_output.size()); - mem_lock mem_ptr(data_output_mem, get_test_stream()); - constexpr float token_type_tolerance = 1e-2f; - for (size_t i = 0; i < data_output_mem->count(); i++) { - ASSERT_NEAR(static_cast(mem_ptr[i]), expected_output[i], token_type_tolerance) << " at index=" << i; - } - } - - void compare_xattention(memory::ptr data_output_mem, memory::ptr scores_output_mem, std::tuple, std::vector, std::vector> ref_data, size_t num_heads, size_t head_size) { - if (data_output_mem) { - ASSERT_EQ(data_output_mem->count(), std::get<0>(ref_data).size()); - mem_lock mem_ptr(data_output_mem, get_test_stream()); - int mismatch_count = 0; - -#if XATTENTION_DEBUG_VERBOSE - XAttentionErrorStats stats; - collect_xattention_error_stats(mem_ptr.data(), std::get<0>(ref_data), num_heads, head_size, tolerance, stats); - mismatch_count = stats.mismatch_count; - - // Print detailed statistics on failure - if (mismatch_count > int(data_output_mem->count() * 0.04)) { - print_xattention_error_details(stats, mem_ptr.data(), std::get<0>(ref_data), num_heads, head_size, tolerance); - } -#else - // Simple counting when verbose debug is disabled - for (size_t i = 0; i < data_output_mem->count(); i++) { - float actual = static_cast(mem_ptr[i]); - float expected = static_cast(std::get<0>(ref_data)[i]); - float error = std::fabs(actual - expected); - if (error > tolerance) { - mismatch_count++; - } - } -#endif - - EXPECT_LE(mismatch_count, int(data_output_mem->count() * 0.04)); - } - - if (scores_output_mem) { - ASSERT_EQ(scores_output_mem->count(), std::get<1>(ref_data).size()); - mem_lock mem_ptr(scores_output_mem, get_test_stream()); - int mismatch_count = 0; - for (size_t i = 0; i < scores_output_mem->count(); i++) { - if (std::fabs(static_cast(mem_ptr[i]) - static_cast(std::get<1>(ref_data)[i])) > tolerance) { - mismatch_count++; - } - } - EXPECT_LE(mismatch_count, int(scores_output_mem->count() * 0.04)); - } - } - -private: - // Helper: Verify CM PA KV cache was correctly written (CM path only) - void verify_cm_kv_cache_write(const T& p) { - if (last_key_cache_mem == nullptr || !p.has_xattention) return; - - // Count total tokens for single-token BY_CHANNEL skip logic - int total_new_tokens = 0; - for (const auto& s : p.subsequences) total_new_tokens += s.num_tokens; - - constexpr int kv_sub_block_size = 16; - const bool is_by_channel = p.kv_cache_compression && - p.key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL; - const bool is_by_token = p.kv_cache_compression && - p.key_cache_quant_mode == ov::internal::CacheQuantMode::BY_TOKEN; - - // CM cache layout: [num_blocks, num_kv_heads, adjusted_block_size, adjusted_head_size] - const int adj_head_size = is_by_token ? (p.k_head_size + 4) : p.k_head_size; - const int adj_block_size = is_by_channel ? (p.block_size + (p.block_size / kv_sub_block_size) * 4) : p.block_size; - const int elem_size = p.kv_cache_compression ? 1 : 2; - const size_t head_region_bytes = static_cast(adj_block_size) * adj_head_size * elem_size; - const size_t block_stride_bytes = static_cast(p.num_kv_heads) * head_region_bytes; - const int token_data_stride = p.k_head_size * elem_size; - - mem_lock cache_lock(last_key_cache_mem, get_test_stream()); - - int missing_count = 0, nan_count = 0, inf_count = 0, zero_scale_count = 0, out_of_range_zp_count = 0; - std::vector> nan_locations, inf_locations; - std::vector> zero_scale_locations, out_of_range_zp_locations; - - int total_tokens = 0; - for (int i = 0; i < static_cast(p.subsequences.size()); i++) { - const int past_len = p.subsequences[i].past_len; - const int num_tokens = p.subsequences[i].num_tokens; - for (int t = 0; t < num_tokens; t++) { - total_tokens++; - const int absolute_pos = past_len + t; - const int block_idx = absolute_pos / p.block_size; - const int token_in_block = absolute_pos % p.block_size; - const int physical_block = last_block_indices[last_block_indices_begins[i] + block_idx]; - const size_t block_base = static_cast(physical_block) * block_stride_bytes; - - for (int head = 0; head < p.num_kv_heads; head++) { - const size_t head_base = block_base + static_cast(head) * head_region_bytes; - const size_t token_offset = head_base + static_cast(token_in_block) * token_data_stride; - - // Check for missing token write (all-zero data) - bool skip_zero_check = is_by_channel && (total_new_tokens <= 1); - if (!skip_zero_check) { - bool all_zero = true; - for (int b = 0; b < token_data_stride; b++) { - if (cache_lock[token_offset + b] != 0) { - all_zero = false; - break; - } - } - if (all_zero && head == 0) { - missing_count++; - GPU_DEBUG_LOG << "KV cache update MISSING: seq=" << i << " token=" << t - << " (absolute_pos=" << absolute_pos << ") at byte_offset=" << token_offset << std::endl; - } - } - - // Check for NaN/INF in data or scale/zp - check_kv_cache_nan_inf(cache_lock.data(), p, is_by_token, is_by_channel, - head_base, token_in_block, i, t, absolute_pos, head, - nan_count, inf_count, zero_scale_count, out_of_range_zp_count, - nan_locations, inf_locations, zero_scale_locations, out_of_range_zp_locations); - } - } - } - - report_kv_cache_issues(nan_count, inf_count, zero_scale_count, out_of_range_zp_count, - nan_locations, inf_locations, zero_scale_locations, out_of_range_zp_locations, - total_tokens, p, is_by_token, is_by_channel); - EXPECT_EQ(missing_count, 0) << missing_count << " out of " << total_tokens - << " tokens were not written to key cache by KV update kernel"; - EXPECT_EQ(nan_count, 0) << "KV cache contains NaN values"; - EXPECT_EQ(inf_count, 0) << "KV cache contains INF values"; - EXPECT_EQ(zero_scale_count, 0) << "KV cache contains zero/near-zero scale values (causes division by zero in dequant)"; - // ZP can be outside [0, 255] legitimately - see pa-quantization skill for details - } - - // Helper: Check for NaN/INF in KV cache token - void check_kv_cache_nan_inf(const int8_t* cache_data, const T& p, - bool is_by_token, bool is_by_channel, - size_t head_base, int token_in_block, - int seq_idx, int token_idx, int absolute_pos, int head, - int& nan_count, int& inf_count, int& zero_scale_count, int& out_of_range_zp_count, - std::vector>& nan_locations, - std::vector>& inf_locations, - std::vector>& zero_scale_locations, - std::vector>& out_of_range_zp_locations) { - constexpr int kv_sub_block_size = 16; - const size_t token_offset = head_base + static_cast(token_in_block) * p.k_head_size * (p.kv_cache_compression ? 1 : 2); - - if (!p.kv_cache_compression) { - // FP16 cache: check data for NaN/INF - const ov::float16* fp16_ptr = reinterpret_cast(cache_data + token_offset); - for (int dim = 0; dim < p.k_head_size; dim++) { - float val = static_cast(fp16_ptr[dim]); - if (std::isnan(val)) { - nan_count++; - if (nan_locations.size() < 10) { - nan_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, dim)); - } - } - if (std::isinf(val)) { - inf_count++; - if (inf_locations.size() < 10) { - inf_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, dim)); - } - } - } - } else if (is_by_token) { - // BY_TOKEN: check scale/zp - const size_t scale_offset = head_base + static_cast(p.block_size) * p.k_head_size - + static_cast(token_in_block) * 2; - const size_t zp_offset = scale_offset + static_cast(p.block_size) * 2; - const ov::float16* scale_ptr = reinterpret_cast(cache_data + scale_offset); - const ov::float16* zp_ptr = reinterpret_cast(cache_data + zp_offset); - float scale = static_cast(*scale_ptr); - float zp = static_cast(*zp_ptr); - - check_scale_zp_validity(scale, zp, seq_idx, token_idx, absolute_pos, head, -1, - nan_count, inf_count, zero_scale_count, out_of_range_zp_count, - nan_locations, inf_locations, zero_scale_locations, out_of_range_zp_locations); - } else if (is_by_channel) { - // BY_CHANNEL: check scale/zp per channel (only first 4 channels to limit overhead) - int sub_block_idx = token_in_block / kv_sub_block_size; - int group_num = p.block_size / kv_sub_block_size; - for (int ch = 0; ch < std::min(p.k_head_size, 4); ch++) { - size_t scale_offset = head_base + static_cast(p.block_size) * p.k_head_size - + (static_cast(sub_block_idx) * p.k_head_size + ch) * 2; - size_t zp_offset = scale_offset + static_cast(group_num) * p.k_head_size * 2; - const ov::float16* scale_ptr = reinterpret_cast(cache_data + scale_offset); - const ov::float16* zp_ptr = reinterpret_cast(cache_data + zp_offset); - float scale = static_cast(*scale_ptr); - float zp = static_cast(*zp_ptr); - - check_scale_zp_validity(scale, zp, seq_idx, token_idx, absolute_pos, head, ch, - nan_count, inf_count, zero_scale_count, out_of_range_zp_count, - nan_locations, inf_locations, zero_scale_locations, out_of_range_zp_locations); - } - } - } - - // Helper: Check scale/zp for NaN/INF/zero - void check_scale_zp_validity(float scale, float zp, int seq_idx, int token_idx, int absolute_pos, int head, int dim, - int& nan_count, int& inf_count, int& zero_scale_count, int& out_of_range_zp_count, - std::vector>& nan_locations, - std::vector>& inf_locations, - std::vector>& zero_scale_locations, - std::vector>& out_of_range_zp_locations) { - if (std::isnan(scale) || std::isnan(zp)) { - nan_count += (std::isnan(scale) ? 1 : 0) + (std::isnan(zp) ? 1 : 0); - if (nan_locations.size() < 10) { - nan_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, dim)); - } - } - if (std::isinf(scale) || std::isinf(zp)) { - inf_count += (std::isinf(scale) ? 1 : 0) + (std::isinf(zp) ? 1 : 0); - if (inf_locations.size() < 10) { - inf_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, dim)); - } - } - if (std::fabs(scale) < 1e-6f) { - zero_scale_count++; - if (zero_scale_locations.size() < 10) { - zero_scale_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, scale, zp)); - } - } - if (zp < -1.0f || zp > 256.0f) { - out_of_range_zp_count++; - if (out_of_range_zp_locations.size() < 10) { - out_of_range_zp_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, scale, zp)); - } - } - } - - // Helper: Report KV cache verification issues - void report_kv_cache_issues(int nan_count, int inf_count, int zero_scale_count, int out_of_range_zp_count, - const std::vector>& nan_locations, - const std::vector>& inf_locations, - const std::vector>& zero_scale_locations, - const std::vector>& out_of_range_zp_locations, - int total_tokens, const T& p, bool is_by_token, bool is_by_channel) { - if (nan_count > 0) { - GPU_DEBUG_LOG << "\nKV cache contains " << nan_count << " NaN values:" << std::endl; - for (const auto& [seq, tok, abs_pos, h, d] : nan_locations) { - GPU_DEBUG_LOG << " seq=" << seq << " token=" << tok << " (absolute_pos=" << abs_pos << ") head=" << h; - if (d == -1) { - GPU_DEBUG_LOG << " [BY_TOKEN scale/zp]"; - } else if (d >= 0) { - GPU_DEBUG_LOG << " [BY_CHANNEL scale/zp channel=" << d << "]"; - } else { - GPU_DEBUG_LOG << " [FP16 dim=" << d << "]"; - } - GPU_DEBUG_LOG << std::endl; - } - if (nan_locations.size() < static_cast(nan_count)) { - GPU_DEBUG_LOG << " ... and " << (nan_count - nan_locations.size()) << " more" << std::endl; - } - } - if (inf_count > 0) { - GPU_DEBUG_LOG << "\nKV cache contains " << inf_count << " INF values:" << std::endl; - for (const auto& [seq, tok, abs_pos, h, d] : inf_locations) { - GPU_DEBUG_LOG << " seq=" << seq << " token=" << tok << " (absolute_pos=" << abs_pos << ") head=" << h; - if (d == -1) { - GPU_DEBUG_LOG << " [BY_TOKEN scale/zp]"; - } else if (d >= 0) { - GPU_DEBUG_LOG << " [BY_CHANNEL scale/zp channel=" << d << "]"; - } else { - GPU_DEBUG_LOG << " [FP16 dim=" << d << "]"; - } - GPU_DEBUG_LOG << std::endl; - } - if (inf_locations.size() < static_cast(inf_count)) { - GPU_DEBUG_LOG << " ... and " << (inf_count - inf_locations.size()) << " more" << std::endl; - } - } - if (zero_scale_count > 0) { - GPU_DEBUG_LOG << "\nKV cache contains " << zero_scale_count << " zero/near-zero scale values:" << std::endl; - for (const auto& [seq, tok, abs_pos, h, scale, zp] : zero_scale_locations) { - GPU_DEBUG_LOG << " seq=" << seq << " token=" << tok << " (absolute_pos=" << abs_pos - << ") head=" << h << " scale=" << scale << " zp=" << zp << std::endl; - } - if (zero_scale_locations.size() < static_cast(zero_scale_count)) { - GPU_DEBUG_LOG << " ... and " << (zero_scale_count - zero_scale_locations.size()) << " more" << std::endl; - } - } - if (out_of_range_zp_count > 0) { - GPU_DEBUG_LOG << "\nKV cache contains " << out_of_range_zp_count << " ZP values outside typical [0,255] range (NOTE: this is valid for shifted data distributions):" << std::endl; - for (const auto& [seq, tok, abs_pos, h, scale, zp] : out_of_range_zp_locations) { - GPU_DEBUG_LOG << " seq=" << seq << " token=" << tok << " (absolute_pos=" << abs_pos - << ") head=" << h << " scale=" << scale << " zp=" << zp << std::endl; - } - if (out_of_range_zp_locations.size() < static_cast(out_of_range_zp_count)) { - GPU_DEBUG_LOG << " ... and " << (out_of_range_zp_count - out_of_range_zp_locations.size()) << " more" << std::endl; - } - } - - if (nan_count == 0 && inf_count == 0 && zero_scale_count == 0 && out_of_range_zp_count == 0) { - GPU_DEBUG_LOG << "\nKV cache verification PASSED: " << total_tokens << " tokens checked"; - if (p.kv_cache_compression) { - GPU_DEBUG_LOG << " (compression mode: " - << (is_by_token ? "BY_TOKEN" : (is_by_channel ? "BY_CHANNEL" : "UNKNOWN")) << ")"; - } else { - GPU_DEBUG_LOG << " (FP16 mode)"; - } - GPU_DEBUG_LOG << std::endl; - } - } - -private: - // Helper structure to hold XAttention error statistics - struct XAttentionErrorStats { - int mismatch_count = 0; - int catastrophic_count = 0; // NaN, Inf, or error > 1.0 - int large_error_count = 0; // error > 0.1 - float max_error = 0.0f; - float avg_error = 0.0f; - float avg_mismatch_error = 0.0f; - size_t first_mismatch_idx = 0; - float first_mismatch_actual = 0.0f; - float first_mismatch_expected = 0.0f; - bool found_first = false; - - // Separate counters for different abnormal value types - int actual_nan_count = 0; - int expected_nan_count = 0; - int actual_inf_count = 0; - int expected_inf_count = 0; - int actual_gt1_count = 0; - int expected_gt1_count = 0; - int error_gt1_count = 0; - - // Track coordinates of abnormal values - std::vector> actual_nan_coords; // (token, head, dim, value) - std::vector> expected_nan_coords; - std::vector> actual_inf_coords; - std::vector> expected_inf_coords; - std::vector> actual_gt1_coords; - std::vector> expected_gt1_coords; - }; - - // Collect XAttention error statistics by comparing GPU output with CPU reference - static void collect_xattention_error_stats(const ov::float16* mem_ptr, - const std::vector& ref_output, - size_t num_heads, - size_t head_size, - float tolerance, - XAttentionErrorStats& stats) { - size_t total_elements = ref_output.size(); - for (size_t i = 0; i < total_elements; i++) { - float actual = static_cast(mem_ptr[i]); - float expected = static_cast(ref_output[i]); - float error = std::fabs(actual - expected); - - stats.avg_error += error; - stats.max_error = std::max(stats.max_error, error); - - // Calculate coordinates: output layout is [T, Q * H] - size_t head_dim_flat = i % (num_heads * head_size); - size_t token_idx = i / (num_heads * head_size); - size_t head_idx = head_dim_flat / head_size; - size_t dim_idx = head_dim_flat % head_size; - - // Separate checks for actual vs expected with coordinate tracking - if (std::isnan(actual)) { - stats.actual_nan_count++; - stats.actual_nan_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, actual)); - } - if (std::isnan(expected)) { - stats.expected_nan_count++; - stats.expected_nan_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, expected)); - } - if (std::isinf(actual)) { - stats.actual_inf_count++; - stats.actual_inf_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, actual)); - } - if (std::isinf(expected)) { - stats.expected_inf_count++; - stats.expected_inf_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, expected)); - } - if (!std::isnan(actual) && !std::isinf(actual) && std::fabs(actual) > 1.0f) { - stats.actual_gt1_count++; - stats.actual_gt1_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, actual)); - } - if (!std::isnan(expected) && !std::isinf(expected) && std::fabs(expected) > 1.0f) { - stats.expected_gt1_count++; - stats.expected_gt1_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, expected)); - } - if (error > 1.0f) stats.error_gt1_count++; - - if (std::isnan(actual) || std::isinf(actual) || error > 1.0f) { - stats.catastrophic_count++; - } - if (error > 0.1f) { - stats.large_error_count++; - } - - if (error > tolerance) { - if (!stats.found_first) { - stats.first_mismatch_idx = i; - stats.first_mismatch_actual = actual; - stats.first_mismatch_expected = expected; - stats.found_first = true; - } - stats.avg_mismatch_error += error; - stats.mismatch_count++; - } - } - - stats.avg_error /= total_elements; - if (stats.mismatch_count > 0) { - stats.avg_mismatch_error /= stats.mismatch_count; - } - } - - // Print coordinates of abnormal values (NaN/INF/large values) - static void print_abnormal_value_coords(const std::string& label, - const std::vector>& coords, - int count) { - GPU_DEBUG_LOG << " " << label << ": " << count << std::endl; - if (count > 0) { - GPU_DEBUG_LOG << " Coordinates (token, head, dim, value):" << std::endl; - size_t show_count = std::min(coords.size(), size_t(10)); - for (size_t j = 0; j < show_count; j++) { - auto [t, h, d, v] = coords[j]; - GPU_DEBUG_LOG << " [" << t << ", " << h << ", " << d << "] = " << v << std::endl; - } - if (coords.size() > 10) { - GPU_DEBUG_LOG << " ... and " << (coords.size() - 10) << " more" << std::endl; - } - } - } - - // Print catastrophic error locations with detailed tags - static void print_catastrophic_errors(const ov::float16* mem_ptr, - const std::vector& ref_output, - size_t num_heads, - size_t head_size, - int catastrophic_count) { - if (catastrophic_count > 0 && catastrophic_count <= 20) { - GPU_DEBUG_LOG << "\nCatastrophic error locations (NaN/Inf/error>1.0):" << std::endl; - size_t total_elements = ref_output.size(); - size_t total_tokens = total_elements / (num_heads * head_size); - - GPU_DEBUG_LOG << " Dimensions: tokens=" << total_tokens - << " heads=" << num_heads - << " head_size=" << head_size - << " (total=" << total_elements << ")" << std::endl; - - for (size_t i = 0; i < total_elements; i++) { - float actual = static_cast(mem_ptr[i]); - float expected = static_cast(ref_output[i]); - float error = std::fabs(actual - expected); - if (std::isnan(actual) || std::isnan(expected) || std::isinf(actual) || std::isinf(expected) || error > 1.0f) { - // Memory layout: [token][head][dim] with innermost dimension first - size_t elements_per_token = num_heads * head_size; - size_t token = i / elements_per_token; - size_t within_token = i % elements_per_token; - size_t head = within_token / head_size; - size_t dim = within_token % head_size; - - GPU_DEBUG_LOG << " Index[" << i << "]: token=" << token << " head=" << head << " dim=" << dim - << " | actual=" << actual << " expected=" << expected << " error=" << error; - - // Tag each type - std::vector tags; - if (std::isnan(actual)) tags.push_back("ACTUAL_NaN"); - if (std::isnan(expected)) tags.push_back("EXPECTED_NaN"); - if (std::isinf(actual)) tags.push_back("ACTUAL_INF"); - if (std::isinf(expected)) tags.push_back("EXPECTED_INF"); - if (!std::isnan(actual) && !std::isinf(actual) && std::fabs(actual) > 1.0f) tags.push_back("ACTUAL_>1.0"); - if (!std::isnan(expected) && !std::isinf(expected) && std::fabs(expected) > 1.0f) tags.push_back("EXPECTED_>1.0"); - if (error > 1.0f) tags.push_back("ERROR_>1.0"); - - if (!tags.empty()) { - GPU_DEBUG_LOG << " ["; - for (size_t t = 0; t < tags.size(); t++) { - if (t > 0) { - GPU_DEBUG_LOG << ", "; - } - GPU_DEBUG_LOG << tags[t]; - } - GPU_DEBUG_LOG << "]"; - } - GPU_DEBUG_LOG << std::endl; - } - } - } - } - - // Print error distribution by 1024-element blocks - static void print_error_distribution(const ov::float16* mem_ptr, - const std::vector& ref_output, - float tolerance) { - GPU_DEBUG_LOG << "\nError distribution (by 1024-element blocks):" << std::endl; - size_t block_size = 1024; - size_t total_elements = ref_output.size(); - for (size_t block = 0; block < (total_elements + block_size - 1) / block_size && block < 10; block++) { - int block_mismatches = 0; - size_t start = block * block_size; - size_t end = std::min(start + block_size, total_elements); - for (size_t i = start; i < end; i++) { - float error = std::fabs(static_cast(mem_ptr[i]) - static_cast(ref_output[i])); - if (error > tolerance) block_mismatches++; - } - GPU_DEBUG_LOG << " Block " << block << " [" << start << "-" << end << "): " - << block_mismatches << "/" << (end - start) - << " (" << (100.0 * block_mismatches / (end - start)) << "%)" << std::endl; - } - } - - // Print detailed XAttention error analysis - static void print_xattention_error_details(const XAttentionErrorStats& stats, - const ov::float16* mem_ptr, - const std::vector& ref_output, - size_t num_heads, - size_t head_size, - float tolerance) { - auto& engine = get_test_engine(); - auto arch = engine.get_device_info().arch; - std::string arch_name = (arch == gpu_arch::xe2) ? "Xe2" : (arch == gpu_arch::xe3) ? "Xe3" : "Xe1"; - size_t total_elements = ref_output.size(); - int allowed_mismatches = int(total_elements * 0.04); - - GPU_DEBUG_LOG << "\n=== XAttention Data Comparison Failed ===" << std::endl; - GPU_DEBUG_LOG << "GPU Architecture: " << arch_name << " (arch=" << static_cast(arch) << ")" << std::endl; - GPU_DEBUG_LOG << "Total elements: " << total_elements << std::endl; - GPU_DEBUG_LOG << "\nError Summary:" << std::endl; - GPU_DEBUG_LOG << " Mismatches (> tolerance): " << stats.mismatch_count << " (" - << (100.0 * stats.mismatch_count / total_elements) << "%)" << std::endl; - GPU_DEBUG_LOG << " Allowed mismatches: " << allowed_mismatches << " (4%)" << std::endl; - GPU_DEBUG_LOG << " Large errors (> 0.1): " << stats.large_error_count << " (" - << (100.0 * stats.large_error_count / total_elements) << "%)" << std::endl; - GPU_DEBUG_LOG << " Catastrophic (NaN/Inf/>1.0): " << stats.catastrophic_count << std::endl; - - GPU_DEBUG_LOG << "\nAbnormal Value Analysis:" << std::endl; - GPU_DEBUG_LOG << " Actual output (GPU):" << std::endl; - print_abnormal_value_coords("NaN values", stats.actual_nan_coords, stats.actual_nan_count); - print_abnormal_value_coords("INF values", stats.actual_inf_coords, stats.actual_inf_count); - print_abnormal_value_coords("Values > 1.0", stats.actual_gt1_coords, stats.actual_gt1_count); - GPU_DEBUG_LOG << " Expected output (CPU reference):" << std::endl; - print_abnormal_value_coords("NaN values", stats.expected_nan_coords, stats.expected_nan_count); - print_abnormal_value_coords("INF values", stats.expected_inf_coords, stats.expected_inf_count); - print_abnormal_value_coords("Values > 1.0", stats.expected_gt1_coords, stats.expected_gt1_count); - GPU_DEBUG_LOG << " Error magnitude:" << std::endl; - GPU_DEBUG_LOG << " Errors > 1.0: " << stats.error_gt1_count << std::endl; - GPU_DEBUG_LOG << "\nError Magnitudes:" << std::endl; - GPU_DEBUG_LOG << " Tolerance threshold: " << tolerance << std::endl; - GPU_DEBUG_LOG << " Max error: " << stats.max_error << std::endl; - GPU_DEBUG_LOG << " Avg error (all): " << stats.avg_error << std::endl; - GPU_DEBUG_LOG << " Avg error (mismatches only): " << stats.avg_mismatch_error << std::endl; - GPU_DEBUG_LOG << "First mismatch at index " << stats.first_mismatch_idx << ":" << std::endl; - GPU_DEBUG_LOG << " Actual: " << stats.first_mismatch_actual << std::endl; - GPU_DEBUG_LOG << " Expected: " << stats.first_mismatch_expected << std::endl; - GPU_DEBUG_LOG << " Error: " << std::fabs(stats.first_mismatch_actual - stats.first_mismatch_expected) << std::endl; - - // Sample first 10 mismatches - GPU_DEBUG_LOG << "\nFirst 10 mismatches:" << std::endl; - int sample_count = 0; - for (size_t i = 0; i < total_elements && sample_count < 10; i++) { - float actual = static_cast(mem_ptr[i]); - float expected = static_cast(ref_output[i]); - float error = std::fabs(actual - expected); - if (error > tolerance) { - GPU_DEBUG_LOG << " [" << i << "] actual=" << actual - << " expected=" << expected - << " error=" << error << std::endl; - sample_count++; - } - } - - print_catastrophic_errors(mem_ptr, ref_output, num_heads, head_size, stats.catastrophic_count); - - // Analyze error type - GPU_DEBUG_LOG << "\nError Analysis:" << std::endl; - if (stats.catastrophic_count > 0) { - GPU_DEBUG_LOG << " ERROR TYPE: CATASTROPHIC - Contains NaN/Inf or very large errors" << std::endl; - GPU_DEBUG_LOG << " This indicates a serious bug, not just precision issues." << std::endl; - } else if (stats.large_error_count > stats.mismatch_count * 0.5) { - GPU_DEBUG_LOG << " ERROR TYPE: LARGE - Most mismatches have error > 0.1" << std::endl; - GPU_DEBUG_LOG << " This suggests wrong calculations, not precision drift." << std::endl; - } else { - GPU_DEBUG_LOG << " ERROR TYPE: PRECISION - Most errors are small" << std::endl; - GPU_DEBUG_LOG << " This suggests accumulated floating-point errors." << std::endl; - } - - // Comment on tolerance metric - GPU_DEBUG_LOG << "\nTolerance Metric Analysis:" << std::endl; - GPU_DEBUG_LOG << " Using: Absolute error with threshold " << tolerance << std::endl; - GPU_DEBUG_LOG << " Input range: Normal(0, 0.1), typically [-0.3, 0.3]" << std::endl; - GPU_DEBUG_LOG << " Relative error at typical values: ~" << (tolerance / 0.1 * 100) << "%" << std::endl; - GPU_DEBUG_LOG << " Verdict: Tolerance is reasonable for FP16 attention calculations" << std::endl; - - print_error_distribution(mem_ptr, ref_output, tolerance); - GPU_DEBUG_LOG << "========================================\n" << std::endl; - } - -public: - static bool check_cm_available() { - auto& engine = get_test_engine(); - ExecutionConfig config = get_test_default_config(engine); - return cldnn::check_cm_jit_support(engine, config) && - engine.get_device_info().supports_immad; - } -}; - -struct paged_attention_test_params { - std::vector subsequences; - int num_heads; - int num_kv_heads; - int k_head_size; - int v_head_size; - int block_size; - int sliding_window_size; - bool kv_cache_compression; - ov::internal::CacheQuantMode key_cache_quant_mode; - bool dynamic_paddings; - ScoresMode scores_mode; - CacheRotationDescriptor rotation_config; - bool disable_flashattn_v2; - bool has_adaptive_rkv = false; - int start_size = 0; // Common start_size for all sequences - std::vector evictable_sizes; // Per-sequence evictable sizes - - // XAttention-related params are grouped below. - bool has_xattention = false; - std::optional> xattention_threshold = std::nullopt; - std::optional> xattention_block_size = std::nullopt; - - ov::element::Type kv_cache_precision = ov::element::dynamic; - - - // test query-to-query attention bias - bool has_qq_bias = false; - QueryToQueryAttentionDescriptor qq_bias_config = {}; - bool run_reference = true; - - // optional token_type_ids passed to PagedAttention; if set (non-empty), it is forwarded - // to the op as the TOKEN_TYPE_IDS input. When std::nullopt, a default {0} buffer is used. - std::optional> token_type_ids = std::nullopt; - - // optional deterministic data for token type feature validation - std::optional token_type_test_data = std::nullopt; -}; +#include "paged_attention_gpu_test.hpp" class paged_attention_test : public PagedAttentionTest {}; TEST_P(paged_attention_test, basic) { @@ -2965,70 +63,12 @@ TEST_P(qq_bias_test, basic) { execute(p); } -class paged_attention_token_type_test : public PagedAttentionTest {}; -TEST_P(paged_attention_token_type_test, basic) { - auto p = GetParam(); - - execute(p); -} - -const auto ENABLE_CACHE_COMPRESSION = true; -const auto DISABLE_CACHE_COMPRESSION = false; -const auto DISABLE_SCORES = ScoresMode::DISABLED; -const auto ENABLE_SCORES = ScoresMode::LAST_TOKEN; -const auto ENABLE_SCORES_SNAPKV = ScoresMode::SNAPKV; -const auto PER_BLOCK_ROTATION = CacheRotationDescriptor{ true, true }; -const auto PER_TOKEN_ROTATION = CacheRotationDescriptor{ true, false }; -const auto DISABLE_ROTATION = CacheRotationDescriptor{ false, false }; -const auto STATIC_INPUT_PAD = false; -const auto DYNAMIC_INPUT_PAD = true; -const auto ENABLE_FA_V2 = false; -const auto DISABLE_FA_V2 = true; -const auto ENABLE_DIVERSITY = true; -const auto DISABLE_DIVERSITY = false; -const auto ENABLE_QQ_BIAS = QueryToQueryAttentionDescriptor{{{{1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1}}}, {0, 16}}; static paged_attention_test_params disable_reference_compare(paged_attention_test_params p) { p.run_reference = false; return p; } -static paged_attention_test_params make_token_type_test_param(const test::TestData& data, int sliding_window_size, bool disable_flashattn_v2) { - paged_attention_test_params p{{{static_cast(data.tokenTypes.size()), 0}}, - 1, - 1, - 32, - 32, - 16, - sliding_window_size, - DISABLE_CACHE_COMPRESSION, - ov::internal::CacheQuantMode::BY_TOKEN, - STATIC_INPUT_PAD, - DISABLE_SCORES, - DISABLE_ROTATION, - disable_flashattn_v2}; - p.token_type_ids = std::vector(data.tokenTypes.begin(), data.tokenTypes.end()); - p.token_type_test_data = data; - return p; -} - -static std::vector make_token_type_test_params(const std::vector& test_data, int sliding_window_size) { - std::vector params; - params.reserve(test_data.size() * 2); - for (const auto& data : test_data) { - params.push_back(make_token_type_test_param(data, sliding_window_size, ENABLE_FA_V2)); - params.push_back(make_token_type_test_param(data, sliding_window_size, DISABLE_FA_V2)); - } - return params; -} - -static std::string get_token_type_test_name(const testing::TestParamInfo& obj) { - const auto& p = obj.param; - OPENVINO_ASSERT(p.token_type_test_data.has_value()); - return p.token_type_test_data->name + "_SW" + std::to_string(p.sliding_window_size) + - (p.disable_flashattn_v2 == DISABLE_FA_V2 ? "_FlashAttnV2Disabled" : "_FlashAttnV2Enabled"); -} - static std::vector gen_tokens_ids_test_data(size_t seq_len, int num_images, size_t avg_img_len) { std::vector v(seq_len, 0); size_t gap = seq_len / (num_images + 1); @@ -3045,17 +85,6 @@ static std::vector gen_tokens_ids_test_data(size_t seq_len, int num_ima return v; } -INSTANTIATE_TEST_SUITE_P(smoke_paged_attention_token_type, - paged_attention_token_type_test, - ::testing::ValuesIn(make_token_type_test_params(test::PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1(), 0)), - get_token_type_test_name); - -INSTANTIATE_TEST_SUITE_P( - smoke_paged_attention_token_type_sliding_window, - paged_attention_token_type_test, - ::testing::ValuesIn(make_token_type_test_params(test::PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1SlidingWindowSize5(), 5)), - get_token_type_test_name); - INSTANTIATE_TEST_SUITE_P(smoke_paged_attention, paged_attention_test, ::testing::ValuesIn(std::vector{ /* with scores output, use SnapKV */ paged_attention_test_params{ {{10, 0}}, 2, 2, 64, 64, 16, 0, DISABLE_CACHE_COMPRESSION, ov::internal::CacheQuantMode::BY_TOKEN, STATIC_INPUT_PAD, ENABLE_SCORES_SNAPKV, DISABLE_ROTATION, ENABLE_FA_V2, false, 0, {}, false }, // 1st token diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp new file mode 100644 index 000000000000..05a992ad96a2 --- /dev/null +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp @@ -0,0 +1,2941 @@ +// Copyright (C) 2018-2026 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "openvino/runtime/properties.hpp" +#include "openvino/runtime/tensor.hpp" +#include "primitive_inst.h" +#include "random_generator.hpp" +#include "test_utils.h" + +using namespace cldnn; +using namespace ov::intel_gpu; +using namespace ::tests; + +// Enable detailed xattention debugging (dumps, extra comparison info) +// Default: OFF (0). Set to 1 for investigation. +#ifndef XATTENTION_DEBUG_VERBOSE +# define XATTENTION_DEBUG_VERBOSE 0 +#endif + +/* + * PagedAttention inputs: + * [0]: query, shape: [batch_size_in_tokens, num_heads * head_size], type: f16 + * [1]: key, shape: [batch_size_in_tokens, num_kv_heads * head_size], type: f16 + * [2]: value, shape: [batch_size_in_tokens, num_kv_heads * head_size], type: f16 + * [3]: key_cache, shape: [num_blocks, num_kv_heads, head_size, block_size], type: f16 or i8 + * [4]: value_cache, shape: [num_blocks, num_kv_heads, block_size, head_size], type: f16 or i8 + * [5]: past_lens, shape: [batch_size_in_sequences], type: i32 + * [6]: subsequence_begins, shape: [batch_size_in_sequences + 1], type: i32 + * [7]: block_indices, shape: [num_blocks], type: i32 + * [8]: block_indices_begins, shape: [batch_size_in_sequences + 1], type: i32 + * [9]: scale, optional + * [10]: sliding_window, optional + * [11]: alibi_slopes, optional + * [12]: max_context_len, shape: [], type: i32 + * [13]: score_aggregation_window, optional, shape: [batch_size_in_sequences], type: i32 + * [14]: rotated_block_indices, optional, shape: [num_rotated_blocks], type: i32 + * [15]: rotation_deltas, optional, shape: [num_rotated_blocks, BLOCK_SIZE] or [num_rotated_blocks, 1], type: i32 + * [16]: rotation_trig_lut, optional, shape: [max_num_batched_tokens, head_size], type: f16 + * [17]: adaptive_rkv_start_size, optional, shape: [], type: i32 + * [18]: adaptive_rkv_evictable_sizes, optional, shape: [batch_size_in_sequences], type: i32 + * [19]: adaptive_rkv_diversity_block_set_indices, optional, shape: [total_blocks], type: i32 + * [20]: adaptive_rkv_diversity_block_set_indices_begins, optional, shape: [batch_size_in_sequences + 1], type: i32 + * [21]: qq_bias, optional, shape: [total_mask_size], type: u8 + * [22]: qq_bias_begins, optional, shape: [batch_size_in_sequences + 1], type: i32 + */ + +enum class ScoresMode { DISABLED = 0, LAST_TOKEN, SNAPKV }; + +struct SubsequenceDescriptor { + int num_tokens; + int past_len; +}; + +struct CacheRotationDescriptor { + bool apply_rotation; + // configures 2nd dimension of rotation_deltas + // if per_block is true, single value is used for all tokens inside the block + // otherwise, each token uses an independent value + bool per_block; +}; + +struct QueryToQueryAttentionDescriptor { + std::vector> qq_bias; + std::vector qq_bias_begins; +}; + +struct PagedAttentionManager { + int num_heads; + int num_kv_heads; + int k_head_size; + int v_head_size; + int block_size; + int sliding_window_size; + bool kv_cache_compression; + ov::internal::CacheQuantMode key_cache_quant_mode; + ov::element::Type kv_cache_precision = ov::element::dynamic; + bool has_score_aggregation; + CacheRotationDescriptor rotation_config; + std::vector subsequence_descs; + + // per-subsequence QKV inputs + std::vector> query_data; // {[1, num_tokens, num_heads, k_head_size], ..} + std::vector> key_data; // {[1, past_len + num_tokens, num_heads, k_head_size], ..} + std::vector> value_data; // {[1, past_len + num_tokens, num_heads, v_head_size], ..} + + // common PA inputs + std::vector past_lens; + std::vector subsequence_begins; + std::vector block_indices; + std::vector block_indices_begins; + std::vector max_context_len; + std::vector score_aggregation_window; + + // score aggregation related inputs + std::vector score_aggregation; + + // rotation related inputs + std::vector rotated_block_indices; + std::vector rotation_deltas; + std::vector rotation_trig_lut; + + // xattention related inputs + bool has_xattention; + std::vector xattention_threshold; + std::vector xattention_block_size; + std::vector xattention_stride; + + std::vector sinks; + + int adaptive_rkv_start_size = 0; + std::vector adaptive_rkv_evictable_sizes; + std::vector adaptive_rkv_diversity_block_set_indices; + std::vector adaptive_rkv_diversity_block_set_indices_begins; + + std::vector> qq_bias; + std::vector qq_bias_begins; + + // optional token_type_ids; when empty, a default single-element {0} buffer is used + std::vector token_type_ids; + cldnn::engine& test_engine; + cldnn::stream& test_stream; + tests::random_generator& rg; + + PagedAttentionManager(tests::random_generator& rg, + cldnn::engine& engine, + cldnn::stream& stream, + const std::vector& subsequence_descs, + int num_heads, + int num_kv_heads, + int k_head_size, + int v_head_size, + int block_size, + int sliding_window_size, + bool kv_cache_compression, + ov::internal::CacheQuantMode key_cache_quant_mode, + bool has_score_aggregation, + bool has_xattention, + CacheRotationDescriptor rotation_config, + ov::element::Type kv_cache_precision = ov::element::dynamic) + : num_heads(num_heads), + num_kv_heads(num_kv_heads), + k_head_size(k_head_size), + v_head_size(v_head_size), + block_size(block_size), + sliding_window_size(sliding_window_size), + kv_cache_compression(kv_cache_compression), + key_cache_quant_mode(key_cache_quant_mode), + kv_cache_precision(kv_cache_precision), + has_score_aggregation(has_score_aggregation), + rotation_config(rotation_config), + subsequence_descs(subsequence_descs), + has_xattention(has_xattention), + test_engine(engine), + test_stream(stream), + rg(rg) { + // init subsequence_begins and block_indices_begins + subsequence_begins.push_back(0); + block_indices_begins.push_back(0); + + int max_len = 0; + for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { + const auto& subsequence_desc = subsequence_descs[i]; + max_len = std::max(max_len, subsequence_desc.num_tokens + subsequence_desc.past_len); + + query_data.push_back(generate_realistic_data(num_heads, subsequence_desc.num_tokens, k_head_size)); + key_data.push_back(generate_realistic_data(num_kv_heads, subsequence_desc.num_tokens + subsequence_desc.past_len, k_head_size)); + value_data.push_back(generate_realistic_data(num_kv_heads, subsequence_desc.num_tokens + subsequence_desc.past_len, v_head_size)); + + past_lens.push_back(subsequence_desc.past_len); + int subsequence_start_pos = subsequence_begins[i]; + int subsequence_end_pos = subsequence_start_pos + subsequence_desc.num_tokens; + subsequence_begins.push_back(subsequence_end_pos); + + int subsequence_length = subsequence_desc.num_tokens + subsequence_desc.past_len; + int required_blocks = ceil_div(subsequence_length, block_size); + int start_block_idx = block_indices.empty() ? 0 : block_indices.back() + 1; + int end_block_idx = start_block_idx + required_blocks; + for (int block_idx = start_block_idx; block_idx < end_block_idx; block_idx++) { + block_indices.push_back(block_idx); + } + + int block_indices_start_pos = block_indices_begins[i]; + int block_indices_end_pos = block_indices_start_pos + required_blocks; + block_indices_begins.push_back(block_indices_end_pos); + } + max_context_len.push_back(max_len); + + if (rotation_config.apply_rotation) { + // iterate over KV-cache blocks and apply cache rotation to every second + // fully occupied block + for (size_t i = 0; i < subsequence_descs.size(); i++) { + const auto& subsequence_desc = subsequence_descs[i]; + int past_len = subsequence_desc.past_len; + int start_block_idx = block_indices_begins[i]; + for (int block_idx = 1; block_idx < past_len / block_size; block_idx++) { + if (block_idx % 2 != 0) { + rotated_block_indices.push_back(start_block_idx + block_idx); + } + } + } + + if (!rotated_block_indices.empty()) { + rotation_deltas = generate_rotation_deltas_data(rg, max_context_len[0], rotated_block_indices.size(), block_size, rotation_config.per_block); + rotation_trig_lut = generate_rotation_trig_lut_data(rg, max_context_len[0], k_head_size); + } + } + + if (has_score_aggregation) { + for (const auto& subsequence_desc : subsequence_descs) { + const auto max_tokens = 10; + auto max_window_size = std::min(subsequence_desc.num_tokens, max_tokens); + auto window_size = rg.generate_random_val(1, max_window_size); + score_aggregation.push_back(window_size); + } + } + } + + memory::ptr get_query_memory() { + return get_QKV_memory(query_data, num_heads, k_head_size, false); + } + + memory::ptr get_key_memory() { + return get_QKV_memory(key_data, num_kv_heads, k_head_size, true); + } + + memory::ptr get_value_memory() { + return get_QKV_memory(value_data, num_kv_heads, v_head_size, true); + } + + memory::ptr get_key_cache_memory_cm() { + constexpr int kv_sub_block_size = 16; + auto key_cache_dt = kv_cache_compression ? data_types::i8 : data_types::f16; + const int head_size = k_head_size; + int adjusted_head_size = head_size; + int adjusted_block_size = block_size; + if (kv_cache_compression) { + if (key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL) { + OPENVINO_ASSERT(block_size % kv_sub_block_size == 0); + adjusted_block_size += block_size / kv_sub_block_size * 4; + } else { + adjusted_head_size += 4; + } + } + + const auto num_blocks = block_indices.back() + 1; + auto key_cache_shape = ov::PartialShape{static_cast(num_blocks), + static_cast(num_kv_heads), + static_cast(adjusted_block_size), + static_cast(adjusted_head_size)}; + auto key_cache_layout = layout{key_cache_shape, key_cache_dt, format::bfyx}; + auto memory = test_engine.allocate_memory(key_cache_layout); + + for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { + const int past_len = subsequence_descs[i].past_len; + if (past_len == 0) + continue; + + const int blocks_num = ceil_div(past_len + 1, block_size); + const int start_block_idx = block_indices[block_indices_begins[i]]; + + for (int block_idx = 0; block_idx < blocks_num; block_idx++) { + const int last_token_idx = (block_idx == blocks_num - 1) ? (past_len - block_size * block_idx) : block_size; + + for (int token_idx = 0; token_idx < last_token_idx; token_idx++) { + for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { + const size_t input_token_offset = static_cast(block_idx) * block_size + token_idx; + ov::float16* src_ptr = + key_data[i].data() + input_token_offset * static_cast(num_kv_heads) * head_size + static_cast(head_idx) * head_size; + + if (!kv_cache_compression) { + const size_t base = (static_cast(start_block_idx + block_idx) * num_kv_heads * block_size * head_size) + + (static_cast(head_idx) * block_size * head_size); + const size_t off = base + static_cast(token_idx) * head_size; + set_values(test_stream, memory, src_ptr, head_size, off); + } else if (key_cache_quant_mode == ov::internal::CacheQuantMode::BY_TOKEN) { + // Compressed Key cache layout: + // logical shape: [num_blocks, num_kv_heads, block_size, adjusted_head_size], dt=i8 (adjusted_head_size=head_size+4). + // Per (block, head) region starts at block_base_i8, byte-packed as: + // data: block_base_i8 + t*head_size (u8 semantics), size=head_size bytes + // scale: scale_base_i8 + t*sizeof(fp16) (fp16), indexed as (scale_base_i8/2 + t) + // zp: zp_base_i8 + t*sizeof(fp16) (fp16), indexed as (zp_base_i8/2 + t) + // xattention quant: q∈[0..255], dequant x ≈ (q - zp) * scale, where scale=(max-min)/255, zp=(-min)*255/(max-min). + auto [qdata, scale, zp] = quantize_data(src_ptr, head_size, false, true); + int8_t* qptr = reinterpret_cast(qdata.data()); + + const size_t block_stride_i8 = static_cast(adjusted_head_size) * block_size; + const size_t block_base_i8 = (static_cast(start_block_idx + block_idx) * num_kv_heads + head_idx) * block_stride_i8; + + const size_t data_off_i8 = block_base_i8 + token_idx * head_size; + set_values(test_stream, memory, qptr, head_size, data_off_i8); + + const size_t scale_base_i8 = block_base_i8 + head_size * block_size; + const size_t zp_base_i8 = scale_base_i8 + block_size * sizeof(ov::float16); + + const size_t scale_off_f16 = scale_base_i8 / 2 + token_idx; + const size_t zp_off_f16 = zp_base_i8 / 2 + token_idx; + + set_values(test_stream, memory, &scale, 1, scale_off_f16); + set_values(test_stream, memory, &zp, 1, zp_off_f16); + } else { + // Compressed Key cache layout for BY_CHANNEL: + // shape: [num_blocks, num_kv_heads, adjusted_block_size, head_size], dt=i8. + // Per (block, head): + // data bytes region : [block_size * head_size] + // scale fp16 region per-subblock per-channel : [(block_size / sub_block) * head_size] + // zp fp16 region per-subblock per-channel : [(block_size / sub_block) * head_size] + const size_t block_stride_i8 = static_cast(adjusted_block_size) * static_cast(head_size); + const size_t block_base_i8 = + (static_cast(start_block_idx + block_idx) * static_cast(num_kv_heads) + static_cast(head_idx)) * + block_stride_i8; + + const int subblock_count = block_size / kv_sub_block_size; + const size_t scale_base_i8 = block_base_i8 + static_cast(block_size) * static_cast(head_size); + const size_t zp_base_i8 = + scale_base_i8 + static_cast(subblock_count) * static_cast(head_size) * sizeof(ov::float16); + + for (int channel = 0; channel < head_size; channel++) { + for (int sub_start = 0; sub_start < last_token_idx; sub_start += kv_sub_block_size) { + const int cur_sub_block_size = std::min(kv_sub_block_size, last_token_idx - sub_start); + std::vector token_block(cur_sub_block_size); + + for (int t = 0; t < cur_sub_block_size; t++) { + const size_t input_token_offset = static_cast(block_idx) * block_size + static_cast(sub_start + t); + token_block[t] = *(key_data[i].data() + input_token_offset * static_cast(num_kv_heads) * head_size + + static_cast(head_idx) * head_size + channel); + } + + auto [quantized_data, scale, zp] = quantize_data(token_block.data(), cur_sub_block_size, true, true); + + for (int t = 0; t < cur_sub_block_size; t++) { + const size_t data_off_i8 = block_base_i8 + static_cast(sub_start + t) * head_size + channel; + set_values(test_stream, memory, quantized_data.data() + t, 1, data_off_i8); + } + + const size_t sub_idx = static_cast(sub_start / kv_sub_block_size); + const size_t scale_off_f16 = scale_base_i8 / 2 + sub_idx * static_cast(head_size) + channel; + const size_t zp_off_f16 = zp_base_i8 / 2 + sub_idx * static_cast(head_size) + channel; + + set_values(test_stream, memory, &scale, 1, scale_off_f16); + set_values(test_stream, memory, &zp, 1, zp_off_f16); + } + } + } + } + } + } + } + return memory; + } + + bool is_int4_kv_cache() const { + return kv_cache_precision == ov::element::u4 || kv_cache_precision == ov::element::i4; + } + + memory::ptr get_key_cache_memory() { + auto key_cache_dt = data_types::f16; + auto adjusted_head_size = k_head_size; + auto adjusted_block_size = block_size; + if (kv_cache_compression) { + key_cache_dt = is_int4_kv_cache() ? data_types::u8 : data_types::i8; + const int scale_zp_bytes = 4; // 2 fp16 values (scale + zp) = 4 bytes + if (key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL) { + if (is_int4_kv_cache()) { + // u4/i4 BY_CHANNEL: block_size dim is packed (2 u4 tokens per byte) + scale/zp. + // Shape: [num_blocks, kv_heads, k_head_size, block_size/2 + 4] + // head_size is NOT packed (outer dim), block_size IS packed (inner dim). + adjusted_head_size = k_head_size; // NOT packed + adjusted_block_size = block_size / 2 + scale_zp_bytes; // packed + scale/zp + } else { + adjusted_block_size += scale_zp_bytes; + } + } else { + if (is_int4_kv_cache()) { + // Scale/zp for BY_TOKEN: 2 fp16 values = 4 bytes appended to head_size dim. + adjusted_head_size = k_head_size / 2 + scale_zp_bytes; + } else { + adjusted_head_size += scale_zp_bytes; + } + } + } + + auto num_blocks = block_indices.back() + 1; + auto key_cache_shape = ov::PartialShape{num_blocks, num_kv_heads, adjusted_head_size, adjusted_block_size}; + auto key_cache_layout = layout{key_cache_shape, key_cache_dt, format::bfyx}; + auto memory = test_engine.allocate_memory(key_cache_layout); + for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { + int past_len = subsequence_descs[i].past_len; + if (past_len != 0) { + int blocks_num = ceil_div(past_len + 1, block_size); + int start_block_idx = block_indices[block_indices_begins[i]]; + for (int block_idx = 0; block_idx < blocks_num; block_idx++) { + int last_token_idx = block_idx == blocks_num - 1 ? (past_len - block_size * block_idx) : block_size; + // quantize by channel + if (kv_cache_compression && key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL) { + if (is_int4_kv_cache()) { + // INT4 BY_CHANNEL: packed layout [num_blocks, kv_heads, k_head_size, block_size/2+4] + // block_size dim is packed: 2 u4 tokens per byte along innermost dim. + // Comp region at [d, block_size/2..block_size/2+3]: 2 fp16 = inv_scale, zp per head dim d. + const int packed_block = block_size / 2; + for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { + for (int d = 0; d < k_head_size; d++) { + // Gather values for this head dim across all tokens in this block + std::vector vals(block_size, 0.f); + for (int t = 0; t < last_token_idx; ++t) { + size_t in_off = (static_cast(block_idx) * block_size + t) * num_kv_heads * k_head_size + head_idx * k_head_size; + vals[t] = static_cast(key_data[i].data()[in_off + d]); + } + // Quantize to u4 + float min_v = vals[0], max_v = vals[0]; + for (int t = 1; t < last_token_idx; ++t) { + min_v = std::min(min_v, vals[t]); + max_v = std::max(max_v, vals[t]); + } + float range = (max_v == min_v) ? 0.001f : (max_v - min_v); + const float min_range = std::abs(max_v) * 0.1f; + if (range <= min_range) + range += std::max(1.0f, min_range); + float scale = 15.0f / range; + float zp_val = -min_v * scale; + std::vector q(last_token_idx); + for (int t = 0; t < last_token_idx; ++t) { + int v = static_cast(std::nearbyint(vals[t] * scale + zp_val)); + q[t] = static_cast(std::max(0, std::min(15, v))); + } + + const size_t block_offset = + static_cast(start_block_idx + block_idx) * num_kv_heads * k_head_size * adjusted_block_size + + head_idx * k_head_size * adjusted_block_size; + const size_t row_offset = block_offset + d * adjusted_block_size; + + // Pack 2 u4 tokens per byte: token t0 in lower nibble, t1 in upper nibble + std::vector packed_data(packed_block, 0); + for (int t = 0; t < last_token_idx; ++t) { + int byte_idx = t / 2; + if (t % 2 == 0) + packed_data[byte_idx] = q[t] & 0xFu; + else + packed_data[byte_idx] |= (q[t] & 0xFu) << 4; + } + set_values(test_stream, memory, packed_data.data(), static_cast(packed_block), row_offset); + + // Write comp: 2 fp16 (inv_scale, zp) at row_offset + packed_block + const size_t comp_offset_fp16 = (row_offset + packed_block) / 2; + ov::float16 inv_scale_val = static_cast(1.0f / scale); + ov::float16 fp16_zp = static_cast(zp_val); + set_values(test_stream, memory, &inv_scale_val, 1, comp_offset_fp16 + 0); + set_values(test_stream, memory, &fp16_zp, 1, comp_offset_fp16 + 1); + } + } + } else { + for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { + for (int k_head_size_idx = 0; k_head_size_idx < k_head_size; k_head_size_idx++) { + std::vector token_block(block_size); + for (int token_idx = 0; token_idx < last_token_idx; ++token_idx) { + size_t input_token_offset = block_idx * block_size + token_idx; + token_block[token_idx] = + *(key_data[i].data() + input_token_offset * num_kv_heads * k_head_size + head_idx * k_head_size + k_head_size_idx); + } + auto [quantized_data, scale, zp] = quantize_data(token_block.data(), last_token_idx, true); + size_t output_block_offset = (start_block_idx + block_idx) * num_kv_heads * adjusted_head_size * adjusted_block_size + + head_idx * adjusted_head_size * adjusted_block_size; + size_t output_offset = output_block_offset + k_head_size_idx * adjusted_block_size; + set_values(test_stream, memory, quantized_data.data(), last_token_idx, output_offset); + size_t comp_offset = (output_offset + block_size) / 2; + set_values(test_stream, memory, &scale, 1, comp_offset); + set_values(test_stream, memory, &zp, 1, comp_offset + 1); + } + } + } + } + for (int token_idx = 0; token_idx < last_token_idx; token_idx++) { + for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { + if (kv_cache_compression) { + if (key_cache_quant_mode == ov::internal::CacheQuantMode::BY_TOKEN) { + // quantize by token + size_t input_token_offset = block_idx * block_size + token_idx; + ov::float16* data_ptr = key_data[i].data() + input_token_offset * num_kv_heads * k_head_size + head_idx * k_head_size; + // shape: [num_blocks, num_kv_heads, adjusted_head_size, block_size] + size_t output_block_offset = (start_block_idx + block_idx) * num_kv_heads * adjusted_head_size * block_size + + head_idx * adjusted_head_size * block_size; + + if (is_int4_kv_cache()) { + // INT4 BY_TOKEN: [num_blocks, kv_heads, k_head_size/2+8, block_size] u8 + // Kernel packing (SUBGROUP_SIZE=16): + // Y = pack_group*16 + sglid, where pack_group = d/(2*16), sglid = d%16 + // lower 4bit = q(dim[pack_group*32+sglid]) + // upper 4bit = q(dim[pack_group*32+sglid+16]) + // Scale/ZP: fp16 in comp region at Y=packed_head_size.. + // inv_scale[t] at fp16 idx (comp_base/2 + t) + // zp[t] at fp16 idx (comp_base/2 + block_size + t) + const int packed_head_size = k_head_size / 2; + constexpr int SG = 16; // SUBGROUP_SIZE + // Compute per-token min/max, then scale/zp in u4 range [0,15] + float min_v = std::numeric_limits::max(); + float max_v = -std::numeric_limits::max(); + for (int d = 0; d < k_head_size; d++) { + float v = static_cast(data_ptr[d]); + min_v = std::min(min_v, v); + max_v = std::max(max_v, v); + } + float range = (max_v == min_v) ? 0.001f : (max_v - min_v); + const float min_range = std::abs(max_v) * 0.1f; + if (range <= min_range) + range += std::max(1.0f, min_range); + float token_scale = 15.0f / range; + float token_zp = -min_v * token_scale; + std::vector q(k_head_size); + for (int d = 0; d < k_head_size; d++) { + int v = static_cast(std::nearbyint(static_cast(data_ptr[d]) * token_scale + token_zp)); + q[d] = static_cast(std::max(0, std::min(15, v))); + } + // Pack and write: Y=pack_group*SG+sglid → (lower=q[d0], upper=q[d1]) + for (int y = 0; y < packed_head_size; y++) { + int sglid_val = y % SG; + int pack_group = y / SG; + int d0 = pack_group * 2 * SG + sglid_val; + int d1 = d0 + SG; + uint8_t packed_byte = q[d0] & 0xFu; + if (d1 < k_head_size) + packed_byte |= (q[d1] & 0xFu) << 4; + size_t offset = output_block_offset + static_cast(y) * block_size + token_idx; + set_values(test_stream, memory, &packed_byte, 1, offset); + } + // Write inv_scale and zp as fp16 in the comp region + size_t comp_offset_fp16 = (output_block_offset + static_cast(packed_head_size) * block_size) / 2; + ov::float16 fp16_inv_scale = static_cast(1.0f / token_scale); + ov::float16 fp16_zp = static_cast(token_zp); + set_values(test_stream, memory, &fp16_inv_scale, 1, comp_offset_fp16 + token_idx); + set_values(test_stream, memory, &fp16_zp, 1, comp_offset_fp16 + block_size + token_idx); + } else { + auto [quantized_data, scale, zp] = quantize_data(data_ptr, k_head_size); + for (int k_head_size_idx = 0; k_head_size_idx < k_head_size; k_head_size_idx++) { + auto quantized_data_ptr = quantized_data.data() + k_head_size_idx; + + size_t output_offset = output_block_offset + k_head_size_idx * block_size + token_idx; + + set_values(test_stream, memory, quantized_data_ptr, 1, output_offset); + } + size_t comp_offset = (output_block_offset + k_head_size * block_size) / 2; + set_values(test_stream, memory, &scale, 1, comp_offset + token_idx); + set_values(test_stream, memory, &zp, 1, comp_offset + block_size + token_idx); + } + } + } else { + for (int k_head_size_idx = 0; k_head_size_idx < k_head_size; k_head_size_idx++) { + size_t input_token_offset = block_idx * block_size + token_idx; + ov::float16* data_ptr = + key_data[i].data() + input_token_offset * num_kv_heads * k_head_size + head_idx * k_head_size + k_head_size_idx; + + // shape: [num_blocks, num_kv_heads, k_head_size, block_size] + size_t output_offset = (start_block_idx + block_idx) * num_kv_heads * k_head_size * block_size + + head_idx * k_head_size * block_size + k_head_size_idx * block_size + token_idx; + + set_values(test_stream, memory, data_ptr, 1, output_offset); + } + } + } + } + } + } + } + + return memory; + } + + memory::ptr get_value_cache_memory() { + auto value_cache_dt = data_types::f16; + const int head_size = v_head_size; + int scale_zp_bytes = 0; + if (kv_cache_compression) { + value_cache_dt = is_int4_kv_cache() ? data_types::u8 : data_types::i8; + scale_zp_bytes = 4; // 2 fp16 values (scale + zp) = 4 bytes + } + + // For u4 (INT4), values are packed 2 per byte; the physical head size is halved. + // PACKED_ADJUSTED_V_HEAD_SIZE = v_head_size/2 + scales_zp_size = 32 + 4 = 36. + const int adjusted_head_size = is_int4_kv_cache() ? (head_size / 2 + scale_zp_bytes) : (head_size + scale_zp_bytes); + + const auto num_blocks = block_indices.back() + 1; + auto value_cache_shape = ov::PartialShape{static_cast(num_blocks), + static_cast(num_kv_heads), + static_cast(block_size), + static_cast(adjusted_head_size)}; + auto value_cache_layout = layout{value_cache_shape, value_cache_dt, format::bfyx}; + auto memory = test_engine.allocate_memory(value_cache_layout); + + for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { + const int past_len = subsequence_descs[i].past_len; + if (past_len == 0) + continue; + + const int blocks_num = ceil_div(past_len + 1, block_size); + const int start_block_idx = block_indices[block_indices_begins[i]]; + + for (int block_idx = 0; block_idx < blocks_num; block_idx++) { + const int last_token_idx = (block_idx == blocks_num - 1) ? (past_len - block_size * block_idx) : block_size; + + for (int token_idx = 0; token_idx < last_token_idx; token_idx++) { + for (int head_idx = 0; head_idx < num_kv_heads; head_idx++) { + const size_t input_token_offset = static_cast(block_idx) * block_size + token_idx; + + ov::float16* src_ptr = value_data[i].data() + input_token_offset * static_cast(num_kv_heads) * head_size + + static_cast(head_idx) * head_size; + + if (!kv_cache_compression) { + const size_t base = (static_cast(start_block_idx + block_idx) * static_cast(num_kv_heads) * + static_cast(block_size) * static_cast(head_size)) + + (static_cast(head_idx) * static_cast(block_size) * static_cast(head_size)); + const size_t off = base + static_cast(token_idx) * static_cast(head_size); + set_values(test_stream, memory, src_ptr, head_size, off); + } else if (is_int4_kv_cache()) { + // INT4 (u4) BY_TOKEN value cache: inline per-token comp layout. + // [num_blocks, kv_heads, block_size, PACKED_ADJUSTED_V_HEAD_SIZE] u8 + // PACKED_ADJUSTED_V_HEAD_SIZE = v_head_size/2 + 4 = 36 (for v_head_size=64). + // Per token: [packed_data (32 bytes) | scale (fp16) | zp (fp16)] = 36 bytes. + const int packed_head_size = head_size / 2; + + // Quantize entire token: one scale/zp for all head dims (BY_TOKEN) + float min_val = std::numeric_limits::max(); + float max_val = std::numeric_limits::lowest(); + for (int d = 0; d < head_size; d++) { + float v = static_cast(src_ptr[d]); + min_val = std::min(min_val, v); + max_val = std::max(max_val, v); + } + float diff = (max_val == min_val) ? 0.001f : (max_val - min_val); + float min_range = std::abs(max_val * 0.1f); + if (diff <= min_range) + diff += std::max(1.0f, min_range); + float scale_val = 15.0f / diff; + float zp_val = -min_val * scale_val; + ov::float16 inv_scale_fp16 = ov::float16(1.0f / scale_val); + ov::float16 zp_fp16 = ov::float16(zp_val); + + const size_t block_stride = static_cast(adjusted_head_size) * static_cast(block_size); + const size_t block_base = + (static_cast(start_block_idx + block_idx) * static_cast(num_kv_heads) + static_cast(head_idx)) * + block_stride; + + // Token base: each token occupies adjusted_head_size bytes (inline comp) + const size_t token_base = block_base + static_cast(token_idx) * static_cast(adjusted_head_size); + + // Pack pairs of groups: group (g*2) and (g*2+1), each 16 dims wide. + const int num_packed_groups = packed_head_size / 16; + for (int g = 0; g < num_packed_groups; g++) { + for (int lane = 0; lane < 16; lane++) { + int dim_even = (g * 2) * 16 + lane; + int dim_odd = (g * 2 + 1) * 16 + lane; + int q0 = static_cast(std::nearbyint(static_cast(src_ptr[dim_even]) * scale_val + zp_val)); + int q1 = static_cast(std::nearbyint(static_cast(src_ptr[dim_odd]) * scale_val + zp_val)); + q0 = std::max(0, std::min(15, q0)); + q1 = std::max(0, std::min(15, q1)); + uint8_t packed_byte = static_cast((q0 & 0xFu) | (static_cast(q1 & 0xFu) << 4)); + const size_t packed_pos = g * 16 + lane; + set_values(test_stream, memory, &packed_byte, 1, token_base + packed_pos); + } + } + + // Write inline comp: scale (fp16) and zp (fp16) right after packed data + const size_t comp_byte_off = token_base + static_cast(packed_head_size); + const size_t comp_f16_off = comp_byte_off / 2; + set_values(test_stream, memory, &inv_scale_fp16, 1, comp_f16_off); + set_values(test_stream, memory, &zp_fp16, 1, comp_f16_off + 1); + } else { + // Compressed Value cache layout: + // logical shape: [num_blocks, num_kv_heads, block_size, adjusted_head_size], dt=i8 (adjusted_head_size=head_size+4). + // Per (block, head): data at block_base_i8 + t*head_size; scale/zp are fp16 arrays at scale_base_i8/zp_base_i8 + // (fp16 element offsets: scale_base_i8/2 + t, zp_base_i8/2 + t). + // has_xattention uses unsigned [0..255] quant; dequant x ≈ (q - zp) * scale, scale=(max-min)/255, zp=(-min)*255/(max-min). + auto [qdata, scale, zp] = quantize_data(src_ptr, head_size, false, has_xattention); + int8_t* qptr = reinterpret_cast(qdata.data()); + + const size_t block_stride_i8 = static_cast(adjusted_head_size) * static_cast(block_size); + const size_t block_base_i8 = + (static_cast(start_block_idx + block_idx) * static_cast(num_kv_heads) + static_cast(head_idx)) * + block_stride_i8; + + const size_t data_off_i8 = block_base_i8 + static_cast(token_idx) * static_cast(head_size); + set_values(test_stream, memory, qptr, head_size, data_off_i8); + + const size_t scale_base_i8 = block_base_i8 + static_cast(head_size) * static_cast(block_size); + const size_t zp_base_i8 = scale_base_i8 + static_cast(block_size) * sizeof(ov::float16); + + const size_t scale_off_f16 = (scale_base_i8 >> 1) + static_cast(token_idx); + const size_t zp_off_f16 = (zp_base_i8 >> 1) + static_cast(token_idx); + + set_values(test_stream, memory, &scale, 1, scale_off_f16); + set_values(test_stream, memory, &zp, 1, zp_off_f16); + } + } + } + } + } + return memory; + } + + memory::ptr get_past_lens_memory() { + return get_memory_from_vec(past_lens); + } + + memory::ptr get_subsequence_begins_memory() { + return get_memory_from_vec(subsequence_begins); + } + + memory::ptr get_block_indices_memory() { + return get_memory_from_vec(block_indices); + } + + memory::ptr get_block_indices_begins_memory() { + return get_memory_from_vec(block_indices_begins); + } + + memory::ptr get_scale_memory() { + std::vector scale = {ov::float16(get_default_scale())}; + return get_memory_from_vec(scale); + } + + memory::ptr get_sliding_window_memory() { + std::vector sliding_window = {0}; + return get_memory_from_vec(sliding_window); + } + + memory::ptr get_alibi_memory() { + std::vector alibi; + return get_memory_from_vec(alibi); + } + + memory::ptr get_max_context_len_memory() { + return get_memory_from_vec(max_context_len); + } + + memory::ptr get_score_aggregation() { + return get_memory_from_vec(score_aggregation); + } + + memory::ptr get_rotated_block_indices_memory() { + return get_memory_from_vec(rotated_block_indices); + } + + memory::ptr get_rotation_deltas_memory() { + auto mem = get_memory_from_vec(rotation_deltas); + auto layout = mem->get_layout(); + auto last_dim = rotation_config.per_block ? 1 : block_size; + layout.set_partial_shape(ov::PartialShape{static_cast(rotated_block_indices.size()), last_dim}); + + return test_engine.reinterpret_buffer(*mem, layout); + } + + memory::ptr get_rotation_trig_lut_memory() { + auto mem = get_memory_from_vec(rotation_trig_lut); + auto layout = mem->get_layout(); + layout.set_partial_shape(ov::PartialShape{max_context_len[0], k_head_size}); + + if (rotated_block_indices.empty()) { + auto empty_layout = mem->get_layout(); + empty_layout.set_partial_shape(ov::PartialShape{0, k_head_size}); + return test_engine.reinterpret_buffer(*mem, empty_layout); + } + + return test_engine.reinterpret_buffer(*mem, layout); + } + + memory::ptr get_xattention_threshold_memory() { + return get_memory_from_vec(xattention_threshold); + } + + memory::ptr get_xattention_block_size_memory() { + return get_memory_from_vec(xattention_block_size); + } + + memory::ptr get_xattention_stride_memory() { + return get_memory_from_vec(xattention_stride); + } + + memory::ptr get_sinks_memory() { + auto mem = get_memory_from_vec(sinks); + auto layout = mem->get_layout(); + layout.set_partial_shape(ov::PartialShape{1, num_heads, 1, 1}); + + if (sinks.empty()) { + auto empty_layout = mem->get_layout(); + empty_layout.set_partial_shape(ov::PartialShape{0, 0, 0, 0}); + return test_engine.reinterpret_buffer(*mem, empty_layout); + } + + return test_engine.reinterpret_buffer(*mem, layout); + } + + memory::ptr get_adaptive_rkv_start_size_memory() { + auto mem = test_engine.allocate_memory({{}, data_types::i32, format::bfyx}); + mem_lock lock(mem, test_stream); + lock[0] = adaptive_rkv_start_size; + return mem; + } + + memory::ptr get_adaptive_rkv_evictable_sizes_memory() { + return get_memory_from_vec(adaptive_rkv_evictable_sizes); + } + + memory::ptr get_adaptive_rkv_diversity_block_set_indices_memory() { + return get_memory_from_vec(adaptive_rkv_diversity_block_set_indices); + } + + memory::ptr get_adaptive_rkv_diversity_block_set_indices_begins_memory() { + return get_memory_from_vec(adaptive_rkv_diversity_block_set_indices_begins); + } + + memory::ptr get_token_type_ids_memory() { + if (!token_type_ids.empty()) { + return get_memory_from_vec(token_type_ids); + } + std::vector default_token_type_ids = {0}; + return get_memory_from_vec(default_token_type_ids); + } + + memory::ptr get_qq_bias_memory() { + std::vector flat_qq_bias; + for (const auto& matrix : qq_bias) { + for (bool val : matrix) { + flat_qq_bias.push_back(static_cast(val)); + } + } + return get_memory_from_vec(flat_qq_bias); + } + + memory::ptr get_qq_bias_begins_memory() { + return get_memory_from_vec(qq_bias_begins); + } + + float get_default_scale() { + return static_cast(1.f / std::sqrt(k_head_size)); + } + +private: + template + memory::ptr get_memory_from_vec(std::vector& input_data) { + auto data_size = input_data.empty() ? 1 : input_data.size(); + auto shape = ov::PartialShape{static_cast(data_size)}; + auto layout = cldnn::layout{shape, ov::element::from(), format::bfyx}; + auto memory = test_engine.allocate_memory(layout); + + if (input_data.empty()) { + auto shape = ov::PartialShape{0}; + auto layout = cldnn::layout{shape, ov::element::from(), format::bfyx}; + return test_engine.reinterpret_buffer(*memory, layout); + } + + set_values(test_stream, memory, input_data.data(), input_data.size(), 0); + + return memory; + } + + memory::ptr get_QKV_memory(std::vector>& input_data, int num_heads, int head_size, bool skip_past_len) { + int total_tokens = 0; + for (const auto& subsequence_desc : subsequence_descs) + total_tokens += subsequence_desc.num_tokens; + + auto query_shape = ov::PartialShape{total_tokens, num_heads * head_size}; + auto query_layout = layout{query_shape, data_types::f16, format::bfyx}; + auto memory = test_engine.allocate_memory(query_layout); + + for (int subsequence_idx = 0; subsequence_idx < static_cast(subsequence_descs.size()); subsequence_idx++) { + for (int token_idx = 0; token_idx < subsequence_descs[subsequence_idx].num_tokens; token_idx++) { + for (int head_idx = 0; head_idx < num_heads; head_idx++) { + size_t input_token_offset = token_idx; + // as generated data stored in vectors includes past_len, ignore it for KV inputs + if (skip_past_len) + input_token_offset += subsequence_descs[subsequence_idx].past_len; + + ov::float16* data_ptr = input_data[subsequence_idx].data() + input_token_offset * num_heads * head_size + head_idx * head_size; + + size_t output_token_offset = subsequence_begins[subsequence_idx] + token_idx; + size_t output_offset = output_token_offset * num_heads * head_size + head_idx * head_size; + + set_values(test_stream, memory, data_ptr, head_size, output_offset); + } + } + } + + return memory; + } + + template + static void set_values(stream& stream, memory::ptr mem, T* vals, size_t size, size_t dst_offset) { + mem_lock mem_ptr(mem, stream); + for (size_t i = 0; i < size; i++) { + mem_ptr[dst_offset + i] = vals[i]; + } + } + + static std::vector generate_input_data(tests::random_generator& rg, size_t num_heads, size_t tokens_num, size_t k_head_size) { + const size_t total_elements_num = tokens_num * num_heads * k_head_size; + auto data = rg.generate_random_1d(total_elements_num, -1, 1); + + return data; + } + + static std::vector generate_realistic_data(size_t num_heads, size_t tokens_num, size_t k_head_size) { + std::vector data(num_heads * tokens_num * k_head_size); + + std::mt19937 gen(1234); + std::normal_distribution dist(0.0f, 0.1f); + + for (size_t h = 0; h < num_heads; ++h) { + for (size_t t = 0; t < tokens_num; ++t) { + for (size_t d = 0; d < k_head_size; ++d) { + float val = dist(gen); + if (t > 0) + val = 0.8f * val + 0.2f * static_cast(data[h * tokens_num * k_head_size + (t - 1) * k_head_size + d]); + data[h * tokens_num * k_head_size + t * k_head_size + d] = static_cast(val); + } + } + } + + return data; + } + + static std::vector generate_rotation_deltas_data(tests::random_generator& rg, + size_t max_tokens_num, + size_t rotated_blocks_num, + size_t block_size, + bool per_block) { + const size_t total_elements_num = per_block ? rotated_blocks_num : rotated_blocks_num * block_size; + auto data = rg.generate_random_1d(total_elements_num, 0, static_cast(max_tokens_num - 1)); + + return data; + } + + static std::vector generate_rotation_trig_lut_data(tests::random_generator& rg, size_t max_tokens_num, size_t k_head_size) { + const size_t total_elements_num = max_tokens_num * k_head_size; + auto data = rg.generate_random_1d(total_elements_num, -1, 1); + + return data; + } + + static std::tuple, ov::float16, ov::float16> quantize_data(ov::float16* data, + size_t size, + bool expand_range = false, + bool has_xattention = false) { + float min_value = std::numeric_limits::max(); + float max_value = std::numeric_limits::lowest(); + + for (size_t i = 0; i < size; i++) { + float v = static_cast(data[i]); + min_value = std::min(min_value, v); + max_value = std::max(max_value, v); + } + + if (has_xattention) { + if (max_value == min_value) { + std::vector qdata(size, 0); + return {qdata, ov::float16(0.0f), ov::float16(min_value)}; + } + + float diff_value = max_value - min_value; + if (expand_range && std::abs(diff_value) <= std::abs(max_value) * 0.1f) { + diff_value = (max_value - min_value) + std::max(1.0f, max_value * 0.1f); + } + + float scale_val = 255.0f / diff_value; + float zp_val = -min_value * scale_val; + + std::vector qdata(size); + for (size_t i = 0; i < size; i++) { + float q = data[i] * scale_val + zp_val; + int v = static_cast(std::nearbyint(q)); + if (v < 0) + v = 0; + if (v > 255) + v = 255; + qdata[i] = static_cast(v); + } + + ov::float16 scale = static_cast(diff_value / 255.0f); + ov::float16 zp = static_cast(zp_val); + return {qdata, scale, zp}; + } + + float diff_value = 0.001f; + if (max_value != min_value) + diff_value = max_value - min_value; + if (expand_range && std::abs(diff_value) <= std::abs(max_value) * 0.1f) { + diff_value = (max_value - min_value) + std::max(1.0f, max_value * 0.1f); + } + + float scale = (std::numeric_limits::max() - std::numeric_limits::lowest()) / diff_value; + float zp = -min_value * scale + std::numeric_limits::lowest(); + + std::vector qdata(size); + auto convert_char_rte = [](float val) { + float rounded = std::nearbyint(val); + if (rounded > 127.0f) + return static_cast(127); + if (rounded < -128.0f) + return static_cast(-128); + return static_cast(rounded); + }; + + for (size_t i = 0; i < size; i++) { + qdata[i] = convert_char_rte(data[i] * scale + zp); + } + + ov::float16 scale_out = static_cast(1.0f / scale); + ov::float16 zp_out = static_cast(zp); + return {qdata, scale_out, zp_out}; + } +}; + +namespace std { +template <> +struct hash { + uint64_t operator()(const ov::float16 __val) const { + return std::hash()(__val); + } +}; +} // namespace std + +struct PagedAttentionReference { + PagedAttentionReference(PagedAttentionManager& pam) : pam(pam), test_engine(pam.test_engine), test_stream(pam.test_stream) {} + + std::tuple, std::vector, std::vector> get_reference(memory::ptr key_cache_mem = nullptr) { + const bool has_xattention = pam.has_xattention; + if (has_xattention) { + const size_t total_iterations = pam.subsequence_descs.size(); + if (pam.xattention_threshold.size() != total_iterations) { + OPENVINO_THROW("xattention_threshold size (", pam.xattention_threshold.size(), ") must match number of subsequences (", total_iterations, ")"); + } + if (pam.xattention_block_size.size() != total_iterations) { + OPENVINO_THROW("xattention_block_size size (", + pam.xattention_block_size.size(), + ") must match number of subsequences (", + total_iterations, + ")"); + } + } + + std::vector ref_data_output; + std::vector ref_scores_output; + std::vector ref_diversity_output; + size_t qq_bias_offset = 0; + for (size_t i = 0; i < pam.subsequence_descs.size(); i++) { + const auto& subsequence_desc = pam.subsequence_descs[i]; + const auto kv_seq_len = subsequence_desc.num_tokens + subsequence_desc.past_len; + + auto key_data = pam.key_data[i]; + if (pam.rotation_config.apply_rotation) { + auto blocks_start = pam.block_indices_begins[i]; + auto blocks_end = pam.block_indices_begins[i + 1]; + + std::vector block_indices(pam.block_indices.begin() + blocks_start, pam.block_indices.begin() + blocks_end); + + for (const auto& block_idx : block_indices) { + auto it = std::find(pam.rotated_block_indices.begin(), pam.rotated_block_indices.end(), block_idx); + if (it != pam.rotated_block_indices.end()) { + int index = std::distance(pam.rotated_block_indices.begin(), it); + int subsequence_rotated_block_idx = *it - blocks_start; + + rotate_block(key_data, + pam.rotation_deltas, + pam.rotation_trig_lut, + index, + subsequence_rotated_block_idx, + pam.num_kv_heads, + pam.k_head_size, + pam.block_size, + pam.rotation_config.per_block); + } + } + } + + auto window_size = pam.has_score_aggregation ? pam.score_aggregation[i] : 1; + + const std::vector* qq_bias_ptr = nullptr; + if (pam.qq_bias.size() > 0 && pam.subsequence_descs[i].past_len != 0) { + qq_bias_ptr = &pam.qq_bias[qq_bias_offset++]; + } + + double xattn_threshold = 1.0; + size_t xattn_block_size = 128; + if (has_xattention) { + xattn_threshold = static_cast(pam.xattention_threshold[i]); + + // reference path reflects runtime fallback/validation behavior for block size. + if (test_engine.get_device_info().arch < gpu_arch::xe2) { + xattn_block_size = 128; + } else { + const int user_value = pam.xattention_block_size[i]; + xattn_block_size = (user_value == 128 || user_value == 256) ? static_cast(user_value) : 256; + } + } + + auto subsequence_ref_results = run_reference(has_xattention, + pam.query_data[i], + key_data, + pam.value_data[i], + subsequence_desc.num_tokens, + kv_seq_len, + pam.num_heads, + pam.num_kv_heads, + pam.k_head_size, + pam.v_head_size, + window_size, + pam.sliding_window_size, + pam.get_default_scale(), + xattn_threshold, + xattn_block_size, + qq_bias_ptr); + + // concatenate all subsequences into one vector + ref_data_output.insert(ref_data_output.end(), subsequence_ref_results.first.begin(), subsequence_ref_results.first.end()); + ref_scores_output.insert(ref_scores_output.end(), subsequence_ref_results.second.begin(), subsequence_ref_results.second.end()); + } + + if (!pam.adaptive_rkv_evictable_sizes.empty()) { + ref_diversity_output = compute_diversity_reference(key_cache_mem); + } + + return {ref_data_output, ref_scores_output, ref_diversity_output}; + } + +private: + std::pair, std::vector> run_reference(bool has_xattention, + const std::vector& query_data, + const std::vector& key_data, + const std::vector& value_data, + int num_queries, + int num_keys, + int num_heads, + int num_kv_heads, + int k_head_size, + int v_head_size, + int window_size, + int sliding_window_size, + float scale, + double xattention_threshold, + size_t block_size, + const std::vector* qq_bias = nullptr, + size_t stride = 16) { + auto query_shape = ov::PartialShape{1, num_queries, num_heads, k_head_size}; + auto key_shape = ov::PartialShape{1, num_keys, num_kv_heads, k_head_size}; + auto value_shape = ov::PartialShape{1, num_keys, num_kv_heads, v_head_size}; + if (num_heads != num_kv_heads && !has_xattention) { + query_shape = ov::PartialShape{num_queries, num_kv_heads, (num_heads / num_kv_heads), k_head_size}; + key_shape = ov::PartialShape{num_keys, num_kv_heads, 1, k_head_size}; + value_shape = ov::PartialShape{num_keys, num_kv_heads, 1, v_head_size}; + } + bool do_gqa_expand = false; + std::vector expanded_key_data; + std::vector expanded_value_data; + if (has_xattention) { + // Grouped Query Attention + do_gqa_expand = (num_heads != num_kv_heads); + if (do_gqa_expand) { + const int group_size = num_heads / num_kv_heads; + + expanded_key_data.resize(static_cast(num_keys) * static_cast(num_heads) * static_cast(k_head_size)); + expanded_value_data.resize(static_cast(num_keys) * static_cast(num_heads) * static_cast(v_head_size)); + + for (int key_idx = 0; key_idx < num_keys; ++key_idx) { + for (int h = 0; h < num_heads; ++h) { + const int src_kv_head = h / group_size; + size_t src_key_off = (static_cast(key_idx) * static_cast(num_kv_heads) + static_cast(src_kv_head)) * + static_cast(k_head_size); + size_t dst_key_off = + (static_cast(key_idx) * static_cast(num_heads) + static_cast(h)) * static_cast(k_head_size); + for (int d = 0; d < k_head_size; ++d) + expanded_key_data[dst_key_off + static_cast(d)] = key_data[src_key_off + static_cast(d)]; + + size_t src_val_off = (static_cast(key_idx) * static_cast(num_kv_heads) + static_cast(src_kv_head)) * + static_cast(v_head_size); + size_t dst_val_off = + (static_cast(key_idx) * static_cast(num_heads) + static_cast(h)) * static_cast(v_head_size); + for (int d = 0; d < v_head_size; ++d) + expanded_value_data[dst_val_off + static_cast(d)] = value_data[src_val_off + static_cast(d)]; + } + } + + key_shape = ov::PartialShape{1, num_keys, num_heads, k_head_size}; + value_shape = ov::PartialShape{1, num_keys, num_heads, v_head_size}; + num_kv_heads = num_heads; + } + } + + auto query_layout = layout{query_shape, data_types::f16, format::bfyx}; + auto key_layout = layout{key_shape, data_types::f16, format::bfyx}; + auto value_layout = layout{value_shape, data_types::f16, format::bfyx}; + auto scale_layout = cldnn::layout({1}, data_types::f16, format::bfyx); + + OPENVINO_ASSERT(query_layout.count() == query_data.size()); + if (do_gqa_expand) { + OPENVINO_ASSERT(key_layout.count() == expanded_key_data.size()); + OPENVINO_ASSERT(value_layout.count() == expanded_value_data.size()); + } else { + OPENVINO_ASSERT(key_layout.count() == key_data.size()); + OPENVINO_ASSERT(value_layout.count() == value_data.size()); + } + + auto query_mem = test_engine.allocate_memory(query_layout); + auto key_mem = test_engine.allocate_memory(key_layout); + auto value_mem = test_engine.allocate_memory(value_layout); + auto scale_mem = test_engine.allocate_memory(scale_layout); + + set_values(query_mem, query_data); + if (do_gqa_expand) { + set_values(key_mem, expanded_key_data); + set_values(value_mem, expanded_value_data); + } else { + set_values(key_mem, key_data); + set_values(value_mem, value_data); + } + set_values(scale_mem, {static_cast(scale)}); + + ov::reference::XAttentionRetainedBlockIndicesForAllHeads retained_blocks; + if (num_queries >= static_cast(block_size) && has_xattention) { + auto reorder_qhk_to_hqd = [&](const std::vector& src, int outer_len, int num_heads, int head_dim) { + std::vector dst(num_heads * outer_len * head_dim); + for (int h = 0; h < num_heads; ++h) { + size_t dst_h_off = static_cast(h) * outer_len * head_dim; + for (int i = 0; i < outer_len; ++i) { + size_t src_off = static_cast(i) * num_heads * head_dim + static_cast(h) * head_dim; + std::copy_n(&src[src_off], head_dim, &dst[dst_h_off + static_cast(i) * head_dim]); + } + } + return dst; + }; + + const auto query_data_3d = reorder_qhk_to_hqd(query_data, num_queries, num_heads, k_head_size); + const auto key_data_3d = reorder_qhk_to_hqd(do_gqa_expand ? expanded_key_data : key_data, num_keys, num_heads, k_head_size); + const size_t padded_q = ((num_queries + block_size - 1) / block_size) * block_size; + const size_t padded_k = ((num_keys + block_size - 1) / block_size) * block_size; + + std::vector query_padded(num_heads * padded_q * k_head_size, 0.f); + std::vector key_padded(num_heads * padded_k * k_head_size, 0.f); + + for (int h = 0; h < num_heads; ++h) { + const auto* q_src = &query_data_3d[h * num_queries * k_head_size]; + const auto* k_src = &key_data_3d[h * num_keys * k_head_size]; + auto* q_dst = &query_padded[h * padded_q * k_head_size]; + auto* k_dst = &key_padded[h * padded_k * k_head_size]; + + std::transform(q_src, q_src + num_queries * k_head_size, q_dst, [](ov::float16 v) { + return static_cast(v); + }); + std::transform(k_src, k_src + num_keys * k_head_size, k_dst, [](ov::float16 v) { + return static_cast(v); + }); + } + ov::reference::XAttentionBlockSelector selector(xattention_threshold, block_size, stride); + retained_blocks = selector.select_blocks(query_padded.data(), + {static_cast(num_heads), padded_q, static_cast(k_head_size)}, + key_padded.data(), + {static_cast(num_heads), padded_k, static_cast(k_head_size)}); + } + auto mask_mem = get_mask_mem_combined_multi_head(num_queries, + num_keys, + num_heads, + num_kv_heads, + sliding_window_size, + retained_blocks, + static_cast(block_size), + qq_bias); + topology topology; + if (num_heads == num_kv_heads) { + topology.add(input_layout("query", query_layout), + input_layout("key", key_layout), + input_layout("value", value_layout), + data("mask", mask_mem), + data("scale", scale_mem), + permute("query_transposed", input_info("query"), {0, 2, 1, 3}), + permute("key_transposed", input_info("key"), {0, 2, 3, 1}), + permute("value_transposed", input_info("value"), {0, 2, 1, 3}), + gemm("qk_gemm", {input_info("query_transposed"), input_info("key_transposed")}, data_types::f16, false, false), + eltwise("scale_div", {input_info("qk_gemm"), input_info("scale")}, eltwise_mode::prod), + eltwise("eltwise", {input_info("scale_div"), input_info("mask")}, eltwise_mode::sum), + softmax("softmax", input_info("eltwise"), -1), + gemm("qkv_gemm", {input_info("softmax"), input_info("value_transposed")}, data_types::f16, false, false), + permute("qkv_gemm_transposed", input_info("qkv_gemm"), {0, 2, 1, 3}), + reorder("output_data", input_info("qkv_gemm_transposed"), format::bfyx, data_types::f16), + reorder("scores_data", input_info("softmax"), format::bfyx, data_types::f16)); + } else { + topology.add(input_layout("query", query_layout), + input_layout("key", key_layout), + input_layout("value", value_layout), + data("mask", mask_mem), + data("scale", scale_mem), + permute("query_transposed", input_info("query"), {1, 2, 0, 3}), + permute("key_transposed", input_info("key"), {1, 2, 3, 0}), + permute("value_transposed", input_info("value"), {1, 2, 0, 3}), + gemm("qk_gemm", {input_info("query_transposed"), input_info("key_transposed")}, data_types::f16, false, false), + eltwise("scale_div", {input_info("qk_gemm"), input_info("scale")}, eltwise_mode::prod), + eltwise("eltwise", {input_info("scale_div"), input_info("mask")}, eltwise_mode::sum), + softmax("softmax", input_info("eltwise"), -1), + gemm("qkv_gemm", {input_info("softmax"), input_info("value_transposed")}, data_types::f16, false, false), + reshape("qkv_gemm_reshape", input_info("qkv_gemm"), {1, num_heads, v_head_size, num_queries}), + permute("qkv_gemm_transposed", input_info("qkv_gemm_reshape"), {0, 2, 1, 3}), + reorder("output_data", input_info("qkv_gemm_transposed"), format::bfyx, data_types::f16), + reorder("scores_data", input_info("softmax"), format::bfyx, data_types::f16)); + } + + ExecutionConfig config = get_test_default_config(test_engine); + config.set_property(ov::intel_gpu::optimize_data(true)); + config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); + + network::ptr network = get_network(test_engine, topology, config, get_test_stream_ptr(), false); + network->set_input_data("query", query_mem); + network->set_input_data("key", key_mem); + network->set_input_data("value", value_mem); + + auto outputs = network->execute(); + + auto output_data_mem = outputs.at("output_data").get_memory(); + auto output_scores_mem = outputs.at("scores_data").get_memory(); + + return {get_output_data_vec(output_data_mem, num_queries, v_head_size, num_heads), + get_output_scores_vec(output_scores_mem, window_size, num_queries, num_keys, num_heads)}; + } + + std::vector get_output_scores_vec(memory::ptr scores_output, int window_size, int num_queries, int num_keys, int num_heads) { + OPENVINO_ASSERT(scores_output->count() == static_cast(num_heads * num_queries * num_keys)); + + std::vector output_scores(num_keys, 0); + mem_lock mem_ptr(scores_output, test_stream); + for (int row_idx = 0; row_idx < window_size; row_idx++) { + for (int head_idx = 0; head_idx < num_heads; head_idx++) { + for (int score_idx = 0; score_idx < num_keys; score_idx++) { + auto scores_offset = head_idx * num_queries * num_keys + (num_queries - window_size + row_idx) * num_keys + score_idx; + output_scores[score_idx] += mem_ptr[scores_offset]; + } + } + } + + return output_scores; + } + + std::vector get_output_data_vec(memory::ptr data_output, int num_queries, int k_head_size, int num_heads) { + OPENVINO_ASSERT(data_output->count() == static_cast(num_queries * num_heads * k_head_size)); + + std::vector output_data(data_output->count()); + mem_lock mem_ptr(data_output, test_stream); + for (size_t i = 0; i < data_output->count(); i++) + output_data[i] = mem_ptr[i]; + + return output_data; + } + + memory::ptr get_mask_mem_combined_multi_head(int num_queries, + int num_keys, + int num_heads, + int num_kv_heads, + int sliding_window_size, + const ov::reference::XAttentionRetainedBlockIndicesForAllHeads& retained_blocks, + int block_size, + const std::vector* qq_bias) { + int heads_per_kv = num_heads / num_kv_heads; + + ov::PartialShape mask_shape; + if (retained_blocks.empty()) { + mask_shape = ov::PartialShape{1, 1, num_queries, num_keys}; + } else if (num_heads == num_kv_heads) { + mask_shape = ov::PartialShape{1, num_heads, num_queries, num_keys}; + } else { + mask_shape = ov::PartialShape{num_kv_heads, heads_per_kv, num_queries, num_keys}; + } + + auto mask_layout = layout{mask_shape, data_types::f16, format::bfyx}; + auto mask_mem = test_engine.allocate_memory(mask_layout); + mem_lock mem_ptr(mask_mem, test_stream); + + size_t total_elems = mask_layout.count(); + for (size_t i = 0; i < total_elems; ++i) + mem_ptr[i] = std::numeric_limits::lowest(); + if (retained_blocks.empty()) { + if (sliding_window_size == 0) { + int past_len = num_keys - num_queries + 1; + for (int i = 0; i < num_queries; i++) { + for (int j = 0; j < num_keys; j++) { + mem_ptr[i * num_keys + j] = j >= past_len + i ? std::numeric_limits::lowest() : ov::float16(0.f); + } + } + } else { + int sliding_left = num_keys - num_queries - sliding_window_size + 1; + int past_len = num_keys - num_queries + 1; + + for (int i = 0; i < num_queries; i++) { + for (int j = 0; j < num_keys; j++) { + bool is_min; + if (num_queries == num_keys) { + is_min = (j >= sliding_left + i) && (j <= i) ? 0 : 1; + } else { + is_min = (j >= sliding_left + i) && (j < past_len + i) ? 0 : 1; + } + + mem_ptr[i * num_keys + j] = is_min ? std::numeric_limits::lowest() : ov::float16(0.f); + } + } + } + } else { + for (int h = 0; h < num_heads; ++h) { + int kv_idx = (num_heads == num_kv_heads) ? 0 : (h / heads_per_kv); + int head_in_kv = (num_heads == num_kv_heads) ? h : (h % heads_per_kv); + + size_t head_offset = (static_cast(kv_idx) * heads_per_kv + static_cast(head_in_kv)) * static_cast(num_queries) * + static_cast(num_keys); + + for (int i = 0; i < num_queries; i++) { + int left_idx = 0; + int right_idx = 0; + + if (sliding_window_size == 0) { + int past_len = num_keys - num_queries + 1; + right_idx = past_len + i - 1; + left_idx = 0; + } else { + int sliding_left = num_keys - num_queries - sliding_window_size + 1; + int past_len = num_keys - num_queries + 1; + if (num_queries == num_keys) { + left_idx = sliding_left + i; + right_idx = i; + } else { + left_idx = sliding_left + i; + right_idx = past_len + i - 1; + } + } + + left_idx = std::max(0, left_idx); + right_idx = std::min(num_keys - 1, right_idx); + + for (const auto& [q_block_idx, k_block_idx] : retained_blocks[h]) { + int q_start = q_block_idx * block_size; + int q_end = std::min(q_start + block_size, num_queries); + int k_start = k_block_idx * block_size; + int k_end = std::min(k_start + block_size, num_keys); + + if (i < q_start || i >= q_end) + continue; + + for (int j = k_start; j < k_end; j++) { + if (j >= left_idx && j <= right_idx) { + mem_ptr[head_offset + i * num_keys + j] = ov::float16(0.f); + } + } + } + } + } + } + + if (qq_bias && !qq_bias->empty()) { + OPENVINO_ASSERT(qq_bias->size() == static_cast(num_queries * num_queries)); + + auto apply_mask_for_head = [&](size_t head_offset) { + for (int i = 0; i < num_queries; i++) { + for (int j = 0; j < num_queries; j++) { + if (!(*qq_bias)[static_cast(i) * static_cast(num_queries) + static_cast(j)]) { + mem_ptr[head_offset + static_cast(i) * static_cast(num_keys) + (num_keys - num_queries) + static_cast(j)] = + std::numeric_limits::lowest(); + } + } + } + }; + + if (retained_blocks.empty()) { + apply_mask_for_head(0); + } else { + for (int h = 0; h < num_heads; ++h) { + int kv_idx = (num_heads == num_kv_heads) ? 0 : (h / heads_per_kv); + int head_in_kv = (num_heads == num_kv_heads) ? h : (h % heads_per_kv); + size_t head_offset = (static_cast(kv_idx) * static_cast(heads_per_kv) + static_cast(head_in_kv)) * + static_cast(num_queries) * static_cast(num_keys); + apply_mask_for_head(head_offset); + } + } + } + + return mask_mem; + } + + void rotate_block(std::vector& cache_data, + std::vector rotation_deltas, + std::vector rotation_trig_lut_mem, + int rotated_block_idx, + int subsequence_rotated_block_idx, + int num_heads, + int k_head_size, + int block_size, + bool per_block) { + // cache_data shape: [1, num_tokens, num_heads, k_head_size] + int start_token_idx = subsequence_rotated_block_idx * block_size; + + for (int token_idx = 0; token_idx < block_size; token_idx++) { + auto rotation_deltas_offset = per_block ? rotated_block_idx : rotated_block_idx * block_size + token_idx; + auto rotation_trig_lut_idx = rotation_deltas[rotation_deltas_offset]; + for (int head_idx = 0; head_idx < num_heads; head_idx++) { + for (int k_head_size_idx = 0; k_head_size_idx < k_head_size / 2; k_head_size_idx++) { + auto input_offset = (start_token_idx + token_idx) * num_heads * k_head_size + head_idx * k_head_size + k_head_size_idx; + + auto cache_value_0 = cache_data[input_offset]; + auto cache_value_1 = cache_data[input_offset + k_head_size / 2]; + + ov::float16 rotation_value_cos = rotation_trig_lut_mem[rotation_trig_lut_idx * k_head_size + k_head_size_idx]; + ov::float16 rotation_value_sin = rotation_trig_lut_mem[rotation_trig_lut_idx * k_head_size + k_head_size_idx + k_head_size / 2]; + + cache_data[input_offset] = cache_value_0 * rotation_value_cos - cache_value_1 * rotation_value_sin; + cache_data[input_offset + k_head_size / 2] = cache_value_0 * rotation_value_sin + cache_value_1 * rotation_value_cos; + } + } + } + } + + std::vector read_key_from_cache(memory::ptr key_cache_mem, size_t seq_idx, int total_tokens) { + // Read key vectors from key_cache memory + // key_cache layout: [num_blocks, num_kv_heads, head_size, block_size] + std::vector key_data(pam.num_kv_heads * total_tokens * pam.k_head_size); + + const int blocks_start = pam.block_indices_begins[seq_idx]; + const int blocks_end = pam.block_indices_begins[seq_idx + 1]; + const int num_blocks = blocks_end - blocks_start; + + const bool is_compressed = pam.kv_cache_compression; + + if (!is_compressed) { + // Uncompressed case: read as float16 + mem_lock cache_ptr(key_cache_mem, test_stream); + + for (int block_idx = 0; block_idx < num_blocks; block_idx++) { + const int physical_block = pam.block_indices[blocks_start + block_idx]; + const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); + + for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { + const int token_idx = block_idx * pam.block_size + token_offset; + + for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { + const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * pam.k_head_size * pam.block_size + + static_cast(head_idx) * pam.k_head_size * pam.block_size; + + const size_t output_base = + static_cast(head_idx) * total_tokens * pam.k_head_size + static_cast(token_idx) * pam.k_head_size; + + for (int dim = 0; dim < pam.k_head_size; dim++) { + const size_t cache_offset = cache_base + static_cast(dim) * pam.block_size + token_offset; + key_data[output_base + dim] = cache_ptr[cache_offset]; + } + } + } + } + } else { + if (pam.key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL) { + if (pam.is_int4_kv_cache()) { + // INT4 BY_CHANNEL: [num_blocks, kv_heads, k_head_size, block_size/2+4] u8 + // block_size dim is packed: 2 u4 tokens per byte. + // Comp at [d, packed_block..packed_block+3]: 2 fp16 = inv_scale, zp per head dim. + mem_lock cache_ptr(key_cache_mem, test_stream); + const int packed_block = pam.block_size / 2; + const int adj_block_size = packed_block + 4; // block_size/2 + sizeof(fp16)*2 + + for (int block_idx = 0; block_idx < num_blocks; block_idx++) { + const int physical_block = pam.block_indices[blocks_start + block_idx]; + const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); + + for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { + const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * pam.k_head_size * adj_block_size + + static_cast(head_idx) * pam.k_head_size * adj_block_size; + + for (int d = 0; d < pam.k_head_size; d++) { + // Read inv_scale and zp from comp region + const size_t comp_byte_off = cache_base + static_cast(d) * adj_block_size + packed_block; + const ov::float16* comp = reinterpret_cast(&cache_ptr[comp_byte_off]); + float inv_scale = static_cast(comp[0]); + float zp_val = static_cast(comp[1]); + + for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { + const int token_idx = block_idx * pam.block_size + token_offset; + const size_t byte_off = cache_base + static_cast(d) * adj_block_size + token_offset / 2; + uint8_t packed_byte = cache_ptr[byte_off]; + uint8_t q = (token_offset % 2 == 0) ? (packed_byte & 0xFu) : ((packed_byte >> 4) & 0xFu); + float dq = (static_cast(q) - zp_val) * inv_scale; + const size_t out_base = + static_cast(head_idx) * total_tokens * pam.k_head_size + static_cast(token_idx) * pam.k_head_size; + key_data[out_base + d] = ov::float16(dq); + } + } + } + } + } else { + // I8/U8 BY_CHANNEL: [num_blocks, num_kv_heads, head_size, block_size+4] + // Each dimension quantized across all tokens in block + mem_lock cache_ptr(key_cache_mem, test_stream); + const int adj_block_size = pam.block_size + 4; + + for (int block_idx = 0; block_idx < num_blocks; block_idx++) { + const int physical_block = pam.block_indices[blocks_start + block_idx]; + const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); + + for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { + const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * pam.k_head_size * adj_block_size + + static_cast(head_idx) * pam.k_head_size * adj_block_size; + + for (int dim = 0; dim < pam.k_head_size; dim++) { + // Read scale and zero-point for this dimension + const size_t scale_offset = cache_base + static_cast(dim) * adj_block_size + pam.block_size; + ov::float16 scale = *reinterpret_cast(&cache_ptr[scale_offset]); + ov::float16 zp = *reinterpret_cast(&cache_ptr[scale_offset + 2]); + + // Dequantize all tokens for this dimension + for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { + const int token_idx = block_idx * pam.block_size + token_offset; + const size_t cache_offset = cache_base + static_cast(dim) * adj_block_size + token_offset; + const size_t output_offset = + static_cast(head_idx) * total_tokens * pam.k_head_size + static_cast(token_idx) * pam.k_head_size + dim; + + int8_t quantized_value = cache_ptr[cache_offset]; + float dequantized = (static_cast(quantized_value) - static_cast(zp)) * static_cast(scale); + key_data[output_offset] = ov::float16(dequantized); + } + } + } + } + } + } else { + // BY_TOKEN + if (pam.is_int4_kv_cache()) { + // INT4 BY_TOKEN: [num_blocks, kv_heads, k_head_size/2+8, block_size] u8 + // Packing (SUBGROUP_SIZE=16): + // Y = pack_group*16 + sglid, where pack_group = d/(2*16), sglid = d%16 + // lower nibble = q(dim[pack_group*32 + sglid]) + // upper nibble = q(dim[pack_group*32 + sglid + 16]) + // Scale/ZP: fp16 in comp region at base + packed_head_size*block_size + // inv_scale[t] at comp_ptr[t], zp[t] at comp_ptr[block_size + t] + mem_lock cache_ptr(key_cache_mem, test_stream); + const int packed_head_size = pam.k_head_size / 2; + const int adj_head_size = packed_head_size + 8; + constexpr int SG = 16; + + for (int block_idx = 0; block_idx < num_blocks; block_idx++) { + const int physical_block = pam.block_indices[blocks_start + block_idx]; + const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); + + for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { + const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * adj_head_size * pam.block_size + + static_cast(head_idx) * adj_head_size * pam.block_size; + // Scale and ZP are in the comp region after the packed data + const size_t comp_byte_base = cache_base + static_cast(packed_head_size) * pam.block_size; + const auto* inv_scale_arr = reinterpret_cast(&cache_ptr[comp_byte_base]); + const auto* zp_arr = reinterpret_cast(&cache_ptr[comp_byte_base + pam.block_size * 2]); + + for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { + const int token_idx = block_idx * pam.block_size + token_offset; + float inv_scale = static_cast(inv_scale_arr[token_offset]); + float zp_val = static_cast(zp_arr[token_offset]); + const size_t out_base = + static_cast(head_idx) * total_tokens * pam.k_head_size + static_cast(token_idx) * pam.k_head_size; + + for (int d = 0; d < pam.k_head_size; d++) { + int sglid_val = d % SG; + int pack_group = d / (2 * SG); + int group_in_pack = (d / SG) % 2; // 0=lower nibble, 1=upper nibble + int y = pack_group * SG + sglid_val; + const size_t byte_off = cache_base + static_cast(y) * pam.block_size + token_offset; + uint8_t packed_byte = cache_ptr[byte_off]; + uint8_t q_d = (group_in_pack == 0) ? (packed_byte & 0xFu) : ((packed_byte >> 4) & 0xFu); + key_data[out_base + d] = ov::float16((static_cast(q_d) - zp_val) * inv_scale); + } + } + } + } + + return key_data; + } + + // BY_TOKEN: [num_blocks, num_kv_heads, head_size+4, block_size] + // Token-wise quantization with shared scale/zp per token + // Layout: data rows [0..head_size-1], scale at [head_size], zp at [head_size+2] (fp16) + mem_lock cache_ptr(key_cache_mem, test_stream); + for (int block_idx = 0; block_idx < num_blocks; block_idx++) { + const int physical_block = pam.block_indices[blocks_start + block_idx]; + const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); + + for (int token_offset = 0; token_offset < tokens_in_block; token_offset++) { + const int token_idx = block_idx * pam.block_size + token_offset; + + for (int head_idx = 0; head_idx < pam.num_kv_heads; head_idx++) { + const size_t cache_base = static_cast(physical_block) * pam.num_kv_heads * (pam.k_head_size + 4) * pam.block_size + + static_cast(head_idx) * (pam.k_head_size + 4) * pam.block_size; + + // Read scale and zero-point for this token + // Scale is at [head_size][token], ZP is at [head_size+2][token] (2 rows below) + // token_offset * 2 because each half is 2 bytes (token 0 at offset 0-1, token 1 at offset 2-3, etc.) + const size_t scale_offset = cache_base + static_cast(pam.k_head_size) * pam.block_size + token_offset * 2; + const size_t zp_offset = scale_offset + 2 * pam.block_size; // ZP is 2 rows below scale + ov::float16 scale = *reinterpret_cast(&cache_ptr[scale_offset]); + ov::float16 zp = *reinterpret_cast(&cache_ptr[zp_offset]); + + const size_t output_base = + static_cast(head_idx) * total_tokens * pam.k_head_size + static_cast(token_idx) * pam.k_head_size; + + // Dequantize all dimensions for this token + for (int dim = 0; dim < pam.k_head_size; dim++) { + const size_t cache_offset = cache_base + static_cast(dim) * pam.block_size + token_offset; + + int8_t quantized_value = cache_ptr[cache_offset]; + float dequantized = (static_cast(quantized_value) - static_cast(zp)) * static_cast(scale); + + key_data[output_base + dim] = ov::float16(dequantized); + } + } + } + } + } // end else (i8 BY_TOKEN) + } // is_compressed + + return key_data; + } + + std::vector compute_diversity_reference(memory::ptr key_cache_mem) { + std::vector diversity_output; + + for (size_t seq_idx = 0; seq_idx < pam.subsequence_descs.size(); seq_idx++) { + const auto start_size = pam.adaptive_rkv_start_size; + const auto evictable_size = pam.adaptive_rkv_evictable_sizes[seq_idx]; + + // Read key data from key_cache instead of original key_data + const auto& subsequence_desc = pam.subsequence_descs[seq_idx]; + const auto total_tokens = subsequence_desc.num_tokens + subsequence_desc.past_len; + + // Extract key vectors from key_cache memory + std::vector key_data = read_key_from_cache(key_cache_mem, seq_idx, total_tokens); + + ov::Shape key_shape = {static_cast(pam.num_kv_heads), static_cast(total_tokens), static_cast(pam.k_head_size)}; + + // Use reference implementation + ov::reference::AdaptiveRKVDiversityCalculator calculator(start_size, evictable_size, pam.block_size); + + auto block_diversity = calculator.calculate_block_diversity(key_data.data(), key_shape); + + const size_t num_evictable_blocks = static_cast(evictable_size) / static_cast(pam.block_size); + // Flatten 2D to 1D: [num_evictable_blocks, evictable_size] -> [num_evictable_blocks * evictable_size] + for (size_t block_idx = 0; block_idx < num_evictable_blocks; block_idx++) { + for (size_t token_idx = 0; token_idx < static_cast(evictable_size); token_idx++) { + diversity_output.push_back(block_diversity[block_idx][token_idx]); + } + } + } + + return diversity_output; + } + + PagedAttentionManager& pam; + cldnn::engine& test_engine; + cldnn::stream& test_stream; +}; + +template +struct PagedAttentionTest : public ::testing::TestWithParam { +public: + tests::random_generator rg; + cldnn::engine& engine = get_test_engine(); + float tolerance = 2e-3; + memory::ptr last_key_cache_mem = nullptr; + std::vector last_block_indices; + std::vector last_block_indices_begins; + std::optional pam; + + void SetUp() override { + rg.set_seed(GET_SUITE_NAME); + + auto p = this->GetParam(); + + pam.emplace(rg, + get_test_engine(), + get_test_stream(), + p.subsequences, + p.num_heads, + p.num_kv_heads, + p.k_head_size, + p.v_head_size, + p.block_size, + p.sliding_window_size, + p.kv_cache_compression, + p.key_cache_quant_mode, + p.scores_mode == ScoresMode::SNAPKV, + p.has_xattention, + p.rotation_config, + p.kv_cache_precision); + } + + static std::vector to_float16(const std::vector& data) { + std::vector result(data.size()); + std::transform(data.begin(), data.end(), result.begin(), [](float value) { + return ov::float16(value); + }); + return result; + } + + struct gpu_outputs { + std::map outputs; + memory::ptr key_cache_mem; + }; + + gpu_outputs run_gpu_inference(PagedAttentionManager& pam, T& p) { + gpu_outputs result; + + ov::element::Type kv_cache_precision = p.kv_cache_precision; + + if (p.has_xattention) { + pam.xattention_block_size.clear(); + if (p.xattention_block_size.has_value()) { + pam.xattention_block_size = p.xattention_block_size.value(); + } + pam.xattention_threshold.clear(); + if (p.xattention_threshold.has_value()) { + pam.xattention_threshold.reserve(p.xattention_threshold->size()); + for (const float t : p.xattention_threshold.value()) { + pam.xattention_threshold.emplace_back(static_cast(t)); + } + } + // Keep xattention_stride non-empty and per-sequence, reducing the mismatch risk with always-bound stride input. + pam.xattention_stride.assign(p.subsequences.size(), 16); + } + + if (p.has_adaptive_rkv) { + pam.adaptive_rkv_diversity_block_set_indices_begins.push_back(0); + pam.adaptive_rkv_start_size = p.start_size; + + for (size_t i = 0; i < p.subsequences.size(); i++) { + // Use per-sequence evictable_size if available, otherwise use first value + int evictable_size = i < p.evictable_sizes.size() ? p.evictable_sizes[i] : p.evictable_sizes[0]; + + pam.adaptive_rkv_evictable_sizes.push_back(evictable_size); + + int start_block = p.start_size / p.block_size; + int evictable_blocks = evictable_size / p.block_size; + int global_start_block_idx = pam.block_indices_begins[i] + start_block; + + for (int b = 0; b < evictable_blocks; b++) { + pam.adaptive_rkv_diversity_block_set_indices.push_back(global_start_block_idx + b); + } + + int prev_begin = pam.adaptive_rkv_diversity_block_set_indices_begins.back(); + pam.adaptive_rkv_diversity_block_set_indices_begins.push_back(prev_begin + evictable_blocks); + } + } + + if (p.has_qq_bias) { + pam.qq_bias = p.qq_bias_config.qq_bias; + pam.qq_bias_begins = p.qq_bias_config.qq_bias_begins; + } + + if (p.token_type_ids.has_value()) { + pam.token_type_ids = p.token_type_ids.value(); + EXPECT_EQ(pam.token_type_ids.size(), static_cast(pam.subsequence_descs.back().num_tokens + pam.subsequence_descs.back().past_len)); + } + + if (p.kv_cache_compression) { + // INT4 quantization has larger error than INT8 (~17x larger step size) + tolerance = (kv_cache_precision == ov::element::u4 || kv_cache_precision == ov::element::i4) ? 75e-3 : 25e-3; + } + + auto query_mem = pam.get_query_memory(); + auto key_mem = pam.get_key_memory(); + auto value_mem = pam.get_value_memory(); + + if (p.has_xattention) { + result.key_cache_mem = pam.get_key_cache_memory_cm(); + } else { + result.key_cache_mem = pam.get_key_cache_memory(); + } + auto value_cache_mem = pam.get_value_cache_memory(); + + auto past_lens_mem = pam.get_past_lens_memory(); + auto subsequence_begins_mem = pam.get_subsequence_begins_memory(); + auto block_indices_mem = pam.get_block_indices_memory(); + auto block_indices_begins_mem = pam.get_block_indices_begins_memory(); + + auto scale_mem = pam.get_scale_memory(); + auto sliding_window_mem = pam.get_sliding_window_memory(); + auto alibi_mem = pam.get_alibi_memory(); + auto max_context_len_mem = pam.get_max_context_len_memory(); + + // scores calculation related memory buffers + auto score_aggregation_mem = pam.get_score_aggregation(); + + // cache rotation related memory buffers + auto rotated_block_indices_mem = pam.get_rotated_block_indices_memory(); + auto rotation_deltas_mem = pam.get_rotation_deltas_memory(); + auto rotation_trig_lut_mem = pam.get_rotation_trig_lut_memory(); + + auto xattention_threshold_mem = pam.get_xattention_threshold_memory(); + auto xattention_block_size_mem = pam.get_xattention_block_size_memory(); + auto xattention_stride_mem = pam.get_xattention_stride_memory(); + auto sinks_mem = pam.get_sinks_memory(); + auto adaptive_rkv_start_size_mem = pam.get_adaptive_rkv_start_size_memory(); + auto adaptive_rkv_evictable_sizes_mem = pam.get_adaptive_rkv_evictable_sizes_memory(); + auto adaptive_rkv_diversity_block_set_indices_mem = pam.get_adaptive_rkv_diversity_block_set_indices_memory(); + auto adaptive_rkv_diversity_block_set_indices_begins_mem = pam.get_adaptive_rkv_diversity_block_set_indices_begins_memory(); + auto token_type_ids_mem = pam.get_token_type_ids_memory(); + + auto qq_bias = pam.get_qq_bias_memory(); + auto qq_bias_begins = pam.get_qq_bias_begins_memory(); + auto query_layout = query_mem->get_layout(); + auto key_layout = key_mem->get_layout(); + auto value_layout = value_mem->get_layout(); + auto key_cache_layout = result.key_cache_mem->get_layout(); + auto value_cache_layout = value_cache_mem->get_layout(); + auto past_lens_layout = past_lens_mem->get_layout(); + auto subsequence_begins_layout = subsequence_begins_mem->get_layout(); + auto block_indices_layout = block_indices_mem->get_layout(); + auto block_indices_begins_layout = block_indices_begins_mem->get_layout(); + auto scale_layout = scale_mem->get_layout(); + auto sliding_window_layout = sliding_window_mem->get_layout(); + auto alibi_layout = alibi_mem->get_layout(); + auto max_context_len_layout = max_context_len_mem->get_layout(); + auto score_aggregation_window_layout = score_aggregation_mem->get_layout(); + auto rotated_block_indices_layout = rotated_block_indices_mem->get_layout(); + auto rotation_deltas_layout = rotation_deltas_mem->get_layout(); + auto rotation_trig_lut_layout = rotation_trig_lut_mem->get_layout(); + auto xattention_threshold_layout = xattention_threshold_mem->get_layout(); + auto xattention_block_size_layout = xattention_block_size_mem->get_layout(); + auto xattention_stride_layout = xattention_stride_mem->get_layout(); + auto sinks_layout = sinks_mem->get_layout(); + auto adaptive_rkv_start_size_layout = adaptive_rkv_start_size_mem->get_layout(); + auto adaptive_rkv_evictable_sizes_layout = adaptive_rkv_evictable_sizes_mem->get_layout(); + auto adaptive_rkv_diversity_block_set_indices_layout = adaptive_rkv_diversity_block_set_indices_mem->get_layout(); + auto adaptive_rkv_diversity_block_set_indices_begins_layout = adaptive_rkv_diversity_block_set_indices_begins_mem->get_layout(); + auto token_type_ids_layout = token_type_ids_mem->get_layout(); + auto qq_bias_layout = qq_bias->get_layout(); + auto qq_bias_begins_layout = qq_bias_begins->get_layout(); + + // make layouts dynamic + query_layout.set_partial_shape(ov::PartialShape{-1, p.num_heads * p.k_head_size}); + key_layout.set_partial_shape(ov::PartialShape{-1, p.num_kv_heads * p.k_head_size}); + value_layout.set_partial_shape(ov::PartialShape{-1, p.num_kv_heads * p.v_head_size}); + // key_cache_layout.set_partial_shape(ov::PartialShape{ -1, p.num_heads, p.k_head_size, p.block_size }); + { + auto pshape = key_cache_layout.get_partial_shape(); + pshape[0] = -1; + key_cache_layout.set_partial_shape(pshape); + } + // value_cache_layout.set_partial_shape(ov::PartialShape{ -1, p.num_heads, p.block_size, p.v_head_size }); + { + auto pshape = value_cache_layout.get_partial_shape(); + pshape[0] = -1; + value_cache_layout.set_partial_shape(pshape); + } + past_lens_layout.set_partial_shape(ov::PartialShape{-1}); + subsequence_begins_layout.set_partial_shape(ov::PartialShape{-1}); + block_indices_layout.set_partial_shape(ov::PartialShape{-1}); + block_indices_begins_layout.set_partial_shape(ov::PartialShape{-1}); + score_aggregation_window_layout.set_partial_shape(ov::PartialShape{-1}); + rotated_block_indices_layout.set_partial_shape(ov::PartialShape{-1}); + rotation_deltas_layout.set_partial_shape(ov::PartialShape{-1, -1}); + rotation_trig_lut_layout.set_partial_shape(ov::PartialShape{-1, p.k_head_size}); + xattention_threshold_layout.set_partial_shape(ov::PartialShape{-1}); + adaptive_rkv_evictable_sizes_layout.set_partial_shape(ov::PartialShape{-1}); + adaptive_rkv_diversity_block_set_indices_layout.set_partial_shape(ov::PartialShape{-1}); + adaptive_rkv_diversity_block_set_indices_begins_layout.set_partial_shape(ov::PartialShape{-1}); + qq_bias_layout.set_partial_shape(ov::PartialShape{-1}); + qq_bias_begins_layout.set_partial_shape(ov::PartialShape{-1}); + + if (p.dynamic_paddings) { + const auto padding_axis = 1; + const auto pad_before = p.k_head_size; + const auto pad_after = p.k_head_size * 2; + + query_layout.data_padding._dynamic_dims_mask[padding_axis] = 1; + + auto query_data_layout = query_mem->get_layout(); + auto padded_query_data_layout = query_data_layout; + padded_query_data_layout.data_padding._lower_size[padding_axis] = pad_before; + padded_query_data_layout.data_padding._upper_size[padding_axis] = pad_after; + + auto new_query_memory = get_test_engine().allocate_memory(padded_query_data_layout, false); + + mem_lock query_mem_lock(query_mem, get_test_stream()); + mem_lock new_query_mem_lock(new_query_memory, get_test_stream()); + + auto query_data_shape = query_data_layout.get_shape(); + for (size_t b = 0; b < query_data_shape[0]; b++) { + for (size_t f = 0; f < query_data_shape[1]; f++) { + auto input_offset = query_data_layout.get_linear_offset(cldnn::tensor(static_cast(b), static_cast(f), 0, 0, 0, 0)); + auto output_offset = + padded_query_data_layout.get_linear_offset(cldnn::tensor(static_cast(b), static_cast(f), 0, 0, 0, 0)); + + new_query_mem_lock[output_offset] = query_mem_lock[input_offset]; + } + } + query_mem = new_query_memory; + } + + std::vector pa_inputs = {input_info("query"), + input_info("key"), + input_info("value"), + input_info("key_cache"), + input_info("value_cache"), + input_info("past_lens"), + input_info("subsequence_begins"), + input_info("block_indices"), + input_info("block_indices_begins"), + input_info("scale"), + input_info("sliding_window"), + input_info("alibi"), + input_info("max_context_len"), + input_info("score_aggregation_window"), + input_info("rotated_block_indices"), + input_info("rotation_deltas"), + input_info("rotation_trig_lut_modified"), + input_info("xattention_threshold"), + input_info("xattention_block_size"), + input_info("xattention_stride"), + input_info("sinks"), + input_info("adaptive_rkv_start_size"), + input_info("adaptive_rkv_evictable_sizes"), + input_info("adaptive_rkv_diversity_block_set_indices"), + input_info("adaptive_rkv_diversity_block_set_indices_begins"), + input_info("token_type_ids"), + input_info("qq_bias"), + input_info("qq_bias_begins")}; + + auto pa_prim = paged_attention("paged_attention", pa_inputs); + + pa_prim.k_head_size = p.k_head_size; + pa_prim.v_head_size = p.v_head_size; + pa_prim.kv_heads_num = p.num_kv_heads; + pa_prim.heads_num = p.num_heads; + pa_prim.scale_val = pam.get_default_scale(); + pa_prim.has_alibi = false; + pa_prim.has_token_type_ids = p.token_type_ids.has_value(); + + int num_outputs = 1; + if (p.scores_mode != ScoresMode::DISABLED) + num_outputs++; + if (p.has_adaptive_rkv) + num_outputs++; + pa_prim.num_outputs = num_outputs; + pa_prim.has_rotated_blocks = p.rotation_config.apply_rotation; + pa_prim.has_score_aggregation = p.scores_mode == ScoresMode::SNAPKV; + pa_prim.has_adaptive_rkv = p.has_adaptive_rkv; + pa_prim.sliding_window = p.sliding_window_size; + pa_prim.is_key_by_channel = (p.key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL); + if (p.has_xattention) { + pa_prim.has_xattention = true; + } + + pa_prim.has_qq_bias = p.has_qq_bias; + + topology topology; + + topology.add(input_layout("query", query_layout), + input_layout("key", key_layout), + input_layout("value", value_layout), + input_layout("key_cache", key_cache_layout), + input_layout("value_cache", value_cache_layout), + input_layout("past_lens", past_lens_layout), + input_layout("subsequence_begins", subsequence_begins_layout), + input_layout("block_indices", block_indices_layout), + input_layout("block_indices_begins", block_indices_begins_layout), + input_layout("scale", scale_layout), + input_layout("sliding_window", sliding_window_layout), + input_layout("alibi", alibi_layout), + input_layout("max_context_len", max_context_len_layout), + input_layout("score_aggregation_window", score_aggregation_window_layout), + pa_prim, + reorder("output_data", input_info("paged_attention", 0), format::bfyx, data_types::f16)); + + int output_idx = 1; + if (p.scores_mode != ScoresMode::DISABLED) { + topology.add(reorder("output_scores", input_info("paged_attention", output_idx), format::bfyx, data_types::f16)); + output_idx++; + } + if (p.has_adaptive_rkv) { + topology.add(reorder("output_diversity", input_info("paged_attention", output_idx), format::bfyx, data_types::f16)); + } + + { + topology.add(input_layout("rotated_block_indices", rotated_block_indices_layout)); + topology.add(input_layout("rotation_deltas", rotation_deltas_layout)); + topology.add(input_layout("rotation_trig_lut", rotation_trig_lut_layout)); + + // add dummy activation operation to simulate an empty PA `rotation_trig_lut` buffer for shapes like [0, k_head_size] + topology.add(activation("rotation_trig_lut_modified", input_info("rotation_trig_lut"), activation_func::none)); + + topology.add(input_layout("xattention_threshold", xattention_threshold_layout)); + topology.add(input_layout("xattention_block_size", xattention_block_size_layout)); + topology.add(input_layout("xattention_stride", xattention_stride_layout)); + topology.add(input_layout("sinks", sinks_layout)); + + topology.add(input_layout("adaptive_rkv_start_size", adaptive_rkv_start_size_layout)); + topology.add(input_layout("adaptive_rkv_evictable_sizes", adaptive_rkv_evictable_sizes_layout)); + topology.add(input_layout("adaptive_rkv_diversity_block_set_indices", adaptive_rkv_diversity_block_set_indices_layout)); + topology.add(input_layout("adaptive_rkv_diversity_block_set_indices_begins", adaptive_rkv_diversity_block_set_indices_begins_layout)); + topology.add(input_layout("token_type_ids", token_type_ids_layout)); + topology.add(input_layout("qq_bias", qq_bias_layout)); + topology.add(input_layout("qq_bias_begins", qq_bias_begins_layout)); + } + + ExecutionConfig config = get_test_default_config(get_test_engine()); + config.set_property(ov::intel_gpu::optimize_data(true)); + config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); + // FlashAttn v1 or v2? + config.set_property(ov::intel_gpu::could_use_flashattn_v2(p.disable_flashattn_v2)); + config.set_property(ov::internal::key_cache_quant_mode(p.key_cache_quant_mode)); + if (kv_cache_precision != ov::element::dynamic) { + config.set_property(ov::hint::kv_cache_precision(kv_cache_precision)); + } + network::ptr network = get_network(get_test_engine(), topology, config, get_test_stream_ptr(), false); + network->set_input_data("query", query_mem); + network->set_input_data("key", key_mem); + network->set_input_data("value", value_mem); + network->set_input_data("key_cache", result.key_cache_mem); + network->set_input_data("value_cache", value_cache_mem); + network->set_input_data("past_lens", past_lens_mem); + network->set_input_data("subsequence_begins", subsequence_begins_mem); + network->set_input_data("block_indices", block_indices_mem); + network->set_input_data("block_indices_begins", block_indices_begins_mem); + network->set_input_data("scale", scale_mem); + network->set_input_data("sliding_window", sliding_window_mem); + network->set_input_data("alibi", alibi_mem); + network->set_input_data("max_context_len", max_context_len_mem); + network->set_input_data("score_aggregation_window", score_aggregation_mem); + network->set_input_data("rotated_block_indices", rotated_block_indices_mem); + network->set_input_data("rotation_deltas", rotation_deltas_mem); + network->set_input_data("rotation_trig_lut", rotation_trig_lut_mem); + network->set_input_data("xattention_threshold", xattention_threshold_mem); + network->set_input_data("xattention_block_size", xattention_block_size_mem); + + network->set_input_data("xattention_stride", xattention_stride_mem); + network->set_input_data("sinks", sinks_mem); + network->set_input_data("adaptive_rkv_start_size", adaptive_rkv_start_size_mem); + network->set_input_data("adaptive_rkv_evictable_sizes", adaptive_rkv_evictable_sizes_mem); + network->set_input_data("adaptive_rkv_diversity_block_set_indices", adaptive_rkv_diversity_block_set_indices_mem); + network->set_input_data("adaptive_rkv_diversity_block_set_indices_begins", adaptive_rkv_diversity_block_set_indices_begins_mem); + network->set_input_data("token_type_ids", token_type_ids_mem); + network->set_input_data("qq_bias", qq_bias); + network->set_input_data("qq_bias_begins", qq_bias_begins); + + last_key_cache_mem = result.key_cache_mem; + last_block_indices = pam.block_indices; + last_block_indices_begins = pam.block_indices_begins; + + result.outputs = network->execute(); + + return result; + } + + void execute(T& p, bool run_reference = true) { + ASSERT_TRUE(this->pam.has_value()); + auto& pam = *this->pam; + + auto result = run_gpu_inference(pam, p); + + if (!run_reference) { + return; + } + + cldnn::memory::ptr output_data_mem = nullptr; + cldnn::memory::ptr output_scores_mem = nullptr; + cldnn::memory::ptr output_diversity_mem = nullptr; + + output_data_mem = result.outputs.at("output_data").get_memory(); + if (p.scores_mode != ScoresMode::DISABLED) { + output_scores_mem = result.outputs.at("output_scores").get_memory(); + } + if (p.has_adaptive_rkv) { + output_diversity_mem = result.outputs.at("output_diversity").get_memory(); + } + + // Verify KV cache was correctly written (CM PA path only) + // NOTE: This verification is specific to CM PA layout and should NOT run for OCL micro_sdpa + // because they use different layouts (key cache is [N,K,H,B] in OCL vs [N,K,B,H] in CM) + verify_cm_kv_cache_write(p); + + auto ref_data = PagedAttentionReference(pam).get_reference(result.key_cache_mem); + if (p.has_xattention) { + compare_xattention(output_data_mem, output_scores_mem, ref_data, p.num_heads, p.k_head_size); + } else { + compare(output_data_mem, output_scores_mem, output_diversity_mem, ref_data); + } + } + + void compare(memory::ptr data_output_mem, + memory::ptr scores_output_mem, + memory::ptr diversity_output_mem, + std::tuple, std::vector, std::vector> ref_data) { + if (data_output_mem) { + ASSERT_EQ(data_output_mem->count(), std::get<0>(ref_data).size()); + mem_lock mem_ptr(data_output_mem, get_test_stream()); + for (size_t i = 0; i < data_output_mem->count(); i++) { + ASSERT_NEAR(mem_ptr[i], std::get<0>(ref_data)[i], tolerance) << " at index=" << i; + } + } + + if (scores_output_mem) { + ASSERT_EQ(scores_output_mem->count(), std::get<1>(ref_data).size()); + mem_lock mem_ptr(scores_output_mem, get_test_stream()); + for (size_t i = 0; i < scores_output_mem->count(); i++) { + ASSERT_NEAR(mem_ptr[i], std::get<1>(ref_data)[i], tolerance) << " at index=" << i; + } + } + + if (diversity_output_mem) { + ASSERT_EQ(diversity_output_mem->count(), std::get<2>(ref_data).size()); + mem_lock mem_ptr(diversity_output_mem, get_test_stream()); + // Relaxed tolerance due to float32 (GPU) vs float16 (reference) accumulator difference + float diversity_tolerance = tolerance * 10.0f; + for (size_t i = 0; i < diversity_output_mem->count(); i++) { + ASSERT_NEAR(mem_ptr[i], std::get<2>(ref_data)[i], diversity_tolerance) << " at index=" << i; + } + } + } + + void compare_xattention(memory::ptr data_output_mem, + memory::ptr scores_output_mem, + std::tuple, std::vector, std::vector> ref_data, + size_t num_heads, + size_t head_size) { + if (data_output_mem) { + ASSERT_EQ(data_output_mem->count(), std::get<0>(ref_data).size()); + mem_lock mem_ptr(data_output_mem, get_test_stream()); + int mismatch_count = 0; + +#if XATTENTION_DEBUG_VERBOSE + XAttentionErrorStats stats; + collect_xattention_error_stats(mem_ptr.data(), std::get<0>(ref_data), num_heads, head_size, tolerance, stats); + mismatch_count = stats.mismatch_count; + + // Print detailed statistics on failure + if (mismatch_count > int(data_output_mem->count() * 0.04)) { + print_xattention_error_details(stats, mem_ptr.data(), std::get<0>(ref_data), num_heads, head_size, tolerance); + } +#else + // Simple counting when verbose debug is disabled + for (size_t i = 0; i < data_output_mem->count(); i++) { + float actual = static_cast(mem_ptr[i]); + float expected = static_cast(std::get<0>(ref_data)[i]); + float error = std::fabs(actual - expected); + if (error > tolerance) { + mismatch_count++; + } + } +#endif + + EXPECT_LE(mismatch_count, int(data_output_mem->count() * 0.04)); + } + + if (scores_output_mem) { + ASSERT_EQ(scores_output_mem->count(), std::get<1>(ref_data).size()); + mem_lock mem_ptr(scores_output_mem, get_test_stream()); + int mismatch_count = 0; + for (size_t i = 0; i < scores_output_mem->count(); i++) { + if (std::fabs(static_cast(mem_ptr[i]) - static_cast(std::get<1>(ref_data)[i])) > tolerance) { + mismatch_count++; + } + } + EXPECT_LE(mismatch_count, int(scores_output_mem->count() * 0.04)); + } + } + +private: + // Helper: Verify CM PA KV cache was correctly written (CM path only) + void verify_cm_kv_cache_write(const T& p) { + if (last_key_cache_mem == nullptr || !p.has_xattention) + return; + + // Count total tokens for single-token BY_CHANNEL skip logic + int total_new_tokens = 0; + for (const auto& s : p.subsequences) + total_new_tokens += s.num_tokens; + + constexpr int kv_sub_block_size = 16; + const bool is_by_channel = p.kv_cache_compression && p.key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL; + const bool is_by_token = p.kv_cache_compression && p.key_cache_quant_mode == ov::internal::CacheQuantMode::BY_TOKEN; + + // CM cache layout: [num_blocks, num_kv_heads, adjusted_block_size, adjusted_head_size] + const int adj_head_size = is_by_token ? (p.k_head_size + 4) : p.k_head_size; + const int adj_block_size = is_by_channel ? (p.block_size + (p.block_size / kv_sub_block_size) * 4) : p.block_size; + const int elem_size = p.kv_cache_compression ? 1 : 2; + const size_t head_region_bytes = static_cast(adj_block_size) * adj_head_size * elem_size; + const size_t block_stride_bytes = static_cast(p.num_kv_heads) * head_region_bytes; + const int token_data_stride = p.k_head_size * elem_size; + + mem_lock cache_lock(last_key_cache_mem, get_test_stream()); + + int missing_count = 0, nan_count = 0, inf_count = 0, zero_scale_count = 0, out_of_range_zp_count = 0; + std::vector> nan_locations, inf_locations; + std::vector> zero_scale_locations, out_of_range_zp_locations; + + int total_tokens = 0; + for (int i = 0; i < static_cast(p.subsequences.size()); i++) { + const int past_len = p.subsequences[i].past_len; + const int num_tokens = p.subsequences[i].num_tokens; + for (int t = 0; t < num_tokens; t++) { + total_tokens++; + const int absolute_pos = past_len + t; + const int block_idx = absolute_pos / p.block_size; + const int token_in_block = absolute_pos % p.block_size; + const int physical_block = last_block_indices[last_block_indices_begins[i] + block_idx]; + const size_t block_base = static_cast(physical_block) * block_stride_bytes; + + for (int head = 0; head < p.num_kv_heads; head++) { + const size_t head_base = block_base + static_cast(head) * head_region_bytes; + const size_t token_offset = head_base + static_cast(token_in_block) * token_data_stride; + + // Check for missing token write (all-zero data) + bool skip_zero_check = is_by_channel && (total_new_tokens <= 1); + if (!skip_zero_check) { + bool all_zero = true; + for (int b = 0; b < token_data_stride; b++) { + if (cache_lock[token_offset + b] != 0) { + all_zero = false; + break; + } + } + if (all_zero && head == 0) { + missing_count++; + GPU_DEBUG_LOG << "KV cache update MISSING: seq=" << i << " token=" << t << " (absolute_pos=" << absolute_pos + << ") at byte_offset=" << token_offset << std::endl; + } + } + + // Check for NaN/INF in data or scale/zp + check_kv_cache_nan_inf(cache_lock.data(), + p, + is_by_token, + is_by_channel, + head_base, + token_in_block, + i, + t, + absolute_pos, + head, + nan_count, + inf_count, + zero_scale_count, + out_of_range_zp_count, + nan_locations, + inf_locations, + zero_scale_locations, + out_of_range_zp_locations); + } + } + } + + report_kv_cache_issues(nan_count, + inf_count, + zero_scale_count, + out_of_range_zp_count, + nan_locations, + inf_locations, + zero_scale_locations, + out_of_range_zp_locations, + total_tokens, + p, + is_by_token, + is_by_channel); + EXPECT_EQ(missing_count, 0) << missing_count << " out of " << total_tokens << " tokens were not written to key cache by KV update kernel"; + EXPECT_EQ(nan_count, 0) << "KV cache contains NaN values"; + EXPECT_EQ(inf_count, 0) << "KV cache contains INF values"; + EXPECT_EQ(zero_scale_count, 0) << "KV cache contains zero/near-zero scale values (causes division by zero in dequant)"; + // ZP can be outside [0, 255] legitimately - see pa-quantization skill for details + } + + // Helper: Check for NaN/INF in KV cache token + void check_kv_cache_nan_inf(const int8_t* cache_data, + const T& p, + bool is_by_token, + bool is_by_channel, + size_t head_base, + int token_in_block, + int seq_idx, + int token_idx, + int absolute_pos, + int head, + int& nan_count, + int& inf_count, + int& zero_scale_count, + int& out_of_range_zp_count, + std::vector>& nan_locations, + std::vector>& inf_locations, + std::vector>& zero_scale_locations, + std::vector>& out_of_range_zp_locations) { + constexpr int kv_sub_block_size = 16; + const size_t token_offset = head_base + static_cast(token_in_block) * p.k_head_size * (p.kv_cache_compression ? 1 : 2); + + if (!p.kv_cache_compression) { + // FP16 cache: check data for NaN/INF + const ov::float16* fp16_ptr = reinterpret_cast(cache_data + token_offset); + for (int dim = 0; dim < p.k_head_size; dim++) { + float val = static_cast(fp16_ptr[dim]); + if (std::isnan(val)) { + nan_count++; + if (nan_locations.size() < 10) { + nan_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, dim)); + } + } + if (std::isinf(val)) { + inf_count++; + if (inf_locations.size() < 10) { + inf_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, dim)); + } + } + } + } else if (is_by_token) { + // BY_TOKEN: check scale/zp + const size_t scale_offset = head_base + static_cast(p.block_size) * p.k_head_size + static_cast(token_in_block) * 2; + const size_t zp_offset = scale_offset + static_cast(p.block_size) * 2; + const ov::float16* scale_ptr = reinterpret_cast(cache_data + scale_offset); + const ov::float16* zp_ptr = reinterpret_cast(cache_data + zp_offset); + float scale = static_cast(*scale_ptr); + float zp = static_cast(*zp_ptr); + + check_scale_zp_validity(scale, + zp, + seq_idx, + token_idx, + absolute_pos, + head, + -1, + nan_count, + inf_count, + zero_scale_count, + out_of_range_zp_count, + nan_locations, + inf_locations, + zero_scale_locations, + out_of_range_zp_locations); + } else if (is_by_channel) { + // BY_CHANNEL: check scale/zp per channel (only first 4 channels to limit overhead) + int sub_block_idx = token_in_block / kv_sub_block_size; + int group_num = p.block_size / kv_sub_block_size; + for (int ch = 0; ch < std::min(p.k_head_size, 4); ch++) { + size_t scale_offset = + head_base + static_cast(p.block_size) * p.k_head_size + (static_cast(sub_block_idx) * p.k_head_size + ch) * 2; + size_t zp_offset = scale_offset + static_cast(group_num) * p.k_head_size * 2; + const ov::float16* scale_ptr = reinterpret_cast(cache_data + scale_offset); + const ov::float16* zp_ptr = reinterpret_cast(cache_data + zp_offset); + float scale = static_cast(*scale_ptr); + float zp = static_cast(*zp_ptr); + + check_scale_zp_validity(scale, + zp, + seq_idx, + token_idx, + absolute_pos, + head, + ch, + nan_count, + inf_count, + zero_scale_count, + out_of_range_zp_count, + nan_locations, + inf_locations, + zero_scale_locations, + out_of_range_zp_locations); + } + } + } + + // Helper: Check scale/zp for NaN/INF/zero + void check_scale_zp_validity(float scale, + float zp, + int seq_idx, + int token_idx, + int absolute_pos, + int head, + int dim, + int& nan_count, + int& inf_count, + int& zero_scale_count, + int& out_of_range_zp_count, + std::vector>& nan_locations, + std::vector>& inf_locations, + std::vector>& zero_scale_locations, + std::vector>& out_of_range_zp_locations) { + if (std::isnan(scale) || std::isnan(zp)) { + nan_count += (std::isnan(scale) ? 1 : 0) + (std::isnan(zp) ? 1 : 0); + if (nan_locations.size() < 10) { + nan_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, dim)); + } + } + if (std::isinf(scale) || std::isinf(zp)) { + inf_count += (std::isinf(scale) ? 1 : 0) + (std::isinf(zp) ? 1 : 0); + if (inf_locations.size() < 10) { + inf_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, dim)); + } + } + if (std::fabs(scale) < 1e-6f) { + zero_scale_count++; + if (zero_scale_locations.size() < 10) { + zero_scale_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, scale, zp)); + } + } + if (zp < -1.0f || zp > 256.0f) { + out_of_range_zp_count++; + if (out_of_range_zp_locations.size() < 10) { + out_of_range_zp_locations.push_back(std::make_tuple(seq_idx, token_idx, absolute_pos, head, scale, zp)); + } + } + } + + // Helper: Report KV cache verification issues + void report_kv_cache_issues(int nan_count, + int inf_count, + int zero_scale_count, + int out_of_range_zp_count, + const std::vector>& nan_locations, + const std::vector>& inf_locations, + const std::vector>& zero_scale_locations, + const std::vector>& out_of_range_zp_locations, + int total_tokens, + const T& p, + bool is_by_token, + bool is_by_channel) { + if (nan_count > 0) { + GPU_DEBUG_LOG << "\nKV cache contains " << nan_count << " NaN values:" << std::endl; + for (const auto& [seq, tok, abs_pos, h, d] : nan_locations) { + GPU_DEBUG_LOG << " seq=" << seq << " token=" << tok << " (absolute_pos=" << abs_pos << ") head=" << h; + if (d == -1) { + GPU_DEBUG_LOG << " [BY_TOKEN scale/zp]"; + } else if (d >= 0) { + GPU_DEBUG_LOG << " [BY_CHANNEL scale/zp channel=" << d << "]"; + } else { + GPU_DEBUG_LOG << " [FP16 dim=" << d << "]"; + } + GPU_DEBUG_LOG << std::endl; + } + if (nan_locations.size() < static_cast(nan_count)) { + GPU_DEBUG_LOG << " ... and " << (nan_count - nan_locations.size()) << " more" << std::endl; + } + } + if (inf_count > 0) { + GPU_DEBUG_LOG << "\nKV cache contains " << inf_count << " INF values:" << std::endl; + for (const auto& [seq, tok, abs_pos, h, d] : inf_locations) { + GPU_DEBUG_LOG << " seq=" << seq << " token=" << tok << " (absolute_pos=" << abs_pos << ") head=" << h; + if (d == -1) { + GPU_DEBUG_LOG << " [BY_TOKEN scale/zp]"; + } else if (d >= 0) { + GPU_DEBUG_LOG << " [BY_CHANNEL scale/zp channel=" << d << "]"; + } else { + GPU_DEBUG_LOG << " [FP16 dim=" << d << "]"; + } + GPU_DEBUG_LOG << std::endl; + } + if (inf_locations.size() < static_cast(inf_count)) { + GPU_DEBUG_LOG << " ... and " << (inf_count - inf_locations.size()) << " more" << std::endl; + } + } + if (zero_scale_count > 0) { + GPU_DEBUG_LOG << "\nKV cache contains " << zero_scale_count << " zero/near-zero scale values:" << std::endl; + for (const auto& [seq, tok, abs_pos, h, scale, zp] : zero_scale_locations) { + GPU_DEBUG_LOG << " seq=" << seq << " token=" << tok << " (absolute_pos=" << abs_pos << ") head=" << h << " scale=" << scale << " zp=" << zp + << std::endl; + } + if (zero_scale_locations.size() < static_cast(zero_scale_count)) { + GPU_DEBUG_LOG << " ... and " << (zero_scale_count - zero_scale_locations.size()) << " more" << std::endl; + } + } + if (out_of_range_zp_count > 0) { + GPU_DEBUG_LOG << "\nKV cache contains " << out_of_range_zp_count + << " ZP values outside typical [0,255] range (NOTE: this is valid for shifted data distributions):" << std::endl; + for (const auto& [seq, tok, abs_pos, h, scale, zp] : out_of_range_zp_locations) { + GPU_DEBUG_LOG << " seq=" << seq << " token=" << tok << " (absolute_pos=" << abs_pos << ") head=" << h << " scale=" << scale << " zp=" << zp + << std::endl; + } + if (out_of_range_zp_locations.size() < static_cast(out_of_range_zp_count)) { + GPU_DEBUG_LOG << " ... and " << (out_of_range_zp_count - out_of_range_zp_locations.size()) << " more" << std::endl; + } + } + + if (nan_count == 0 && inf_count == 0 && zero_scale_count == 0 && out_of_range_zp_count == 0) { + GPU_DEBUG_LOG << "\nKV cache verification PASSED: " << total_tokens << " tokens checked"; + if (p.kv_cache_compression) { + GPU_DEBUG_LOG << " (compression mode: " << (is_by_token ? "BY_TOKEN" : (is_by_channel ? "BY_CHANNEL" : "UNKNOWN")) << ")"; + } else { + GPU_DEBUG_LOG << " (FP16 mode)"; + } + GPU_DEBUG_LOG << std::endl; + } + } + +private: + // Helper structure to hold XAttention error statistics + struct XAttentionErrorStats { + int mismatch_count = 0; + int catastrophic_count = 0; // NaN, Inf, or error > 1.0 + int large_error_count = 0; // error > 0.1 + float max_error = 0.0f; + float avg_error = 0.0f; + float avg_mismatch_error = 0.0f; + size_t first_mismatch_idx = 0; + float first_mismatch_actual = 0.0f; + float first_mismatch_expected = 0.0f; + bool found_first = false; + + // Separate counters for different abnormal value types + int actual_nan_count = 0; + int expected_nan_count = 0; + int actual_inf_count = 0; + int expected_inf_count = 0; + int actual_gt1_count = 0; + int expected_gt1_count = 0; + int error_gt1_count = 0; + + // Track coordinates of abnormal values + std::vector> actual_nan_coords; // (token, head, dim, value) + std::vector> expected_nan_coords; + std::vector> actual_inf_coords; + std::vector> expected_inf_coords; + std::vector> actual_gt1_coords; + std::vector> expected_gt1_coords; + }; + + // Collect XAttention error statistics by comparing GPU output with CPU reference + static void collect_xattention_error_stats(const ov::float16* mem_ptr, + const std::vector& ref_output, + size_t num_heads, + size_t head_size, + float tolerance, + XAttentionErrorStats& stats) { + size_t total_elements = ref_output.size(); + for (size_t i = 0; i < total_elements; i++) { + float actual = static_cast(mem_ptr[i]); + float expected = static_cast(ref_output[i]); + float error = std::fabs(actual - expected); + + stats.avg_error += error; + stats.max_error = std::max(stats.max_error, error); + + // Calculate coordinates: output layout is [T, Q * H] + size_t head_dim_flat = i % (num_heads * head_size); + size_t token_idx = i / (num_heads * head_size); + size_t head_idx = head_dim_flat / head_size; + size_t dim_idx = head_dim_flat % head_size; + + // Separate checks for actual vs expected with coordinate tracking + if (std::isnan(actual)) { + stats.actual_nan_count++; + stats.actual_nan_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, actual)); + } + if (std::isnan(expected)) { + stats.expected_nan_count++; + stats.expected_nan_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, expected)); + } + if (std::isinf(actual)) { + stats.actual_inf_count++; + stats.actual_inf_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, actual)); + } + if (std::isinf(expected)) { + stats.expected_inf_count++; + stats.expected_inf_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, expected)); + } + if (!std::isnan(actual) && !std::isinf(actual) && std::fabs(actual) > 1.0f) { + stats.actual_gt1_count++; + stats.actual_gt1_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, actual)); + } + if (!std::isnan(expected) && !std::isinf(expected) && std::fabs(expected) > 1.0f) { + stats.expected_gt1_count++; + stats.expected_gt1_coords.push_back(std::make_tuple(token_idx, head_idx, dim_idx, expected)); + } + if (error > 1.0f) + stats.error_gt1_count++; + + if (std::isnan(actual) || std::isinf(actual) || error > 1.0f) { + stats.catastrophic_count++; + } + if (error > 0.1f) { + stats.large_error_count++; + } + + if (error > tolerance) { + if (!stats.found_first) { + stats.first_mismatch_idx = i; + stats.first_mismatch_actual = actual; + stats.first_mismatch_expected = expected; + stats.found_first = true; + } + stats.avg_mismatch_error += error; + stats.mismatch_count++; + } + } + + stats.avg_error /= total_elements; + if (stats.mismatch_count > 0) { + stats.avg_mismatch_error /= stats.mismatch_count; + } + } + + // Print coordinates of abnormal values (NaN/INF/large values) + static void print_abnormal_value_coords(const std::string& label, const std::vector>& coords, int count) { + GPU_DEBUG_LOG << " " << label << ": " << count << std::endl; + if (count > 0) { + GPU_DEBUG_LOG << " Coordinates (token, head, dim, value):" << std::endl; + size_t show_count = std::min(coords.size(), size_t(10)); + for (size_t j = 0; j < show_count; j++) { + auto [t, h, d, v] = coords[j]; + GPU_DEBUG_LOG << " [" << t << ", " << h << ", " << d << "] = " << v << std::endl; + } + if (coords.size() > 10) { + GPU_DEBUG_LOG << " ... and " << (coords.size() - 10) << " more" << std::endl; + } + } + } + + // Print catastrophic error locations with detailed tags + static void print_catastrophic_errors(const ov::float16* mem_ptr, + const std::vector& ref_output, + size_t num_heads, + size_t head_size, + int catastrophic_count) { + if (catastrophic_count > 0 && catastrophic_count <= 20) { + GPU_DEBUG_LOG << "\nCatastrophic error locations (NaN/Inf/error>1.0):" << std::endl; + size_t total_elements = ref_output.size(); + size_t total_tokens = total_elements / (num_heads * head_size); + + GPU_DEBUG_LOG << " Dimensions: tokens=" << total_tokens << " heads=" << num_heads << " head_size=" << head_size << " (total=" << total_elements + << ")" << std::endl; + + for (size_t i = 0; i < total_elements; i++) { + float actual = static_cast(mem_ptr[i]); + float expected = static_cast(ref_output[i]); + float error = std::fabs(actual - expected); + if (std::isnan(actual) || std::isnan(expected) || std::isinf(actual) || std::isinf(expected) || error > 1.0f) { + // Memory layout: [token][head][dim] with innermost dimension first + size_t elements_per_token = num_heads * head_size; + size_t token = i / elements_per_token; + size_t within_token = i % elements_per_token; + size_t head = within_token / head_size; + size_t dim = within_token % head_size; + + GPU_DEBUG_LOG << " Index[" << i << "]: token=" << token << " head=" << head << " dim=" << dim << " | actual=" << actual + << " expected=" << expected << " error=" << error; + + // Tag each type + std::vector tags; + if (std::isnan(actual)) + tags.push_back("ACTUAL_NaN"); + if (std::isnan(expected)) + tags.push_back("EXPECTED_NaN"); + if (std::isinf(actual)) + tags.push_back("ACTUAL_INF"); + if (std::isinf(expected)) + tags.push_back("EXPECTED_INF"); + if (!std::isnan(actual) && !std::isinf(actual) && std::fabs(actual) > 1.0f) + tags.push_back("ACTUAL_>1.0"); + if (!std::isnan(expected) && !std::isinf(expected) && std::fabs(expected) > 1.0f) + tags.push_back("EXPECTED_>1.0"); + if (error > 1.0f) + tags.push_back("ERROR_>1.0"); + + if (!tags.empty()) { + GPU_DEBUG_LOG << " ["; + for (size_t t = 0; t < tags.size(); t++) { + if (t > 0) { + GPU_DEBUG_LOG << ", "; + } + GPU_DEBUG_LOG << tags[t]; + } + GPU_DEBUG_LOG << "]"; + } + GPU_DEBUG_LOG << std::endl; + } + } + } + } + + // Print error distribution by 1024-element blocks + static void print_error_distribution(const ov::float16* mem_ptr, const std::vector& ref_output, float tolerance) { + GPU_DEBUG_LOG << "\nError distribution (by 1024-element blocks):" << std::endl; + size_t block_size = 1024; + size_t total_elements = ref_output.size(); + for (size_t block = 0; block < (total_elements + block_size - 1) / block_size && block < 10; block++) { + int block_mismatches = 0; + size_t start = block * block_size; + size_t end = std::min(start + block_size, total_elements); + for (size_t i = start; i < end; i++) { + float error = std::fabs(static_cast(mem_ptr[i]) - static_cast(ref_output[i])); + if (error > tolerance) + block_mismatches++; + } + GPU_DEBUG_LOG << " Block " << block << " [" << start << "-" << end << "): " << block_mismatches << "/" << (end - start) << " (" + << (100.0 * block_mismatches / (end - start)) << "%)" << std::endl; + } + } + + // Print detailed XAttention error analysis + static void print_xattention_error_details(const XAttentionErrorStats& stats, + const ov::float16* mem_ptr, + const std::vector& ref_output, + size_t num_heads, + size_t head_size, + float tolerance) { + auto& engine = get_test_engine(); + auto arch = engine.get_device_info().arch; + std::string arch_name = (arch == gpu_arch::xe2) ? "Xe2" : (arch == gpu_arch::xe3) ? "Xe3" : "Xe1"; + size_t total_elements = ref_output.size(); + int allowed_mismatches = int(total_elements * 0.04); + + GPU_DEBUG_LOG << "\n=== XAttention Data Comparison Failed ===" << std::endl; + GPU_DEBUG_LOG << "GPU Architecture: " << arch_name << " (arch=" << static_cast(arch) << ")" << std::endl; + GPU_DEBUG_LOG << "Total elements: " << total_elements << std::endl; + GPU_DEBUG_LOG << "\nError Summary:" << std::endl; + GPU_DEBUG_LOG << " Mismatches (> tolerance): " << stats.mismatch_count << " (" << (100.0 * stats.mismatch_count / total_elements) << "%)" << std::endl; + GPU_DEBUG_LOG << " Allowed mismatches: " << allowed_mismatches << " (4%)" << std::endl; + GPU_DEBUG_LOG << " Large errors (> 0.1): " << stats.large_error_count << " (" << (100.0 * stats.large_error_count / total_elements) << "%)" + << std::endl; + GPU_DEBUG_LOG << " Catastrophic (NaN/Inf/>1.0): " << stats.catastrophic_count << std::endl; + + GPU_DEBUG_LOG << "\nAbnormal Value Analysis:" << std::endl; + GPU_DEBUG_LOG << " Actual output (GPU):" << std::endl; + print_abnormal_value_coords("NaN values", stats.actual_nan_coords, stats.actual_nan_count); + print_abnormal_value_coords("INF values", stats.actual_inf_coords, stats.actual_inf_count); + print_abnormal_value_coords("Values > 1.0", stats.actual_gt1_coords, stats.actual_gt1_count); + GPU_DEBUG_LOG << " Expected output (CPU reference):" << std::endl; + print_abnormal_value_coords("NaN values", stats.expected_nan_coords, stats.expected_nan_count); + print_abnormal_value_coords("INF values", stats.expected_inf_coords, stats.expected_inf_count); + print_abnormal_value_coords("Values > 1.0", stats.expected_gt1_coords, stats.expected_gt1_count); + GPU_DEBUG_LOG << " Error magnitude:" << std::endl; + GPU_DEBUG_LOG << " Errors > 1.0: " << stats.error_gt1_count << std::endl; + GPU_DEBUG_LOG << "\nError Magnitudes:" << std::endl; + GPU_DEBUG_LOG << " Tolerance threshold: " << tolerance << std::endl; + GPU_DEBUG_LOG << " Max error: " << stats.max_error << std::endl; + GPU_DEBUG_LOG << " Avg error (all): " << stats.avg_error << std::endl; + GPU_DEBUG_LOG << " Avg error (mismatches only): " << stats.avg_mismatch_error << std::endl; + GPU_DEBUG_LOG << "First mismatch at index " << stats.first_mismatch_idx << ":" << std::endl; + GPU_DEBUG_LOG << " Actual: " << stats.first_mismatch_actual << std::endl; + GPU_DEBUG_LOG << " Expected: " << stats.first_mismatch_expected << std::endl; + GPU_DEBUG_LOG << " Error: " << std::fabs(stats.first_mismatch_actual - stats.first_mismatch_expected) << std::endl; + + // Sample first 10 mismatches + GPU_DEBUG_LOG << "\nFirst 10 mismatches:" << std::endl; + int sample_count = 0; + for (size_t i = 0; i < total_elements && sample_count < 10; i++) { + float actual = static_cast(mem_ptr[i]); + float expected = static_cast(ref_output[i]); + float error = std::fabs(actual - expected); + if (error > tolerance) { + GPU_DEBUG_LOG << " [" << i << "] actual=" << actual << " expected=" << expected << " error=" << error << std::endl; + sample_count++; + } + } + + print_catastrophic_errors(mem_ptr, ref_output, num_heads, head_size, stats.catastrophic_count); + + // Analyze error type + GPU_DEBUG_LOG << "\nError Analysis:" << std::endl; + if (stats.catastrophic_count > 0) { + GPU_DEBUG_LOG << " ERROR TYPE: CATASTROPHIC - Contains NaN/Inf or very large errors" << std::endl; + GPU_DEBUG_LOG << " This indicates a serious bug, not just precision issues." << std::endl; + } else if (stats.large_error_count > stats.mismatch_count * 0.5) { + GPU_DEBUG_LOG << " ERROR TYPE: LARGE - Most mismatches have error > 0.1" << std::endl; + GPU_DEBUG_LOG << " This suggests wrong calculations, not precision drift." << std::endl; + } else { + GPU_DEBUG_LOG << " ERROR TYPE: PRECISION - Most errors are small" << std::endl; + GPU_DEBUG_LOG << " This suggests accumulated floating-point errors." << std::endl; + } + + // Comment on tolerance metric + GPU_DEBUG_LOG << "\nTolerance Metric Analysis:" << std::endl; + GPU_DEBUG_LOG << " Using: Absolute error with threshold " << tolerance << std::endl; + GPU_DEBUG_LOG << " Input range: Normal(0, 0.1), typically [-0.3, 0.3]" << std::endl; + GPU_DEBUG_LOG << " Relative error at typical values: ~" << (tolerance / 0.1 * 100) << "%" << std::endl; + GPU_DEBUG_LOG << " Verdict: Tolerance is reasonable for FP16 attention calculations" << std::endl; + + print_error_distribution(mem_ptr, ref_output, tolerance); + GPU_DEBUG_LOG << "========================================\n" << std::endl; + } + +public: + static bool check_cm_available() { + auto& engine = get_test_engine(); + ExecutionConfig config = get_test_default_config(engine); + return cldnn::check_cm_jit_support(engine, config) && engine.get_device_info().supports_immad; + } +}; + +struct paged_attention_test_params { + std::vector subsequences; + int num_heads; + int num_kv_heads; + int k_head_size; + int v_head_size; + int block_size; + int sliding_window_size; + bool kv_cache_compression; + ov::internal::CacheQuantMode key_cache_quant_mode; + bool dynamic_paddings; + ScoresMode scores_mode; + CacheRotationDescriptor rotation_config; + bool disable_flashattn_v2; + bool has_adaptive_rkv = false; + int start_size = 0; // Common start_size for all sequences + std::vector evictable_sizes; // Per-sequence evictable sizes + + // XAttention-related params are grouped below. + bool has_xattention = false; + std::optional> xattention_threshold = std::nullopt; + std::optional> xattention_block_size = std::nullopt; + + ov::element::Type kv_cache_precision = ov::element::dynamic; + + // test query-to-query attention bias + bool has_qq_bias = false; + QueryToQueryAttentionDescriptor qq_bias_config = {}; + bool run_reference = true; + + // optional token_type_ids passed to PagedAttention; if set (non-empty), it is forwarded + // to the op as the TOKEN_TYPE_IDS input. When std::nullopt, a default {0} buffer is used. + std::optional> token_type_ids = std::nullopt; +}; + +const auto ENABLE_CACHE_COMPRESSION = true; +const auto DISABLE_CACHE_COMPRESSION = false; +const auto DISABLE_SCORES = ScoresMode::DISABLED; +const auto ENABLE_SCORES = ScoresMode::LAST_TOKEN; +const auto ENABLE_SCORES_SNAPKV = ScoresMode::SNAPKV; +const auto PER_BLOCK_ROTATION = CacheRotationDescriptor{true, true}; +const auto PER_TOKEN_ROTATION = CacheRotationDescriptor{true, false}; +const auto DISABLE_ROTATION = CacheRotationDescriptor{false, false}; +const auto STATIC_INPUT_PAD = false; +const auto DYNAMIC_INPUT_PAD = true; +const auto ENABLE_FA_V2 = false; +const auto DISABLE_FA_V2 = true; +const auto ENABLE_DIVERSITY = true; +const auto DISABLE_DIVERSITY = false; +const auto ENABLE_QQ_BIAS = QueryToQueryAttentionDescriptor{{{{1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1}}}, {0, 16}}; diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp new file mode 100644 index 000000000000..8bf69c26cb29 --- /dev/null +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp @@ -0,0 +1,106 @@ +// Copyright (C) 2018-2026 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "paged_attention_gpu_test.hpp" +#include "test_utils/test_data/paged_attention_token_type_test_data.h" + +struct paged_attention_token_type_test_params : public paged_attention_test_params { + test::TestData token_type_test_data; +}; + +class paged_attention_token_type_test : public PagedAttentionTest { +public: + void apply_token_type_test_data(PagedAttentionManager& pam, const paged_attention_token_type_test_params& p, const test::TestData& data) { + ASSERT_EQ(p.subsequences.size(), 1); + ASSERT_EQ(p.subsequences[0].past_len, 0); + + const size_t seq_len = data.tokenTypes.size(); + const size_t hidden_dim = static_cast(p.num_heads) * static_cast(p.k_head_size); + ASSERT_EQ(static_cast(p.subsequences[0].num_tokens), seq_len); + ASSERT_EQ(data.qData.size(), seq_len * hidden_dim); + ASSERT_EQ(data.kData.size(), seq_len * hidden_dim); + ASSERT_EQ(data.vData.size(), seq_len * hidden_dim); + ASSERT_EQ(data.expectedOutput.size(), seq_len * hidden_dim); + + pam.query_data = {to_float16(data.qData)}; + pam.key_data = {to_float16(data.kData)}; + pam.value_data = {to_float16(data.vData)}; + pam.token_type_ids.assign(data.tokenTypes.begin(), data.tokenTypes.end()); + } + + void compare_token_type_output(memory::ptr data_output_mem, const std::vector& expected_output) { + ASSERT_TRUE(data_output_mem); + ASSERT_EQ(data_output_mem->count(), expected_output.size()); + mem_lock mem_ptr(data_output_mem, get_test_stream()); + constexpr float token_type_tolerance = 1e-2f; + for (size_t i = 0; i < data_output_mem->count(); i++) { + ASSERT_NEAR(static_cast(mem_ptr[i]), expected_output[i], token_type_tolerance) << " at index=" << i; + } + } +}; +TEST_P(paged_attention_token_type_test, basic) { + auto p = GetParam(); + + ASSERT_TRUE(this->pam.has_value()); + auto& pam = *this->pam; + + apply_token_type_test_data(pam, p, p.token_type_test_data); + + auto result = run_gpu_inference(pam, p); + + cldnn::memory::ptr output_data_mem = nullptr; + cldnn::memory::ptr output_scores_mem = nullptr; + cldnn::memory::ptr output_diversity_mem = nullptr; + + output_data_mem = result.outputs.at("output_data").get_memory(); + + compare_token_type_output(output_data_mem, p.token_type_test_data.expectedOutput); +} + +static paged_attention_token_type_test_params make_token_type_test_param(const test::TestData& data, int sliding_window_size, bool disable_flashattn_v2) { + paged_attention_token_type_test_params p; + p.subsequences = {{static_cast(data.tokenTypes.size()), 0}}; + p.num_heads = 1; + p.num_kv_heads = 1; + p.k_head_size = 32; + p.v_head_size = 32; + p.block_size = 16; + p.sliding_window_size = sliding_window_size; + p.kv_cache_compression = DISABLE_CACHE_COMPRESSION; + p.key_cache_quant_mode = ov::internal::CacheQuantMode::BY_TOKEN; + p.dynamic_paddings = STATIC_INPUT_PAD; + p.scores_mode = DISABLE_SCORES; + p.rotation_config = DISABLE_ROTATION; + p.disable_flashattn_v2 = disable_flashattn_v2; + p.token_type_ids = std::vector(data.tokenTypes.begin(), data.tokenTypes.end()); + p.token_type_test_data = data; + return p; +} + +static std::vector make_token_type_test_params(const std::vector& test_data, int sliding_window_size) { + std::vector params; + params.reserve(test_data.size() * 2); + for (const auto& data : test_data) { + params.push_back(make_token_type_test_param(data, sliding_window_size, ENABLE_FA_V2)); + params.push_back(make_token_type_test_param(data, sliding_window_size, DISABLE_FA_V2)); + } + return params; +} + +static std::string get_token_type_test_name(const testing::TestParamInfo& obj) { + const auto& p = obj.param; + return p.token_type_test_data.name + "_SW" + std::to_string(p.sliding_window_size) + + (p.disable_flashattn_v2 == DISABLE_FA_V2 ? "_FlashAttnV2Disabled" : "_FlashAttnV2Enabled"); +} + +INSTANTIATE_TEST_SUITE_P(smoke_paged_attention_token_type, + paged_attention_token_type_test, + ::testing::ValuesIn(make_token_type_test_params(test::PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1(), 0)), + get_token_type_test_name); + +INSTANTIATE_TEST_SUITE_P( + smoke_paged_attention_token_type_sliding_window, + paged_attention_token_type_test, + ::testing::ValuesIn(make_token_type_test_params(test::PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1SlidingWindowSize5(), 5)), + get_token_type_test_name); From a831e2ae34773755decc281fbb7ed02f54b0fcf5 Mon Sep 17 00:00:00 2001 From: Piotr Kowalczyk Date: Thu, 11 Jun 2026 08:16:53 +0000 Subject: [PATCH 3/8] [gpu][test]: Resolved merge conflicts. --- .../test_cases/paged_attention_gpu_test.hpp | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp index 05a992ad96a2..080bcc432858 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp @@ -1774,6 +1774,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { cldnn::engine& engine = get_test_engine(); float tolerance = 2e-3; memory::ptr last_key_cache_mem = nullptr; + memory::ptr last_output_data_mem = nullptr; std::vector last_block_indices; std::vector last_block_indices_begins; std::optional pam; @@ -1801,6 +1802,15 @@ struct PagedAttentionTest : public ::testing::TestWithParam { p.kv_cache_precision); } + std::vector get_output_data() { + OPENVINO_ASSERT(last_output_data_mem != nullptr, "No output data available"); + std::vector result(last_output_data_mem->count()); + mem_lock mem_ptr(last_output_data_mem, get_test_stream()); + for (size_t i = 0; i < last_output_data_mem->count(); i++) + result[i] = mem_ptr[i]; + return result; + } + static std::vector to_float16(const std::vector& data) { std::vector result(data.size()); std::transform(data.begin(), data.end(), result.begin(), [](float value) { @@ -1868,6 +1878,10 @@ struct PagedAttentionTest : public ::testing::TestWithParam { EXPECT_EQ(pam.token_type_ids.size(), static_cast(pam.subsequence_descs.back().num_tokens + pam.subsequence_descs.back().past_len)); } + if (p.has_sink_input && p.sink_values.has_value()) { + pam.sinks = p.sink_values.value(); + } + if (p.kv_cache_compression) { // INT4 quantization has larger error than INT8 (~17x larger step size) tolerance = (kv_cache_precision == ov::element::u4 || kv_cache_precision == ov::element::i4) ? 75e-3 : 25e-3; @@ -2041,7 +2055,8 @@ struct PagedAttentionTest : public ::testing::TestWithParam { pa_prim.heads_num = p.num_heads; pa_prim.scale_val = pam.get_default_scale(); pa_prim.has_alibi = false; - pa_prim.has_token_type_ids = p.token_type_ids.has_value(); + pa_prim.has_token_type_ids = p.token_type_ids.has_value() || p.has_sink_input; + pa_prim.has_sink_input = p.has_sink_input; int num_outputs = 1; if (p.scores_mode != ScoresMode::DISABLED) @@ -2114,7 +2129,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { config.set_property(ov::intel_gpu::optimize_data(true)); config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); // FlashAttn v1 or v2? - config.set_property(ov::intel_gpu::could_use_flashattn_v2(p.disable_flashattn_v2)); + config.set_property(ov::intel_gpu::could_use_flashattn_v2(p.force_flashattn_v2 ? true : p.disable_flashattn_v2)); config.set_property(ov::internal::key_cache_quant_mode(p.key_cache_quant_mode)); if (kv_cache_precision != ov::element::dynamic) { config.set_property(ov::hint::kv_cache_precision(kv_cache_precision)); @@ -2156,6 +2171,9 @@ struct PagedAttentionTest : public ::testing::TestWithParam { result.outputs = network->execute(); + last_output_data_mem = result.outputs.at("output_data").get_memory(); + + return result; } @@ -2169,7 +2187,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { return; } - cldnn::memory::ptr output_data_mem = nullptr; + cldnn::memory::ptr output_data_mem = last_output_data_mem; cldnn::memory::ptr output_scores_mem = nullptr; cldnn::memory::ptr output_diversity_mem = nullptr; @@ -2922,6 +2940,14 @@ struct paged_attention_test_params { // optional token_type_ids passed to PagedAttention; if set (non-empty), it is forwarded // to the op as the TOKEN_TYPE_IDS input. When std::nullopt, a default {0} buffer is used. std::optional> token_type_ids = std::nullopt; + + // Sink input testing: when true, enables has_sink_input on the primitive and forces + // the sdpa_opt.cl path (by setting has_token_type_ids=true to disable micro-SDPA). + bool has_sink_input = false; + // When set, overrides the default sink values in PAM before memory allocation. + std::optional> sink_values = std::nullopt; + // When true, forces could_use_flashattn_v2(true) to guarantee the FA_V2 kernel path. + bool force_flashattn_v2 = false; }; const auto ENABLE_CACHE_COMPRESSION = true; From a8cbbf371a4c9ad97fa719bf79fff1069badb66a Mon Sep 17 00:00:00 2001 From: Piotr Kowalczyk Date: Thu, 11 Jun 2026 15:22:36 +0200 Subject: [PATCH 4/8] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../tests/unit/test_cases/paged_attention_gpu_test.hpp | 4 ++-- .../test_data/paged_attention_token_type_test_data.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp index 080bcc432858..16231139b143 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp @@ -1028,8 +1028,8 @@ struct PagedAttentionManager { namespace std { template <> struct hash { - uint64_t operator()(const ov::float16 __val) const { - return std::hash()(__val); + size_t operator()(const ov::float16& value) const noexcept { + return std::hash{}(static_cast(value)); } }; } // namespace std diff --git a/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h b/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h index e8ef6cf2882b..9ff4d1760673 100644 --- a/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h +++ b/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h @@ -4,6 +4,7 @@ #pragma once +#include #include #include From 57de96edd69cfdd7279787ddb36621bfd8630d5d Mon Sep 17 00:00:00 2001 From: Piotr Kowalczyk Date: Fri, 12 Jun 2026 10:11:18 +0000 Subject: [PATCH 5/8] [gpu][test]: Refactored code, removed using namespace tests --- .../test_cases/paged_attention_gpu_test.cpp | 2 +- ...pu_test.hpp => paged_attention_gpu_test.h} | 54 +++++++++---------- .../paged_attention_token_type_gpu_test.cpp | 4 +- 3 files changed, 29 insertions(+), 31 deletions(-) rename src/plugins/intel_gpu/tests/unit/test_cases/{paged_attention_gpu_test.hpp => paged_attention_gpu_test.h} (99%) diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp index ee5cc53a78da..719445cf8893 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "paged_attention_gpu_test.hpp" +#include "paged_attention_gpu_test.h" class paged_attention_test : public PagedAttentionTest {}; TEST_P(paged_attention_test, basic) { diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h similarity index 99% rename from src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp rename to src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h index 16231139b143..b43fb1ad4859 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.hpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h @@ -28,7 +28,6 @@ using namespace cldnn; using namespace ov::intel_gpu; -using namespace ::tests; // Enable detailed xattention debugging (dumps, extra comparison info) // Default: OFF (0). Set to 1 for investigation. @@ -1219,15 +1218,15 @@ struct PagedAttentionReference { auto value_mem = test_engine.allocate_memory(value_layout); auto scale_mem = test_engine.allocate_memory(scale_layout); - set_values(query_mem, query_data); + tests::set_values(query_mem, query_data); if (do_gqa_expand) { - set_values(key_mem, expanded_key_data); - set_values(value_mem, expanded_value_data); + tests::set_values(key_mem, expanded_key_data); + tests::set_values(value_mem, expanded_value_data); } else { - set_values(key_mem, key_data); - set_values(value_mem, value_data); + tests::set_values(key_mem, key_data); + tests::set_values(value_mem, value_data); } - set_values(scale_mem, {static_cast(scale)}); + tests::set_values(scale_mem, {static_cast(scale)}); ov::reference::XAttentionRetainedBlockIndicesForAllHeads retained_blocks; if (num_queries >= static_cast(block_size) && has_xattention) { @@ -1316,11 +1315,11 @@ struct PagedAttentionReference { reorder("scores_data", input_info("softmax"), format::bfyx, data_types::f16)); } - ExecutionConfig config = get_test_default_config(test_engine); + ExecutionConfig config = tests::get_test_default_config(test_engine); config.set_property(ov::intel_gpu::optimize_data(true)); config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); - network::ptr network = get_network(test_engine, topology, config, get_test_stream_ptr(), false); + network::ptr network = tests::get_network(test_engine, topology, config, tests::get_test_stream_ptr(), false); network->set_input_data("query", query_mem); network->set_input_data("key", key_mem); network->set_input_data("value", value_mem); @@ -1771,7 +1770,7 @@ template struct PagedAttentionTest : public ::testing::TestWithParam { public: tests::random_generator rg; - cldnn::engine& engine = get_test_engine(); + cldnn::engine& engine = tests::get_test_engine(); float tolerance = 2e-3; memory::ptr last_key_cache_mem = nullptr; memory::ptr last_output_data_mem = nullptr; @@ -1785,8 +1784,8 @@ struct PagedAttentionTest : public ::testing::TestWithParam { auto p = this->GetParam(); pam.emplace(rg, - get_test_engine(), - get_test_stream(), + tests::get_test_engine(), + tests::get_test_stream(), p.subsequences, p.num_heads, p.num_kv_heads, @@ -1805,7 +1804,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { std::vector get_output_data() { OPENVINO_ASSERT(last_output_data_mem != nullptr, "No output data available"); std::vector result(last_output_data_mem->count()); - mem_lock mem_ptr(last_output_data_mem, get_test_stream()); + mem_lock mem_ptr(last_output_data_mem, tests::get_test_stream()); for (size_t i = 0; i < last_output_data_mem->count(); i++) result[i] = mem_ptr[i]; return result; @@ -2000,10 +1999,10 @@ struct PagedAttentionTest : public ::testing::TestWithParam { padded_query_data_layout.data_padding._lower_size[padding_axis] = pad_before; padded_query_data_layout.data_padding._upper_size[padding_axis] = pad_after; - auto new_query_memory = get_test_engine().allocate_memory(padded_query_data_layout, false); + auto new_query_memory = tests::get_test_engine().allocate_memory(padded_query_data_layout, false); - mem_lock query_mem_lock(query_mem, get_test_stream()); - mem_lock new_query_mem_lock(new_query_memory, get_test_stream()); + mem_lock query_mem_lock(query_mem, tests::get_test_stream()); + mem_lock new_query_mem_lock(new_query_memory, tests::get_test_stream()); auto query_data_shape = query_data_layout.get_shape(); for (size_t b = 0; b < query_data_shape[0]; b++) { @@ -2125,7 +2124,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { topology.add(input_layout("qq_bias_begins", qq_bias_begins_layout)); } - ExecutionConfig config = get_test_default_config(get_test_engine()); + ExecutionConfig config = tests::get_test_default_config(tests::get_test_engine()); config.set_property(ov::intel_gpu::optimize_data(true)); config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); // FlashAttn v1 or v2? @@ -2134,7 +2133,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { if (kv_cache_precision != ov::element::dynamic) { config.set_property(ov::hint::kv_cache_precision(kv_cache_precision)); } - network::ptr network = get_network(get_test_engine(), topology, config, get_test_stream_ptr(), false); + network::ptr network = tests::get_network(tests::get_test_engine(), topology, config, tests::get_test_stream_ptr(), false); network->set_input_data("query", query_mem); network->set_input_data("key", key_mem); network->set_input_data("value", value_mem); @@ -2173,7 +2172,6 @@ struct PagedAttentionTest : public ::testing::TestWithParam { last_output_data_mem = result.outputs.at("output_data").get_memory(); - return result; } @@ -2218,7 +2216,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { std::tuple, std::vector, std::vector> ref_data) { if (data_output_mem) { ASSERT_EQ(data_output_mem->count(), std::get<0>(ref_data).size()); - mem_lock mem_ptr(data_output_mem, get_test_stream()); + mem_lock mem_ptr(data_output_mem, tests::get_test_stream()); for (size_t i = 0; i < data_output_mem->count(); i++) { ASSERT_NEAR(mem_ptr[i], std::get<0>(ref_data)[i], tolerance) << " at index=" << i; } @@ -2226,7 +2224,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { if (scores_output_mem) { ASSERT_EQ(scores_output_mem->count(), std::get<1>(ref_data).size()); - mem_lock mem_ptr(scores_output_mem, get_test_stream()); + mem_lock mem_ptr(scores_output_mem, tests::get_test_stream()); for (size_t i = 0; i < scores_output_mem->count(); i++) { ASSERT_NEAR(mem_ptr[i], std::get<1>(ref_data)[i], tolerance) << " at index=" << i; } @@ -2234,7 +2232,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { if (diversity_output_mem) { ASSERT_EQ(diversity_output_mem->count(), std::get<2>(ref_data).size()); - mem_lock mem_ptr(diversity_output_mem, get_test_stream()); + mem_lock mem_ptr(diversity_output_mem, tests::get_test_stream()); // Relaxed tolerance due to float32 (GPU) vs float16 (reference) accumulator difference float diversity_tolerance = tolerance * 10.0f; for (size_t i = 0; i < diversity_output_mem->count(); i++) { @@ -2250,7 +2248,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { size_t head_size) { if (data_output_mem) { ASSERT_EQ(data_output_mem->count(), std::get<0>(ref_data).size()); - mem_lock mem_ptr(data_output_mem, get_test_stream()); + mem_lock mem_ptr(data_output_mem, tests::get_test_stream()); int mismatch_count = 0; #if XATTENTION_DEBUG_VERBOSE @@ -2279,7 +2277,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { if (scores_output_mem) { ASSERT_EQ(scores_output_mem->count(), std::get<1>(ref_data).size()); - mem_lock mem_ptr(scores_output_mem, get_test_stream()); + mem_lock mem_ptr(scores_output_mem, tests::get_test_stream()); int mismatch_count = 0; for (size_t i = 0; i < scores_output_mem->count(); i++) { if (std::fabs(static_cast(mem_ptr[i]) - static_cast(std::get<1>(ref_data)[i])) > tolerance) { @@ -2313,7 +2311,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { const size_t block_stride_bytes = static_cast(p.num_kv_heads) * head_region_bytes; const int token_data_stride = p.k_head_size * elem_size; - mem_lock cache_lock(last_key_cache_mem, get_test_stream()); + mem_lock cache_lock(last_key_cache_mem, tests::get_test_stream()); int missing_count = 0, nan_count = 0, inf_count = 0, zero_scale_count = 0, out_of_range_zp_count = 0; std::vector> nan_locations, inf_locations; @@ -2823,7 +2821,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { size_t num_heads, size_t head_size, float tolerance) { - auto& engine = get_test_engine(); + auto& engine = tests::get_test_engine(); auto arch = engine.get_device_info().arch; std::string arch_name = (arch == gpu_arch::xe2) ? "Xe2" : (arch == gpu_arch::xe3) ? "Xe3" : "Xe1"; size_t total_elements = ref_output.size(); @@ -2901,8 +2899,8 @@ struct PagedAttentionTest : public ::testing::TestWithParam { public: static bool check_cm_available() { - auto& engine = get_test_engine(); - ExecutionConfig config = get_test_default_config(engine); + auto& engine = tests::get_test_engine(); + ExecutionConfig config = tests::get_test_default_config(engine); return cldnn::check_cm_jit_support(engine, config) && engine.get_device_info().supports_immad; } }; diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp index 8bf69c26cb29..c2f9f1fd41ac 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "paged_attention_gpu_test.hpp" +#include "paged_attention_gpu_test.h" #include "test_utils/test_data/paged_attention_token_type_test_data.h" struct paged_attention_token_type_test_params : public paged_attention_test_params { @@ -32,7 +32,7 @@ class paged_attention_token_type_test : public PagedAttentionTest& expected_output) { ASSERT_TRUE(data_output_mem); ASSERT_EQ(data_output_mem->count(), expected_output.size()); - mem_lock mem_ptr(data_output_mem, get_test_stream()); + mem_lock mem_ptr(data_output_mem, tests::get_test_stream()); constexpr float token_type_tolerance = 1e-2f; for (size_t i = 0; i < data_output_mem->count(); i++) { ASSERT_NEAR(static_cast(mem_ptr[i]), expected_output[i], token_type_tolerance) << " at index=" << i; From 124fe22d3aeba4ae0beb4ad80dbe5174db1009cf Mon Sep 17 00:00:00 2001 From: Piotr Kowalczyk Date: Fri, 12 Jun 2026 10:25:13 +0000 Subject: [PATCH 6/8] [gpu][test]:refactoring, removed using cldnn. --- .../test_cases/paged_attention_gpu_test.h | 393 +++++++++--------- .../paged_attention_token_type_gpu_test.cpp | 4 +- 2 files changed, 199 insertions(+), 198 deletions(-) diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h index b43fb1ad4859..b046fb7c2617 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h @@ -26,7 +26,6 @@ #include "random_generator.hpp" #include "test_utils.h" -using namespace cldnn; using namespace ov::intel_gpu; // Enable detailed xattention debugging (dumps, extra comparison info) @@ -190,7 +189,7 @@ struct PagedAttentionManager { subsequence_begins.push_back(subsequence_end_pos); int subsequence_length = subsequence_desc.num_tokens + subsequence_desc.past_len; - int required_blocks = ceil_div(subsequence_length, block_size); + int required_blocks = cldnn::ceil_div(subsequence_length, block_size); int start_block_idx = block_indices.empty() ? 0 : block_indices.back() + 1; int end_block_idx = start_block_idx + required_blocks; for (int block_idx = start_block_idx; block_idx < end_block_idx; block_idx++) { @@ -233,21 +232,21 @@ struct PagedAttentionManager { } } - memory::ptr get_query_memory() { + cldnn::memory::ptr get_query_memory() { return get_QKV_memory(query_data, num_heads, k_head_size, false); } - memory::ptr get_key_memory() { + cldnn::memory::ptr get_key_memory() { return get_QKV_memory(key_data, num_kv_heads, k_head_size, true); } - memory::ptr get_value_memory() { + cldnn::memory::ptr get_value_memory() { return get_QKV_memory(value_data, num_kv_heads, v_head_size, true); } - memory::ptr get_key_cache_memory_cm() { + cldnn::memory::ptr get_key_cache_memory_cm() { constexpr int kv_sub_block_size = 16; - auto key_cache_dt = kv_cache_compression ? data_types::i8 : data_types::f16; + auto key_cache_dt = kv_cache_compression ? cldnn::data_types::i8 : cldnn::data_types::f16; const int head_size = k_head_size; int adjusted_head_size = head_size; int adjusted_block_size = block_size; @@ -265,7 +264,7 @@ struct PagedAttentionManager { static_cast(num_kv_heads), static_cast(adjusted_block_size), static_cast(adjusted_head_size)}; - auto key_cache_layout = layout{key_cache_shape, key_cache_dt, format::bfyx}; + auto key_cache_layout = cldnn::layout{key_cache_shape, key_cache_dt, cldnn::format::bfyx}; auto memory = test_engine.allocate_memory(key_cache_layout); for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { @@ -273,7 +272,7 @@ struct PagedAttentionManager { if (past_len == 0) continue; - const int blocks_num = ceil_div(past_len + 1, block_size); + const int blocks_num = cldnn::ceil_div(past_len + 1, block_size); const int start_block_idx = block_indices[block_indices_begins[i]]; for (int block_idx = 0; block_idx < blocks_num; block_idx++) { @@ -370,12 +369,12 @@ struct PagedAttentionManager { return kv_cache_precision == ov::element::u4 || kv_cache_precision == ov::element::i4; } - memory::ptr get_key_cache_memory() { - auto key_cache_dt = data_types::f16; + cldnn::memory::ptr get_key_cache_memory() { + auto key_cache_dt = cldnn::data_types::f16; auto adjusted_head_size = k_head_size; auto adjusted_block_size = block_size; if (kv_cache_compression) { - key_cache_dt = is_int4_kv_cache() ? data_types::u8 : data_types::i8; + key_cache_dt = is_int4_kv_cache() ? cldnn::data_types::u8 : cldnn::data_types::i8; const int scale_zp_bytes = 4; // 2 fp16 values (scale + zp) = 4 bytes if (key_cache_quant_mode == ov::internal::CacheQuantMode::BY_CHANNEL) { if (is_int4_kv_cache()) { @@ -399,12 +398,12 @@ struct PagedAttentionManager { auto num_blocks = block_indices.back() + 1; auto key_cache_shape = ov::PartialShape{num_blocks, num_kv_heads, adjusted_head_size, adjusted_block_size}; - auto key_cache_layout = layout{key_cache_shape, key_cache_dt, format::bfyx}; + auto key_cache_layout = cldnn::layout{key_cache_shape, key_cache_dt, cldnn::format::bfyx}; auto memory = test_engine.allocate_memory(key_cache_layout); for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { int past_len = subsequence_descs[i].past_len; if (past_len != 0) { - int blocks_num = ceil_div(past_len + 1, block_size); + int blocks_num = cldnn::ceil_div(past_len + 1, block_size); int start_block_idx = block_indices[block_indices_begins[i]]; for (int block_idx = 0; block_idx < blocks_num; block_idx++) { int last_token_idx = block_idx == blocks_num - 1 ? (past_len - block_size * block_idx) : block_size; @@ -581,12 +580,12 @@ struct PagedAttentionManager { return memory; } - memory::ptr get_value_cache_memory() { - auto value_cache_dt = data_types::f16; + cldnn::memory::ptr get_value_cache_memory() { + auto value_cache_dt = cldnn::data_types::f16; const int head_size = v_head_size; int scale_zp_bytes = 0; if (kv_cache_compression) { - value_cache_dt = is_int4_kv_cache() ? data_types::u8 : data_types::i8; + value_cache_dt = is_int4_kv_cache() ? cldnn::data_types::u8 : cldnn::data_types::i8; scale_zp_bytes = 4; // 2 fp16 values (scale + zp) = 4 bytes } @@ -599,7 +598,7 @@ struct PagedAttentionManager { static_cast(num_kv_heads), static_cast(block_size), static_cast(adjusted_head_size)}; - auto value_cache_layout = layout{value_cache_shape, value_cache_dt, format::bfyx}; + auto value_cache_layout = cldnn::layout{value_cache_shape, value_cache_dt, cldnn::format::bfyx}; auto memory = test_engine.allocate_memory(value_cache_layout); for (int i = 0; i < static_cast(subsequence_descs.size()); i++) { @@ -607,7 +606,7 @@ struct PagedAttentionManager { if (past_len == 0) continue; - const int blocks_num = ceil_div(past_len + 1, block_size); + const int blocks_num = cldnn::ceil_div(past_len + 1, block_size); const int start_block_idx = block_indices[block_indices_begins[i]]; for (int block_idx = 0; block_idx < blocks_num; block_idx++) { @@ -712,50 +711,50 @@ struct PagedAttentionManager { return memory; } - memory::ptr get_past_lens_memory() { + cldnn::memory::ptr get_past_lens_memory() { return get_memory_from_vec(past_lens); } - memory::ptr get_subsequence_begins_memory() { + cldnn::memory::ptr get_subsequence_begins_memory() { return get_memory_from_vec(subsequence_begins); } - memory::ptr get_block_indices_memory() { + cldnn::memory::ptr get_block_indices_memory() { return get_memory_from_vec(block_indices); } - memory::ptr get_block_indices_begins_memory() { + cldnn::memory::ptr get_block_indices_begins_memory() { return get_memory_from_vec(block_indices_begins); } - memory::ptr get_scale_memory() { + cldnn::memory::ptr get_scale_memory() { std::vector scale = {ov::float16(get_default_scale())}; return get_memory_from_vec(scale); } - memory::ptr get_sliding_window_memory() { + cldnn::memory::ptr get_sliding_window_memory() { std::vector sliding_window = {0}; return get_memory_from_vec(sliding_window); } - memory::ptr get_alibi_memory() { + cldnn::memory::ptr get_alibi_memory() { std::vector alibi; return get_memory_from_vec(alibi); } - memory::ptr get_max_context_len_memory() { + cldnn::memory::ptr get_max_context_len_memory() { return get_memory_from_vec(max_context_len); } - memory::ptr get_score_aggregation() { + cldnn::memory::ptr get_score_aggregation() { return get_memory_from_vec(score_aggregation); } - memory::ptr get_rotated_block_indices_memory() { + cldnn::memory::ptr get_rotated_block_indices_memory() { return get_memory_from_vec(rotated_block_indices); } - memory::ptr get_rotation_deltas_memory() { + cldnn::memory::ptr get_rotation_deltas_memory() { auto mem = get_memory_from_vec(rotation_deltas); auto layout = mem->get_layout(); auto last_dim = rotation_config.per_block ? 1 : block_size; @@ -764,7 +763,7 @@ struct PagedAttentionManager { return test_engine.reinterpret_buffer(*mem, layout); } - memory::ptr get_rotation_trig_lut_memory() { + cldnn::memory::ptr get_rotation_trig_lut_memory() { auto mem = get_memory_from_vec(rotation_trig_lut); auto layout = mem->get_layout(); layout.set_partial_shape(ov::PartialShape{max_context_len[0], k_head_size}); @@ -778,19 +777,19 @@ struct PagedAttentionManager { return test_engine.reinterpret_buffer(*mem, layout); } - memory::ptr get_xattention_threshold_memory() { + cldnn::memory::ptr get_xattention_threshold_memory() { return get_memory_from_vec(xattention_threshold); } - memory::ptr get_xattention_block_size_memory() { + cldnn::memory::ptr get_xattention_block_size_memory() { return get_memory_from_vec(xattention_block_size); } - memory::ptr get_xattention_stride_memory() { + cldnn::memory::ptr get_xattention_stride_memory() { return get_memory_from_vec(xattention_stride); } - memory::ptr get_sinks_memory() { + cldnn::memory::ptr get_sinks_memory() { auto mem = get_memory_from_vec(sinks); auto layout = mem->get_layout(); layout.set_partial_shape(ov::PartialShape{1, num_heads, 1, 1}); @@ -804,26 +803,26 @@ struct PagedAttentionManager { return test_engine.reinterpret_buffer(*mem, layout); } - memory::ptr get_adaptive_rkv_start_size_memory() { - auto mem = test_engine.allocate_memory({{}, data_types::i32, format::bfyx}); - mem_lock lock(mem, test_stream); + cldnn::memory::ptr get_adaptive_rkv_start_size_memory() { + auto mem = test_engine.allocate_memory({{}, cldnn::data_types::i32, cldnn::format::bfyx}); + cldnn::mem_lock lock(mem, test_stream); lock[0] = adaptive_rkv_start_size; return mem; } - memory::ptr get_adaptive_rkv_evictable_sizes_memory() { + cldnn::memory::ptr get_adaptive_rkv_evictable_sizes_memory() { return get_memory_from_vec(adaptive_rkv_evictable_sizes); } - memory::ptr get_adaptive_rkv_diversity_block_set_indices_memory() { + cldnn::memory::ptr get_adaptive_rkv_diversity_block_set_indices_memory() { return get_memory_from_vec(adaptive_rkv_diversity_block_set_indices); } - memory::ptr get_adaptive_rkv_diversity_block_set_indices_begins_memory() { + cldnn::memory::ptr get_adaptive_rkv_diversity_block_set_indices_begins_memory() { return get_memory_from_vec(adaptive_rkv_diversity_block_set_indices_begins); } - memory::ptr get_token_type_ids_memory() { + cldnn::memory::ptr get_token_type_ids_memory() { if (!token_type_ids.empty()) { return get_memory_from_vec(token_type_ids); } @@ -831,7 +830,7 @@ struct PagedAttentionManager { return get_memory_from_vec(default_token_type_ids); } - memory::ptr get_qq_bias_memory() { + cldnn::memory::ptr get_qq_bias_memory() { std::vector flat_qq_bias; for (const auto& matrix : qq_bias) { for (bool val : matrix) { @@ -841,7 +840,7 @@ struct PagedAttentionManager { return get_memory_from_vec(flat_qq_bias); } - memory::ptr get_qq_bias_begins_memory() { + cldnn::memory::ptr get_qq_bias_begins_memory() { return get_memory_from_vec(qq_bias_begins); } @@ -851,15 +850,15 @@ struct PagedAttentionManager { private: template - memory::ptr get_memory_from_vec(std::vector& input_data) { + cldnn::memory::ptr get_memory_from_vec(std::vector& input_data) { auto data_size = input_data.empty() ? 1 : input_data.size(); auto shape = ov::PartialShape{static_cast(data_size)}; - auto layout = cldnn::layout{shape, ov::element::from(), format::bfyx}; + auto layout = cldnn::layout{shape, ov::element::from(), cldnn::format::bfyx}; auto memory = test_engine.allocate_memory(layout); if (input_data.empty()) { auto shape = ov::PartialShape{0}; - auto layout = cldnn::layout{shape, ov::element::from(), format::bfyx}; + auto layout = cldnn::layout{shape, ov::element::from(), cldnn::format::bfyx}; return test_engine.reinterpret_buffer(*memory, layout); } @@ -868,13 +867,13 @@ struct PagedAttentionManager { return memory; } - memory::ptr get_QKV_memory(std::vector>& input_data, int num_heads, int head_size, bool skip_past_len) { + cldnn::memory::ptr get_QKV_memory(std::vector>& input_data, int num_heads, int head_size, bool skip_past_len) { int total_tokens = 0; for (const auto& subsequence_desc : subsequence_descs) total_tokens += subsequence_desc.num_tokens; auto query_shape = ov::PartialShape{total_tokens, num_heads * head_size}; - auto query_layout = layout{query_shape, data_types::f16, format::bfyx}; + auto query_layout = cldnn::layout{query_shape, cldnn::data_types::f16, cldnn::format::bfyx}; auto memory = test_engine.allocate_memory(query_layout); for (int subsequence_idx = 0; subsequence_idx < static_cast(subsequence_descs.size()); subsequence_idx++) { @@ -899,8 +898,8 @@ struct PagedAttentionManager { } template - static void set_values(stream& stream, memory::ptr mem, T* vals, size_t size, size_t dst_offset) { - mem_lock mem_ptr(mem, stream); + static void set_values(cldnn::stream& stream, cldnn::memory::ptr mem, T* vals, size_t size, size_t dst_offset) { + cldnn::mem_lock mem_ptr(mem, stream); for (size_t i = 0; i < size; i++) { mem_ptr[dst_offset + i] = vals[i]; } @@ -1036,7 +1035,7 @@ struct hash { struct PagedAttentionReference { PagedAttentionReference(PagedAttentionManager& pam) : pam(pam), test_engine(pam.test_engine), test_stream(pam.test_stream) {} - std::tuple, std::vector, std::vector> get_reference(memory::ptr key_cache_mem = nullptr) { + std::tuple, std::vector, std::vector> get_reference(cldnn::memory::ptr key_cache_mem = nullptr) { const bool has_xattention = pam.has_xattention; if (has_xattention) { const size_t total_iterations = pam.subsequence_descs.size(); @@ -1099,7 +1098,7 @@ struct PagedAttentionReference { xattn_threshold = static_cast(pam.xattention_threshold[i]); // reference path reflects runtime fallback/validation behavior for block size. - if (test_engine.get_device_info().arch < gpu_arch::xe2) { + if (test_engine.get_device_info().arch < cldnn::gpu_arch::xe2) { xattn_block_size = 128; } else { const int user_value = pam.xattention_block_size[i]; @@ -1199,10 +1198,10 @@ struct PagedAttentionReference { } } - auto query_layout = layout{query_shape, data_types::f16, format::bfyx}; - auto key_layout = layout{key_shape, data_types::f16, format::bfyx}; - auto value_layout = layout{value_shape, data_types::f16, format::bfyx}; - auto scale_layout = cldnn::layout({1}, data_types::f16, format::bfyx); + auto query_layout = cldnn::layout{query_shape, cldnn::data_types::f16, cldnn::format::bfyx}; + auto key_layout = cldnn::layout{key_shape, cldnn::data_types::f16, cldnn::format::bfyx}; + auto value_layout = cldnn::layout{value_shape, cldnn::data_types::f16, cldnn::format::bfyx}; + auto scale_layout = cldnn::layout({1}, cldnn::data_types::f16, cldnn::format::bfyx); OPENVINO_ASSERT(query_layout.count() == query_data.size()); if (do_gqa_expand) { @@ -1277,49 +1276,51 @@ struct PagedAttentionReference { retained_blocks, static_cast(block_size), qq_bias); - topology topology; + cldnn::topology topology; if (num_heads == num_kv_heads) { - topology.add(input_layout("query", query_layout), - input_layout("key", key_layout), - input_layout("value", value_layout), - data("mask", mask_mem), - data("scale", scale_mem), - permute("query_transposed", input_info("query"), {0, 2, 1, 3}), - permute("key_transposed", input_info("key"), {0, 2, 3, 1}), - permute("value_transposed", input_info("value"), {0, 2, 1, 3}), - gemm("qk_gemm", {input_info("query_transposed"), input_info("key_transposed")}, data_types::f16, false, false), - eltwise("scale_div", {input_info("qk_gemm"), input_info("scale")}, eltwise_mode::prod), - eltwise("eltwise", {input_info("scale_div"), input_info("mask")}, eltwise_mode::sum), - softmax("softmax", input_info("eltwise"), -1), - gemm("qkv_gemm", {input_info("softmax"), input_info("value_transposed")}, data_types::f16, false, false), - permute("qkv_gemm_transposed", input_info("qkv_gemm"), {0, 2, 1, 3}), - reorder("output_data", input_info("qkv_gemm_transposed"), format::bfyx, data_types::f16), - reorder("scores_data", input_info("softmax"), format::bfyx, data_types::f16)); + topology.add( + cldnn::input_layout("query", query_layout), + cldnn::input_layout("key", key_layout), + cldnn::input_layout("value", value_layout), + cldnn::data("mask", mask_mem), + cldnn::data("scale", scale_mem), + cldnn::permute("query_transposed", cldnn::input_info("query"), {0, 2, 1, 3}), + cldnn::permute("key_transposed", cldnn::input_info("key"), {0, 2, 3, 1}), + cldnn::permute("value_transposed", cldnn::input_info("value"), {0, 2, 1, 3}), + cldnn::gemm("qk_gemm", {cldnn::input_info("query_transposed"), cldnn::input_info("key_transposed")}, cldnn::data_types::f16, false, false), + cldnn::eltwise("scale_div", {cldnn::input_info("qk_gemm"), cldnn::input_info("scale")}, cldnn::eltwise_mode::prod), + cldnn::eltwise("eltwise", {cldnn::input_info("scale_div"), cldnn::input_info("mask")}, cldnn::eltwise_mode::sum), + cldnn::softmax("softmax", cldnn::input_info("eltwise"), -1), + cldnn::gemm("qkv_gemm", {cldnn::input_info("softmax"), cldnn::input_info("value_transposed")}, cldnn::data_types::f16, false, false), + cldnn::permute("qkv_gemm_transposed", cldnn::input_info("qkv_gemm"), {0, 2, 1, 3}), + cldnn::reorder("output_data", cldnn::input_info("qkv_gemm_transposed"), cldnn::format::bfyx, cldnn::data_types::f16), + cldnn::reorder("scores_data", cldnn::input_info("softmax"), cldnn::format::bfyx, cldnn::data_types::f16)); } else { - topology.add(input_layout("query", query_layout), - input_layout("key", key_layout), - input_layout("value", value_layout), - data("mask", mask_mem), - data("scale", scale_mem), - permute("query_transposed", input_info("query"), {1, 2, 0, 3}), - permute("key_transposed", input_info("key"), {1, 2, 3, 0}), - permute("value_transposed", input_info("value"), {1, 2, 0, 3}), - gemm("qk_gemm", {input_info("query_transposed"), input_info("key_transposed")}, data_types::f16, false, false), - eltwise("scale_div", {input_info("qk_gemm"), input_info("scale")}, eltwise_mode::prod), - eltwise("eltwise", {input_info("scale_div"), input_info("mask")}, eltwise_mode::sum), - softmax("softmax", input_info("eltwise"), -1), - gemm("qkv_gemm", {input_info("softmax"), input_info("value_transposed")}, data_types::f16, false, false), - reshape("qkv_gemm_reshape", input_info("qkv_gemm"), {1, num_heads, v_head_size, num_queries}), - permute("qkv_gemm_transposed", input_info("qkv_gemm_reshape"), {0, 2, 1, 3}), - reorder("output_data", input_info("qkv_gemm_transposed"), format::bfyx, data_types::f16), - reorder("scores_data", input_info("softmax"), format::bfyx, data_types::f16)); + topology.add( + cldnn::input_layout("query", query_layout), + cldnn::input_layout("key", key_layout), + cldnn::input_layout("value", value_layout), + cldnn::data("mask", mask_mem), + cldnn::data("scale", scale_mem), + cldnn::permute("query_transposed", cldnn::input_info("query"), {1, 2, 0, 3}), + cldnn::permute("key_transposed", cldnn::input_info("key"), {1, 2, 3, 0}), + cldnn::permute("value_transposed", cldnn::input_info("value"), {1, 2, 0, 3}), + cldnn::gemm("qk_gemm", {cldnn::input_info("query_transposed"), cldnn::input_info("key_transposed")}, cldnn::data_types::f16, false, false), + cldnn::eltwise("scale_div", {cldnn::input_info("qk_gemm"), cldnn::input_info("scale")}, cldnn::eltwise_mode::prod), + cldnn::eltwise("eltwise", {cldnn::input_info("scale_div"), cldnn::input_info("mask")}, cldnn::eltwise_mode::sum), + cldnn::softmax("softmax", cldnn::input_info("eltwise"), -1), + cldnn::gemm("qkv_gemm", {cldnn::input_info("softmax"), cldnn::input_info("value_transposed")}, cldnn::data_types::f16, false, false), + cldnn::reshape("qkv_gemm_reshape", cldnn::input_info("qkv_gemm"), {1, num_heads, v_head_size, num_queries}), + cldnn::permute("qkv_gemm_transposed", cldnn::input_info("qkv_gemm_reshape"), {0, 2, 1, 3}), + cldnn::reorder("output_data", cldnn::input_info("qkv_gemm_transposed"), cldnn::format::bfyx, cldnn::data_types::f16), + cldnn::reorder("scores_data", cldnn::input_info("softmax"), cldnn::format::bfyx, cldnn::data_types::f16)); } ExecutionConfig config = tests::get_test_default_config(test_engine); config.set_property(ov::intel_gpu::optimize_data(true)); config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); - network::ptr network = tests::get_network(test_engine, topology, config, tests::get_test_stream_ptr(), false); + cldnn::network::ptr network = tests::get_network(test_engine, topology, config, tests::get_test_stream_ptr(), false); network->set_input_data("query", query_mem); network->set_input_data("key", key_mem); network->set_input_data("value", value_mem); @@ -1333,11 +1334,11 @@ struct PagedAttentionReference { get_output_scores_vec(output_scores_mem, window_size, num_queries, num_keys, num_heads)}; } - std::vector get_output_scores_vec(memory::ptr scores_output, int window_size, int num_queries, int num_keys, int num_heads) { + std::vector get_output_scores_vec(cldnn::memory::ptr scores_output, int window_size, int num_queries, int num_keys, int num_heads) { OPENVINO_ASSERT(scores_output->count() == static_cast(num_heads * num_queries * num_keys)); std::vector output_scores(num_keys, 0); - mem_lock mem_ptr(scores_output, test_stream); + cldnn::mem_lock mem_ptr(scores_output, test_stream); for (int row_idx = 0; row_idx < window_size; row_idx++) { for (int head_idx = 0; head_idx < num_heads; head_idx++) { for (int score_idx = 0; score_idx < num_keys; score_idx++) { @@ -1350,25 +1351,25 @@ struct PagedAttentionReference { return output_scores; } - std::vector get_output_data_vec(memory::ptr data_output, int num_queries, int k_head_size, int num_heads) { + std::vector get_output_data_vec(cldnn::memory::ptr data_output, int num_queries, int k_head_size, int num_heads) { OPENVINO_ASSERT(data_output->count() == static_cast(num_queries * num_heads * k_head_size)); std::vector output_data(data_output->count()); - mem_lock mem_ptr(data_output, test_stream); + cldnn::mem_lock mem_ptr(data_output, test_stream); for (size_t i = 0; i < data_output->count(); i++) output_data[i] = mem_ptr[i]; return output_data; } - memory::ptr get_mask_mem_combined_multi_head(int num_queries, - int num_keys, - int num_heads, - int num_kv_heads, - int sliding_window_size, - const ov::reference::XAttentionRetainedBlockIndicesForAllHeads& retained_blocks, - int block_size, - const std::vector* qq_bias) { + cldnn::memory::ptr get_mask_mem_combined_multi_head(int num_queries, + int num_keys, + int num_heads, + int num_kv_heads, + int sliding_window_size, + const ov::reference::XAttentionRetainedBlockIndicesForAllHeads& retained_blocks, + int block_size, + const std::vector* qq_bias) { int heads_per_kv = num_heads / num_kv_heads; ov::PartialShape mask_shape; @@ -1380,9 +1381,9 @@ struct PagedAttentionReference { mask_shape = ov::PartialShape{num_kv_heads, heads_per_kv, num_queries, num_keys}; } - auto mask_layout = layout{mask_shape, data_types::f16, format::bfyx}; + auto mask_layout = cldnn::layout{mask_shape, cldnn::data_types::f16, cldnn::format::bfyx}; auto mask_mem = test_engine.allocate_memory(mask_layout); - mem_lock mem_ptr(mask_mem, test_stream); + cldnn::mem_lock mem_ptr(mask_mem, test_stream); size_t total_elems = mask_layout.count(); for (size_t i = 0; i < total_elems; ++i) @@ -1524,7 +1525,7 @@ struct PagedAttentionReference { } } - std::vector read_key_from_cache(memory::ptr key_cache_mem, size_t seq_idx, int total_tokens) { + std::vector read_key_from_cache(cldnn::memory::ptr key_cache_mem, size_t seq_idx, int total_tokens) { // Read key vectors from key_cache memory // key_cache layout: [num_blocks, num_kv_heads, head_size, block_size] std::vector key_data(pam.num_kv_heads * total_tokens * pam.k_head_size); @@ -1537,7 +1538,7 @@ struct PagedAttentionReference { if (!is_compressed) { // Uncompressed case: read as float16 - mem_lock cache_ptr(key_cache_mem, test_stream); + cldnn::mem_lock cache_ptr(key_cache_mem, test_stream); for (int block_idx = 0; block_idx < num_blocks; block_idx++) { const int physical_block = pam.block_indices[blocks_start + block_idx]; @@ -1566,7 +1567,7 @@ struct PagedAttentionReference { // INT4 BY_CHANNEL: [num_blocks, kv_heads, k_head_size, block_size/2+4] u8 // block_size dim is packed: 2 u4 tokens per byte. // Comp at [d, packed_block..packed_block+3]: 2 fp16 = inv_scale, zp per head dim. - mem_lock cache_ptr(key_cache_mem, test_stream); + cldnn::mem_lock cache_ptr(key_cache_mem, test_stream); const int packed_block = pam.block_size / 2; const int adj_block_size = packed_block + 4; // block_size/2 + sizeof(fp16)*2 @@ -1601,7 +1602,7 @@ struct PagedAttentionReference { } else { // I8/U8 BY_CHANNEL: [num_blocks, num_kv_heads, head_size, block_size+4] // Each dimension quantized across all tokens in block - mem_lock cache_ptr(key_cache_mem, test_stream); + cldnn::mem_lock cache_ptr(key_cache_mem, test_stream); const int adj_block_size = pam.block_size + 4; for (int block_idx = 0; block_idx < num_blocks; block_idx++) { @@ -1643,7 +1644,7 @@ struct PagedAttentionReference { // upper nibble = q(dim[pack_group*32 + sglid + 16]) // Scale/ZP: fp16 in comp region at base + packed_head_size*block_size // inv_scale[t] at comp_ptr[t], zp[t] at comp_ptr[block_size + t] - mem_lock cache_ptr(key_cache_mem, test_stream); + cldnn::mem_lock cache_ptr(key_cache_mem, test_stream); const int packed_head_size = pam.k_head_size / 2; const int adj_head_size = packed_head_size + 8; constexpr int SG = 16; @@ -1687,7 +1688,7 @@ struct PagedAttentionReference { // BY_TOKEN: [num_blocks, num_kv_heads, head_size+4, block_size] // Token-wise quantization with shared scale/zp per token // Layout: data rows [0..head_size-1], scale at [head_size], zp at [head_size+2] (fp16) - mem_lock cache_ptr(key_cache_mem, test_stream); + cldnn::mem_lock cache_ptr(key_cache_mem, test_stream); for (int block_idx = 0; block_idx < num_blocks; block_idx++) { const int physical_block = pam.block_indices[blocks_start + block_idx]; const int tokens_in_block = std::min(pam.block_size, total_tokens - block_idx * pam.block_size); @@ -1728,7 +1729,7 @@ struct PagedAttentionReference { return key_data; } - std::vector compute_diversity_reference(memory::ptr key_cache_mem) { + std::vector compute_diversity_reference(cldnn::memory::ptr key_cache_mem) { std::vector diversity_output; for (size_t seq_idx = 0; seq_idx < pam.subsequence_descs.size(); seq_idx++) { @@ -1772,8 +1773,8 @@ struct PagedAttentionTest : public ::testing::TestWithParam { tests::random_generator rg; cldnn::engine& engine = tests::get_test_engine(); float tolerance = 2e-3; - memory::ptr last_key_cache_mem = nullptr; - memory::ptr last_output_data_mem = nullptr; + cldnn::memory::ptr last_key_cache_mem = nullptr; + cldnn::memory::ptr last_output_data_mem = nullptr; std::vector last_block_indices; std::vector last_block_indices_begins; std::optional pam; @@ -1804,7 +1805,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { std::vector get_output_data() { OPENVINO_ASSERT(last_output_data_mem != nullptr, "No output data available"); std::vector result(last_output_data_mem->count()); - mem_lock mem_ptr(last_output_data_mem, tests::get_test_stream()); + cldnn::mem_lock mem_ptr(last_output_data_mem, tests::get_test_stream()); for (size_t i = 0; i < last_output_data_mem->count(); i++) result[i] = mem_ptr[i]; return result; @@ -1820,7 +1821,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { struct gpu_outputs { std::map outputs; - memory::ptr key_cache_mem; + cldnn::memory::ptr key_cache_mem; }; gpu_outputs run_gpu_inference(PagedAttentionManager& pam, T& p) { @@ -2001,8 +2002,8 @@ struct PagedAttentionTest : public ::testing::TestWithParam { auto new_query_memory = tests::get_test_engine().allocate_memory(padded_query_data_layout, false); - mem_lock query_mem_lock(query_mem, tests::get_test_stream()); - mem_lock new_query_mem_lock(new_query_memory, tests::get_test_stream()); + cldnn::mem_lock query_mem_lock(query_mem, tests::get_test_stream()); + cldnn::mem_lock new_query_mem_lock(new_query_memory, tests::get_test_stream()); auto query_data_shape = query_data_layout.get_shape(); for (size_t b = 0; b < query_data_shape[0]; b++) { @@ -2017,36 +2018,36 @@ struct PagedAttentionTest : public ::testing::TestWithParam { query_mem = new_query_memory; } - std::vector pa_inputs = {input_info("query"), - input_info("key"), - input_info("value"), - input_info("key_cache"), - input_info("value_cache"), - input_info("past_lens"), - input_info("subsequence_begins"), - input_info("block_indices"), - input_info("block_indices_begins"), - input_info("scale"), - input_info("sliding_window"), - input_info("alibi"), - input_info("max_context_len"), - input_info("score_aggregation_window"), - input_info("rotated_block_indices"), - input_info("rotation_deltas"), - input_info("rotation_trig_lut_modified"), - input_info("xattention_threshold"), - input_info("xattention_block_size"), - input_info("xattention_stride"), - input_info("sinks"), - input_info("adaptive_rkv_start_size"), - input_info("adaptive_rkv_evictable_sizes"), - input_info("adaptive_rkv_diversity_block_set_indices"), - input_info("adaptive_rkv_diversity_block_set_indices_begins"), - input_info("token_type_ids"), - input_info("qq_bias"), - input_info("qq_bias_begins")}; - - auto pa_prim = paged_attention("paged_attention", pa_inputs); + std::vector pa_inputs = {cldnn::input_info("query"), + cldnn::input_info("key"), + cldnn::input_info("value"), + cldnn::input_info("key_cache"), + cldnn::input_info("value_cache"), + cldnn::input_info("past_lens"), + cldnn::input_info("subsequence_begins"), + cldnn::input_info("block_indices"), + cldnn::input_info("block_indices_begins"), + cldnn::input_info("scale"), + cldnn::input_info("sliding_window"), + cldnn::input_info("alibi"), + cldnn::input_info("max_context_len"), + cldnn::input_info("score_aggregation_window"), + cldnn::input_info("rotated_block_indices"), + cldnn::input_info("rotation_deltas"), + cldnn::input_info("rotation_trig_lut_modified"), + cldnn::input_info("xattention_threshold"), + cldnn::input_info("xattention_block_size"), + cldnn::input_info("xattention_stride"), + cldnn::input_info("sinks"), + cldnn::input_info("adaptive_rkv_start_size"), + cldnn::input_info("adaptive_rkv_evictable_sizes"), + cldnn::input_info("adaptive_rkv_diversity_block_set_indices"), + cldnn::input_info("adaptive_rkv_diversity_block_set_indices_begins"), + cldnn::input_info("token_type_ids"), + cldnn::input_info("qq_bias"), + cldnn::input_info("qq_bias_begins")}; + + auto pa_prim = cldnn::paged_attention("paged_attention", pa_inputs); pa_prim.k_head_size = p.k_head_size; pa_prim.v_head_size = p.v_head_size; @@ -2074,54 +2075,54 @@ struct PagedAttentionTest : public ::testing::TestWithParam { pa_prim.has_qq_bias = p.has_qq_bias; - topology topology; - - topology.add(input_layout("query", query_layout), - input_layout("key", key_layout), - input_layout("value", value_layout), - input_layout("key_cache", key_cache_layout), - input_layout("value_cache", value_cache_layout), - input_layout("past_lens", past_lens_layout), - input_layout("subsequence_begins", subsequence_begins_layout), - input_layout("block_indices", block_indices_layout), - input_layout("block_indices_begins", block_indices_begins_layout), - input_layout("scale", scale_layout), - input_layout("sliding_window", sliding_window_layout), - input_layout("alibi", alibi_layout), - input_layout("max_context_len", max_context_len_layout), - input_layout("score_aggregation_window", score_aggregation_window_layout), + cldnn::topology topology; + + topology.add(cldnn::input_layout("query", query_layout), + cldnn::input_layout("key", key_layout), + cldnn::input_layout("value", value_layout), + cldnn::input_layout("key_cache", key_cache_layout), + cldnn::input_layout("value_cache", value_cache_layout), + cldnn::input_layout("past_lens", past_lens_layout), + cldnn::input_layout("subsequence_begins", subsequence_begins_layout), + cldnn::input_layout("block_indices", block_indices_layout), + cldnn::input_layout("block_indices_begins", block_indices_begins_layout), + cldnn::input_layout("scale", scale_layout), + cldnn::input_layout("sliding_window", sliding_window_layout), + cldnn::input_layout("alibi", alibi_layout), + cldnn::input_layout("max_context_len", max_context_len_layout), + cldnn::input_layout("score_aggregation_window", score_aggregation_window_layout), pa_prim, - reorder("output_data", input_info("paged_attention", 0), format::bfyx, data_types::f16)); + cldnn::reorder("output_data", cldnn::input_info("paged_attention", 0), cldnn::format::bfyx, cldnn::data_types::f16)); int output_idx = 1; if (p.scores_mode != ScoresMode::DISABLED) { - topology.add(reorder("output_scores", input_info("paged_attention", output_idx), format::bfyx, data_types::f16)); + topology.add(cldnn::reorder("output_scores", cldnn::input_info("paged_attention", output_idx), cldnn::format::bfyx, cldnn::data_types::f16)); output_idx++; } if (p.has_adaptive_rkv) { - topology.add(reorder("output_diversity", input_info("paged_attention", output_idx), format::bfyx, data_types::f16)); + topology.add(cldnn::reorder("output_diversity", cldnn::input_info("paged_attention", output_idx), cldnn::format::bfyx, cldnn::data_types::f16)); } { - topology.add(input_layout("rotated_block_indices", rotated_block_indices_layout)); - topology.add(input_layout("rotation_deltas", rotation_deltas_layout)); - topology.add(input_layout("rotation_trig_lut", rotation_trig_lut_layout)); + topology.add(cldnn::input_layout("rotated_block_indices", rotated_block_indices_layout)); + topology.add(cldnn::input_layout("rotation_deltas", rotation_deltas_layout)); + topology.add(cldnn::input_layout("rotation_trig_lut", rotation_trig_lut_layout)); // add dummy activation operation to simulate an empty PA `rotation_trig_lut` buffer for shapes like [0, k_head_size] - topology.add(activation("rotation_trig_lut_modified", input_info("rotation_trig_lut"), activation_func::none)); + topology.add(cldnn::activation("rotation_trig_lut_modified", cldnn::input_info("rotation_trig_lut"), cldnn::activation_func::none)); - topology.add(input_layout("xattention_threshold", xattention_threshold_layout)); - topology.add(input_layout("xattention_block_size", xattention_block_size_layout)); - topology.add(input_layout("xattention_stride", xattention_stride_layout)); - topology.add(input_layout("sinks", sinks_layout)); + topology.add(cldnn::input_layout("xattention_threshold", xattention_threshold_layout)); + topology.add(cldnn::input_layout("xattention_block_size", xattention_block_size_layout)); + topology.add(cldnn::input_layout("xattention_stride", xattention_stride_layout)); + topology.add(cldnn::input_layout("sinks", sinks_layout)); - topology.add(input_layout("adaptive_rkv_start_size", adaptive_rkv_start_size_layout)); - topology.add(input_layout("adaptive_rkv_evictable_sizes", adaptive_rkv_evictable_sizes_layout)); - topology.add(input_layout("adaptive_rkv_diversity_block_set_indices", adaptive_rkv_diversity_block_set_indices_layout)); - topology.add(input_layout("adaptive_rkv_diversity_block_set_indices_begins", adaptive_rkv_diversity_block_set_indices_begins_layout)); - topology.add(input_layout("token_type_ids", token_type_ids_layout)); - topology.add(input_layout("qq_bias", qq_bias_layout)); - topology.add(input_layout("qq_bias_begins", qq_bias_begins_layout)); + topology.add(cldnn::input_layout("adaptive_rkv_start_size", adaptive_rkv_start_size_layout)); + topology.add(cldnn::input_layout("adaptive_rkv_evictable_sizes", adaptive_rkv_evictable_sizes_layout)); + topology.add(cldnn::input_layout("adaptive_rkv_diversity_block_set_indices", adaptive_rkv_diversity_block_set_indices_layout)); + topology.add(cldnn::input_layout("adaptive_rkv_diversity_block_set_indices_begins", adaptive_rkv_diversity_block_set_indices_begins_layout)); + topology.add(cldnn::input_layout("token_type_ids", token_type_ids_layout)); + topology.add(cldnn::input_layout("qq_bias", qq_bias_layout)); + topology.add(cldnn::input_layout("qq_bias_begins", qq_bias_begins_layout)); } ExecutionConfig config = tests::get_test_default_config(tests::get_test_engine()); @@ -2133,7 +2134,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { if (kv_cache_precision != ov::element::dynamic) { config.set_property(ov::hint::kv_cache_precision(kv_cache_precision)); } - network::ptr network = tests::get_network(tests::get_test_engine(), topology, config, tests::get_test_stream_ptr(), false); + cldnn::network::ptr network = tests::get_network(tests::get_test_engine(), topology, config, tests::get_test_stream_ptr(), false); network->set_input_data("query", query_mem); network->set_input_data("key", key_mem); network->set_input_data("value", value_mem); @@ -2210,13 +2211,13 @@ struct PagedAttentionTest : public ::testing::TestWithParam { } } - void compare(memory::ptr data_output_mem, - memory::ptr scores_output_mem, - memory::ptr diversity_output_mem, + void compare(cldnn::memory::ptr data_output_mem, + cldnn::memory::ptr scores_output_mem, + cldnn::memory::ptr diversity_output_mem, std::tuple, std::vector, std::vector> ref_data) { if (data_output_mem) { ASSERT_EQ(data_output_mem->count(), std::get<0>(ref_data).size()); - mem_lock mem_ptr(data_output_mem, tests::get_test_stream()); + cldnn::mem_lock mem_ptr(data_output_mem, tests::get_test_stream()); for (size_t i = 0; i < data_output_mem->count(); i++) { ASSERT_NEAR(mem_ptr[i], std::get<0>(ref_data)[i], tolerance) << " at index=" << i; } @@ -2224,7 +2225,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { if (scores_output_mem) { ASSERT_EQ(scores_output_mem->count(), std::get<1>(ref_data).size()); - mem_lock mem_ptr(scores_output_mem, tests::get_test_stream()); + cldnn::mem_lock mem_ptr(scores_output_mem, tests::get_test_stream()); for (size_t i = 0; i < scores_output_mem->count(); i++) { ASSERT_NEAR(mem_ptr[i], std::get<1>(ref_data)[i], tolerance) << " at index=" << i; } @@ -2232,7 +2233,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { if (diversity_output_mem) { ASSERT_EQ(diversity_output_mem->count(), std::get<2>(ref_data).size()); - mem_lock mem_ptr(diversity_output_mem, tests::get_test_stream()); + cldnn::mem_lock mem_ptr(diversity_output_mem, tests::get_test_stream()); // Relaxed tolerance due to float32 (GPU) vs float16 (reference) accumulator difference float diversity_tolerance = tolerance * 10.0f; for (size_t i = 0; i < diversity_output_mem->count(); i++) { @@ -2241,14 +2242,14 @@ struct PagedAttentionTest : public ::testing::TestWithParam { } } - void compare_xattention(memory::ptr data_output_mem, - memory::ptr scores_output_mem, + void compare_xattention(cldnn::memory::ptr data_output_mem, + cldnn::memory::ptr scores_output_mem, std::tuple, std::vector, std::vector> ref_data, size_t num_heads, size_t head_size) { if (data_output_mem) { ASSERT_EQ(data_output_mem->count(), std::get<0>(ref_data).size()); - mem_lock mem_ptr(data_output_mem, tests::get_test_stream()); + cldnn::mem_lock mem_ptr(data_output_mem, tests::get_test_stream()); int mismatch_count = 0; #if XATTENTION_DEBUG_VERBOSE @@ -2277,7 +2278,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { if (scores_output_mem) { ASSERT_EQ(scores_output_mem->count(), std::get<1>(ref_data).size()); - mem_lock mem_ptr(scores_output_mem, tests::get_test_stream()); + cldnn::mem_lock mem_ptr(scores_output_mem, tests::get_test_stream()); int mismatch_count = 0; for (size_t i = 0; i < scores_output_mem->count(); i++) { if (std::fabs(static_cast(mem_ptr[i]) - static_cast(std::get<1>(ref_data)[i])) > tolerance) { @@ -2311,7 +2312,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { const size_t block_stride_bytes = static_cast(p.num_kv_heads) * head_region_bytes; const int token_data_stride = p.k_head_size * elem_size; - mem_lock cache_lock(last_key_cache_mem, tests::get_test_stream()); + cldnn::mem_lock cache_lock(last_key_cache_mem, tests::get_test_stream()); int missing_count = 0, nan_count = 0, inf_count = 0, zero_scale_count = 0, out_of_range_zp_count = 0; std::vector> nan_locations, inf_locations; @@ -2823,7 +2824,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { float tolerance) { auto& engine = tests::get_test_engine(); auto arch = engine.get_device_info().arch; - std::string arch_name = (arch == gpu_arch::xe2) ? "Xe2" : (arch == gpu_arch::xe3) ? "Xe3" : "Xe1"; + std::string arch_name = (arch == cldnn::gpu_arch::xe2) ? "Xe2" : (arch == cldnn::gpu_arch::xe3) ? "Xe3" : "Xe1"; size_t total_elements = ref_output.size(); int allowed_mismatches = int(total_elements * 0.04); diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp index c2f9f1fd41ac..7d54c98c0cd4 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp @@ -29,10 +29,10 @@ class paged_attention_token_type_test : public PagedAttentionTest& expected_output) { + void compare_token_type_output(cldnn::memory::ptr data_output_mem, const std::vector& expected_output) { ASSERT_TRUE(data_output_mem); ASSERT_EQ(data_output_mem->count(), expected_output.size()); - mem_lock mem_ptr(data_output_mem, tests::get_test_stream()); + cldnn::mem_lock mem_ptr(data_output_mem, tests::get_test_stream()); constexpr float token_type_tolerance = 1e-2f; for (size_t i = 0; i < data_output_mem->count(); i++) { ASSERT_NEAR(static_cast(mem_ptr[i]), expected_output[i], token_type_tolerance) << " at index=" << i; From b1ab3a21ab0b6cb1c3e02f6ea0e7ee6449b420cd Mon Sep 17 00:00:00 2001 From: Piotr Kowalczyk Date: Fri, 12 Jun 2026 11:15:40 +0000 Subject: [PATCH 7/8] [gpu][test]:Refactoring, removed using ov::intel_gpu namespace. --- .../tests/unit/test_cases/paged_attention_gpu_test.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h index b046fb7c2617..a981d76a6caa 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_gpu_test.h @@ -26,8 +26,6 @@ #include "random_generator.hpp" #include "test_utils.h" -using namespace ov::intel_gpu; - // Enable detailed xattention debugging (dumps, extra comparison info) // Default: OFF (0). Set to 1 for investigation. #ifndef XATTENTION_DEBUG_VERBOSE @@ -1316,7 +1314,7 @@ struct PagedAttentionReference { cldnn::reorder("scores_data", cldnn::input_info("softmax"), cldnn::format::bfyx, cldnn::data_types::f16)); } - ExecutionConfig config = tests::get_test_default_config(test_engine); + ov::intel_gpu::ExecutionConfig config = tests::get_test_default_config(test_engine); config.set_property(ov::intel_gpu::optimize_data(true)); config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); @@ -2125,7 +2123,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { topology.add(cldnn::input_layout("qq_bias_begins", qq_bias_begins_layout)); } - ExecutionConfig config = tests::get_test_default_config(tests::get_test_engine()); + ov::intel_gpu::ExecutionConfig config = tests::get_test_default_config(tests::get_test_engine()); config.set_property(ov::intel_gpu::optimize_data(true)); config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); // FlashAttn v1 or v2? @@ -2901,7 +2899,7 @@ struct PagedAttentionTest : public ::testing::TestWithParam { public: static bool check_cm_available() { auto& engine = tests::get_test_engine(); - ExecutionConfig config = tests::get_test_default_config(engine); + ov::intel_gpu::ExecutionConfig config = tests::get_test_default_config(engine); return cldnn::check_cm_jit_support(engine, config) && engine.get_device_info().supports_immad; } }; From 87013bc4d31946b6162c9f897d87966113463834 Mon Sep 17 00:00:00 2001 From: Piotr Kowalczyk Date: Fri, 12 Jun 2026 12:39:47 +0000 Subject: [PATCH 8/8] [gpu][test]: Refactored PA token type tests. --- .../paged_attention_token_type_gpu_test.cpp | 18 +++----- .../paged_attention_token_type_test_data.cpp | 41 ++++++++++++------- .../paged_attention_token_type_test_data.h | 4 +- 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp index 7d54c98c0cd4..0c7915a166bd 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/paged_attention_token_type_gpu_test.cpp @@ -58,7 +58,7 @@ TEST_P(paged_attention_token_type_test, basic) { compare_token_type_output(output_data_mem, p.token_type_test_data.expectedOutput); } -static paged_attention_token_type_test_params make_token_type_test_param(const test::TestData& data, int sliding_window_size, bool disable_flashattn_v2) { +static paged_attention_token_type_test_params make_token_type_test_param(const test::TestData& data, bool disable_flashattn_v2) { paged_attention_token_type_test_params p; p.subsequences = {{static_cast(data.tokenTypes.size()), 0}}; p.num_heads = 1; @@ -66,7 +66,7 @@ static paged_attention_token_type_test_params make_token_type_test_param(const t p.k_head_size = 32; p.v_head_size = 32; p.block_size = 16; - p.sliding_window_size = sliding_window_size; + p.sliding_window_size = data.slidingWindowSize; p.kv_cache_compression = DISABLE_CACHE_COMPRESSION; p.key_cache_quant_mode = ov::internal::CacheQuantMode::BY_TOKEN; p.dynamic_paddings = STATIC_INPUT_PAD; @@ -78,12 +78,12 @@ static paged_attention_token_type_test_params make_token_type_test_param(const t return p; } -static std::vector make_token_type_test_params(const std::vector& test_data, int sliding_window_size) { +static std::vector make_token_type_test_params(const std::vector& test_data) { std::vector params; params.reserve(test_data.size() * 2); for (const auto& data : test_data) { - params.push_back(make_token_type_test_param(data, sliding_window_size, ENABLE_FA_V2)); - params.push_back(make_token_type_test_param(data, sliding_window_size, DISABLE_FA_V2)); + params.push_back(make_token_type_test_param(data, ENABLE_FA_V2)); + params.push_back(make_token_type_test_param(data, DISABLE_FA_V2)); } return params; } @@ -96,11 +96,5 @@ static std::string get_token_type_test_name(const testing::TestParamInfo PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1() { +static std::vector GetTestDataForHeadSize32HeadNum1() { std::vector testData; + const int sliding_window_size = 0; { const std::string name = "plain_casual"; @@ -160,7 +161,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H -0.308003, 0.027901, -0.193572, 0.030041, -0.003273, -0.011198, 0.11971, -0.113571, 0.096788, 0.267463, 0.206419, -0.269637, 0.570271, -0.336993, 0.193851, 0.012757, 0.050464, 0.260114, -0.194947, -0.03562, -0.219055, 0.196855, 0.047158}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -314,7 +315,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H -0.308003, 0.027901, -0.193572, 0.030041, -0.003273, -0.011198, 0.11971, -0.113571, 0.096788, 0.267463, 0.206419, -0.269637, 0.570271, -0.336993, 0.193851, 0.012757, 0.050464, 0.260114, -0.194947, -0.03562, -0.219055, 0.196855, 0.047158}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -552,7 +553,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H 0.124981, 0.204197, -0.058794, 0.098339, -0.011927, 0.211357, -0.041711, 0.098862, 0.119303, 0.067251, -0.152045, 0.27265, -0.10156, 0.138649, -0.130894, -0.155933, -0.095668, -0.104816, 0.008138, 0.12806, 0.215425, -0.036746, 0.117335, 0.172523, 0.036049, 0.197724}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -790,7 +791,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H 0.124981, 0.204197, -0.058794, 0.098339, -0.011927, 0.211357, -0.041711, 0.098862, 0.119303, 0.067251, -0.152045, 0.27265, -0.10156, 0.138649, -0.130894, -0.155933, -0.095668, -0.104816, 0.008138, 0.12806, 0.215425, -0.036746, 0.117335, 0.172523, 0.036049, 0.197724}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -2696,7 +2697,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H 0.036639, -0.014603, -0.107071, -0.001154, -0.071759, 0.043341, 0.019358, -0.01315, -0.004735, -0.001274, 0.064109, 0.022396, 0.038025, 0.100135, -0.015358, -0.094546, 0.048992, -0.004058, 0.018969, -0.068489, -0.095415, 0.03516, -0.006241, 0.009353, 0.028247, 0.030636}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -5159,7 +5160,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H 0.001951, -0.042289, 0.042452, -0.085086, -0.078698, 0.024427, -0.019972, 0.114998, -0.011411, -0.010484, 0.010148, 0.034235, -0.080249, 0.027983, -0.013981, -0.010044, 0.025208, -0.022628, -0.036155, -0.05289, -0.010923, 0.014724, 0.046534}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -6312,14 +6313,15 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H -0.069667, -0.015423, 0.040691, -0.106843, 0.04387, 0.006794, 0.070803, 0.032478, 0.066869, -0.090667, -0.090796, -0.106503, 0.138459, -0.064017, 0.1206, 0.045981, 0.110657, -0.049117, -0.013569, -0.019554, 0.062624, 0.01151}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } return testData; } -std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32HeadNum1SlidingWindowSize5() { +static std::vector GetTestDataForHeadSize32HeadNum1SlidingWindowSize5() { std::vector testData; + const int sliding_window_size = 5; { const std::string name = "only_sliding_window"; const std::vector token_types{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; @@ -6543,7 +6545,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H 0.248161, -0.120971, -0.02436, 0.157455, 0.04565, -0.20967, -0.238891, -0.251281, 0.091486, 0.107387, -0.101826, -0.146468, 0.008208, 0.217812, 0.369781, -0.020876, 0.074199, -0.056155, -0.200816, -0.087326, 0.350625}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -6769,7 +6771,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H 0.248161, -0.120971, -0.02436, 0.157455, 0.04565, -0.20967, -0.238891, -0.251281, 0.091486, 0.107387, -0.101826, -0.146468, 0.008208, 0.217812, 0.369781, -0.020876, 0.074199, -0.056155, -0.200816, -0.087326, 0.350625}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -7152,7 +7154,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H -0.275347, -0.133337, 0.05895, -0.296771, -0.223556, -0.203761, -0.224432, 0.138675, 0.369687, 0.076605, 0.125778, -0.257924, -0.156964, 0.152194, 0.259834, -0.205936, -0.243631, -0.354199, 0.140052, 0.231083, 0.026353, -0.162425}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -9900,7 +9902,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H 0.030964, 0.268971, 0.186284, -0.003771, -0.295209, -0.084093, 0.117445, 0.245304, 0.089725, -0.329711, -0.453279, 0.080331, 0.152678, -0.458175, -0.187473, -0.402553, 0.225154, -0.069841, -0.423506, 0.367267, -0.40356, 0.16414, -0.655346, -0.295128}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -13333,7 +13335,7 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H 0.251237, 0.237103, 0.358358, -0.762111, -0.364944, -0.04633, 0.120133, -0.249979, 0.265841, -0.181785, -0.328781, 0.336781, -0.117505, -0.034779, 0.00199, -0.349486, 0.606767, 0.237495, 0.311784, -0.089736, -0.162392}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } { @@ -16053,10 +16055,19 @@ std::vector PagedAttentionTokenTypeTestData::GetTestDataForHeadSize32H -0.000925, -0.053269, -0.01973, -0.07028, -0.054812, 0.035725, 0.01787, 0.05495, -0.014351, -0.023094, -0.001283, 0.077208, -0.046138, 0.013706, -0.027749, 0.034011, 0.089154, -0.015186, -0.021743, -0.018396, 0.010127, 0.005655, 0.074629}; - testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output}); + testData.push_back({name, token_types, q_data, k_data, v_data, wanted_output, sliding_window_size}); } return testData; } +std::vector PagedAttentionTokenTypeTestData::GetTestData() { + std::vector testData; + auto data1 = GetTestDataForHeadSize32HeadNum1(); + testData.insert(testData.end(), data1.begin(), data1.end()); + auto data2 = GetTestDataForHeadSize32HeadNum1SlidingWindowSize5(); + testData.insert(testData.end(), data2.begin(), data2.end()); + return testData; +} + } // namespace test \ No newline at end of file diff --git a/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h b/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h index 9ff4d1760673..1aed4bdb9629 100644 --- a/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h +++ b/src/plugins/intel_gpu/tests/unit/test_utils/test_data/paged_attention_token_type_test_data.h @@ -17,12 +17,12 @@ struct TestData { std::vector kData; std::vector vData; std::vector expectedOutput; + int slidingWindowSize; }; class PagedAttentionTokenTypeTestData { public: - static std::vector GetTestDataForHeadSize32HeadNum1(); - static std::vector GetTestDataForHeadSize32HeadNum1SlidingWindowSize5(); + static std::vector GetTestData(); }; } // namespace test \ No newline at end of file