From 42a8c644991100c679bb844f6225a820eaa81647 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Fri, 30 Dec 2016 12:28:52 +0100 Subject: [PATCH 001/130] :bookmark: added version information --- src/json.hpp | 9 +++++++++ src/json.hpp.re2c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/src/json.hpp b/src/json.hpp index 23058bee3..b50883557 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -873,8 +873,17 @@ class basic_json break; } + case value_t::null: + { + break; + } + default: { + if (t == value_t::null) + { + throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21"); + } break; } } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index ac9a33154..e8a52a0fd 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -873,8 +873,17 @@ class basic_json break; } + case value_t::null: + { + break; + } + default: { + if (t == value_t::null) + { + throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21"); + } break; } } From 328eb55dc40151a31052c137d25995f97457a3e5 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Fri, 30 Dec 2016 14:02:51 +0100 Subject: [PATCH 002/130] :construction: started working on #397 --- src/json.hpp | 61 ++++++++++++++++++++++++++++++++++++++- src/json.hpp.re2c | 61 ++++++++++++++++++++++++++++++++++++++- test/CMakeLists.txt | 1 + test/Makefile | 3 +- test/src/unit-version.cpp | 40 +++++++++++++++++++++++++ 5 files changed, 163 insertions(+), 3 deletions(-) create mode 100644 test/src/unit-version.cpp diff --git a/src/json.hpp b/src/json.hpp index 5ad1b4e59..1624328aa 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -282,6 +282,64 @@ class basic_json return allocator_type(); } + /*! + @brief returns version information on the library + */ + static basic_json version() + { + basic_json result; + + result["copyright"] = "(C) 2013-2016 Niels Lohmann"; + result["name"] = "JSON for Modern C++"; + result["url"] = "https://github.com/nlohmann/json"; + result["version"] = + { + {"string", "2.0.10"}, + {"major", 2}, + {"minor", 0}, + {"patch", 10}, + }; + +#ifdef _WIN32 + result["platform"] = "win32"; +#elif defined __linux__ + result["platform"] = "linux"; +#elif defined __APPLE__ + result["platform"] = "apple"; +#elif defined __unix__ + result["platform"] = "unix"; +#else + result["platform"] = "unknown"; +#endif + +#if defined(__clang__) + result["compiler"] = {{"family", "clang"}, {"version", CLANG_VERSION}}; +#elif defined(__ICC) || defined(__INTEL_COMPILER) + result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}}; +#elif defined(__GNUC__) || defined(__GNUG__) + result["compiler"] = {{"family", "gcc"}, {"version", GCC_VERSION}}; +#elif defined(__HP_cc) || defined(__HP_aCC) + result["compiler"] = "hp" +#elif defined(__IBMCPP__) + result["compiler"] = {{"family", "ilecpp"}, {"version", __IBMCPP__}}; +#elif defined(_MSC_VER) + result["compiler"] = {{"family", "msvc"}, {"version", _MSC_VER}}; +#elif defined(__PGI) + result["compiler"] = {{"family", "pgcpp"}, {"version", __PGI}}; +#elif defined(__SUNPRO_CC) + result["compiler"] = {{"family", "sunpro"}, {"version", __SUNPRO_CC}}; +#else + result["compiler"] = {{"family", "unknown"}, {"version", "unknown"}}; +#endif + +#ifdef __cplusplus + result["compiler"]["c++"] = std::to_string(__cplusplus); +#else + result["compiler"]["c++"] = "unknown"; +#endif + return result; + } + /////////////////////////// // JSON value data types // @@ -882,7 +940,8 @@ class basic_json { if (t == value_t::null) { - throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21"); + // echo "JSON for Modern C++" | sha1sum + throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10"); } break; } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index be1ebf551..a08c4c932 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -282,6 +282,64 @@ class basic_json return allocator_type(); } + /*! + @brief returns version information on the library + */ + static basic_json version() + { + basic_json result; + + result["copyright"] = "(C) 2013-2016 Niels Lohmann"; + result["name"] = "JSON for Modern C++"; + result["url"] = "https://github.com/nlohmann/json"; + result["version"] = + { + {"string", "2.0.10"}, + {"major", 2}, + {"minor", 0}, + {"patch", 10}, + }; + +#ifdef _WIN32 + result["platform"] = "win32"; +#elif defined __linux__ + result["platform"] = "linux"; +#elif defined __APPLE__ + result["platform"] = "apple"; +#elif defined __unix__ + result["platform"] = "unix"; +#else + result["platform"] = "unknown"; +#endif + +#if defined(__clang__) + result["compiler"] = {{"family", "clang"}, {"version", CLANG_VERSION}}; +#elif defined(__ICC) || defined(__INTEL_COMPILER) + result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}}; +#elif defined(__GNUC__) || defined(__GNUG__) + result["compiler"] = {{"family", "gcc"}, {"version", GCC_VERSION}}; +#elif defined(__HP_cc) || defined(__HP_aCC) + result["compiler"] = "hp" +#elif defined(__IBMCPP__) + result["compiler"] = {{"family", "ilecpp"}, {"version", __IBMCPP__}}; +#elif defined(_MSC_VER) + result["compiler"] = {{"family", "msvc"}, {"version", _MSC_VER}}; +#elif defined(__PGI) + result["compiler"] = {{"family", "pgcpp"}, {"version", __PGI}}; +#elif defined(__SUNPRO_CC) + result["compiler"] = {{"family", "sunpro"}, {"version", __SUNPRO_CC}}; +#else + result["compiler"] = {{"family", "unknown"}, {"version", "unknown"}}; +#endif + +#ifdef __cplusplus + result["compiler"]["c++"] = std::to_string(__cplusplus); +#else + result["compiler"]["c++"] = "unknown"; +#endif + return result; + } + /////////////////////////// // JSON value data types // @@ -882,7 +940,8 @@ class basic_json { if (t == value_t::null) { - throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21"); + // echo "JSON for Modern C++" | sha1sum + throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10"); } break; } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 47785aeed..11c8d5b1d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME} "src/unit-serialization.cpp" "src/unit-testsuites.cpp" "src/unit-unicode.cpp" + "src/unit-version.cpp" ) set_target_properties(${JSON_UNITTEST_TARGET_NAME} PROPERTIES diff --git a/test/Makefile b/test/Makefile index 556ab0d7c..efca90170 100644 --- a/test/Makefile +++ b/test/Makefile @@ -37,8 +37,9 @@ SOURCES = src/unit.cpp \ src/unit-reference_access.cpp \ src/unit-regression.cpp \ src/unit-serialization.cpp \ + src/unit-testsuites.cpp \ src/unit-unicode.cpp \ - src/unit-testsuites.cpp + src/unit-version.cpp OBJECTS = $(SOURCES:.cpp=.o) diff --git a/test/src/unit-version.cpp b/test/src/unit-version.cpp new file mode 100644 index 000000000..bede4ff38 --- /dev/null +++ b/test/src/unit-version.cpp @@ -0,0 +1,40 @@ +/* + __ _____ _____ _____ + __| | __| | | | JSON for Modern C++ (test suite) +| | |__ | | | | | | version 2.0.9 +|_____|_____|_____|_|___| https://github.com/nlohmann/json + +Licensed under the MIT License . +Copyright (c) 2013-2016 Niels Lohmann . + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#include "catch.hpp" + +#include "json.hpp" +using nlohmann::json; + +TEST_CASE("version information") +{ + SECTION("version()") + { + CHECK(json::version()["name"] == "JSON for Modern C++"); + } +} From 245a69d554425407a97374c133445f54d7d05952 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Tue, 3 Jan 2017 21:33:23 +0100 Subject: [PATCH 003/130] :lipstick: ran clang-tidy --- src/json.hpp | 218 +++++++++++++-------------------- src/json.hpp.re2c | 218 +++++++++++++-------------------- test/src/unit-allocator.cpp | 2 +- test/src/unit-constructor1.cpp | 2 +- 4 files changed, 174 insertions(+), 266 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 9d48e7a65..4e043ad5c 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -128,7 +128,7 @@ struct has_mapped_type std::is_integral()))>::value; }; -} +} // namespace /*! @brief a class to store JSON values @@ -767,7 +767,7 @@ class basic_json }; std::unique_ptr object(alloc.allocate(1), deleter); alloc.construct(object.get(), std::forward(args)...); - assert(object.get() != nullptr); + assert(object != nullptr); return object.release(); } @@ -2583,29 +2583,25 @@ class basic_json template::value and std::is_convertible::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { if (is_object()) { return T(m_value.object->begin(), m_value.object->end()); } - else - { - throw std::domain_error("type must be object, but is " + type_name()); - } + + throw std::domain_error("type must be object, but is " + type_name()); } /// get an object (explicit) - object_t get_impl(object_t*) const + object_t get_impl(object_t* /*unused*/) const { if (is_object()) { return *(m_value.object); } - else - { - throw std::domain_error("type must be object, but is " + type_name()); - } + + throw std::domain_error("type must be object, but is " + type_name()); } /// get an array (explicit) @@ -2615,7 +2611,7 @@ class basic_json not std::is_arithmetic::value and not std::is_convertible::value and not has_mapped_type::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { if (is_array()) { @@ -2627,17 +2623,15 @@ class basic_json }); return to_vector; } - else - { - throw std::domain_error("type must be array, but is " + type_name()); - } + + throw std::domain_error("type must be array, but is " + type_name()); } /// get an array (explicit) template::value and not std::is_same::value, int>::type = 0> - std::vector get_impl(std::vector*) const + std::vector get_impl(std::vector* /*unused*/) const { if (is_array()) { @@ -2650,60 +2644,52 @@ class basic_json }); return to_vector; } - else - { - throw std::domain_error("type must be array, but is " + type_name()); - } + + throw std::domain_error("type must be array, but is " + type_name()); } /// get an array (explicit) template::value and not has_mapped_type::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { if (is_array()) { return T(m_value.array->begin(), m_value.array->end()); } - else - { - throw std::domain_error("type must be array, but is " + type_name()); - } + + throw std::domain_error("type must be array, but is " + type_name()); } /// get an array (explicit) - array_t get_impl(array_t*) const + array_t get_impl(array_t* /*unused*/) const { if (is_array()) { return *(m_value.array); } - else - { - throw std::domain_error("type must be array, but is " + type_name()); - } + + throw std::domain_error("type must be array, but is " + type_name()); } /// get a string (explicit) template::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { if (is_string()) { return *m_value.string; } - else - { - throw std::domain_error("type must be string, but is " + type_name()); - } + + throw std::domain_error("type must be string, but is " + type_name()); } /// get a number (explicit) template::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { switch (m_type) { @@ -2730,7 +2716,7 @@ class basic_json } /// get a boolean (explicit) - constexpr boolean_t get_impl(boolean_t*) const + constexpr boolean_t get_impl(boolean_t* /*unused*/) const { return is_boolean() ? m_value.boolean @@ -2738,85 +2724,85 @@ class basic_json } /// get a pointer to the value (object) - object_t* get_impl_ptr(object_t*) noexcept + object_t* get_impl_ptr(object_t* /*unused*/) noexcept { return is_object() ? m_value.object : nullptr; } /// get a pointer to the value (object) - constexpr const object_t* get_impl_ptr(const object_t*) const noexcept + constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept { return is_object() ? m_value.object : nullptr; } /// get a pointer to the value (array) - array_t* get_impl_ptr(array_t*) noexcept + array_t* get_impl_ptr(array_t* /*unused*/) noexcept { return is_array() ? m_value.array : nullptr; } /// get a pointer to the value (array) - constexpr const array_t* get_impl_ptr(const array_t*) const noexcept + constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept { return is_array() ? m_value.array : nullptr; } /// get a pointer to the value (string) - string_t* get_impl_ptr(string_t*) noexcept + string_t* get_impl_ptr(string_t* /*unused*/) noexcept { return is_string() ? m_value.string : nullptr; } /// get a pointer to the value (string) - constexpr const string_t* get_impl_ptr(const string_t*) const noexcept + constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept { return is_string() ? m_value.string : nullptr; } /// get a pointer to the value (boolean) - boolean_t* get_impl_ptr(boolean_t*) noexcept + boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept { return is_boolean() ? &m_value.boolean : nullptr; } /// get a pointer to the value (boolean) - constexpr const boolean_t* get_impl_ptr(const boolean_t*) const noexcept + constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept { return is_boolean() ? &m_value.boolean : nullptr; } /// get a pointer to the value (integer number) - number_integer_t* get_impl_ptr(number_integer_t*) noexcept + number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept { return is_number_integer() ? &m_value.number_integer : nullptr; } /// get a pointer to the value (integer number) - constexpr const number_integer_t* get_impl_ptr(const number_integer_t*) const noexcept + constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept { return is_number_integer() ? &m_value.number_integer : nullptr; } /// get a pointer to the value (unsigned number) - number_unsigned_t* get_impl_ptr(number_unsigned_t*) noexcept + number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept { return is_number_unsigned() ? &m_value.number_unsigned : nullptr; } /// get a pointer to the value (unsigned number) - constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t*) const noexcept + constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept { return is_number_unsigned() ? &m_value.number_unsigned : nullptr; } /// get a pointer to the value (floating-point number) - number_float_t* get_impl_ptr(number_float_t*) noexcept + number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept { return is_number_float() ? &m_value.number_float : nullptr; } /// get a pointer to the value (floating-point number) - constexpr const number_float_t* get_impl_ptr(const number_float_t*) const noexcept + constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept { return is_number_float() ? &m_value.number_float : nullptr; } @@ -2845,11 +2831,9 @@ class basic_json { return *ptr; } - else - { - throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " + - obj.type_name()); - } + + throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " + + obj.type_name()); } public: @@ -3349,10 +3333,8 @@ class basic_json return m_value.array->operator[](idx); } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3381,10 +3363,8 @@ class basic_json { return m_value.array->operator[](idx); } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3429,10 +3409,8 @@ class basic_json { return m_value.object->operator[](key); } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3473,10 +3451,8 @@ class basic_json assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3590,10 +3566,8 @@ class basic_json { return m_value.object->operator[](key); } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3635,10 +3609,8 @@ class basic_json assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3702,10 +3674,8 @@ class basic_json { return *it; } - else - { - return default_value; - } + + return default_value; } else { @@ -4131,10 +4101,8 @@ class basic_json { return m_value.object->erase(key); } - else - { - throw std::domain_error("cannot use erase() with " + type_name()); - } + + throw std::domain_error("cannot use erase() with " + type_name()); } /*! @@ -5186,10 +5154,8 @@ class basic_json result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, val); return result; } - else - { - throw std::domain_error("cannot use insert() with " + type_name()); - } + + throw std::domain_error("cannot use insert() with " + type_name()); } /*! @@ -5241,10 +5207,8 @@ class basic_json result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val); return result; } - else - { - throw std::domain_error("cannot use insert() with " + type_name()); - } + + throw std::domain_error("cannot use insert() with " + type_name()); } /*! @@ -6122,7 +6086,7 @@ class basic_json { // assertion to check that the iterator range is indeed contiguous, // see http://stackoverflow.com/a/35008842/266378 for more discussion - assert(std::accumulate(first, last, std::make_pair(true, 0), + assert(std::accumulate(first, last, std::pair(true, 0), [&first](std::pair res, decltype(*first) val) { res.first &= (val == *(std::next(std::addressof(*first), res.second++))); @@ -6327,7 +6291,7 @@ class basic_json } T result; - uint8_t* ptr = reinterpret_cast(&result); + auto* ptr = reinterpret_cast(&result); for (size_t i = 0; i < sizeof(T); ++i) { *ptr++ = vec[current_index + sizeof(T) - i]; @@ -6473,7 +6437,7 @@ class basic_json { // float 64 v.push_back(0xcb); - const uint8_t* helper = reinterpret_cast(&(j.m_value.number_float)); + const auto* helper = reinterpret_cast(&(j.m_value.number_float)); for (size_t i = 0; i < 8; ++i) { v.push_back(helper[7 - i]); @@ -6716,7 +6680,7 @@ class basic_json { // Double-Precision Float v.push_back(0xfb); - const uint8_t* helper = reinterpret_cast(&(j.m_value.number_float)); + const auto* helper = reinterpret_cast(&(j.m_value.number_float)); for (size_t i = 0; i < 8; ++i) { v.push_back(helper[7 - i]); @@ -6916,7 +6880,7 @@ class basic_json { return v[current_idx]; } - else if (v[current_idx] <= 0x8f) // fixmap + if (v[current_idx] <= 0x8f) // fixmap { basic_json result = value_t::object; const size_t len = v[current_idx] & 0x0f; @@ -7577,7 +7541,7 @@ class basic_json { val = mant == 0 ? INFINITY : NAN; } - return half & 0x8000 ? -val : val; + return (half & 0x8000) != 0 ? -val : val; } case 0xfa: // Single-Precision Float (four-byte IEEE 754) @@ -7800,10 +7764,8 @@ class basic_json // from c (1 byte) to \uxxxx (6 bytes) return res + 5; } - else - { - return res; - } + + return res; } } }); @@ -8509,10 +8471,8 @@ class basic_json { return *m_object; } - else - { - throw std::out_of_range("cannot get value"); - } + + throw std::out_of_range("cannot get value"); } } } @@ -8545,10 +8505,8 @@ class basic_json { return m_object; } - else - { - throw std::out_of_range("cannot get value"); - } + + throw std::out_of_range("cannot get value"); } } } @@ -8861,10 +8819,8 @@ class basic_json { return *m_object; } - else - { - throw std::out_of_range("cannot get value"); - } + + throw std::out_of_range("cannot get value"); } } } @@ -8881,10 +8837,8 @@ class basic_json { return m_it.object_iterator->first; } - else - { - throw std::domain_error("cannot use key() for non-object iterators"); - } + + throw std::domain_error("cannot use key() for non-object iterators"); } /*! @@ -10209,7 +10163,7 @@ basic_json_parser_66: assert(m_marker == nullptr or m_marker <= m_limit); // number of processed characters (p) - const size_t num_processed_chars = static_cast(m_start - m_content); + const auto num_processed_chars = static_cast(m_start - m_content); // offset for m_marker wrt. to m_start const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; // number of unprocessed characters (u) @@ -10601,7 +10555,7 @@ basic_json_parser_66: else { // parse with strtod - result.m_value.number_float = str_to_float_t(static_cast(nullptr), NULL); + result.m_value.number_float = str_to_float_t(static_cast(nullptr), nullptr); // replace infinity and NAN by null if (not std::isfinite(result.m_value.number_float)) @@ -11336,7 +11290,7 @@ basic_json_parser_66: // - start: position after the previous slash for ( // search for the first slash after the first character - size_t slash = reference_string.find_first_of("/", 1), + size_t slash = reference_string.find_first_of('/', 1), // set the beginning of the first reference token start = 1; // we can stop if start == string::npos+1 = 0 @@ -11345,16 +11299,16 @@ basic_json_parser_66: // (will eventually be 0 if slash == std::string::npos) start = slash + 1, // find next slash - slash = reference_string.find_first_of("/", start)) + slash = reference_string.find_first_of('/', start)) { // use the text between the beginning of the reference token // (start) and the last slash (slash). auto reference_token = reference_string.substr(start, slash - start); // check reference tokens are properly escaped - for (size_t pos = reference_token.find_first_of("~"); + for (size_t pos = reference_token.find_first_of('~'); pos != std::string::npos; - pos = reference_token.find_first_of("~", pos + 1)) + pos = reference_token.find_first_of('~', pos + 1)) { assert(reference_token[pos] == '~'); @@ -12188,7 +12142,7 @@ uses the standard template types. @since version 1.0.0 */ using json = basic_json<>; -} +} // namespace nlohmann /////////////////////// @@ -12229,7 +12183,7 @@ struct hash return h(j.dump()); } }; -} +} // namespace std /*! @brief user-defined string literal for JSON values diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index e1a43b54c..a64762b90 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -128,7 +128,7 @@ struct has_mapped_type std::is_integral()))>::value; }; -} +} // namespace /*! @brief a class to store JSON values @@ -767,7 +767,7 @@ class basic_json }; std::unique_ptr object(alloc.allocate(1), deleter); alloc.construct(object.get(), std::forward(args)...); - assert(object.get() != nullptr); + assert(object != nullptr); return object.release(); } @@ -2583,29 +2583,25 @@ class basic_json template::value and std::is_convertible::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { if (is_object()) { return T(m_value.object->begin(), m_value.object->end()); } - else - { - throw std::domain_error("type must be object, but is " + type_name()); - } + + throw std::domain_error("type must be object, but is " + type_name()); } /// get an object (explicit) - object_t get_impl(object_t*) const + object_t get_impl(object_t* /*unused*/) const { if (is_object()) { return *(m_value.object); } - else - { - throw std::domain_error("type must be object, but is " + type_name()); - } + + throw std::domain_error("type must be object, but is " + type_name()); } /// get an array (explicit) @@ -2615,7 +2611,7 @@ class basic_json not std::is_arithmetic::value and not std::is_convertible::value and not has_mapped_type::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { if (is_array()) { @@ -2627,17 +2623,15 @@ class basic_json }); return to_vector; } - else - { - throw std::domain_error("type must be array, but is " + type_name()); - } + + throw std::domain_error("type must be array, but is " + type_name()); } /// get an array (explicit) template::value and not std::is_same::value, int>::type = 0> - std::vector get_impl(std::vector*) const + std::vector get_impl(std::vector* /*unused*/) const { if (is_array()) { @@ -2650,60 +2644,52 @@ class basic_json }); return to_vector; } - else - { - throw std::domain_error("type must be array, but is " + type_name()); - } + + throw std::domain_error("type must be array, but is " + type_name()); } /// get an array (explicit) template::value and not has_mapped_type::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { if (is_array()) { return T(m_value.array->begin(), m_value.array->end()); } - else - { - throw std::domain_error("type must be array, but is " + type_name()); - } + + throw std::domain_error("type must be array, but is " + type_name()); } /// get an array (explicit) - array_t get_impl(array_t*) const + array_t get_impl(array_t* /*unused*/) const { if (is_array()) { return *(m_value.array); } - else - { - throw std::domain_error("type must be array, but is " + type_name()); - } + + throw std::domain_error("type must be array, but is " + type_name()); } /// get a string (explicit) template::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { if (is_string()) { return *m_value.string; } - else - { - throw std::domain_error("type must be string, but is " + type_name()); - } + + throw std::domain_error("type must be string, but is " + type_name()); } /// get a number (explicit) template::value, int>::type = 0> - T get_impl(T*) const + T get_impl(T* /*unused*/) const { switch (m_type) { @@ -2730,7 +2716,7 @@ class basic_json } /// get a boolean (explicit) - constexpr boolean_t get_impl(boolean_t*) const + constexpr boolean_t get_impl(boolean_t* /*unused*/) const { return is_boolean() ? m_value.boolean @@ -2738,85 +2724,85 @@ class basic_json } /// get a pointer to the value (object) - object_t* get_impl_ptr(object_t*) noexcept + object_t* get_impl_ptr(object_t* /*unused*/) noexcept { return is_object() ? m_value.object : nullptr; } /// get a pointer to the value (object) - constexpr const object_t* get_impl_ptr(const object_t*) const noexcept + constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept { return is_object() ? m_value.object : nullptr; } /// get a pointer to the value (array) - array_t* get_impl_ptr(array_t*) noexcept + array_t* get_impl_ptr(array_t* /*unused*/) noexcept { return is_array() ? m_value.array : nullptr; } /// get a pointer to the value (array) - constexpr const array_t* get_impl_ptr(const array_t*) const noexcept + constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept { return is_array() ? m_value.array : nullptr; } /// get a pointer to the value (string) - string_t* get_impl_ptr(string_t*) noexcept + string_t* get_impl_ptr(string_t* /*unused*/) noexcept { return is_string() ? m_value.string : nullptr; } /// get a pointer to the value (string) - constexpr const string_t* get_impl_ptr(const string_t*) const noexcept + constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept { return is_string() ? m_value.string : nullptr; } /// get a pointer to the value (boolean) - boolean_t* get_impl_ptr(boolean_t*) noexcept + boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept { return is_boolean() ? &m_value.boolean : nullptr; } /// get a pointer to the value (boolean) - constexpr const boolean_t* get_impl_ptr(const boolean_t*) const noexcept + constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept { return is_boolean() ? &m_value.boolean : nullptr; } /// get a pointer to the value (integer number) - number_integer_t* get_impl_ptr(number_integer_t*) noexcept + number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept { return is_number_integer() ? &m_value.number_integer : nullptr; } /// get a pointer to the value (integer number) - constexpr const number_integer_t* get_impl_ptr(const number_integer_t*) const noexcept + constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept { return is_number_integer() ? &m_value.number_integer : nullptr; } /// get a pointer to the value (unsigned number) - number_unsigned_t* get_impl_ptr(number_unsigned_t*) noexcept + number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept { return is_number_unsigned() ? &m_value.number_unsigned : nullptr; } /// get a pointer to the value (unsigned number) - constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t*) const noexcept + constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept { return is_number_unsigned() ? &m_value.number_unsigned : nullptr; } /// get a pointer to the value (floating-point number) - number_float_t* get_impl_ptr(number_float_t*) noexcept + number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept { return is_number_float() ? &m_value.number_float : nullptr; } /// get a pointer to the value (floating-point number) - constexpr const number_float_t* get_impl_ptr(const number_float_t*) const noexcept + constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept { return is_number_float() ? &m_value.number_float : nullptr; } @@ -2845,11 +2831,9 @@ class basic_json { return *ptr; } - else - { - throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " + - obj.type_name()); - } + + throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " + + obj.type_name()); } public: @@ -3349,10 +3333,8 @@ class basic_json return m_value.array->operator[](idx); } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3381,10 +3363,8 @@ class basic_json { return m_value.array->operator[](idx); } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3429,10 +3409,8 @@ class basic_json { return m_value.object->operator[](key); } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3473,10 +3451,8 @@ class basic_json assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3590,10 +3566,8 @@ class basic_json { return m_value.object->operator[](key); } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3635,10 +3609,8 @@ class basic_json assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } - else - { - throw std::domain_error("cannot use operator[] with " + type_name()); - } + + throw std::domain_error("cannot use operator[] with " + type_name()); } /*! @@ -3702,10 +3674,8 @@ class basic_json { return *it; } - else - { - return default_value; - } + + return default_value; } else { @@ -4131,10 +4101,8 @@ class basic_json { return m_value.object->erase(key); } - else - { - throw std::domain_error("cannot use erase() with " + type_name()); - } + + throw std::domain_error("cannot use erase() with " + type_name()); } /*! @@ -5186,10 +5154,8 @@ class basic_json result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, val); return result; } - else - { - throw std::domain_error("cannot use insert() with " + type_name()); - } + + throw std::domain_error("cannot use insert() with " + type_name()); } /*! @@ -5241,10 +5207,8 @@ class basic_json result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val); return result; } - else - { - throw std::domain_error("cannot use insert() with " + type_name()); - } + + throw std::domain_error("cannot use insert() with " + type_name()); } /*! @@ -6122,7 +6086,7 @@ class basic_json { // assertion to check that the iterator range is indeed contiguous, // see http://stackoverflow.com/a/35008842/266378 for more discussion - assert(std::accumulate(first, last, std::make_pair(true, 0), + assert(std::accumulate(first, last, std::pair(true, 0), [&first](std::pair res, decltype(*first) val) { res.first &= (val == *(std::next(std::addressof(*first), res.second++))); @@ -6327,7 +6291,7 @@ class basic_json } T result; - uint8_t* ptr = reinterpret_cast(&result); + auto* ptr = reinterpret_cast(&result); for (size_t i = 0; i < sizeof(T); ++i) { *ptr++ = vec[current_index + sizeof(T) - i]; @@ -6473,7 +6437,7 @@ class basic_json { // float 64 v.push_back(0xcb); - const uint8_t* helper = reinterpret_cast(&(j.m_value.number_float)); + const auto* helper = reinterpret_cast(&(j.m_value.number_float)); for (size_t i = 0; i < 8; ++i) { v.push_back(helper[7 - i]); @@ -6716,7 +6680,7 @@ class basic_json { // Double-Precision Float v.push_back(0xfb); - const uint8_t* helper = reinterpret_cast(&(j.m_value.number_float)); + const auto* helper = reinterpret_cast(&(j.m_value.number_float)); for (size_t i = 0; i < 8; ++i) { v.push_back(helper[7 - i]); @@ -6916,7 +6880,7 @@ class basic_json { return v[current_idx]; } - else if (v[current_idx] <= 0x8f) // fixmap + if (v[current_idx] <= 0x8f) // fixmap { basic_json result = value_t::object; const size_t len = v[current_idx] & 0x0f; @@ -7577,7 +7541,7 @@ class basic_json { val = mant == 0 ? INFINITY : NAN; } - return half & 0x8000 ? -val : val; + return (half & 0x8000) != 0 ? -val : val; } case 0xfa: // Single-Precision Float (four-byte IEEE 754) @@ -7800,10 +7764,8 @@ class basic_json // from c (1 byte) to \uxxxx (6 bytes) return res + 5; } - else - { - return res; - } + + return res; } } }); @@ -8509,10 +8471,8 @@ class basic_json { return *m_object; } - else - { - throw std::out_of_range("cannot get value"); - } + + throw std::out_of_range("cannot get value"); } } } @@ -8545,10 +8505,8 @@ class basic_json { return m_object; } - else - { - throw std::out_of_range("cannot get value"); - } + + throw std::out_of_range("cannot get value"); } } } @@ -8861,10 +8819,8 @@ class basic_json { return *m_object; } - else - { - throw std::out_of_range("cannot get value"); - } + + throw std::out_of_range("cannot get value"); } } } @@ -8881,10 +8837,8 @@ class basic_json { return m_it.object_iterator->first; } - else - { - throw std::domain_error("cannot use key() for non-object iterators"); - } + + throw std::domain_error("cannot use key() for non-object iterators"); } /*! @@ -9359,7 +9313,7 @@ class basic_json assert(m_marker == nullptr or m_marker <= m_limit); // number of processed characters (p) - const size_t num_processed_chars = static_cast(m_start - m_content); + const auto num_processed_chars = static_cast(m_start - m_content); // offset for m_marker wrt. to m_start const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; // number of unprocessed characters (u) @@ -9751,7 +9705,7 @@ class basic_json else { // parse with strtod - result.m_value.number_float = str_to_float_t(static_cast(nullptr), NULL); + result.m_value.number_float = str_to_float_t(static_cast(nullptr), nullptr); // replace infinity and NAN by null if (not std::isfinite(result.m_value.number_float)) @@ -10486,7 +10440,7 @@ class basic_json // - start: position after the previous slash for ( // search for the first slash after the first character - size_t slash = reference_string.find_first_of("/", 1), + size_t slash = reference_string.find_first_of('/', 1), // set the beginning of the first reference token start = 1; // we can stop if start == string::npos+1 = 0 @@ -10495,16 +10449,16 @@ class basic_json // (will eventually be 0 if slash == std::string::npos) start = slash + 1, // find next slash - slash = reference_string.find_first_of("/", start)) + slash = reference_string.find_first_of('/', start)) { // use the text between the beginning of the reference token // (start) and the last slash (slash). auto reference_token = reference_string.substr(start, slash - start); // check reference tokens are properly escaped - for (size_t pos = reference_token.find_first_of("~"); + for (size_t pos = reference_token.find_first_of('~'); pos != std::string::npos; - pos = reference_token.find_first_of("~", pos + 1)) + pos = reference_token.find_first_of('~', pos + 1)) { assert(reference_token[pos] == '~'); @@ -11338,7 +11292,7 @@ uses the standard template types. @since version 1.0.0 */ using json = basic_json<>; -} +} // namespace nlohmann /////////////////////// @@ -11379,7 +11333,7 @@ struct hash return h(j.dump()); } }; -} +} // namespace std /*! @brief user-defined string literal for JSON values diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp index f11d8538b..76f9a16b2 100644 --- a/test/src/unit-allocator.cpp +++ b/test/src/unit-allocator.cpp @@ -80,7 +80,7 @@ struct my_allocator : std::allocator } else { - ::new(reinterpret_cast(p)) T(std::forward(args)...); + ::new (reinterpret_cast(p)) T(std::forward(args)...); } } diff --git a/test/src/unit-constructor1.cpp b/test/src/unit-constructor1.cpp index 6bfb4402a..d03a5f408 100644 --- a/test/src/unit-constructor1.cpp +++ b/test/src/unit-constructor1.cpp @@ -912,7 +912,7 @@ TEST_CASE("constructors") SECTION("array") { - json j { {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} , 13 }; + json j { {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false}, 13 }; CHECK(j.type() == json::value_t::array); } } From f8d640b185c4b34bfb651250eb3b7113caf0317b Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Tue, 3 Jan 2017 22:35:31 +0100 Subject: [PATCH 004/130] :construction_worker: better support for OSS-Fuzz --- test/Makefile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/Makefile b/test/Makefile index 68520bd3b..678276bae 100644 --- a/test/Makefile +++ b/test/Makefile @@ -51,7 +51,7 @@ TESTCASES = $(patsubst src/unit-%.cpp,test-%,$(wildcard src/unit-*.cpp)) all: $(TESTCASES) clean: - rm -fr json_unit $(OBJECTS) $(SOURCES:.cpp=.gcno) $(SOURCES:.cpp=.gcda) $(TESTCASES) + rm -fr json_unit $(OBJECTS) $(SOURCES:.cpp=.gcno) $(SOURCES:.cpp=.gcda) $(TESTCASES) parse_afl_fuzzer parse_cbor_fuzzer parse_msgpack_fuzzer ############################################################################## # single test file @@ -84,13 +84,14 @@ check: $(TESTCASES) # fuzzer ############################################################################## +FUZZER_ENGINE = src/fuzzer-driver_afl.cpp fuzzers: parse_afl_fuzzer parse_cbor_fuzzer parse_msgpack_fuzzer parse_afl_fuzzer: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) src/fuzzer-driver_afl.cpp src/fuzzer-parse_json.cpp -o $@ + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(FUZZER_ENGINE) src/fuzzer-parse_json.cpp -o $@ parse_cbor_fuzzer: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) src/fuzzer-driver_afl.cpp src/fuzzer-parse_cbor.cpp -o $@ + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(FUZZER_ENGINE) src/fuzzer-parse_cbor.cpp -o $@ parse_msgpack_fuzzer: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) src/fuzzer-driver_afl.cpp src/fuzzer-parse_msgpack.cpp -o $@ + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(FUZZER_ENGINE) src/fuzzer-parse_msgpack.cpp -o $@ From 767637877b6004ed16a0474ed3e3aa022fb493da Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Tue, 3 Jan 2017 22:37:07 +0100 Subject: [PATCH 005/130] :lipstick: cleanup --- src/json.hpp | 52 ++++++++++++++++++++++++----------------------- src/json.hpp.re2c | 52 ++++++++++++++++++++++++----------------------- 2 files changed, 54 insertions(+), 50 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 4e043ad5c..f3b77a41c 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -153,7 +153,8 @@ default) @requirement The class satisfies the following concept requirements: - Basic - [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible): - JSON values can be default constructed. The result will be a JSON null value. + JSON values can be default constructed. The result will be a JSON null + value. - [MoveConstructible](http://en.cppreference.com/w/cpp/concept/MoveConstructible): A JSON value can be constructed from an rvalue argument. - [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible): @@ -168,8 +169,8 @@ default) - [StandardLayoutType](http://en.cppreference.com/w/cpp/concept/StandardLayoutType): JSON values have [standard layout](http://en.cppreference.com/w/cpp/language/data_members#Standard_layout): - All non-static data members are private and standard layout types, the class - has no virtual functions or (virtual) base classes. + All non-static data members are private and standard layout types, the + class has no virtual functions or (virtual) base classes. - Library-wide - [EqualityComparable](http://en.cppreference.com/w/cpp/concept/EqualityComparable): JSON values can be compared with `==`, see @ref @@ -1894,13 +1895,15 @@ class basic_json case value_t::object: { - m_value.object = create(first.m_it.object_iterator, last.m_it.object_iterator); + m_value.object = create(first.m_it.object_iterator, + last.m_it.object_iterator); break; } case value_t::array: { - m_value.array = create(first.m_it.array_iterator, last.m_it.array_iterator); + m_value.array = create(first.m_it.array_iterator, + last.m_it.array_iterator); break; } @@ -3084,7 +3087,7 @@ class basic_json template < typename ValueType, typename std::enable_if < not std::is_pointer::value and not std::is_same::value -#ifndef _MSC_VER // Fix for issue #167 operator<< abiguity under VS2015 +#ifndef _MSC_VER // fix for issue #167 operator<< abiguity under VS2015 and not std::is_same>::value #endif , int >::type = 0 > @@ -3750,10 +3753,8 @@ class basic_json return default_value; } } - else - { - throw std::domain_error("cannot use value() with " + type_name()); - } + + throw std::domain_error("cannot use value() with " + type_name()); } /*! @@ -5065,8 +5066,8 @@ class basic_json /*! @brief add an object to an object if key does not exist - Inserts a new element into a JSON object constructed in-place with the given - @a args if there is no element with the key in the container. If the + Inserts a new element into a JSON object constructed in-place with the + given @a args if there is no element with the key in the container. If the function is called on a JSON null value, an empty object is created before appending the value created from @a args. @@ -5131,8 +5132,8 @@ class basic_json @throw std::domain_error if @a pos is not an iterator of *this; example: `"iterator does not fit current value"` - @complexity Constant plus linear in the distance between pos and end of the - container. + @complexity Constant plus linear in the distance between pos and end of + the container. @liveexample{The example shows how `insert()` is used.,insert} @@ -5358,8 +5359,8 @@ class basic_json @param[in,out] other array to exchange the contents with - @throw std::domain_error when JSON value is not an array; example: `"cannot - use swap() with string"` + @throw std::domain_error when JSON value is not an array; example: + `"cannot use swap() with string"` @complexity Constant. @@ -6332,8 +6333,9 @@ class basic_json if (j.m_value.number_integer >= 0) { // MessagePack does not differentiate between positive - // signed integers and unsigned integers. Therefore, we used - // the code from the value_t::number_unsigned case here. + // signed integers and unsigned integers. Therefore, we + // used the code from the value_t::number_unsigned case + // here. if (j.m_value.number_unsigned < 128) { // positive fixnum @@ -6608,8 +6610,8 @@ class basic_json } else { - // The conversions below encode the sign in the first byte, - // and the value is converted to a positive number. + // The conversions below encode the sign in the first + // byte, and the value is converted to a positive number. const auto positive_number = -1 - j.m_value.number_integer; if (j.m_value.number_integer >= -24) { @@ -6814,12 +6816,12 @@ class basic_json To secure the access to the byte vector during CBOR/MessagePack deserialization, bytes are copied from the vector into buffers. This - function checks if the number of bytes to copy (@a len) does not exceed the - size @s size of the vector. Additionally, an @a offset is given from where - to start reading the bytes. + function checks if the number of bytes to copy (@a len) does not exceed + the size @s size of the vector. Additionally, an @a offset is given from + where to start reading the bytes. - This function checks whether reading the bytes is safe; that is, offset is a - valid index in the vector, offset+len + This function checks whether reading the bytes is safe; that is, offset is + a valid index in the vector, offset+len @param[in] size size of the byte vector @param[in] len number of bytes to read diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index a64762b90..42459f4e3 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -153,7 +153,8 @@ default) @requirement The class satisfies the following concept requirements: - Basic - [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible): - JSON values can be default constructed. The result will be a JSON null value. + JSON values can be default constructed. The result will be a JSON null + value. - [MoveConstructible](http://en.cppreference.com/w/cpp/concept/MoveConstructible): A JSON value can be constructed from an rvalue argument. - [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible): @@ -168,8 +169,8 @@ default) - [StandardLayoutType](http://en.cppreference.com/w/cpp/concept/StandardLayoutType): JSON values have [standard layout](http://en.cppreference.com/w/cpp/language/data_members#Standard_layout): - All non-static data members are private and standard layout types, the class - has no virtual functions or (virtual) base classes. + All non-static data members are private and standard layout types, the + class has no virtual functions or (virtual) base classes. - Library-wide - [EqualityComparable](http://en.cppreference.com/w/cpp/concept/EqualityComparable): JSON values can be compared with `==`, see @ref @@ -1894,13 +1895,15 @@ class basic_json case value_t::object: { - m_value.object = create(first.m_it.object_iterator, last.m_it.object_iterator); + m_value.object = create(first.m_it.object_iterator, + last.m_it.object_iterator); break; } case value_t::array: { - m_value.array = create(first.m_it.array_iterator, last.m_it.array_iterator); + m_value.array = create(first.m_it.array_iterator, + last.m_it.array_iterator); break; } @@ -3084,7 +3087,7 @@ class basic_json template < typename ValueType, typename std::enable_if < not std::is_pointer::value and not std::is_same::value -#ifndef _MSC_VER // Fix for issue #167 operator<< abiguity under VS2015 +#ifndef _MSC_VER // fix for issue #167 operator<< abiguity under VS2015 and not std::is_same>::value #endif , int >::type = 0 > @@ -3750,10 +3753,8 @@ class basic_json return default_value; } } - else - { - throw std::domain_error("cannot use value() with " + type_name()); - } + + throw std::domain_error("cannot use value() with " + type_name()); } /*! @@ -5065,8 +5066,8 @@ class basic_json /*! @brief add an object to an object if key does not exist - Inserts a new element into a JSON object constructed in-place with the given - @a args if there is no element with the key in the container. If the + Inserts a new element into a JSON object constructed in-place with the + given @a args if there is no element with the key in the container. If the function is called on a JSON null value, an empty object is created before appending the value created from @a args. @@ -5131,8 +5132,8 @@ class basic_json @throw std::domain_error if @a pos is not an iterator of *this; example: `"iterator does not fit current value"` - @complexity Constant plus linear in the distance between pos and end of the - container. + @complexity Constant plus linear in the distance between pos and end of + the container. @liveexample{The example shows how `insert()` is used.,insert} @@ -5358,8 +5359,8 @@ class basic_json @param[in,out] other array to exchange the contents with - @throw std::domain_error when JSON value is not an array; example: `"cannot - use swap() with string"` + @throw std::domain_error when JSON value is not an array; example: + `"cannot use swap() with string"` @complexity Constant. @@ -6332,8 +6333,9 @@ class basic_json if (j.m_value.number_integer >= 0) { // MessagePack does not differentiate between positive - // signed integers and unsigned integers. Therefore, we used - // the code from the value_t::number_unsigned case here. + // signed integers and unsigned integers. Therefore, we + // used the code from the value_t::number_unsigned case + // here. if (j.m_value.number_unsigned < 128) { // positive fixnum @@ -6608,8 +6610,8 @@ class basic_json } else { - // The conversions below encode the sign in the first byte, - // and the value is converted to a positive number. + // The conversions below encode the sign in the first + // byte, and the value is converted to a positive number. const auto positive_number = -1 - j.m_value.number_integer; if (j.m_value.number_integer >= -24) { @@ -6814,12 +6816,12 @@ class basic_json To secure the access to the byte vector during CBOR/MessagePack deserialization, bytes are copied from the vector into buffers. This - function checks if the number of bytes to copy (@a len) does not exceed the - size @s size of the vector. Additionally, an @a offset is given from where - to start reading the bytes. + function checks if the number of bytes to copy (@a len) does not exceed + the size @s size of the vector. Additionally, an @a offset is given from + where to start reading the bytes. - This function checks whether reading the bytes is safe; that is, offset is a - valid index in the vector, offset+len + This function checks whether reading the bytes is safe; that is, offset is + a valid index in the vector, offset+len @param[in] size size of the byte vector @param[in] len number of bytes to read From cdd3b5a68c9cae62815808e36486aab60fe87ffe Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Tue, 3 Jan 2017 23:52:01 +0100 Subject: [PATCH 006/130] :ambulance: fix for #416 --- src/json.hpp | 12 ++++-------- src/json.hpp.re2c | 15 +++++---------- test/src/unit-regression.cpp | 27 +++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index f3b77a41c..4aa293d29 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -6938,11 +6938,10 @@ class basic_json case 0xca: // float 32 { // copy bytes in reverse order into the double variable - check_length(v.size(), sizeof(float), 1); float res; for (size_t byte = 0; byte < sizeof(float); ++byte) { - reinterpret_cast(&res)[sizeof(float) - byte - 1] = v[current_idx + 1 + byte]; + reinterpret_cast(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(float); // skip content bytes return res; @@ -6951,11 +6950,10 @@ class basic_json case 0xcb: // float 64 { // copy bytes in reverse order into the double variable - check_length(v.size(), sizeof(double), 1); double res; for (size_t byte = 0; byte < sizeof(double); ++byte) { - reinterpret_cast(&res)[sizeof(double) - byte - 1] = v[current_idx + 1 + byte]; + reinterpret_cast(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(double); // skip content bytes return res; @@ -7549,11 +7547,10 @@ class basic_json case 0xfa: // Single-Precision Float (four-byte IEEE 754) { // copy bytes in reverse order into the float variable - check_length(v.size(), sizeof(float), 1); float res; for (size_t byte = 0; byte < sizeof(float); ++byte) { - reinterpret_cast(&res)[sizeof(float) - byte - 1] = v[current_idx + 1 + byte]; + reinterpret_cast(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(float); // skip content bytes return res; @@ -7561,12 +7558,11 @@ class basic_json case 0xfb: // Double-Precision Float (eight-byte IEEE 754) { - check_length(v.size(), sizeof(double), 1); // copy bytes in reverse order into the double variable double res; for (size_t byte = 0; byte < sizeof(double); ++byte) { - reinterpret_cast(&res)[sizeof(double) - byte - 1] = v[current_idx + 1 + byte]; + reinterpret_cast(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(double); // skip content bytes return res; diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 42459f4e3..73c4131a9 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -6938,11 +6938,10 @@ class basic_json case 0xca: // float 32 { // copy bytes in reverse order into the double variable - check_length(v.size(), sizeof(float), 1); float res; for (size_t byte = 0; byte < sizeof(float); ++byte) { - reinterpret_cast(&res)[sizeof(float) - byte - 1] = v[current_idx + 1 + byte]; + reinterpret_cast(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(float); // skip content bytes return res; @@ -6951,11 +6950,10 @@ class basic_json case 0xcb: // float 64 { // copy bytes in reverse order into the double variable - check_length(v.size(), sizeof(double), 1); double res; for (size_t byte = 0; byte < sizeof(double); ++byte) { - reinterpret_cast(&res)[sizeof(double) - byte - 1] = v[current_idx + 1 + byte]; + reinterpret_cast(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(double); // skip content bytes return res; @@ -7517,7 +7515,6 @@ class basic_json case 0xf9: // Half-Precision Float (two-byte IEEE 754) { - check_length(v.size(), 2, 1); idx += 2; // skip two content bytes // code from RFC 7049, Appendix D, Figure 3: @@ -7527,7 +7524,7 @@ class basic_json // include at least decoding support for them even without such // support. An example of a small decoder for half-precision // floating-point numbers in the C language is shown in Fig. 3. - const int half = (v[current_idx + 1] << 8) + v[current_idx + 2]; + const int half = (v.at(current_idx + 1) << 8) + v.at(current_idx + 2); const int exp = (half >> 10) & 0x1f; const int mant = half & 0x3ff; double val; @@ -7549,11 +7546,10 @@ class basic_json case 0xfa: // Single-Precision Float (four-byte IEEE 754) { // copy bytes in reverse order into the float variable - check_length(v.size(), sizeof(float), 1); float res; for (size_t byte = 0; byte < sizeof(float); ++byte) { - reinterpret_cast(&res)[sizeof(float) - byte - 1] = v[current_idx + 1 + byte]; + reinterpret_cast(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(float); // skip content bytes return res; @@ -7561,12 +7557,11 @@ class basic_json case 0xfb: // Double-Precision Float (eight-byte IEEE 754) { - check_length(v.size(), sizeof(double), 1); // copy bytes in reverse order into the double variable double res; for (size_t byte = 0; byte < sizeof(double); ++byte) { - reinterpret_cast(&res)[sizeof(double) - byte - 1] = v[current_idx + 1 + byte]; + reinterpret_cast(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(double); // skip content bytes return res; diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp index 401867c26..7cb9169f2 100644 --- a/test/src/unit-regression.cpp +++ b/test/src/unit-regression.cpp @@ -663,4 +663,31 @@ TEST_CASE("regression tests") std::vector vec3 {0xbf, 0x61, 0x61, 0x01}; CHECK_THROWS_AS(json::from_cbor(vec3), std::out_of_range); } + + SECTION("issue #416 - Use-of-uninitialized-value (OSS-Fuzz issue 377)") + { + // original test case + std::vector vec1 + { + 0x94, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, + 0x3a, 0x96, 0x96, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, + 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0x71, + 0xb4, 0xb4, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0x3a, + 0x96, 0x96, 0xb4, 0xb4, 0xfa, 0x94, 0x94, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0xfa + }; + CHECK_THROWS_AS(json::from_cbor(vec1), std::out_of_range); + + // related test case: double-precision + std::vector vec2 + { + 0x94, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, + 0x3a, 0x96, 0x96, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, + 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0x71, + 0xb4, 0xb4, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0x3a, + 0x96, 0x96, 0xb4, 0xb4, 0xfa, 0x94, 0x94, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0xfb + }; + CHECK_THROWS_AS(json::from_cbor(vec2), std::out_of_range); + } } From 476507031890fd6effb7b447a156168803b0bd37 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Wed, 4 Jan 2017 18:07:46 +0100 Subject: [PATCH 007/130] :memo: added documentation wrt. UTF-8 strings #406 --- README.md | 1 + src/json.hpp | 9 +++++++-- src/json.hpp.re2c | 6 ++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 498d1bbe6..071d847aa 100644 --- a/README.md +++ b/README.md @@ -600,6 +600,7 @@ Thanks a lot for helping out! - Other encodings such as Latin-1, UTF-16, or UTF-32 are not supported and will yield parse errors. - [Unicode noncharacters](http://www.unicode.org/faq/private_use.html#nonchar1) will not be replaced by the library. - Invalid surrogates (e.g., incomplete pairs such as `\uDEAD`) will yield parse errors. + - The strings stored in the library are UTF-8 encoded. When using the default string type (`std::string`), note that its length/size functions return the number of stored bytes rather than the number of characters or glyphs. ## Execute unit tests diff --git a/src/json.hpp b/src/json.hpp index 4aa293d29..6b1dc6636 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -450,6 +450,12 @@ class basic_json std::string @endcode + #### Encoding + + Strings are stored in UTF-8 encoding. Therefore, functions like + `std::string::size()` or `std::string::length()` return the number of + bytes in the string rather than the number of characters or glyphs. + #### String comparison [RFC 7159](http://rfc7159.net/rfc7159) states: @@ -7515,7 +7521,6 @@ class basic_json case 0xf9: // Half-Precision Float (two-byte IEEE 754) { - check_length(v.size(), 2, 1); idx += 2; // skip two content bytes // code from RFC 7049, Appendix D, Figure 3: @@ -7525,7 +7530,7 @@ class basic_json // include at least decoding support for them even without such // support. An example of a small decoder for half-precision // floating-point numbers in the C language is shown in Fig. 3. - const int half = (v[current_idx + 1] << 8) + v[current_idx + 2]; + const int half = (v.at(current_idx + 1) << 8) + v.at(current_idx + 2); const int exp = (half >> 10) & 0x1f; const int mant = half & 0x3ff; double val; diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 73c4131a9..0eed0e6d9 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -450,6 +450,12 @@ class basic_json std::string @endcode + #### Encoding + + Strings are stored in UTF-8 encoding. Therefore, functions like + `std::string::size()` or `std::string::length()` return the number of + bytes in the string rather than the number of characters or glyphs. + #### String comparison [RFC 7159](http://rfc7159.net/rfc7159) states: From 9f6c86f23317ccc67429be779a6f17855c6e5a0b Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Wed, 4 Jan 2017 18:54:44 +0100 Subject: [PATCH 008/130] :bug: fix for #417 --- src/json.hpp | 6 ++---- src/json.hpp.re2c | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 6b1dc6636..e88619268 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -58,13 +58,11 @@ SOFTWARE. // exclude unsupported compilers #if defined(__clang__) - #define CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) - #if CLANG_VERSION < 30400 + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" #endif #elif defined(__GNUC__) - #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) - #if GCC_VERSION < 40900 + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40900 #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" #endif #endif diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 0eed0e6d9..3a12a78de 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -58,13 +58,11 @@ SOFTWARE. // exclude unsupported compilers #if defined(__clang__) - #define CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) - #if CLANG_VERSION < 30400 + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" #endif #elif defined(__GNUC__) - #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) - #if GCC_VERSION < 40900 + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40900 #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" #endif #endif From dd45ba6f8957cb32f92af7b0d2aefee94d50ed2a Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Sun, 8 Jan 2017 09:19:44 +0100 Subject: [PATCH 009/130] :construction: renamed `version()` to `meta()` --- src/json.hpp | 8 ++++---- src/json.hpp.re2c | 8 ++++---- test/src/unit-version.cpp | 3 ++- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 9e065e594..3200e095a 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -284,11 +284,11 @@ class basic_json /*! @brief returns version information on the library */ - static basic_json version() + static basic_json meta() { basic_json result; - result["copyright"] = "(C) 2013-2016 Niels Lohmann"; + result["copyright"] = "(C) 2013-2017 Niels Lohmann"; result["name"] = "JSON for Modern C++"; result["url"] = "https://github.com/nlohmann/json"; result["version"] = @@ -312,11 +312,11 @@ class basic_json #endif #if defined(__clang__) - result["compiler"] = {{"family", "clang"}, {"version", CLANG_VERSION}}; + result["compiler"] = {{"family", "clang"}, {"version", __clang_version__}}; #elif defined(__ICC) || defined(__INTEL_COMPILER) result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}}; #elif defined(__GNUC__) || defined(__GNUG__) - result["compiler"] = {{"family", "gcc"}, {"version", GCC_VERSION}}; + result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(__GNUC__) + "." + std::to_string(__GNUC_MINOR__) + "." + std::to_string(__GNUC_PATCHLEVEL__)}}; #elif defined(__HP_cc) || defined(__HP_aCC) result["compiler"] = "hp" #elif defined(__IBMCPP__) diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index a66a02381..c7171a276 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -284,11 +284,11 @@ class basic_json /*! @brief returns version information on the library */ - static basic_json version() + static basic_json meta() { basic_json result; - result["copyright"] = "(C) 2013-2016 Niels Lohmann"; + result["copyright"] = "(C) 2013-2017 Niels Lohmann"; result["name"] = "JSON for Modern C++"; result["url"] = "https://github.com/nlohmann/json"; result["version"] = @@ -312,11 +312,11 @@ class basic_json #endif #if defined(__clang__) - result["compiler"] = {{"family", "clang"}, {"version", CLANG_VERSION}}; + result["compiler"] = {{"family", "clang"}, {"version", __clang_version__}}; #elif defined(__ICC) || defined(__INTEL_COMPILER) result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}}; #elif defined(__GNUC__) || defined(__GNUG__) - result["compiler"] = {{"family", "gcc"}, {"version", GCC_VERSION}}; + result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(__GNUC__) + "." + std::to_string(__GNUC_MINOR__) + "." + std::to_string(__GNUC_PATCHLEVEL__)}}; #elif defined(__HP_cc) || defined(__HP_aCC) result["compiler"] = "hp" #elif defined(__IBMCPP__) diff --git a/test/src/unit-version.cpp b/test/src/unit-version.cpp index bede4ff38..1b4ea91c4 100644 --- a/test/src/unit-version.cpp +++ b/test/src/unit-version.cpp @@ -35,6 +35,7 @@ TEST_CASE("version information") { SECTION("version()") { - CHECK(json::version()["name"] == "JSON for Modern C++"); + CHECK(json::meta()["name"] == "JSON for Modern C++"); + CHECK(json::meta()["compiler"] == "JSON for Modern C++"); } } From e9bbf5aabad1a90a5f5cf43ca8df49d5e7a52aca Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Sun, 8 Jan 2017 09:31:40 +0100 Subject: [PATCH 010/130] :bug: forgot to remove a test case --- test/src/unit-version.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/test/src/unit-version.cpp b/test/src/unit-version.cpp index 1b4ea91c4..f7b16e19c 100644 --- a/test/src/unit-version.cpp +++ b/test/src/unit-version.cpp @@ -36,6 +36,5 @@ TEST_CASE("version information") SECTION("version()") { CHECK(json::meta()["name"] == "JSON for Modern C++"); - CHECK(json::meta()["compiler"] == "JSON for Modern C++"); } } From 0f03543861b08bbe488abade89a9d2a4e6faa67a Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Wed, 11 Jan 2017 22:23:02 +0100 Subject: [PATCH 011/130] :arrow_up: upgraded to Catch 1.6.0 --- test/thirdparty/catch/catch.hpp | 101 ++++++++++++++++++++++---------- 1 file changed, 69 insertions(+), 32 deletions(-) mode change 100755 => 100644 test/thirdparty/catch/catch.hpp diff --git a/test/thirdparty/catch/catch.hpp b/test/thirdparty/catch/catch.hpp old mode 100755 new mode 100644 index 3d18eadb1..1d49e7382 --- a/test/thirdparty/catch/catch.hpp +++ b/test/thirdparty/catch/catch.hpp @@ -1,6 +1,6 @@ /* - * Catch v1.5.9 - * Generated: 2016-11-29 12:14:38.049276 + * Catch v1.6.0 + * Generated: 2017-01-11 16:38:09.405017 * ---------------------------------------------------------- * This file has been merged from multiple headers. Please don't edit it directly * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. @@ -60,21 +60,6 @@ // #included from: catch_common.h #define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED -#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line -#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) -#ifdef CATCH_CONFIG_COUNTER -# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) -#else -# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) -#endif - -#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr -#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr ) - -#include -#include -#include - // #included from: catch_compiler_capabilities.h #define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED @@ -181,6 +166,7 @@ #if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015)) #define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT #define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS +#define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE #endif #endif // _MSC_VER @@ -246,6 +232,9 @@ # if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) # define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR # endif +# if !defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) +# define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE +# endif #endif // __cplusplus >= 201103L @@ -268,18 +257,21 @@ #if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS) # define CATCH_CONFIG_VARIADIC_MACROS #endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11) +#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11) # define CATCH_CONFIG_CPP11_LONG_LONG #endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11) +#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11) # define CATCH_CONFIG_CPP11_OVERRIDE #endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11) +#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11) # define CATCH_CONFIG_CPP11_UNIQUE_PTR #endif #if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) # define CATCH_CONFIG_COUNTER #endif +#if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11) +# define CATCH_CONFIG_CPP11_SHUFFLE +#endif #if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) # define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS @@ -315,6 +307,21 @@ # define CATCH_AUTO_PTR( T ) std::auto_ptr #endif +#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line +#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) +#ifdef CATCH_CONFIG_COUNTER +# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) +#else +# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) +#endif + +#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr +#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr ) + +#include +#include +#include + namespace Catch { struct IConfig; @@ -2668,6 +2675,26 @@ namespace Detail { return !operator==( rhs, lhs ); } + friend bool operator <= ( double lhs, Approx const& rhs ) + { + return lhs < rhs.m_value || lhs == rhs; + } + + friend bool operator <= ( Approx const& lhs, double rhs ) + { + return lhs.m_value < rhs || lhs == rhs; + } + + friend bool operator >= ( double lhs, Approx const& rhs ) + { + return lhs > rhs.m_value || lhs == rhs; + } + + friend bool operator >= ( Approx const& lhs, double rhs ) + { + return lhs.m_value > rhs || lhs == rhs; + } + Approx& epsilon( double newEpsilon ) { m_epsilon = newEpsilon; return *this; @@ -3257,11 +3284,12 @@ namespace Catch { namespace Catch { class TestSpecParser { - enum Mode{ None, Name, QuotedName, Tag }; + enum Mode{ None, Name, QuotedName, Tag, EscapedName }; Mode m_mode; bool m_exclusion; std::size_t m_start, m_pos; std::string m_arg; + std::vector m_escapeChars; TestSpec::Filter m_currentFilter; TestSpec m_testSpec; ITagAliasRegistry const* m_tagAliases; @@ -3274,6 +3302,7 @@ namespace Catch { m_exclusion = false; m_start = std::string::npos; m_arg = m_tagAliases->expandAliases( arg ); + m_escapeChars.clear(); for( m_pos = 0; m_pos < m_arg.size(); ++m_pos ) visitChar( m_arg[m_pos] ); if( m_mode == Name ) @@ -3292,6 +3321,7 @@ namespace Catch { case '~': m_exclusion = true; return; case '[': return startNewMode( Tag, ++m_pos ); case '"': return startNewMode( QuotedName, ++m_pos ); + case '\\': return escape(); default: startNewMode( Name, m_pos ); break; } } @@ -3307,7 +3337,11 @@ namespace Catch { addPattern(); startNewMode( Tag, ++m_pos ); } + else if( c == '\\' ) + escape(); } + else if( m_mode == EscapedName ) + m_mode = Name; else if( m_mode == QuotedName && c == '"' ) addPattern(); else if( m_mode == Tag && c == ']' ) @@ -3317,10 +3351,17 @@ namespace Catch { m_mode = mode; m_start = start; } + void escape() { + m_mode = EscapedName; + m_escapeChars.push_back( m_pos ); + } std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); } template void addPattern() { std::string token = subString(); + for( size_t i = 0; i < m_escapeChars.size(); ++i ) + token = token.substr( 0, m_escapeChars[i] ) + token.substr( m_escapeChars[i]+1 ); + m_escapeChars.clear(); if( startsWith( token, "exclude:" ) ) { m_exclusion = true; token = token.substr( 8 ); @@ -6458,10 +6499,6 @@ namespace Catch { #include #include -#ifdef CATCH_CPP14_OR_GREATER -#include -#endif - namespace Catch { struct RandomNumberGenerator { @@ -6469,7 +6506,7 @@ namespace Catch { result_type operator()( result_type n ) const { return std::rand() % n; } -#ifdef CATCH_CPP14_OR_GREATER +#ifdef CATCH_CONFIG_CPP11_SHUFFLE static constexpr result_type min() { return 0; } static constexpr result_type max() { return 1000000; } result_type operator()() const { return std::rand() % max(); } @@ -6477,7 +6514,7 @@ namespace Catch { template static void shuffle( V& vector ) { RandomNumberGenerator rng; -#ifdef CATCH_CPP14_OR_GREATER +#ifdef CATCH_CONFIG_CPP11_SHUFFLE std::shuffle( vector.begin(), vector.end(), rng ); #else std::random_shuffle( vector.begin(), vector.end(), rng ); @@ -7147,7 +7184,7 @@ namespace { case Colour::White: return setColour( "[0m" ); case Colour::Red: return setColour( "[0;31m" ); case Colour::Green: return setColour( "[0;32m" ); - case Colour::Blue: return setColour( "[0:34m" ); + case Colour::Blue: return setColour( "[0;34m" ); case Colour::Cyan: return setColour( "[0;36m" ); case Colour::Yellow: return setColour( "[0;33m" ); case Colour::Grey: return setColour( "[1;30m" ); @@ -7582,7 +7619,7 @@ namespace Catch { return os; } - Version libraryVersion( 1, 5, 9, "", 0 ); + Version libraryVersion( 1, 6, 0, "", 0 ); } @@ -8349,7 +8386,7 @@ namespace Catch { } std::string ResultBuilder::reconstructExpression() const { if( m_exprComponents.op == "" ) - return m_exprComponents.lhs.empty() ? m_assertionInfo.capturedExpression : m_exprComponents.op + m_exprComponents.lhs; + return m_exprComponents.lhs.empty() ? m_assertionInfo.capturedExpression : m_exprComponents.lhs; else if( m_exprComponents.op == "matches" ) return m_exprComponents.lhs + " " + m_exprComponents.rhs; else if( m_exprComponents.op != "!" ) { @@ -8967,7 +9004,7 @@ namespace Catch { default: // Escape control chars - based on contribution by @espenalb in PR #465 and // by @mrpi PR #588 - if ( ( c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' ) + if ( ( c >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' ) os << "&#x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2) << static_cast( c ) << ';'; else os << c; @@ -10400,7 +10437,7 @@ int main (int argc, char * const argv[]) { #define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" ) #define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" ) -#define CATCH_CHECK_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS" ) +#define CATCH_CHECK_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CATCH_CHECK_THROWS" ) #define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" ) #define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" ) #define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" ) From 3a9ccfac226918727532c03892b20b4d705a3558 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Thu, 12 Jan 2017 21:35:27 +0100 Subject: [PATCH 012/130] :construction: cleanup --- test/CMakeLists.txt | 2 +- test/Makefile | 4 ++-- test/src/{unit-version.cpp => unit-meta.cpp} | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename test/src/{unit-version.cpp => unit-meta.cpp} (97%) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 11c8d5b1d..62213ad31 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -26,6 +26,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME} "src/unit-iterators2.cpp" "src/unit-json_patch.cpp" "src/unit-json_pointer.cpp" + "src/unit-meta.cpp" "src/unit-modifiers.cpp" "src/unit-msgpack.cpp" "src/unit-pointer_access.cpp" @@ -35,7 +36,6 @@ add_executable(${JSON_UNITTEST_TARGET_NAME} "src/unit-serialization.cpp" "src/unit-testsuites.cpp" "src/unit-unicode.cpp" - "src/unit-version.cpp" ) set_target_properties(${JSON_UNITTEST_TARGET_NAME} PROPERTIES diff --git a/test/Makefile b/test/Makefile index 5f7d55b26..3d5595d21 100644 --- a/test/Makefile +++ b/test/Makefile @@ -30,6 +30,7 @@ SOURCES = src/unit.cpp \ src/unit-iterators2.cpp \ src/unit-json_patch.cpp \ src/unit-json_pointer.cpp \ + src/unit-meta.cpp \ src/unit-modifiers.cpp \ src/unit-msgpack.cpp \ src/unit-pointer_access.cpp \ @@ -38,8 +39,7 @@ SOURCES = src/unit.cpp \ src/unit-regression.cpp \ src/unit-serialization.cpp \ src/unit-testsuites.cpp \ - src/unit-unicode.cpp \ - src/unit-version.cpp + src/unit-unicode.cpp OBJECTS = $(SOURCES:.cpp=.o) diff --git a/test/src/unit-version.cpp b/test/src/unit-meta.cpp similarity index 97% rename from test/src/unit-version.cpp rename to test/src/unit-meta.cpp index f7b16e19c..7040042ed 100644 --- a/test/src/unit-version.cpp +++ b/test/src/unit-meta.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . From a7f39383913d5adce906253b6775d8398243d8ef Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Mon, 16 Jan 2017 20:03:50 +0100 Subject: [PATCH 013/130] :white_check_mark: added Big List of Naughty Strings --- test/data/big-list-of-naughty-strings/LICENSE | 22 + .../big-list-of-naughty-strings/blns.json | 496 ++++++++++++++++++ test/src/unit-testsuites.cpp | 11 + 3 files changed, 529 insertions(+) create mode 100644 test/data/big-list-of-naughty-strings/LICENSE create mode 100644 test/data/big-list-of-naughty-strings/blns.json diff --git a/test/data/big-list-of-naughty-strings/LICENSE b/test/data/big-list-of-naughty-strings/LICENSE new file mode 100644 index 000000000..3a0416426 --- /dev/null +++ b/test/data/big-list-of-naughty-strings/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Max Woolf + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/test/data/big-list-of-naughty-strings/blns.json b/test/data/big-list-of-naughty-strings/blns.json new file mode 100644 index 000000000..ed832d4d1 --- /dev/null +++ b/test/data/big-list-of-naughty-strings/blns.json @@ -0,0 +1,496 @@ +[ + "", + "undefined", + "undef", + "null", + "NULL", + "(null)", + "nil", + "NIL", + "true", + "false", + "True", + "False", + "TRUE", + "FALSE", + "None", + "hasOwnProperty", + "\\", + "\\\\", + "0", + "1", + "1.00", + "$1.00", + "1/2", + "1E2", + "1E02", + "1E+02", + "-1", + "-1.00", + "-$1.00", + "-1/2", + "-1E2", + "-1E02", + "-1E+02", + "1/0", + "0/0", + "-2147483648/-1", + "-9223372036854775808/-1", + "0.00", + "0..0", + ".", + "0.0.0", + "0,00", + "0,,0", + ",", + "0,0,0", + "0.0/0", + "1.0/0.0", + "0.0/0.0", + "1,0/0,0", + "0,0/0,0", + "--1", + "-", + "-.", + "-,", + "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", + "NaN", + "Infinity", + "-Infinity", + "INF", + "1#INF", + "-1#IND", + "1#QNAN", + "1#SNAN", + "1#IND", + "0x0", + "0xffffffff", + "0xffffffffffffffff", + "0xabad1dea", + "123456789012345678901234567890123456789", + "1,000.00", + "1 000.00", + "1'000.00", + "1,000,000.00", + "1 000 000.00", + "1'000'000.00", + "1.000,00", + "1 000,00", + "1'000,00", + "1.000.000,00", + "1 000 000,00", + "1'000'000,00", + "01000", + "08", + "09", + "2.2250738585072011e-308", + ",./;'[]\\-=", + "<>?:\"{}|_+", + "!@#$%^&*()`~", + "Ω≈ç√∫˜µ≤≥÷", + "åß∂ƒ©˙∆˚¬…æ", + "œ∑´®†¥¨ˆøπ“‘", + "¡™£¢∞§¶•ªº–≠", + "¸˛Ç◊ı˜Â¯˘¿", + "ÅÍÎÏ˝ÓÔÒÚÆ☃", + "Œ„´‰ˇÁ¨ˆØ∏”’", + "`⁄€‹›fifl‡°·‚—±", + "⅛⅜⅝⅞", + "ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя", + "٠١٢٣٤٥٦٧٨٩", + "⁰⁴⁵", + "₀₁₂", + "⁰⁴⁵₀₁₂", + "ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็", + "'", + "\"", + "''", + "\"\"", + "'\"'", + "\"''''\"'\"", + "\"'\"'\"''''\"", + "", + "", + "", + "", + "田中さんにあげて下さい", + "パーティーへ行かないか", + "和製漢語", + "部落格", + "사회과학원 어학연구소", + "찦차를 타고 온 펲시맨과 쑛다리 똠방각하", + "社會科學院語學研究所", + "울란바토르", + "𠜎𠜱𠝹𠱓𠱸𠲖𠳏", + "ヽ༼ຈل͜ຈ༽ノ ヽ༼ຈل͜ຈ༽ノ ", + "(。◕ ∀ ◕。)", + "`ィ(´∀`∩", + "__ロ(,_,*)", + "・( ̄∀ ̄)・:*:", + "゚・✿ヾ╲(。◕‿◕。)╱✿・゚", + ",。・:*:・゜’( ☻ ω ☻ )。・:*:・゜’", + "(╯°□°)╯︵ ┻━┻) ", + "(ノಥ益ಥ)ノ ┻━┻", + "┬─┬ノ( º _ ºノ)", + "( ͡° ͜ʖ ͡°)", + "😍", + "👩🏽", + "👾 🙇 💁 🙅 🙆 🙋 🙎 🙍 ", + "🐵 🙈 🙉 🙊", + "❤️ 💔 💌 💕 💞 💓 💗 💖 💘 💝 💟 💜 💛 💚 💙", + "✋🏿 💪🏿 👐🏿 🙌🏿 👏🏿 🙏🏿", + "🚾 🆒 🆓 🆕 🆖 🆗 🆙 🏧", + "0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 🔟", + "🇺🇸🇷🇺🇸 🇦🇫🇦🇲🇸 ", + "🇺🇸🇷🇺🇸🇦🇫🇦🇲", + "🇺🇸🇷🇺🇸🇦", + "123", + "١٢٣", + "ثم نفس سقطت وبالتحديد،, جزيرتي باستخدام أن دنو. إذ هنا؟ الستار وتنصيب كان. أهّل ايطاليا، بريطانيا-فرنسا قد أخذ. سليمان، إتفاقية بين ما, يذكر الحدود أي بعد, معاملة بولندا، الإطلاق عل إيو.", + "בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ", + "הָיְתָהtestالصفحات التّحول", + "﷽", + "ﷺ", + "مُنَاقَشَةُ سُبُلِ اِسْتِخْدَامِ اللُّغَةِ فِي النُّظُمِ الْقَائِمَةِ وَفِيم يَخُصَّ التَّطْبِيقَاتُ الْحاسُوبِيَّةُ، ", + "​", + " ", + "᠎", + " ", + "", + "␣", + "␢", + "␡", + "‪‪test‪", + "‫test‫", + "
test
", + "test⁠test‫", + "⁦test⁧", + "Ṱ̺̺̕o͞ ̷i̲̬͇̪͙n̝̗͕v̟̜̘̦͟o̶̙̰̠kè͚̮̺̪̹̱̤ ̖t̝͕̳̣̻̪͞h̼͓̲̦̳̘̲e͇̣̰̦̬͎ ̢̼̻̱̘h͚͎͙̜̣̲ͅi̦̲̣̰̤v̻͍e̺̭̳̪̰-m̢iͅn̖̺̞̲̯̰d̵̼̟͙̩̼̘̳ ̞̥̱̳̭r̛̗̘e͙p͠r̼̞̻̭̗e̺̠̣͟s̘͇̳͍̝͉e͉̥̯̞̲͚̬͜ǹ̬͎͎̟̖͇̤t͍̬̤͓̼̭͘ͅi̪̱n͠g̴͉ ͏͉ͅc̬̟h͡a̫̻̯͘o̫̟̖͍̙̝͉s̗̦̲.̨̹͈̣", + "̡͓̞ͅI̗̘̦͝n͇͇͙v̮̫ok̲̫̙͈i̖͙̭̹̠̞n̡̻̮̣̺g̲͈͙̭͙̬͎ ̰t͔̦h̞̲e̢̤ ͍̬̲͖f̴̘͕̣è͖ẹ̥̩l͖͔͚i͓͚̦͠n͖͍̗͓̳̮g͍ ̨o͚̪͡f̘̣̬ ̖̘͖̟͙̮c҉͔̫͖͓͇͖ͅh̵̤̣͚͔á̗̼͕ͅo̼̣̥s̱͈̺̖̦̻͢.̛̖̞̠̫̰", + "̗̺͖̹̯͓Ṯ̤͍̥͇͈h̲́e͏͓̼̗̙̼̣͔ ͇̜̱̠͓͍ͅN͕͠e̗̱z̘̝̜̺͙p̤̺̹͍̯͚e̠̻̠͜r̨̤͍̺̖͔̖̖d̠̟̭̬̝͟i̦͖̩͓͔̤a̠̗̬͉̙n͚͜ ̻̞̰͚ͅh̵͉i̳̞v̢͇ḙ͎͟-҉̭̩̼͔m̤̭̫i͕͇̝̦n̗͙ḍ̟ ̯̲͕͞ǫ̟̯̰̲͙̻̝f ̪̰̰̗̖̭̘͘c̦͍̲̞͍̩̙ḥ͚a̮͎̟̙͜ơ̩̹͎s̤.̝̝ ҉Z̡̖̜͖̰̣͉̜a͖̰͙̬͡l̲̫̳͍̩g̡̟̼̱͚̞̬ͅo̗͜.̟", + "̦H̬̤̗̤͝e͜ ̜̥̝̻͍̟́w̕h̖̯͓o̝͙̖͎̱̮ ҉̺̙̞̟͈W̷̼̭a̺̪͍į͈͕̭͙̯̜t̶̼̮s̘͙͖̕ ̠̫̠B̻͍͙͉̳ͅe̵h̵̬͇̫͙i̹͓̳̳̮͎̫̕n͟d̴̪̜̖ ̰͉̩͇͙̲͞ͅT͖̼͓̪͢h͏͓̮̻e̬̝̟ͅ ̤̹̝W͙̞̝͔͇͝ͅa͏͓͔̹̼̣l̴͔̰̤̟͔ḽ̫.͕", + "Z̮̞̠͙͔ͅḀ̗̞͈̻̗Ḷ͙͎̯̹̞͓G̻O̭̗̮", + "˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥", + "00˙Ɩ$-", + "The quick brown fox jumps over the lazy dog", + "𝐓𝐡𝐞 𝐪𝐮𝐢𝐜𝐤 𝐛𝐫𝐨𝐰𝐧 𝐟𝐨𝐱 𝐣𝐮𝐦𝐩𝐬 𝐨𝐯𝐞𝐫 𝐭𝐡𝐞 𝐥𝐚𝐳𝐲 𝐝𝐨𝐠", + "𝕿𝖍𝖊 𝖖𝖚𝖎𝖈𝖐 𝖇𝖗𝖔𝖜𝖓 𝖋𝖔𝖝 𝖏𝖚𝖒𝖕𝖘 𝖔𝖛𝖊𝖗 𝖙𝖍𝖊 𝖑𝖆𝖟𝖞 𝖉𝖔𝖌", + "𝑻𝒉𝒆 𝒒𝒖𝒊𝒄𝒌 𝒃𝒓𝒐𝒘𝒏 𝒇𝒐𝒙 𝒋𝒖𝒎𝒑𝒔 𝒐𝒗𝒆𝒓 𝒕𝒉𝒆 𝒍𝒂𝒛𝒚 𝒅𝒐𝒈", + "𝓣𝓱𝓮 𝓺𝓾𝓲𝓬𝓴 𝓫𝓻𝓸𝔀𝓷 𝓯𝓸𝔁 𝓳𝓾𝓶𝓹𝓼 𝓸𝓿𝓮𝓻 𝓽𝓱𝓮 𝓵𝓪𝔃𝔂 𝓭𝓸𝓰", + "𝕋𝕙𝕖 𝕢𝕦𝕚𝕔𝕜 𝕓𝕣𝕠𝕨𝕟 𝕗𝕠𝕩 𝕛𝕦𝕞𝕡𝕤 𝕠𝕧𝕖𝕣 𝕥𝕙𝕖 𝕝𝕒𝕫𝕪 𝕕𝕠𝕘", + "𝚃𝚑𝚎 𝚚𝚞𝚒𝚌𝚔 𝚋𝚛𝚘𝚠𝚗 𝚏𝚘𝚡 𝚓𝚞𝚖𝚙𝚜 𝚘𝚟𝚎𝚛 𝚝𝚑𝚎 𝚕𝚊𝚣𝚢 𝚍𝚘𝚐", + "⒯⒣⒠ ⒬⒰⒤⒞⒦ ⒝⒭⒪⒲⒩ ⒡⒪⒳ ⒥⒰⒨⒫⒮ ⒪⒱⒠⒭ ⒯⒣⒠ ⒧⒜⒵⒴ ⒟⒪⒢", + "", + "<script>alert('123');</script>", + "", + " ", + "\">", + "'>", + ">", + "", + "< / script >< script >alert(123)< / script >", + " onfocus=JaVaSCript:alert(123) autofocus ", + "\" onfocus=JaVaSCript:alert(123) autofocus ", + "' onfocus=JaVaSCript:alert(123) autofocus ", + "<script>alert(123)</script>", + "ript>alert(123)ript>", + "-->", + "\";alert(123);t=\"", + "';alert(123);t='", + "JavaSCript:alert(123)", + ";alert(123);", + "src=JaVaSCript:prompt(132)", + "\"><\\x3Cscript>javascript:alert(1) ", + "'`\"><\\x00script>javascript:alert(1)", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "ABC
DEF", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "test", + "`\"'>", + "`\"'>", + "`\"'>", + "`\"'>", + "`\"'>", + "`\"'>", + "`\"'>", + "`\"'>", + "`\"'>", + "`\"'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "\"`'>", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "XXX", + "javascript:alert(1)\"` `>", + "", + "", + "<a href=http://foo.bar/#x=`y></a><img alt=\"`><img src=x:x onerror=javascript:alert(1)></a>\">", + "<!--[if]><script>javascript:alert(1)</script -->", + "<!--[if<img src=x onerror=javascript:alert(1)//]> -->", + "<script src=\"/\\%(jscript)s\"></script>", + "<script src=\"\\\\%(jscript)s\"></script>", + "<IMG \"\"\"><SCRIPT>alert(\"XSS\")</SCRIPT>\">", + "<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>", + "<IMG SRC=# onmouseover=\"alert('xxs')\">", + "<IMG SRC= onmouseover=\"alert('xxs')\">", + "<IMG onmouseover=\"alert('xxs')\">", + "<IMG SRC=javascript:alert('XSS')>", + "<IMG SRC=javascript:alert('XSS')>", + "<IMG SRC=javascript:alert('XSS')>", + "<IMG SRC=\"jav ascript:alert('XSS');\">", + "<IMG SRC=\"jav ascript:alert('XSS');\">", + "<IMG SRC=\"jav ascript:alert('XSS');\">", + "<IMG SRC=\"jav ascript:alert('XSS');\">", + "perl -e 'print \"<IMG SRC=java\\0script:alert(\\\"XSS\\\")>\";' > out", + "<IMG SRC=\"  javascript:alert('XSS');\">", + "<SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>", + "<BODY onload!#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>", + "<SCRIPT/SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>", + "<<SCRIPT>alert(\"XSS\");//<</SCRIPT>", + "<SCRIPT SRC=http://ha.ckers.org/xss.js?< B >", + "<SCRIPT SRC=//ha.ckers.org/.j>", + "<IMG SRC=\"javascript:alert('XSS')\"", + "<iframe src=http://ha.ckers.org/scriptlet.html <", + "\\\";alert('XSS');//", + "<u oncopy=alert()> Copy me</u>", + "<i onwheel=alert(1)> Scroll over me </i>", + "<plaintext>", + "http://a/%%30%30", + "</textarea><script>alert(123)</script>", + "1;DROP TABLE users", + "1'; DROP TABLE users-- 1", + "' OR 1=1 -- 1", + "' OR '1'='1", + " ", + "%", + "_", + "-", + "--", + "--version", + "--help", + "$USER", + "/dev/null; touch /tmp/blns.fail ; echo", + "`touch /tmp/blns.fail`", + "$(touch /tmp/blns.fail)", + "@{[system \"touch /tmp/blns.fail\"]}", + "eval(\"puts 'hello world'\")", + "System(\"ls -al /\")", + "`ls -al /`", + "Kernel.exec(\"ls -al /\")", + "Kernel.exit(1)", + "%x('ls -al /')", + "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM \"file:///etc/passwd\" >]><foo>&xxe;</foo>", + "$HOME", + "$ENV{'HOME'}", + "%d", + "%s", + "{0}", + "%*.*s", + "../../../../../../../../../../../etc/passwd%00", + "../../../../../../../../../../../etc/hosts", + "() { 0; }; touch /tmp/blns.shellshock1.fail;", + "() { _; } >_[$($())] { touch /tmp/blns.shellshock2.fail; }", + "+++ATH0", + "<<< %s(un='%s') = %u", + "CON", + "PRN", + "AUX", + "CLOCK$", + "NUL", + "A:", + "ZZ:", + "COM1", + "LPT1", + "LPT2", + "LPT3", + "COM2", + "COM3", + "COM4", + "DCC SEND STARTKEYLOGGER 0 0 0", + "Scunthorpe General Hospital", + "Penistone Community Church", + "Lightwater Country Park", + "Jimmy Clitheroe", + "Horniman Museum", + "shitake mushrooms", + "RomansInSussex.co.uk", + "http://www.cum.qc.ca/", + "Craig Cockburn, Software Specialist", + "Linda Callahan", + "Dr. Herman I. Libshitz", + "magna cum laude", + "Super Bowl XXX", + "medieval erection of parapets", + "evaluate", + "mocha", + "expression", + "Arsenal canal", + "classic", + "Tyson Gay", + "Dick Van Dyke", + "basement", + "If you're reading this, you've been in a coma for almost 20 years now. We're trying a new technique. We don't know where this message will end up in your dream, but we hope it works. Please wake up, we miss you.", + "Roses are \u001b[0;31mred\u001b[0m, violets are \u001b[0;34mblue. Hope you enjoy terminal hue", + "But now...\u001b[20Cfor my greatest trick...\u001b[8m", + "The quic\b\b\b\b\b\bk brown fo\u0007\u0007\u0007\u0007\u0007\u0007\u0007\u0007\u0007\u0007\u0007x... [Beeeep]", + "Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗" +] diff --git a/test/src/unit-testsuites.cpp b/test/src/unit-testsuites.cpp index a43e19971..b939bb620 100644 --- a/test/src/unit-testsuites.cpp +++ b/test/src/unit-testsuites.cpp @@ -815,3 +815,14 @@ TEST_CASE("nst's JSONTestSuite") } } } + +TEST_CASE("Big List of Naughty Strings") +{ + // test from https://github.com/minimaxir/big-list-of-naughty-strings + SECTION("blns.json") + { + std::ifstream f("test/data/big-list-of-naughty-strings/blns.json"); + json j; + CHECK_NOTHROW(j << f); + } +} From 74cbd30cd079bb86c2c19f1e4848775f1b2c6e16 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Mon, 16 Jan 2017 20:04:47 +0100 Subject: [PATCH 014/130] :page_facing_up: it's 2017 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 071d847aa..6182a2df9 100644 --- a/README.md +++ b/README.md @@ -521,7 +521,7 @@ The following compilers are currently used in continuous integration at [Travis] The class is licensed under the [MIT License](http://opensource.org/licenses/MIT): -Copyright © 2013-2016 [Niels Lohmann](http://nlohmann.me) +Copyright © 2013-2017 [Niels Lohmann](http://nlohmann.me) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: From 1ab26ab36750fd7426014b55bf6efdd7e0339216 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Mon, 16 Jan 2017 22:11:07 +0100 Subject: [PATCH 015/130] :sparkles: option to switch off exceptions --- .travis.yml | 15 ++ src/json.hpp | 262 ++++++++++++++++-------------- src/json.hpp.re2c | 262 ++++++++++++++++-------------- test/Makefile | 2 +- test/src/unit-cbor.cpp | 2 +- test/src/unit-element_access2.cpp | 53 +++--- 6 files changed, 335 insertions(+), 261 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6bf2297e2..6a154deb7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,6 +71,21 @@ matrix: after_success: - make cppcheck + # no exceptions + + - os: linux + compiler: gcc + env: + - COMPILER=g++-4.9 + - SPECIAL=no_exceptions + - TEST_PATTERN="-e \"*\"" + addons: + apt: + sources: ['ubuntu-toolchain-r-test'] + packages: [g++-4.9, cppcheck] + before_script: + - make FLAGS="-fno-exceptions" + # Coveralls (http://gronlier.fr/blog/2015/01/adding-code-coverage-to-your-c-project/) - os: linux diff --git a/src/json.hpp b/src/json.hpp index 3200e095a..69d49ec17 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -88,6 +88,17 @@ SOFTWARE. #define JSON_DEPRECATED #endif +// allow to disable exceptions +#if defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS) + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) +#else + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) +#endif + /*! @brief namespace for Niels Lohmann @see https://github.com/nlohmann @@ -945,7 +956,7 @@ class basic_json { if (t == value_t::null) { - throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10"); // LCOV_EXCL_LINE + JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10")); // LCOV_EXCL_LINE } break; } @@ -1717,7 +1728,7 @@ class basic_json // if object is wanted but impossible, throw an exception if (manual_type == value_t::object and not is_an_object) { - throw std::domain_error("cannot create object from initializer list"); + JSON_THROW(std::domain_error("cannot create object from initializer list")); } } @@ -1895,7 +1906,7 @@ class basic_json // make sure iterator fits the current value if (first.m_object != last.m_object) { - throw std::domain_error("iterators are not compatible"); + JSON_THROW(std::domain_error("iterators are not compatible")); } // copy type from first iterator @@ -1912,7 +1923,7 @@ class basic_json { if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end()) { - throw std::out_of_range("iterators out of range"); + JSON_THROW(std::out_of_range("iterators out of range")); } break; } @@ -1971,7 +1982,7 @@ class basic_json default: { - throw std::domain_error("cannot use construct with iterators from " + first.m_object->type_name()); + JSON_THROW(std::domain_error("cannot use construct with iterators from " + first.m_object->type_name())); } } @@ -2655,7 +2666,7 @@ class basic_json return T(m_value.object->begin(), m_value.object->end()); } - throw std::domain_error("type must be object, but is " + type_name()); + JSON_THROW(std::domain_error("type must be object, but is " + type_name())); } /// get an object (explicit) @@ -2666,7 +2677,7 @@ class basic_json return *(m_value.object); } - throw std::domain_error("type must be object, but is " + type_name()); + JSON_THROW(std::domain_error("type must be object, but is " + type_name())); } /// get an array (explicit) @@ -2689,7 +2700,7 @@ class basic_json return to_vector; } - throw std::domain_error("type must be array, but is " + type_name()); + JSON_THROW(std::domain_error("type must be array, but is " + type_name())); } /// get an array (explicit) @@ -2710,7 +2721,7 @@ class basic_json return to_vector; } - throw std::domain_error("type must be array, but is " + type_name()); + JSON_THROW(std::domain_error("type must be array, but is " + type_name())); } /// get an array (explicit) @@ -2724,7 +2735,7 @@ class basic_json return T(m_value.array->begin(), m_value.array->end()); } - throw std::domain_error("type must be array, but is " + type_name()); + JSON_THROW(std::domain_error("type must be array, but is " + type_name())); } /// get an array (explicit) @@ -2735,7 +2746,7 @@ class basic_json return *(m_value.array); } - throw std::domain_error("type must be array, but is " + type_name()); + JSON_THROW(std::domain_error("type must be array, but is " + type_name())); } /// get a string (explicit) @@ -2748,7 +2759,7 @@ class basic_json return *m_value.string; } - throw std::domain_error("type must be string, but is " + type_name()); + JSON_THROW(std::domain_error("type must be string, but is " + type_name())); } /// get a number (explicit) @@ -2775,17 +2786,22 @@ class basic_json default: { - throw std::domain_error("type must be number, but is " + type_name()); + JSON_THROW(std::domain_error("type must be number, but is " + type_name())); } } } /// get a boolean (explicit) - constexpr boolean_t get_impl(boolean_t* /*unused*/) const + boolean_t get_impl(boolean_t* /*unused*/) const { - return is_boolean() - ? m_value.boolean - : throw std::domain_error("type must be boolean, but is " + type_name()); + if (is_boolean()) + { + return m_value.boolean; + } + else + { + JSON_THROW(std::domain_error("type must be boolean, but is " + type_name())); + } } /// get a pointer to the value (object) @@ -3197,19 +3213,19 @@ class basic_json // at only works for arrays if (is_array()) { - try + JSON_TRY { return m_value.array->at(idx); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // create better exception explanation - throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); + JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } } else { - throw std::domain_error("cannot use at() with " + type_name()); + JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } @@ -3240,19 +3256,19 @@ class basic_json // at only works for arrays if (is_array()) { - try + JSON_TRY { return m_value.array->at(idx); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // create better exception explanation - throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); + JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } } else { - throw std::domain_error("cannot use at() with " + type_name()); + JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } @@ -3287,19 +3303,19 @@ class basic_json // at only works for objects if (is_object()) { - try + JSON_TRY { return m_value.object->at(key); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // create better exception explanation - throw std::out_of_range("key '" + key + "' not found"); + JSON_THROW(std::out_of_range("key '" + key + "' not found")); } } else { - throw std::domain_error("cannot use at() with " + type_name()); + JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } @@ -3334,19 +3350,19 @@ class basic_json // at only works for objects if (is_object()) { - try + JSON_TRY { return m_value.object->at(key); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // create better exception explanation - throw std::out_of_range("key '" + key + "' not found"); + JSON_THROW(std::out_of_range("key '" + key + "' not found")); } } else { - throw std::domain_error("cannot use at() with " + type_name()); + JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } @@ -3399,7 +3415,7 @@ class basic_json return m_value.array->operator[](idx); } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3429,7 +3445,7 @@ class basic_json return m_value.array->operator[](idx); } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3475,7 +3491,7 @@ class basic_json return m_value.object->operator[](key); } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3517,7 +3533,7 @@ class basic_json return m_value.object->find(key)->second; } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3632,7 +3648,7 @@ class basic_json return m_value.object->operator[](key); } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3675,7 +3691,7 @@ class basic_json return m_value.object->find(key)->second; } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3744,7 +3760,7 @@ class basic_json } else { - throw std::domain_error("cannot use value() with " + type_name()); + JSON_THROW(std::domain_error("cannot use value() with " + type_name())); } } @@ -3806,17 +3822,17 @@ class basic_json if (is_object()) { // if pointer resolves a value, return it or use default value - try + JSON_TRY { return ptr.get_checked(this); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { return default_value; } } - throw std::domain_error("cannot use value() with " + type_name()); + JSON_THROW(std::domain_error("cannot use value() with " + type_name())); } /*! @@ -3967,7 +3983,7 @@ class basic_json // make sure iterator fits the current value if (this != pos.m_object) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } IteratorType result = end(); @@ -3982,7 +3998,7 @@ class basic_json { if (not pos.m_it.primitive_iterator.is_begin()) { - throw std::out_of_range("iterator out of range"); + JSON_THROW(std::out_of_range("iterator out of range")); } if (is_string()) @@ -4012,7 +4028,7 @@ class basic_json default: { - throw std::domain_error("cannot use erase() with " + type_name()); + JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } } @@ -4074,7 +4090,7 @@ class basic_json // make sure iterator fits the current value if (this != first.m_object or this != last.m_object) { - throw std::domain_error("iterators do not fit current value"); + JSON_THROW(std::domain_error("iterators do not fit current value")); } IteratorType result = end(); @@ -4089,7 +4105,7 @@ class basic_json { if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end()) { - throw std::out_of_range("iterators out of range"); + JSON_THROW(std::out_of_range("iterators out of range")); } if (is_string()) @@ -4121,7 +4137,7 @@ class basic_json default: { - throw std::domain_error("cannot use erase() with " + type_name()); + JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } } @@ -4165,7 +4181,7 @@ class basic_json return m_value.object->erase(key); } - throw std::domain_error("cannot use erase() with " + type_name()); + JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } /*! @@ -4199,14 +4215,14 @@ class basic_json { if (idx >= size()) { - throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); + JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } m_value.array->erase(m_value.array->begin() + static_cast<difference_type>(idx)); } else { - throw std::domain_error("cannot use erase() with " + type_name()); + JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } } @@ -4924,7 +4940,7 @@ class basic_json // push_back only works for null objects or arrays if (not(is_null() or is_array())) { - throw std::domain_error("cannot use push_back() with " + type_name()); + JSON_THROW(std::domain_error("cannot use push_back() with " + type_name())); } // transform null object into an array @@ -4960,7 +4976,7 @@ class basic_json // push_back only works for null objects or arrays if (not(is_null() or is_array())) { - throw std::domain_error("cannot use push_back() with " + type_name()); + JSON_THROW(std::domain_error("cannot use push_back() with " + type_name())); } // transform null object into an array @@ -5010,7 +5026,7 @@ class basic_json // push_back only works for null objects or objects if (not(is_null() or is_object())) { - throw std::domain_error("cannot use push_back() with " + type_name()); + JSON_THROW(std::domain_error("cannot use push_back() with " + type_name())); } // transform null object into an object @@ -5110,7 +5126,7 @@ class basic_json // emplace_back only works for null objects or arrays if (not(is_null() or is_array())) { - throw std::domain_error("cannot use emplace_back() with " + type_name()); + JSON_THROW(std::domain_error("cannot use emplace_back() with " + type_name())); } // transform null object into an array @@ -5158,7 +5174,7 @@ class basic_json // emplace only works for null objects or arrays if (not(is_null() or is_object())) { - throw std::domain_error("cannot use emplace() with " + type_name()); + JSON_THROW(std::domain_error("cannot use emplace() with " + type_name())); } // transform null object into an object @@ -5209,7 +5225,7 @@ class basic_json // check if iterator pos fits to this JSON value if (pos.m_object != this) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } // insert to array and return iterator @@ -5218,7 +5234,7 @@ class basic_json return result; } - throw std::domain_error("cannot use insert() with " + type_name()); + JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } /*! @@ -5262,7 +5278,7 @@ class basic_json // check if iterator pos fits to this JSON value if (pos.m_object != this) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } // insert to array and return iterator @@ -5271,7 +5287,7 @@ class basic_json return result; } - throw std::domain_error("cannot use insert() with " + type_name()); + JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } /*! @@ -5309,24 +5325,24 @@ class basic_json // insert only works for arrays if (not is_array()) { - throw std::domain_error("cannot use insert() with " + type_name()); + JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } // check if iterator pos fits to this JSON value if (pos.m_object != this) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } // check if range iterators belong to the same JSON object if (first.m_object != last.m_object) { - throw std::domain_error("iterators do not fit"); + JSON_THROW(std::domain_error("iterators do not fit")); } if (first.m_object == this or last.m_object == this) { - throw std::domain_error("passed iterators may not belong to container"); + JSON_THROW(std::domain_error("passed iterators may not belong to container")); } // insert to array and return iterator @@ -5367,13 +5383,13 @@ class basic_json // insert only works for arrays if (not is_array()) { - throw std::domain_error("cannot use insert() with " + type_name()); + JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } // check if iterator pos fits to this JSON value if (pos.m_object != this) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } // insert to array and return iterator @@ -5440,7 +5456,7 @@ class basic_json } else { - throw std::domain_error("cannot use swap() with " + type_name()); + JSON_THROW(std::domain_error("cannot use swap() with " + type_name())); } } @@ -5473,7 +5489,7 @@ class basic_json } else { - throw std::domain_error("cannot use swap() with " + type_name()); + JSON_THROW(std::domain_error("cannot use swap() with " + type_name())); } } @@ -5506,7 +5522,7 @@ class basic_json } else { - throw std::domain_error("cannot use swap() with " + type_name()); + JSON_THROW(std::domain_error("cannot use swap() with " + type_name())); } } @@ -6350,7 +6366,7 @@ class basic_json { if (current_index + sizeof(T) + 1 > vec.size()) { - throw std::out_of_range("cannot read " + std::to_string(sizeof(T)) + " bytes from vector"); + JSON_THROW(std::out_of_range("cannot read " + std::to_string(sizeof(T)) + " bytes from vector")); } T result; @@ -6900,19 +6916,19 @@ class basic_json // simple case: requested length is greater than the vector's length if (len > size or offset > size) { - throw std::out_of_range("len out of range"); + JSON_THROW(std::out_of_range("len out of range")); } // second case: adding offset would result in overflow if ((size > (std::numeric_limits<size_t>::max() - offset))) { - throw std::out_of_range("len+offset out of range"); + JSON_THROW(std::out_of_range("len+offset out of range")); } // last case: reading past the end of the vector if (len + offset > size) { - throw std::out_of_range("len+offset out of range"); + JSON_THROW(std::out_of_range("len+offset out of range")); } } @@ -7148,7 +7164,7 @@ class basic_json default: { - throw std::invalid_argument("error parsing a msgpack @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx]))); + JSON_THROW(std::invalid_argument("error parsing a msgpack @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx])))); } } } @@ -7631,7 +7647,7 @@ class basic_json default: // anything else (0xFF is handled inside the other types) { - throw std::invalid_argument("error parsing a CBOR @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx]))); + JSON_THROW(std::invalid_argument("error parsing a CBOR @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx])))); } } } @@ -8521,7 +8537,7 @@ class basic_json case basic_json::value_t::null: { - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } default: @@ -8531,7 +8547,7 @@ class basic_json return *m_object; } - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } } } @@ -8565,7 +8581,7 @@ class basic_json return m_object; } - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } } } @@ -8665,7 +8681,7 @@ class basic_json // if objects are not the same, the comparison is undefined if (m_object != other.m_object) { - throw std::domain_error("cannot compare iterators of different containers"); + JSON_THROW(std::domain_error("cannot compare iterators of different containers")); } assert(m_object != nullptr); @@ -8707,7 +8723,7 @@ class basic_json // if objects are not the same, the comparison is undefined if (m_object != other.m_object) { - throw std::domain_error("cannot compare iterators of different containers"); + JSON_THROW(std::domain_error("cannot compare iterators of different containers")); } assert(m_object != nullptr); @@ -8716,7 +8732,7 @@ class basic_json { case basic_json::value_t::object: { - throw std::domain_error("cannot compare order of object iterators"); + JSON_THROW(std::domain_error("cannot compare order of object iterators")); } case basic_json::value_t::array: @@ -8770,7 +8786,7 @@ class basic_json { case basic_json::value_t::object: { - throw std::domain_error("cannot use offsets with object iterators"); + JSON_THROW(std::domain_error("cannot use offsets with object iterators")); } case basic_json::value_t::array: @@ -8832,7 +8848,7 @@ class basic_json { case basic_json::value_t::object: { - throw std::domain_error("cannot use offsets with object iterators"); + JSON_THROW(std::domain_error("cannot use offsets with object iterators")); } case basic_json::value_t::array: @@ -8859,7 +8875,7 @@ class basic_json { case basic_json::value_t::object: { - throw std::domain_error("cannot use operator[] for object iterators"); + JSON_THROW(std::domain_error("cannot use operator[] for object iterators")); } case basic_json::value_t::array: @@ -8869,7 +8885,7 @@ class basic_json case basic_json::value_t::null: { - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } default: @@ -8879,7 +8895,7 @@ class basic_json return *m_object; } - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } } } @@ -8897,7 +8913,7 @@ class basic_json return m_it.object_iterator->first; } - throw std::domain_error("cannot use key() for non-object iterators"); + JSON_THROW(std::domain_error("cannot use key() for non-object iterators")); } /*! @@ -9082,7 +9098,7 @@ class basic_json // immediately abort if stream is erroneous if (s.fail()) { - throw std::invalid_argument("stream error"); + JSON_THROW(std::invalid_argument("stream error")); } // fill buffer @@ -9149,7 +9165,7 @@ class basic_json } else { - throw std::invalid_argument("missing or wrong low surrogate"); + JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); } } @@ -9183,7 +9199,7 @@ class basic_json } else { - throw std::out_of_range("code points above 0x10FFFF are invalid"); + JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid")); } return result; @@ -10415,7 +10431,7 @@ basic_json_parser_66: // make sure there is a subsequent unicode if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') { - throw std::invalid_argument("missing low surrogate"); + JSON_THROW(std::invalid_argument("missing low surrogate")); } // get code yyyy from uxxxx\uyyyy @@ -10428,7 +10444,7 @@ basic_json_parser_66: else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) { // we found a lone low surrogate - throw std::invalid_argument("missing high surrogate"); + JSON_THROW(std::invalid_argument("missing high surrogate")); } else { @@ -10906,7 +10922,7 @@ basic_json_parser_66: "'") : lexer::token_type_name(last_token)); error_msg += "; expected " + lexer::token_type_name(t); - throw std::invalid_argument(error_msg); + JSON_THROW(std::invalid_argument(error_msg)); } } @@ -10918,7 +10934,7 @@ basic_json_parser_66: error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + "'") : lexer::token_type_name(last_token)); - throw std::invalid_argument(error_msg); + JSON_THROW(std::invalid_argument(error_msg)); } } @@ -11014,7 +11030,7 @@ basic_json_parser_66: { if (is_root()) { - throw std::domain_error("JSON pointer has no parent"); + JSON_THROW(std::domain_error("JSON pointer has no parent")); } auto last = reference_tokens.back(); @@ -11032,7 +11048,7 @@ basic_json_parser_66: { if (is_root()) { - throw std::domain_error("JSON pointer has no parent"); + JSON_THROW(std::domain_error("JSON pointer has no parent")); } json_pointer result = *this; @@ -11093,7 +11109,7 @@ basic_json_parser_66: */ default: { - throw std::domain_error("invalid value to unflatten"); + JSON_THROW(std::domain_error("invalid value to unflatten")); } } } @@ -11161,7 +11177,7 @@ basic_json_parser_66: // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { - throw std::domain_error("array index must not begin with '0'"); + JSON_THROW(std::domain_error("array index must not begin with '0'")); } if (reference_token == "-") @@ -11179,7 +11195,7 @@ basic_json_parser_66: default: { - throw std::out_of_range("unresolved reference token '" + reference_token + "'"); + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } @@ -11213,7 +11229,7 @@ basic_json_parser_66: // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { - throw std::domain_error("array index must not begin with '0'"); + JSON_THROW(std::domain_error("array index must not begin with '0'")); } // note: at performs range check @@ -11223,7 +11239,7 @@ basic_json_parser_66: default: { - throw std::out_of_range("unresolved reference token '" + reference_token + "'"); + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } @@ -11265,7 +11281,7 @@ basic_json_parser_66: // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { - throw std::domain_error("array index must not begin with '0'"); + JSON_THROW(std::domain_error("array index must not begin with '0'")); } // use unchecked array access @@ -11275,7 +11291,7 @@ basic_json_parser_66: default: { - throw std::out_of_range("unresolved reference token '" + reference_token + "'"); + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } @@ -11309,7 +11325,7 @@ basic_json_parser_66: // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { - throw std::domain_error("array index must not begin with '0'"); + JSON_THROW(std::domain_error("array index must not begin with '0'")); } // note: at performs range check @@ -11319,7 +11335,7 @@ basic_json_parser_66: default: { - throw std::out_of_range("unresolved reference token '" + reference_token + "'"); + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } @@ -11341,7 +11357,7 @@ basic_json_parser_66: // check if nonempty reference string begins with slash if (reference_string[0] != '/') { - throw std::domain_error("JSON pointer must be empty or begin with '/'"); + JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'")); } // extract the reference tokens: @@ -11376,7 +11392,7 @@ basic_json_parser_66: (reference_token[pos + 1] != '0' and reference_token[pos + 1] != '1')) { - throw std::domain_error("escape error: '~' must be followed with '0' or '1'"); + JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'")); } } @@ -11502,7 +11518,7 @@ basic_json_parser_66: { if (not value.is_object()) { - throw std::domain_error("only objects can be unflattened"); + JSON_THROW(std::domain_error("only objects can be unflattened")); } basic_json result; @@ -11512,7 +11528,7 @@ basic_json_parser_66: { if (not element.second.is_primitive()) { - throw std::domain_error("values in object must be primitive"); + JSON_THROW(std::domain_error("values in object must be primitive")); } // assign value to reference pointed to by JSON pointer; Note @@ -11841,7 +11857,7 @@ basic_json_parser_66: if (static_cast<size_type>(idx) > parent.size()) { // avoid undefined behavior - throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); + JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } else { @@ -11879,7 +11895,7 @@ basic_json_parser_66: } else { - throw std::out_of_range("key '" + last_path + "' not found"); + JSON_THROW(std::out_of_range("key '" + last_path + "' not found")); } } else if (parent.is_array()) @@ -11893,7 +11909,7 @@ basic_json_parser_66: if (not json_patch.is_array()) { // a JSON patch must be an array of objects - throw std::invalid_argument("JSON patch must be an array of objects"); + JSON_THROW(std::invalid_argument("JSON patch must be an array of objects")); } // iterate and apply th eoperations @@ -11913,13 +11929,13 @@ basic_json_parser_66: // check if desired value is present if (it == val.m_value.object->end()) { - throw std::invalid_argument(error_msg + " must have member '" + member + "'"); + JSON_THROW(std::invalid_argument(error_msg + " must have member '" + member + "'")); } // check if result is of type string if (string_type and not it->second.is_string()) { - throw std::invalid_argument(error_msg + " must have string member '" + member + "'"); + JSON_THROW(std::invalid_argument(error_msg + " must have string member '" + member + "'")); } // no error: return value @@ -11929,7 +11945,7 @@ basic_json_parser_66: // type check if (not val.is_object()) { - throw std::invalid_argument("JSON patch must be an array of objects"); + JSON_THROW(std::invalid_argument("JSON patch must be an array of objects")); } // collect mandatory members @@ -11988,13 +12004,13 @@ basic_json_parser_66: case patch_operations::test: { bool success = false; - try + JSON_TRY { // check if "value" matches the one at "path" // the "path" location must exist - use at() success = (result.at(ptr) == get_value("test", "value", false)); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // ignore out of range errors: success remains false } @@ -12002,7 +12018,7 @@ basic_json_parser_66: // throw an exception if test fails if (not success) { - throw std::domain_error("unsuccessful: " + val.dump()); + JSON_THROW(std::domain_error("unsuccessful: " + val.dump())); } break; @@ -12012,7 +12028,7 @@ basic_json_parser_66: { // op must be "add", "remove", "replace", "move", "copy", or // "test" - throw std::invalid_argument("operation value '" + op + "' is invalid"); + JSON_THROW(std::invalid_argument("operation value '" + op + "' is invalid")); } } } @@ -12285,4 +12301,10 @@ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std #pragma GCC diagnostic pop #endif +// clean up +#undef JSON_THROW +#undef JSON_TRY +#undef JSON_CATCH +#undef JSON_DEPRECATED + #endif diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index c7171a276..31accc98f 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -88,6 +88,17 @@ SOFTWARE. #define JSON_DEPRECATED #endif +// allow to disable exceptions +#if defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS) + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) +#else + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) +#endif + /*! @brief namespace for Niels Lohmann @see https://github.com/nlohmann @@ -945,7 +956,7 @@ class basic_json { if (t == value_t::null) { - throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10"); // LCOV_EXCL_LINE + JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10")); // LCOV_EXCL_LINE } break; } @@ -1717,7 +1728,7 @@ class basic_json // if object is wanted but impossible, throw an exception if (manual_type == value_t::object and not is_an_object) { - throw std::domain_error("cannot create object from initializer list"); + JSON_THROW(std::domain_error("cannot create object from initializer list")); } } @@ -1895,7 +1906,7 @@ class basic_json // make sure iterator fits the current value if (first.m_object != last.m_object) { - throw std::domain_error("iterators are not compatible"); + JSON_THROW(std::domain_error("iterators are not compatible")); } // copy type from first iterator @@ -1912,7 +1923,7 @@ class basic_json { if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end()) { - throw std::out_of_range("iterators out of range"); + JSON_THROW(std::out_of_range("iterators out of range")); } break; } @@ -1971,7 +1982,7 @@ class basic_json default: { - throw std::domain_error("cannot use construct with iterators from " + first.m_object->type_name()); + JSON_THROW(std::domain_error("cannot use construct with iterators from " + first.m_object->type_name())); } } @@ -2655,7 +2666,7 @@ class basic_json return T(m_value.object->begin(), m_value.object->end()); } - throw std::domain_error("type must be object, but is " + type_name()); + JSON_THROW(std::domain_error("type must be object, but is " + type_name())); } /// get an object (explicit) @@ -2666,7 +2677,7 @@ class basic_json return *(m_value.object); } - throw std::domain_error("type must be object, but is " + type_name()); + JSON_THROW(std::domain_error("type must be object, but is " + type_name())); } /// get an array (explicit) @@ -2689,7 +2700,7 @@ class basic_json return to_vector; } - throw std::domain_error("type must be array, but is " + type_name()); + JSON_THROW(std::domain_error("type must be array, but is " + type_name())); } /// get an array (explicit) @@ -2710,7 +2721,7 @@ class basic_json return to_vector; } - throw std::domain_error("type must be array, but is " + type_name()); + JSON_THROW(std::domain_error("type must be array, but is " + type_name())); } /// get an array (explicit) @@ -2724,7 +2735,7 @@ class basic_json return T(m_value.array->begin(), m_value.array->end()); } - throw std::domain_error("type must be array, but is " + type_name()); + JSON_THROW(std::domain_error("type must be array, but is " + type_name())); } /// get an array (explicit) @@ -2735,7 +2746,7 @@ class basic_json return *(m_value.array); } - throw std::domain_error("type must be array, but is " + type_name()); + JSON_THROW(std::domain_error("type must be array, but is " + type_name())); } /// get a string (explicit) @@ -2748,7 +2759,7 @@ class basic_json return *m_value.string; } - throw std::domain_error("type must be string, but is " + type_name()); + JSON_THROW(std::domain_error("type must be string, but is " + type_name())); } /// get a number (explicit) @@ -2775,17 +2786,22 @@ class basic_json default: { - throw std::domain_error("type must be number, but is " + type_name()); + JSON_THROW(std::domain_error("type must be number, but is " + type_name())); } } } /// get a boolean (explicit) - constexpr boolean_t get_impl(boolean_t* /*unused*/) const + boolean_t get_impl(boolean_t* /*unused*/) const { - return is_boolean() - ? m_value.boolean - : throw std::domain_error("type must be boolean, but is " + type_name()); + if (is_boolean()) + { + return m_value.boolean; + } + else + { + JSON_THROW(std::domain_error("type must be boolean, but is " + type_name())); + } } /// get a pointer to the value (object) @@ -3197,19 +3213,19 @@ class basic_json // at only works for arrays if (is_array()) { - try + JSON_TRY { return m_value.array->at(idx); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // create better exception explanation - throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); + JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } } else { - throw std::domain_error("cannot use at() with " + type_name()); + JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } @@ -3240,19 +3256,19 @@ class basic_json // at only works for arrays if (is_array()) { - try + JSON_TRY { return m_value.array->at(idx); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // create better exception explanation - throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); + JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } } else { - throw std::domain_error("cannot use at() with " + type_name()); + JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } @@ -3287,19 +3303,19 @@ class basic_json // at only works for objects if (is_object()) { - try + JSON_TRY { return m_value.object->at(key); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // create better exception explanation - throw std::out_of_range("key '" + key + "' not found"); + JSON_THROW(std::out_of_range("key '" + key + "' not found")); } } else { - throw std::domain_error("cannot use at() with " + type_name()); + JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } @@ -3334,19 +3350,19 @@ class basic_json // at only works for objects if (is_object()) { - try + JSON_TRY { return m_value.object->at(key); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // create better exception explanation - throw std::out_of_range("key '" + key + "' not found"); + JSON_THROW(std::out_of_range("key '" + key + "' not found")); } } else { - throw std::domain_error("cannot use at() with " + type_name()); + JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } @@ -3399,7 +3415,7 @@ class basic_json return m_value.array->operator[](idx); } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3429,7 +3445,7 @@ class basic_json return m_value.array->operator[](idx); } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3475,7 +3491,7 @@ class basic_json return m_value.object->operator[](key); } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3517,7 +3533,7 @@ class basic_json return m_value.object->find(key)->second; } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3632,7 +3648,7 @@ class basic_json return m_value.object->operator[](key); } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3675,7 +3691,7 @@ class basic_json return m_value.object->find(key)->second; } - throw std::domain_error("cannot use operator[] with " + type_name()); + JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @@ -3744,7 +3760,7 @@ class basic_json } else { - throw std::domain_error("cannot use value() with " + type_name()); + JSON_THROW(std::domain_error("cannot use value() with " + type_name())); } } @@ -3806,17 +3822,17 @@ class basic_json if (is_object()) { // if pointer resolves a value, return it or use default value - try + JSON_TRY { return ptr.get_checked(this); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { return default_value; } } - throw std::domain_error("cannot use value() with " + type_name()); + JSON_THROW(std::domain_error("cannot use value() with " + type_name())); } /*! @@ -3967,7 +3983,7 @@ class basic_json // make sure iterator fits the current value if (this != pos.m_object) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } IteratorType result = end(); @@ -3982,7 +3998,7 @@ class basic_json { if (not pos.m_it.primitive_iterator.is_begin()) { - throw std::out_of_range("iterator out of range"); + JSON_THROW(std::out_of_range("iterator out of range")); } if (is_string()) @@ -4012,7 +4028,7 @@ class basic_json default: { - throw std::domain_error("cannot use erase() with " + type_name()); + JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } } @@ -4074,7 +4090,7 @@ class basic_json // make sure iterator fits the current value if (this != first.m_object or this != last.m_object) { - throw std::domain_error("iterators do not fit current value"); + JSON_THROW(std::domain_error("iterators do not fit current value")); } IteratorType result = end(); @@ -4089,7 +4105,7 @@ class basic_json { if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end()) { - throw std::out_of_range("iterators out of range"); + JSON_THROW(std::out_of_range("iterators out of range")); } if (is_string()) @@ -4121,7 +4137,7 @@ class basic_json default: { - throw std::domain_error("cannot use erase() with " + type_name()); + JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } } @@ -4165,7 +4181,7 @@ class basic_json return m_value.object->erase(key); } - throw std::domain_error("cannot use erase() with " + type_name()); + JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } /*! @@ -4199,14 +4215,14 @@ class basic_json { if (idx >= size()) { - throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); + JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } m_value.array->erase(m_value.array->begin() + static_cast<difference_type>(idx)); } else { - throw std::domain_error("cannot use erase() with " + type_name()); + JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } } @@ -4924,7 +4940,7 @@ class basic_json // push_back only works for null objects or arrays if (not(is_null() or is_array())) { - throw std::domain_error("cannot use push_back() with " + type_name()); + JSON_THROW(std::domain_error("cannot use push_back() with " + type_name())); } // transform null object into an array @@ -4960,7 +4976,7 @@ class basic_json // push_back only works for null objects or arrays if (not(is_null() or is_array())) { - throw std::domain_error("cannot use push_back() with " + type_name()); + JSON_THROW(std::domain_error("cannot use push_back() with " + type_name())); } // transform null object into an array @@ -5010,7 +5026,7 @@ class basic_json // push_back only works for null objects or objects if (not(is_null() or is_object())) { - throw std::domain_error("cannot use push_back() with " + type_name()); + JSON_THROW(std::domain_error("cannot use push_back() with " + type_name())); } // transform null object into an object @@ -5110,7 +5126,7 @@ class basic_json // emplace_back only works for null objects or arrays if (not(is_null() or is_array())) { - throw std::domain_error("cannot use emplace_back() with " + type_name()); + JSON_THROW(std::domain_error("cannot use emplace_back() with " + type_name())); } // transform null object into an array @@ -5158,7 +5174,7 @@ class basic_json // emplace only works for null objects or arrays if (not(is_null() or is_object())) { - throw std::domain_error("cannot use emplace() with " + type_name()); + JSON_THROW(std::domain_error("cannot use emplace() with " + type_name())); } // transform null object into an object @@ -5209,7 +5225,7 @@ class basic_json // check if iterator pos fits to this JSON value if (pos.m_object != this) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } // insert to array and return iterator @@ -5218,7 +5234,7 @@ class basic_json return result; } - throw std::domain_error("cannot use insert() with " + type_name()); + JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } /*! @@ -5262,7 +5278,7 @@ class basic_json // check if iterator pos fits to this JSON value if (pos.m_object != this) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } // insert to array and return iterator @@ -5271,7 +5287,7 @@ class basic_json return result; } - throw std::domain_error("cannot use insert() with " + type_name()); + JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } /*! @@ -5309,24 +5325,24 @@ class basic_json // insert only works for arrays if (not is_array()) { - throw std::domain_error("cannot use insert() with " + type_name()); + JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } // check if iterator pos fits to this JSON value if (pos.m_object != this) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } // check if range iterators belong to the same JSON object if (first.m_object != last.m_object) { - throw std::domain_error("iterators do not fit"); + JSON_THROW(std::domain_error("iterators do not fit")); } if (first.m_object == this or last.m_object == this) { - throw std::domain_error("passed iterators may not belong to container"); + JSON_THROW(std::domain_error("passed iterators may not belong to container")); } // insert to array and return iterator @@ -5367,13 +5383,13 @@ class basic_json // insert only works for arrays if (not is_array()) { - throw std::domain_error("cannot use insert() with " + type_name()); + JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } // check if iterator pos fits to this JSON value if (pos.m_object != this) { - throw std::domain_error("iterator does not fit current value"); + JSON_THROW(std::domain_error("iterator does not fit current value")); } // insert to array and return iterator @@ -5440,7 +5456,7 @@ class basic_json } else { - throw std::domain_error("cannot use swap() with " + type_name()); + JSON_THROW(std::domain_error("cannot use swap() with " + type_name())); } } @@ -5473,7 +5489,7 @@ class basic_json } else { - throw std::domain_error("cannot use swap() with " + type_name()); + JSON_THROW(std::domain_error("cannot use swap() with " + type_name())); } } @@ -5506,7 +5522,7 @@ class basic_json } else { - throw std::domain_error("cannot use swap() with " + type_name()); + JSON_THROW(std::domain_error("cannot use swap() with " + type_name())); } } @@ -6350,7 +6366,7 @@ class basic_json { if (current_index + sizeof(T) + 1 > vec.size()) { - throw std::out_of_range("cannot read " + std::to_string(sizeof(T)) + " bytes from vector"); + JSON_THROW(std::out_of_range("cannot read " + std::to_string(sizeof(T)) + " bytes from vector")); } T result; @@ -6900,19 +6916,19 @@ class basic_json // simple case: requested length is greater than the vector's length if (len > size or offset > size) { - throw std::out_of_range("len out of range"); + JSON_THROW(std::out_of_range("len out of range")); } // second case: adding offset would result in overflow if ((size > (std::numeric_limits<size_t>::max() - offset))) { - throw std::out_of_range("len+offset out of range"); + JSON_THROW(std::out_of_range("len+offset out of range")); } // last case: reading past the end of the vector if (len + offset > size) { - throw std::out_of_range("len+offset out of range"); + JSON_THROW(std::out_of_range("len+offset out of range")); } } @@ -7148,7 +7164,7 @@ class basic_json default: { - throw std::invalid_argument("error parsing a msgpack @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx]))); + JSON_THROW(std::invalid_argument("error parsing a msgpack @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx])))); } } } @@ -7631,7 +7647,7 @@ class basic_json default: // anything else (0xFF is handled inside the other types) { - throw std::invalid_argument("error parsing a CBOR @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx]))); + JSON_THROW(std::invalid_argument("error parsing a CBOR @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx])))); } } } @@ -8521,7 +8537,7 @@ class basic_json case basic_json::value_t::null: { - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } default: @@ -8531,7 +8547,7 @@ class basic_json return *m_object; } - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } } } @@ -8565,7 +8581,7 @@ class basic_json return m_object; } - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } } } @@ -8665,7 +8681,7 @@ class basic_json // if objects are not the same, the comparison is undefined if (m_object != other.m_object) { - throw std::domain_error("cannot compare iterators of different containers"); + JSON_THROW(std::domain_error("cannot compare iterators of different containers")); } assert(m_object != nullptr); @@ -8707,7 +8723,7 @@ class basic_json // if objects are not the same, the comparison is undefined if (m_object != other.m_object) { - throw std::domain_error("cannot compare iterators of different containers"); + JSON_THROW(std::domain_error("cannot compare iterators of different containers")); } assert(m_object != nullptr); @@ -8716,7 +8732,7 @@ class basic_json { case basic_json::value_t::object: { - throw std::domain_error("cannot compare order of object iterators"); + JSON_THROW(std::domain_error("cannot compare order of object iterators")); } case basic_json::value_t::array: @@ -8770,7 +8786,7 @@ class basic_json { case basic_json::value_t::object: { - throw std::domain_error("cannot use offsets with object iterators"); + JSON_THROW(std::domain_error("cannot use offsets with object iterators")); } case basic_json::value_t::array: @@ -8832,7 +8848,7 @@ class basic_json { case basic_json::value_t::object: { - throw std::domain_error("cannot use offsets with object iterators"); + JSON_THROW(std::domain_error("cannot use offsets with object iterators")); } case basic_json::value_t::array: @@ -8859,7 +8875,7 @@ class basic_json { case basic_json::value_t::object: { - throw std::domain_error("cannot use operator[] for object iterators"); + JSON_THROW(std::domain_error("cannot use operator[] for object iterators")); } case basic_json::value_t::array: @@ -8869,7 +8885,7 @@ class basic_json case basic_json::value_t::null: { - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } default: @@ -8879,7 +8895,7 @@ class basic_json return *m_object; } - throw std::out_of_range("cannot get value"); + JSON_THROW(std::out_of_range("cannot get value")); } } } @@ -8897,7 +8913,7 @@ class basic_json return m_it.object_iterator->first; } - throw std::domain_error("cannot use key() for non-object iterators"); + JSON_THROW(std::domain_error("cannot use key() for non-object iterators")); } /*! @@ -9082,7 +9098,7 @@ class basic_json // immediately abort if stream is erroneous if (s.fail()) { - throw std::invalid_argument("stream error"); + JSON_THROW(std::invalid_argument("stream error")); } // fill buffer @@ -9149,7 +9165,7 @@ class basic_json } else { - throw std::invalid_argument("missing or wrong low surrogate"); + JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); } } @@ -9183,7 +9199,7 @@ class basic_json } else { - throw std::out_of_range("code points above 0x10FFFF are invalid"); + JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid")); } return result; @@ -9565,7 +9581,7 @@ class basic_json // make sure there is a subsequent unicode if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') { - throw std::invalid_argument("missing low surrogate"); + JSON_THROW(std::invalid_argument("missing low surrogate")); } // get code yyyy from uxxxx\uyyyy @@ -9578,7 +9594,7 @@ class basic_json else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) { // we found a lone low surrogate - throw std::invalid_argument("missing high surrogate"); + JSON_THROW(std::invalid_argument("missing high surrogate")); } else { @@ -10056,7 +10072,7 @@ class basic_json "'") : lexer::token_type_name(last_token)); error_msg += "; expected " + lexer::token_type_name(t); - throw std::invalid_argument(error_msg); + JSON_THROW(std::invalid_argument(error_msg)); } } @@ -10068,7 +10084,7 @@ class basic_json error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + "'") : lexer::token_type_name(last_token)); - throw std::invalid_argument(error_msg); + JSON_THROW(std::invalid_argument(error_msg)); } } @@ -10164,7 +10180,7 @@ class basic_json { if (is_root()) { - throw std::domain_error("JSON pointer has no parent"); + JSON_THROW(std::domain_error("JSON pointer has no parent")); } auto last = reference_tokens.back(); @@ -10182,7 +10198,7 @@ class basic_json { if (is_root()) { - throw std::domain_error("JSON pointer has no parent"); + JSON_THROW(std::domain_error("JSON pointer has no parent")); } json_pointer result = *this; @@ -10243,7 +10259,7 @@ class basic_json */ default: { - throw std::domain_error("invalid value to unflatten"); + JSON_THROW(std::domain_error("invalid value to unflatten")); } } } @@ -10311,7 +10327,7 @@ class basic_json // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { - throw std::domain_error("array index must not begin with '0'"); + JSON_THROW(std::domain_error("array index must not begin with '0'")); } if (reference_token == "-") @@ -10329,7 +10345,7 @@ class basic_json default: { - throw std::out_of_range("unresolved reference token '" + reference_token + "'"); + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } @@ -10363,7 +10379,7 @@ class basic_json // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { - throw std::domain_error("array index must not begin with '0'"); + JSON_THROW(std::domain_error("array index must not begin with '0'")); } // note: at performs range check @@ -10373,7 +10389,7 @@ class basic_json default: { - throw std::out_of_range("unresolved reference token '" + reference_token + "'"); + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } @@ -10415,7 +10431,7 @@ class basic_json // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { - throw std::domain_error("array index must not begin with '0'"); + JSON_THROW(std::domain_error("array index must not begin with '0'")); } // use unchecked array access @@ -10425,7 +10441,7 @@ class basic_json default: { - throw std::out_of_range("unresolved reference token '" + reference_token + "'"); + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } @@ -10459,7 +10475,7 @@ class basic_json // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { - throw std::domain_error("array index must not begin with '0'"); + JSON_THROW(std::domain_error("array index must not begin with '0'")); } // note: at performs range check @@ -10469,7 +10485,7 @@ class basic_json default: { - throw std::out_of_range("unresolved reference token '" + reference_token + "'"); + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } @@ -10491,7 +10507,7 @@ class basic_json // check if nonempty reference string begins with slash if (reference_string[0] != '/') { - throw std::domain_error("JSON pointer must be empty or begin with '/'"); + JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'")); } // extract the reference tokens: @@ -10526,7 +10542,7 @@ class basic_json (reference_token[pos + 1] != '0' and reference_token[pos + 1] != '1')) { - throw std::domain_error("escape error: '~' must be followed with '0' or '1'"); + JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'")); } } @@ -10652,7 +10668,7 @@ class basic_json { if (not value.is_object()) { - throw std::domain_error("only objects can be unflattened"); + JSON_THROW(std::domain_error("only objects can be unflattened")); } basic_json result; @@ -10662,7 +10678,7 @@ class basic_json { if (not element.second.is_primitive()) { - throw std::domain_error("values in object must be primitive"); + JSON_THROW(std::domain_error("values in object must be primitive")); } // assign value to reference pointed to by JSON pointer; Note @@ -10991,7 +11007,7 @@ class basic_json if (static_cast<size_type>(idx) > parent.size()) { // avoid undefined behavior - throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); + JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } else { @@ -11029,7 +11045,7 @@ class basic_json } else { - throw std::out_of_range("key '" + last_path + "' not found"); + JSON_THROW(std::out_of_range("key '" + last_path + "' not found")); } } else if (parent.is_array()) @@ -11043,7 +11059,7 @@ class basic_json if (not json_patch.is_array()) { // a JSON patch must be an array of objects - throw std::invalid_argument("JSON patch must be an array of objects"); + JSON_THROW(std::invalid_argument("JSON patch must be an array of objects")); } // iterate and apply th eoperations @@ -11063,13 +11079,13 @@ class basic_json // check if desired value is present if (it == val.m_value.object->end()) { - throw std::invalid_argument(error_msg + " must have member '" + member + "'"); + JSON_THROW(std::invalid_argument(error_msg + " must have member '" + member + "'")); } // check if result is of type string if (string_type and not it->second.is_string()) { - throw std::invalid_argument(error_msg + " must have string member '" + member + "'"); + JSON_THROW(std::invalid_argument(error_msg + " must have string member '" + member + "'")); } // no error: return value @@ -11079,7 +11095,7 @@ class basic_json // type check if (not val.is_object()) { - throw std::invalid_argument("JSON patch must be an array of objects"); + JSON_THROW(std::invalid_argument("JSON patch must be an array of objects")); } // collect mandatory members @@ -11138,13 +11154,13 @@ class basic_json case patch_operations::test: { bool success = false; - try + JSON_TRY { // check if "value" matches the one at "path" // the "path" location must exist - use at() success = (result.at(ptr) == get_value("test", "value", false)); } - catch (std::out_of_range&) + JSON_CATCH (std::out_of_range&) { // ignore out of range errors: success remains false } @@ -11152,7 +11168,7 @@ class basic_json // throw an exception if test fails if (not success) { - throw std::domain_error("unsuccessful: " + val.dump()); + JSON_THROW(std::domain_error("unsuccessful: " + val.dump())); } break; @@ -11162,7 +11178,7 @@ class basic_json { // op must be "add", "remove", "replace", "move", "copy", or // "test" - throw std::invalid_argument("operation value '" + op + "' is invalid"); + JSON_THROW(std::invalid_argument("operation value '" + op + "' is invalid")); } } } @@ -11435,4 +11451,10 @@ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std #pragma GCC diagnostic pop #endif +// clean up +#undef JSON_THROW +#undef JSON_TRY +#undef JSON_CATCH +#undef JSON_DEPRECATED + #endif diff --git a/test/Makefile b/test/Makefile index 3d5595d21..0b235ba19 100644 --- a/test/Makefile +++ b/test/Makefile @@ -75,7 +75,7 @@ test-%: src/unit-%.cpp ../src/json.hpp thirdparty/catch/catch.hpp @echo "[CXXLD] $@" @$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -DCATCH_CONFIG_MAIN $< -o $@ -TEST_PATTERN = "*" +TEST_PATTERN ?= "*" TEST_PREFIX = "" check: $(TESTCASES) @cd .. ; for testcase in $(TESTCASES); do echo "Executing $$testcase..."; $(TEST_PREFIX)test/$$testcase $(TEST_PATTERN) || exit 1; done diff --git a/test/src/unit-cbor.cpp b/test/src/unit-cbor.cpp index 92238b79f..43f9f4338 100644 --- a/test/src/unit-cbor.cpp +++ b/test/src/unit-cbor.cpp @@ -1187,7 +1187,7 @@ TEST_CASE("single CBOR roundtrip") } } -TEST_CASE("CBOR regressions") +TEST_CASE("CBOR regressions", "[!throws]") { SECTION("fuzz test results") { diff --git a/test/src/unit-element_access2.cpp b/test/src/unit-element_access2.cpp index 1ba6aa613..f12da1e43 100644 --- a/test/src/unit-element_access2.cpp +++ b/test/src/unit-element_access2.cpp @@ -298,25 +298,6 @@ TEST_CASE("element access 2") CHECK(j_const.value("/array"_json_pointer, json({10, 100})) == json({1, 2, 3})); } - SECTION("access non-existing value") - { - CHECK(j.value("/not/existing"_json_pointer, 2) == 2); - CHECK(j.value("/not/existing"_json_pointer, 2u) == 2u); - CHECK(j.value("/not/existing"_json_pointer, false) == false); - CHECK(j.value("/not/existing"_json_pointer, "bar") == "bar"); - CHECK(j.value("/not/existing"_json_pointer, 12.34) == Approx(12.34)); - CHECK(j.value("/not/existing"_json_pointer, json({{"foo", "bar"}})) == json({{"foo", "bar"}})); - CHECK(j.value("/not/existing"_json_pointer, json({10, 100})) == json({10, 100})); - - CHECK(j_const.value("/not/existing"_json_pointer, 2) == 2); - CHECK(j_const.value("/not/existing"_json_pointer, 2u) == 2u); - CHECK(j_const.value("/not/existing"_json_pointer, false) == false); - CHECK(j_const.value("/not/existing"_json_pointer, "bar") == "bar"); - CHECK(j_const.value("/not/existing"_json_pointer, 12.34) == Approx(12.34)); - CHECK(j_const.value("/not/existing"_json_pointer, json({{"foo", "bar"}})) == json({{"foo", "bar"}})); - CHECK(j_const.value("/not/existing"_json_pointer, json({10, 100})) == json({10, 100})); - } - SECTION("access on non-object type") { SECTION("null") @@ -957,3 +938,37 @@ TEST_CASE("element access 2") } } } + +TEST_CASE("element access 2 (throwing tests)", "[!throws]") +{ + SECTION("object") + { + json j = {{"integer", 1}, {"unsigned", 1u}, {"floating", 42.23}, {"null", nullptr}, {"string", "hello world"}, {"boolean", true}, {"object", json::object()}, {"array", {1, 2, 3}}}; + const json j_const = j; + + SECTION("access specified element with default value") + { + SECTION("given a JSON pointer") + { + SECTION("access non-existing value") + { + CHECK(j.value("/not/existing"_json_pointer, 2) == 2); + CHECK(j.value("/not/existing"_json_pointer, 2u) == 2u); + CHECK(j.value("/not/existing"_json_pointer, false) == false); + CHECK(j.value("/not/existing"_json_pointer, "bar") == "bar"); + CHECK(j.value("/not/existing"_json_pointer, 12.34) == Approx(12.34)); + CHECK(j.value("/not/existing"_json_pointer, json({{"foo", "bar"}})) == json({{"foo", "bar"}})); + CHECK(j.value("/not/existing"_json_pointer, json({10, 100})) == json({10, 100})); + + CHECK(j_const.value("/not/existing"_json_pointer, 2) == 2); + CHECK(j_const.value("/not/existing"_json_pointer, 2u) == 2u); + CHECK(j_const.value("/not/existing"_json_pointer, false) == false); + CHECK(j_const.value("/not/existing"_json_pointer, "bar") == "bar"); + CHECK(j_const.value("/not/existing"_json_pointer, 12.34) == Approx(12.34)); + CHECK(j_const.value("/not/existing"_json_pointer, json({{"foo", "bar"}})) == json({{"foo", "bar"}})); + CHECK(j_const.value("/not/existing"_json_pointer, json({10, 100})) == json({10, 100})); + } + } + } + } +} From a00149f8ee60a48fe7735d3eecd209b509e2168f Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Mon, 16 Jan 2017 22:36:58 +0100 Subject: [PATCH 016/130] :bug: fixed logic error --- .travis.yml | 4 ++-- src/json.hpp | 10 +++++----- src/json.hpp.re2c | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6a154deb7..fc7e5db0c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -78,13 +78,13 @@ matrix: env: - COMPILER=g++-4.9 - SPECIAL=no_exceptions - - TEST_PATTERN="-e \"*\"" + - TEST_PATTERN=-e "*" addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: [g++-4.9, cppcheck] before_script: - - make FLAGS="-fno-exceptions" + - CPPFLAGS="-DJSON_NOEXCEPTION" make # Coveralls (http://gronlier.fr/blog/2015/01/adding-code-coverage-to-your-c-project/) diff --git a/src/json.hpp b/src/json.hpp index 69d49ec17..fa9b85f26 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -89,14 +89,14 @@ SOFTWARE. #endif // allow to disable exceptions -#if defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS) - #define JSON_THROW(exception) std::abort() - #define JSON_TRY if(true) - #define JSON_CATCH(exception) if(false) -#else +#if not defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS) #define JSON_THROW(exception) throw exception #define JSON_TRY try #define JSON_CATCH(exception) catch(exception) +#else + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) #endif /*! diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 31accc98f..886b9dde5 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -89,14 +89,14 @@ SOFTWARE. #endif // allow to disable exceptions -#if defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS) - #define JSON_THROW(exception) std::abort() - #define JSON_TRY if(true) - #define JSON_CATCH(exception) if(false) -#else +#if not defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS) #define JSON_THROW(exception) throw exception #define JSON_TRY try #define JSON_CATCH(exception) catch(exception) +#else + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) #endif /*! From 87c5e32e1faf7f54a3f6241c288aa0c1a39c4a3f Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Mon, 16 Jan 2017 22:46:49 +0100 Subject: [PATCH 017/130] :bug: fixed escaping --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fc7e5db0c..ef5c6143f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -78,7 +78,7 @@ matrix: env: - COMPILER=g++-4.9 - SPECIAL=no_exceptions - - TEST_PATTERN=-e "*" + - TEST_PATTERN=-e \"*\" addons: apt: sources: ['ubuntu-toolchain-r-test'] From 046f6da82f6e1d439b049f97ed4cb7cc5e0bf989 Mon Sep 17 00:00:00 2001 From: Jonathan Lee <vjon207@gmail.com> Date: Wed, 18 Jan 2017 11:43:14 -0800 Subject: [PATCH 018/130] Fix documentation error Move comparison before "j.clear()" function call, such that the intended return value "true" is actually correct. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6182a2df9..902cdaad1 100644 --- a/README.md +++ b/README.md @@ -263,6 +263,9 @@ const std::string tmp = j[0]; j[1] = 42; bool foo = j.at(2); +// comparison +j == "[\"foo\", 1, true]"_json; // true + // other stuff j.size(); // 3 entries j.empty(); // false @@ -277,9 +280,6 @@ j.is_object(); j.is_array(); j.is_string(); -// comparison -j == "[\"foo\", 1, true]"_json; // true - // create an object json o; o["foo"] = 23; From 5e3f9c8969355062851195751d628407a687108f Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Thu, 19 Jan 2017 17:09:55 +0100 Subject: [PATCH 019/130] :page_facing_up: help Github find the license --- LICENSE.MIT => LICENSE | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename LICENSE.MIT => LICENSE (100%) diff --git a/LICENSE.MIT b/LICENSE similarity index 100% rename from LICENSE.MIT rename to LICENSE From 69be3fa8424a8c56fb9802284a510b8b14837d9b Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Thu, 19 Jan 2017 18:19:20 +0100 Subject: [PATCH 020/130] :memo: small documentation update --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 902cdaad1..69676370a 100644 --- a/README.md +++ b/README.md @@ -587,8 +587,9 @@ I deeply appreciate the help of the following people. - [Yixin Zhang](https://github.com/qwename) fixed an integer overflow check. - [Bosswestfalen](https://github.com/Bosswestfalen) merged two iterator classes into a smaller one. - [Daniel599](https://github.com/Daniel599) helped to get Travis execute the tests with Clang's sanitizers. +- [Jonathan Lee](https://github.com/vjon) fixed an example in the README file. -Thanks a lot for helping out! +Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone. ## Notes @@ -601,6 +602,8 @@ Thanks a lot for helping out! - [Unicode noncharacters](http://www.unicode.org/faq/private_use.html#nonchar1) will not be replaced by the library. - Invalid surrogates (e.g., incomplete pairs such as `\uDEAD`) will yield parse errors. - The strings stored in the library are UTF-8 encoded. When using the default string type (`std::string`), note that its length/size functions return the number of stored bytes rather than the number of characters or glyphs. +- The code can be compiled without C++ **runtime type identification** features; that is, you can use the `-fno-rtti` compiler flag. +- **Exceptions** are used widly within the library. They can, however, be switched off with either using the compiler flag `-fno-exceptions` or by defining the symbol `JSON_NOEXCEPTION`. In this case, exceptions are replaced by an `abort()` call. ## Execute unit tests From 145188f2640a4f8a642467c68e6737547ebaa245 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Thu, 19 Jan 2017 19:23:56 +0100 Subject: [PATCH 021/130] :rewind: renaming did not help --- LICENSE => LICENSE.MIT | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename LICENSE => LICENSE.MIT (100%) diff --git a/LICENSE b/LICENSE.MIT similarity index 100% rename from LICENSE rename to LICENSE.MIT From ce0b3fe5a334567825a554a08b76c725d0790500 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Sat, 21 Jan 2017 16:12:17 +0100 Subject: [PATCH 022/130] :construction: made type_name() public --- doc/examples/type_name.cpp | 24 ++++++++++++++++++++++++ doc/examples/type_name.link | 1 + doc/examples/type_name.output | 7 +++++++ src/json.hpp | 5 ++++- src/json.hpp.re2c | 5 ++++- 5 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 doc/examples/type_name.cpp create mode 100644 doc/examples/type_name.link create mode 100644 doc/examples/type_name.output diff --git a/doc/examples/type_name.cpp b/doc/examples/type_name.cpp new file mode 100644 index 000000000..815e92d7e --- /dev/null +++ b/doc/examples/type_name.cpp @@ -0,0 +1,24 @@ +#include <json.hpp> + +using json = nlohmann::json; + +int main() +{ + // create JSON values + json j_null; + json j_boolean = true; + json j_number_integer = 17; + json j_number_float = 23.42; + json j_object = {{"one", 1}, {"two", 2}}; + json j_array = {1, 2, 4, 8, 16}; + json j_string = "Hello, world"; + + // call type_name() + std::cout << j_null.type_name() << '\n'; + std::cout << j_boolean.type_name() << '\n'; + std::cout << j_number_integer.type_name() << '\n'; + std::cout << j_number_float.type_name() << '\n'; + std::cout << j_object.type_name() << '\n'; + std::cout << j_array.type_name() << '\n'; + std::cout << j_string.type_name() << '\n'; +} diff --git a/doc/examples/type_name.link b/doc/examples/type_name.link new file mode 100644 index 000000000..39d1f973e --- /dev/null +++ b/doc/examples/type_name.link @@ -0,0 +1 @@ +<a target="_blank" href="http://melpon.org/wandbox/permlink/V6imubWo6Lkp8gk1"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/type_name.output b/doc/examples/type_name.output new file mode 100644 index 000000000..ad906a497 --- /dev/null +++ b/doc/examples/type_name.output @@ -0,0 +1,7 @@ +null +boolean +number +number +object +array +string diff --git a/src/json.hpp b/src/json.hpp index fa9b85f26..2c1fd6585 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -7767,7 +7767,6 @@ class basic_json /// @} - private: /////////////////////////// // convenience functions // /////////////////////////// @@ -7782,6 +7781,9 @@ class basic_json @complexity Constant. + @liveexample{The following code exemplifies `type_name()` for all JSON + types.,typename} + @since version 1.0.0 */ std::string type_name() const @@ -7805,6 +7807,7 @@ class basic_json } } + private: /*! @brief calculates the extra space to escape a JSON string diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 886b9dde5..f552a390d 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -7767,7 +7767,6 @@ class basic_json /// @} - private: /////////////////////////// // convenience functions // /////////////////////////// @@ -7782,6 +7781,9 @@ class basic_json @complexity Constant. + @liveexample{The following code exemplifies `type_name()` for all JSON + types.,typename} + @since version 1.0.0 */ std::string type_name() const @@ -7805,6 +7807,7 @@ class basic_json } } + private: /*! @brief calculates the extra space to escape a JSON string From b443edf49e2741bd27cdfb148fa42abf58d6bac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io> Date: Sun, 16 Oct 2016 17:29:57 +0200 Subject: [PATCH 023/130] add first version support for user-defined types --- src/json.hpp | 96 +++++++++-- test/CMakeLists.txt | 1 + test/src/unit-constructor3.cpp | 302 +++++++++++++++++++++++++++++++++ 3 files changed, 383 insertions(+), 16 deletions(-) create mode 100644 test/src/unit-constructor3.cpp diff --git a/src/json.hpp b/src/json.hpp index 2c1fd6585..05fb8c922 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -106,12 +106,14 @@ SOFTWARE. */ namespace nlohmann { - +template <typename T, typename = void> +struct json_traits; /*! @brief unnamed namespace with internal helper functions @since version 1.0.0 */ +// TODO transform this anon ns to detail? namespace { /*! @@ -137,7 +139,47 @@ struct has_mapped_type std::is_integral<decltype(detect(std::declval<T>()))>::value; }; -} // namespace +// taken from http://stackoverflow.com/questions/10711952/how-to-detect-existence-of-a-class-using-sfinae +template <typename T> +struct has_destructor +{ + template <typename U> + static std::true_type detect(decltype(std::declval<U>().~U())*); + + template <typename> + static std::false_type detect(...); + + static constexpr bool value = decltype(detect<T>(0))::value; +}; + +template<typename T> +struct has_json_traits +{ + static constexpr bool value = has_destructor<json_traits<T>>::value; +}; + +template <> struct has_json_traits<void> : std::false_type {}; + +/*! +@brief helper class to create locales with decimal point + +This struct is used a default locale during the JSON serialization. JSON +requires the decimal point to be `.`, so this function overloads the +`do_decimal_point()` function to return `.`. This function is called by +float-to-string conversions to retrieve the decimal separator between integer +and fractional parts. + +@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315 +@since version 2.0.0 +*/ +struct DecimalSeparator : std::numpunct<char> +{ + char do_decimal_point() const + { + return '.'; + } +}; + /*! @brief a class to store JSON values @@ -1295,6 +1337,15 @@ class basic_json assert_invariant(); } + template < + typename T, + typename = + typename std::enable_if<has_json_traits<typename std::remove_cv< + typename std::remove_reference<T>::type>::type>::value>::type> + explicit basic_json(T &&val) + : basic_json(json_traits<typename std::remove_cv< + typename std::remove_reference<T>::type>::type>:: + to_json(std::forward<T>(val))) {} /*! @brief create a string (explicit) @@ -1311,15 +1362,14 @@ class basic_json @sa @ref basic_json(const typename string_t::value_type*) -- create a string value from a character pointer - @sa @ref basic_json(const CompatibleStringType&) -- create a string value + @sa @ref basic_json(const CompatibleStringType&) -- create a string + value from a compatible string container @since version 1.0.0 */ - basic_json(const string_t& val) - : m_type(value_t::string), m_value(val) - { - assert_invariant(); + basic_json(const string_t &val) : m_type(value_t::string), m_value(val) { + assert_invariant(); } /*! @@ -2655,16 +2705,30 @@ class basic_json // value access // ////////////////// + template < + typename T, + typename = + typename std::enable_if<has_json_traits<typename std::remove_cv< + typename std::remove_reference<T>::type>::type>::value>::type> + auto get_impl(T *) const -> decltype( + json_traits<typename std::remove_cv<typename std::remove_reference< + T>::type>::type>::from_json(std::declval<basic_json>())) { + return json_traits<typename std::remove_cv< + typename std::remove_reference<T>::type>::type>::from_json(*this); + } + /// get an object (explicit) - template<class T, typename std::enable_if< - std::is_convertible<typename object_t::key_type, typename T::key_type>::value and - std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0> - T get_impl(T* /*unused*/) const - { - if (is_object()) - { - return T(m_value.object->begin(), m_value.object->end()); - } + template <class T, + typename std::enable_if< + std::is_convertible<typename object_t::key_type, + typename T::key_type>::value and + std::is_convertible<basic_json_t, + typename T::mapped_type>::value, + int>::type = 0> + T get_impl(T *) const { + if (is_object()) { + return T(m_value.object->begin(), m_value.object->end()); + } else { JSON_THROW(std::domain_error("type must be object, but is " + type_name())); } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 62213ad31..8279b157e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -15,6 +15,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME} "src/unit-concepts.cpp" "src/unit-constructor1.cpp" "src/unit-constructor2.cpp" + "src/unit-constructor3.cpp" "src/unit-convenience.cpp" "src/unit-conversions.cpp" "src/unit-deserialization.cpp" diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-constructor3.cpp new file mode 100644 index 000000000..d119625fa --- /dev/null +++ b/test/src/unit-constructor3.cpp @@ -0,0 +1,302 @@ +/* + __ _____ _____ _____ + __| | __| | | | JSON for Modern C++ (test suite) +| | |__ | | | | | | version 2.0.5 +|_____|_____|_____|_|___| https://github.com/nlohmann/json + +Licensed under the MIT License <http://opensource.org/licenses/MIT>. +Copyright (c) 2013-2016 Niels Lohmann <http://nlohmann.me>. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#include <string> +#include <memory> +#include "catch.hpp" + +#include "json.hpp" +using nlohmann::json; + +namespace udt +{ +struct empty_type {}; +struct pod_type { + int a; + char b; + short c; +}; + +inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept +{ + return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); +} + +struct bit_more_complex_type { + pod_type a; + pod_type b; + std::string c; +}; + +inline bool operator==(bit_more_complex_type const &lhs, + bit_more_complex_type const &rhs) noexcept { + return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); +} + +// best optional implementation ever +template <typename T> +class optional_type +{ +public: + optional_type() = default; + explicit optional_type(T val) : _val(std::make_shared<T>(std::move(val))) {} + explicit operator bool() const noexcept { return _val != nullptr; } + + T const &operator*() const { return *_val; } + +private: + std::shared_ptr<T> _val; +}; + +template <typename T> +inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs) +{ + if (!lhs && !rhs) + return true; + if (!lhs || !rhs) + return false; + return *lhs == *rhs; +} +} + +namespace nlohmann +{ +template <> +struct json_traits<udt::empty_type> +{ + using type = udt::empty_type; + + static json to_json(type) + { + return json::object(); + } + + static type from_json(json const& j) + { + assert(j.is_object() and j.empty()); + return {}; + } +}; + +template <> +struct json_traits<udt::pod_type> +{ + using type = udt::pod_type; + + static json to_json(type const& t) + { + return {{"a", t.a}, {"b", t.b}, {"c", t.c}}; + } + + static type from_json(json const& j) + { + assert(j.is_object()); + return {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()}; + } +}; + +template <> +struct json_traits<udt::bit_more_complex_type> +{ + using type = udt::bit_more_complex_type; + + static json to_json(type const& t) + { + return json{{"a", json{t.a}}, {"b", json{t.b}}, {"c", t.c}}; + } + + static type from_json(json const& j) + { + return {j["a"].get<udt::pod_type>(), j["b"].get<udt::pod_type>(), + j["c"].get<std::string>()}; + } +}; + +template <typename T> +struct json_traits<udt::optional_type<T>> +{ + using type = udt::optional_type<T>; + + static json to_json(type const& t) + { + if (t) + return json(*t); + return {}; + } + + static type from_json(json const& j) + { + if (j.is_null()) + return {}; + return type{j.get<T>()}; + } +}; +} + + +TEST_CASE("constructors for user-defined types", "[udt]") +{ + SECTION("empty type") + { + udt::empty_type const e; + auto const j = json{e}; + auto k = json::object(); + CHECK(j == k); + } + + SECTION("pod type") + { + auto const e = udt::pod_type{42, 42, 42}; + auto j = json{e}; + auto k = json{{"a", 42}, {"b", 42}, {"c", 42}}; + CHECK(j == k); + } + + SECTION("bit more complex type") + { + auto const e = + udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; + + auto j = json{e}; + auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, + {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, + {"c", "forty"}}; + CHECK(j == k); + } + + SECTION("vector of udt") + { + std::vector<udt::bit_more_complex_type> v; + auto const e = + udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; + + v.emplace_back(e); + v.emplace_back(e); + v.emplace_back(e); + + json j = v; + auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, + {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, + {"c", "forty"}}; + auto l = json{k, k, k}; + CHECK(j == l); + } + + SECTION("optional type") { + SECTION("regular case") { + udt::optional_type<int> u{3}; + CHECK(json{u} == json(3)); + } + + SECTION("nullopt case") { + udt::optional_type<float> v; + CHECK(json{v} == json{}); + } + + SECTION("optional of json convertible type") + { + auto const e = + udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; + udt::optional_type<udt::bit_more_complex_type> o{e}; + auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, + {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, + {"c", "forty"}}; + CHECK(json{o} == k); + } + + SECTION("optional of vector of json convertible type") + { + std::vector<udt::bit_more_complex_type> v; + auto const e = + udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; + v.emplace_back(e); + v.emplace_back(e); + v.emplace_back(e); + udt::optional_type<std::vector<udt::bit_more_complex_type>> o{v}; + auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, + {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, + {"c", "forty"}}; + auto l = json{k, k, k}; + CHECK(json{o} == l); + } + } +} + +TEST_CASE("get<> for user-defined types", "[udt]") +{ + SECTION("pod type") + { + auto const e = udt::pod_type{42, 42, 42}; + auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}}; + + auto const obj = j.get<udt::pod_type>(); + CHECK(e == obj); + } + + SECTION("bit more complex type") + { + auto const e = + udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; + auto const j = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, + {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, + {"c", "forty"}}; + + auto const obj = j.get<udt::bit_more_complex_type>(); + CHECK(e == obj); + } + + SECTION("vector of udt") + { + auto const e = + udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; + std::vector<udt::bit_more_complex_type> v{e, e, e}; + auto const j = json(v); + + auto const obj = j.get<decltype(v)>(); + CHECK(v == obj); + } + + SECTION("optional") + { + SECTION("from null") + { + udt::optional_type<int> o; + json j; + CHECK(j.get<decltype(o)>() == o); + } + + SECTION("from value") + { + json j{{"a", 42}, {"b", 42}, {"c", 42}}; + auto v = j.get<udt::optional_type<udt::pod_type>>(); + auto expected = udt::pod_type{42,42,42}; + REQUIRE(v); + CHECK(*v == expected); + } + } +} From fe628b585b5bccbea2687dbb7f3557717086ef6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Mon, 17 Oct 2016 23:41:53 +0200 Subject: [PATCH 024/130] anonymous namespace renamed to detail --- src/json.hpp | 93 ++++++++++++-- test/src/unit-constructor3.cpp | 218 +++++++++++++++++++++++++++++++-- 2 files changed, 292 insertions(+), 19 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 05fb8c922..3d4994e3f 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -106,6 +106,14 @@ SOFTWARE. */ namespace nlohmann { +// TODO add real documentation before PR + +// Traits structure declaration, users can specialize it for their own types +// +// constructing a json object from a user-defined type will call the +// 'json to_json(T)' function +// +// whereas calling json::get<T> will call 'T from_json(json const&)' template <typename T, typename = void> struct json_traits; @@ -113,8 +121,8 @@ struct json_traits; @brief unnamed namespace with internal helper functions @since version 1.0.0 */ -// TODO transform this anon ns to detail? -namespace + +namespace detail { /*! @brief Helper to determine whether there's a key_type for T. @@ -140,6 +148,7 @@ struct has_mapped_type }; // taken from http://stackoverflow.com/questions/10711952/how-to-detect-existence-of-a-class-using-sfinae +// used to determine if json_traits is defined for a given type T template <typename T> struct has_destructor { @@ -158,7 +167,23 @@ struct has_json_traits static constexpr bool value = has_destructor<json_traits<T>>::value; }; -template <> struct has_json_traits<void> : std::false_type {}; +struct to_json_fn +{ + template <typename T> + constexpr auto operator()(T&& val) const -> decltype(to_json(std::forward<T>(val))) + { + return to_json(std::forward<T>(val)); + } +}; + +struct from_json_fn +{ + template <typename Json, typename T> + constexpr auto operator()(Json const& from, T& to) const -> decltype(from_json(from, to)) + { + return from_json(from, to); + } +}; /*! @brief helper class to create locales with decimal point @@ -181,6 +206,23 @@ struct DecimalSeparator : std::numpunct<char> }; +// taken from ranges-v3 +// TODO add doc +template <typename T> +struct __static_const +{ + static constexpr T value{}; +}; + +template <typename T> +constexpr T __static_const<T>::value; + +inline namespace +{ + constexpr auto const& to_json = __static_const<detail::to_json_fn>::value; + constexpr auto const& from_json = __static_const<detail::from_json_fn>::value; +} + /*! @brief a class to store JSON values @@ -1337,10 +1379,24 @@ class basic_json assert_invariant(); } + // constructor chosen if json_traits is specialized for type T + // note: constructor is marked explicit to avoid the following issue: + // + // struct not_equality_comparable{}; + // + // not_equality_comparable{} == not_equality_comparable{}; + // + // this will construct implicitely 2 json objects and call operator== on them + // which can cause nasty bugs on the user's in json-unrelated code + // + // the trade-off is expressivety in initializer-lists + // auto j = json{{"a", json(not_equality_comparable{})}}; + // + // we can remove this constraint though, since lots of ctor are not explicit already template < typename T, typename = - typename std::enable_if<has_json_traits<typename std::remove_cv< + typename std::enable_if<detail::has_json_traits<typename std::remove_cv< typename std::remove_reference<T>::type>::type>::value>::type> explicit basic_json(T &&val) : basic_json(json_traits<typename std::remove_cv< @@ -2705,10 +2761,13 @@ class basic_json // value access // ////////////////// + // get_impl overload chosen if json_traits struct is specialized for type T + // simply returns json_traits<T>::from_json(*this); + // TODO add alias templates (enable_if_t etc) template < typename T, - typename = - typename std::enable_if<has_json_traits<typename std::remove_cv< + typename = typename std::enable_if< + detail::has_json_traits<typename std::remove_cv< typename std::remove_reference<T>::type>::type>::value>::type> auto get_impl(T *) const -> decltype( json_traits<typename std::remove_cv<typename std::remove_reference< @@ -2717,6 +2776,24 @@ class basic_json typename std::remove_reference<T>::type>::type>::from_json(*this); } + // this one is quite atrocious + // this overload is chosen ONLY if json_traits struct is not specialized, and if the expression nlohmann::from_json(*this, T&) is valid + // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use. + // But we can of course change this behaviour + template <typename T> + auto get_impl(T *) const -> typename std::enable_if< + not detail::has_json_traits<typename std::remove_cv<T>::type>::value, + typename std::remove_cv<typename std::remove_reference< + decltype(::nlohmann::from_json(std::declval<basic_json>(), + std::declval<T &>()), + std::declval<T>())>::type>::type>::type + { + typename std::remove_cv<typename std::remove_reference<T>::type>::type + ret; + ::nlohmann::from_json(*this, ret); + return ret; + } + /// get an object (explicit) template <class T, typename std::enable_if< @@ -2750,7 +2827,7 @@ class basic_json not std::is_same<basic_json_t, typename T::value_type>::value and not std::is_arithmetic<T>::value and not std::is_convertible<std::string, T>::value and - not has_mapped_type<T>::value, int>::type = 0> + not detail::has_mapped_type<T>::value, int>::type = 0> T get_impl(T* /*unused*/) const { if (is_array()) @@ -2791,7 +2868,7 @@ class basic_json /// get an array (explicit) template<class T, typename std::enable_if< std::is_same<basic_json, typename T::value_type>::value and - not has_mapped_type<T>::value, int>::type = 0> + not detail::has_mapped_type<T>::value, int>::type = 0> T get_impl(T* /*unused*/) const { if (is_array()) diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-constructor3.cpp index d119625fa..cfe638673 100644 --- a/test/src/unit-constructor3.cpp +++ b/test/src/unit-constructor3.cpp @@ -42,22 +42,12 @@ struct pod_type { short c; }; -inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept -{ - return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); -} - struct bit_more_complex_type { pod_type a; pod_type b; std::string c; }; -inline bool operator==(bit_more_complex_type const &lhs, - bit_more_complex_type const &rhs) noexcept { - return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); -} - // best optional implementation ever template <typename T> class optional_type @@ -68,11 +58,97 @@ public: explicit operator bool() const noexcept { return _val != nullptr; } T const &operator*() const { return *_val; } + optional_type& operator=(T const& t) + { + _val = std::make_shared<T>(t); + return *this; + } private: std::shared_ptr<T> _val; }; +struct no_json_traits_type +{ + int a; +}; + +// free to/from_json functions + +json to_json(empty_type) +{ + return json::object(); +} + +json to_json(pod_type const& p) +{ + return {{"a", p.a}, {"b", p.b}, {"c", p.c}}; +} + +json to_json(bit_more_complex_type const& p) +{ + using nlohmann::to_json; + return json{{"a", to_json(p.a)}, {"b", to_json(p.b)}, {"c", p.c}}; +} + +template <typename T> +json to_json(optional_type<T> const& opt) +{ + using nlohmann::to_json; + if (!opt) + return nullptr; + return to_json(*opt); +} + +json to_json(no_json_traits_type const& p) +{ + json ret; + ret["a"] = p.a; + return ret; +} + +void from_json(json const&j, empty_type& t) +{ + assert(j.empty()); + t = empty_type{}; +} + +void from_json(json const&j, pod_type& t) +{ + t = {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()}; +} + +void from_json(json const&j, bit_more_complex_type& t) +{ + // relying on json_traits struct here.. + t = {j["a"].get<udt::pod_type>(), j["b"].get<udt::pod_type>(), + j["c"].get<std::string>()}; +} + +void from_json(json const& j, no_json_traits_type& t) +{ + t.a = j["a"].get<int>(); +} + +template <typename T> +void from_json(json const& j, optional_type<T>& t) +{ + if (j.is_null()) + t = optional_type<T>{}; + else + t = j.get<T>(); +} + +inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept +{ + return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); +} + +inline bool operator==(bit_more_complex_type const &lhs, + bit_more_complex_type const &rhs) noexcept { + return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); +} + template <typename T> inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs) { @@ -82,6 +158,11 @@ inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs) return false; return *lhs == *rhs; } + +inline bool operator==(no_json_traits_type const& lhs, no_json_traits_type const& rhs) +{ + return lhs.a == rhs.a; +} } namespace nlohmann @@ -163,7 +244,7 @@ TEST_CASE("constructors for user-defined types", "[udt]") { SECTION("empty type") { - udt::empty_type const e; + udt::empty_type const e{}; auto const j = json{e}; auto k = json::object(); CHECK(j == k); @@ -300,3 +381,118 @@ TEST_CASE("get<> for user-defined types", "[udt]") } } } + +TEST_CASE("to_json free function", "[udt]") +{ + SECTION("pod_type") + { + auto const e = udt::pod_type{42, 42, 42}; + auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}}; + + auto const j = nlohmann::to_json(e); + CHECK(j == expected); + } + + SECTION("bit_more_complex_type") + { + auto const e = + udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; + auto const expected = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, + {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, + {"c", "forty"}}; + auto const j = nlohmann::to_json(e); + CHECK(j == expected); + } + + SECTION("optional_type") + { + SECTION("from null") + { + udt::optional_type<udt::pod_type> o; + + json expected; + auto const j = nlohmann::to_json(o); + CHECK(expected == j); + } + + SECTION("from value") + { + udt::optional_type<udt::pod_type> o{{42, 42, 42}}; + + auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}}; + auto const j = nlohmann::to_json(o); + CHECK(expected == j); + } + } + + SECTION("no json_traits specialization") + { + udt::no_json_traits_type t{42}; + + json expected; + expected["a"] = 42; + auto const j = nlohmann::to_json(t); + CHECK(j == expected); + } +} + +TEST_CASE("from_json free function", "[udt]") +{ + SECTION("pod_type") + { + auto const expected = udt::pod_type{42, 42, 42}; + auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}}; + + udt::pod_type p; + nlohmann::from_json(j, p); + CHECK(p == expected); + } + + SECTION("bit_more_complex_type") + { + auto const expected = + udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; + auto const j = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, + {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, + {"c", "forty"}}; + udt::bit_more_complex_type p; + nlohmann::from_json(j, p); + CHECK(p == expected); + } + + SECTION("optional_type") + { + SECTION("from null") + { + udt::optional_type<udt::pod_type> expected; + json j; + udt::optional_type<udt::pod_type> o; + + nlohmann::from_json(j, o); + CHECK(expected == o); + } + + SECTION("from value") + { + udt::optional_type<udt::pod_type> expected{{42, 42, 42}}; + auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}}; + udt::optional_type<udt::pod_type> o; + + nlohmann::from_json(j, o); + CHECK(expected == o); + } + } + + SECTION("no json_traits specialization") + { + udt::no_json_traits_type expected{42}; + udt::no_json_traits_type res; + json j; + j["a"] = 42; + nlohmann::from_json(j, res); + CHECK(res == expected); + + res = j.get<udt::no_json_traits_type>(); + CHECK(res == expected); + } +} From d54d6bb84cc9d0cd74155dc0e10b15a4023f3b7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Tue, 18 Oct 2016 23:45:58 +0200 Subject: [PATCH 025/130] add alias templates to reduce boilerplate --- src/json.hpp | 92 ++++++++++++++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 43 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 3d4994e3f..23709788a 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -117,6 +117,17 @@ namespace nlohmann template <typename T, typename = void> struct json_traits; +// alias templates to reduce boilerplate +template <bool B, typename T = void> +using enable_if_t = typename std::enable_if<B, T>::type; + +template <typename T> +using remove_cv_t = typename std::remove_cv<T>::type; + +template <typename T> +using remove_reference_t = typename std::remove_reference<T>::type; + +// TODO update this doc /*! @brief unnamed namespace with internal helper functions @since version 1.0.0 @@ -1393,15 +1404,11 @@ class basic_json // auto j = json{{"a", json(not_equality_comparable{})}}; // // we can remove this constraint though, since lots of ctor are not explicit already - template < - typename T, - typename = - typename std::enable_if<detail::has_json_traits<typename std::remove_cv< - typename std::remove_reference<T>::type>::type>::value>::type> + template <typename T, typename = enable_if_t<detail::has_json_traits< + remove_cv_t<remove_reference_t<T>>>::value>> explicit basic_json(T &&val) - : basic_json(json_traits<typename std::remove_cv< - typename std::remove_reference<T>::type>::type>:: - to_json(std::forward<T>(val))) {} + : basic_json(json_traits<remove_cv_t<remove_reference_t<T>>>::to_json( + std::forward<T>(val))) {} /*! @brief create a string (explicit) @@ -1418,14 +1425,15 @@ class basic_json @sa @ref basic_json(const typename string_t::value_type*) -- create a string value from a character pointer - @sa @ref basic_json(const CompatibleStringType&) -- create a string - value + @sa @ref basic_json(const CompatibleStringType&) -- create a string value from a compatible string container @since version 1.0.0 */ - basic_json(const string_t &val) : m_type(value_t::string), m_value(val) { - assert_invariant(); + basic_json(const string_t& val) + : m_type(value_t::string), m_value(val) + { + assert_invariant(); } /*! @@ -2763,17 +2771,12 @@ class basic_json // get_impl overload chosen if json_traits struct is specialized for type T // simply returns json_traits<T>::from_json(*this); - // TODO add alias templates (enable_if_t etc) - template < - typename T, - typename = typename std::enable_if< - detail::has_json_traits<typename std::remove_cv< - typename std::remove_reference<T>::type>::type>::value>::type> - auto get_impl(T *) const -> decltype( - json_traits<typename std::remove_cv<typename std::remove_reference< - T>::type>::type>::from_json(std::declval<basic_json>())) { - return json_traits<typename std::remove_cv< - typename std::remove_reference<T>::type>::type>::from_json(*this); + template <typename T, typename = enable_if_t<detail::has_json_traits< + remove_cv_t<remove_reference_t<T>>>::value>> + auto get_impl(T *) const + -> decltype(json_traits<remove_cv_t<remove_reference_t<T>>>::from_json( + std::declval<basic_json>())) { + return json_traits<remove_cv_t<remove_reference_t<T>>>::from_json(*this); } // this one is quite atrocious @@ -2781,31 +2784,34 @@ class basic_json // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use. // But we can of course change this behaviour template <typename T> - auto get_impl(T *) const -> typename std::enable_if< - not detail::has_json_traits<typename std::remove_cv<T>::type>::value, - typename std::remove_cv<typename std::remove_reference< - decltype(::nlohmann::from_json(std::declval<basic_json>(), - std::declval<T &>()), - std::declval<T>())>::type>::type>::type + auto get_impl(T *) const + -> enable_if_t<not detail::has_json_traits<remove_cv_t<T>>::value, + remove_cv_t<remove_reference_t<decltype( + ::nlohmann::from_json(std::declval<basic_json>(), + std::declval<T &>()), + std::declval<T>())>>> { - typename std::remove_cv<typename std::remove_reference<T>::type>::type - ret; + remove_cv_t<T> ret; + // I guess this output parameter is the only way to get ADL + // Even if users can use the get<T> method to have a more 'functional' behaviour + // i.e. having a return type, could there be a way to have the same behaviour with from_json? + // e.g. auto t = nlohmann::from_json<T>(json{}); + // this seems to require variable templates though... (at least it did when I tried to implement it) ::nlohmann::from_json(*this, ret); return ret; } - /// get an object (explicit) - template <class T, - typename std::enable_if< - std::is_convertible<typename object_t::key_type, - typename T::key_type>::value and - std::is_convertible<basic_json_t, - typename T::mapped_type>::value, - int>::type = 0> - T get_impl(T *) const { - if (is_object()) { - return T(m_value.object->begin(), m_value.object->end()); - } else { + template<class T, typename std::enable_if< + std::is_convertible<typename object_t::key_type, typename T::key_type>::value and + std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0> + T get_impl(T*) const + { + if (is_object()) + { + return T(m_value.object->begin(), m_value.object->end()); + } + else + { JSON_THROW(std::domain_error("type must be object, but is " + type_name())); } From 877d96c1d80ad860a6d5c22766cd8682e5cd889d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Thu, 20 Oct 2016 13:45:48 +0200 Subject: [PATCH 026/130] rename __static_const to _static_const (reserved identifier) --- src/json.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 23709788a..68ac29fcc 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -220,18 +220,18 @@ struct DecimalSeparator : std::numpunct<char> // taken from ranges-v3 // TODO add doc template <typename T> -struct __static_const +struct _static_const { static constexpr T value{}; }; template <typename T> -constexpr T __static_const<T>::value; +constexpr T _static_const<T>::value; inline namespace { - constexpr auto const& to_json = __static_const<detail::to_json_fn>::value; - constexpr auto const& from_json = __static_const<detail::from_json_fn>::value; + constexpr auto const& to_json = _static_const<detail::to_json_fn>::value; + constexpr auto const& from_json = _static_const<detail::from_json_fn>::value; } /*! From 12b4555b13678902d39ee9e2c4d18822e9b4455e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Thu, 20 Oct 2016 14:02:31 +0200 Subject: [PATCH 027/130] use uncvref_t<T> instead of remove_cv_t<remove_reference_t<T>>> --- src/json.hpp | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 68ac29fcc..528c92b24 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -127,6 +127,9 @@ using remove_cv_t = typename std::remove_cv<T>::type; template <typename T> using remove_reference_t = typename std::remove_reference<T>::type; +template <typename T> +using uncvref_t = remove_cv_t<remove_reference_t<T>>; + // TODO update this doc /*! @brief unnamed namespace with internal helper functions @@ -1404,11 +1407,12 @@ class basic_json // auto j = json{{"a", json(not_equality_comparable{})}}; // // we can remove this constraint though, since lots of ctor are not explicit already - template <typename T, typename = enable_if_t<detail::has_json_traits< - remove_cv_t<remove_reference_t<T>>>::value>> + template <typename T, typename = enable_if_t< + detail::has_json_traits<uncvref_t<T>>::value>> explicit basic_json(T &&val) - : basic_json(json_traits<remove_cv_t<remove_reference_t<T>>>::to_json( - std::forward<T>(val))) {} + : basic_json(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val))) + { + } /*! @brief create a string (explicit) @@ -2771,12 +2775,12 @@ class basic_json // get_impl overload chosen if json_traits struct is specialized for type T // simply returns json_traits<T>::from_json(*this); - template <typename T, typename = enable_if_t<detail::has_json_traits< - remove_cv_t<remove_reference_t<T>>>::value>> - auto get_impl(T *) const - -> decltype(json_traits<remove_cv_t<remove_reference_t<T>>>::from_json( - std::declval<basic_json>())) { - return json_traits<remove_cv_t<remove_reference_t<T>>>::from_json(*this); + template <typename T, typename = enable_if_t< + detail::has_json_traits<uncvref_t<T>>::value>> + auto get_impl(T *) const -> decltype( + json_traits<uncvref_t<T>>::from_json(std::declval<basic_json>())) + { + return json_traits<uncvref_t<T>>::from_json(*this); } // this one is quite atrocious @@ -2784,12 +2788,11 @@ class basic_json // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use. // But we can of course change this behaviour template <typename T> - auto get_impl(T *) const - -> enable_if_t<not detail::has_json_traits<remove_cv_t<T>>::value, - remove_cv_t<remove_reference_t<decltype( - ::nlohmann::from_json(std::declval<basic_json>(), + auto get_impl(T *) const -> enable_if_t< + not detail::has_json_traits<remove_cv_t<T>>::value, + uncvref_t<decltype(::nlohmann::from_json(std::declval<basic_json>(), std::declval<T &>()), - std::declval<T>())>>> + std::declval<T>())>> { remove_cv_t<T> ret; // I guess this output parameter is the only way to get ADL From 03b391c37bb234c23c2c993057ff4be64efc7883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Thu, 20 Oct 2016 18:02:07 +0200 Subject: [PATCH 028/130] remove has_destructor and has_json_traits, use decltype instead --- src/json.hpp | 45 ++++++++++++--------------------------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 528c92b24..390d4e792 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -161,26 +161,6 @@ struct has_mapped_type std::is_integral<decltype(detect(std::declval<T>()))>::value; }; -// taken from http://stackoverflow.com/questions/10711952/how-to-detect-existence-of-a-class-using-sfinae -// used to determine if json_traits is defined for a given type T -template <typename T> -struct has_destructor -{ - template <typename U> - static std::true_type detect(decltype(std::declval<U>().~U())*); - - template <typename> - static std::false_type detect(...); - - static constexpr bool value = decltype(detect<T>(0))::value; -}; - -template<typename T> -struct has_json_traits -{ - static constexpr bool value = has_destructor<json_traits<T>>::value; -}; - struct to_json_fn { template <typename T> @@ -1407,8 +1387,7 @@ class basic_json // auto j = json{{"a", json(not_equality_comparable{})}}; // // we can remove this constraint though, since lots of ctor are not explicit already - template <typename T, typename = enable_if_t< - detail::has_json_traits<uncvref_t<T>>::value>> + template <typename T, typename = decltype(json_traits<uncvref_t<T>>::to_json(std::declval<uncvref_t<T>>()))> explicit basic_json(T &&val) : basic_json(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val))) { @@ -2775,24 +2754,19 @@ class basic_json // get_impl overload chosen if json_traits struct is specialized for type T // simply returns json_traits<T>::from_json(*this); - template <typename T, typename = enable_if_t< - detail::has_json_traits<uncvref_t<T>>::value>> - auto get_impl(T *) const -> decltype( - json_traits<uncvref_t<T>>::from_json(std::declval<basic_json>())) + // dual argument to avoid conflicting with get_impl overloads taking a pointer + template <typename T> + auto get_impl(int, int) const -> decltype(json_traits<uncvref_t<T>>::from_json(*this)) { return json_traits<uncvref_t<T>>::from_json(*this); } - // this one is quite atrocious // this overload is chosen ONLY if json_traits struct is not specialized, and if the expression nlohmann::from_json(*this, T&) is valid // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use. // But we can of course change this behaviour template <typename T> - auto get_impl(T *) const -> enable_if_t< - not detail::has_json_traits<remove_cv_t<T>>::value, - uncvref_t<decltype(::nlohmann::from_json(std::declval<basic_json>(), - std::declval<T &>()), - std::declval<T>())>> + auto get_impl(long, long) const -> uncvref_t<decltype(::nlohmann::from_json(*this, std::declval<T &>()), + std::declval<T>())> { remove_cv_t<T> ret; // I guess this output parameter is the only way to get ADL @@ -3108,11 +3082,16 @@ class basic_json */ template<typename ValueType, typename std::enable_if< not std::is_pointer<ValueType>::value, int>::type = 0> - ValueType get() const + auto get() const -> decltype(get_impl(static_cast<ValueType*>(nullptr))) { return get_impl(static_cast<ValueType*>(nullptr)); } + template <typename ValueType> + auto get() const -> decltype(get_impl<ValueType>(0, 0)) + { + return get_impl<ValueType>(0, 0); + } /*! @brief get a pointer value (explicit) From 4cdc61e49356533c67227d74fffe39588388b0ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Fri, 21 Oct 2016 16:28:01 +0200 Subject: [PATCH 029/130] move most SFINAE trickery in to/from_json_fn --- src/json.hpp | 126 +++++++++++++++++++++------------ test/src/unit-constructor3.cpp | 68 +++++++++++++++--- 2 files changed, 141 insertions(+), 53 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 390d4e792..8b281d938 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -161,22 +161,70 @@ struct has_mapped_type std::is_integral<decltype(detect(std::declval<T>()))>::value; }; +void to_json(); +void from_json(); + struct to_json_fn { - template <typename T> - constexpr auto operator()(T&& val) const -> decltype(to_json(std::forward<T>(val))) - { - return to_json(std::forward<T>(val)); - } + private: + // fallback overload + template <typename T> + static constexpr auto + impl(T &&val, long) noexcept(noexcept(to_json(std::forward<T>(val)))) + -> decltype(to_json(std::forward<T>(val))) + { + return to_json(std::forward<T>(val)); + } + + // preferred overload + template <typename T> + static constexpr auto impl(T &&val, int) noexcept( + noexcept(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val)))) + -> decltype(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val))) + { + return json_traits<uncvref_t<T>>::to_json(std::forward<T>(val)); + } + + public: + template <typename T> + constexpr auto operator()(T &&val) const + noexcept(noexcept(to_json_fn::impl(std::forward<T>(val), 0))) + -> decltype(to_json_fn::impl(std::forward<T>(val), 0)) + { + // decltype(0) -> int, so the compiler will try to take the 'preferred overload' + // if there is no specialization, the 'fallback overload' will be taken by converting 0 to long + return to_json_fn::impl(std::forward<T>(val), 0); + } }; struct from_json_fn { - template <typename Json, typename T> - constexpr auto operator()(Json const& from, T& to) const -> decltype(from_json(from, to)) - { - return from_json(from, to); - } + private: + template <typename T, typename Json> + static constexpr auto impl(Json const &j, T &val, + long) noexcept(noexcept(from_json(j, val))) + -> decltype(from_json(j, val)) + { + return from_json(j, val); + } + + template <typename T, typename Json> + static constexpr auto + impl(Json const &j, T &val, + int) noexcept(noexcept(json_traits<T>::from_json(j, val))) + -> decltype(json_traits<T>::from_json(j, val)) + { + return json_traits<T>::from_json(j, val); + } + + public: + template <typename T, typename Json> + constexpr auto operator()(Json const &j, T &val) const + noexcept(noexcept(from_json_fn::impl(j, val, 0))) + -> decltype(from_json_fn::impl(j, val, 0)) + { + return from_json_fn::impl(j, val, 0); + } }; /*! @@ -1373,7 +1421,13 @@ class basic_json assert_invariant(); } - // constructor chosen if json_traits is specialized for type T + // constructor chosen for user-defined types that either have: + // - a to_json free function in their type's namespace + // - a json_traits specialization for their type + // + // If there is both a free function and a specialization, the latter will be chosen, + // since it is a more advanced use + // // note: constructor is marked explicit to avoid the following issue: // // struct not_equality_comparable{}; @@ -1383,15 +1437,15 @@ class basic_json // this will construct implicitely 2 json objects and call operator== on them // which can cause nasty bugs on the user's in json-unrelated code // - // the trade-off is expressivety in initializer-lists + // the trade-off is expressiveness in initializer-lists // auto j = json{{"a", json(not_equality_comparable{})}}; // // we can remove this constraint though, since lots of ctor are not explicit already - template <typename T, typename = decltype(json_traits<uncvref_t<T>>::to_json(std::declval<uncvref_t<T>>()))> + template <typename T, typename = decltype(::nlohmann::to_json( + std::declval<uncvref_t<T>>()))> explicit basic_json(T &&val) - : basic_json(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val))) - { - } + : basic_json(::nlohmann::to_json(std::forward<T>(val))) {} + /*! @brief create a string (explicit) @@ -2752,32 +2806,6 @@ class basic_json // value access // ////////////////// - // get_impl overload chosen if json_traits struct is specialized for type T - // simply returns json_traits<T>::from_json(*this); - // dual argument to avoid conflicting with get_impl overloads taking a pointer - template <typename T> - auto get_impl(int, int) const -> decltype(json_traits<uncvref_t<T>>::from_json(*this)) - { - return json_traits<uncvref_t<T>>::from_json(*this); - } - - // this overload is chosen ONLY if json_traits struct is not specialized, and if the expression nlohmann::from_json(*this, T&) is valid - // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use. - // But we can of course change this behaviour - template <typename T> - auto get_impl(long, long) const -> uncvref_t<decltype(::nlohmann::from_json(*this, std::declval<T &>()), - std::declval<T>())> - { - remove_cv_t<T> ret; - // I guess this output parameter is the only way to get ADL - // Even if users can use the get<T> method to have a more 'functional' behaviour - // i.e. having a return type, could there be a way to have the same behaviour with from_json? - // e.g. auto t = nlohmann::from_json<T>(json{}); - // this seems to require variable templates though... (at least it did when I tried to implement it) - ::nlohmann::from_json(*this, ret); - return ret; - } - template<class T, typename std::enable_if< std::is_convertible<typename object_t::key_type, typename T::key_type>::value and std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0> @@ -3082,16 +3110,24 @@ class basic_json */ template<typename ValueType, typename std::enable_if< not std::is_pointer<ValueType>::value, int>::type = 0> - auto get() const -> decltype(get_impl(static_cast<ValueType*>(nullptr))) + auto get() const -> decltype(this->get_impl(static_cast<ValueType*>(nullptr))) { return get_impl(static_cast<ValueType*>(nullptr)); } template <typename ValueType> - auto get() const -> decltype(get_impl<ValueType>(0, 0)) + auto get() const -> remove_reference_t< + decltype(::nlohmann::from_json(*this, std::declval<ValueType &>()), + std::declval<ValueType>())> { - return get_impl<ValueType>(0, 0); + static_assert(std::is_default_constructible<ValueType>::value, + "ValueType must be default-constructible when user-defined " + "from_json method is used"); + ValueType ret; + ::nlohmann::from_json(*this, ret); + return ret; } + /*! @brief get a pointer value (explicit) diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-constructor3.cpp index cfe638673..de52762f6 100644 --- a/test/src/unit-constructor3.cpp +++ b/test/src/unit-constructor3.cpp @@ -35,6 +35,9 @@ using nlohmann::json; namespace udt { +// only used by counter_type +auto nb_free_function_calls = 0; + struct empty_type {}; struct pod_type { int a; @@ -48,6 +51,10 @@ struct bit_more_complex_type { std::string c; }; +struct counter_type +{ +}; + // best optional implementation ever template <typename T> class optional_type @@ -97,14 +104,18 @@ json to_json(optional_type<T> const& opt) using nlohmann::to_json; if (!opt) return nullptr; - return to_json(*opt); + return json(*opt); } json to_json(no_json_traits_type const& p) { - json ret; - ret["a"] = p.a; - return ret; + return {{"a", p.a}}; +} + +json to_json(counter_type) +{ + ++nb_free_function_calls; + return json::object(); } void from_json(json const&j, empty_type& t) @@ -139,6 +150,11 @@ void from_json(json const& j, optional_type<T>& t) t = j.get<T>(); } +void from_json(json const&, counter_type&) +{ + ++nb_free_function_calls; +} + inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept { return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); @@ -176,7 +192,7 @@ struct json_traits<udt::empty_type> { return json::object(); } - + static type from_json(json const& j) { assert(j.is_object() and j.empty()); @@ -193,7 +209,7 @@ struct json_traits<udt::pod_type> { return {{"a", t.a}, {"b", t.b}, {"c", t.c}}; } - + static type from_json(json const& j) { assert(j.is_object()); @@ -237,6 +253,25 @@ struct json_traits<udt::optional_type<T>> return type{j.get<T>()}; } }; + +template <> +struct json_traits<udt::counter_type> +{ + using type = udt::counter_type; + static int nb_calls; + + static json to_json(type) + { + ++nb_calls; + return json::object(); + } + + static void from_json(json const&, type&) + { + ++nb_calls; + } +}; +int json_traits<udt::counter_type>::nb_calls{0}; } @@ -380,6 +415,24 @@ TEST_CASE("get<> for user-defined types", "[udt]") CHECK(*v == expected); } } + + SECTION("no json_traits specialization, use of ADL") + { + udt::no_json_traits_type val{42}; + auto const expected = json{{"a", 42}}; + auto const j = json(val); + CHECK(j == expected); + } + + SECTION("counter_type") + { + // check that the traits specialization is chosen + auto const j = json{udt::counter_type{}}; + CHECK(nlohmann::json_traits<udt::counter_type>::nb_calls == 1); + auto const elem = j.get<udt::counter_type>(); + CHECK(nlohmann::json_traits<udt::counter_type>::nb_calls == 2); + CHECK(udt::nb_free_function_calls == 0); + } } TEST_CASE("to_json free function", "[udt]") @@ -487,8 +540,7 @@ TEST_CASE("from_json free function", "[udt]") { udt::no_json_traits_type expected{42}; udt::no_json_traits_type res; - json j; - j["a"] = 42; + auto const j = json{{"a", 42}}; nlohmann::from_json(j, res); CHECK(res == expected); From 7dc268ef420124c741171538b362b954f4b00296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Mon, 7 Nov 2016 23:24:54 +0100 Subject: [PATCH 030/130] add first version for alternate implementation --- src/json.hpp | 131 ++++++++----------------- test/src/unit-constructor3.cpp | 172 --------------------------------- 2 files changed, 41 insertions(+), 262 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 8b281d938..8dc9b383d 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -106,17 +106,6 @@ SOFTWARE. */ namespace nlohmann { -// TODO add real documentation before PR - -// Traits structure declaration, users can specialize it for their own types -// -// constructing a json object from a user-defined type will call the -// 'json to_json(T)' function -// -// whereas calling json::get<T> will call 'T from_json(json const&)' -template <typename T, typename = void> -struct json_traits; - // alias templates to reduce boilerplate template <bool B, typename T = void> using enable_if_t = typename std::enable_if<B, T>::type; @@ -166,64 +155,24 @@ void from_json(); struct to_json_fn { - private: - // fallback overload template <typename T> - static constexpr auto - impl(T &&val, long) noexcept(noexcept(to_json(std::forward<T>(val)))) + constexpr auto + operator()(T &&val) const noexcept(noexcept(to_json(std::forward<T>(val)))) -> decltype(to_json(std::forward<T>(val))) { return to_json(std::forward<T>(val)); } - // preferred overload - template <typename T> - static constexpr auto impl(T &&val, int) noexcept( - noexcept(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val)))) - -> decltype(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val))) - { - return json_traits<uncvref_t<T>>::to_json(std::forward<T>(val)); - } - - public: - template <typename T> - constexpr auto operator()(T &&val) const - noexcept(noexcept(to_json_fn::impl(std::forward<T>(val), 0))) - -> decltype(to_json_fn::impl(std::forward<T>(val), 0)) - { - // decltype(0) -> int, so the compiler will try to take the 'preferred overload' - // if there is no specialization, the 'fallback overload' will be taken by converting 0 to long - return to_json_fn::impl(std::forward<T>(val), 0); - } }; struct from_json_fn { - private: template <typename T, typename Json> - static constexpr auto impl(Json const &j, T &val, - long) noexcept(noexcept(from_json(j, val))) - -> decltype(from_json(j, val)) + constexpr auto operator()(Json &&j, T &val) const + noexcept(noexcept(from_json(std::forward<Json>(j), val))) + -> decltype(from_json(std::forward<Json>(j), val)) { - return from_json(j, val); - } - - template <typename T, typename Json> - static constexpr auto - impl(Json const &j, T &val, - int) noexcept(noexcept(json_traits<T>::from_json(j, val))) - -> decltype(json_traits<T>::from_json(j, val)) - { - return json_traits<T>::from_json(j, val); - } - - public: - template <typename T, typename Json> - constexpr auto operator()(Json const &j, T &val) const - noexcept(noexcept(from_json_fn::impl(j, val, 0))) - -> decltype(from_json_fn::impl(j, val, 0)) - { - return from_json_fn::impl(j, val, 0); + return from_json(std::forward<Json>(j), val); } }; @@ -265,6 +214,32 @@ inline namespace constexpr auto const& from_json = _static_const<detail::from_json_fn>::value; } +// default JSONSerializer template argument +// will use ADL for serialization +struct adl_serializer +{ + template <typename T, typename Json, typename = enable_if_t<std::is_default_constructible<uncvref_t<T>>::value>> + static auto from_json(Json&& j) -> uncvref_t<decltype(::nlohmann::from_json(std::forward<Json>(j), std::declval<T&>()), std::declval<T>())> + { + uncvref_t<T> ret; + ::nlohmann::from_json(std::forward<Json>(j), ret); + return ret; + } + + template <typename T, typename Json> + static auto from_json(Json&& j, T& val) -> decltype(::nlohmann::from_json(std::forward<Json>(j), val)) + { + ::nlohmann::from_json(std::forward<Json>(j), val); + } + + template <typename T> + static auto to_json(T&& val) -> decltype(::nlohmann::to_json(std::forward<T>(val))) + { + return ::nlohmann::to_json(std::forward<T>(val)); + } +}; + + /*! @brief a class to store JSON values @@ -352,7 +327,8 @@ template < class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, - template<typename U> class AllocatorType = std::allocator + template<typename U> class AllocatorType = std::allocator, + class JSONSerializer = adl_serializer > class basic_json { @@ -1421,30 +1397,10 @@ class basic_json assert_invariant(); } - // constructor chosen for user-defined types that either have: - // - a to_json free function in their type's namespace - // - a json_traits specialization for their type - // - // If there is both a free function and a specialization, the latter will be chosen, - // since it is a more advanced use - // - // note: constructor is marked explicit to avoid the following issue: - // - // struct not_equality_comparable{}; - // - // not_equality_comparable{} == not_equality_comparable{}; - // - // this will construct implicitely 2 json objects and call operator== on them - // which can cause nasty bugs on the user's in json-unrelated code - // - // the trade-off is expressiveness in initializer-lists - // auto j = json{{"a", json(not_equality_comparable{})}}; - // - // we can remove this constraint though, since lots of ctor are not explicit already - template <typename T, typename = decltype(::nlohmann::to_json( - std::declval<uncvref_t<T>>()))> + // constructor chosen when JSONSerializer::to_json exists for type T + template <typename T, typename = decltype(JSONSerializer::to_json(std::declval<uncvref_t<T>>()))> explicit basic_json(T &&val) - : basic_json(::nlohmann::to_json(std::forward<T>(val))) {} + : basic_json(JSONSerializer::to_json(std::forward<T>(val))) {} /*! @brief create a string (explicit) @@ -3115,16 +3071,11 @@ class basic_json return get_impl(static_cast<ValueType*>(nullptr)); } - template <typename ValueType> - auto get() const -> remove_reference_t< - decltype(::nlohmann::from_json(*this, std::declval<ValueType &>()), - std::declval<ValueType>())> + template <typename ValueType, typename = enable_if_t<std::is_default_constructible<uncvref_t<ValueType>>::value, float>> + auto get() const -> remove_reference_t<decltype(JSONSerializer::from_json(*this, std::declval<ValueType&>()), std::declval<ValueType>())> { - static_assert(std::is_default_constructible<ValueType>::value, - "ValueType must be default-constructible when user-defined " - "from_json method is used"); - ValueType ret; - ::nlohmann::from_json(*this, ret); + uncvref_t<ValueType> ret; + JSONSerializer::from_json(*this, ret); return ret; } diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-constructor3.cpp index de52762f6..77b31c6ac 100644 --- a/test/src/unit-constructor3.cpp +++ b/test/src/unit-constructor3.cpp @@ -35,9 +35,6 @@ using nlohmann::json; namespace udt { -// only used by counter_type -auto nb_free_function_calls = 0; - struct empty_type {}; struct pod_type { int a; @@ -51,10 +48,6 @@ struct bit_more_complex_type { std::string c; }; -struct counter_type -{ -}; - // best optional implementation ever template <typename T> class optional_type @@ -75,11 +68,6 @@ private: std::shared_ptr<T> _val; }; -struct no_json_traits_type -{ - int a; -}; - // free to/from_json functions json to_json(empty_type) @@ -107,17 +95,6 @@ json to_json(optional_type<T> const& opt) return json(*opt); } -json to_json(no_json_traits_type const& p) -{ - return {{"a", p.a}}; -} - -json to_json(counter_type) -{ - ++nb_free_function_calls; - return json::object(); -} - void from_json(json const&j, empty_type& t) { assert(j.empty()); @@ -136,11 +113,6 @@ void from_json(json const&j, bit_more_complex_type& t) j["c"].get<std::string>()}; } -void from_json(json const& j, no_json_traits_type& t) -{ - t.a = j["a"].get<int>(); -} - template <typename T> void from_json(json const& j, optional_type<T>& t) { @@ -150,11 +122,6 @@ void from_json(json const& j, optional_type<T>& t) t = j.get<T>(); } -void from_json(json const&, counter_type&) -{ - ++nb_free_function_calls; -} - inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept { return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); @@ -174,106 +141,7 @@ inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs) return false; return *lhs == *rhs; } - -inline bool operator==(no_json_traits_type const& lhs, no_json_traits_type const& rhs) -{ - return lhs.a == rhs.a; } -} - -namespace nlohmann -{ -template <> -struct json_traits<udt::empty_type> -{ - using type = udt::empty_type; - - static json to_json(type) - { - return json::object(); - } - - static type from_json(json const& j) - { - assert(j.is_object() and j.empty()); - return {}; - } -}; - -template <> -struct json_traits<udt::pod_type> -{ - using type = udt::pod_type; - - static json to_json(type const& t) - { - return {{"a", t.a}, {"b", t.b}, {"c", t.c}}; - } - - static type from_json(json const& j) - { - assert(j.is_object()); - return {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()}; - } -}; - -template <> -struct json_traits<udt::bit_more_complex_type> -{ - using type = udt::bit_more_complex_type; - - static json to_json(type const& t) - { - return json{{"a", json{t.a}}, {"b", json{t.b}}, {"c", t.c}}; - } - - static type from_json(json const& j) - { - return {j["a"].get<udt::pod_type>(), j["b"].get<udt::pod_type>(), - j["c"].get<std::string>()}; - } -}; - -template <typename T> -struct json_traits<udt::optional_type<T>> -{ - using type = udt::optional_type<T>; - - static json to_json(type const& t) - { - if (t) - return json(*t); - return {}; - } - - static type from_json(json const& j) - { - if (j.is_null()) - return {}; - return type{j.get<T>()}; - } -}; - -template <> -struct json_traits<udt::counter_type> -{ - using type = udt::counter_type; - static int nb_calls; - - static json to_json(type) - { - ++nb_calls; - return json::object(); - } - - static void from_json(json const&, type&) - { - ++nb_calls; - } -}; -int json_traits<udt::counter_type>::nb_calls{0}; -} - TEST_CASE("constructors for user-defined types", "[udt]") { @@ -415,24 +283,6 @@ TEST_CASE("get<> for user-defined types", "[udt]") CHECK(*v == expected); } } - - SECTION("no json_traits specialization, use of ADL") - { - udt::no_json_traits_type val{42}; - auto const expected = json{{"a", 42}}; - auto const j = json(val); - CHECK(j == expected); - } - - SECTION("counter_type") - { - // check that the traits specialization is chosen - auto const j = json{udt::counter_type{}}; - CHECK(nlohmann::json_traits<udt::counter_type>::nb_calls == 1); - auto const elem = j.get<udt::counter_type>(); - CHECK(nlohmann::json_traits<udt::counter_type>::nb_calls == 2); - CHECK(udt::nb_free_function_calls == 0); - } } TEST_CASE("to_json free function", "[udt]") @@ -477,16 +327,6 @@ TEST_CASE("to_json free function", "[udt]") CHECK(expected == j); } } - - SECTION("no json_traits specialization") - { - udt::no_json_traits_type t{42}; - - json expected; - expected["a"] = 42; - auto const j = nlohmann::to_json(t); - CHECK(j == expected); - } } TEST_CASE("from_json free function", "[udt]") @@ -535,16 +375,4 @@ TEST_CASE("from_json free function", "[udt]") CHECK(expected == o); } } - - SECTION("no json_traits specialization") - { - udt::no_json_traits_type expected{42}; - udt::no_json_traits_type res; - auto const j = json{{"a", 42}}; - nlohmann::from_json(j, res); - CHECK(res == expected); - - res = j.get<udt::no_json_traits_type>(); - CHECK(res == expected); - } } From 33abccf8476cb6e4f330a3728ffd61fe24e5fb39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Tue, 8 Nov 2016 13:16:14 +0100 Subject: [PATCH 031/130] add template arguments for JSONSerializer --- src/json.hpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 8dc9b383d..bd59e83b6 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -214,8 +214,9 @@ inline namespace constexpr auto const& from_json = _static_const<detail::from_json_fn>::value; } -// default JSONSerializer template argument +// default JSONSerializer template argument, doesn't care about template argument // will use ADL for serialization +template <typename = void, typename = void> struct adl_serializer { template <typename T, typename Json, typename = enable_if_t<std::is_default_constructible<uncvref_t<T>>::value>> @@ -328,7 +329,7 @@ template < class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template<typename U> class AllocatorType = std::allocator, - class JSONSerializer = adl_serializer + template<typename T, typename SFINAE = void> class JSONSerializer = adl_serializer > class basic_json { @@ -1398,9 +1399,9 @@ class basic_json } // constructor chosen when JSONSerializer::to_json exists for type T - template <typename T, typename = decltype(JSONSerializer::to_json(std::declval<uncvref_t<T>>()))> + template <typename T, typename = decltype(JSONSerializer<uncvref_t<T>>::to_json(std::declval<uncvref_t<T>>()))> explicit basic_json(T &&val) - : basic_json(JSONSerializer::to_json(std::forward<T>(val))) {} + : basic_json(JSONSerializer<uncvref_t<T>>::to_json(std::forward<T>(val))) {} /*! @brief create a string (explicit) @@ -3072,10 +3073,10 @@ class basic_json } template <typename ValueType, typename = enable_if_t<std::is_default_constructible<uncvref_t<ValueType>>::value, float>> - auto get() const -> remove_reference_t<decltype(JSONSerializer::from_json(*this, std::declval<ValueType&>()), std::declval<ValueType>())> + auto get() const -> remove_reference_t<decltype(JSONSerializer<uncvref_t<ValueType>>::from_json(*this, std::declval<ValueType&>()), std::declval<ValueType>())> { uncvref_t<ValueType> ret; - JSONSerializer::from_json(*this, ret); + JSONSerializer<uncvref_t<ValueType>>::from_json(*this, ret); return ret; } From 837b81d6722da33c83b60668eb2ce3ae74a2b9c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Tue, 8 Nov 2016 13:17:16 +0100 Subject: [PATCH 032/130] renamed unit-constructor3.cpp to unit-udt.cpp --- test/CMakeLists.txt | 2 +- test/src/{unit-constructor3.cpp => unit-udt.cpp} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename test/src/{unit-constructor3.cpp => unit-udt.cpp} (100%) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8279b157e..a988f47be 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -15,7 +15,6 @@ add_executable(${JSON_UNITTEST_TARGET_NAME} "src/unit-concepts.cpp" "src/unit-constructor1.cpp" "src/unit-constructor2.cpp" - "src/unit-constructor3.cpp" "src/unit-convenience.cpp" "src/unit-conversions.cpp" "src/unit-deserialization.cpp" @@ -36,6 +35,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME} "src/unit-regression.cpp" "src/unit-serialization.cpp" "src/unit-testsuites.cpp" + "src/unit-udt.cpp" "src/unit-unicode.cpp" ) diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-udt.cpp similarity index 100% rename from test/src/unit-constructor3.cpp rename to test/src/unit-udt.cpp From 2bc685f6b4ae2f53d80eaf526a073244c060a80b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Wed, 9 Nov 2016 23:55:03 +0100 Subject: [PATCH 033/130] to_json and from_json takes both two arguments now the first is the basic_json type, the second the user-defined type --- src/json.hpp | 49 +++++++++++++++++++------------------------ test/src/unit-udt.cpp | 35 +++++++++++++++++-------------- 2 files changed, 41 insertions(+), 43 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index bd59e83b6..4f4710707 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -155,22 +155,21 @@ void from_json(); struct to_json_fn { - template <typename T> + template <typename Json, typename T> constexpr auto - operator()(T &&val) const noexcept(noexcept(to_json(std::forward<T>(val)))) - -> decltype(to_json(std::forward<T>(val))) + operator()(Json&& j, T &&val) const noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) + -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), void()) { - return to_json(std::forward<T>(val)); + return to_json(std::forward<Json>(j), std::forward<T>(val)); } - }; struct from_json_fn { - template <typename T, typename Json> + template <typename Json, typename T> constexpr auto operator()(Json &&j, T &val) const noexcept(noexcept(from_json(std::forward<Json>(j), val))) - -> decltype(from_json(std::forward<Json>(j), val)) + -> decltype(from_json(std::forward<Json>(j), val), void()) { return from_json(std::forward<Json>(j), val); } @@ -219,28 +218,19 @@ inline namespace template <typename = void, typename = void> struct adl_serializer { - template <typename T, typename Json, typename = enable_if_t<std::is_default_constructible<uncvref_t<T>>::value>> - static auto from_json(Json&& j) -> uncvref_t<decltype(::nlohmann::from_json(std::forward<Json>(j), std::declval<T&>()), std::declval<T>())> - { - uncvref_t<T> ret; - ::nlohmann::from_json(std::forward<Json>(j), ret); - return ret; - } - - template <typename T, typename Json> - static auto from_json(Json&& j, T& val) -> decltype(::nlohmann::from_json(std::forward<Json>(j), val)) + template <typename Json, typename T> + static auto from_json(Json&& j, T& val) -> decltype(::nlohmann::from_json(std::forward<Json>(j), val), void()) { ::nlohmann::from_json(std::forward<Json>(j), val); } - template <typename T> - static auto to_json(T&& val) -> decltype(::nlohmann::to_json(std::forward<T>(val))) + template <typename Json, typename T> + static auto to_json(Json& j, T&& val) -> decltype(::nlohmann::to_json(j, std::forward<T>(val)), void()) { - return ::nlohmann::to_json(std::forward<T>(val)); + ::nlohmann::to_json(j, std::forward<T>(val)); } }; - /*! @brief a class to store JSON values @@ -1399,9 +1389,11 @@ class basic_json } // constructor chosen when JSONSerializer::to_json exists for type T - template <typename T, typename = decltype(JSONSerializer<uncvref_t<T>>::to_json(std::declval<uncvref_t<T>>()))> + template <typename T, typename = decltype(JSONSerializer<uncvref_t<T>>::to_json(std::declval<basic_json&>(), std::declval<uncvref_t<T>>()))> explicit basic_json(T &&val) - : basic_json(JSONSerializer<uncvref_t<T>>::to_json(std::forward<T>(val))) {} + { + JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); + } /*! @brief create a string (explicit) @@ -3072,11 +3064,14 @@ class basic_json return get_impl(static_cast<ValueType*>(nullptr)); } - template <typename ValueType, typename = enable_if_t<std::is_default_constructible<uncvref_t<ValueType>>::value, float>> - auto get() const -> remove_reference_t<decltype(JSONSerializer<uncvref_t<ValueType>>::from_json(*this, std::declval<ValueType&>()), std::declval<ValueType>())> + template <typename ValueType, typename = decltype(JSONSerializer<uncvref_t<ValueType>>::from_json(std::declval<basic_json>(), std::declval<ValueType&>()))> + auto get() const -> uncvref_t<ValueType> { - uncvref_t<ValueType> ret; - JSONSerializer<uncvref_t<ValueType>>::from_json(*this, ret); + using type = uncvref_t<ValueType>; + static_assert(std::is_default_constructible<type>::value && std::is_copy_constructible<type>::value, + "user-defined types must be DefaultConstructible and CopyConstructible when used with get"); + type ret; + JSONSerializer<type>::from_json(*this, ret); return ret; } diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 77b31c6ac..17494a45c 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -70,32 +70,31 @@ private: // free to/from_json functions -json to_json(empty_type) +void to_json(json& j, empty_type) { - return json::object(); + j = json::object(); } -json to_json(pod_type const& p) +void to_json(json& j, pod_type const& p) { - return {{"a", p.a}, {"b", p.b}, {"c", p.c}}; + j = json{{"a", p.a}, {"b", p.b}, {"c", p.c}}; } -json to_json(bit_more_complex_type const& p) +void to_json(json& j, bit_more_complex_type const& p) { - using nlohmann::to_json; - return json{{"a", to_json(p.a)}, {"b", to_json(p.b)}, {"c", p.c}}; + j = json{{"a", json(p.a)}, {"b", json(p.b)}, {"c", p.c}}; } template <typename T> -json to_json(optional_type<T> const& opt) +void to_json(json& j, optional_type<T> const& opt) { - using nlohmann::to_json; if (!opt) - return nullptr; - return json(*opt); + j = nullptr; + else + j = json(*opt); } -void from_json(json const&j, empty_type& t) +void from_json(json const& j, empty_type& t) { assert(j.empty()); t = empty_type{}; @@ -292,7 +291,8 @@ TEST_CASE("to_json free function", "[udt]") auto const e = udt::pod_type{42, 42, 42}; auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}}; - auto const j = nlohmann::to_json(e); + json j; + nlohmann::to_json(j, e); CHECK(j == expected); } @@ -303,7 +303,8 @@ TEST_CASE("to_json free function", "[udt]") auto const expected = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, {"c", "forty"}}; - auto const j = nlohmann::to_json(e); + json j; + nlohmann::to_json(j, e); CHECK(j == expected); } @@ -314,7 +315,8 @@ TEST_CASE("to_json free function", "[udt]") udt::optional_type<udt::pod_type> o; json expected; - auto const j = nlohmann::to_json(o); + json j; + nlohmann::to_json(j, o); CHECK(expected == j); } @@ -323,7 +325,8 @@ TEST_CASE("to_json free function", "[udt]") udt::optional_type<udt::pod_type> o{{42, 42, 42}}; auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}}; - auto const j = nlohmann::to_json(o); + json j; + nlohmann::to_json(j, o); CHECK(expected == j); } } From 178441cdfd12a8b7f4c49778259470bd40d4f32a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Tue, 15 Nov 2016 14:22:12 +0100 Subject: [PATCH 034/130] add basic test for custom serializer --- src/json.hpp | 62 +++++++++++++++++++++++++++++++++++-------- test/src/unit-udt.cpp | 56 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 11 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 4f4710707..d8f337599 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -150,6 +150,38 @@ struct has_mapped_type std::is_integral<decltype(detect(std::declval<T>()))>::value; }; +template <template <typename, typename> class JSONSerializer, typename Json, + typename T> +struct has_from_json +{ +private: + template <typename U, typename = decltype(uncvref_t<U>::from_json( + std::declval<Json>(), std::declval<T &>()))> + static int detect(U &&); + + static void detect(...); + +public: + static constexpr bool value = std::is_integral<decltype( + detect(std::declval<JSONSerializer<T, void>>()))>::value; +}; + +template <template <typename, typename> class JSONSerializer, typename Json, + typename T> +struct has_to_json +{ +private: + template <typename U, typename = decltype(uncvref_t<U>::to_json( + std::declval<Json &>(), std::declval<T>()))> + static int detect(U &&); + + static void detect(...); + +public: + static constexpr bool value = std::is_integral<decltype( + detect(std::declval<JSONSerializer<T, void>>()))>::value; +}; + void to_json(); void from_json(); @@ -1389,7 +1421,8 @@ class basic_json } // constructor chosen when JSONSerializer::to_json exists for type T - template <typename T, typename = decltype(JSONSerializer<uncvref_t<T>>::to_json(std::declval<basic_json&>(), std::declval<uncvref_t<T>>()))> + template <typename T, typename = typename std::enable_if<detail::has_to_json< + JSONSerializer, basic_json, uncvref_t<T>>::value>::type> explicit basic_json(T &&val) { JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); @@ -3057,19 +3090,26 @@ class basic_json @since version 1.0.0 */ - template<typename ValueType, typename std::enable_if< - not std::is_pointer<ValueType>::value, int>::type = 0> - auto get() const -> decltype(this->get_impl(static_cast<ValueType*>(nullptr))) - { - return get_impl(static_cast<ValueType*>(nullptr)); + template <typename ValueType, + typename std::enable_if< + not std::is_pointer<ValueType>::value and + not detail::has_from_json<JSONSerializer, basic_json, + uncvref_t<ValueType>>::value, + int>::type = 0> + auto get() const + -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) { + return get_impl(static_cast<ValueType *>(nullptr)); } - template <typename ValueType, typename = decltype(JSONSerializer<uncvref_t<ValueType>>::from_json(std::declval<basic_json>(), std::declval<ValueType&>()))> - auto get() const -> uncvref_t<ValueType> - { + template <typename ValueType, + typename = enable_if_t<detail::has_from_json< + JSONSerializer, basic_json, uncvref_t<ValueType>>::value>> + auto get() const -> uncvref_t<ValueType> { using type = uncvref_t<ValueType>; - static_assert(std::is_default_constructible<type>::value && std::is_copy_constructible<type>::value, - "user-defined types must be DefaultConstructible and CopyConstructible when used with get"); + static_assert(std::is_default_constructible<type>::value && + std::is_copy_constructible<type>::value, + "user-defined types must be DefaultConstructible and " + "CopyConstructible when used with get"); type ret; JSONSerializer<type>::from_json(*this, ret); return ret; diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 17494a45c..dc35019ca 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -379,3 +379,59 @@ TEST_CASE("from_json free function", "[udt]") } } } + +// custom serializer, uses adl by default +template <typename T, typename = void> +struct my_serializer; + +template<> +struct my_serializer<udt::pod_type> +{ + template <typename Json> + static void from_json(Json const& j, udt::pod_type& val) + { + nlohmann::from_json(j, val); + } + + template <typename Json> + static void to_json(Json& j, udt::pod_type const& val) + { + nlohmann::to_json(j, val); + } +}; + +using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, + std::int64_t, std::uint64_t, double, + std::allocator, my_serializer>; + +namespace udt +{ + void to_json(my_json& j, pod_type const& val) + { + j = my_json{{"a", val.a}, {"b", val.b}, {"c", val.c}}; + } + + void from_json(my_json const& j, pod_type& val) + { + val = {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()}; + } +} + +TEST_CASE("custom serializer") +{ + + + SECTION("default use works like default serializer") + { + udt::pod_type pod{1, 2, 3}; + auto const j = my_json{pod}; + + auto const j2 = json{pod}; + CHECK(j.dump() == j2.dump()); + + auto const pod2 = j.get<udt::pod_type>(); + auto const pod3 = j2.get<udt::pod_type>(); + CHECK(pod2 == pod3); + CHECK(pod2 == pod); + } +} From 23bd2bce358230ea4d52aca35bbe328692256e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Wed, 16 Nov 2016 20:49:24 +0100 Subject: [PATCH 035/130] add is_compatible_* traits --- src/json.hpp | 124 ++++++++++++++++++++++++++++++++++-------- test/src/unit-udt.cpp | 16 ++---- 2 files changed, 106 insertions(+), 34 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index d8f337599..703a1e023 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -150,6 +150,96 @@ struct has_mapped_type std::is_integral<decltype(detect(std::declval<T>()))>::value; }; +template<typename T> +struct has_key_type +{ + private: + template <typename U, typename = typename U::key_type> + static int detect(U&&); + + static void detect(...); + public: + static constexpr bool value = + std::is_integral<decltype(detect(std::declval<T>()))>::value; +}; + +template<typename T> +struct has_value_type +{ + private: + template <typename U, typename = typename U::value_type> + static int detect(U&&); + + static void detect(...); + public: + static constexpr bool value = + std::is_integral<decltype(detect(std::declval<T>()))>::value; +}; + +template <bool B, class RealType, class CompatibleObjectType> +struct is_compatible_object_type_impl : std::false_type{}; + +template <class RealType, class CompatibleObjectType> +struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> +{ + static constexpr auto value = + std::is_constructible<typename RealType::key_type, typename CompatibleObjectType::key_type>::value and + std::is_constructible<typename RealType::mapped_type, typename CompatibleObjectType::mapped_type>::value; +}; + +template<class RealType, class CompatibleObjectType, typename = enable_if_t<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value>> +struct is_compatible_object_type +{ + static auto constexpr value = is_compatible_object_type_impl<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value, RealType, CompatibleObjectType>::value; +}; + +template <bool B, class BasicJson, class CompatibleArrayType> +struct is_compatible_array_type_impl : std::false_type{}; + +template <class BasicJson, class CompatibleArrayType> +struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> +{ + static constexpr auto value = + not std::is_same<CompatibleArrayType, typename BasicJson::iterator>::value and + not std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>::value and + not std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>::value and + not std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>::value and + not std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>::value and + not std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>::value and + std::is_constructible<BasicJson, typename CompatibleArrayType::value_type>::value; + +}; + +template <class BasicJson, class CompatibleArrayType> +struct is_compatible_array_type +{ + static auto constexpr value = is_compatible_array_type_impl<has_value_type<CompatibleArrayType>::value, BasicJson, CompatibleArrayType>::value; +}; + +template <typename RealIntegerType, typename CompatibleNumberIntegerType> +struct is_compatible_integer_type +{ + static constexpr auto value = + std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value and + std::numeric_limits<CompatibleNumberIntegerType>::is_integer and + std::numeric_limits<CompatibleNumberIntegerType>::is_signed; +}; + +template <typename RealInteger, typename CompatibleNumberUnsignedType> +struct is_compatible_unsigned_integer_type +{ + static constexpr auto value = std::is_constructible<RealInteger, CompatibleNumberUnsignedType>::value and + std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and + not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed; +}; + +template <typename RealFloat, typename CompatibleFloat> +struct is_compatible_float_type +{ + static constexpr auto value = std::is_constructible<RealFloat, CompatibleFloat>::value and + std::is_floating_point<CompatibleFloat>::value; +}; + template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_from_json @@ -361,6 +451,11 @@ class basic_json BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType>; + template <template <typename...> class T> + struct wrapper{}; + + using supported_tpl_types = std::tuple<wrapper<ObjectType>, wrapper<ArrayType>, wrapper<AllocatorType>, wrapper<JSONSerializer>>; + public: // forward declarations template<typename U> class iter_impl; @@ -1340,9 +1435,7 @@ class basic_json @since version 1.0.0 */ - template<class CompatibleObjectType, typename std::enable_if< - std::is_constructible<typename object_t::key_type, typename CompatibleObjectType::key_type>::value and - std::is_constructible<basic_json, typename CompatibleObjectType::mapped_type>::value, int>::type = 0> + template<class CompatibleObjectType, enable_if_t<detail::is_compatible_object_type<object_t, CompatibleObjectType>::value, int> = 0> basic_json(const CompatibleObjectType& val) : m_type(value_t::object) { @@ -1403,14 +1496,7 @@ class basic_json @since version 1.0.0 */ - template<class CompatibleArrayType, typename std::enable_if< - not std::is_same<CompatibleArrayType, typename basic_json_t::iterator>::value and - not std::is_same<CompatibleArrayType, typename basic_json_t::const_iterator>::value and - not std::is_same<CompatibleArrayType, typename basic_json_t::reverse_iterator>::value and - not std::is_same<CompatibleArrayType, typename basic_json_t::const_reverse_iterator>::value and - not std::is_same<CompatibleArrayType, typename array_t::iterator>::value and - not std::is_same<CompatibleArrayType, typename array_t::const_iterator>::value and - std::is_constructible<basic_json, typename CompatibleArrayType::value_type>::value, int>::type = 0> + template<class CompatibleArrayType, enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value, int> = 0> basic_json(const CompatibleArrayType& val) : m_type(value_t::array) { @@ -1621,11 +1707,7 @@ class basic_json @since version 1.0.0 */ - template<typename CompatibleNumberIntegerType, typename std::enable_if< - std::is_constructible<number_integer_t, CompatibleNumberIntegerType>::value and - std::numeric_limits<CompatibleNumberIntegerType>::is_integer and - std::numeric_limits<CompatibleNumberIntegerType>::is_signed, - CompatibleNumberIntegerType>::type = 0> + template<typename CompatibleNumberIntegerType, enable_if_t<detail::is_compatible_integer_type<number_integer_t, CompatibleNumberIntegerType>::value, int> = 0> basic_json(const CompatibleNumberIntegerType val) noexcept : m_type(value_t::number_integer), m_value(static_cast<number_integer_t>(val)) @@ -1679,11 +1761,7 @@ class basic_json @since version 2.0.0 */ - template<typename CompatibleNumberUnsignedType, typename std::enable_if < - std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and - std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and - not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed, - CompatibleNumberUnsignedType>::type = 0> + template<typename CompatibleNumberUnsignedType, enable_if_t<detail::is_compatible_unsigned_integer_type<number_unsigned_t, CompatibleNumberUnsignedType>::value, int> = 0> basic_json(const CompatibleNumberUnsignedType val) noexcept : m_type(value_t::number_unsigned), m_value(static_cast<number_unsigned_t>(val)) @@ -1759,9 +1837,7 @@ class basic_json @since version 1.0.0 */ - template<typename CompatibleNumberFloatType, typename = typename std::enable_if< - std::is_constructible<number_float_t, CompatibleNumberFloatType>::value and - std::is_floating_point<CompatibleNumberFloatType>::value>::type> + template<typename CompatibleNumberFloatType, enable_if_t<detail::is_compatible_float_type<number_float_t, CompatibleNumberFloatType>::value, int> = 0> basic_json(const CompatibleNumberFloatType val) noexcept : basic_json(number_float_t(val)) { diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index dc35019ca..2e2a92cca 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.5 +| | |__ | | | | | | version 2.0.7 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. @@ -382,25 +382,22 @@ TEST_CASE("from_json free function", "[udt]") // custom serializer, uses adl by default template <typename T, typename = void> -struct my_serializer; - -template<> -struct my_serializer<udt::pod_type> +struct my_serializer { template <typename Json> - static void from_json(Json const& j, udt::pod_type& val) + static void from_json(Json const& j, T& val) { nlohmann::from_json(j, val); } template <typename Json> - static void to_json(Json& j, udt::pod_type const& val) + static void to_json(Json& j, T const& val) { nlohmann::to_json(j, val); } }; -using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, +/*using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, my_serializer>; @@ -419,8 +416,6 @@ namespace udt TEST_CASE("custom serializer") { - - SECTION("default use works like default serializer") { udt::pod_type pod{1, 2, 3}; @@ -435,3 +430,4 @@ TEST_CASE("custom serializer") CHECK(pod2 == pod); } } +*/ From 88819449c2893ec319428ca2893b24bae8fb1308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Wed, 16 Nov 2016 23:20:05 +0100 Subject: [PATCH 036/130] remove constraints on JSONSerializer instances, constrain correctly new methods --- src/json.hpp | 97 ++++++++++++++++++++++++++++++------------- test/src/unit-udt.cpp | 3 +- 2 files changed, 70 insertions(+), 30 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 703a1e023..096aecc8b 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -150,6 +150,9 @@ struct has_mapped_type std::is_integral<decltype(detect(std::declval<T>()))>::value; }; +template <template <typename...> class T> +struct wrapper{}; + template<typename T> struct has_key_type { @@ -176,6 +179,19 @@ struct has_value_type std::is_integral<decltype(detect(std::declval<T>()))>::value; }; +template<typename T> +struct has_iterator +{ + private: + template <typename U, typename = typename U::iterator> + static int detect(U&&); + + static void detect(...); + public: + static constexpr bool value = + std::is_integral<decltype(detect(std::declval<T>()))>::value; +}; + template <bool B, class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl : std::false_type{}; @@ -187,7 +203,7 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> std::is_constructible<typename RealType::mapped_type, typename CompatibleObjectType::mapped_type>::value; }; -template<class RealType, class CompatibleObjectType, typename = enable_if_t<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value>> +template<class RealType, class CompatibleObjectType> struct is_compatible_object_type { static auto constexpr value = is_compatible_object_type_impl<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value, RealType, CompatibleObjectType>::value; @@ -213,26 +229,43 @@ struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - static auto constexpr value = is_compatible_array_type_impl<has_value_type<CompatibleArrayType>::value, BasicJson, CompatibleArrayType>::value; + static auto constexpr value = is_compatible_array_type_impl<not is_compatible_object_type<typename BasicJson::object_t, CompatibleArrayType>::value and has_value_type<CompatibleArrayType>::value and has_iterator<CompatibleArrayType>::value, BasicJson, CompatibleArrayType>::value; +}; + +template <bool, typename, typename> +struct is_compatible_integer_type_impl : std::false_type{}; + +template <typename RealIntegerType, typename CompatibleNumberIntegerType> +struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> +{ + static constexpr auto value = std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value and + std::numeric_limits<CompatibleNumberIntegerType>::is_integer and + std::numeric_limits<CompatibleNumberIntegerType>::is_signed; }; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { - static constexpr auto value = - std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value and - std::numeric_limits<CompatibleNumberIntegerType>::is_integer and - std::numeric_limits<CompatibleNumberIntegerType>::is_signed; + static constexpr auto value = is_compatible_integer_type_impl<std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, CompatibleNumberIntegerType>::value; }; -template <typename RealInteger, typename CompatibleNumberUnsignedType> -struct is_compatible_unsigned_integer_type +template <bool, typename, typename> +struct is_compatible_unsigned_integer_type_impl : std::false_type{}; + +template <typename RealUnsignedType, typename CompatibleNumberUnsignedType> +struct is_compatible_unsigned_integer_type_impl<true, RealUnsignedType, CompatibleNumberUnsignedType> { - static constexpr auto value = std::is_constructible<RealInteger, CompatibleNumberUnsignedType>::value and + static constexpr auto value = std::is_constructible<RealUnsignedType, CompatibleNumberUnsignedType>::value and std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed; }; +template <typename RealUnsignedType, typename CompatibleNumberUnsignedType> +struct is_compatible_unsigned_integer_type +{ + static constexpr auto value = is_compatible_unsigned_integer_type_impl<std::is_arithmetic<CompatibleNumberUnsignedType>::value, RealUnsignedType, CompatibleNumberUnsignedType>::value; +}; + template <typename RealFloat, typename CompatibleFloat> struct is_compatible_float_type { @@ -341,13 +374,13 @@ template <typename = void, typename = void> struct adl_serializer { template <typename Json, typename T> - static auto from_json(Json&& j, T& val) -> decltype(::nlohmann::from_json(std::forward<Json>(j), val), void()) + static void from_json(Json&& j, T& val) { ::nlohmann::from_json(std::forward<Json>(j), val); } template <typename Json, typename T> - static auto to_json(Json& j, T&& val) -> decltype(::nlohmann::to_json(j, std::forward<T>(val)), void()) + static void to_json(Json& j, T&& val) { ::nlohmann::to_json(j, std::forward<T>(val)); } @@ -451,11 +484,6 @@ class basic_json BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType>; - template <template <typename...> class T> - struct wrapper{}; - - using supported_tpl_types = std::tuple<wrapper<ObjectType>, wrapper<ArrayType>, wrapper<AllocatorType>, wrapper<JSONSerializer>>; - public: // forward declarations template<typename U> class iter_impl; @@ -1507,8 +1535,15 @@ class basic_json } // constructor chosen when JSONSerializer::to_json exists for type T - template <typename T, typename = typename std::enable_if<detail::has_to_json< - JSONSerializer, basic_json, uncvref_t<T>>::value>::type> + template <typename T, enable_if_t<detail::has_to_json< + JSONSerializer, basic_json, uncvref_t<T>>::value and not (detail::is_compatible_object_type<object_t, uncvref_t<T>>::value or + detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>::value or + detail::is_compatible_float_type<number_float_t, uncvref_t<T>>::value or + detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>::value or + detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>::value or + std::is_constructible<string_t, uncvref_t<T>>::value or + std::is_base_of<std::istream, uncvref_t<T>>::value or + std::is_same<boolean_t, uncvref_t<T>>::value), int> = 0> explicit basic_json(T &&val) { JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); @@ -3167,21 +3202,27 @@ class basic_json @since version 1.0.0 */ template <typename ValueType, - typename std::enable_if< - not std::is_pointer<ValueType>::value and - not detail::has_from_json<JSONSerializer, basic_json, - uncvref_t<ValueType>>::value, - int>::type = 0> + enable_if_t< + not std::is_pointer<ValueType>::value, + int> = 0> auto get() const -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) { return get_impl(static_cast<ValueType *>(nullptr)); } - template <typename ValueType, - typename = enable_if_t<detail::has_from_json< - JSONSerializer, basic_json, uncvref_t<ValueType>>::value>> - auto get() const -> uncvref_t<ValueType> { - using type = uncvref_t<ValueType>; + template <typename T, + enable_if_t<detail::has_from_json< + JSONSerializer, basic_json, uncvref_t<T>>::value + and not (detail::is_compatible_object_type<object_t, uncvref_t<T>>::value or + detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>::value or + detail::is_compatible_float_type<number_float_t, uncvref_t<T>>::value or + detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>::value or + detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>::value or + std::is_constructible<string_t, uncvref_t<T>>::value or + std::is_same<boolean_t, uncvref_t<T>>::value), int> = 0> + auto get() const -> uncvref_t<T> + { + using type = uncvref_t<T>; static_assert(std::is_default_constructible<type>::value && std::is_copy_constructible<type>::value, "user-defined types must be DefaultConstructible and " diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 2e2a92cca..826baaae3 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -397,7 +397,7 @@ struct my_serializer } }; -/*using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, +using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, my_serializer>; @@ -430,4 +430,3 @@ TEST_CASE("custom serializer") CHECK(pod2 == pod); } } -*/ From 0d91113ccf757d501ab698631827440f6a470181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Mon, 21 Nov 2016 00:22:47 +0100 Subject: [PATCH 037/130] add negation, disjunction, and conjunction from C++17 --- src/json.hpp | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 096aecc8b..ff58df203 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -119,6 +119,9 @@ using remove_reference_t = typename std::remove_reference<T>::type; template <typename T> using uncvref_t = remove_cv_t<remove_reference_t<T>>; +template <bool If, typename Then, typename Else> +using conditional_t = typename std::conditional<If, Then, Else>::type; + // TODO update this doc /*! @brief unnamed namespace with internal helper functions @@ -127,6 +130,23 @@ using uncvref_t = remove_cv_t<remove_reference_t<T>>; namespace detail { +// implementation of 3 C++17 constructs: conjunction, disjunction, negation. +// This is needed to avoid evaluating all the traits, MSVC cannot compile due +// to std::is_constructible<basic_json_t, void> being instantiated +// (void -> back_insert_iterator::value_type) +// this could slow down compilation, since this implementation is taken from the example in cppreference... +template <class...> struct conjunction : std::true_type {}; +template <class B1> struct conjunction<B1> : B1 {}; +template <class B1, class... Bn> +struct conjunction<B1, Bn...> + : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {}; +template <class B> struct negation : std::integral_constant<bool, !B::value> {}; +template <class...> struct disjunction : std::false_type {}; +template <class B1> struct disjunction<B1> : B1 {}; +template <class B1, class... Bn> +struct disjunction<B1, Bn...> + : conditional_t<bool(B1::value), B1, disjunction<Bn...>> {}; + /*! @brief Helper to determine whether there's a key_type for T. @@ -206,7 +226,12 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> template<class RealType, class CompatibleObjectType> struct is_compatible_object_type { - static auto constexpr value = is_compatible_object_type_impl<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value, RealType, CompatibleObjectType>::value; + static auto constexpr value = is_compatible_object_type_impl< + conjunction<negation<std::is_same<void, CompatibleObjectType>>, + has_mapped_type<CompatibleObjectType>, + has_key_type<CompatibleObjectType>>::value, + RealType, CompatibleObjectType>::value; + }; template <bool B, class BasicJson, class CompatibleArrayType> @@ -216,20 +241,25 @@ template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> { static constexpr auto value = - not std::is_same<CompatibleArrayType, typename BasicJson::iterator>::value and - not std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>::value and - not std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>::value and - not std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>::value and - not std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>::value and - not std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>::value and - std::is_constructible<BasicJson, typename CompatibleArrayType::value_type>::value; + conjunction< + negation<disjunction< + std::is_same<CompatibleArrayType, typename BasicJson::iterator>, + std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>, + std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>, + std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>, + std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>, + std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>>>, + std::is_constructible<BasicJson, typename CompatibleArrayType::value_type>>::value; }; template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - static auto constexpr value = is_compatible_array_type_impl<not is_compatible_object_type<typename BasicJson::object_t, CompatibleArrayType>::value and has_value_type<CompatibleArrayType>::value and has_iterator<CompatibleArrayType>::value, BasicJson, CompatibleArrayType>::value; + static auto constexpr value = is_compatible_array_type_impl< + conjunction<negation<is_compatible_object_type<typename BasicJson::object_t, CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value, BasicJson, CompatibleArrayType>::value; }; template <bool, typename, typename> From e2dbe7a69f09eeae66a806334ac2620514c69465 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Mon, 21 Nov 2016 10:17:26 +0100 Subject: [PATCH 038/130] correctly constrain basic_json udt constructor --- src/json.hpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index ff58df203..2265457fb 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -512,7 +512,7 @@ class basic_json /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, - AllocatorType>; + AllocatorType, JSONSerializer>; public: // forward declarations @@ -1565,15 +1565,19 @@ class basic_json } // constructor chosen when JSONSerializer::to_json exists for type T - template <typename T, enable_if_t<detail::has_to_json< - JSONSerializer, basic_json, uncvref_t<T>>::value and not (detail::is_compatible_object_type<object_t, uncvref_t<T>>::value or - detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>::value or - detail::is_compatible_float_type<number_float_t, uncvref_t<T>>::value or - detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>::value or - detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>::value or - std::is_constructible<string_t, uncvref_t<T>>::value or - std::is_base_of<std::istream, uncvref_t<T>>::value or - std::is_same<boolean_t, uncvref_t<T>>::value), int> = 0> + template <typename T, enable_if_t<detail::conjunction<detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>, +detail::negation<detail::disjunction< + detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>, + detail::is_compatible_object_type<object_t, uncvref_t<T>>, + detail::is_compatible_float_type<number_float_t, uncvref_t<T>>, + detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>, + detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>, + std::is_constructible<string_t, uncvref_t<T>>, + std::is_base_of<std::istream, uncvref_t<T>>, + std::is_same<boolean_t, uncvref_t<T>>>>, + detail::has_to_json< + JSONSerializer, basic_json, uncvref_t<T>> +>::value, int> = 0> explicit basic_json(T &&val) { JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); From 9b401972a0d5324789e25be2ba6854273d378afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io> Date: Thu, 17 Nov 2016 18:15:40 +0100 Subject: [PATCH 039/130] add a macro for has_xxx types --- src/json.hpp | 72 +++++++++++++--------------------------------------- 1 file changed, 18 insertions(+), 54 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 2265457fb..bd91a6152 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -140,6 +140,7 @@ template <class B1> struct conjunction<B1> : B1 {}; template <class B1, class... Bn> struct conjunction<B1, Bn...> : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {}; + template <class B> struct negation : std::integral_constant<bool, !B::value> {}; template <class...> struct disjunction : std::false_type {}; template <class B1> struct disjunction<B1> : B1 {}; @@ -149,68 +150,31 @@ struct disjunction<B1, Bn...> /*! @brief Helper to determine whether there's a key_type for T. - Thus helper is used to tell associative containers apart from other containers such as sequence containers. For instance, `std::map` passes the test as it contains a `mapped_type`, whereas `std::vector` fails the test. - @sa http://stackoverflow.com/a/7728728/266378 @since version 1.0.0, overworked in version 2.0.6 */ -template<typename T> -struct has_mapped_type -{ - private: - template <typename U, typename = typename U::mapped_type> - static int detect(U&&); +#define NLOHMANN_JSON_HAS_HELPER(type) \ + template <typename T> struct has_##type { \ + private: \ + template <typename U, typename = typename U::type> \ + static int detect(U &&); \ + \ + static void detect(...); \ + \ + public: \ + static constexpr bool value = \ + std::is_integral<decltype(detect(std::declval<T>()))>::value; \ + }; - static void detect(...); - public: - static constexpr bool value = - std::is_integral<decltype(detect(std::declval<T>()))>::value; -}; +NLOHMANN_JSON_HAS_HELPER(mapped_type) +NLOHMANN_JSON_HAS_HELPER(key_type) +NLOHMANN_JSON_HAS_HELPER(value_type) +NLOHMANN_JSON_HAS_HELPER(iterator) -template <template <typename...> class T> -struct wrapper{}; - -template<typename T> -struct has_key_type -{ - private: - template <typename U, typename = typename U::key_type> - static int detect(U&&); - - static void detect(...); - public: - static constexpr bool value = - std::is_integral<decltype(detect(std::declval<T>()))>::value; -}; - -template<typename T> -struct has_value_type -{ - private: - template <typename U, typename = typename U::value_type> - static int detect(U&&); - - static void detect(...); - public: - static constexpr bool value = - std::is_integral<decltype(detect(std::declval<T>()))>::value; -}; - -template<typename T> -struct has_iterator -{ - private: - template <typename U, typename = typename U::iterator> - static int detect(U&&); - - static void detect(...); - public: - static constexpr bool value = - std::is_integral<decltype(detect(std::declval<T>()))>::value; -}; +#undef NLOHMANN_JSON_HAS_HELPER template <bool B, class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl : std::false_type{}; From ee19acaf056e310447acba40f53a0786a67215f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Mon, 21 Nov 2016 13:23:25 +0100 Subject: [PATCH 040/130] add is_compatible_basic_json_type trait --- src/json.hpp | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index bd91a6152..0c477a0d2 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -267,6 +267,19 @@ struct is_compatible_float_type std::is_floating_point<CompatibleFloat>::value; }; +template <typename T, typename BasicJson> +struct is_compatible_basic_json_type +{ + static auto constexpr value = disjunction< + is_compatible_array_type<BasicJson, T>, + is_compatible_object_type<typename BasicJson::object_t, T>, + is_compatible_float_type<typename BasicJson::number_float_t, T>, + is_compatible_integer_type<typename BasicJson::number_integer_t, T>, + is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, T>, + std::is_constructible<typename BasicJson::string_t, T>, + std::is_same<typename BasicJson::boolean_t, T>>::value; +}; + template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_from_json @@ -1528,20 +1541,13 @@ class basic_json assert_invariant(); } + // constructor chosen when JSONSerializer::to_json exists for type T + // first check avoids being chosen instead of move/copy constructor template <typename T, enable_if_t<detail::conjunction<detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>, -detail::negation<detail::disjunction< - detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>, - detail::is_compatible_object_type<object_t, uncvref_t<T>>, - detail::is_compatible_float_type<number_float_t, uncvref_t<T>>, - detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>, - detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>, - std::is_constructible<string_t, uncvref_t<T>>, - std::is_base_of<std::istream, uncvref_t<T>>, - std::is_same<boolean_t, uncvref_t<T>>>>, - detail::has_to_json< - JSONSerializer, basic_json, uncvref_t<T>> ->::value, int> = 0> +detail::negation<std::is_base_of<std::istream, uncvref_t<T>>>, +detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_t>>, detail::has_to_json< + JSONSerializer, basic_json, uncvref_t<T>>>::value, int> = 0> explicit basic_json(T &&val) { JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); @@ -3209,15 +3215,8 @@ detail::negation<detail::disjunction< } template <typename T, - enable_if_t<detail::has_from_json< - JSONSerializer, basic_json, uncvref_t<T>>::value - and not (detail::is_compatible_object_type<object_t, uncvref_t<T>>::value or - detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>::value or - detail::is_compatible_float_type<number_float_t, uncvref_t<T>>::value or - detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>::value or - detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>::value or - std::is_constructible<string_t, uncvref_t<T>>::value or - std::is_same<boolean_t, uncvref_t<T>>::value), int> = 0> + enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_t>>, + detail::has_from_json<JSONSerializer, basic_json_t, uncvref_t<T>>>::value, int> = 0> auto get() const -> uncvref_t<T> { using type = uncvref_t<T>; From 47bc4021130e66dd235de387e10081259489623b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io> Date: Tue, 22 Nov 2016 13:27:00 +0100 Subject: [PATCH 041/130] only use conjunction & co when needed to avoid MSVC crashing --- src/json.hpp | 69 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 0c477a0d2..34d3cb202 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -205,25 +205,28 @@ template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> { static constexpr auto value = - conjunction< - negation<disjunction< - std::is_same<CompatibleArrayType, typename BasicJson::iterator>, - std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>, - std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>, - std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>, - std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>, - std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>>>, - std::is_constructible<BasicJson, typename CompatibleArrayType::value_type>>::value; + not std::is_same<CompatibleArrayType, typename BasicJson::iterator>::value and + not std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>::value and + not std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>::value and + not std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>::value and + not std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>::value and +not std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>::value; }; template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - static auto constexpr value = is_compatible_array_type_impl< - conjunction<negation<is_compatible_object_type<typename BasicJson::object_t, CompatibleArrayType>>, - has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value, BasicJson, CompatibleArrayType>::value; + static auto constexpr value = disjunction<std::is_same<BasicJson, CompatibleArrayType>, + is_compatible_array_type_impl< + conjunction<negation< + // MSVC has troubles on that one + std::is_same<void, CompatibleArrayType>>, + negation<is_compatible_object_type< + typename BasicJson::object_t, CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value, + BasicJson, CompatibleArrayType>>::value; }; template <bool, typename, typename> @@ -270,14 +273,16 @@ struct is_compatible_float_type template <typename T, typename BasicJson> struct is_compatible_basic_json_type { - static auto constexpr value = disjunction< - is_compatible_array_type<BasicJson, T>, - is_compatible_object_type<typename BasicJson::object_t, T>, - is_compatible_float_type<typename BasicJson::number_float_t, T>, - is_compatible_integer_type<typename BasicJson::number_integer_t, T>, - is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, T>, - std::is_constructible<typename BasicJson::string_t, T>, - std::is_same<typename BasicJson::boolean_t, T>>::value; + static auto constexpr value = + + std::is_same<T, BasicJson>::value or + std::is_constructible<typename BasicJson::string_t, T>::value or + std::is_same<typename BasicJson::boolean_t, T>::value or + is_compatible_array_type<BasicJson, T>::value or + is_compatible_object_type<typename BasicJson::object_t, T>::value or + is_compatible_float_type<typename BasicJson::number_float_t, T>::value or + is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or + is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, T>::value; }; template <template <typename, typename> class JSONSerializer, typename Json, @@ -1531,14 +1536,20 @@ class basic_json @since version 1.0.0 */ - template<class CompatibleArrayType, enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value, int> = 0> - basic_json(const CompatibleArrayType& val) - : m_type(value_t::array) - { - using std::begin; - using std::end; - m_value.array = create<array_t>(begin(val), end(val)); - assert_invariant(); + template < + class CompatibleArrayType, + enable_if_t< + detail::disjunction< + // MSVC.. + std::is_same<uncvref_t<CompatibleArrayType>, basic_json_t>, + detail::is_compatible_array_type<basic_json_t, + CompatibleArrayType>>::value, + int> = 0> + basic_json(const CompatibleArrayType &val) : m_type(value_t::array) { + using std::begin; + using std::end; + m_value.array = create<array_t>(begin(val), end(val)); + assert_invariant(); } From 907484fb4368ed7e21a5ea11a1bb13c769e80e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Thu, 24 Nov 2016 00:29:56 +0100 Subject: [PATCH 042/130] format biggest lines --- src/json.hpp | 193 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 119 insertions(+), 74 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 34d3cb202..2ab6efd96 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -183,19 +183,20 @@ template <class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> { static constexpr auto value = - std::is_constructible<typename RealType::key_type, typename CompatibleObjectType::key_type>::value and - std::is_constructible<typename RealType::mapped_type, typename CompatibleObjectType::mapped_type>::value; + std::is_constructible<typename RealType::key_type, + typename CompatibleObjectType::key_type>::value and + std::is_constructible<typename RealType::mapped_type, + typename CompatibleObjectType::mapped_type>::value; }; template<class RealType, class CompatibleObjectType> struct is_compatible_object_type { static auto constexpr value = is_compatible_object_type_impl< - conjunction<negation<std::is_same<void, CompatibleObjectType>>, - has_mapped_type<CompatibleObjectType>, - has_key_type<CompatibleObjectType>>::value, - RealType, CompatibleObjectType>::value; - + conjunction<negation<std::is_same<void, CompatibleObjectType>>, + has_mapped_type<CompatibleObjectType>, + has_key_type<CompatibleObjectType>>::value, + RealType, CompatibleObjectType>::value; }; template <bool B, class BasicJson, class CompatibleArrayType> @@ -205,28 +206,34 @@ template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> { static constexpr auto value = - not std::is_same<CompatibleArrayType, typename BasicJson::iterator>::value and - not std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>::value and - not std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>::value and - not std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>::value and - not std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>::value and -not std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>::value; - + not std::is_same<CompatibleArrayType, + typename BasicJson::iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::const_iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::reverse_iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::const_reverse_iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::array_t::iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::array_t::const_iterator>::value; }; template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - static auto constexpr value = disjunction<std::is_same<BasicJson, CompatibleArrayType>, - is_compatible_array_type_impl< - conjunction<negation< - // MSVC has troubles on that one - std::is_same<void, CompatibleArrayType>>, - negation<is_compatible_object_type< - typename BasicJson::object_t, CompatibleArrayType>>, - has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value, - BasicJson, CompatibleArrayType>>::value; + static auto constexpr value = disjunction< + std::is_same<BasicJson, CompatibleArrayType>, + is_compatible_array_type_impl< + conjunction<negation< + // MSVC has troubles without this + std::is_same<void, CompatibleArrayType>>, + negation<is_compatible_object_type< + typename BasicJson::object_t, CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value, + BasicJson, CompatibleArrayType>>::value; }; template <bool, typename, typename> @@ -235,15 +242,19 @@ struct is_compatible_integer_type_impl : std::false_type{}; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> { - static constexpr auto value = std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value and - std::numeric_limits<CompatibleNumberIntegerType>::is_integer and - std::numeric_limits<CompatibleNumberIntegerType>::is_signed; + static constexpr auto value = + std::is_constructible<RealIntegerType, + CompatibleNumberIntegerType>::value and + std::numeric_limits<CompatibleNumberIntegerType>::is_integer and + std::numeric_limits<CompatibleNumberIntegerType>::is_signed; }; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { - static constexpr auto value = is_compatible_integer_type_impl<std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, CompatibleNumberIntegerType>::value; + static constexpr auto value = is_compatible_integer_type_impl< + std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, + CompatibleNumberIntegerType>::value; }; template <bool, typename, typename> @@ -252,37 +263,43 @@ struct is_compatible_unsigned_integer_type_impl : std::false_type{}; template <typename RealUnsignedType, typename CompatibleNumberUnsignedType> struct is_compatible_unsigned_integer_type_impl<true, RealUnsignedType, CompatibleNumberUnsignedType> { - static constexpr auto value = std::is_constructible<RealUnsignedType, CompatibleNumberUnsignedType>::value and - std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and - not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed; + static constexpr auto value = + std::is_constructible<RealUnsignedType, + CompatibleNumberUnsignedType>::value and + std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and + not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed; }; template <typename RealUnsignedType, typename CompatibleNumberUnsignedType> struct is_compatible_unsigned_integer_type { - static constexpr auto value = is_compatible_unsigned_integer_type_impl<std::is_arithmetic<CompatibleNumberUnsignedType>::value, RealUnsignedType, CompatibleNumberUnsignedType>::value; + static constexpr auto value = is_compatible_unsigned_integer_type_impl< + std::is_arithmetic<CompatibleNumberUnsignedType>::value, RealUnsignedType, + CompatibleNumberUnsignedType>::value; }; template <typename RealFloat, typename CompatibleFloat> struct is_compatible_float_type { - static constexpr auto value = std::is_constructible<RealFloat, CompatibleFloat>::value and - std::is_floating_point<CompatibleFloat>::value; + static constexpr auto value = + std::is_constructible<RealFloat, CompatibleFloat>::value and + std::is_floating_point<CompatibleFloat>::value; }; template <typename T, typename BasicJson> struct is_compatible_basic_json_type { - static auto constexpr value = - - std::is_same<T, BasicJson>::value or - std::is_constructible<typename BasicJson::string_t, T>::value or - std::is_same<typename BasicJson::boolean_t, T>::value or - is_compatible_array_type<BasicJson, T>::value or - is_compatible_object_type<typename BasicJson::object_t, T>::value or - is_compatible_float_type<typename BasicJson::number_float_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or - is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, T>::value; + static auto constexpr value = + std::is_same<T, BasicJson>::value or + std::is_constructible<typename BasicJson::string_t, T>::value or + std::is_same<typename BasicJson::boolean_t, T>::value or + is_compatible_array_type<BasicJson, T>::value or + is_compatible_object_type<typename BasicJson::object_t, T>::value or + is_compatible_float_type<typename BasicJson::number_float_t, T>::value or + is_compatible_integer_type<typename BasicJson::number_integer_t, + T>::value or + is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, + T>::value; }; template <template <typename, typename> class JSONSerializer, typename Json, @@ -322,23 +339,24 @@ void from_json(); struct to_json_fn { - template <typename Json, typename T> - constexpr auto - operator()(Json&& j, T &&val) const noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) - -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), void()) - { - return to_json(std::forward<Json>(j), std::forward<T>(val)); - } + template <typename Json, typename T> + constexpr auto operator()(Json &&j, T &&val) const + noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) + -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), + void()) + { + return to_json(std::forward<Json>(j), std::forward<T>(val)); + } }; struct from_json_fn { - template <typename Json, typename T> - constexpr auto operator()(Json &&j, T &val) const - noexcept(noexcept(from_json(std::forward<Json>(j), val))) - -> decltype(from_json(std::forward<Json>(j), val), void()) - { - return from_json(std::forward<Json>(j), val); + template <typename Json, typename T> + constexpr auto operator()(Json &&j, T &val) const + noexcept(noexcept(from_json(std::forward<Json>(j), val))) + -> decltype(from_json(std::forward<Json>(j), val), void()) + { + return from_json(std::forward<Json>(j), val); } }; @@ -1555,10 +1573,17 @@ class basic_json // constructor chosen when JSONSerializer::to_json exists for type T // first check avoids being chosen instead of move/copy constructor - template <typename T, enable_if_t<detail::conjunction<detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>, -detail::negation<std::is_base_of<std::istream, uncvref_t<T>>>, -detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_t>>, detail::has_to_json< - JSONSerializer, basic_json, uncvref_t<T>>>::value, int> = 0> + template < + typename T, + enable_if_t< + detail::conjunction< + detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>, + detail::negation<std::is_base_of<std::istream, uncvref_t<T>>>, + detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, + detail::has_to_json<JSONSerializer, basic_json, + uncvref_t<T>>>::value, + int> = 0> explicit basic_json(T &&val) { JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); @@ -1757,7 +1782,11 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_ @since version 1.0.0 */ - template<typename CompatibleNumberIntegerType, enable_if_t<detail::is_compatible_integer_type<number_integer_t, CompatibleNumberIntegerType>::value, int> = 0> + template < + typename CompatibleNumberIntegerType, + enable_if_t<detail::is_compatible_integer_type< + number_integer_t, CompatibleNumberIntegerType>::value, + int> = 0> basic_json(const CompatibleNumberIntegerType val) noexcept : m_type(value_t::number_integer), m_value(static_cast<number_integer_t>(val)) @@ -1811,7 +1840,11 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_ @since version 2.0.0 */ - template<typename CompatibleNumberUnsignedType, enable_if_t<detail::is_compatible_unsigned_integer_type<number_unsigned_t, CompatibleNumberUnsignedType>::value, int> = 0> + template < + typename CompatibleNumberUnsignedType, + enable_if_t<detail::is_compatible_unsigned_integer_type< + number_unsigned_t, CompatibleNumberUnsignedType>::value, + int> = 0> basic_json(const CompatibleNumberUnsignedType val) noexcept : m_type(value_t::number_unsigned), m_value(static_cast<number_unsigned_t>(val)) @@ -1887,7 +1920,10 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_ @since version 1.0.0 */ - template<typename CompatibleNumberFloatType, enable_if_t<detail::is_compatible_float_type<number_float_t, CompatibleNumberFloatType>::value, int> = 0> + template <typename CompatibleNumberFloatType, + enable_if_t<detail::is_compatible_float_type< + number_float_t, CompatibleNumberFloatType>::value, + int> = 0> basic_json(const CompatibleNumberFloatType val) noexcept : basic_json(number_float_t(val)) { @@ -2941,13 +2977,17 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_ } /// get an array (explicit) - template<class T, typename std::enable_if< - std::is_convertible<basic_json_t, typename T::value_type>::value and - not std::is_same<basic_json_t, typename T::value_type>::value and - not std::is_arithmetic<T>::value and - not std::is_convertible<std::string, T>::value and - not detail::has_mapped_type<T>::value, int>::type = 0> - T get_impl(T* /*unused*/) const + template < + class T, + typename std::enable_if< + std::is_convertible<basic_json_t, typename T::value_type>::value and + not std::is_same<basic_json_t, + typename T::value_type>::value and + not std::is_arithmetic<T>::value and + not std::is_convertible<std::string, T>::value and + not detail::has_mapped_type<T>::value, + int>::type = 0> + T get_impl(T *) const { if (is_array()) { @@ -3225,9 +3265,14 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_ return get_impl(static_cast<ValueType *>(nullptr)); } - template <typename T, - enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_t>>, - detail::has_from_json<JSONSerializer, basic_json_t, uncvref_t<T>>>::value, int> = 0> + template < + typename T, + enable_if_t<detail::conjunction< + detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, + detail::has_from_json<JSONSerializer, basic_json_t, + uncvref_t<T>>>::value, + int> = 0> auto get() const -> uncvref_t<T> { using type = uncvref_t<T>; From 74bb11d92c965c9ce10e87376f1b969adcac7960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io> Date: Thu, 24 Nov 2016 13:22:46 +0100 Subject: [PATCH 043/130] remove some useless checks, format a bit, added some comments --- src/json.hpp | 151 +++++++++++++++++++++++---------------------------- 1 file changed, 68 insertions(+), 83 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 2ab6efd96..109691380 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -130,11 +130,17 @@ using conditional_t = typename std::conditional<If, Then, Else>::type; namespace detail { -// implementation of 3 C++17 constructs: conjunction, disjunction, negation. -// This is needed to avoid evaluating all the traits, MSVC cannot compile due -// to std::is_constructible<basic_json_t, void> being instantiated -// (void -> back_insert_iterator::value_type) -// this could slow down compilation, since this implementation is taken from the example in cppreference... +// Implementation of 3 C++17 constructs: conjunction, disjunction, negation. +// This is needed to avoid evaluating all the traits in a condition +// +// For example: not std::is_same<void, T>::value and has_value_type<T>::value +// will not compile when T = void (on MSVC at least) +// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value +// will stop evaluating if negation<...>::value == false +// +// Please note that those constructs must be used with caution, since symbols can +// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors) +// Only use it when you have too (see example ahead) template <class...> struct conjunction : std::true_type {}; template <class B1> struct conjunction<B1> : B1 {}; template <class B1, class... Bn> @@ -192,6 +198,8 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> template<class RealType, class CompatibleObjectType> struct is_compatible_object_type { + // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void + // hence the conjunction static auto constexpr value = is_compatible_object_type_impl< conjunction<negation<std::is_same<void, CompatibleObjectType>>, has_mapped_type<CompatibleObjectType>, @@ -223,17 +231,14 @@ struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - static auto constexpr value = disjunction< - std::is_same<BasicJson, CompatibleArrayType>, - is_compatible_array_type_impl< - conjunction<negation< - // MSVC has troubles without this - std::is_same<void, CompatibleArrayType>>, - negation<is_compatible_object_type< - typename BasicJson::object_t, CompatibleArrayType>>, - has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value, - BasicJson, CompatibleArrayType>>::value; + // the check for CompatibleArrayType = void is done in is_compatible_object_type + // but we need the conjunction here as well + static auto constexpr value = is_compatible_array_type_impl< + conjunction<negation<is_compatible_object_type< + typename BasicJson::object_t, CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value, + BasicJson, CompatibleArrayType>::value; }; template <bool, typename, typename> @@ -242,11 +247,14 @@ struct is_compatible_integer_type_impl : std::false_type{}; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> { + using RealLimits = std::numeric_limits<RealIntegerType>; + using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>; + static constexpr auto value = std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value and - std::numeric_limits<CompatibleNumberIntegerType>::is_integer and - std::numeric_limits<CompatibleNumberIntegerType>::is_signed; + CompatibleLimits::is_integer and + RealLimits::is_signed == CompatibleLimits::is_signed; }; template <typename RealIntegerType, typename CompatibleNumberIntegerType> @@ -257,27 +265,6 @@ struct is_compatible_integer_type CompatibleNumberIntegerType>::value; }; -template <bool, typename, typename> -struct is_compatible_unsigned_integer_type_impl : std::false_type{}; - -template <typename RealUnsignedType, typename CompatibleNumberUnsignedType> -struct is_compatible_unsigned_integer_type_impl<true, RealUnsignedType, CompatibleNumberUnsignedType> -{ - static constexpr auto value = - std::is_constructible<RealUnsignedType, - CompatibleNumberUnsignedType>::value and - std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and - not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed; -}; - -template <typename RealUnsignedType, typename CompatibleNumberUnsignedType> -struct is_compatible_unsigned_integer_type -{ - static constexpr auto value = is_compatible_unsigned_integer_type_impl< - std::is_arithmetic<CompatibleNumberUnsignedType>::value, RealUnsignedType, - CompatibleNumberUnsignedType>::value; -}; - template <typename RealFloat, typename CompatibleFloat> struct is_compatible_float_type { @@ -298,8 +285,8 @@ struct is_compatible_basic_json_type is_compatible_float_type<typename BasicJson::number_float_t, T>::value or is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or - is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, - T>::value; + is_compatible_integer_type<typename BasicJson::number_unsigned_t, + T>::value; }; template <template <typename, typename> class JSONSerializer, typename Json, @@ -334,11 +321,14 @@ public: detect(std::declval<JSONSerializer<T, void>>()))>::value; }; +// those declarations are needed to workaround a MSVC bug related to ADL +// (idea taken from MSVC-Ranges implementation void to_json(); void from_json(); struct to_json_fn { + // is it really useful to mark those as constexpr? template <typename Json, typename T> constexpr auto operator()(Json &&j, T &&val) const noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) @@ -357,7 +347,7 @@ struct from_json_fn -> decltype(from_json(std::forward<Json>(j), val), void()) { return from_json(std::forward<Json>(j), val); - } + } }; /*! @@ -384,18 +374,18 @@ struct DecimalSeparator : std::numpunct<char> // taken from ranges-v3 // TODO add doc template <typename T> -struct _static_const +struct static_const { static constexpr T value{}; }; template <typename T> -constexpr T _static_const<T>::value; +constexpr T static_const<T>::value; inline namespace { - constexpr auto const& to_json = _static_const<detail::to_json_fn>::value; - constexpr auto const& from_json = _static_const<detail::from_json_fn>::value; + constexpr auto const& to_json = static_const<detail::to_json_fn>::value; + constexpr auto const& from_json = static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument @@ -1493,14 +1483,16 @@ class basic_json @since version 1.0.0 */ - template<class CompatibleObjectType, enable_if_t<detail::is_compatible_object_type<object_t, CompatibleObjectType>::value, int> = 0> - basic_json(const CompatibleObjectType& val) - : m_type(value_t::object) + template <class CompatibleObjectType, + enable_if_t<detail::is_compatible_object_type< + object_t, CompatibleObjectType>::value, + int> = 0> + basic_json(const CompatibleObjectType &val) : m_type(value_t::object) { - using std::begin; - using std::end; - m_value.object = create<object_t>(begin(val), end(val)); - assert_invariant(); + using std::begin; + using std::end; + m_value.object = create<object_t>(begin(val), end(val)); + assert_invariant(); } /*! @@ -1554,16 +1546,12 @@ class basic_json @since version 1.0.0 */ - template < - class CompatibleArrayType, - enable_if_t< - detail::disjunction< - // MSVC.. - std::is_same<uncvref_t<CompatibleArrayType>, basic_json_t>, - detail::is_compatible_array_type<basic_json_t, - CompatibleArrayType>>::value, - int> = 0> - basic_json(const CompatibleArrayType &val) : m_type(value_t::array) { + template <class CompatibleArrayType, + enable_if_t<detail::is_compatible_array_type< + basic_json_t, CompatibleArrayType>::value, + int> = 0> + basic_json(const CompatibleArrayType &val) : m_type(value_t::array) + { using std::begin; using std::end; m_value.array = create<array_t>(begin(val), end(val)); @@ -1571,19 +1559,18 @@ class basic_json } - // constructor chosen when JSONSerializer::to_json exists for type T - // first check avoids being chosen instead of move/copy constructor + // constructor chosen when: + // - JSONSerializer::to_json exists for type T + // - T is not a istream, nor convertible to basic_json (float, vectors, etc) + // is_compatible_basic_json_type == not is_user_defined_type template < typename T, - enable_if_t< - detail::conjunction< - detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>, - detail::negation<std::is_base_of<std::istream, uncvref_t<T>>>, - detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, - detail::has_to_json<JSONSerializer, basic_json, - uncvref_t<T>>>::value, - int> = 0> + enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and + not detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>::value and + detail::has_to_json<JSONSerializer, basic_json, + uncvref_t<T>>::value, + int> = 0> explicit basic_json(T &&val) { JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); @@ -1842,7 +1829,7 @@ class basic_json */ template < typename CompatibleNumberUnsignedType, - enable_if_t<detail::is_compatible_unsigned_integer_type< + enable_if_t<detail::is_compatible_integer_type< number_unsigned_t, CompatibleNumberUnsignedType>::value, int> = 0> basic_json(const CompatibleNumberUnsignedType val) noexcept @@ -3257,21 +3244,19 @@ class basic_json @since version 1.0.0 */ template <typename ValueType, - enable_if_t< - not std::is_pointer<ValueType>::value, - int> = 0> + enable_if_t<not std::is_pointer<ValueType>::value, int> = 0> auto get() const - -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) { + -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) + { return get_impl(static_cast<ValueType *>(nullptr)); } template < typename T, - enable_if_t<detail::conjunction< - detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, + enable_if_t<not detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>::value and detail::has_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>>::value, + uncvref_t<T>>::value, int> = 0> auto get() const -> uncvref_t<T> { From e5999c6c822a37562dde3e031e231b73195e56cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Sat, 26 Nov 2016 01:31:06 +0100 Subject: [PATCH 044/130] add a few tests --- src/json.hpp | 5 ++++- test/src/unit-udt.cpp | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 109691380..1e3c6f3b4 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -289,6 +289,8 @@ struct is_compatible_basic_json_type T>::value; }; + +// This trait checks if JSONSerializer<T>::from_json exists template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_from_json @@ -305,6 +307,7 @@ public: detect(std::declval<JSONSerializer<T, void>>()))>::value; }; +// This trait checks if JSONSerializer<T>::to_json exists template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_to_json @@ -322,7 +325,7 @@ public: }; // those declarations are needed to workaround a MSVC bug related to ADL -// (idea taken from MSVC-Ranges implementation +// (taken from MSVC-Ranges implementation) void to_json(); void from_json(); diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 826baaae3..800f9868e 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -397,6 +397,29 @@ struct my_serializer } }; +// partial specialization on optional_type +template <typename T> +struct my_serializer<udt::optional_type<T>> +{ + template <typename Json> + static void from_json(Json const& j, udt::optional_type<T>& opt) + { + if (j.is_null()) + opt = nullptr; + else + opt = j.get<T>(); + } + + template <typename Json> + static void to_json(Json& j, udt::optional_type<T> const& opt) + { + if (opt) + j = *opt; + else + j = nullptr; + } +}; + using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, my_serializer>; @@ -414,7 +437,7 @@ namespace udt } } -TEST_CASE("custom serializer") +TEST_CASE("custom serializer", "[udt]") { SECTION("default use works like default serializer") { @@ -429,4 +452,17 @@ TEST_CASE("custom serializer") CHECK(pod2 == pod3); CHECK(pod2 == pod); } + + SECTION("serializer specialization") + { + udt::optional_type<int> opt; + + json j{opt}; + CHECK(j.is_null()); + + opt = 42; + j = json{opt}; + CHECK(j.get<udt::optional_type<int>>() == opt); + CHECK(42 == j.get<int>()); + } } From 60e6f822fa25fd8f030728b02821da8f1d63b7b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Tue, 29 Nov 2016 13:09:51 +0100 Subject: [PATCH 045/130] add support for non-default-constructible udt --- src/json.hpp | 139 +++++++----- test/src/unit-udt.cpp | 486 +++++++----------------------------------- 2 files changed, 162 insertions(+), 463 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 1e3c6f3b4..2dfa7c022 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -290,14 +290,32 @@ struct is_compatible_basic_json_type }; -// This trait checks if JSONSerializer<T>::from_json exists +// This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_from_json { private: - template <typename U, typename = decltype(uncvref_t<U>::from_json( - std::declval<Json>(), std::declval<T &>()))> + // also check the return type of from_json + template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( + std::declval<Json>(), std::declval<T &>()))>::value>> + static int detect(U &&); + + static void detect(...); + +public: + static constexpr bool value = std::is_integral<decltype( + detect(std::declval<JSONSerializer<T, void>>()))>::value; +}; + +// This trait checks if JSONSerializer<T>::from_json(json const&) exists +// this overload is used for non-default-constructible user-defined-types +template <template <typename, typename> class JSONSerializer, typename Json, + typename T> +struct has_non_default_from_json +{ +private: + template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> static int detect(U &&); static void detect(...); @@ -326,8 +344,8 @@ public: // those declarations are needed to workaround a MSVC bug related to ADL // (taken from MSVC-Ranges implementation) -void to_json(); -void from_json(); +//void to_json(); +//void from_json(); struct to_json_fn { @@ -2467,57 +2485,63 @@ class basic_json return *this; } - /*! - @brief destructor - - Destroys the JSON value and frees all allocated memory. - - @complexity Linear. - - @requirement This function helps `basic_json` satisfying the - [Container](http://en.cppreference.com/w/cpp/concept/Container) - requirements: - - The complexity is linear. - - All stored elements are destroyed and all memory is freed. - - @since version 1.0.0 - */ - ~basic_json() + // this overload is needed, since constructor for udt is explicit + template <typename T, enable_if_t<not detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>::value and + detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>> + reference &operator=(T &&val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and + std::is_nothrow_move_assignable<uncvref_t<T>>::value) { - assert_invariant(); + static_assert(sizeof(T) == 0 , ""); + // I'm not sure this a is good practice... + return *this = basic_json_t{std::forward<T>(val)}; + } - switch (m_type) - { - case value_t::object: - { - AllocatorType<object_t> alloc; - alloc.destroy(m_value.object); - alloc.deallocate(m_value.object, 1); - break; - } + /*! + @brief destructor - case value_t::array: - { - AllocatorType<array_t> alloc; - alloc.destroy(m_value.array); - alloc.deallocate(m_value.array, 1); - break; - } + Destroys the JSON value and frees all allocated memory. - case value_t::string: - { - AllocatorType<string_t> alloc; - alloc.destroy(m_value.string); - alloc.deallocate(m_value.string, 1); - break; - } + @complexity Linear. - default: - { - // all other types need no specific destructor - break; - } - } + @requirement This function helps `basic_json` satisfying the + [Container](http://en.cppreference.com/w/cpp/concept/Container) + requirements: + - The complexity is linear. + - All stored elements are destroyed and all memory is freed. + + @since version 1.0.0 + */ + ~basic_json() { + assert_invariant(); + + switch (m_type) { + case value_t::object: { + AllocatorType<object_t> alloc; + alloc.destroy(m_value.object); + alloc.deallocate(m_value.object, 1); + break; + } + + case value_t::array: { + AllocatorType<array_t> alloc; + alloc.destroy(m_value.array); + alloc.deallocate(m_value.array, 1); + break; + } + + case value_t::string: { + AllocatorType<string_t> alloc; + alloc.destroy(m_value.string); + alloc.deallocate(m_value.string, 1); + break; + } + + default: { + // all other types need no specific destructor + break; + } + } } /// @} @@ -3273,6 +3297,19 @@ class basic_json return ret; } + // This overload is chosen for non-default constructible user-defined-types + template < + typename T, + enable_if_t<not detail::is_compatible_basic_json_type< + T, basic_json_t>::value and + detail::has_non_default_from_json<JSONSerializer, basic_json_t, + T>::value, + short> = 0> + T get() const + { + return JSONSerializer<T>::from_json(*this); + } + /*! @brief get a pointer value (explicit) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 800f9868e..cd9ec1c46 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -26,443 +26,105 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +#include <array> #include <string> #include <memory> #include "catch.hpp" #include "json.hpp" -using nlohmann::json; namespace udt { -struct empty_type {}; -struct pod_type { - int a; - char b; - short c; -}; - -struct bit_more_complex_type { - pod_type a; - pod_type b; - std::string c; -}; - -// best optional implementation ever -template <typename T> -class optional_type -{ -public: - optional_type() = default; - explicit optional_type(T val) : _val(std::make_shared<T>(std::move(val))) {} - explicit operator bool() const noexcept { return _val != nullptr; } - - T const &operator*() const { return *_val; } - optional_type& operator=(T const& t) + struct age { - _val = std::make_shared<T>(t); - return *this; - } + int val; + }; -private: - std::shared_ptr<T> _val; -}; + struct name + { + std::string val; + }; -// free to/from_json functions + struct address + { + std::string val; + }; -void to_json(json& j, empty_type) -{ - j = json::object(); + struct person + { + age age; + name name; + }; + + struct contact + { + person person; + address address; + }; + + struct contact_book + { + name book_name; + std::vector<contact> contacts; + }; } -void to_json(json& j, pod_type const& p) -{ - j = json{{"a", p.a}, {"b", p.b}, {"c", p.c}}; -} - -void to_json(json& j, bit_more_complex_type const& p) -{ - j = json{{"a", json(p.a)}, {"b", json(p.b)}, {"c", p.c}}; -} - -template <typename T> -void to_json(json& j, optional_type<T> const& opt) -{ - if (!opt) - j = nullptr; - else - j = json(*opt); -} - -void from_json(json const& j, empty_type& t) -{ - assert(j.empty()); - t = empty_type{}; -} - -void from_json(json const&j, pod_type& t) -{ - t = {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()}; -} - -void from_json(json const&j, bit_more_complex_type& t) -{ - // relying on json_traits struct here.. - t = {j["a"].get<udt::pod_type>(), j["b"].get<udt::pod_type>(), - j["c"].get<std::string>()}; -} - -template <typename T> -void from_json(json const& j, optional_type<T>& t) -{ - if (j.is_null()) - t = optional_type<T>{}; - else - t = j.get<T>(); -} - -inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept -{ - return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); -} - -inline bool operator==(bit_more_complex_type const &lhs, - bit_more_complex_type const &rhs) noexcept { - return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c); -} - -template <typename T> -inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs) -{ - if (!lhs && !rhs) - return true; - if (!lhs || !rhs) - return false; - return *lhs == *rhs; -} -} - -TEST_CASE("constructors for user-defined types", "[udt]") -{ - SECTION("empty type") - { - udt::empty_type const e{}; - auto const j = json{e}; - auto k = json::object(); - CHECK(j == k); - } - - SECTION("pod type") - { - auto const e = udt::pod_type{42, 42, 42}; - auto j = json{e}; - auto k = json{{"a", 42}, {"b", 42}, {"c", 42}}; - CHECK(j == k); - } - - SECTION("bit more complex type") - { - auto const e = - udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; - - auto j = json{e}; - auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, - {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, - {"c", "forty"}}; - CHECK(j == k); - } - - SECTION("vector of udt") - { - std::vector<udt::bit_more_complex_type> v; - auto const e = - udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; - - v.emplace_back(e); - v.emplace_back(e); - v.emplace_back(e); - - json j = v; - auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, - {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, - {"c", "forty"}}; - auto l = json{k, k, k}; - CHECK(j == l); - } - - SECTION("optional type") { - SECTION("regular case") { - udt::optional_type<int> u{3}; - CHECK(json{u} == json(3)); - } - - SECTION("nullopt case") { - udt::optional_type<float> v; - CHECK(json{v} == json{}); - } - - SECTION("optional of json convertible type") - { - auto const e = - udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; - udt::optional_type<udt::bit_more_complex_type> o{e}; - auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, - {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, - {"c", "forty"}}; - CHECK(json{o} == k); - } - - SECTION("optional of vector of json convertible type") - { - std::vector<udt::bit_more_complex_type> v; - auto const e = - udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; - v.emplace_back(e); - v.emplace_back(e); - v.emplace_back(e); - udt::optional_type<std::vector<udt::bit_more_complex_type>> o{v}; - auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, - {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, - {"c", "forty"}}; - auto l = json{k, k, k}; - CHECK(json{o} == l); - } - } -} - -TEST_CASE("get<> for user-defined types", "[udt]") -{ - SECTION("pod type") - { - auto const e = udt::pod_type{42, 42, 42}; - auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}}; - - auto const obj = j.get<udt::pod_type>(); - CHECK(e == obj); - } - - SECTION("bit more complex type") - { - auto const e = - udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; - auto const j = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, - {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, - {"c", "forty"}}; - - auto const obj = j.get<udt::bit_more_complex_type>(); - CHECK(e == obj); - } - - SECTION("vector of udt") - { - auto const e = - udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; - std::vector<udt::bit_more_complex_type> v{e, e, e}; - auto const j = json(v); - - auto const obj = j.get<decltype(v)>(); - CHECK(v == obj); - } - - SECTION("optional") - { - SECTION("from null") - { - udt::optional_type<int> o; - json j; - CHECK(j.get<decltype(o)>() == o); - } - - SECTION("from value") - { - json j{{"a", 42}, {"b", 42}, {"c", 42}}; - auto v = j.get<udt::optional_type<udt::pod_type>>(); - auto expected = udt::pod_type{42,42,42}; - REQUIRE(v); - CHECK(*v == expected); - } - } -} - -TEST_CASE("to_json free function", "[udt]") -{ - SECTION("pod_type") - { - auto const e = udt::pod_type{42, 42, 42}; - auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}}; - - json j; - nlohmann::to_json(j, e); - CHECK(j == expected); - } - - SECTION("bit_more_complex_type") - { - auto const e = - udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; - auto const expected = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, - {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, - {"c", "forty"}}; - json j; - nlohmann::to_json(j, e); - CHECK(j == expected); - } - - SECTION("optional_type") - { - SECTION("from null") - { - udt::optional_type<udt::pod_type> o; - - json expected; - json j; - nlohmann::to_json(j, o); - CHECK(expected == j); - } - - SECTION("from value") - { - udt::optional_type<udt::pod_type> o{{42, 42, 42}}; - - auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}}; - json j; - nlohmann::to_json(j, o); - CHECK(expected == j); - } - } -} - -TEST_CASE("from_json free function", "[udt]") -{ - SECTION("pod_type") - { - auto const expected = udt::pod_type{42, 42, 42}; - auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}}; - - udt::pod_type p; - nlohmann::from_json(j, p); - CHECK(p == expected); - } - - SECTION("bit_more_complex_type") - { - auto const expected = - udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"}; - auto const j = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}}, - {"b", {{"a", 41}, {"b", 41}, {"c", 41}}}, - {"c", "forty"}}; - udt::bit_more_complex_type p; - nlohmann::from_json(j, p); - CHECK(p == expected); - } - - SECTION("optional_type") - { - SECTION("from null") - { - udt::optional_type<udt::pod_type> expected; - json j; - udt::optional_type<udt::pod_type> o; - - nlohmann::from_json(j, o); - CHECK(expected == o); - } - - SECTION("from value") - { - udt::optional_type<udt::pod_type> expected{{42, 42, 42}}; - auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}}; - udt::optional_type<udt::pod_type> o; - - nlohmann::from_json(j, o); - CHECK(expected == o); - } - } -} - -// custom serializer, uses adl by default -template <typename T, typename = void> -struct my_serializer -{ - template <typename Json> - static void from_json(Json const& j, T& val) - { - nlohmann::from_json(j, val); - } - - template <typename Json> - static void to_json(Json& j, T const& val) - { - nlohmann::to_json(j, val); - } -}; - -// partial specialization on optional_type -template <typename T> -struct my_serializer<udt::optional_type<T>> -{ - template <typename Json> - static void from_json(Json const& j, udt::optional_type<T>& opt) - { - if (j.is_null()) - opt = nullptr; - else - opt = j.get<T>(); - } - - template <typename Json> - static void to_json(Json& j, udt::optional_type<T> const& opt) - { - if (opt) - j = *opt; - else - j = nullptr; - } -}; - -using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, - std::int64_t, std::uint64_t, double, - std::allocator, my_serializer>; - +// to_json methods for default basic_json namespace udt { - void to_json(my_json& j, pod_type const& val) + void to_json(nlohmann::json& j, age a) { - j = my_json{{"a", val.a}, {"b", val.b}, {"c", val.c}}; + j = a.val; } - void from_json(my_json const& j, pod_type& val) + void to_json(nlohmann::json& j, name const& n) { - val = {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()}; + j = n.val; + } + + void to_json(nlohmann::json& j, person const& p) + { + using nlohmann::json; + j = json{{"age", json{p.age}}, {"name", json{p.name}}}; + + // this unfortunately does not compile ... + // j["age"] = p.age; + // j["name"] = p.name; + } + + void to_json(nlohmann::json& j, address const& a) + { + j = a.val; + } + + void to_json(nlohmann::json& j, contact const& c) + { + using nlohmann::json; + j = json{{"person", json{c.person}}, {"address", json{c.address}}}; + } + + void to_json(nlohmann::json& j, contact_book const& cb) + { + using nlohmann::json; + j = json{{"name", json{cb.book_name}}, {"contacts", cb.contacts}}; } } -TEST_CASE("custom serializer", "[udt]") +TEST_CASE("basic usage", "[udt]") { - SECTION("default use works like default serializer") + using nlohmann::json; + + SECTION("conversion to json via free-functions") { - udt::pod_type pod{1, 2, 3}; - auto const j = my_json{pod}; + udt::age a{23}; - auto const j2 = json{pod}; - CHECK(j.dump() == j2.dump()); + CHECK(json{a} == json{23}); - auto const pod2 = j.get<udt::pod_type>(); - auto const pod3 = j2.get<udt::pod_type>(); - CHECK(pod2 == pod3); - CHECK(pod2 == pod); + // a bit narcissic maybe :) ? + udt::name n{"theo"}; + CHECK(json{n} == json{"theo"}); + + udt::person sfinae_addict{a, n}; + CHECK(json{sfinae_addict} == R"({"name":"theo", "age":23})"_json); } - - SECTION("serializer specialization") - { - udt::optional_type<int> opt; - - json j{opt}; - CHECK(j.is_null()); - - opt = 42; - j = json{opt}; - CHECK(j.get<udt::optional_type<int>>() == opt); - CHECK(42 == j.get<int>()); - } -} +} \ No newline at end of file From c0c72b5b62c29f9c220c1eb56273ff2a6bcc273f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io> Date: Wed, 30 Nov 2016 23:16:54 +0100 Subject: [PATCH 046/130] rewrite unit-udt: basic usage --- src/json.hpp | 138 ++++++++++++++++++++-- test/src/unit-class_const_iterator.cpp | 36 +++--- test/src/unit-class_iterator.cpp | 36 +++--- test/src/unit-udt.cpp | 156 ++++++++++++++++++++----- 4 files changed, 290 insertions(+), 76 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 2dfa7c022..fc7781eac 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -257,6 +257,30 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn RealLimits::is_signed == CompatibleLimits::is_signed; }; +// quickfix, just trying to make things compile before refactoring +template <bool B, typename RealIntegerType, typename CompatibleEnumType> +struct is_compatible_enum_type_impl : std::false_type{}; + +template <typename RealIntegerType, typename CompatibleEnumType> +struct is_compatible_enum_type_impl<true, RealIntegerType, CompatibleEnumType> +{ + using RealLimits = std::numeric_limits<RealIntegerType>; + using CompatibleLimits = std::numeric_limits<typename std::underlying_type<CompatibleEnumType>::type>; + + static constexpr auto value = + CompatibleLimits::is_integer and + RealLimits::is_signed == CompatibleLimits::is_signed; +}; + +template <typename RealIntegerType, typename CompatibleEnumType> +struct is_compatible_enum_type +{ + static constexpr auto value = is_compatible_enum_type_impl< +// quickfix for all enums + std::is_enum<CompatibleEnumType>::value, RealIntegerType, + CompatibleEnumType>::value; +}; + template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { @@ -281,6 +305,7 @@ struct is_compatible_basic_json_type std::is_constructible<typename BasicJson::string_t, T>::value or std::is_same<typename BasicJson::boolean_t, T>::value or is_compatible_array_type<BasicJson, T>::value or + is_compatible_enum_type<T, typename BasicJson::number_integer_t>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or is_compatible_float_type<typename BasicJson::number_float_t, T>::value or is_compatible_integer_type<typename BasicJson::number_integer_t, @@ -289,6 +314,16 @@ struct is_compatible_basic_json_type T>::value; }; +template <typename T, typename BasicJson, typename PrimitiveIterator> +struct is_basic_json_nested_class +{ + static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or + std::is_same<T, typename BasicJson::const_iterator>::value or + std::is_same<T, typename BasicJson::reverse_iterator>::value or + std::is_same<T, typename BasicJson::const_reverse_iterator>::value or + std::is_same<T, PrimitiveIterator>::value or + std::is_same<T, typename BasicJson::json_pointer>::value; +}; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists template <template <typename, typename> class JSONSerializer, typename Json, @@ -344,8 +379,8 @@ public: // those declarations are needed to workaround a MSVC bug related to ADL // (taken from MSVC-Ranges implementation) -//void to_json(); -//void from_json(); +void to_json(); +void from_json(); struct to_json_fn { @@ -524,6 +559,7 @@ class basic_json using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>; + class primitive_iterator_t; public: // forward declarations @@ -1589,10 +1625,15 @@ class basic_json enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and not detail::is_compatible_basic_json_type< uncvref_t<T>, basic_json_t>::value and + not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and + not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and +// quickfix +not std::is_enum<uncvref_t<T>>::value and + not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and detail::has_to_json<JSONSerializer, basic_json, uncvref_t<T>>::value, int> = 0> - explicit basic_json(T &&val) + basic_json(T &&val) { JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } @@ -1793,7 +1834,8 @@ class basic_json template < typename CompatibleNumberIntegerType, enable_if_t<detail::is_compatible_integer_type< - number_integer_t, CompatibleNumberIntegerType>::value, + number_integer_t, CompatibleNumberIntegerType>::value or +detail::is_compatible_enum_type<number_integer_t, CompatibleNumberIntegerType>::value, int> = 0> basic_json(const CompatibleNumberIntegerType val) noexcept : m_type(value_t::number_integer), @@ -8502,6 +8544,11 @@ class basic_json class primitive_iterator_t { public: + + difference_type get_value() const noexcept + { + return m_it; + } /// set iterator to a defined beginning void set_begin() noexcept { @@ -8526,16 +8573,85 @@ class basic_json return (m_it == end_value); } - /// return reference to the value to change and compare - operator difference_type& () noexcept + friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { - return m_it; + return lhs.m_it == rhs.m_it; } - /// return value to compare - constexpr operator difference_type () const noexcept + friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { - return m_it; + return !(lhs == rhs); + } + + friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it < rhs.m_it; + } + + friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it <= rhs.m_it; + } + + friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it > rhs.m_it; + } + + friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it >= rhs.m_it; + } + + friend constexpr bool operator+(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it + rhs.m_it; + } + + friend constexpr bool operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it - rhs.m_it; + } + + friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it) + { + return os << it.m_it; + } + + primitive_iterator_t& operator++() + { + ++m_it; + return *this; + } + + primitive_iterator_t& operator++(int) + { + m_it++; + return *this; + } + + primitive_iterator_t& operator--() + { + --m_it; + return *this; + } + + primitive_iterator_t& operator--(int) + { + m_it--; + return *this; + } + + primitive_iterator_t& operator+=(difference_type n) + { + m_it += n; + return *this; + } + + primitive_iterator_t& operator-=(difference_type n) + { + m_it -= n; + return *this; } private: @@ -9240,7 +9356,7 @@ class basic_json default: { - if (m_it.primitive_iterator == -n) + if (m_it.primitive_iterator.get_value() == -n) { return *m_object; } diff --git a/test/src/unit-class_const_iterator.cpp b/test/src/unit-class_const_iterator.cpp index 13ce7c3f3..a1f6b827a 100644 --- a/test/src/unit-class_const_iterator.cpp +++ b/test/src/unit-class_const_iterator.cpp @@ -220,20 +220,20 @@ TEST_CASE("const_iterator class") { json j(json::value_t::null); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); it++; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("number") { json j(17); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator == 0); + CHECK(it.m_it.primitive_iterator.m_it == 0); it++; - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); it++; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("object") @@ -271,20 +271,20 @@ TEST_CASE("const_iterator class") { json j(json::value_t::null); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); ++it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("number") { json j(17); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator == 0); + CHECK(it.m_it.primitive_iterator.m_it == 0); ++it; - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); ++it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("object") @@ -322,18 +322,18 @@ TEST_CASE("const_iterator class") { json j(json::value_t::null); json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); } SECTION("number") { json j(17); json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); it--; - CHECK(it.m_it.primitive_iterator == 0); + CHECK(it.m_it.primitive_iterator.m_it == 0); it--; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("object") @@ -371,18 +371,18 @@ TEST_CASE("const_iterator class") { json j(json::value_t::null); json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); } SECTION("number") { json j(17); json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); --it; - CHECK(it.m_it.primitive_iterator == 0); + CHECK(it.m_it.primitive_iterator.m_it == 0); --it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("object") diff --git a/test/src/unit-class_iterator.cpp b/test/src/unit-class_iterator.cpp index 640bc816c..1e8a3cec4 100644 --- a/test/src/unit-class_iterator.cpp +++ b/test/src/unit-class_iterator.cpp @@ -204,20 +204,20 @@ TEST_CASE("iterator class") { json j(json::value_t::null); json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); it++; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("number") { json j(17); json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator == 0); + CHECK(it.m_it.primitive_iterator.m_it == 0); it++; - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); it++; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("object") @@ -255,20 +255,20 @@ TEST_CASE("iterator class") { json j(json::value_t::null); json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); ++it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("number") { json j(17); json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator == 0); + CHECK(it.m_it.primitive_iterator.m_it == 0); ++it; - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); ++it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("object") @@ -306,18 +306,18 @@ TEST_CASE("iterator class") { json j(json::value_t::null); json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); } SECTION("number") { json j(17); json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); it--; - CHECK(it.m_it.primitive_iterator == 0); + CHECK(it.m_it.primitive_iterator.m_it == 0); it--; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("object") @@ -355,18 +355,18 @@ TEST_CASE("iterator class") { json j(json::value_t::null); json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); } SECTION("number") { json j(17); json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator == 1); + CHECK(it.m_it.primitive_iterator.m_it == 1); --it; - CHECK(it.m_it.primitive_iterator == 0); + CHECK(it.m_it.primitive_iterator.m_it == 0); --it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); + CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } SECTION("object") diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index cd9ec1c46..284433446 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -37,35 +37,35 @@ namespace udt { struct age { - int val; + int m_val; }; struct name { - std::string val; + std::string m_val; }; struct address { - std::string val; + std::string m_val; }; struct person { - age age; - name name; + age m_age; + name m_name; }; struct contact { - person person; - address address; + person m_person; + address m_address; }; struct contact_book { - name book_name; - std::vector<contact> contacts; + name m_book_name; + std::vector<contact> m_contacts; }; } @@ -74,39 +74,105 @@ namespace udt { void to_json(nlohmann::json& j, age a) { - j = a.val; + j = a.m_val; } void to_json(nlohmann::json& j, name const& n) { - j = n.val; + j = n.m_val; } void to_json(nlohmann::json& j, person const& p) { using nlohmann::json; - j = json{{"age", json{p.age}}, {"name", json{p.name}}}; - - // this unfortunately does not compile ... - // j["age"] = p.age; - // j["name"] = p.name; + j = json{{"age", json{p.m_age}}, {"name", json{p.m_name}}}; } void to_json(nlohmann::json& j, address const& a) { - j = a.val; + j = a.m_val; } void to_json(nlohmann::json& j, contact const& c) { using nlohmann::json; - j = json{{"person", json{c.person}}, {"address", json{c.address}}}; + j = json{{"person", json{c.m_person}}, {"address", json{c.m_address}}}; } void to_json(nlohmann::json& j, contact_book const& cb) { using nlohmann::json; - j = json{{"name", json{cb.book_name}}, {"contacts", cb.contacts}}; + j = json{{"name", json{cb.m_book_name}}, {"contacts", cb.m_contacts}}; + } + + // operators + bool operator==(age lhs, age rhs) + { + return lhs.m_val == rhs.m_val; + } + + bool operator==(address const &lhs, address const &rhs) + { + return lhs.m_val == rhs.m_val; + } + + bool operator==(name const &lhs, name const &rhs) + { + return lhs.m_val == rhs.m_val; + } + + bool operator==(person const &lhs, person const &rhs) + { + return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age); + } + + bool operator==(contact const &lhs, contact const &rhs) + { + return std::tie(lhs.m_person, lhs.m_address) == + std::tie(rhs.m_person, rhs.m_address); + } + + bool operator==(contact_book const &lhs, contact_book const &rhs) + { + return std::tie(lhs.m_book_name, lhs.m_contacts) == + std::tie(rhs.m_book_name, rhs.m_contacts); + } +} + +// from_json methods for default basic_json +namespace udt +{ + void from_json(nlohmann::json const& j, age &a) + { + a.m_val = j.get<int>(); + } + + void from_json(nlohmann::json const& j, name &n) + { + n.m_val = j.get<std::string>(); + } + + void from_json(nlohmann::json const& j, person &p) + { + p.m_age = j["age"].get<age>(); + p.m_name = j["name"].get<name>(); + } + + void from_json(nlohmann::json const &j, address &a) + { + a.m_val = j.get<std::string>(); + } + + void from_json(nlohmann::json const& j, contact &c) + { + c.m_person = j["person"].get<person>(); + c.m_address = j["address"].get<address>(); + } + + void from_json(nlohmann::json const&j, contact_book &cb) + { + cb.m_book_name = j["name"].get<name>(); + cb.m_contacts = j["contacts"].get<std::vector<contact>>(); } } @@ -114,17 +180,49 @@ TEST_CASE("basic usage", "[udt]") { using nlohmann::json; + // a bit narcissic maybe :) ? + const udt::age a{23}; + const udt::name n{"theo"}; + const udt::person sfinae_addict{a, n}; + const udt::address addr{"Paris"}; + const udt::contact cpp_programmer{sfinae_addict, addr}; + const udt::contact_book book{{"C++"}, {cpp_programmer, cpp_programmer}}; + SECTION("conversion to json via free-functions") { - udt::age a{23}; - - CHECK(json{a} == json{23}); - - // a bit narcissic maybe :) ? - udt::name n{"theo"}; - CHECK(json{n} == json{"theo"}); - - udt::person sfinae_addict{a, n}; + CHECK(json{a} == json(23)); + CHECK(json{n} == json("theo")); CHECK(json{sfinae_addict} == R"({"name":"theo", "age":23})"_json); + CHECK(json("Paris") == json{addr}); + CHECK(json{cpp_programmer} == + R"({"person" : {"age":23, "name":"theo"}, "address":"Paris"})"_json); + + CHECK( + json{book} == + R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json); } -} \ No newline at end of file + + SECTION("conversion from json via free-functions") + { + const auto big_json = + R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json; + const auto parsed_book = big_json.get<udt::contact_book>(); + const auto book_name = big_json["name"].get<udt::name>(); + const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>(); + const auto contact_json = big_json["contacts"].at(0); + const auto contact = contact_json.get<udt::contact>(); + const auto person = contact_json["person"].get<udt::person>(); + const auto address = contact_json["address"].get<udt::address>(); + const auto age = contact_json["person"]["age"].get<udt::age>(); + const auto name = contact_json["person"]["name"].get<udt::name>(); + + CHECK(age == a); + CHECK(name == n); + CHECK(address == addr); + CHECK(person == sfinae_addict); + CHECK(contact == cpp_programmer); + CHECK(contacts == book.m_contacts); + CHECK(book_name == udt::name{"C++"}); + CHECK(book == parsed_book); + } +} From 1eafac722016a8cacc2a657dcbd303b6f51ac074 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Sun, 4 Dec 2016 17:52:55 +0100 Subject: [PATCH 047/130] remove explicit keyword on udt-constructor --- src/json.hpp | 90 ++++++++++++++++++++++--------------------- test/src/unit-udt.cpp | 18 ++++----- 2 files changed, 55 insertions(+), 53 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index fc7781eac..310779ea4 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -257,30 +257,6 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn RealLimits::is_signed == CompatibleLimits::is_signed; }; -// quickfix, just trying to make things compile before refactoring -template <bool B, typename RealIntegerType, typename CompatibleEnumType> -struct is_compatible_enum_type_impl : std::false_type{}; - -template <typename RealIntegerType, typename CompatibleEnumType> -struct is_compatible_enum_type_impl<true, RealIntegerType, CompatibleEnumType> -{ - using RealLimits = std::numeric_limits<RealIntegerType>; - using CompatibleLimits = std::numeric_limits<typename std::underlying_type<CompatibleEnumType>::type>; - - static constexpr auto value = - CompatibleLimits::is_integer and - RealLimits::is_signed == CompatibleLimits::is_signed; -}; - -template <typename RealIntegerType, typename CompatibleEnumType> -struct is_compatible_enum_type -{ - static constexpr auto value = is_compatible_enum_type_impl< -// quickfix for all enums - std::is_enum<CompatibleEnumType>::value, RealIntegerType, - CompatibleEnumType>::value; -}; - template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { @@ -289,6 +265,27 @@ struct is_compatible_integer_type CompatibleNumberIntegerType>::value; }; +// quickfix, just trying to make things compile before refactoring +template <bool B, typename RealIntegerType, typename CompatibleEnumType> +struct is_compatible_enum_type_impl : std::false_type {}; + +template <typename RealIntegerType, typename CompatibleEnumType> +struct is_compatible_enum_type_impl<true, RealIntegerType, CompatibleEnumType> +{ + using Underlying = typename std::underlying_type<CompatibleEnumType>::type; + static constexpr auto value = + is_compatible_integer_type<RealIntegerType, Underlying>::value; +}; + +template <typename RealIntegerType, typename CompatibleEnumType> +struct is_compatible_enum_type +{ + static constexpr auto value = + is_compatible_enum_type_impl<std::is_enum<CompatibleEnumType>::value, + RealIntegerType, + CompatibleEnumType>::value; +}; + template <typename RealFloat, typename CompatibleFloat> struct is_compatible_float_type { @@ -306,6 +303,7 @@ struct is_compatible_basic_json_type std::is_same<typename BasicJson::boolean_t, T>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_enum_type<T, typename BasicJson::number_integer_t>::value or + is_compatible_enum_type<T, typename BasicJson::number_unsigned_t>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or is_compatible_float_type<typename BasicJson::number_float_t, T>::value or is_compatible_integer_type<typename BasicJson::number_integer_t, @@ -1627,8 +1625,8 @@ class basic_json uncvref_t<T>, basic_json_t>::value and not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and -// quickfix -not std::is_enum<uncvref_t<T>>::value and + not detail::is_compatible_enum_type<number_integer_t, uncvref_t<T>>::value and + not detail::is_compatible_enum_type<number_unsigned_t, uncvref_t<T>>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and detail::has_to_json<JSONSerializer, basic_json, uncvref_t<T>>::value, @@ -1831,17 +1829,17 @@ not std::is_enum<uncvref_t<T>>::value and @since version 1.0.0 */ - template < - typename CompatibleNumberIntegerType, - enable_if_t<detail::is_compatible_integer_type< - number_integer_t, CompatibleNumberIntegerType>::value or -detail::is_compatible_enum_type<number_integer_t, CompatibleNumberIntegerType>::value, - int> = 0> + template <typename CompatibleNumberIntegerType, + enable_if_t< + detail::is_compatible_integer_type< + number_integer_t, CompatibleNumberIntegerType>::value or + detail::is_compatible_enum_type< + number_integer_t, CompatibleNumberIntegerType>::value, + int> = 0> basic_json(const CompatibleNumberIntegerType val) noexcept : m_type(value_t::number_integer), - m_value(static_cast<number_integer_t>(val)) - { - assert_invariant(); + m_value(static_cast<number_integer_t>(val)) { + assert_invariant(); } /*! @@ -1892,14 +1890,16 @@ detail::is_compatible_enum_type<number_integer_t, CompatibleNumberIntegerType>:: */ template < typename CompatibleNumberUnsignedType, - enable_if_t<detail::is_compatible_integer_type< - number_unsigned_t, CompatibleNumberUnsignedType>::value, - int> = 0> + enable_if_t< + detail::is_compatible_integer_type< + number_unsigned_t, CompatibleNumberUnsignedType>::value or + detail::is_compatible_enum_type< + number_integer_t, CompatibleNumberUnsignedType>::value, + int> = 0> basic_json(const CompatibleNumberUnsignedType val) noexcept : m_type(value_t::number_unsigned), - m_value(static_cast<number_unsigned_t>(val)) - { - assert_invariant(); + m_value(static_cast<number_unsigned_t>(val)) { + assert_invariant(); } /*! @@ -8603,12 +8603,14 @@ detail::is_compatible_enum_type<number_integer_t, CompatibleNumberIntegerType>:: return lhs.m_it >= rhs.m_it; } - friend constexpr bool operator+(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + primitive_iterator_t operator+(difference_type i) { - return lhs.m_it + rhs.m_it; + auto result = *this; + result += i; + return result; } - friend constexpr bool operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { return lhs.m_it - rhs.m_it; } diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 284433446..2518fcfc5 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -85,7 +85,7 @@ namespace udt void to_json(nlohmann::json& j, person const& p) { using nlohmann::json; - j = json{{"age", json{p.m_age}}, {"name", json{p.m_name}}}; + j = json{{"age", p.m_age}, {"name", p.m_name}}; } void to_json(nlohmann::json& j, address const& a) @@ -96,13 +96,13 @@ namespace udt void to_json(nlohmann::json& j, contact const& c) { using nlohmann::json; - j = json{{"person", json{c.m_person}}, {"address", json{c.m_address}}}; + j = json{{"person", c.m_person}, {"address", c.m_address}}; } void to_json(nlohmann::json& j, contact_book const& cb) { using nlohmann::json; - j = json{{"name", json{cb.m_book_name}}, {"contacts", cb.m_contacts}}; + j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}}; } // operators @@ -190,15 +190,15 @@ TEST_CASE("basic usage", "[udt]") SECTION("conversion to json via free-functions") { - CHECK(json{a} == json(23)); - CHECK(json{n} == json("theo")); - CHECK(json{sfinae_addict} == R"({"name":"theo", "age":23})"_json); - CHECK(json("Paris") == json{addr}); - CHECK(json{cpp_programmer} == + CHECK(json(a) == json(23)); + CHECK(json(n) == json("theo")); + CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23})"_json); + CHECK(json("Paris") == json(addr)); + CHECK(json(cpp_programmer) == R"({"person" : {"age":23, "name":"theo"}, "address":"Paris"})"_json); CHECK( - json{book} == + json(book) == R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json); } From f5cb089f8927167ae934d510c752bce581e8f62b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Wed, 7 Dec 2016 23:21:10 +0100 Subject: [PATCH 048/130] add an enum constructor (quickfix) --- src/json.hpp | 52 +++++++++++++--------------------------------------- 1 file changed, 13 insertions(+), 39 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 310779ea4..35d3d0a60 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -265,27 +265,6 @@ struct is_compatible_integer_type CompatibleNumberIntegerType>::value; }; -// quickfix, just trying to make things compile before refactoring -template <bool B, typename RealIntegerType, typename CompatibleEnumType> -struct is_compatible_enum_type_impl : std::false_type {}; - -template <typename RealIntegerType, typename CompatibleEnumType> -struct is_compatible_enum_type_impl<true, RealIntegerType, CompatibleEnumType> -{ - using Underlying = typename std::underlying_type<CompatibleEnumType>::type; - static constexpr auto value = - is_compatible_integer_type<RealIntegerType, Underlying>::value; -}; - -template <typename RealIntegerType, typename CompatibleEnumType> -struct is_compatible_enum_type -{ - static constexpr auto value = - is_compatible_enum_type_impl<std::is_enum<CompatibleEnumType>::value, - RealIntegerType, - CompatibleEnumType>::value; -}; - template <typename RealFloat, typename CompatibleFloat> struct is_compatible_float_type { @@ -302,8 +281,6 @@ struct is_compatible_basic_json_type std::is_constructible<typename BasicJson::string_t, T>::value or std::is_same<typename BasicJson::boolean_t, T>::value or is_compatible_array_type<BasicJson, T>::value or - is_compatible_enum_type<T, typename BasicJson::number_integer_t>::value or - is_compatible_enum_type<T, typename BasicJson::number_unsigned_t>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or is_compatible_float_type<typename BasicJson::number_float_t, T>::value or is_compatible_integer_type<typename BasicJson::number_integer_t, @@ -1624,9 +1601,8 @@ class basic_json not detail::is_compatible_basic_json_type< uncvref_t<T>, basic_json_t>::value and not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and + not std::is_enum<uncvref_t<T>>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and - not detail::is_compatible_enum_type<number_integer_t, uncvref_t<T>>::value and - not detail::is_compatible_enum_type<number_unsigned_t, uncvref_t<T>>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and detail::has_to_json<JSONSerializer, basic_json, uncvref_t<T>>::value, @@ -1797,7 +1773,10 @@ class basic_json @since version 1.0.0 */ - basic_json(const int val) noexcept + + // Quickfix, accept every enum type, without looking if a to_json method is provided... + template <typename T, enable_if_t<std::is_enum<T>::value, int> = 0> + basic_json(T val) noexcept : m_type(value_t::number_integer), m_value(static_cast<number_integer_t>(val)) { @@ -1829,13 +1808,11 @@ class basic_json @since version 1.0.0 */ - template <typename CompatibleNumberIntegerType, - enable_if_t< - detail::is_compatible_integer_type< - number_integer_t, CompatibleNumberIntegerType>::value or - detail::is_compatible_enum_type< - number_integer_t, CompatibleNumberIntegerType>::value, - int> = 0> + template < + typename CompatibleNumberIntegerType, + enable_if_t<detail::is_compatible_integer_type< + number_integer_t, CompatibleNumberIntegerType>::value, + int> = 0> basic_json(const CompatibleNumberIntegerType val) noexcept : m_type(value_t::number_integer), m_value(static_cast<number_integer_t>(val)) { @@ -1890,12 +1867,9 @@ class basic_json */ template < typename CompatibleNumberUnsignedType, - enable_if_t< - detail::is_compatible_integer_type< - number_unsigned_t, CompatibleNumberUnsignedType>::value or - detail::is_compatible_enum_type< - number_integer_t, CompatibleNumberUnsignedType>::value, - int> = 0> + enable_if_t<detail::is_compatible_integer_type< + number_unsigned_t, CompatibleNumberUnsignedType>::value, + int> = 0> basic_json(const CompatibleNumberUnsignedType val) noexcept : m_type(value_t::number_unsigned), m_value(static_cast<number_unsigned_t>(val)) { From 8e43d476d35e53de10fe338e808a7c3a65e4f169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Tue, 13 Dec 2016 22:01:38 +0100 Subject: [PATCH 049/130] add more tests to unit-udt.cpp --- test/src/unit-udt.cpp | 127 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 2518fcfc5..81fae3eed 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -226,3 +226,130 @@ TEST_CASE("basic usage", "[udt]") CHECK(book == parsed_book); } } + +namespace udt +{ +template <typename T> +class optional_type +{ +public: + optional_type() = default; + optional_type(T t) { _impl = std::make_shared<T>(std::move(t)); } + optional_type(std::nullptr_t) { _impl = nullptr; } + + optional_type &operator=(std::nullptr_t) + { + _impl = nullptr; + return *this; + } + + optional_type& operator=(T t) + { + _impl = std::make_shared<T>(std::move(t)); + return *this; + } + + explicit operator bool() const noexcept { return _impl != nullptr; } + T const &operator*() const noexcept { return *_impl; } + T &operator*() noexcept { return *_impl; } + +private: + std::shared_ptr<T> _impl; +}; + +struct legacy_type +{ + std::string number; +}; +} + +namespace nlohmann +{ +template <typename T> +struct adl_serializer<udt::optional_type<T>> +{ + static void to_json(json& j, udt::optional_type<T> const& opt) + { + if (opt) + j = *opt; + else + j = nullptr; + } + + static void from_json(json const &j, udt::optional_type<T> &opt) + { + if (j.is_null()) + opt = nullptr; + else + opt = j.get<T>(); + } +}; + +template <> +struct adl_serializer<udt::legacy_type> +{ + static void to_json(json& j, udt::legacy_type const& l) + { + j = std::stoi(l.number); + } + + static void from_json(json const& j, udt::legacy_type& l) + { + l.number = std::to_string(j.get<int>()); + } +}; +} + +TEST_CASE("adl_serializer specialization", "[udt]") +{ + using nlohmann::json; + + SECTION("partial specialization") + { + SECTION("to_json") + { + udt::optional_type<udt::person> optPerson; + + json j = optPerson; + CHECK(j.is_null()); + + optPerson = udt::person{{42}, {"John Doe"}}; + j = optPerson; + CHECK_FALSE(j.is_null()); + + CHECK(j.get<udt::person>() == *optPerson); + } + + SECTION("from_json") + { + auto person = udt::person{{42}, {"John Doe"}}; + json j = person; + + auto optPerson = j.get<udt::optional_type<udt::person>>(); + REQUIRE(optPerson); + CHECK(*optPerson == person); + + j = nullptr; + optPerson = j.get<udt::optional_type<udt::person>>(); + CHECK(!optPerson); + } + } + + SECTION("total specialization") + { + SECTION("to_json") + { + udt::legacy_type lt{"4242"}; + + json j = lt; + CHECK(j.get<int>() == 4242); + } + + SECTION("from_json") + { + json j = 4242; + auto lt = j.get<udt::legacy_type>(); + CHECK(lt.number == "4242"); + } + } +} From 3d405c6883113b3e26a3ab4fd5200bc2f6299325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Wed, 14 Dec 2016 00:03:55 +0100 Subject: [PATCH 050/130] add support for enum classes --- src/json.hpp | 21 ++++++++++++--- test/src/unit-udt.cpp | 62 ++++++++++++++++++++++++++++++++++++------- 2 files changed, 71 insertions(+), 12 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 35d3d0a60..e60340299 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -122,6 +122,17 @@ using uncvref_t = remove_cv_t<remove_reference_t<T>>; template <bool If, typename Then, typename Else> using conditional_t = typename std::conditional<If, Then, Else>::type; +// Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait +template <typename T> +using is_scoped_enum = + std::integral_constant<bool, not std::is_convertible<T, int>::value and + std::is_enum<T>::value>; + +template <typename T> +using is_unscoped_enum = + std::integral_constant<bool, std::is_convertible<T, int>::value and + std::is_enum<T>::value>; + // TODO update this doc /*! @brief unnamed namespace with internal helper functions @@ -130,6 +141,10 @@ using conditional_t = typename std::conditional<If, Then, Else>::type; namespace detail { +// Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t) +template <typename...> struct make_void { using type = void; }; +template <typename... Ts> using void_t = typename make_void<Ts...>::type; + // Implementation of 3 C++17 constructs: conjunction, disjunction, negation. // This is needed to avoid evaluating all the traits in a condition // @@ -277,6 +292,7 @@ template <typename T, typename BasicJson> struct is_compatible_basic_json_type { static auto constexpr value = + is_unscoped_enum<T>::value or std::is_same<T, BasicJson>::value or std::is_constructible<typename BasicJson::string_t, T>::value or std::is_same<typename BasicJson::boolean_t, T>::value or @@ -1601,7 +1617,6 @@ class basic_json not detail::is_compatible_basic_json_type< uncvref_t<T>, basic_json_t>::value and not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and - not std::is_enum<uncvref_t<T>>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and detail::has_to_json<JSONSerializer, basic_json, @@ -1774,8 +1789,8 @@ class basic_json @since version 1.0.0 */ - // Quickfix, accept every enum type, without looking if a to_json method is provided... - template <typename T, enable_if_t<std::is_enum<T>::value, int> = 0> + // Constructor for unscoped enums (not enum classes) + template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0> basic_json(T val) noexcept : m_type(value_t::number_integer), m_value(static_cast<number_integer_t>(val)) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 81fae3eed..df0e47dd5 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -35,6 +35,13 @@ SOFTWARE. namespace udt { + enum class country + { + china, + france, + russia + }; + struct age { int m_val; @@ -54,6 +61,7 @@ namespace udt { age m_age; name m_name; + country m_country; }; struct contact @@ -69,7 +77,7 @@ namespace udt }; } -// to_json methods for default basic_json +// to_json methods namespace udt { void to_json(nlohmann::json& j, age a) @@ -82,10 +90,26 @@ namespace udt j = n.m_val; } + void to_json(nlohmann::json& j, country c) + { + switch (c) + { + case country::china: + j = u8"中华人民共和国"; + return; + case country::france: + j = "France"; + return; + case country::russia: + j = u8"Российская Федерация"; + return; + } + } + void to_json(nlohmann::json& j, person const& p) { using nlohmann::json; - j = json{{"age", p.m_age}, {"name", p.m_name}}; + j = json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}}; } void to_json(nlohmann::json& j, address const& a) @@ -139,7 +163,7 @@ namespace udt } } -// from_json methods for default basic_json +// from_json methods namespace udt { void from_json(nlohmann::json const& j, age &a) @@ -152,10 +176,24 @@ namespace udt n.m_val = j.get<std::string>(); } + void from_json(nlohmann::json const &j, country &c) + { + const auto str = j.get<std::string>(); + static const std::map<std::string, country> m = { + {u8"中华人民共和国", country::china}, + {"France", country::france}, + {"Российская Федерация", country::russia}}; + + const auto it = m.find(str); + // TODO test exceptions + c = it->second; + } + void from_json(nlohmann::json const& j, person &p) { p.m_age = j["age"].get<age>(); p.m_name = j["name"].get<name>(); + p.m_country = j["country"].get<country>(); } void from_json(nlohmann::json const &j, address &a) @@ -183,29 +221,33 @@ TEST_CASE("basic usage", "[udt]") // a bit narcissic maybe :) ? const udt::age a{23}; const udt::name n{"theo"}; - const udt::person sfinae_addict{a, n}; + const udt::country c{udt::country::france}; + const udt::person sfinae_addict{a, n, c}; + const udt::person senior_programmer{{42}, {u8"王芳"}, udt::country::china}; const udt::address addr{"Paris"}; const udt::contact cpp_programmer{sfinae_addict, addr}; - const udt::contact_book book{{"C++"}, {cpp_programmer, cpp_programmer}}; + const udt::contact_book book{{"C++"}, {cpp_programmer, {senior_programmer, addr}}}; SECTION("conversion to json via free-functions") { CHECK(json(a) == json(23)); CHECK(json(n) == json("theo")); - CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23})"_json); + CHECK(json(c) == json("France")); + CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23, "country":"France"})"_json); CHECK(json("Paris") == json(addr)); CHECK(json(cpp_programmer) == - R"({"person" : {"age":23, "name":"theo"}, "address":"Paris"})"_json); + R"({"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"})"_json); CHECK( json(book) == - R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json); + R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json); + } SECTION("conversion from json via free-functions") { const auto big_json = - R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json; + R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json; const auto parsed_book = big_json.get<udt::contact_book>(); const auto book_name = big_json["name"].get<udt::name>(); const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>(); @@ -214,10 +256,12 @@ TEST_CASE("basic usage", "[udt]") const auto person = contact_json["person"].get<udt::person>(); const auto address = contact_json["address"].get<udt::address>(); const auto age = contact_json["person"]["age"].get<udt::age>(); + const auto country = contact_json["person"]["country"].get<udt::country>(); const auto name = contact_json["person"]["name"].get<udt::name>(); CHECK(age == a); CHECK(name == n); + CHECK(country == c); CHECK(address == addr); CHECK(person == sfinae_addict); CHECK(contact == cpp_programmer); From 7e750ec1fa0e40271a3948e0b8cf4bcacee33994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Wed, 14 Dec 2016 21:53:10 +0100 Subject: [PATCH 051/130] fix msvc, by doubling parenthesis on catch assertions --- test/src/unit-class_lexer.cpp | 130 +++++++++++++++++----------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp index 33ea610a5..40867b19d 100644 --- a/test/src/unit-class_lexer.cpp +++ b/test/src/unit-class_lexer.cpp @@ -38,86 +38,86 @@ TEST_CASE("lexer class") { SECTION("structural characters") { - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("["), - 1).scan() == json::lexer::token_type::begin_array); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("]"), - 1).scan() == json::lexer::token_type::end_array); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("{"), - 1).scan() == json::lexer::token_type::begin_object); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("}"), - 1).scan() == json::lexer::token_type::end_object); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(","), - 1).scan() == json::lexer::token_type::value_separator); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(":"), - 1).scan() == json::lexer::token_type::name_separator); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("["), + 1).scan() == json::lexer::token_type::begin_array)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("]"), + 1).scan() == json::lexer::token_type::end_array)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("{"), + 1).scan() == json::lexer::token_type::begin_object)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("}"), + 1).scan() == json::lexer::token_type::end_object)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(","), + 1).scan() == json::lexer::token_type::value_separator)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(":"), + 1).scan() == json::lexer::token_type::name_separator)); } SECTION("literal names") { - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("null"), - 4).scan() == json::lexer::token_type::literal_null); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("true"), - 4).scan() == json::lexer::token_type::literal_true); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("false"), - 5).scan() == json::lexer::token_type::literal_false); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("null"), + 4).scan() == json::lexer::token_type::literal_null)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("true"), + 4).scan() == json::lexer::token_type::literal_true)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("false"), + 5).scan() == json::lexer::token_type::literal_false)); } SECTION("numbers") { - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("0"), - 1).scan() == json::lexer::token_type::value_number); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1"), - 1).scan() == json::lexer::token_type::value_number); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("2"), - 1).scan() == json::lexer::token_type::value_number); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("3"), - 1).scan() == json::lexer::token_type::value_number); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("4"), - 1).scan() == json::lexer::token_type::value_number); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("5"), - 1).scan() == json::lexer::token_type::value_number); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("6"), - 1).scan() == json::lexer::token_type::value_number); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("7"), - 1).scan() == json::lexer::token_type::value_number); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("8"), - 1).scan() == json::lexer::token_type::value_number); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("9"), - 1).scan() == json::lexer::token_type::value_number); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("0"), + 1).scan() == json::lexer::token_type::value_number)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1"), + 1).scan() == json::lexer::token_type::value_number)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("2"), + 1).scan() == json::lexer::token_type::value_number)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("3"), + 1).scan() == json::lexer::token_type::value_number)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("4"), + 1).scan() == json::lexer::token_type::value_number)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("5"), + 1).scan() == json::lexer::token_type::value_number)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("6"), + 1).scan() == json::lexer::token_type::value_number)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("7"), + 1).scan() == json::lexer::token_type::value_number)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("8"), + 1).scan() == json::lexer::token_type::value_number)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("9"), + 1).scan() == json::lexer::token_type::value_number)); } SECTION("whitespace") { // result is end_of_input, because not token is following - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" "), - 1).scan() == json::lexer::token_type::end_of_input); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\t"), - 1).scan() == json::lexer::token_type::end_of_input); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\n"), - 1).scan() == json::lexer::token_type::end_of_input); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\r"), - 1).scan() == json::lexer::token_type::end_of_input); - CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" \t\n\r\n\t "), - 7).scan() == json::lexer::token_type::end_of_input); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" "), + 1).scan() == json::lexer::token_type::end_of_input)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\t"), + 1).scan() == json::lexer::token_type::end_of_input)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\n"), + 1).scan() == json::lexer::token_type::end_of_input)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\r"), + 1).scan() == json::lexer::token_type::end_of_input)); + CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" \t\n\r\n\t "), + 7).scan() == json::lexer::token_type::end_of_input)); } } SECTION("token_type_name") { - CHECK(json::lexer::token_type_name(json::lexer::token_type::uninitialized) == "<uninitialized>"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_true) == "true literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_false) == "false literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_null) == "null literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::value_string) == "string literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::value_number) == "number literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::begin_array) == "'['"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::begin_object) == "'{'"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::end_array) == "']'"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::end_object) == "'}'"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::name_separator) == "':'"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::value_separator) == "','"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::parse_error) == "<parse error>"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::end_of_input) == "end of input"); + CHECK((json::lexer::token_type_name(json::lexer::token_type::uninitialized) == "<uninitialized>")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_true) == "true literal")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_false) == "false literal")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_null) == "null literal")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::value_string) == "string literal")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::value_number) == "number literal")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::begin_array) == "'['")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::begin_object) == "'{'")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::end_array) == "']'")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::end_object) == "'}'")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::name_separator) == "':'")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::value_separator) == "','")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::parse_error) == "<parse error>")); + CHECK((json::lexer::token_type_name(json::lexer::token_type::end_of_input) == "end of input")); } SECTION("parse errors on first character") @@ -150,7 +150,7 @@ TEST_CASE("lexer class") case ('8'): case ('9'): { - CHECK(res != json::lexer::token_type::parse_error); + CHECK((res != json::lexer::token_type::parse_error)); break; } @@ -160,14 +160,14 @@ TEST_CASE("lexer class") case ('\n'): case ('\r'): { - CHECK(res == json::lexer::token_type::end_of_input); + CHECK((res == json::lexer::token_type::end_of_input)); break; } // anything else is not expected default: { - CHECK(res == json::lexer::token_type::parse_error); + CHECK((res == json::lexer::token_type::parse_error)); break; } } From 1c21c87e6fe4a65268c8eae598587af5aec8f5ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Wed, 14 Dec 2016 22:08:36 +0100 Subject: [PATCH 052/130] use u8 prefix in unit-udt.cpp --- test/src/unit-udt.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index df0e47dd5..e860cc896 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -240,14 +240,14 @@ TEST_CASE("basic usage", "[udt]") CHECK( json(book) == - R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json); + u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json); } SECTION("conversion from json via free-functions") { const auto big_json = - R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json; + u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json; const auto parsed_book = big_json.get<udt::contact_book>(); const auto book_name = big_json["name"].get<udt::name>(); const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>(); From d5ee5830eddc2ec86a2661c3ca644965e176e17a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Thu, 15 Dec 2016 00:06:37 +0100 Subject: [PATCH 053/130] add more tests --- test/src/unit-udt.cpp | 249 +++++++++++++++++++++++++++++++++--------- 1 file changed, 199 insertions(+), 50 deletions(-) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index e860cc896..9ead6eba0 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -33,6 +33,8 @@ SOFTWARE. #include "json.hpp" +using nlohmann::json; + namespace udt { enum class country @@ -80,17 +82,21 @@ namespace udt // to_json methods namespace udt { - void to_json(nlohmann::json& j, age a) + // templates because of the custom_json tests (see below) + template <typename Json> + void to_json(Json& j, age a) { j = a.m_val; } - void to_json(nlohmann::json& j, name const& n) + template <typename Json> + void to_json(Json& j, name const& n) { j = n.m_val; } - void to_json(nlohmann::json& j, country c) + template <typename Json> + void to_json(Json& j, country c) { switch (c) { @@ -106,10 +112,10 @@ namespace udt } } - void to_json(nlohmann::json& j, person const& p) + template <typename Json> + void to_json(Json& j, person const& p) { - using nlohmann::json; - j = json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}}; + j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}}; } void to_json(nlohmann::json& j, address const& a) @@ -119,13 +125,11 @@ namespace udt void to_json(nlohmann::json& j, contact const& c) { - using nlohmann::json; j = json{{"person", c.m_person}, {"address", c.m_address}}; } void to_json(nlohmann::json& j, contact_book const& cb) { - using nlohmann::json; j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}}; } @@ -166,17 +170,20 @@ namespace udt // from_json methods namespace udt { - void from_json(nlohmann::json const& j, age &a) + template <typename Json> + void from_json(Json const& j, age &a) { a.m_val = j.get<int>(); } - void from_json(nlohmann::json const& j, name &n) + template <typename Json> + void from_json(Json const& j, name &n) { n.m_val = j.get<std::string>(); } - void from_json(nlohmann::json const &j, country &c) + template <typename Json> + void from_json(Json const &j, country &c) { const auto str = j.get<std::string>(); static const std::map<std::string, country> m = { @@ -189,7 +196,8 @@ namespace udt c = it->second; } - void from_json(nlohmann::json const& j, person &p) + template <typename Json> + void from_json(Json const& j, person &p) { p.m_age = j["age"].get<age>(); p.m_name = j["name"].get<name>(); @@ -216,7 +224,6 @@ namespace udt TEST_CASE("basic usage", "[udt]") { - using nlohmann::json; // a bit narcissic maybe :) ? const udt::age a{23}; @@ -273,34 +280,6 @@ TEST_CASE("basic usage", "[udt]") namespace udt { -template <typename T> -class optional_type -{ -public: - optional_type() = default; - optional_type(T t) { _impl = std::make_shared<T>(std::move(t)); } - optional_type(std::nullptr_t) { _impl = nullptr; } - - optional_type &operator=(std::nullptr_t) - { - _impl = nullptr; - return *this; - } - - optional_type& operator=(T t) - { - _impl = std::make_shared<T>(std::move(t)); - return *this; - } - - explicit operator bool() const noexcept { return _impl != nullptr; } - T const &operator*() const noexcept { return *_impl; } - T &operator*() noexcept { return *_impl; } - -private: - std::shared_ptr<T> _impl; -}; - struct legacy_type { std::string number; @@ -310,9 +289,9 @@ struct legacy_type namespace nlohmann { template <typename T> -struct adl_serializer<udt::optional_type<T>> +struct adl_serializer<std::shared_ptr<T>> { - static void to_json(json& j, udt::optional_type<T> const& opt) + static void to_json(json& j, std::shared_ptr<T> const& opt) { if (opt) j = *opt; @@ -320,12 +299,12 @@ struct adl_serializer<udt::optional_type<T>> j = nullptr; } - static void from_json(json const &j, udt::optional_type<T> &opt) + static void from_json(json const &j, std::shared_ptr<T> &opt) { if (j.is_null()) opt = nullptr; else - opt = j.get<T>(); + opt.reset(new T(j.get<T>())); } }; @@ -346,18 +325,17 @@ struct adl_serializer<udt::legacy_type> TEST_CASE("adl_serializer specialization", "[udt]") { - using nlohmann::json; SECTION("partial specialization") { SECTION("to_json") { - udt::optional_type<udt::person> optPerson; + std::shared_ptr<udt::person> optPerson; json j = optPerson; CHECK(j.is_null()); - optPerson = udt::person{{42}, {"John Doe"}}; + optPerson.reset(new udt::person{{42}, {"John Doe"}}); j = optPerson; CHECK_FALSE(j.is_null()); @@ -369,12 +347,12 @@ TEST_CASE("adl_serializer specialization", "[udt]") auto person = udt::person{{42}, {"John Doe"}}; json j = person; - auto optPerson = j.get<udt::optional_type<udt::person>>(); + auto optPerson = j.get<std::shared_ptr<udt::person>>(); REQUIRE(optPerson); CHECK(*optPerson == person); j = nullptr; - optPerson = j.get<udt::optional_type<udt::person>>(); + optPerson = j.get<std::shared_ptr<udt::person>>(); CHECK(!optPerson); } } @@ -397,3 +375,174 @@ TEST_CASE("adl_serializer specialization", "[udt]") } } } + +namespace nlohmann +{ +// this might work in the future, not in the scope of this PR though +// we have to make this very clear in the doc +template <typename T> +struct adl_serializer<std::vector<T>> +{ + static void to_json(json& j, std::vector<T> const& opt) + { + } + + static void from_json(json const &j, std::vector<T> &opt) + { + } +}; +} + +TEST_CASE("current supported types are preferred over specializations", "[udt]") +{ + + json j = std::vector<int>{1, 2, 3}; + auto f = j.get<std::vector<int>>(); + CHECK((f == std::vector<int>{1, 2, 3})); +} + +namespace nlohmann +{ +template <typename T> +struct adl_serializer<std::unique_ptr<T>> +{ + static void to_json(json& j, std::unique_ptr<T> const& opt) + { + if (opt) + j = *opt; + else + j = nullptr; + } + + // this is the overload needed for non-copyable types, + // should we add a priority tag in the implementation to prefer this overload if it exists? + static std::unique_ptr<T> from_json(json const &j) + { + if (j.is_null()) + return nullptr; + else + return std::unique_ptr<T>(new T(j.get<T>())); + } +}; +} + +TEST_CASE("Non-copyable types", "[udt]") +{ + SECTION("to_json") + { + std::unique_ptr<udt::person> optPerson; + + json j = optPerson; + CHECK(j.is_null()); + + optPerson.reset(new udt::person{{42}, {"John Doe"}}); + j = optPerson; + CHECK_FALSE(j.is_null()); + + CHECK(j.get<udt::person>() == *optPerson); + } + + SECTION("from_json") + { + auto person = udt::person{{42}, {"John Doe"}}; + json j = person; + + auto optPerson = j.get<std::unique_ptr<udt::person>>(); + REQUIRE(optPerson); + CHECK(*optPerson == person); + + j = nullptr; + optPerson = j.get<std::unique_ptr<udt::person>>(); + CHECK(!optPerson); + } +} + +// custom serializer +// advanced usage (I did not have a real use case in mind) +template <typename T, typename = typename std::enable_if<std::is_pod<T>::value>::type> +struct pod_serializer +{ + // I could forward-declare this struct, and add a basic_json alias + template <typename Json> + static void from_json(Json const& j , T& t) + { + auto value = j.template get<std::uint64_t>(); + auto bytes = static_cast<char*>(static_cast<void*>(&value)); + std::memcpy(&t, bytes, sizeof(value)); + } + + template <typename Json> + static void to_json(Json& j, T const& t) + { + auto bytes = static_cast<char const*>(static_cast<void const*>(&t)); + std::uint64_t value = bytes[0]; + for (auto i = 1; i < 8; ++i) + value |= bytes[i] << 8 * i; + + j = value; + } +}; + +namespace udt +{ +struct small_pod +{ + int begin; + char middle; + short end; +}; + +bool operator==(small_pod lhs, small_pod rhs) +{ + return std::tie(lhs.begin, lhs.middle, lhs.end) == + std::tie(lhs.begin, lhs.middle, lhs.end); +} +} + +TEST_CASE("custom serializer for pods", "[udt]") +{ + using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, pod_serializer>; + + auto p = udt::small_pod{42, '/', 42}; + custom_json j = p; + + auto p2 = j.get<udt::small_pod>(); + + CHECK(p == p2); +} + +template <typename T, typename> +struct another_adl_serializer; + + using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, another_adl_serializer>; + +template <typename T, typename> +struct another_adl_serializer +{ + static void from_json(custom_json const& j , T& t) + { + using nlohmann::from_json; + from_json(j, t); + } + + static void to_json(custom_json& j , T const& t) + { + using nlohmann::to_json; + to_json(j, t); + } +}; + +TEST_CASE("custom serializer that does adl by default", "[udt]") +{ + using json = nlohmann::json; + + auto me = udt::person{23, "theo", udt::country::france}; + + json j = me; + custom_json cj = me; + + CHECK(j.dump() == cj.dump()); + + CHECK(me == j.get<udt::person>()); + CHECK(me == cj.get<udt::person>()); +} From aa2679a8ce1f92b107907cd188762d3c7b0ee9ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Thu, 15 Dec 2016 12:22:53 +0100 Subject: [PATCH 054/130] fix tests, avoid instantiating JSONSerializer when it will not be used --- src/json.hpp | 19 ++++++++++--------- test/src/unit-udt.cpp | 14 +++++++------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index e60340299..f883d9ed0 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -1614,13 +1614,14 @@ class basic_json template < typename T, enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and - not detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>::value and not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and + + detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, detail::has_to_json<JSONSerializer, basic_json, - uncvref_t<T>>::value, + uncvref_t<T>>>::value, int> = 0> basic_json(T &&val) { @@ -3311,10 +3312,10 @@ class basic_json template < typename T, - enable_if_t<not detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>::value and + enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, detail::has_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>::value, + uncvref_t<T>>>::value, int> = 0> auto get() const -> uncvref_t<T> { @@ -3331,10 +3332,10 @@ class basic_json // This overload is chosen for non-default constructible user-defined-types template < typename T, - enable_if_t<not detail::is_compatible_basic_json_type< - T, basic_json_t>::value and + enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, detail::has_non_default_from_json<JSONSerializer, basic_json_t, - T>::value, + uncvref_t<T>>>::value, short> = 0> T get() const { diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 9ead6eba0..364c5ae7b 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -27,6 +27,7 @@ SOFTWARE. */ #include <array> +#include <map> #include <string> #include <memory> #include "catch.hpp" @@ -173,19 +174,19 @@ namespace udt template <typename Json> void from_json(Json const& j, age &a) { - a.m_val = j.get<int>(); + a.m_val = j.template get<int>(); } template <typename Json> void from_json(Json const& j, name &n) { - n.m_val = j.get<std::string>(); + n.m_val = j.template get<std::string>(); } template <typename Json> void from_json(Json const &j, country &c) { - const auto str = j.get<std::string>(); + const auto str = j.template get<std::string>(); static const std::map<std::string, country> m = { {u8"中华人民共和国", country::china}, {"France", country::france}, @@ -199,9 +200,9 @@ namespace udt template <typename Json> void from_json(Json const& j, person &p) { - p.m_age = j["age"].get<age>(); - p.m_name = j["name"].get<name>(); - p.m_country = j["country"].get<country>(); + p.m_age = j["age"].template get<age>(); + p.m_name = j["name"].template get<name>(); + p.m_country = j["country"].template get<country>(); } void from_json(nlohmann::json const &j, address &a) @@ -325,7 +326,6 @@ struct adl_serializer<udt::legacy_type> TEST_CASE("adl_serializer specialization", "[udt]") { - SECTION("partial specialization") { SECTION("to_json") From be1d3de49be7cf8453171b9c0bc5149a6404c68d Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Sun, 18 Dec 2016 20:32:09 +0100 Subject: [PATCH 055/130] :lipstick: moved changes to re2c file and ran `make pretty` --- src/json.hpp | 6315 +++++++++++++++++---------------- src/json.hpp.re2c | 4716 +++++++++++++----------- test/src/unit-class_lexer.cpp | 48 +- test/src/unit-udt.cpp | 623 ++-- 4 files changed, 6100 insertions(+), 5602 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index f883d9ed0..7325e7c89 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -126,12 +126,12 @@ using conditional_t = typename std::conditional<If, Then, Else>::type; template <typename T> using is_scoped_enum = std::integral_constant<bool, not std::is_convertible<T, int>::value and - std::is_enum<T>::value>; + std::is_enum<T>::value>; template <typename T> using is_unscoped_enum = std::integral_constant<bool, std::is_convertible<T, int>::value and - std::is_enum<T>::value>; + std::is_enum<T>::value>; // TODO update this doc /*! @@ -142,7 +142,10 @@ using is_unscoped_enum = namespace detail { // Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t) -template <typename...> struct make_void { using type = void; }; +template <typename...> struct make_void +{ + using type = void; +}; template <typename... Ts> using void_t = typename make_void<Ts...>::type; // Implementation of 3 C++17 constructs: conjunction, disjunction, negation. @@ -160,14 +163,14 @@ template <class...> struct conjunction : std::true_type {}; template <class B1> struct conjunction<B1> : B1 {}; template <class B1, class... Bn> struct conjunction<B1, Bn...> - : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {}; +: conditional_t<bool(B1::value), conjunction<Bn...>, B1> {}; -template <class B> struct negation : std::integral_constant<bool, !B::value> {}; +template <class B> struct negation : std::integral_constant < bool, !B::value > {}; template <class...> struct disjunction : std::false_type {}; template <class B1> struct disjunction<B1> : B1 {}; template <class B1, class... Bn> struct disjunction<B1, Bn...> - : conditional_t<bool(B1::value), B1, disjunction<Bn...>> {}; +: conditional_t<bool(B1::value), B1, disjunction<Bn...>> {}; /*! @brief Helper to determine whether there's a key_type for T. @@ -178,17 +181,17 @@ contains a `mapped_type`, whereas `std::vector` fails the test. @since version 1.0.0, overworked in version 2.0.6 */ #define NLOHMANN_JSON_HAS_HELPER(type) \ - template <typename T> struct has_##type { \ - private: \ - template <typename U, typename = typename U::type> \ - static int detect(U &&); \ - \ - static void detect(...); \ - \ - public: \ - static constexpr bool value = \ - std::is_integral<decltype(detect(std::declval<T>()))>::value; \ - }; + template <typename T> struct has_##type { \ + private: \ + template <typename U, typename = typename U::type> \ + static int detect(U &&); \ + \ + static void detect(...); \ + \ + public: \ + static constexpr bool value = \ + std::is_integral<decltype(detect(std::declval<T>()))>::value; \ + }; NLOHMANN_JSON_HAS_HELPER(mapped_type) NLOHMANN_JSON_HAS_HELPER(key_type) @@ -198,122 +201,122 @@ NLOHMANN_JSON_HAS_HELPER(iterator) #undef NLOHMANN_JSON_HAS_HELPER template <bool B, class RealType, class CompatibleObjectType> -struct is_compatible_object_type_impl : std::false_type{}; +struct is_compatible_object_type_impl : std::false_type {}; template <class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> { - static constexpr auto value = - std::is_constructible<typename RealType::key_type, - typename CompatibleObjectType::key_type>::value and - std::is_constructible<typename RealType::mapped_type, - typename CompatibleObjectType::mapped_type>::value; + static constexpr auto value = + std::is_constructible<typename RealType::key_type, + typename CompatibleObjectType::key_type>::value and + std::is_constructible<typename RealType::mapped_type, + typename CompatibleObjectType::mapped_type>::value; }; template<class RealType, class CompatibleObjectType> struct is_compatible_object_type { - // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void - // hence the conjunction - static auto constexpr value = is_compatible_object_type_impl< - conjunction<negation<std::is_same<void, CompatibleObjectType>>, - has_mapped_type<CompatibleObjectType>, - has_key_type<CompatibleObjectType>>::value, - RealType, CompatibleObjectType>::value; + // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void + // hence the conjunction + static auto constexpr value = is_compatible_object_type_impl < + conjunction<negation<std::is_same<void, CompatibleObjectType>>, + has_mapped_type<CompatibleObjectType>, + has_key_type<CompatibleObjectType>>::value, + RealType, CompatibleObjectType >::value; }; template <bool B, class BasicJson, class CompatibleArrayType> -struct is_compatible_array_type_impl : std::false_type{}; +struct is_compatible_array_type_impl : std::false_type {}; template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> { - static constexpr auto value = - not std::is_same<CompatibleArrayType, - typename BasicJson::iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::const_iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::reverse_iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::const_reverse_iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::array_t::iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::array_t::const_iterator>::value; + static constexpr auto value = + not std::is_same<CompatibleArrayType, + typename BasicJson::iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::const_iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::reverse_iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::const_reverse_iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::array_t::iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::array_t::const_iterator>::value; }; template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - // the check for CompatibleArrayType = void is done in is_compatible_object_type - // but we need the conjunction here as well - static auto constexpr value = is_compatible_array_type_impl< - conjunction<negation<is_compatible_object_type< - typename BasicJson::object_t, CompatibleArrayType>>, - has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value, - BasicJson, CompatibleArrayType>::value; + // the check for CompatibleArrayType = void is done in is_compatible_object_type + // but we need the conjunction here as well + static auto constexpr value = is_compatible_array_type_impl < + conjunction<negation<is_compatible_object_type< + typename BasicJson::object_t, CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value, + BasicJson, CompatibleArrayType >::value; }; template <bool, typename, typename> -struct is_compatible_integer_type_impl : std::false_type{}; +struct is_compatible_integer_type_impl : std::false_type {}; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> { - using RealLimits = std::numeric_limits<RealIntegerType>; - using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>; + using RealLimits = std::numeric_limits<RealIntegerType>; + using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>; - static constexpr auto value = - std::is_constructible<RealIntegerType, - CompatibleNumberIntegerType>::value and - CompatibleLimits::is_integer and - RealLimits::is_signed == CompatibleLimits::is_signed; + static constexpr auto value = + std::is_constructible<RealIntegerType, + CompatibleNumberIntegerType>::value and + CompatibleLimits::is_integer and + RealLimits::is_signed == CompatibleLimits::is_signed; }; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { - static constexpr auto value = is_compatible_integer_type_impl< - std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, - CompatibleNumberIntegerType>::value; + static constexpr auto value = is_compatible_integer_type_impl < + std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, + CompatibleNumberIntegerType >::value; }; template <typename RealFloat, typename CompatibleFloat> struct is_compatible_float_type { - static constexpr auto value = - std::is_constructible<RealFloat, CompatibleFloat>::value and - std::is_floating_point<CompatibleFloat>::value; + static constexpr auto value = + std::is_constructible<RealFloat, CompatibleFloat>::value and + std::is_floating_point<CompatibleFloat>::value; }; template <typename T, typename BasicJson> struct is_compatible_basic_json_type { - static auto constexpr value = - is_unscoped_enum<T>::value or - std::is_same<T, BasicJson>::value or - std::is_constructible<typename BasicJson::string_t, T>::value or - std::is_same<typename BasicJson::boolean_t, T>::value or - is_compatible_array_type<BasicJson, T>::value or - is_compatible_object_type<typename BasicJson::object_t, T>::value or - is_compatible_float_type<typename BasicJson::number_float_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_integer_t, - T>::value or - is_compatible_integer_type<typename BasicJson::number_unsigned_t, - T>::value; + static auto constexpr value = + is_unscoped_enum<T>::value or + std::is_same<T, BasicJson>::value or + std::is_constructible<typename BasicJson::string_t, T>::value or + std::is_same<typename BasicJson::boolean_t, T>::value or + is_compatible_array_type<BasicJson, T>::value or + is_compatible_object_type<typename BasicJson::object_t, T>::value or + is_compatible_float_type<typename BasicJson::number_float_t, T>::value or + is_compatible_integer_type<typename BasicJson::number_integer_t, + T>::value or + is_compatible_integer_type<typename BasicJson::number_unsigned_t, + T>::value; }; template <typename T, typename BasicJson, typename PrimitiveIterator> struct is_basic_json_nested_class { - static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or - std::is_same<T, typename BasicJson::const_iterator>::value or - std::is_same<T, typename BasicJson::reverse_iterator>::value or - std::is_same<T, typename BasicJson::const_reverse_iterator>::value or - std::is_same<T, PrimitiveIterator>::value or - std::is_same<T, typename BasicJson::json_pointer>::value; + static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or + std::is_same<T, typename BasicJson::const_iterator>::value or + std::is_same<T, typename BasicJson::reverse_iterator>::value or + std::is_same<T, typename BasicJson::const_reverse_iterator>::value or + std::is_same<T, PrimitiveIterator>::value or + std::is_same<T, typename BasicJson::json_pointer>::value; }; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists @@ -321,17 +324,17 @@ template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_from_json { -private: - // also check the return type of from_json - template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( - std::declval<Json>(), std::declval<T &>()))>::value>> - static int detect(U &&); + private: + // also check the return type of from_json + template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( + std::declval<Json>(), std::declval<T&>()))>::value>> + static int detect(U&&); - static void detect(...); + static void detect(...); -public: - static constexpr bool value = std::is_integral<decltype( - detect(std::declval<JSONSerializer<T, void>>()))>::value; + public: + static constexpr bool value = std::is_integral<decltype( + detect(std::declval<JSONSerializer<T, void>>()))>::value; }; // This trait checks if JSONSerializer<T>::from_json(json const&) exists @@ -340,15 +343,15 @@ template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_non_default_from_json { -private: - template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> - static int detect(U &&); + private: + template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> + static int detect(U&&); - static void detect(...); + static void detect(...); -public: - static constexpr bool value = std::is_integral<decltype( - detect(std::declval<JSONSerializer<T, void>>()))>::value; + public: + static constexpr bool value = std::is_integral<decltype( + detect(std::declval<JSONSerializer<T, void>>()))>::value; }; // This trait checks if JSONSerializer<T>::to_json exists @@ -356,16 +359,16 @@ template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_to_json { -private: - template <typename U, typename = decltype(uncvref_t<U>::to_json( - std::declval<Json &>(), std::declval<T>()))> - static int detect(U &&); + private: + template <typename U, typename = decltype(uncvref_t<U>::to_json( + std::declval<Json&>(), std::declval<T>()))> + static int detect(U&&); - static void detect(...); + static void detect(...); -public: - static constexpr bool value = std::is_integral<decltype( - detect(std::declval<JSONSerializer<T, void>>()))>::value; + public: + static constexpr bool value = std::is_integral<decltype( + detect(std::declval<JSONSerializer<T, void>>()))>::value; }; // those declarations are needed to workaround a MSVC bug related to ADL @@ -375,26 +378,26 @@ void from_json(); struct to_json_fn { - // is it really useful to mark those as constexpr? - template <typename Json, typename T> - constexpr auto operator()(Json &&j, T &&val) const - noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) - -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), - void()) - { - return to_json(std::forward<Json>(j), std::forward<T>(val)); - } + // is it really useful to mark those as constexpr? + template <typename Json, typename T> + constexpr auto operator()(Json&& j, T&& val) const + noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) + -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), + void()) + { + return to_json(std::forward<Json>(j), std::forward<T>(val)); + } }; struct from_json_fn { - template <typename Json, typename T> - constexpr auto operator()(Json &&j, T &val) const - noexcept(noexcept(from_json(std::forward<Json>(j), val))) - -> decltype(from_json(std::forward<Json>(j), val), void()) - { - return from_json(std::forward<Json>(j), val); - } + template <typename Json, typename T> + constexpr auto operator()(Json&& j, T& val) const + noexcept(noexcept(from_json(std::forward<Json>(j), val))) + -> decltype(from_json(std::forward<Json>(j), val), void()) + { + return from_json(std::forward<Json>(j), val); + } }; /*! @@ -423,7 +426,7 @@ struct DecimalSeparator : std::numpunct<char> template <typename T> struct static_const { - static constexpr T value{}; + static constexpr T value{}; }; template <typename T> @@ -431,8 +434,8 @@ constexpr T static_const<T>::value; inline namespace { - constexpr auto const& to_json = static_const<detail::to_json_fn>::value; - constexpr auto const& from_json = static_const<detail::from_json_fn>::value; +constexpr auto const& to_json = static_const<detail::to_json_fn>::value; +constexpr auto const& from_json = static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument @@ -440,17 +443,17 @@ inline namespace template <typename = void, typename = void> struct adl_serializer { - template <typename Json, typename T> - static void from_json(Json&& j, T& val) - { - ::nlohmann::from_json(std::forward<Json>(j), val); - } + template <typename Json, typename T> + static void from_json(Json&& j, T& val) + { + ::nlohmann::from_json(std::forward<Json>(j), val); + } - template <typename Json, typename T> - static void to_json(Json& j, T&& val) - { - ::nlohmann::to_json(j, std::forward<T>(val)); - } + template <typename Json, typename T> + static void to_json(Json& j, T&& val) + { + ::nlohmann::to_json(j, std::forward<T>(val)); + } }; /*! @@ -1535,12 +1538,12 @@ class basic_json enable_if_t<detail::is_compatible_object_type< object_t, CompatibleObjectType>::value, int> = 0> - basic_json(const CompatibleObjectType &val) : m_type(value_t::object) + basic_json(const CompatibleObjectType& val) : m_type(value_t::object) { - using std::begin; - using std::end; - m_value.object = create<object_t>(begin(val), end(val)); - assert_invariant(); + using std::begin; + using std::end; + m_value.object = create<object_t>(begin(val), end(val)); + assert_invariant(); } /*! @@ -1598,12 +1601,12 @@ class basic_json enable_if_t<detail::is_compatible_array_type< basic_json_t, CompatibleArrayType>::value, int> = 0> - basic_json(const CompatibleArrayType &val) : m_type(value_t::array) + basic_json(const CompatibleArrayType& val) : m_type(value_t::array) { - using std::begin; - using std::end; - m_value.array = create<array_t>(begin(val), end(val)); - assert_invariant(); + using std::begin; + using std::end; + m_value.array = create<array_t>(begin(val), end(val)); + assert_invariant(); } @@ -1614,18 +1617,18 @@ class basic_json template < typename T, enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and - not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and - not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and - not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and + not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and + not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and + not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and - detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, - detail::has_to_json<JSONSerializer, basic_json, - uncvref_t<T>>>::value, - int> = 0> - basic_json(T &&val) + detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, + detail::has_to_json<JSONSerializer, basic_json, + uncvref_t<T>>>::value, + int> = 0 > + basic_json(T && val) { - JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); + JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } /*! @@ -1828,11 +1831,12 @@ class basic_json typename CompatibleNumberIntegerType, enable_if_t<detail::is_compatible_integer_type< number_integer_t, CompatibleNumberIntegerType>::value, - int> = 0> + int> = 0 > basic_json(const CompatibleNumberIntegerType val) noexcept : m_type(value_t::number_integer), - m_value(static_cast<number_integer_t>(val)) { - assert_invariant(); + m_value(static_cast<number_integer_t>(val)) + { + assert_invariant(); } /*! @@ -1885,11 +1889,12 @@ class basic_json typename CompatibleNumberUnsignedType, enable_if_t<detail::is_compatible_integer_type< number_unsigned_t, CompatibleNumberUnsignedType>::value, - int> = 0> + int> = 0 > basic_json(const CompatibleNumberUnsignedType val) noexcept : m_type(value_t::number_unsigned), - m_value(static_cast<number_unsigned_t>(val)) { - assert_invariant(); + m_value(static_cast<number_unsigned_t>(val)) + { + assert_invariant(); } /*! @@ -2123,7 +2128,7 @@ class basic_json @since version 1.0.0 */ static basic_json array(std::initializer_list<basic_json> init = - std::initializer_list<basic_json>()) + std::initializer_list<basic_json>()) { return basic_json(init, false, value_t::array); } @@ -2163,7 +2168,7 @@ class basic_json @since version 1.0.0 */ static basic_json object(std::initializer_list<basic_json> init = - std::initializer_list<basic_json>()) + std::initializer_list<basic_json>()) { return basic_json(init, false, value_t::object); } @@ -2504,7 +2509,7 @@ class basic_json std::is_nothrow_move_assignable<value_t>::value and std::is_nothrow_move_constructible<json_value>::value and std::is_nothrow_move_assignable<json_value>::value - ) + ) { // check that passed value is valid other.assert_invariant(); @@ -2521,59 +2526,65 @@ class basic_json template <typename T, enable_if_t<not detail::is_compatible_basic_json_type< uncvref_t<T>, basic_json_t>::value and detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>> - reference &operator=(T &&val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and + reference& operator=(T&& val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and std::is_nothrow_move_assignable<uncvref_t<T>>::value) { - static_assert(sizeof(T) == 0 , ""); - // I'm not sure this a is good practice... - return *this = basic_json_t{std::forward<T>(val)}; + static_assert(sizeof(T) == 0 , ""); + // I'm not sure this a is good practice... + return *this = basic_json_t{std::forward<T>(val)}; } - /*! - @brief destructor + /*! + @brief destructor - Destroys the JSON value and frees all allocated memory. + Destroys the JSON value and frees all allocated memory. - @complexity Linear. + @complexity Linear. - @requirement This function helps `basic_json` satisfying the - [Container](http://en.cppreference.com/w/cpp/concept/Container) - requirements: - - The complexity is linear. - - All stored elements are destroyed and all memory is freed. + @requirement This function helps `basic_json` satisfying the + [Container](http://en.cppreference.com/w/cpp/concept/Container) + requirements: + - The complexity is linear. + - All stored elements are destroyed and all memory is freed. - @since version 1.0.0 - */ - ~basic_json() { - assert_invariant(); + @since version 1.0.0 + */ + ~basic_json() + { + assert_invariant(); - switch (m_type) { - case value_t::object: { - AllocatorType<object_t> alloc; - alloc.destroy(m_value.object); - alloc.deallocate(m_value.object, 1); - break; - } + switch (m_type) + { + case value_t::object: + { + AllocatorType<object_t> alloc; + alloc.destroy(m_value.object); + alloc.deallocate(m_value.object, 1); + break; + } - case value_t::array: { - AllocatorType<array_t> alloc; - alloc.destroy(m_value.array); - alloc.deallocate(m_value.array, 1); - break; - } + case value_t::array: + { + AllocatorType<array_t> alloc; + alloc.destroy(m_value.array); + alloc.deallocate(m_value.array, 1); + break; + } - case value_t::string: { - AllocatorType<string_t> alloc; - alloc.destroy(m_value.string); - alloc.deallocate(m_value.string, 1); - break; - } + case value_t::string: + { + AllocatorType<string_t> alloc; + alloc.destroy(m_value.string); + alloc.deallocate(m_value.string, 1); + break; + } - default: { - // all other types need no specific destructor - break; - } - } + default: + { + // all other types need no specific destructor + break; + } + } } /// @} @@ -3025,15 +3036,15 @@ class basic_json /// get an array (explicit) template < class T, - typename std::enable_if< + typename std::enable_if < std::is_convertible<basic_json_t, typename T::value_type>::value and - not std::is_same<basic_json_t, - typename T::value_type>::value and - not std::is_arithmetic<T>::value and - not std::is_convertible<std::string, T>::value and - not detail::has_mapped_type<T>::value, - int>::type = 0> - T get_impl(T *) const + not std::is_same<basic_json_t, + typename T::value_type>::value and + not std::is_arithmetic<T>::value and + not std::is_convertible<std::string, T>::value and + not detail::has_mapped_type<T>::value, + int >::type = 0 > + T get_impl(T*) const { if (is_array()) { @@ -3305,41 +3316,41 @@ class basic_json template <typename ValueType, enable_if_t<not std::is_pointer<ValueType>::value, int> = 0> auto get() const - -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) + -> decltype(this->get_impl(static_cast<ValueType*>(nullptr))) { - return get_impl(static_cast<ValueType *>(nullptr)); + return get_impl(static_cast<ValueType*>(nullptr)); } template < typename T, enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, - detail::has_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>>::value, - int> = 0> - auto get() const -> uncvref_t<T> + uncvref_t<T>, basic_json_t>>, + detail::has_from_json<JSONSerializer, basic_json_t, + uncvref_t<T>>>::value, + int> = 0 > + auto get() const -> uncvref_t<T> { - using type = uncvref_t<T>; - static_assert(std::is_default_constructible<type>::value && - std::is_copy_constructible<type>::value, - "user-defined types must be DefaultConstructible and " - "CopyConstructible when used with get"); - type ret; - JSONSerializer<type>::from_json(*this, ret); - return ret; + using type = uncvref_t<T>; + static_assert(std::is_default_constructible<type>::value&& + std::is_copy_constructible<type>::value, + "user-defined types must be DefaultConstructible and " + "CopyConstructible when used with get"); + type ret; + JSONSerializer<type>::from_json(*this, ret); + return ret; } // This overload is chosen for non-default constructible user-defined-types template < typename T, enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, - detail::has_non_default_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>>::value, - short> = 0> - T get() const + uncvref_t<T>, basic_json_t>>, + detail::has_non_default_from_json<JSONSerializer, basic_json_t, + uncvref_t<T>>>::value, + short> = 0 > + T get() const { - return JSONSerializer<T>::from_json(*this); + return JSONSerializer<T>::from_json(*this); } /*! @@ -3421,8 +3432,8 @@ class basic_json { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const<typename - std::remove_pointer<typename - std::remove_const<PointerType>::type>::type>::type; + std::remove_pointer<typename + std::remove_const<PointerType>::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same<object_t, pointee_t>::value @@ -3449,8 +3460,8 @@ class basic_json { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const<typename - std::remove_pointer<typename - std::remove_const<PointerType>::type>::type>::type; + std::remove_pointer<typename + std::remove_const<PointerType>::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same<object_t, pointee_t>::value @@ -4503,14 +4514,14 @@ class basic_json case value_t::object: { result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, - last.m_it.object_iterator); + last.m_it.object_iterator); break; } case value_t::array: { result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, - last.m_it.array_iterator); + last.m_it.array_iterator); break; } @@ -5727,9 +5738,9 @@ class basic_json // insert to array and return iterator iterator result(this); result.m_it.array_iterator = m_value.array->insert( - pos.m_it.array_iterator, - first.m_it.array_iterator, - last.m_it.array_iterator); + pos.m_it.array_iterator, + first.m_it.array_iterator, + last.m_it.array_iterator); return result; } @@ -5799,7 +5810,7 @@ class basic_json std::is_nothrow_move_assignable<value_t>::value and std::is_nothrow_move_constructible<json_value>::value and std::is_nothrow_move_assignable<json_value>::value - ) + ) { std::swap(m_type, other.m_type); std::swap(m_value, other.m_value); @@ -8399,13 +8410,13 @@ class basic_json o << (pretty_print ? ",\n" : ","); } o << string_t(new_indent, ' ') << "\"" - << escape_string(i->first) << "\":" - << (pretty_print ? " " : ""); - i->second.dump(o, pretty_print, indent_step, new_indent); + << escape_string(i->first) << "\":" + << (pretty_print ? " " : ""); + i->second.dump(o, pretty_print, indent_step, new_indent); } - // decrease indentation - if (pretty_print) + // decrease indentation + if (pretty_print) { new_indent -= indent_step; o << "\n"; @@ -8450,16 +8461,16 @@ class basic_json } o << string_t(new_indent, ' ') << "]"; - return; + return; } - case value_t::string: + case value_t::string: { o << string_t("\"") << escape_string(*m_value.string) << "\""; - return; + return; } - case value_t::boolean: + case value_t::boolean: { o << (m_value.boolean ? "true" : "false"); return; @@ -8533,126 +8544,126 @@ class basic_json */ class primitive_iterator_t { - public: + public: difference_type get_value() const noexcept - { - return m_it; - } - /// set iterator to a defined beginning - void set_begin() noexcept - { - m_it = begin_value; - } + { + return m_it; + } + /// set iterator to a defined beginning + void set_begin() noexcept + { + m_it = begin_value; + } - /// set iterator to a defined past the end - void set_end() noexcept - { - m_it = end_value; - } + /// set iterator to a defined past the end + void set_end() noexcept + { + m_it = end_value; + } - /// return whether the iterator can be dereferenced - constexpr bool is_begin() const noexcept - { - return (m_it == begin_value); - } + /// return whether the iterator can be dereferenced + constexpr bool is_begin() const noexcept + { + return (m_it == begin_value); + } - /// return whether the iterator is at end - constexpr bool is_end() const noexcept - { - return (m_it == end_value); - } + /// return whether the iterator is at end + constexpr bool is_end() const noexcept + { + return (m_it == end_value); + } - friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it == rhs.m_it; - } + friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it == rhs.m_it; + } - friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return !(lhs == rhs); - } + friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return !(lhs == rhs); + } - friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it < rhs.m_it; - } + friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it < rhs.m_it; + } - friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it <= rhs.m_it; - } + friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it <= rhs.m_it; + } - friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it > rhs.m_it; - } + friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it > rhs.m_it; + } - friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it >= rhs.m_it; - } + friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it >= rhs.m_it; + } - primitive_iterator_t operator+(difference_type i) - { - auto result = *this; - result += i; - return result; - } + primitive_iterator_t operator+(difference_type i) + { + auto result = *this; + result += i; + return result; + } - friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it - rhs.m_it; - } + friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it - rhs.m_it; + } - friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it) - { - return os << it.m_it; - } + friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it) + { + return os << it.m_it; + } - primitive_iterator_t& operator++() - { - ++m_it; - return *this; - } + primitive_iterator_t& operator++() + { + ++m_it; + return *this; + } - primitive_iterator_t& operator++(int) - { - m_it++; - return *this; - } + primitive_iterator_t& operator++(int) + { + m_it++; + return *this; + } - primitive_iterator_t& operator--() - { - --m_it; - return *this; - } + primitive_iterator_t& operator--() + { + --m_it; + return *this; + } - primitive_iterator_t& operator--(int) - { - m_it--; - return *this; - } + primitive_iterator_t& operator--(int) + { + m_it--; + return *this; + } - primitive_iterator_t& operator+=(difference_type n) - { - m_it += n; - return *this; - } + primitive_iterator_t& operator+=(difference_type n) + { + m_it += n; + return *this; + } - primitive_iterator_t& operator-=(difference_type n) - { - m_it -= n; - return *this; - } + primitive_iterator_t& operator-=(difference_type n) + { + m_it -= n; + return *this; + } - private: - static constexpr difference_type begin_value = 0; - static constexpr difference_type end_value = begin_value + 1; + private: + static constexpr difference_type begin_value = 0; + static constexpr difference_type end_value = begin_value + 1; - /// iterator as signed integer type - difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min(); - }; + /// iterator as signed integer type + difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min(); + }; /*! @brief an iterator value @@ -8672,104 +8683,104 @@ class basic_json /// create an uninitialized internal_iterator internal_iterator() noexcept - : object_iterator(), array_iterator(), primitive_iterator() - {} + : object_iterator(), array_iterator(), primitive_iterator() + {} }; /// proxy class for the iterator_wrapper functions template<typename IteratorType> class iteration_proxy { - private: + private: /// helper class for iteration class iteration_proxy_internal { - private: + private: /// the iterator IteratorType anchor; /// an index for arrays (used to create key names) size_t array_index = 0; - public: + public: explicit iteration_proxy_internal(IteratorType it) noexcept - : anchor(it) - {} + : anchor(it) + {} - /// dereference operator (needed for range-based for) - iteration_proxy_internal& operator*() + /// dereference operator (needed for range-based for) + iteration_proxy_internal& operator*() + { + return *this; + } + + /// increment operator (needed for range-based for) + iteration_proxy_internal& operator++() + { + ++anchor; + ++array_index; + + return *this; + } + + /// inequality operator (needed for range-based for) + bool operator!= (const iteration_proxy_internal& o) const + { + return anchor != o.anchor; + } + + /// return key of the iterator + typename basic_json::string_t key() const + { + assert(anchor.m_object != nullptr); + + switch (anchor.m_object->type()) + { + // use integer array index as key + case value_t::array: { - return *this; + return std::to_string(array_index); } - /// increment operator (needed for range-based for) - iteration_proxy_internal& operator++() + // use key from the object + case value_t::object: { - ++anchor; - ++array_index; - - return *this; + return anchor.key(); } - /// inequality operator (needed for range-based for) - bool operator!= (const iteration_proxy_internal& o) const + // use an empty key for all primitive types + default: { - return anchor != o.anchor; + return ""; } + } + } - /// return key of the iterator - typename basic_json::string_t key() const - { - assert(anchor.m_object != nullptr); - - switch (anchor.m_object->type()) - { - // use integer array index as key - case value_t::array: - { - return std::to_string(array_index); - } - - // use key from the object - case value_t::object: - { - return anchor.key(); - } - - // use an empty key for all primitive types - default: - { - return ""; - } - } - } - - /// return value of the iterator - typename IteratorType::reference value() const - { - return anchor.value(); - } + /// return value of the iterator + typename IteratorType::reference value() const + { + return anchor.value(); + } }; - /// the container to iterate - typename IteratorType::reference container; + /// the container to iterate + typename IteratorType::reference container; - public: - /// construct iteration proxy from a container - explicit iteration_proxy(typename IteratorType::reference cont) - : container(cont) - {} + public: + /// construct iteration proxy from a container + explicit iteration_proxy(typename IteratorType::reference cont) + : container(cont) + {} - /// return iterator begin (needed for range-based for) - iteration_proxy_internal begin() noexcept - { - return iteration_proxy_internal(container.begin()); - } + /// return iterator begin (needed for range-based for) + iteration_proxy_internal begin() noexcept + { + return iteration_proxy_internal(container.begin()); + } - /// return iterator end (needed for range-based for) - iteration_proxy_internal end() noexcept - { - return iteration_proxy_internal(container.end()); - } + /// return iterator end (needed for range-based for) + iteration_proxy_internal end() noexcept + { + return iteration_proxy_internal(container.end()); + } }; public: @@ -8793,7 +8804,7 @@ class basic_json @since version 1.0.0, simplified in version 2.0.9 */ template<typename U> - class iter_impl : public std::iterator<std::random_access_iterator_tag, U> + class iter_impl : public std::iterator<std::random_access_iterator_tag, U> { /// allow basic_json to access private members friend class basic_json; @@ -8803,19 +8814,19 @@ class basic_json or std::is_same<U, const basic_json>::value, "iter_impl only accepts (const) basic_json"); - public: + public: /// the type of the values when the iterator is dereferenced using value_type = typename basic_json::value_type; /// a type to represent differences between iterators using difference_type = typename basic_json::difference_type; /// defines a pointer to the type iterated over (value_type) using pointer = typename std::conditional<std::is_const<U>::value, - typename basic_json::const_pointer, - typename basic_json::pointer>::type; + typename basic_json::const_pointer, + typename basic_json::pointer>::type; /// defines a reference to the type iterated over (value_type) using reference = typename std::conditional<std::is_const<U>::value, - typename basic_json::const_reference, - typename basic_json::reference>::type; + typename basic_json::const_reference, + typename basic_json::reference>::type; /// the category of the iterator using iterator_category = std::bidirectional_iterator_tag; @@ -8829,566 +8840,566 @@ class basic_json @post The iterator is initialized; i.e. `m_object != nullptr`. */ explicit iter_impl(pointer object) noexcept - : m_object(object) + : m_object(object) + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { - m_it.object_iterator = typename object_t::iterator(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = typename array_t::iterator(); - break; - } - - default: - { - m_it.primitive_iterator = primitive_iterator_t(); - break; - } - } - } - - /* - Use operator `const_iterator` instead of `const_iterator(const iterator& - other) noexcept` to avoid two class definitions for @ref iterator and - @ref const_iterator. - - This function is only called if this class is an @ref iterator. If this - class is a @ref const_iterator this function is not called. - */ - operator const_iterator() const - { - const_iterator ret; - - if (m_object) - { - ret.m_object = m_object; - ret.m_it = m_it; + m_it.object_iterator = typename object_t::iterator(); + break; } - return ret; - } - - /*! - @brief copy constructor - @param[in] other iterator to copy from - @note It is not checked whether @a other is initialized. - */ - iter_impl(const iter_impl& other) noexcept - : m_object(other.m_object), m_it(other.m_it) - {} - - /*! - @brief copy assignment - @param[in,out] other iterator to copy from - @note It is not checked whether @a other is initialized. - */ - iter_impl& operator=(iter_impl other) noexcept( - std::is_nothrow_move_constructible<pointer>::value and - std::is_nothrow_move_assignable<pointer>::value and - std::is_nothrow_move_constructible<internal_iterator>::value and - std::is_nothrow_move_assignable<internal_iterator>::value - ) - { - std::swap(m_object, other.m_object); - std::swap(m_it, other.m_it); - return *this; - } - - private: - /*! - @brief set the iterator to the first value - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - void set_begin() noexcept - { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::array: { - case basic_json::value_t::object: - { - m_it.object_iterator = m_object->m_value.object->begin(); - break; - } + m_it.array_iterator = typename array_t::iterator(); + break; + } - case basic_json::value_t::array: - { - m_it.array_iterator = m_object->m_value.array->begin(); - break; - } - - case basic_json::value_t::null: - { - // set to end so begin()==end() is true: null is empty - m_it.primitive_iterator.set_end(); - break; - } - - default: - { - m_it.primitive_iterator.set_begin(); - break; - } + default: + { + m_it.primitive_iterator = primitive_iterator_t(); + break; } } + } - /*! - @brief set the iterator past the last value - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - void set_end() noexcept + /* + Use operator `const_iterator` instead of `const_iterator(const iterator& + other) noexcept` to avoid two class definitions for @ref iterator and + @ref const_iterator. + + This function is only called if this class is an @ref iterator. If this + class is a @ref const_iterator this function is not called. + */ + operator const_iterator() const + { + const_iterator ret; + + if (m_object) { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - m_it.object_iterator = m_object->m_value.object->end(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = m_object->m_value.array->end(); - break; - } - - default: - { - m_it.primitive_iterator.set_end(); - break; - } - } + ret.m_object = m_object; + ret.m_it = m_it; } - public: - /*! - @brief return a reference to the value pointed to by the iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference operator*() const + return ret; + } + + /*! + @brief copy constructor + @param[in] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl(const iter_impl& other) noexcept + : m_object(other.m_object), m_it(other.m_it) + {} + + /*! + @brief copy assignment + @param[in,out] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl& operator=(iter_impl other) noexcept( + std::is_nothrow_move_constructible<pointer>::value and + std::is_nothrow_move_assignable<pointer>::value and + std::is_nothrow_move_constructible<internal_iterator>::value and + std::is_nothrow_move_assignable<internal_iterator>::value + ) + { + std::swap(m_object, other.m_object); + std::swap(m_it, other.m_it); + return *this; + } + + private: + /*! + @brief set the iterator to the first value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_begin() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { - assert(m_it.object_iterator != m_object->m_value.object->end()); - return m_it.object_iterator->second; - } + m_it.object_iterator = m_object->m_value.object->begin(); + break; + } - case basic_json::value_t::array: - { - assert(m_it.array_iterator != m_object->m_value.array->end()); - return *m_it.array_iterator; - } + case basic_json::value_t::array: + { + m_it.array_iterator = m_object->m_value.array->begin(); + break; + } - case basic_json::value_t::null: - { + case basic_json::value_t::null: + { + // set to end so begin()==end() is true: null is empty + m_it.primitive_iterator.set_end(); + break; + } + + default: + { + m_it.primitive_iterator.set_begin(); + break; + } + } + } + + /*! + @brief set the iterator past the last value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_end() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + m_it.object_iterator = m_object->m_value.object->end(); + break; + } + + case basic_json::value_t::array: + { + m_it.array_iterator = m_object->m_value.array->end(); + break; + } + + default: + { + m_it.primitive_iterator.set_end(); + break; + } + } + } + + public: + /*! + @brief return a reference to the value pointed to by the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator*() const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + assert(m_it.object_iterator != m_object->m_value.object->end()); + return m_it.object_iterator->second; + } + + case basic_json::value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return *m_it.array_iterator; + } + + case basic_json::value_t::null: + { JSON_THROW(std::out_of_range("cannot get value")); - } + } - default: + default: + { + if (m_it.primitive_iterator.is_begin()) { - if (m_it.primitive_iterator.is_begin()) - { - return *m_object; - } + return *m_object; + } JSON_THROW(std::out_of_range("cannot get value")); - } } } + } - /*! - @brief dereference the iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - pointer operator->() const + /*! + @brief dereference the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + pointer operator->() const + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { - assert(m_it.object_iterator != m_object->m_value.object->end()); - return &(m_it.object_iterator->second); - } + assert(m_it.object_iterator != m_object->m_value.object->end()); + return &(m_it.object_iterator->second); + } - case basic_json::value_t::array: - { - assert(m_it.array_iterator != m_object->m_value.array->end()); - return &*m_it.array_iterator; - } + case basic_json::value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return &*m_it.array_iterator; + } - default: + default: + { + if (m_it.primitive_iterator.is_begin()) { - if (m_it.primitive_iterator.is_begin()) - { - return m_object; - } + return m_object; + } JSON_THROW(std::out_of_range("cannot get value")); - } + } + } + } + + /*! + @brief post-increment (it++) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator++(int) + { + auto result = *this; + ++(*this); + return result; + } + + /*! + @brief pre-increment (++it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator++() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + std::advance(m_it.object_iterator, 1); + break; + } + + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, 1); + break; + } + + default: + { + ++m_it.primitive_iterator; + break; } } - /*! - @brief post-increment (it++) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator++(int) - { - auto result = *this; - ++(*this); - return result; - } + return *this; + } - /*! - @brief pre-increment (++it) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator++() - { - assert(m_object != nullptr); + /*! + @brief post-decrement (it--) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator--(int) + { + auto result = *this; + --(*this); + return result; + } - switch (m_object->m_type) + /*! + @brief pre-decrement (--it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator--() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: { - case basic_json::value_t::object: - { - std::advance(m_it.object_iterator, 1); - break; - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, 1); - break; - } - - default: - { - ++m_it.primitive_iterator; - break; - } + std::advance(m_it.object_iterator, -1); + break; } - return *this; - } - - /*! - @brief post-decrement (it--) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator--(int) - { - auto result = *this; - --(*this); - return result; - } - - /*! - @brief pre-decrement (--it) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator--() - { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::array: { - case basic_json::value_t::object: - { - std::advance(m_it.object_iterator, -1); - break; - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, -1); - break; - } - - default: - { - --m_it.primitive_iterator; - break; - } + std::advance(m_it.array_iterator, -1); + break; } - return *this; + default: + { + --m_it.primitive_iterator; + break; + } } - /*! - @brief comparison: equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator==(const iter_impl& other) const + return *this; + } + + /*! + @brief comparison: equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator==(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (m_object != other.m_object) { - // if objects are not the same, the comparison is undefined - if (m_object != other.m_object) - { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); - } - - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - return (m_it.object_iterator == other.m_it.object_iterator); - } - - case basic_json::value_t::array: - { - return (m_it.array_iterator == other.m_it.array_iterator); - } - - default: - { - return (m_it.primitive_iterator == other.m_it.primitive_iterator); - } - } } - /*! - @brief comparison: not equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator!=(const iter_impl& other) const - { - return not operator==(other); - } + assert(m_object != nullptr); - /*! - @brief comparison: smaller - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator<(const iter_impl& other) const + switch (m_object->m_type) { - // if objects are not the same, the comparison is undefined - if (m_object != other.m_object) + case basic_json::value_t::object: { + return (m_it.object_iterator == other.m_it.object_iterator); + } + + case basic_json::value_t::array: + { + return (m_it.array_iterator == other.m_it.array_iterator); + } + + default: + { + return (m_it.primitive_iterator == other.m_it.primitive_iterator); + } + } + } + + /*! + @brief comparison: not equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator!=(const iter_impl& other) const + { + return not operator==(other); + } + + /*! + @brief comparison: smaller + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (m_object != other.m_object) + { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); - } + } - assert(m_object != nullptr); + assert(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_type) + { + case basic_json::value_t::object: { - case basic_json::value_t::object: - { JSON_THROW(std::domain_error("cannot compare order of object iterators")); - } + } - case basic_json::value_t::array: - { - return (m_it.array_iterator < other.m_it.array_iterator); - } + case basic_json::value_t::array: + { + return (m_it.array_iterator < other.m_it.array_iterator); + } - default: - { - return (m_it.primitive_iterator < other.m_it.primitive_iterator); - } + default: + { + return (m_it.primitive_iterator < other.m_it.primitive_iterator); } } + } - /*! - @brief comparison: less than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator<=(const iter_impl& other) const + /*! + @brief comparison: less than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<=(const iter_impl& other) const + { + return not other.operator < (*this); + } + + /*! + @brief comparison: greater than + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>(const iter_impl& other) const + { + return not operator<=(other); + } + + /*! + @brief comparison: greater than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>=(const iter_impl& other) const + { + return not operator<(other); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator+=(difference_type i) + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - return not other.operator < (*this); - } - - /*! - @brief comparison: greater than - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator>(const iter_impl& other) const - { - return not operator<=(other); - } - - /*! - @brief comparison: greater than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator>=(const iter_impl& other) const - { - return not operator<(other); - } - - /*! - @brief add to iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator+=(difference_type i) - { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { JSON_THROW(std::domain_error("cannot use offsets with object iterators")); - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, i); - break; - } - - default: - { - m_it.primitive_iterator += i; - break; - } } - return *this; - } - - /*! - @brief subtract from iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator-=(difference_type i) - { - return operator+=(-i); - } - - /*! - @brief add to iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator+(difference_type i) - { - auto result = *this; - result += i; - return result; - } - - /*! - @brief subtract from iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator-(difference_type i) - { - auto result = *this; - result -= i; - return result; - } - - /*! - @brief return difference - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - difference_type operator-(const iter_impl& other) const - { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, i); + break; + } + + default: + { + m_it.primitive_iterator += i; + break; + } + } + + return *this; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator-=(difference_type i) + { + return operator+=(-i); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator+(difference_type i) + { + auto result = *this; + result += i; + return result; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator-(difference_type i) + { + auto result = *this; + result -= i; + return result; + } + + /*! + @brief return difference + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + difference_type operator-(const iter_impl& other) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: { - case basic_json::value_t::object: - { JSON_THROW(std::domain_error("cannot use offsets with object iterators")); - } + } - case basic_json::value_t::array: - { - return m_it.array_iterator - other.m_it.array_iterator; - } + case basic_json::value_t::array: + { + return m_it.array_iterator - other.m_it.array_iterator; + } - default: - { - return m_it.primitive_iterator - other.m_it.primitive_iterator; - } + default: + { + return m_it.primitive_iterator - other.m_it.primitive_iterator; } } + } - /*! - @brief access to successor - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference operator[](difference_type n) const + /*! + @brief access to successor + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator[](difference_type n) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { JSON_THROW(std::domain_error("cannot use operator[] for object iterators")); - } + } - case basic_json::value_t::array: - { - return *std::next(m_it.array_iterator, n); - } + case basic_json::value_t::array: + { + return *std::next(m_it.array_iterator, n); + } - case basic_json::value_t::null: - { + case basic_json::value_t::null: + { JSON_THROW(std::out_of_range("cannot get value")); - } + } - default: + default: + { + if (m_it.primitive_iterator.get_value() == -n) { - if (m_it.primitive_iterator.get_value() == -n) - { - return *m_object; - } + return *m_object; + } JSON_THROW(std::out_of_range("cannot get value")); - } } } + } - /*! - @brief return the key of an object iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - typename object_t::key_type key() const + /*! + @brief return the key of an object iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + typename object_t::key_type key() const + { + assert(m_object != nullptr); + + if (m_object->is_object()) { - assert(m_object != nullptr); - - if (m_object->is_object()) - { - return m_it.object_iterator->first; - } + return m_it.object_iterator->first; + } JSON_THROW(std::domain_error("cannot use key() for non-object iterators")); - } + } - /*! - @brief return the value of an iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference value() const - { - return operator*(); - } + /*! + @brief return the value of an iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference value() const + { + return operator*(); + } - private: - /// associated JSON instance - pointer m_object = nullptr; - /// the actual iterator of the associated instance - internal_iterator m_it = internal_iterator(); - }; + private: + /// associated JSON instance + pointer m_object = nullptr; + /// the actual iterator of the associated instance + internal_iterator m_it = internal_iterator(); + }; /*! @brief a template for a reverse iterator class @@ -9408,9 +9419,9 @@ class basic_json @since version 1.0.0 */ template<typename Base> - class json_reverse_iterator : public std::reverse_iterator<Base> + class json_reverse_iterator : public std::reverse_iterator<Base> { - public: + public: /// shortcut to the reverse iterator adaptor using base_iterator = std::reverse_iterator<Base>; /// the reference type for the pointed-to element @@ -9418,89 +9429,89 @@ class basic_json /// create reverse iterator from iterator json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept - : base_iterator(it) - {} + : base_iterator(it) + {} - /// create reverse iterator from base class - json_reverse_iterator(const base_iterator& it) noexcept - : base_iterator(it) - {} + /// create reverse iterator from base class + json_reverse_iterator(const base_iterator& it) noexcept + : base_iterator(it) + {} - /// post-increment (it++) - json_reverse_iterator operator++(int) - { - return base_iterator::operator++(1); - } + /// post-increment (it++) + json_reverse_iterator operator++(int) + { + return base_iterator::operator++(1); + } - /// pre-increment (++it) - json_reverse_iterator& operator++() - { - base_iterator::operator++(); - return *this; - } + /// pre-increment (++it) + json_reverse_iterator& operator++() + { + base_iterator::operator++(); + return *this; + } - /// post-decrement (it--) - json_reverse_iterator operator--(int) - { - return base_iterator::operator--(1); - } + /// post-decrement (it--) + json_reverse_iterator operator--(int) + { + return base_iterator::operator--(1); + } - /// pre-decrement (--it) - json_reverse_iterator& operator--() - { - base_iterator::operator--(); - return *this; - } + /// pre-decrement (--it) + json_reverse_iterator& operator--() + { + base_iterator::operator--(); + return *this; + } - /// add to iterator - json_reverse_iterator& operator+=(difference_type i) - { - base_iterator::operator+=(i); - return *this; - } + /// add to iterator + json_reverse_iterator& operator+=(difference_type i) + { + base_iterator::operator+=(i); + return *this; + } - /// add to iterator - json_reverse_iterator operator+(difference_type i) const - { - auto result = *this; - result += i; - return result; - } + /// add to iterator + json_reverse_iterator operator+(difference_type i) const + { + auto result = *this; + result += i; + return result; + } - /// subtract from iterator - json_reverse_iterator operator-(difference_type i) const - { - auto result = *this; - result -= i; - return result; - } + /// subtract from iterator + json_reverse_iterator operator-(difference_type i) const + { + auto result = *this; + result -= i; + return result; + } - /// return difference - difference_type operator-(const json_reverse_iterator& other) const - { - return this->base() - other.base(); - } + /// return difference + difference_type operator-(const json_reverse_iterator& other) const + { + return this->base() - other.base(); + } - /// access to successor - reference operator[](difference_type n) const - { - return *(this->operator+(n)); - } + /// access to successor + reference operator[](difference_type n) const + { + return *(this->operator+(n)); + } - /// return the key of an object iterator - typename object_t::key_type key() const - { - auto it = --this->base(); - return it.key(); - } + /// return the key of an object iterator + typename object_t::key_type key() const + { + auto it = --this->base(); + return it.key(); + } - /// return the value of an iterator - reference value() const - { - auto it = --this->base(); - return it.operator * (); - } - }; + /// return the value of an iterator + reference value() const + { + auto it = --this->base(); + return it.operator * (); + } + }; private: @@ -9517,656 +9528,666 @@ class basic_json */ class lexer { - public: + public: /// token types for the parser enum class token_type - { - uninitialized, ///< indicating the scanner is uninitialized - literal_true, ///< the `true` literal - literal_false, ///< the `false` literal - literal_null, ///< the `null` literal - value_string, ///< a string -- use get_string() for actual value - value_number, ///< a number -- use get_number() for actual value - begin_array, ///< the character for array begin `[` - begin_object, ///< the character for object begin `{` - end_array, ///< the character for array end `]` - end_object, ///< the character for object end `}` - name_separator, ///< the name separator `:` - value_separator, ///< the value separator `,` - parse_error, ///< indicating a parse error - end_of_input ///< indicating the end of the input buffer - }; + { + uninitialized, ///< indicating the scanner is uninitialized + literal_true, ///< the `true` literal + literal_false, ///< the `false` literal + literal_null, ///< the `null` literal + value_string, ///< a string -- use get_string() for actual value + value_number, ///< a number -- use get_number() for actual value + begin_array, ///< the character for array begin `[` + begin_object, ///< the character for object begin `{` + end_array, ///< the character for array end `]` + end_object, ///< the character for object end `}` + name_separator, ///< the name separator `:` + value_separator, ///< the value separator `,` + parse_error, ///< indicating a parse error + end_of_input ///< indicating the end of the input buffer + }; - /// the char type to use in the lexer - using lexer_char_t = unsigned char; + /// the char type to use in the lexer + using lexer_char_t = unsigned char; - /// a lexer from a buffer with given length - lexer(const lexer_char_t* buff, const size_t len) noexcept - : m_content(buff) - { - assert(m_content != nullptr); - m_start = m_cursor = m_content; - m_limit = m_content + len; - } + /// a lexer from a buffer with given length + lexer(const lexer_char_t* buff, const size_t len) noexcept + : m_content(buff) + { + assert(m_content != nullptr); + m_start = m_cursor = m_content; + m_limit = m_content + len; + } - /// a lexer from an input stream - explicit lexer(std::istream& s) - : m_stream(&s), m_line_buffer() + /// a lexer from an input stream + explicit lexer(std::istream& s) + : m_stream(&s), m_line_buffer() + { + // immediately abort if stream is erroneous + if (s.fail()) { - // immediately abort if stream is erroneous - if (s.fail()) - { JSON_THROW(std::invalid_argument("stream error")); - } - - // fill buffer - fill_line_buffer(); - - // skip UTF-8 byte-order mark - if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF") - { - m_line_buffer[0] = ' '; - m_line_buffer[1] = ' '; - m_line_buffer[2] = ' '; - } } - // switch off unwanted functions (due to pointer members) - lexer() = delete; - lexer(const lexer&) = delete; - lexer operator=(const lexer&) = delete; + // fill buffer + fill_line_buffer(); - /*! - @brief create a string from one or two Unicode code points - - There are two cases: (1) @a codepoint1 is in the Basic Multilingual - Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) - @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to - represent a code point above U+FFFF. - - @param[in] codepoint1 the code point (can be high surrogate) - @param[in] codepoint2 the code point (can be low surrogate or 0) - - @return string representation of the code point; the length of the - result string is between 1 and 4 characters. - - @throw std::out_of_range if code point is > 0x10ffff; example: `"code - points above 0x10FFFF are invalid"` - @throw std::invalid_argument if the low surrogate is invalid; example: - `""missing or wrong low surrogate""` - - @complexity Constant. - - @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code> - */ - static string_t to_unicode(const std::size_t codepoint1, - const std::size_t codepoint2 = 0) + // skip UTF-8 byte-order mark + if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF") { - // calculate the code point from the given code points - std::size_t codepoint = codepoint1; + m_line_buffer[0] = ' '; + m_line_buffer[1] = ' '; + m_line_buffer[2] = ' '; + } + } - // check if codepoint1 is a high surrogate - if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF) - { - // check if codepoint2 is a low surrogate - if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF) - { - codepoint = - // high surrogate occupies the most significant 22 bits - (codepoint1 << 10) - // low surrogate occupies the least significant 15 bits - + codepoint2 - // there is still the 0xD800, 0xDC00 and 0x10000 noise - // in the result so we have to subtract with: - // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 - - 0x35FDC00; - } - else - { - JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); - } - } + // switch off unwanted functions (due to pointer members) + lexer() = delete; + lexer(const lexer&) = delete; + lexer operator=(const lexer&) = delete; - string_t result; + /*! + @brief create a string from one or two Unicode code points - if (codepoint < 0x80) + There are two cases: (1) @a codepoint1 is in the Basic Multilingual + Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) + @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to + represent a code point above U+FFFF. + + @param[in] codepoint1 the code point (can be high surrogate) + @param[in] codepoint2 the code point (can be low surrogate or 0) + + @return string representation of the code point; the length of the + result string is between 1 and 4 characters. + + @throw std::out_of_range if code point is > 0x10ffff; example: `"code + points above 0x10FFFF are invalid"` + @throw std::invalid_argument if the low surrogate is invalid; example: + `""missing or wrong low surrogate""` + + @complexity Constant. + + @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code> + */ + static string_t to_unicode(const std::size_t codepoint1, + const std::size_t codepoint2 = 0) + { + // calculate the code point from the given code points + std::size_t codepoint = codepoint1; + + // check if codepoint1 is a high surrogate + if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF) + { + // check if codepoint2 is a low surrogate + if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF) { - // 1-byte characters: 0xxxxxxx (ASCII) - result.append(1, static_cast<typename string_t::value_type>(codepoint)); - } - else if (codepoint <= 0x7ff) - { - // 2-byte characters: 110xxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else if (codepoint <= 0xffff) - { - // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else if (codepoint <= 0x10ffff) - { - // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + codepoint = + // high surrogate occupies the most significant 22 bits + (codepoint1 << 10) + // low surrogate occupies the least significant 15 bits + + codepoint2 + // there is still the 0xD800, 0xDC00 and 0x10000 noise + // in the result so we have to subtract with: + // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 + - 0x35FDC00; } else { + JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); + } + } + + string_t result; + + if (codepoint < 0x80) + { + // 1-byte characters: 0xxxxxxx (ASCII) + result.append(1, static_cast<typename string_t::value_type>(codepoint)); + } + else if (codepoint <= 0x7ff) + { + // 2-byte characters: 110xxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else if (codepoint <= 0xffff) + { + // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else if (codepoint <= 0x10ffff) + { + // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else + { JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid")); - } - - return result; } - /// return name of values of type token_type (only used for errors) - static std::string token_type_name(const token_type t) + return result; + } + + /// return name of values of type token_type (only used for errors) + static std::string token_type_name(const token_type t) + { + switch (t) { - switch (t) + case token_type::uninitialized: + return "<uninitialized>"; + case token_type::literal_true: + return "true literal"; + case token_type::literal_false: + return "false literal"; + case token_type::literal_null: + return "null literal"; + case token_type::value_string: + return "string literal"; + case token_type::value_number: + return "number literal"; + case token_type::begin_array: + return "'['"; + case token_type::begin_object: + return "'{'"; + case token_type::end_array: + return "']'"; + case token_type::end_object: + return "'}'"; + case token_type::name_separator: + return "':'"; + case token_type::value_separator: + return "','"; + case token_type::parse_error: + return "<parse error>"; + case token_type::end_of_input: + return "end of input"; + default: { - case token_type::uninitialized: - return "<uninitialized>"; - case token_type::literal_true: - return "true literal"; - case token_type::literal_false: - return "false literal"; - case token_type::literal_null: - return "null literal"; - case token_type::value_string: - return "string literal"; - case token_type::value_number: - return "number literal"; - case token_type::begin_array: - return "'['"; - case token_type::begin_object: - return "'{'"; - case token_type::end_array: - return "']'"; - case token_type::end_object: - return "'}'"; - case token_type::name_separator: - return "':'"; - case token_type::value_separator: - return "','"; - case token_type::parse_error: - return "<parse error>"; - case token_type::end_of_input: - return "end of input"; - default: + // catch non-enum values + return "unknown token"; // LCOV_EXCL_LINE + } + } + } + + /*! + This function implements a scanner for JSON. It is specified using + regular expressions that try to follow RFC 7159 as close as possible. + These regular expressions are then translated into a minimized + deterministic finite automaton (DFA) by the tool + [re2c](http://re2c.org). As a result, the translated code for this + function consists of a large block of code with `goto` jumps. + + @return the class of the next token read from the buffer + + @complexity Linear in the length of the input.\n + + Proposition: The loop below will always terminate for finite input.\n + + Proof (by contradiction): Assume a finite input. To loop forever, the + loop must never hit code with a `break` statement. The only code + snippets without a `break` statement are the continue statements for + whitespace and byte-order-marks. To loop forever, the input must be an + infinite sequence of whitespace or byte-order-marks. This contradicts + the assumption of finite input, q.e.d. + */ + token_type scan() + { + while (true) + { + // pointer for backtracking information + m_marker = nullptr; + + // remember the begin of the token + m_start = m_cursor; + assert(m_start != nullptr); + + + { + lexer_char_t yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { - // catch non-enum values - return "unknown token"; // LCOV_EXCL_LINE + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + if ((m_limit - m_cursor) < 5) + { + fill_line_buffer(5); // LCOV_EXCL_LINE } - } - } - - /*! - This function implements a scanner for JSON. It is specified using - regular expressions that try to follow RFC 7159 as close as possible. - These regular expressions are then translated into a minimized - deterministic finite automaton (DFA) by the tool - [re2c](http://re2c.org). As a result, the translated code for this - function consists of a large block of code with `goto` jumps. - - @return the class of the next token read from the buffer - - @complexity Linear in the length of the input.\n - - Proposition: The loop below will always terminate for finite input.\n - - Proof (by contradiction): Assume a finite input. To loop forever, the - loop must never hit code with a `break` statement. The only code - snippets without a `break` statement are the continue statements for - whitespace and byte-order-marks. To loop forever, the input must be an - infinite sequence of whitespace or byte-order-marks. This contradicts - the assumption of finite input, q.e.d. - */ - token_type scan() - { - while (true) - { - // pointer for backtracking information - m_marker = nullptr; - - // remember the begin of the token - m_start = m_cursor; - assert(m_start != nullptr); - - + yych = *m_cursor; + if (yybm[0 + yych] & 32) { - lexer_char_t yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = + goto basic_json_parser_6; + } + if (yych <= '[') + { + if (yych <= '-') { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 160, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - if ((m_limit - m_cursor) < 5) - { - fill_line_buffer(5); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; - } - if (yych <= '[') - { - if (yych <= '-') + if (yych <= '"') { - if (yych <= '"') + if (yych <= 0x00) { - if (yych <= 0x00) - { - goto basic_json_parser_2; - } - if (yych <= '!') - { - goto basic_json_parser_4; - } - goto basic_json_parser_9; + goto basic_json_parser_2; } - else + if (yych <= '!') { - if (yych <= '+') - { - goto basic_json_parser_4; - } - if (yych <= ',') - { - goto basic_json_parser_10; - } - goto basic_json_parser_12; + goto basic_json_parser_4; } + goto basic_json_parser_9; } else { - if (yych <= '9') + if (yych <= '+') { - if (yych <= '/') - { - goto basic_json_parser_4; - } - if (yych <= '0') - { - goto basic_json_parser_13; - } - goto basic_json_parser_15; + goto basic_json_parser_4; } - else + if (yych <= ',') { - if (yych <= ':') - { - goto basic_json_parser_17; - } - if (yych <= 'Z') - { - goto basic_json_parser_4; - } - goto basic_json_parser_19; + goto basic_json_parser_10; } + goto basic_json_parser_12; } } else { - if (yych <= 'n') + if (yych <= '9') { - if (yych <= 'e') + if (yych <= '/') { - if (yych == ']') - { - goto basic_json_parser_21; - } goto basic_json_parser_4; } - else + if (yych <= '0') { - if (yych <= 'f') - { - goto basic_json_parser_23; - } - if (yych <= 'm') - { - goto basic_json_parser_4; - } - goto basic_json_parser_24; + goto basic_json_parser_13; } + goto basic_json_parser_15; } else { - if (yych <= 'z') + if (yych <= ':') + { + goto basic_json_parser_17; + } + if (yych <= 'Z') { - if (yych == 't') - { - goto basic_json_parser_25; - } - goto basic_json_parser_4; - } - else - { - if (yych <= '{') - { - goto basic_json_parser_26; - } - if (yych == '}') - { - goto basic_json_parser_28; - } goto basic_json_parser_4; } + goto basic_json_parser_19; } } + } + else + { + if (yych <= 'n') + { + if (yych <= 'e') + { + if (yych == ']') + { + goto basic_json_parser_21; + } + goto basic_json_parser_4; + } + else + { + if (yych <= 'f') + { + goto basic_json_parser_23; + } + if (yych <= 'm') + { + goto basic_json_parser_4; + } + goto basic_json_parser_24; + } + } + else + { + if (yych <= 'z') + { + if (yych == 't') + { + goto basic_json_parser_25; + } + goto basic_json_parser_4; + } + else + { + if (yych <= '{') + { + goto basic_json_parser_26; + } + if (yych == '}') + { + goto basic_json_parser_28; + } + goto basic_json_parser_4; + } + } + } basic_json_parser_2: - ++m_cursor; - { - last_token_type = token_type::end_of_input; - break; - } + ++m_cursor; + { + last_token_type = token_type::end_of_input; + break; + } basic_json_parser_4: - ++m_cursor; + ++m_cursor; basic_json_parser_5: - { - last_token_type = token_type::parse_error; - break; - } + { + last_token_type = token_type::parse_error; + break; + } basic_json_parser_6: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; - } - { - continue; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 32) + { + goto basic_json_parser_6; + } + { + continue; + } basic_json_parser_9: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych <= 0x1F) - { - goto basic_json_parser_5; - } - if (yych <= 0x7F) - { - goto basic_json_parser_31; - } - if (yych <= 0xC1) - { - goto basic_json_parser_5; - } - if (yych <= 0xF4) - { - goto basic_json_parser_31; - } + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych <= 0x1F) + { goto basic_json_parser_5; + } + if (yych <= 0x7F) + { + goto basic_json_parser_31; + } + if (yych <= 0xC1) + { + goto basic_json_parser_5; + } + if (yych <= 0xF4) + { + goto basic_json_parser_31; + } + goto basic_json_parser_5; basic_json_parser_10: - ++m_cursor; - { - last_token_type = token_type::value_separator; - break; - } + ++m_cursor; + { + last_token_type = token_type::value_separator; + break; + } basic_json_parser_12: - yych = *++m_cursor; + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_5; + } + if (yych <= '0') + { + goto basic_json_parser_13; + } + if (yych <= '9') + { + goto basic_json_parser_15; + } + goto basic_json_parser_5; +basic_json_parser_13: + yyaccept = 1; + yych = *(m_marker = ++m_cursor); + if (yych <= 'D') + { + if (yych == '.') + { + goto basic_json_parser_43; + } + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + } +basic_json_parser_14: + { + last_token_type = token_type::value_number; + break; + } +basic_json_parser_15: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) + { + fill_line_buffer(3); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 64) + { + goto basic_json_parser_15; + } + if (yych <= 'D') + { + if (yych == '.') + { + goto basic_json_parser_43; + } + goto basic_json_parser_14; + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + goto basic_json_parser_14; + } +basic_json_parser_17: + ++m_cursor; + { + last_token_type = token_type::name_separator; + break; + } +basic_json_parser_19: + ++m_cursor; + { + last_token_type = token_type::begin_array; + break; + } +basic_json_parser_21: + ++m_cursor; + { + last_token_type = token_type::end_array; + break; + } +basic_json_parser_23: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'a') + { + goto basic_json_parser_45; + } + goto basic_json_parser_5; +basic_json_parser_24: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'u') + { + goto basic_json_parser_46; + } + goto basic_json_parser_5; +basic_json_parser_25: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'r') + { + goto basic_json_parser_47; + } + goto basic_json_parser_5; +basic_json_parser_26: + ++m_cursor; + { + last_token_type = token_type::begin_object; + break; + } +basic_json_parser_28: + ++m_cursor; + { + last_token_type = token_type::end_object; + break; + } +basic_json_parser_30: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; +basic_json_parser_31: + if (yybm[0 + yych] & 128) + { + goto basic_json_parser_30; + } + if (yych <= 0xE0) + { + if (yych <= '\\') + { + if (yych <= 0x1F) + { + goto basic_json_parser_32; + } + if (yych <= '"') + { + goto basic_json_parser_33; + } + goto basic_json_parser_35; + } + else + { + if (yych <= 0xC1) + { + goto basic_json_parser_32; + } + if (yych <= 0xDF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_37; + } + } + else + { + if (yych <= 0xEF) + { + if (yych == 0xED) + { + goto basic_json_parser_39; + } + goto basic_json_parser_38; + } + else + { + if (yych <= 0xF0) + { + goto basic_json_parser_40; + } + if (yych <= 0xF3) + { + goto basic_json_parser_41; + } + if (yych <= 0xF4) + { + goto basic_json_parser_42; + } + } + } +basic_json_parser_32: + m_cursor = m_marker; + if (yyaccept == 0) + { + goto basic_json_parser_5; + } + else + { + goto basic_json_parser_14; + } +basic_json_parser_33: + ++m_cursor; + { + last_token_type = token_type::value_string; + break; + } +basic_json_parser_35: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 'e') + { if (yych <= '/') { - goto basic_json_parser_5; - } - if (yych <= '0') - { - goto basic_json_parser_13; - } - if (yych <= '9') - { - goto basic_json_parser_15; - } - goto basic_json_parser_5; -basic_json_parser_13: - yyaccept = 1; - yych = *(m_marker = ++m_cursor); - if (yych <= 'D') - { - if (yych == '.') + if (yych == '"') { - goto basic_json_parser_43; + goto basic_json_parser_30; } - } - else - { - if (yych <= 'E') + if (yych <= '.') { - goto basic_json_parser_44; + goto basic_json_parser_32; } - if (yych == 'e') - { - goto basic_json_parser_44; - } - } -basic_json_parser_14: - { - last_token_type = token_type::value_number; - break; - } -basic_json_parser_15: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - fill_line_buffer(3); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 64) - { - goto basic_json_parser_15; - } - if (yych <= 'D') - { - if (yych == '.') - { - goto basic_json_parser_43; - } - goto basic_json_parser_14; - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - goto basic_json_parser_14; - } -basic_json_parser_17: - ++m_cursor; - { - last_token_type = token_type::name_separator; - break; - } -basic_json_parser_19: - ++m_cursor; - { - last_token_type = token_type::begin_array; - break; - } -basic_json_parser_21: - ++m_cursor; - { - last_token_type = token_type::end_array; - break; - } -basic_json_parser_23: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'a') - { - goto basic_json_parser_45; - } - goto basic_json_parser_5; -basic_json_parser_24: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'u') - { - goto basic_json_parser_46; - } - goto basic_json_parser_5; -basic_json_parser_25: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'r') - { - goto basic_json_parser_47; - } - goto basic_json_parser_5; -basic_json_parser_26: - ++m_cursor; - { - last_token_type = token_type::begin_object; - break; - } -basic_json_parser_28: - ++m_cursor; - { - last_token_type = token_type::end_object; - break; - } -basic_json_parser_30: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; -basic_json_parser_31: - if (yybm[0 + yych] & 128) - { goto basic_json_parser_30; } - if (yych <= 0xE0) + else { if (yych <= '\\') { - if (yych <= 0x1F) - { - goto basic_json_parser_32; - } - if (yych <= '"') - { - goto basic_json_parser_33; - } - goto basic_json_parser_35; - } - else - { - if (yych <= 0xC1) - { - goto basic_json_parser_32; - } - if (yych <= 0xDF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_37; - } - } - else - { - if (yych <= 0xEF) - { - if (yych == 0xED) - { - goto basic_json_parser_39; - } - goto basic_json_parser_38; - } - else - { - if (yych <= 0xF0) - { - goto basic_json_parser_40; - } - if (yych <= 0xF3) - { - goto basic_json_parser_41; - } - if (yych <= 0xF4) - { - goto basic_json_parser_42; - } - } - } -basic_json_parser_32: - m_cursor = m_marker; - if (yyaccept == 0) - { - goto basic_json_parser_5; - } - else - { - goto basic_json_parser_14; - } -basic_json_parser_33: - ++m_cursor; - { - last_token_type = token_type::value_string; - break; - } -basic_json_parser_35: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 'e') - { - if (yych <= '/') - { - if (yych == '"') - { - goto basic_json_parser_30; - } - if (yych <= '.') + if (yych <= '[') { goto basic_json_parser_32; } @@ -10174,33 +10195,33 @@ basic_json_parser_35: } else { - if (yych <= '\\') + if (yych == 'b') { - if (yych <= '[') - { - goto basic_json_parser_32; - } goto basic_json_parser_30; } - else - { - if (yych == 'b') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } + goto basic_json_parser_32; } } + } + else + { + if (yych <= 'q') + { + if (yych <= 'f') + { + goto basic_json_parser_30; + } + if (yych == 'n') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } else { - if (yych <= 'q') + if (yych <= 's') { - if (yych <= 'f') - { - goto basic_json_parser_30; - } - if (yych == 'n') + if (yych <= 'r') { goto basic_json_parser_30; } @@ -10208,920 +10229,910 @@ basic_json_parser_35: } else { - if (yych <= 's') + if (yych <= 't') { - if (yych <= 'r') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; + goto basic_json_parser_30; } - else + if (yych <= 'u') { - if (yych <= 't') - { - goto basic_json_parser_30; - } - if (yych <= 'u') - { - goto basic_json_parser_48; - } - goto basic_json_parser_32; + goto basic_json_parser_48; } + goto basic_json_parser_32; } } + } basic_json_parser_36: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_30; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; basic_json_parser_37: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x9F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_36; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x9F) + { goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; basic_json_parser_38: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_36; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; basic_json_parser_39: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0x9F) - { - goto basic_json_parser_36; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { goto basic_json_parser_32; + } + if (yych <= 0x9F) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; basic_json_parser_40: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x8F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_38; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x8F) + { goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; basic_json_parser_41: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_38; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; basic_json_parser_42: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0x8F) - { - goto basic_json_parser_38; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { goto basic_json_parser_32; + } + if (yych <= 0x8F) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; basic_json_parser_43: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_49; - } + yych = *++m_cursor; + if (yych <= '/') + { goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_49; + } + goto basic_json_parser_32; basic_json_parser_44: - yych = *++m_cursor; - if (yych <= ',') + yych = *++m_cursor; + if (yych <= ',') + { + if (yych == '+') { - if (yych == '+') - { - goto basic_json_parser_51; - } - goto basic_json_parser_32; - } - else - { - if (yych <= '-') - { - goto basic_json_parser_51; - } - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_52; - } - goto basic_json_parser_32; - } -basic_json_parser_45: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_54; + goto basic_json_parser_51; } goto basic_json_parser_32; -basic_json_parser_46: - yych = *++m_cursor; - if (yych == 'l') + } + else + { + if (yych <= '-') { - goto basic_json_parser_55; + goto basic_json_parser_51; } - goto basic_json_parser_32; -basic_json_parser_47: - yych = *++m_cursor; - if (yych == 'u') - { - goto basic_json_parser_56; - } - goto basic_json_parser_32; -basic_json_parser_48: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_57; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_57; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_57; - } - goto basic_json_parser_32; - } -basic_json_parser_49: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - fill_line_buffer(3); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 'D') - { - if (yych <= '/') - { - goto basic_json_parser_14; - } - if (yych <= '9') - { - goto basic_json_parser_49; - } - goto basic_json_parser_14; - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - goto basic_json_parser_14; - } -basic_json_parser_51: - yych = *++m_cursor; if (yych <= '/') { goto basic_json_parser_32; } - if (yych >= ':') - { - goto basic_json_parser_32; - } -basic_json_parser_52: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '/') - { - goto basic_json_parser_14; - } if (yych <= '9') { goto basic_json_parser_52; } - goto basic_json_parser_14; -basic_json_parser_54: - yych = *++m_cursor; - if (yych == 's') - { - goto basic_json_parser_58; - } goto basic_json_parser_32; -basic_json_parser_55: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_59; - } - goto basic_json_parser_32; -basic_json_parser_56: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_61; - } - goto basic_json_parser_32; -basic_json_parser_57: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_63; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_63; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_63; - } - goto basic_json_parser_32; - } -basic_json_parser_58: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_64; - } - goto basic_json_parser_32; -basic_json_parser_59: - ++m_cursor; - { - last_token_type = token_type::literal_null; - break; - } -basic_json_parser_61: - ++m_cursor; - { - last_token_type = token_type::literal_true; - break; - } -basic_json_parser_63: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_66; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_66; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_66; - } - goto basic_json_parser_32; - } -basic_json_parser_64: - ++m_cursor; - { - last_token_type = token_type::literal_false; - break; - } -basic_json_parser_66: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_30; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } } - - } - - return last_token_type; - } - - /*! - @brief append data from the stream to the line buffer - - This function is called by the scan() function when the end of the - buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be - incremented without leaving the limits of the line buffer. Note re2c - decides when to call this function. - - If the lexer reads from contiguous storage, there is no trailing null - byte. Therefore, this function must make sure to add these padding - null bytes. - - If the lexer reads from an input stream, this function reads the next - line of the input. - - @pre - p p p p p p u u u u u x . . . . . . - ^ ^ ^ ^ - m_content m_start | m_limit - m_cursor - - @post - u u u u u x x x x x x x . . . . . . - ^ ^ ^ - | m_cursor m_limit - m_start - m_content - */ - void fill_line_buffer(size_t n = 0) - { - // if line buffer is used, m_content points to its data - assert(m_line_buffer.empty() - or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data())); - - // if line buffer is used, m_limit is set past the end of its data - assert(m_line_buffer.empty() - or m_limit == m_content + m_line_buffer.size()); - - // pointer relationships - assert(m_content <= m_start); - assert(m_start <= m_cursor); - assert(m_cursor <= m_limit); - assert(m_marker == nullptr or m_marker <= m_limit); - - // number of processed characters (p) - const auto num_processed_chars = static_cast<size_t>(m_start - m_content); - // offset for m_marker wrt. to m_start - const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; - // number of unprocessed characters (u) - const auto offset_cursor = m_cursor - m_start; - - // no stream is used or end of file is reached - if (m_stream == nullptr or m_stream->eof()) - { - // m_start may or may not be pointing into m_line_buffer at - // this point. We trust the standand library to do the right - // thing. See http://stackoverflow.com/q/28142011/266378 - m_line_buffer.assign(m_start, m_limit); - - // append n characters to make sure that there is sufficient - // space between m_cursor and m_limit - m_line_buffer.append(1, '\x00'); - if (n > 0) +basic_json_parser_45: + yych = *++m_cursor; + if (yych == 'l') { - m_line_buffer.append(n - 1, '\x01'); + goto basic_json_parser_54; } - } - else - { - // delete processed characters from line buffer - m_line_buffer.erase(0, num_processed_chars); - // read next line from input stream - m_line_buffer_tmp.clear(); - std::getline(*m_stream, m_line_buffer_tmp, '\n'); - - // add line with newline symbol to the line buffer - m_line_buffer += m_line_buffer_tmp; - m_line_buffer.push_back('\n'); - } - - // set pointers - m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()); - assert(m_content != nullptr); - m_start = m_content; - m_marker = m_start + offset_marker; - m_cursor = m_start + offset_cursor; - m_limit = m_start + m_line_buffer.size(); - } - - /// return string representation of last read token - string_t get_token_string() const - { - assert(m_start != nullptr); - return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start), - static_cast<size_t>(m_cursor - m_start)); - } - - /*! - @brief return string value for string tokens - - The function iterates the characters between the opening and closing - quotes of the string value. The complete string is the range - [m_start,m_cursor). Consequently, we iterate from m_start+1 to - m_cursor-1. - - We differentiate two cases: - - 1. Escaped characters. In this case, a new character is constructed - according to the nature of the escape. Some escapes create new - characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied - as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape - `"\\uxxxx"` need special care. In this case, to_unicode takes care - of the construction of the values. - 2. Unescaped characters are copied as is. - - @pre `m_cursor - m_start >= 2`, meaning the length of the last token - is at least 2 bytes which is trivially true for any string (which - consists of at least two quotes). - - " c1 c2 c3 ... " - ^ ^ - m_start m_cursor - - @complexity Linear in the length of the string.\n - - Lemma: The loop body will always terminate.\n - - Proof (by contradiction): Assume the loop body does not terminate. As - the loop body does not contain another loop, one of the called - functions must never return. The called functions are `std::strtoul` - and to_unicode. Neither function can loop forever, so the loop body - will never loop forever which contradicts the assumption that the loop - body does not terminate, q.e.d.\n - - Lemma: The loop condition for the for loop is eventually false.\n - - Proof (by contradiction): Assume the loop does not terminate. Due to - the above lemma, this can only be due to a tautological loop - condition; that is, the loop condition i < m_cursor - 1 must always be - true. Let x be the change of i for any loop iteration. Then - m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This - can be rephrased to m_cursor - m_start - 2 > x. With the - precondition, we x <= 0, meaning that the loop condition holds - indefinitly if i is always decreased. However, observe that the value - of i is strictly increasing with each iteration, as it is incremented - by 1 in the iteration expression and never decremented inside the loop - body. Hence, the loop condition will eventually be false which - contradicts the assumption that the loop condition is a tautology, - q.e.d. - - @return string value of current token without opening and closing - quotes - @throw std::out_of_range if to_unicode fails - */ - string_t get_string() const - { - assert(m_cursor - m_start >= 2); - - string_t result; - result.reserve(static_cast<size_t>(m_cursor - m_start - 2)); - - // iterate the result between the quotes - for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i) - { - // find next escape character - auto e = std::find(i, m_cursor - 1, '\\'); - if (e != i) + goto basic_json_parser_32; +basic_json_parser_46: + yych = *++m_cursor; + if (yych == 'l') { - // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705 - for (auto k = i; k < e; k++) + goto basic_json_parser_55; + } + goto basic_json_parser_32; +basic_json_parser_47: + yych = *++m_cursor; + if (yych == 'u') + { + goto basic_json_parser_56; + } + goto basic_json_parser_32; +basic_json_parser_48: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') { - result.push_back(static_cast<typename string_t::value_type>(*k)); + goto basic_json_parser_32; } - i = e - 1; // -1 because of ++i + if (yych <= '9') + { + goto basic_json_parser_57; + } + goto basic_json_parser_32; } else { - // processing escaped character - // read next character - ++i; - - switch (*i) + if (yych <= 'F') { - // the default escapes - case 't': - { - result += "\t"; - break; - } - case 'b': - { - result += "\b"; - break; - } - case 'f': - { - result += "\f"; - break; - } - case 'n': - { - result += "\n"; - break; - } - case 'r': - { - result += "\r"; - break; - } - case '\\': - { - result += "\\"; - break; - } - case '/': - { - result += "/"; - break; - } - case '"': - { - result += "\""; - break; - } - - // unicode - case 'u': - { - // get code xxxx from uxxxx - auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1), - 4).c_str(), nullptr, 16); - - // check if codepoint is a high surrogate - if (codepoint >= 0xD800 and codepoint <= 0xDBFF) - { - // make sure there is a subsequent unicode - if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') - { - JSON_THROW(std::invalid_argument("missing low surrogate")); - } - - // get code yyyy from uxxxx\uyyyy - auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer> - (i + 7), 4).c_str(), nullptr, 16); - result += to_unicode(codepoint, codepoint2); - // skip the next 10 characters (xxxx\uyyyy) - i += 10; - } - else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) - { - // we found a lone low surrogate - JSON_THROW(std::invalid_argument("missing high surrogate")); - } - else - { - // add unicode character(s) - result += to_unicode(codepoint); - // skip the next four characters (xxxx) - i += 4; - } - break; - } + goto basic_json_parser_57; } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_57; + } + goto basic_json_parser_32; } - } - - return result; - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - long double str_to_float_t(long double* /* type */, char** endptr) const - { - return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - double str_to_float_t(double* /* type */, char** endptr) const - { - return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - float str_to_float_t(float* /* type */, char** endptr) const - { - return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief return number value for number tokens - - This function translates the last token into the most appropriate - number type (either integer, unsigned integer or floating point), - which is passed back to the caller via the result parameter. - - This function parses the integer component up to the radix point or - exponent while collecting information about the 'floating point - representation', which it stores in the result parameter. If there is - no radix point or exponent, and the number can fit into a @ref - number_integer_t or @ref number_unsigned_t then it sets the result - parameter accordingly. - - If the number is a floating point number the number is then parsed - using @a std:strtod (or @a std:strtof or @a std::strtold). - - @param[out] result @ref basic_json object to receive the number, or - NAN if the conversion read past the current token. The latter case - needs to be treated by the caller function. - */ - void get_number(basic_json& result) const - { - assert(m_start != nullptr); - - const lexer::lexer_char_t* curptr = m_start; - - // accumulate the integer conversion result (unsigned for now) - number_unsigned_t value = 0; - - // maximum absolute value of the relevant integer type - number_unsigned_t max; - - // temporarily store the type to avoid unecessary bitfield access - value_t type; - - // look for sign - if (*curptr == '-') - { - type = value_t::number_integer; - max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1; - curptr++; - } - else - { - type = value_t::number_unsigned; - max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)()); - } - - // count the significant figures - for (; curptr < m_cursor; curptr++) - { - // quickly skip tests if a digit - if (*curptr < '0' || *curptr > '9') +basic_json_parser_49: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) { - if (*curptr == '.') + fill_line_buffer(3); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 'D') + { + if (yych <= '/') { - // don't count '.' but change to float - type = value_t::number_float; - continue; + goto basic_json_parser_14; } - // assume exponent (if not then will fail parse): change to - // float, stop counting and record exponent details - type = value_t::number_float; + if (yych <= '9') + { + goto basic_json_parser_49; + } + goto basic_json_parser_14; + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + goto basic_json_parser_14; + } +basic_json_parser_51: + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych >= ':') + { + goto basic_json_parser_32; + } +basic_json_parser_52: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '/') + { + goto basic_json_parser_14; + } + if (yych <= '9') + { + goto basic_json_parser_52; + } + goto basic_json_parser_14; +basic_json_parser_54: + yych = *++m_cursor; + if (yych == 's') + { + goto basic_json_parser_58; + } + goto basic_json_parser_32; +basic_json_parser_55: + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_59; + } + goto basic_json_parser_32; +basic_json_parser_56: + yych = *++m_cursor; + if (yych == 'e') + { + goto basic_json_parser_61; + } + goto basic_json_parser_32; +basic_json_parser_57: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_63; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_63; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_63; + } + goto basic_json_parser_32; + } +basic_json_parser_58: + yych = *++m_cursor; + if (yych == 'e') + { + goto basic_json_parser_64; + } + goto basic_json_parser_32; +basic_json_parser_59: + ++m_cursor; + { + last_token_type = token_type::literal_null; break; } - - // skip if definitely not an integer - if (type != value_t::number_float) +basic_json_parser_61: + ++m_cursor; { - auto digit = static_cast<number_unsigned_t>(*curptr - '0'); - - // overflow if value * 10 + digit > max, move terms around - // to avoid overflow in intermediate values - if (value > (max - digit) / 10) - { - // overflow - type = value_t::number_float; - } - else - { - // no overflow - value = value * 10 + digit; - } + last_token_type = token_type::literal_true; + break; } - } - - // save the value (if not a float) - if (type == value_t::number_unsigned) - { - result.m_value.number_unsigned = value; - } - else if (type == value_t::number_integer) - { - // invariant: if we parsed a '-', the absolute value is between - // 0 (we allow -0) and max == -INT64_MIN - assert(value >= 0); - assert(value <= max); - - if (value == max) +basic_json_parser_63: + ++m_cursor; + if (m_limit <= m_cursor) { - // we cannot simply negate value (== max == -INT64_MIN), - // see https://github.com/nlohmann/json/issues/389 - result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN); + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_66; + } + goto basic_json_parser_32; } else { - // all other values can be negated safely - result.m_value.number_integer = -static_cast<number_integer_t>(value); + if (yych <= 'F') + { + goto basic_json_parser_66; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_66; + } + goto basic_json_parser_32; } +basic_json_parser_64: + ++m_cursor; + { + last_token_type = token_type::literal_false; + break; + } +basic_json_parser_66: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_30; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + } + + } + + return last_token_type; + } + + /*! + @brief append data from the stream to the line buffer + + This function is called by the scan() function when the end of the + buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be + incremented without leaving the limits of the line buffer. Note re2c + decides when to call this function. + + If the lexer reads from contiguous storage, there is no trailing null + byte. Therefore, this function must make sure to add these padding + null bytes. + + If the lexer reads from an input stream, this function reads the next + line of the input. + + @pre + p p p p p p u u u u u x . . . . . . + ^ ^ ^ ^ + m_content m_start | m_limit + m_cursor + + @post + u u u u u x x x x x x x . . . . . . + ^ ^ ^ + | m_cursor m_limit + m_start + m_content + */ + void fill_line_buffer(size_t n = 0) + { + // if line buffer is used, m_content points to its data + assert(m_line_buffer.empty() + or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data())); + + // if line buffer is used, m_limit is set past the end of its data + assert(m_line_buffer.empty() + or m_limit == m_content + m_line_buffer.size()); + + // pointer relationships + assert(m_content <= m_start); + assert(m_start <= m_cursor); + assert(m_cursor <= m_limit); + assert(m_marker == nullptr or m_marker <= m_limit); + + // number of processed characters (p) + const auto num_processed_chars = static_cast<size_t>(m_start - m_content); + // offset for m_marker wrt. to m_start + const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; + // number of unprocessed characters (u) + const auto offset_cursor = m_cursor - m_start; + + // no stream is used or end of file is reached + if (m_stream == nullptr or m_stream->eof()) + { + // m_start may or may not be pointing into m_line_buffer at + // this point. We trust the standand library to do the right + // thing. See http://stackoverflow.com/q/28142011/266378 + m_line_buffer.assign(m_start, m_limit); + + // append n characters to make sure that there is sufficient + // space between m_cursor and m_limit + m_line_buffer.append(1, '\x00'); + if (n > 0) + { + m_line_buffer.append(n - 1, '\x01'); + } + } + else + { + // delete processed characters from line buffer + m_line_buffer.erase(0, num_processed_chars); + // read next line from input stream + m_line_buffer_tmp.clear(); + std::getline(*m_stream, m_line_buffer_tmp, '\n'); + + // add line with newline symbol to the line buffer + m_line_buffer += m_line_buffer_tmp; + m_line_buffer.push_back('\n'); + } + + // set pointers + m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()); + assert(m_content != nullptr); + m_start = m_content; + m_marker = m_start + offset_marker; + m_cursor = m_start + offset_cursor; + m_limit = m_start + m_line_buffer.size(); + } + + /// return string representation of last read token + string_t get_token_string() const + { + assert(m_start != nullptr); + return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start), + static_cast<size_t>(m_cursor - m_start)); + } + + /*! + @brief return string value for string tokens + + The function iterates the characters between the opening and closing + quotes of the string value. The complete string is the range + [m_start,m_cursor). Consequently, we iterate from m_start+1 to + m_cursor-1. + + We differentiate two cases: + + 1. Escaped characters. In this case, a new character is constructed + according to the nature of the escape. Some escapes create new + characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied + as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape + `"\\uxxxx"` need special care. In this case, to_unicode takes care + of the construction of the values. + 2. Unescaped characters are copied as is. + + @pre `m_cursor - m_start >= 2`, meaning the length of the last token + is at least 2 bytes which is trivially true for any string (which + consists of at least two quotes). + + " c1 c2 c3 ... " + ^ ^ + m_start m_cursor + + @complexity Linear in the length of the string.\n + + Lemma: The loop body will always terminate.\n + + Proof (by contradiction): Assume the loop body does not terminate. As + the loop body does not contain another loop, one of the called + functions must never return. The called functions are `std::strtoul` + and to_unicode. Neither function can loop forever, so the loop body + will never loop forever which contradicts the assumption that the loop + body does not terminate, q.e.d.\n + + Lemma: The loop condition for the for loop is eventually false.\n + + Proof (by contradiction): Assume the loop does not terminate. Due to + the above lemma, this can only be due to a tautological loop + condition; that is, the loop condition i < m_cursor - 1 must always be + true. Let x be the change of i for any loop iteration. Then + m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This + can be rephrased to m_cursor - m_start - 2 > x. With the + precondition, we x <= 0, meaning that the loop condition holds + indefinitly if i is always decreased. However, observe that the value + of i is strictly increasing with each iteration, as it is incremented + by 1 in the iteration expression and never decremented inside the loop + body. Hence, the loop condition will eventually be false which + contradicts the assumption that the loop condition is a tautology, + q.e.d. + + @return string value of current token without opening and closing + quotes + @throw std::out_of_range if to_unicode fails + */ + string_t get_string() const + { + assert(m_cursor - m_start >= 2); + + string_t result; + result.reserve(static_cast<size_t>(m_cursor - m_start - 2)); + + // iterate the result between the quotes + for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i) + { + // find next escape character + auto e = std::find(i, m_cursor - 1, '\\'); + if (e != i) + { + // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705 + for (auto k = i; k < e; k++) + { + result.push_back(static_cast<typename string_t::value_type>(*k)); + } + i = e - 1; // -1 because of ++i } else { - // parse with strtod - result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr); + // processing escaped character + // read next character + ++i; - // replace infinity and NAN by null - if (not std::isfinite(result.m_value.number_float)) + switch (*i) { - type = value_t::null; - result.m_value = basic_json::json_value(); + // the default escapes + case 't': + { + result += "\t"; + break; + } + case 'b': + { + result += "\b"; + break; + } + case 'f': + { + result += "\f"; + break; + } + case 'n': + { + result += "\n"; + break; + } + case 'r': + { + result += "\r"; + break; + } + case '\\': + { + result += "\\"; + break; + } + case '/': + { + result += "/"; + break; + } + case '"': + { + result += "\""; + break; + } + + // unicode + case 'u': + { + // get code xxxx from uxxxx + auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1), + 4).c_str(), nullptr, 16); + + // check if codepoint is a high surrogate + if (codepoint >= 0xD800 and codepoint <= 0xDBFF) + { + // make sure there is a subsequent unicode + if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') + { + JSON_THROW(std::invalid_argument("missing low surrogate")); + } + + // get code yyyy from uxxxx\uyyyy + auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer> + (i + 7), 4).c_str(), nullptr, 16); + result += to_unicode(codepoint, codepoint2); + // skip the next 10 characters (xxxx\uyyyy) + i += 10; + } + else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) + { + // we found a lone low surrogate + JSON_THROW(std::invalid_argument("missing high surrogate")); + } + else + { + // add unicode character(s) + result += to_unicode(codepoint); + // skip the next four characters (xxxx) + i += 4; + } + break; + } } } - - // save the type - result.m_type = type; } - private: - /// optional input stream - std::istream* m_stream = nullptr; - /// line buffer buffer for m_stream - string_t m_line_buffer {}; - /// used for filling m_line_buffer - string_t m_line_buffer_tmp {}; - /// the buffer pointer - const lexer_char_t* m_content = nullptr; - /// pointer to the beginning of the current symbol - const lexer_char_t* m_start = nullptr; - /// pointer for backtracking information - const lexer_char_t* m_marker = nullptr; - /// pointer to the current symbol - const lexer_char_t* m_cursor = nullptr; - /// pointer to the end of the buffer - const lexer_char_t* m_limit = nullptr; - /// the last token type - token_type last_token_type = token_type::end_of_input; - }; + return result; + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + long double str_to_float_t(long double* /* type */, char** endptr) const + { + return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + double str_to_float_t(double* /* type */, char** endptr) const + { + return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + float str_to_float_t(float* /* type */, char** endptr) const + { + return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief return number value for number tokens + + This function translates the last token into the most appropriate + number type (either integer, unsigned integer or floating point), + which is passed back to the caller via the result parameter. + + This function parses the integer component up to the radix point or + exponent while collecting information about the 'floating point + representation', which it stores in the result parameter. If there is + no radix point or exponent, and the number can fit into a @ref + number_integer_t or @ref number_unsigned_t then it sets the result + parameter accordingly. + + If the number is a floating point number the number is then parsed + using @a std:strtod (or @a std:strtof or @a std::strtold). + + @param[out] result @ref basic_json object to receive the number, or + NAN if the conversion read past the current token. The latter case + needs to be treated by the caller function. + */ + void get_number(basic_json& result) const + { + assert(m_start != nullptr); + + const lexer::lexer_char_t* curptr = m_start; + + // accumulate the integer conversion result (unsigned for now) + number_unsigned_t value = 0; + + // maximum absolute value of the relevant integer type + number_unsigned_t max; + + // temporarily store the type to avoid unecessary bitfield access + value_t type; + + // look for sign + if (*curptr == '-') + { + type = value_t::number_integer; + max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1; + curptr++; + } + else + { + type = value_t::number_unsigned; + max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)()); + } + + // count the significant figures + for (; curptr < m_cursor; curptr++) + { + // quickly skip tests if a digit + if (*curptr < '0' || *curptr > '9') + { + if (*curptr == '.') + { + // don't count '.' but change to float + type = value_t::number_float; + continue; + } + // assume exponent (if not then will fail parse): change to + // float, stop counting and record exponent details + type = value_t::number_float; + break; + } + + // skip if definitely not an integer + if (type != value_t::number_float) + { + auto digit = static_cast<number_unsigned_t>(*curptr - '0'); + + // overflow if value * 10 + digit > max, move terms around + // to avoid overflow in intermediate values + if (value > (max - digit) / 10) + { + // overflow + type = value_t::number_float; + } + else + { + // no overflow + value = value * 10 + digit; + } + } + } + + // save the value (if not a float) + if (type == value_t::number_unsigned) + { + result.m_value.number_unsigned = value; + } + else if (type == value_t::number_integer) + { + // invariant: if we parsed a '-', the absolute value is between + // 0 (we allow -0) and max == -INT64_MIN + assert(value >= 0); + assert(value <= max); + + if (value == max) + { + // we cannot simply negate value (== max == -INT64_MIN), + // see https://github.com/nlohmann/json/issues/389 + result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN); + } + else + { + // all other values can be negated safely + result.m_value.number_integer = -static_cast<number_integer_t>(value); + } + } + else + { + // parse with strtod + result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr); + + // replace infinity and NAN by null + if (not std::isfinite(result.m_value.number_float)) + { + type = value_t::null; + result.m_value = basic_json::json_value(); + } + } + + // save the type + result.m_type = type; + } + + private: + /// optional input stream + std::istream* m_stream = nullptr; + /// line buffer buffer for m_stream + string_t m_line_buffer {}; + /// used for filling m_line_buffer + string_t m_line_buffer_tmp {}; + /// the buffer pointer + const lexer_char_t* m_content = nullptr; + /// pointer to the beginning of the current symbol + const lexer_char_t* m_start = nullptr; + /// pointer for backtracking information + const lexer_char_t* m_marker = nullptr; + /// pointer to the current symbol + const lexer_char_t* m_cursor = nullptr; + /// pointer to the end of the buffer + const lexer_char_t* m_limit = nullptr; + /// the last token type + token_type last_token_type = token_type::end_of_input; + }; /*! @brief syntax analysis @@ -11130,282 +11141,282 @@ basic_json_parser_66: */ class parser { - public: + public: /// a parser reading from a string literal parser(const char* buff, const parser_callback_t cb = nullptr) - : callback(cb), - m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff)) - {} + : callback(cb), + m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff)) + {} - /// a parser reading from an input stream - parser(std::istream& is, const parser_callback_t cb = nullptr) - : callback(cb), m_lexer(is) - {} + /// a parser reading from an input stream + parser(std::istream& is, const parser_callback_t cb = nullptr) + : callback(cb), m_lexer(is) + {} - /// a parser reading from an iterator range with contiguous storage - template<class IteratorType, typename std::enable_if< - std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value - , int>::type - = 0> - parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) - : callback(cb), - m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)), - static_cast<size_t>(std::distance(first, last))) - {} + /// a parser reading from an iterator range with contiguous storage + template<class IteratorType, typename std::enable_if< + std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value + , int>::type + = 0> + parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) + : callback(cb), + m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)), + static_cast<size_t>(std::distance(first, last))) + {} - /// public parser interface - basic_json parse() + /// public parser interface + basic_json parse() + { + // read first token + get_token(); + + basic_json result = parse_internal(true); + result.assert_invariant(); + + expect(lexer::token_type::end_of_input); + + // return parser result and replace it with null in case the + // top-level value was discarded by the callback function + return result.is_discarded() ? basic_json() : std::move(result); + } + + private: + /// the actual parser + basic_json parse_internal(bool keep) + { + auto result = basic_json(value_t::discarded); + + switch (last_token) { - // read first token - get_token(); - - basic_json result = parse_internal(true); - result.assert_invariant(); - - expect(lexer::token_type::end_of_input); - - // return parser result and replace it with null in case the - // top-level value was discarded by the callback function - return result.is_discarded() ? basic_json() : std::move(result); - } - - private: - /// the actual parser - basic_json parse_internal(bool keep) - { - auto result = basic_json(value_t::discarded); - - switch (last_token) + case lexer::token_type::begin_object: { - case lexer::token_type::begin_object: + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) { - if (keep and (not callback - or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) - { - // explicitly set result to object to cope with {} - result.m_type = value_t::object; - result.m_value = value_t::object; - } + // explicitly set result to object to cope with {} + result.m_type = value_t::object; + result.m_value = value_t::object; + } - // read next token - get_token(); + // read next token + get_token(); - // closing } -> we are done - if (last_token == lexer::token_type::end_object) - { - get_token(); - if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) - { - result = basic_json(value_t::discarded); - } - return result; - } - - // no comma is expected here - unexpect(lexer::token_type::value_separator); - - // otherwise: parse key-value pairs - do - { - // ugly, but could be fixed with loop reorganization - if (last_token == lexer::token_type::value_separator) - { - get_token(); - } - - // store key - expect(lexer::token_type::value_string); - const auto key = m_lexer.get_string(); - - bool keep_tag = false; - if (keep) - { - if (callback) - { - basic_json k(key); - keep_tag = callback(depth, parse_event_t::key, k); - } - else - { - keep_tag = true; - } - } - - // parse separator (:) - get_token(); - expect(lexer::token_type::name_separator); - - // parse and add value - get_token(); - auto value = parse_internal(keep); - if (keep and keep_tag and not value.is_discarded()) - { - result[key] = std::move(value); - } - } - while (last_token == lexer::token_type::value_separator); - - // closing } - expect(lexer::token_type::end_object); + // closing } -> we are done + if (last_token == lexer::token_type::end_object) + { get_token(); if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) { result = basic_json(value_t::discarded); } - return result; } - case lexer::token_type::begin_array: + // no comma is expected here + unexpect(lexer::token_type::value_separator); + + // otherwise: parse key-value pairs + do { - if (keep and (not callback - or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) - { - // explicitly set result to object to cope with [] - result.m_type = value_t::array; - result.m_value = value_t::array; - } - - // read next token - get_token(); - - // closing ] -> we are done - if (last_token == lexer::token_type::end_array) + // ugly, but could be fixed with loop reorganization + if (last_token == lexer::token_type::value_separator) { get_token(); - if (callback and not callback(--depth, parse_event_t::array_end, result)) - { - result = basic_json(value_t::discarded); - } - return result; } - // no comma is expected here - unexpect(lexer::token_type::value_separator); + // store key + expect(lexer::token_type::value_string); + const auto key = m_lexer.get_string(); - // otherwise: parse values - do + bool keep_tag = false; + if (keep) { - // ugly, but could be fixed with loop reorganization - if (last_token == lexer::token_type::value_separator) + if (callback) { - get_token(); + basic_json k(key); + keep_tag = callback(depth, parse_event_t::key, k); } - - // parse value - auto value = parse_internal(keep); - if (keep and not value.is_discarded()) + else { - result.push_back(std::move(value)); + keep_tag = true; } } - while (last_token == lexer::token_type::value_separator); - // closing ] - expect(lexer::token_type::end_array); + // parse separator (:) get_token(); - if (keep and callback and not callback(--depth, parse_event_t::array_end, result)) + expect(lexer::token_type::name_separator); + + // parse and add value + get_token(); + auto value = parse_internal(keep); + if (keep and keep_tag and not value.is_discarded()) + { + result[key] = std::move(value); + } + } + while (last_token == lexer::token_type::value_separator); + + // closing } + expect(lexer::token_type::end_object); + get_token(); + if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) + { + result = basic_json(value_t::discarded); + } + + return result; + } + + case lexer::token_type::begin_array: + { + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) + { + // explicitly set result to object to cope with [] + result.m_type = value_t::array; + result.m_value = value_t::array; + } + + // read next token + get_token(); + + // closing ] -> we are done + if (last_token == lexer::token_type::end_array) + { + get_token(); + if (callback and not callback(--depth, parse_event_t::array_end, result)) { result = basic_json(value_t::discarded); } - return result; } - case lexer::token_type::literal_null: + // no comma is expected here + unexpect(lexer::token_type::value_separator); + + // otherwise: parse values + do { - get_token(); - result.m_type = value_t::null; - break; + // ugly, but could be fixed with loop reorganization + if (last_token == lexer::token_type::value_separator) + { + get_token(); + } + + // parse value + auto value = parse_internal(keep); + if (keep and not value.is_discarded()) + { + result.push_back(std::move(value)); + } + } + while (last_token == lexer::token_type::value_separator); + + // closing ] + expect(lexer::token_type::end_array); + get_token(); + if (keep and callback and not callback(--depth, parse_event_t::array_end, result)) + { + result = basic_json(value_t::discarded); } - case lexer::token_type::value_string: - { - const auto s = m_lexer.get_string(); - get_token(); - result = basic_json(s); - break; - } - - case lexer::token_type::literal_true: - { - get_token(); - result.m_type = value_t::boolean; - result.m_value = true; - break; - } - - case lexer::token_type::literal_false: - { - get_token(); - result.m_type = value_t::boolean; - result.m_value = false; - break; - } - - case lexer::token_type::value_number: - { - m_lexer.get_number(result); - get_token(); - break; - } - - default: - { - // the last token was unexpected - unexpect(last_token); - } + return result; } - if (keep and callback and not callback(depth, parse_event_t::value, result)) + case lexer::token_type::literal_null: { - result = basic_json(value_t::discarded); + get_token(); + result.m_type = value_t::null; + break; } - return result; - } - /// get next token from lexer - typename lexer::token_type get_token() - { - last_token = m_lexer.scan(); - return last_token; - } - - void expect(typename lexer::token_type t) const - { - if (t != last_token) + case lexer::token_type::value_string: { - std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + - "'") : - lexer::token_type_name(last_token)); - error_msg += "; expected " + lexer::token_type_name(t); + const auto s = m_lexer.get_string(); + get_token(); + result = basic_json(s); + break; + } + + case lexer::token_type::literal_true: + { + get_token(); + result.m_type = value_t::boolean; + result.m_value = true; + break; + } + + case lexer::token_type::literal_false: + { + get_token(); + result.m_type = value_t::boolean; + result.m_value = false; + break; + } + + case lexer::token_type::value_number: + { + m_lexer.get_number(result); + get_token(); + break; + } + + default: + { + // the last token was unexpected + unexpect(last_token); + } + } + + if (keep and callback and not callback(depth, parse_event_t::value, result)) + { + result = basic_json(value_t::discarded); + } + return result; + } + + /// get next token from lexer + typename lexer::token_type get_token() + { + last_token = m_lexer.scan(); + return last_token; + } + + void expect(typename lexer::token_type t) const + { + if (t != last_token) + { + std::string error_msg = "parse error - unexpected "; + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : + lexer::token_type_name(last_token)); + error_msg += "; expected " + lexer::token_type_name(t); JSON_THROW(std::invalid_argument(error_msg)); - } } + } - void unexpect(typename lexer::token_type t) const + void unexpect(typename lexer::token_type t) const + { + if (t == last_token) { - if (t == last_token) - { - std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + - "'") : - lexer::token_type_name(last_token)); + std::string error_msg = "parse error - unexpected "; + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : + lexer::token_type_name(last_token)); JSON_THROW(std::invalid_argument(error_msg)); - } } + } - private: - /// current level of recursion - int depth = 0; - /// callback function - const parser_callback_t callback = nullptr; - /// the type of the last read token - typename lexer::token_type last_token = lexer::token_type::uninitialized; - /// the lexer - lexer m_lexer; - }; + private: + /// current level of recursion + int depth = 0; + /// callback function + const parser_callback_t callback = nullptr; + /// the type of the last read token + typename lexer::token_type last_token = lexer::token_type::uninitialized; + /// the lexer + lexer m_lexer; + }; public: /*! @@ -11424,7 +11435,7 @@ basic_json_parser_66: /// allow basic_json to access private members friend class basic_json; - public: + public: /*! @brief create JSON pointer @@ -11448,562 +11459,562 @@ basic_json_parser_66: @since version 2.0.0 */ explicit json_pointer(const std::string& s = "") - : reference_tokens(split(s)) - {} + : reference_tokens(split(s)) + {} - /*! - @brief return a string representation of the JSON pointer + /*! + @brief return a string representation of the JSON pointer - @invariant For each JSON pointer `ptr`, it holds: - @code {.cpp} - ptr == json_pointer(ptr.to_string()); - @endcode + @invariant For each JSON pointer `ptr`, it holds: + @code {.cpp} + ptr == json_pointer(ptr.to_string()); + @endcode - @return a string representation of the JSON pointer + @return a string representation of the JSON pointer - @liveexample{The example shows the result of `to_string`., - json_pointer__to_string} + @liveexample{The example shows the result of `to_string`., + json_pointer__to_string} - @since version 2.0.0 - */ - std::string to_string() const noexcept + @since version 2.0.0 + */ + std::string to_string() const noexcept + { + return std::accumulate(reference_tokens.begin(), + reference_tokens.end(), std::string{}, + [](const std::string & a, const std::string & b) { - return std::accumulate(reference_tokens.begin(), - reference_tokens.end(), std::string{}, - [](const std::string & a, const std::string & b) - { - return a + "/" + escape(b); - }); - } + return a + "/" + escape(b); + }); + } - /// @copydoc to_string() - operator std::string() const - { - return to_string(); - } + /// @copydoc to_string() + operator std::string() const + { + return to_string(); + } - private: - /// remove and return last reference pointer - std::string pop_back() + private: + /// remove and return last reference pointer + std::string pop_back() + { + if (is_root()) { - if (is_root()) - { JSON_THROW(std::domain_error("JSON pointer has no parent")); - } - - auto last = reference_tokens.back(); - reference_tokens.pop_back(); - return last; } - /// return whether pointer points to the root document - bool is_root() const - { - return reference_tokens.empty(); - } + auto last = reference_tokens.back(); + reference_tokens.pop_back(); + return last; + } - json_pointer top() const + /// return whether pointer points to the root document + bool is_root() const + { + return reference_tokens.empty(); + } + + json_pointer top() const + { + if (is_root()) { - if (is_root()) - { JSON_THROW(std::domain_error("JSON pointer has no parent")); - } - - json_pointer result = *this; - result.reference_tokens = {reference_tokens[0]}; - return result; } - /*! - @brief create and return a reference to the pointed to value + json_pointer result = *this; + result.reference_tokens = {reference_tokens[0]}; + return result; + } - @complexity Linear in the number of reference tokens. - */ - reference get_and_create(reference j) const + /*! + @brief create and return a reference to the pointed to value + + @complexity Linear in the number of reference tokens. + */ + reference get_and_create(reference j) const + { + pointer result = &j; + + // in case no reference tokens exist, return a reference to the + // JSON value j which will be overwritten by a primitive value + for (const auto& reference_token : reference_tokens) { - pointer result = &j; - - // in case no reference tokens exist, return a reference to the - // JSON value j which will be overwritten by a primitive value - for (const auto& reference_token : reference_tokens) + switch (result->m_type) { - switch (result->m_type) + case value_t::null: { - case value_t::null: + if (reference_token == "0") { - if (reference_token == "0") - { - // start a new array if reference token is 0 - result = &result->operator[](0); - } - else - { - // start a new object otherwise - result = &result->operator[](reference_token); - } - break; + // start a new array if reference token is 0 + result = &result->operator[](0); } - - case value_t::object: + else { - // create an entry in the object + // start a new object otherwise result = &result->operator[](reference_token); - break; - } - - case value_t::array: - { - // create an entry in the array - result = &result->operator[](static_cast<size_type>(std::stoi(reference_token))); - break; - } - - /* - The following code is only reached if there exists a - reference token _and_ the current value is primitive. In - this case, we have an error situation, because primitive - values may only occur as single value; that is, with an - empty list of reference tokens. - */ - default: - { - JSON_THROW(std::domain_error("invalid value to unflatten")); - } - } - } - - return *result; - } - - /*! - @brief return a reference to the pointed to value - - @note This version does not throw if a value is not present, but tries - to create nested values instead. For instance, calling this function - with pointer `"/this/that"` on a null value is equivalent to calling - `operator[]("this").operator[]("that")` on that value, effectively - changing the null value to an object. - - @param[in] ptr a JSON value - - @return reference to the JSON value pointed to by the JSON pointer - - @complexity Linear in the length of the JSON pointer. - - @throw std::out_of_range if the JSON pointer can not be resolved - @throw std::domain_error if an array index begins with '0' - @throw std::invalid_argument if an array index was not a number - */ - reference get_unchecked(pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - // convert null values to arrays or objects before continuing - if (ptr->m_type == value_t::null) - { - // check if reference token is a number - const bool nums = std::all_of(reference_token.begin(), - reference_token.end(), - [](const char x) - { - return std::isdigit(x); - }); - - // change value to array for numbers or "-" or to object - // otherwise - if (nums or reference_token == "-") - { - *ptr = value_t::array; - } - else - { - *ptr = value_t::object; - } - } - - switch (ptr->m_type) - { - case value_t::object: - { - // use unchecked object access - ptr = &ptr->operator[](reference_token); - break; - } - - case value_t::array: - { - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - if (reference_token == "-") - { - // explicityly treat "-" as index beyond the end - ptr = &ptr->operator[](ptr->m_value.array->size()); - } - else - { - // convert array index to number; unchecked access - ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); - } - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - reference get_checked(pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // note: at performs range check - ptr = &ptr->at(reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" always fails the range check - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // note: at performs range check - ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - /*! - @brief return a const reference to the pointed to value - - @param[in] ptr a JSON value - - @return const reference to the JSON value pointed to by the JSON - pointer - */ - const_reference get_unchecked(const_pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // use unchecked object access - ptr = &ptr->operator[](reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" cannot be used for const access - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // use unchecked array access - ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - const_reference get_checked(const_pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // note: at performs range check - ptr = &ptr->at(reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" always fails the range check - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // note: at performs range check - ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - /// split the string input to reference tokens - static std::vector<std::string> split(const std::string& reference_string) - { - std::vector<std::string> result; - - // special case: empty reference string -> no reference tokens - if (reference_string.empty()) - { - return result; - } - - // check if nonempty reference string begins with slash - if (reference_string[0] != '/') - { - JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'")); - } - - // extract the reference tokens: - // - slash: position of the last read slash (or end of string) - // - start: position after the previous slash - for ( - // search for the first slash after the first character - size_t slash = reference_string.find_first_of('/', 1), - // set the beginning of the first reference token - start = 1; - // we can stop if start == string::npos+1 = 0 - start != 0; - // set the beginning of the next reference token - // (will eventually be 0 if slash == std::string::npos) - start = slash + 1, - // find next slash - slash = reference_string.find_first_of('/', start)) - { - // use the text between the beginning of the reference token - // (start) and the last slash (slash). - auto reference_token = reference_string.substr(start, slash - start); - - // check reference tokens are properly escaped - for (size_t pos = reference_token.find_first_of('~'); - pos != std::string::npos; - pos = reference_token.find_first_of('~', pos + 1)) - { - assert(reference_token[pos] == '~'); - - // ~ must be followed by 0 or 1 - if (pos == reference_token.size() - 1 or - (reference_token[pos + 1] != '0' and - reference_token[pos + 1] != '1')) - { - JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'")); - } - } - - // finally, store the reference token - unescape(reference_token); - result.push_back(reference_token); - } - - return result; - } - - private: - /*! - @brief replace all occurrences of a substring by another string - - @param[in,out] s the string to manipulate; changed so that all - occurrences of @a f are replaced with @a t - @param[in] f the substring to replace with @a t - @param[in] t the string to replace @a f - - @pre The search string @a f must not be empty. - - @since version 2.0.0 - */ - static void replace_substring(std::string& s, - const std::string& f, - const std::string& t) - { - assert(not f.empty()); - - for ( - size_t pos = s.find(f); // find first occurrence of f - pos != std::string::npos; // make sure f was found - s.replace(pos, f.size(), t), // replace with t - pos = s.find(f, pos + t.size()) // find next occurrence of f - ); - } - - /// escape tilde and slash - static std::string escape(std::string s) - { - // escape "~"" to "~0" and "/" to "~1" - replace_substring(s, "~", "~0"); - replace_substring(s, "/", "~1"); - return s; - } - - /// unescape tilde and slash - static void unescape(std::string& s) - { - // first transform any occurrence of the sequence '~1' to '/' - replace_substring(s, "~1", "/"); - // then transform any occurrence of the sequence '~0' to '~' - replace_substring(s, "~0", "~"); - } - - /*! - @param[in] reference_string the reference string to the current value - @param[in] value the value to consider - @param[in,out] result the result object to insert values to - - @note Empty objects or arrays are flattened to `null`. - */ - static void flatten(const std::string& reference_string, - const basic_json& value, - basic_json& result) - { - switch (value.m_type) - { - case value_t::array: - { - if (value.m_value.array->empty()) - { - // flatten empty array as null - result[reference_string] = nullptr; - } - else - { - // iterate array and use index as reference string - for (size_t i = 0; i < value.m_value.array->size(); ++i) - { - flatten(reference_string + "/" + std::to_string(i), - value.m_value.array->operator[](i), result); - } } break; } case value_t::object: { - if (value.m_value.object->empty()) + // create an entry in the object + result = &result->operator[](reference_token); + break; + } + + case value_t::array: + { + // create an entry in the array + result = &result->operator[](static_cast<size_type>(std::stoi(reference_token))); + break; + } + + /* + The following code is only reached if there exists a + reference token _and_ the current value is primitive. In + this case, we have an error situation, because primitive + values may only occur as single value; that is, with an + empty list of reference tokens. + */ + default: + { + JSON_THROW(std::domain_error("invalid value to unflatten")); + } + } + } + + return *result; + } + + /*! + @brief return a reference to the pointed to value + + @note This version does not throw if a value is not present, but tries + to create nested values instead. For instance, calling this function + with pointer `"/this/that"` on a null value is equivalent to calling + `operator[]("this").operator[]("that")` on that value, effectively + changing the null value to an object. + + @param[in] ptr a JSON value + + @return reference to the JSON value pointed to by the JSON pointer + + @complexity Linear in the length of the JSON pointer. + + @throw std::out_of_range if the JSON pointer can not be resolved + @throw std::domain_error if an array index begins with '0' + @throw std::invalid_argument if an array index was not a number + */ + reference get_unchecked(pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + // convert null values to arrays or objects before continuing + if (ptr->m_type == value_t::null) + { + // check if reference token is a number + const bool nums = std::all_of(reference_token.begin(), + reference_token.end(), + [](const char x) + { + return std::isdigit(x); + }); + + // change value to array for numbers or "-" or to object + // otherwise + if (nums or reference_token == "-") + { + *ptr = value_t::array; + } + else + { + *ptr = value_t::object; + } + } + + switch (ptr->m_type) + { + case value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case value_t::array: + { + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') { - // flatten empty object as null - result[reference_string] = nullptr; + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + if (reference_token == "-") + { + // explicityly treat "-" as index beyond the end + ptr = &ptr->operator[](ptr->m_value.array->size()); } else { - // iterate object and use keys as reference string - for (const auto& element : *value.m_value.object) - { - flatten(reference_string + "/" + escape(element.first), - element.second, result); - } + // convert array index to number; unchecked access + ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); } break; } default: { - // add primitive value with its reference string - result[reference_string] = value; - break; + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } - /*! - @param[in] value flattened JSON + return *ptr; + } - @return unflattened JSON - */ - static basic_json unflatten(const basic_json& value) + reference get_checked(pointer ptr) const + { + for (const auto& reference_token : reference_tokens) { - if (not value.is_object()) + switch (ptr->m_type) { - JSON_THROW(std::domain_error("only objects can be unflattened")); - } - - basic_json result; - - // iterate the JSON object values - for (const auto& element : *value.m_value.object) - { - if (not element.second.is_primitive()) + case value_t::object: { - JSON_THROW(std::domain_error("values in object must be primitive")); + // note: at performs range check + ptr = &ptr->at(reference_token); + break; } - // assign value to reference pointed to by JSON pointer; Note - // that if the JSON pointer is "" (i.e., points to the whole - // value), function get_and_create returns a reference to - // result itself. An assignment will then create a primitive - // value. - json_pointer(element.first).get_and_create(result) = element.second; - } + case value_t::array: + { + if (reference_token == "-") + { + // "-" always fails the range check + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // note: at performs range check + ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + /*! + @brief return a const reference to the pointed to value + + @param[in] ptr a JSON value + + @return const reference to the JSON value pointed to by the JSON + pointer + */ + const_reference get_unchecked(const_pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" cannot be used for const access + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // use unchecked array access + ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + const_reference get_checked(const_pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" always fails the range check + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // note: at performs range check + ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + /// split the string input to reference tokens + static std::vector<std::string> split(const std::string& reference_string) + { + std::vector<std::string> result; + + // special case: empty reference string -> no reference tokens + if (reference_string.empty()) + { return result; } - private: - /// the reference tokens - std::vector<std::string> reference_tokens {}; - }; + // check if nonempty reference string begins with slash + if (reference_string[0] != '/') + { + JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'")); + } + + // extract the reference tokens: + // - slash: position of the last read slash (or end of string) + // - start: position after the previous slash + for ( + // search for the first slash after the first character + size_t slash = reference_string.find_first_of('/', 1), + // set the beginning of the first reference token + start = 1; + // we can stop if start == string::npos+1 = 0 + start != 0; + // set the beginning of the next reference token + // (will eventually be 0 if slash == std::string::npos) + start = slash + 1, + // find next slash + slash = reference_string.find_first_of('/', start)) + { + // use the text between the beginning of the reference token + // (start) and the last slash (slash). + auto reference_token = reference_string.substr(start, slash - start); + + // check reference tokens are properly escaped + for (size_t pos = reference_token.find_first_of('~'); + pos != std::string::npos; + pos = reference_token.find_first_of('~', pos + 1)) + { + assert(reference_token[pos] == '~'); + + // ~ must be followed by 0 or 1 + if (pos == reference_token.size() - 1 or + (reference_token[pos + 1] != '0' and + reference_token[pos + 1] != '1')) + { + JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'")); + } + } + + // finally, store the reference token + unescape(reference_token); + result.push_back(reference_token); + } + + return result; + } + + private: + /*! + @brief replace all occurrences of a substring by another string + + @param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t + @param[in] f the substring to replace with @a t + @param[in] t the string to replace @a f + + @pre The search string @a f must not be empty. + + @since version 2.0.0 + */ + static void replace_substring(std::string& s, + const std::string& f, + const std::string& t) + { + assert(not f.empty()); + + for ( + size_t pos = s.find(f); // find first occurrence of f + pos != std::string::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t + pos = s.find(f, pos + t.size()) // find next occurrence of f + ); + } + + /// escape tilde and slash + static std::string escape(std::string s) + { + // escape "~"" to "~0" and "/" to "~1" + replace_substring(s, "~", "~0"); + replace_substring(s, "/", "~1"); + return s; + } + + /// unescape tilde and slash + static void unescape(std::string& s) + { + // first transform any occurrence of the sequence '~1' to '/' + replace_substring(s, "~1", "/"); + // then transform any occurrence of the sequence '~0' to '~' + replace_substring(s, "~0", "~"); + } + + /*! + @param[in] reference_string the reference string to the current value + @param[in] value the value to consider + @param[in,out] result the result object to insert values to + + @note Empty objects or arrays are flattened to `null`. + */ + static void flatten(const std::string& reference_string, + const basic_json& value, + basic_json& result) + { + switch (value.m_type) + { + case value_t::array: + { + if (value.m_value.array->empty()) + { + // flatten empty array as null + result[reference_string] = nullptr; + } + else + { + // iterate array and use index as reference string + for (size_t i = 0; i < value.m_value.array->size(); ++i) + { + flatten(reference_string + "/" + std::to_string(i), + value.m_value.array->operator[](i), result); + } + } + break; + } + + case value_t::object: + { + if (value.m_value.object->empty()) + { + // flatten empty object as null + result[reference_string] = nullptr; + } + else + { + // iterate object and use keys as reference string + for (const auto& element : *value.m_value.object) + { + flatten(reference_string + "/" + escape(element.first), + element.second, result); + } + } + break; + } + + default: + { + // add primitive value with its reference string + result[reference_string] = value; + break; + } + } + } + + /*! + @param[in] value flattened JSON + + @return unflattened JSON + */ + static basic_json unflatten(const basic_json& value) + { + if (not value.is_object()) + { + JSON_THROW(std::domain_error("only objects can be unflattened")); + } + + basic_json result; + + // iterate the JSON object values + for (const auto& element : *value.m_value.object) + { + if (not element.second.is_primitive()) + { + JSON_THROW(std::domain_error("values in object must be primitive")); + } + + // assign value to reference pointed to by JSON pointer; Note + // that if the JSON pointer is "" (i.e., points to the whole + // value), function get_and_create returns a reference to + // result itself. An assignment will then create a primitive + // value. + json_pointer(element.first).get_and_create(result) = element.second; + } + + return result; + } + + private: + /// the reference tokens + std::vector<std::string> reference_tokens {}; + }; ////////////////////////// // JSON Pointer support // @@ -12684,38 +12695,38 @@ using json = basic_json<>; // specialization of std::swap, and std::hash namespace std -{ -/*! -@brief exchanges the values of two JSON objects - -@since version 1.0.0 -*/ -template<> -inline void swap(nlohmann::json& j1, - nlohmann::json& j2) noexcept( - is_nothrow_move_constructible<nlohmann::json>::value and - is_nothrow_move_assignable<nlohmann::json>::value - ) -{ - j1.swap(j2); -} - -/// hash value for JSON objects -template<> -struct hash<nlohmann::json> { /*! - @brief return a hash value for a JSON object + @brief exchanges the values of two JSON objects @since version 1.0.0 */ - std::size_t operator()(const nlohmann::json& j) const + template<> + inline void swap(nlohmann::json& j1, + nlohmann::json& j2) noexcept( + is_nothrow_move_constructible<nlohmann::json>::value and + is_nothrow_move_assignable<nlohmann::json>::value + ) + { + j1.swap(j2); + } + + /// hash value for JSON objects + template<> + struct hash<nlohmann::json> + { + /*! + @brief return a hash value for a JSON object + + @since version 1.0.0 + */ + std::size_t operator()(const nlohmann::json& j) const { // a naive hashing via the string representation const auto& h = hash<nlohmann::json::string_t>(); return h(j.dump()); } -}; + }; } // namespace std /*! diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index f552a390d..12fde56ea 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -106,38 +106,356 @@ SOFTWARE. */ namespace nlohmann { +// alias templates to reduce boilerplate +template <bool B, typename T = void> +using enable_if_t = typename std::enable_if<B, T>::type; +template <typename T> +using remove_cv_t = typename std::remove_cv<T>::type; +template <typename T> +using remove_reference_t = typename std::remove_reference<T>::type; + +template <typename T> +using uncvref_t = remove_cv_t<remove_reference_t<T>>; + +template <bool If, typename Then, typename Else> +using conditional_t = typename std::conditional<If, Then, Else>::type; + +// Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait +template <typename T> +using is_scoped_enum = + std::integral_constant<bool, not std::is_convertible<T, int>::value and + std::is_enum<T>::value>; + +template <typename T> +using is_unscoped_enum = + std::integral_constant<bool, std::is_convertible<T, int>::value and + std::is_enum<T>::value>; + +// TODO update this doc /*! @brief unnamed namespace with internal helper functions @since version 1.0.0 */ -namespace + +namespace detail { +// Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t) +template <typename...> struct make_void +{ + using type = void; +}; +template <typename... Ts> using void_t = typename make_void<Ts...>::type; + +// Implementation of 3 C++17 constructs: conjunction, disjunction, negation. +// This is needed to avoid evaluating all the traits in a condition +// +// For example: not std::is_same<void, T>::value and has_value_type<T>::value +// will not compile when T = void (on MSVC at least) +// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value +// will stop evaluating if negation<...>::value == false +// +// Please note that those constructs must be used with caution, since symbols can +// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors) +// Only use it when you have too (see example ahead) +template <class...> struct conjunction : std::true_type {}; +template <class B1> struct conjunction<B1> : B1 {}; +template <class B1, class... Bn> +struct conjunction<B1, Bn...> +: conditional_t<bool(B1::value), conjunction<Bn...>, B1> {}; + +template <class B> struct negation : std::integral_constant < bool, !B::value > {}; +template <class...> struct disjunction : std::false_type {}; +template <class B1> struct disjunction<B1> : B1 {}; +template <class B1, class... Bn> +struct disjunction<B1, Bn...> +: conditional_t<bool(B1::value), B1, disjunction<Bn...>> {}; + /*! @brief Helper to determine whether there's a key_type for T. - Thus helper is used to tell associative containers apart from other containers such as sequence containers. For instance, `std::map` passes the test as it contains a `mapped_type`, whereas `std::vector` fails the test. - @sa http://stackoverflow.com/a/7728728/266378 @since version 1.0.0, overworked in version 2.0.6 */ -template<typename T> -struct has_mapped_type +#define NLOHMANN_JSON_HAS_HELPER(type) \ + template <typename T> struct has_##type { \ + private: \ + template <typename U, typename = typename U::type> \ + static int detect(U &&); \ + \ + static void detect(...); \ + \ + public: \ + static constexpr bool value = \ + std::is_integral<decltype(detect(std::declval<T>()))>::value; \ + }; + +NLOHMANN_JSON_HAS_HELPER(mapped_type) +NLOHMANN_JSON_HAS_HELPER(key_type) +NLOHMANN_JSON_HAS_HELPER(value_type) +NLOHMANN_JSON_HAS_HELPER(iterator) + +#undef NLOHMANN_JSON_HAS_HELPER + +template <bool B, class RealType, class CompatibleObjectType> +struct is_compatible_object_type_impl : std::false_type {}; + +template <class RealType, class CompatibleObjectType> +struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> +{ + static constexpr auto value = + std::is_constructible<typename RealType::key_type, + typename CompatibleObjectType::key_type>::value and + std::is_constructible<typename RealType::mapped_type, + typename CompatibleObjectType::mapped_type>::value; +}; + +template<class RealType, class CompatibleObjectType> +struct is_compatible_object_type +{ + // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void + // hence the conjunction + static auto constexpr value = is_compatible_object_type_impl < + conjunction<negation<std::is_same<void, CompatibleObjectType>>, + has_mapped_type<CompatibleObjectType>, + has_key_type<CompatibleObjectType>>::value, + RealType, CompatibleObjectType >::value; +}; + +template <bool B, class BasicJson, class CompatibleArrayType> +struct is_compatible_array_type_impl : std::false_type {}; + +template <class BasicJson, class CompatibleArrayType> +struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> +{ + static constexpr auto value = + not std::is_same<CompatibleArrayType, + typename BasicJson::iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::const_iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::reverse_iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::const_reverse_iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::array_t::iterator>::value and + not std::is_same<CompatibleArrayType, + typename BasicJson::array_t::const_iterator>::value; +}; + +template <class BasicJson, class CompatibleArrayType> +struct is_compatible_array_type +{ + // the check for CompatibleArrayType = void is done in is_compatible_object_type + // but we need the conjunction here as well + static auto constexpr value = is_compatible_array_type_impl < + conjunction<negation<is_compatible_object_type< + typename BasicJson::object_t, CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value, + BasicJson, CompatibleArrayType >::value; +}; + +template <bool, typename, typename> +struct is_compatible_integer_type_impl : std::false_type {}; + +template <typename RealIntegerType, typename CompatibleNumberIntegerType> +struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> +{ + using RealLimits = std::numeric_limits<RealIntegerType>; + using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>; + + static constexpr auto value = + std::is_constructible<RealIntegerType, + CompatibleNumberIntegerType>::value and + CompatibleLimits::is_integer and + RealLimits::is_signed == CompatibleLimits::is_signed; +}; + +template <typename RealIntegerType, typename CompatibleNumberIntegerType> +struct is_compatible_integer_type +{ + static constexpr auto value = is_compatible_integer_type_impl < + std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, + CompatibleNumberIntegerType >::value; +}; + +template <typename RealFloat, typename CompatibleFloat> +struct is_compatible_float_type +{ + static constexpr auto value = + std::is_constructible<RealFloat, CompatibleFloat>::value and + std::is_floating_point<CompatibleFloat>::value; +}; + +template <typename T, typename BasicJson> +struct is_compatible_basic_json_type +{ + static auto constexpr value = + is_unscoped_enum<T>::value or + std::is_same<T, BasicJson>::value or + std::is_constructible<typename BasicJson::string_t, T>::value or + std::is_same<typename BasicJson::boolean_t, T>::value or + is_compatible_array_type<BasicJson, T>::value or + is_compatible_object_type<typename BasicJson::object_t, T>::value or + is_compatible_float_type<typename BasicJson::number_float_t, T>::value or + is_compatible_integer_type<typename BasicJson::number_integer_t, + T>::value or + is_compatible_integer_type<typename BasicJson::number_unsigned_t, + T>::value; +}; + +template <typename T, typename BasicJson, typename PrimitiveIterator> +struct is_basic_json_nested_class +{ + static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or + std::is_same<T, typename BasicJson::const_iterator>::value or + std::is_same<T, typename BasicJson::reverse_iterator>::value or + std::is_same<T, typename BasicJson::const_reverse_iterator>::value or + std::is_same<T, PrimitiveIterator>::value or + std::is_same<T, typename BasicJson::json_pointer>::value; +}; + +// This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists +template <template <typename, typename> class JSONSerializer, typename Json, + typename T> +struct has_from_json { private: - template <typename U, typename = typename U::mapped_type> + // also check the return type of from_json + template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( + std::declval<Json>(), std::declval<T&>()))>::value>> static int detect(U&&); static void detect(...); + public: - static constexpr bool value = - std::is_integral<decltype(detect(std::declval<T>()))>::value; + static constexpr bool value = std::is_integral<decltype( + detect(std::declval<JSONSerializer<T, void>>()))>::value; }; -} // namespace +// This trait checks if JSONSerializer<T>::from_json(json const&) exists +// this overload is used for non-default-constructible user-defined-types +template <template <typename, typename> class JSONSerializer, typename Json, + typename T> +struct has_non_default_from_json +{ + private: + template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> + static int detect(U&&); + + static void detect(...); + + public: + static constexpr bool value = std::is_integral<decltype( + detect(std::declval<JSONSerializer<T, void>>()))>::value; +}; + +// This trait checks if JSONSerializer<T>::to_json exists +template <template <typename, typename> class JSONSerializer, typename Json, + typename T> +struct has_to_json +{ + private: + template <typename U, typename = decltype(uncvref_t<U>::to_json( + std::declval<Json&>(), std::declval<T>()))> + static int detect(U&&); + + static void detect(...); + + public: + static constexpr bool value = std::is_integral<decltype( + detect(std::declval<JSONSerializer<T, void>>()))>::value; +}; + +// those declarations are needed to workaround a MSVC bug related to ADL +// (taken from MSVC-Ranges implementation) +void to_json(); +void from_json(); + +struct to_json_fn +{ + // is it really useful to mark those as constexpr? + template <typename Json, typename T> + constexpr auto operator()(Json&& j, T&& val) const + noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) + -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), + void()) + { + return to_json(std::forward<Json>(j), std::forward<T>(val)); + } +}; + +struct from_json_fn +{ + template <typename Json, typename T> + constexpr auto operator()(Json&& j, T& val) const + noexcept(noexcept(from_json(std::forward<Json>(j), val))) + -> decltype(from_json(std::forward<Json>(j), val), void()) + { + return from_json(std::forward<Json>(j), val); + } +}; + +/*! +@brief helper class to create locales with decimal point + +This struct is used a default locale during the JSON serialization. JSON +requires the decimal point to be `.`, so this function overloads the +`do_decimal_point()` function to return `.`. This function is called by +float-to-string conversions to retrieve the decimal separator between integer +and fractional parts. + +@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315 +@since version 2.0.0 +*/ +struct DecimalSeparator : std::numpunct<char> +{ + char do_decimal_point() const + { + return '.'; + } +}; + +} + +// taken from ranges-v3 +// TODO add doc +template <typename T> +struct static_const +{ + static constexpr T value{}; +}; + +template <typename T> +constexpr T static_const<T>::value; + +inline namespace +{ +constexpr auto const& to_json = static_const<detail::to_json_fn>::value; +constexpr auto const& from_json = static_const<detail::from_json_fn>::value; +} + +// default JSONSerializer template argument, doesn't care about template argument +// will use ADL for serialization +template <typename = void, typename = void> +struct adl_serializer +{ + template <typename Json, typename T> + static void from_json(Json&& j, T& val) + { + ::nlohmann::from_json(std::forward<Json>(j), val); + } + + template <typename Json, typename T> + static void to_json(Json& j, T&& val) + { + ::nlohmann::to_json(j, std::forward<T>(val)); + } +}; /*! @brief a class to store JSON values @@ -226,7 +544,8 @@ template < class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, - template<typename U> class AllocatorType = std::allocator + template<typename U> class AllocatorType = std::allocator, + template<typename T, typename SFINAE = void> class JSONSerializer = adl_serializer > class basic_json { @@ -234,7 +553,8 @@ class basic_json /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, - AllocatorType>; + AllocatorType, JSONSerializer>; + class primitive_iterator_t; public: // forward declarations @@ -1215,11 +1535,11 @@ class basic_json @since version 1.0.0 */ - template<class CompatibleObjectType, typename std::enable_if< - std::is_constructible<typename object_t::key_type, typename CompatibleObjectType::key_type>::value and - std::is_constructible<basic_json, typename CompatibleObjectType::mapped_type>::value, int>::type = 0> - basic_json(const CompatibleObjectType& val) - : m_type(value_t::object) + template <class CompatibleObjectType, + enable_if_t<detail::is_compatible_object_type< + object_t, CompatibleObjectType>::value, + int> = 0> + basic_json(const CompatibleObjectType& val) : m_type(value_t::object) { using std::begin; using std::end; @@ -1278,16 +1598,11 @@ class basic_json @since version 1.0.0 */ - template<class CompatibleArrayType, typename std::enable_if< - not std::is_same<CompatibleArrayType, typename basic_json_t::iterator>::value and - not std::is_same<CompatibleArrayType, typename basic_json_t::const_iterator>::value and - not std::is_same<CompatibleArrayType, typename basic_json_t::reverse_iterator>::value and - not std::is_same<CompatibleArrayType, typename basic_json_t::const_reverse_iterator>::value and - not std::is_same<CompatibleArrayType, typename array_t::iterator>::value and - not std::is_same<CompatibleArrayType, typename array_t::const_iterator>::value and - std::is_constructible<basic_json, typename CompatibleArrayType::value_type>::value, int>::type = 0> - basic_json(const CompatibleArrayType& val) - : m_type(value_t::array) + template <class CompatibleArrayType, + enable_if_t<detail::is_compatible_array_type< + basic_json_t, CompatibleArrayType>::value, + int> = 0> + basic_json(const CompatibleArrayType& val) : m_type(value_t::array) { using std::begin; using std::end; @@ -1295,6 +1610,28 @@ class basic_json assert_invariant(); } + + // constructor chosen when: + // - JSONSerializer::to_json exists for type T + // - T is not a istream, nor convertible to basic_json (float, vectors, etc) + // is_compatible_basic_json_type == not is_user_defined_type + template < + typename T, + enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and + not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and + not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and + not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and + + detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, + detail::has_to_json<JSONSerializer, basic_json, + uncvref_t<T>>>::value, + int> = 0 > + basic_json(T && val) + { + JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); + } + /*! @brief create a string (explicit) @@ -1456,7 +1793,10 @@ class basic_json @since version 1.0.0 */ - basic_json(const int val) noexcept + + // Constructor for unscoped enums (not enum classes) + template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0> + basic_json(T val) noexcept : m_type(value_t::number_integer), m_value(static_cast<number_integer_t>(val)) { @@ -1488,11 +1828,11 @@ class basic_json @since version 1.0.0 */ - template<typename CompatibleNumberIntegerType, typename std::enable_if< - std::is_constructible<number_integer_t, CompatibleNumberIntegerType>::value and - std::numeric_limits<CompatibleNumberIntegerType>::is_integer and - std::numeric_limits<CompatibleNumberIntegerType>::is_signed, - CompatibleNumberIntegerType>::type = 0> + template < + typename CompatibleNumberIntegerType, + enable_if_t<detail::is_compatible_integer_type< + number_integer_t, CompatibleNumberIntegerType>::value, + int> = 0 > basic_json(const CompatibleNumberIntegerType val) noexcept : m_type(value_t::number_integer), m_value(static_cast<number_integer_t>(val)) @@ -1546,11 +1886,11 @@ class basic_json @since version 2.0.0 */ - template<typename CompatibleNumberUnsignedType, typename std::enable_if < - std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and - std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and - not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed, - CompatibleNumberUnsignedType>::type = 0> + template < + typename CompatibleNumberUnsignedType, + enable_if_t<detail::is_compatible_integer_type< + number_unsigned_t, CompatibleNumberUnsignedType>::value, + int> = 0 > basic_json(const CompatibleNumberUnsignedType val) noexcept : m_type(value_t::number_unsigned), m_value(static_cast<number_unsigned_t>(val)) @@ -1626,9 +1966,10 @@ class basic_json @since version 1.0.0 */ - template<typename CompatibleNumberFloatType, typename = typename std::enable_if< - std::is_constructible<number_float_t, CompatibleNumberFloatType>::value and - std::is_floating_point<CompatibleNumberFloatType>::value>::type> + template <typename CompatibleNumberFloatType, + enable_if_t<detail::is_compatible_float_type< + number_float_t, CompatibleNumberFloatType>::value, + int> = 0> basic_json(const CompatibleNumberFloatType val) noexcept : basic_json(number_float_t(val)) { @@ -1788,7 +2129,7 @@ class basic_json @since version 1.0.0 */ static basic_json array(std::initializer_list<basic_json> init = - std::initializer_list<basic_json>()) + std::initializer_list<basic_json>()) { return basic_json(init, false, value_t::array); } @@ -1828,7 +2169,7 @@ class basic_json @since version 1.0.0 */ static basic_json object(std::initializer_list<basic_json> init = - std::initializer_list<basic_json>()) + std::initializer_list<basic_json>()) { return basic_json(init, false, value_t::object); } @@ -2169,7 +2510,7 @@ class basic_json std::is_nothrow_move_assignable<value_t>::value and std::is_nothrow_move_constructible<json_value>::value and std::is_nothrow_move_assignable<json_value>::value - ) + ) { // check that passed value is valid other.assert_invariant(); @@ -2182,6 +2523,18 @@ class basic_json return *this; } + // this overload is needed, since constructor for udt is explicit + template <typename T, enable_if_t<not detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>::value and + detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>> + reference& operator=(T&& val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and + std::is_nothrow_move_assignable<uncvref_t<T>>::value) + { + static_assert(sizeof(T) == 0 , ""); + // I'm not sure this a is good practice... + return *this = basic_json_t{std::forward<T>(val)}; + } + /*! @brief destructor @@ -2655,7 +3008,6 @@ class basic_json // value access // ////////////////// - /// get an object (explicit) template<class T, typename std::enable_if< std::is_convertible<typename object_t::key_type, typename T::key_type>::value and std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0> @@ -2681,13 +3033,16 @@ class basic_json } /// get an array (explicit) - template<class T, typename std::enable_if< - std::is_convertible<basic_json_t, typename T::value_type>::value and - not std::is_same<basic_json_t, typename T::value_type>::value and - not std::is_arithmetic<T>::value and - not std::is_convertible<std::string, T>::value and - not has_mapped_type<T>::value, int>::type = 0> - T get_impl(T* /*unused*/) const + template < + class T, + typename std::enable_if < + std::is_convertible<basic_json_t, typename T::value_type>::value and + not std::is_same<basic_json_t, + typename T::value_type>::value and + not std::is_arithmetic<T>::value and + not std::is_convertible<std::string, T>::value and + not detail::has_mapped_type<T>::value, + int >::type = 0 > { if (is_array()) { @@ -2727,7 +3082,7 @@ class basic_json /// get an array (explicit) template<class T, typename std::enable_if< std::is_same<basic_json, typename T::value_type>::value and - not has_mapped_type<T>::value, int>::type = 0> + not detail::has_mapped_type<T>::value, int>::type = 0> T get_impl(T* /*unused*/) const { if (is_array()) @@ -2956,13 +3311,46 @@ class basic_json @since version 1.0.0 */ - template<typename ValueType, typename std::enable_if< - not std::is_pointer<ValueType>::value, int>::type = 0> - ValueType get() const + template <typename ValueType, + enable_if_t<not std::is_pointer<ValueType>::value, int> = 0> + auto get() const + -> decltype(this->get_impl(static_cast<ValueType*>(nullptr))) { return get_impl(static_cast<ValueType*>(nullptr)); } + template < + typename T, + enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, + detail::has_from_json<JSONSerializer, basic_json_t, + uncvref_t<T>>>::value, + int> = 0 > + auto get() const -> uncvref_t<T> + { + using type = uncvref_t<T>; + static_assert(std::is_default_constructible<type>::value&& + std::is_copy_constructible<type>::value, + "user-defined types must be DefaultConstructible and " + "CopyConstructible when used with get"); + type ret; + JSONSerializer<type>::from_json(*this, ret); + return ret; + } + + // This overload is chosen for non-default constructible user-defined-types + template < + typename T, + enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, + detail::has_non_default_from_json<JSONSerializer, basic_json_t, + uncvref_t<T>>>::value, + short> = 0 > + T get() const + { + return JSONSerializer<T>::from_json(*this); + } + /*! @brief get a pointer value (explicit) @@ -3042,8 +3430,8 @@ class basic_json { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const<typename - std::remove_pointer<typename - std::remove_const<PointerType>::type>::type>::type; + std::remove_pointer<typename + std::remove_const<PointerType>::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same<object_t, pointee_t>::value @@ -3070,8 +3458,8 @@ class basic_json { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const<typename - std::remove_pointer<typename - std::remove_const<PointerType>::type>::type>::type; + std::remove_pointer<typename + std::remove_const<PointerType>::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same<object_t, pointee_t>::value @@ -4124,14 +4512,14 @@ class basic_json case value_t::object: { result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, - last.m_it.object_iterator); + last.m_it.object_iterator); break; } case value_t::array: { result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, - last.m_it.array_iterator); + last.m_it.array_iterator); break; } @@ -5348,9 +5736,9 @@ class basic_json // insert to array and return iterator iterator result(this); result.m_it.array_iterator = m_value.array->insert( - pos.m_it.array_iterator, - first.m_it.array_iterator, - last.m_it.array_iterator); + pos.m_it.array_iterator, + first.m_it.array_iterator, + last.m_it.array_iterator); return result; } @@ -5420,7 +5808,7 @@ class basic_json std::is_nothrow_move_assignable<value_t>::value and std::is_nothrow_move_constructible<json_value>::value and std::is_nothrow_move_assignable<json_value>::value - ) + ) { std::swap(m_type, other.m_type); std::swap(m_value, other.m_value); @@ -8020,13 +8408,13 @@ class basic_json o << (pretty_print ? ",\n" : ","); } o << string_t(new_indent, ' ') << "\"" - << escape_string(i->first) << "\":" - << (pretty_print ? " " : ""); - i->second.dump(o, pretty_print, indent_step, new_indent); + << escape_string(i->first) << "\":" + << (pretty_print ? " " : ""); + i->second.dump(o, pretty_print, indent_step, new_indent); } - // decrease indentation - if (pretty_print) + // decrease indentation + if (pretty_print) { new_indent -= indent_step; o << "\n"; @@ -8071,16 +8459,16 @@ class basic_json } o << string_t(new_indent, ' ') << "]"; - return; + return; } - case value_t::string: + case value_t::string: { o << string_t("\"") << escape_string(*m_value.string) << "\""; - return; + return; } - case value_t::boolean: + case value_t::boolean: { o << (m_value.boolean ? "true" : "false"); return; @@ -8154,50 +8542,126 @@ class basic_json */ class primitive_iterator_t { - public: - /// set iterator to a defined beginning - void set_begin() noexcept - { - m_it = begin_value; - } + public: - /// set iterator to a defined past the end - void set_end() noexcept - { - m_it = end_value; - } + difference_type get_value() const noexcept + { + return m_it; + } + /// set iterator to a defined beginning + void set_begin() noexcept + { + m_it = begin_value; + } - /// return whether the iterator can be dereferenced - constexpr bool is_begin() const noexcept - { - return (m_it == begin_value); - } + /// set iterator to a defined past the end + void set_end() noexcept + { + m_it = end_value; + } - /// return whether the iterator is at end - constexpr bool is_end() const noexcept - { - return (m_it == end_value); - } + /// return whether the iterator can be dereferenced + constexpr bool is_begin() const noexcept + { + return (m_it == begin_value); + } - /// return reference to the value to change and compare - operator difference_type& () noexcept - { - return m_it; - } + /// return whether the iterator is at end + constexpr bool is_end() const noexcept + { + return (m_it == end_value); + } - /// return value to compare - constexpr operator difference_type () const noexcept - { - return m_it; - } + friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it == rhs.m_it; + } - private: - static constexpr difference_type begin_value = 0; - static constexpr difference_type end_value = begin_value + 1; + friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return !(lhs == rhs); + } - /// iterator as signed integer type - difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min(); - }; + friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it < rhs.m_it; + } + + friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it <= rhs.m_it; + } + + friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it > rhs.m_it; + } + + friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it >= rhs.m_it; + } + + primitive_iterator_t operator+(difference_type i) + { + auto result = *this; + result += i; + return result; + } + + friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it - rhs.m_it; + } + + friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it) + { + return os << it.m_it; + } + + primitive_iterator_t& operator++() + { + ++m_it; + return *this; + } + + primitive_iterator_t& operator++(int) + { + m_it++; + return *this; + } + + primitive_iterator_t& operator--() + { + --m_it; + return *this; + } + + primitive_iterator_t& operator--(int) + { + m_it--; + return *this; + } + + primitive_iterator_t& operator+=(difference_type n) + { + m_it += n; + return *this; + } + + primitive_iterator_t& operator-=(difference_type n) + { + m_it -= n; + return *this; + } + + private: + static constexpr difference_type begin_value = 0; + static constexpr difference_type end_value = begin_value + 1; + + /// iterator as signed integer type + difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min(); + }; /*! @brief an iterator value @@ -8217,104 +8681,104 @@ class basic_json /// create an uninitialized internal_iterator internal_iterator() noexcept - : object_iterator(), array_iterator(), primitive_iterator() - {} + : object_iterator(), array_iterator(), primitive_iterator() + {} }; /// proxy class for the iterator_wrapper functions template<typename IteratorType> class iteration_proxy { - private: + private: /// helper class for iteration class iteration_proxy_internal { - private: + private: /// the iterator IteratorType anchor; /// an index for arrays (used to create key names) size_t array_index = 0; - public: + public: explicit iteration_proxy_internal(IteratorType it) noexcept - : anchor(it) - {} + : anchor(it) + {} - /// dereference operator (needed for range-based for) - iteration_proxy_internal& operator*() + /// dereference operator (needed for range-based for) + iteration_proxy_internal& operator*() + { + return *this; + } + + /// increment operator (needed for range-based for) + iteration_proxy_internal& operator++() + { + ++anchor; + ++array_index; + + return *this; + } + + /// inequality operator (needed for range-based for) + bool operator!= (const iteration_proxy_internal& o) const + { + return anchor != o.anchor; + } + + /// return key of the iterator + typename basic_json::string_t key() const + { + assert(anchor.m_object != nullptr); + + switch (anchor.m_object->type()) + { + // use integer array index as key + case value_t::array: { - return *this; + return std::to_string(array_index); } - /// increment operator (needed for range-based for) - iteration_proxy_internal& operator++() + // use key from the object + case value_t::object: { - ++anchor; - ++array_index; - - return *this; + return anchor.key(); } - /// inequality operator (needed for range-based for) - bool operator!= (const iteration_proxy_internal& o) const + // use an empty key for all primitive types + default: { - return anchor != o.anchor; + return ""; } + } + } - /// return key of the iterator - typename basic_json::string_t key() const - { - assert(anchor.m_object != nullptr); - - switch (anchor.m_object->type()) - { - // use integer array index as key - case value_t::array: - { - return std::to_string(array_index); - } - - // use key from the object - case value_t::object: - { - return anchor.key(); - } - - // use an empty key for all primitive types - default: - { - return ""; - } - } - } - - /// return value of the iterator - typename IteratorType::reference value() const - { - return anchor.value(); - } + /// return value of the iterator + typename IteratorType::reference value() const + { + return anchor.value(); + } }; - /// the container to iterate - typename IteratorType::reference container; + /// the container to iterate + typename IteratorType::reference container; - public: - /// construct iteration proxy from a container - explicit iteration_proxy(typename IteratorType::reference cont) - : container(cont) - {} + public: + /// construct iteration proxy from a container + explicit iteration_proxy(typename IteratorType::reference cont) + : container(cont) + {} - /// return iterator begin (needed for range-based for) - iteration_proxy_internal begin() noexcept - { - return iteration_proxy_internal(container.begin()); - } + /// return iterator begin (needed for range-based for) + iteration_proxy_internal begin() noexcept + { + return iteration_proxy_internal(container.begin()); + } - /// return iterator end (needed for range-based for) - iteration_proxy_internal end() noexcept - { - return iteration_proxy_internal(container.end()); - } + /// return iterator end (needed for range-based for) + iteration_proxy_internal end() noexcept + { + return iteration_proxy_internal(container.end()); + } }; public: @@ -8338,7 +8802,7 @@ class basic_json @since version 1.0.0, simplified in version 2.0.9 */ template<typename U> - class iter_impl : public std::iterator<std::random_access_iterator_tag, U> + class iter_impl : public std::iterator<std::random_access_iterator_tag, U> { /// allow basic_json to access private members friend class basic_json; @@ -8348,19 +8812,19 @@ class basic_json or std::is_same<U, const basic_json>::value, "iter_impl only accepts (const) basic_json"); - public: + public: /// the type of the values when the iterator is dereferenced using value_type = typename basic_json::value_type; /// a type to represent differences between iterators using difference_type = typename basic_json::difference_type; /// defines a pointer to the type iterated over (value_type) using pointer = typename std::conditional<std::is_const<U>::value, - typename basic_json::const_pointer, - typename basic_json::pointer>::type; + typename basic_json::const_pointer, + typename basic_json::pointer>::type; /// defines a reference to the type iterated over (value_type) using reference = typename std::conditional<std::is_const<U>::value, - typename basic_json::const_reference, - typename basic_json::reference>::type; + typename basic_json::const_reference, + typename basic_json::reference>::type; /// the category of the iterator using iterator_category = std::bidirectional_iterator_tag; @@ -8374,566 +8838,566 @@ class basic_json @post The iterator is initialized; i.e. `m_object != nullptr`. */ explicit iter_impl(pointer object) noexcept - : m_object(object) + : m_object(object) + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { - m_it.object_iterator = typename object_t::iterator(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = typename array_t::iterator(); - break; - } - - default: - { - m_it.primitive_iterator = primitive_iterator_t(); - break; - } - } - } - - /* - Use operator `const_iterator` instead of `const_iterator(const iterator& - other) noexcept` to avoid two class definitions for @ref iterator and - @ref const_iterator. - - This function is only called if this class is an @ref iterator. If this - class is a @ref const_iterator this function is not called. - */ - operator const_iterator() const - { - const_iterator ret; - - if (m_object) - { - ret.m_object = m_object; - ret.m_it = m_it; + m_it.object_iterator = typename object_t::iterator(); + break; } - return ret; - } - - /*! - @brief copy constructor - @param[in] other iterator to copy from - @note It is not checked whether @a other is initialized. - */ - iter_impl(const iter_impl& other) noexcept - : m_object(other.m_object), m_it(other.m_it) - {} - - /*! - @brief copy assignment - @param[in,out] other iterator to copy from - @note It is not checked whether @a other is initialized. - */ - iter_impl& operator=(iter_impl other) noexcept( - std::is_nothrow_move_constructible<pointer>::value and - std::is_nothrow_move_assignable<pointer>::value and - std::is_nothrow_move_constructible<internal_iterator>::value and - std::is_nothrow_move_assignable<internal_iterator>::value - ) - { - std::swap(m_object, other.m_object); - std::swap(m_it, other.m_it); - return *this; - } - - private: - /*! - @brief set the iterator to the first value - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - void set_begin() noexcept - { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::array: { - case basic_json::value_t::object: - { - m_it.object_iterator = m_object->m_value.object->begin(); - break; - } + m_it.array_iterator = typename array_t::iterator(); + break; + } - case basic_json::value_t::array: - { - m_it.array_iterator = m_object->m_value.array->begin(); - break; - } - - case basic_json::value_t::null: - { - // set to end so begin()==end() is true: null is empty - m_it.primitive_iterator.set_end(); - break; - } - - default: - { - m_it.primitive_iterator.set_begin(); - break; - } + default: + { + m_it.primitive_iterator = primitive_iterator_t(); + break; } } + } - /*! - @brief set the iterator past the last value - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - void set_end() noexcept + /* + Use operator `const_iterator` instead of `const_iterator(const iterator& + other) noexcept` to avoid two class definitions for @ref iterator and + @ref const_iterator. + + This function is only called if this class is an @ref iterator. If this + class is a @ref const_iterator this function is not called. + */ + operator const_iterator() const + { + const_iterator ret; + + if (m_object) { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - m_it.object_iterator = m_object->m_value.object->end(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = m_object->m_value.array->end(); - break; - } - - default: - { - m_it.primitive_iterator.set_end(); - break; - } - } + ret.m_object = m_object; + ret.m_it = m_it; } - public: - /*! - @brief return a reference to the value pointed to by the iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference operator*() const + return ret; + } + + /*! + @brief copy constructor + @param[in] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl(const iter_impl& other) noexcept + : m_object(other.m_object), m_it(other.m_it) + {} + + /*! + @brief copy assignment + @param[in,out] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl& operator=(iter_impl other) noexcept( + std::is_nothrow_move_constructible<pointer>::value and + std::is_nothrow_move_assignable<pointer>::value and + std::is_nothrow_move_constructible<internal_iterator>::value and + std::is_nothrow_move_assignable<internal_iterator>::value + ) + { + std::swap(m_object, other.m_object); + std::swap(m_it, other.m_it); + return *this; + } + + private: + /*! + @brief set the iterator to the first value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_begin() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { - assert(m_it.object_iterator != m_object->m_value.object->end()); - return m_it.object_iterator->second; - } + m_it.object_iterator = m_object->m_value.object->begin(); + break; + } - case basic_json::value_t::array: - { - assert(m_it.array_iterator != m_object->m_value.array->end()); - return *m_it.array_iterator; - } + case basic_json::value_t::array: + { + m_it.array_iterator = m_object->m_value.array->begin(); + break; + } - case basic_json::value_t::null: - { + case basic_json::value_t::null: + { + // set to end so begin()==end() is true: null is empty + m_it.primitive_iterator.set_end(); + break; + } + + default: + { + m_it.primitive_iterator.set_begin(); + break; + } + } + } + + /*! + @brief set the iterator past the last value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_end() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + m_it.object_iterator = m_object->m_value.object->end(); + break; + } + + case basic_json::value_t::array: + { + m_it.array_iterator = m_object->m_value.array->end(); + break; + } + + default: + { + m_it.primitive_iterator.set_end(); + break; + } + } + } + + public: + /*! + @brief return a reference to the value pointed to by the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator*() const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + assert(m_it.object_iterator != m_object->m_value.object->end()); + return m_it.object_iterator->second; + } + + case basic_json::value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return *m_it.array_iterator; + } + + case basic_json::value_t::null: + { JSON_THROW(std::out_of_range("cannot get value")); - } + } - default: + default: + { + if (m_it.primitive_iterator.is_begin()) { - if (m_it.primitive_iterator.is_begin()) - { - return *m_object; - } + return *m_object; + } JSON_THROW(std::out_of_range("cannot get value")); - } } } + } - /*! - @brief dereference the iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - pointer operator->() const + /*! + @brief dereference the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + pointer operator->() const + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { - assert(m_it.object_iterator != m_object->m_value.object->end()); - return &(m_it.object_iterator->second); - } + assert(m_it.object_iterator != m_object->m_value.object->end()); + return &(m_it.object_iterator->second); + } - case basic_json::value_t::array: - { - assert(m_it.array_iterator != m_object->m_value.array->end()); - return &*m_it.array_iterator; - } + case basic_json::value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return &*m_it.array_iterator; + } - default: + default: + { + if (m_it.primitive_iterator.is_begin()) { - if (m_it.primitive_iterator.is_begin()) - { - return m_object; - } + return m_object; + } JSON_THROW(std::out_of_range("cannot get value")); - } + } + } + } + + /*! + @brief post-increment (it++) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator++(int) + { + auto result = *this; + ++(*this); + return result; + } + + /*! + @brief pre-increment (++it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator++() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + std::advance(m_it.object_iterator, 1); + break; + } + + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, 1); + break; + } + + default: + { + ++m_it.primitive_iterator; + break; } } - /*! - @brief post-increment (it++) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator++(int) - { - auto result = *this; - ++(*this); - return result; - } + return *this; + } - /*! - @brief pre-increment (++it) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator++() - { - assert(m_object != nullptr); + /*! + @brief post-decrement (it--) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator--(int) + { + auto result = *this; + --(*this); + return result; + } - switch (m_object->m_type) + /*! + @brief pre-decrement (--it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator--() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: { - case basic_json::value_t::object: - { - std::advance(m_it.object_iterator, 1); - break; - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, 1); - break; - } - - default: - { - ++m_it.primitive_iterator; - break; - } + std::advance(m_it.object_iterator, -1); + break; } - return *this; - } - - /*! - @brief post-decrement (it--) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator--(int) - { - auto result = *this; - --(*this); - return result; - } - - /*! - @brief pre-decrement (--it) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator--() - { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::array: { - case basic_json::value_t::object: - { - std::advance(m_it.object_iterator, -1); - break; - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, -1); - break; - } - - default: - { - --m_it.primitive_iterator; - break; - } + std::advance(m_it.array_iterator, -1); + break; } - return *this; + default: + { + --m_it.primitive_iterator; + break; + } } - /*! - @brief comparison: equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator==(const iter_impl& other) const + return *this; + } + + /*! + @brief comparison: equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator==(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (m_object != other.m_object) { - // if objects are not the same, the comparison is undefined - if (m_object != other.m_object) - { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); - } - - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - return (m_it.object_iterator == other.m_it.object_iterator); - } - - case basic_json::value_t::array: - { - return (m_it.array_iterator == other.m_it.array_iterator); - } - - default: - { - return (m_it.primitive_iterator == other.m_it.primitive_iterator); - } - } } - /*! - @brief comparison: not equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator!=(const iter_impl& other) const - { - return not operator==(other); - } + assert(m_object != nullptr); - /*! - @brief comparison: smaller - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator<(const iter_impl& other) const + switch (m_object->m_type) { - // if objects are not the same, the comparison is undefined - if (m_object != other.m_object) + case basic_json::value_t::object: { + return (m_it.object_iterator == other.m_it.object_iterator); + } + + case basic_json::value_t::array: + { + return (m_it.array_iterator == other.m_it.array_iterator); + } + + default: + { + return (m_it.primitive_iterator == other.m_it.primitive_iterator); + } + } + } + + /*! + @brief comparison: not equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator!=(const iter_impl& other) const + { + return not operator==(other); + } + + /*! + @brief comparison: smaller + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (m_object != other.m_object) + { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); - } + } - assert(m_object != nullptr); + assert(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_type) + { + case basic_json::value_t::object: { - case basic_json::value_t::object: - { JSON_THROW(std::domain_error("cannot compare order of object iterators")); - } + } - case basic_json::value_t::array: - { - return (m_it.array_iterator < other.m_it.array_iterator); - } + case basic_json::value_t::array: + { + return (m_it.array_iterator < other.m_it.array_iterator); + } - default: - { - return (m_it.primitive_iterator < other.m_it.primitive_iterator); - } + default: + { + return (m_it.primitive_iterator < other.m_it.primitive_iterator); } } + } - /*! - @brief comparison: less than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator<=(const iter_impl& other) const + /*! + @brief comparison: less than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<=(const iter_impl& other) const + { + return not other.operator < (*this); + } + + /*! + @brief comparison: greater than + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>(const iter_impl& other) const + { + return not operator<=(other); + } + + /*! + @brief comparison: greater than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>=(const iter_impl& other) const + { + return not operator<(other); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator+=(difference_type i) + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - return not other.operator < (*this); - } - - /*! - @brief comparison: greater than - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator>(const iter_impl& other) const - { - return not operator<=(other); - } - - /*! - @brief comparison: greater than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator>=(const iter_impl& other) const - { - return not operator<(other); - } - - /*! - @brief add to iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator+=(difference_type i) - { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { JSON_THROW(std::domain_error("cannot use offsets with object iterators")); - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, i); - break; - } - - default: - { - m_it.primitive_iterator += i; - break; - } } - return *this; - } - - /*! - @brief subtract from iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator-=(difference_type i) - { - return operator+=(-i); - } - - /*! - @brief add to iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator+(difference_type i) - { - auto result = *this; - result += i; - return result; - } - - /*! - @brief subtract from iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator-(difference_type i) - { - auto result = *this; - result -= i; - return result; - } - - /*! - @brief return difference - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - difference_type operator-(const iter_impl& other) const - { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, i); + break; + } + + default: + { + m_it.primitive_iterator += i; + break; + } + } + + return *this; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator-=(difference_type i) + { + return operator+=(-i); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator+(difference_type i) + { + auto result = *this; + result += i; + return result; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator-(difference_type i) + { + auto result = *this; + result -= i; + return result; + } + + /*! + @brief return difference + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + difference_type operator-(const iter_impl& other) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: { - case basic_json::value_t::object: - { JSON_THROW(std::domain_error("cannot use offsets with object iterators")); - } + } - case basic_json::value_t::array: - { - return m_it.array_iterator - other.m_it.array_iterator; - } + case basic_json::value_t::array: + { + return m_it.array_iterator - other.m_it.array_iterator; + } - default: - { - return m_it.primitive_iterator - other.m_it.primitive_iterator; - } + default: + { + return m_it.primitive_iterator - other.m_it.primitive_iterator; } } + } - /*! - @brief access to successor - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference operator[](difference_type n) const + /*! + @brief access to successor + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator[](difference_type n) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) { - assert(m_object != nullptr); - - switch (m_object->m_type) + case basic_json::value_t::object: { - case basic_json::value_t::object: - { JSON_THROW(std::domain_error("cannot use operator[] for object iterators")); - } + } - case basic_json::value_t::array: - { - return *std::next(m_it.array_iterator, n); - } + case basic_json::value_t::array: + { + return *std::next(m_it.array_iterator, n); + } - case basic_json::value_t::null: - { + case basic_json::value_t::null: + { JSON_THROW(std::out_of_range("cannot get value")); - } + } - default: + default: + { + if (m_it.primitive_iterator.get_value() == -n) { - if (m_it.primitive_iterator == -n) - { - return *m_object; - } + return *m_object; + } JSON_THROW(std::out_of_range("cannot get value")); - } } } + } - /*! - @brief return the key of an object iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - typename object_t::key_type key() const + /*! + @brief return the key of an object iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + typename object_t::key_type key() const + { + assert(m_object != nullptr); + + if (m_object->is_object()) { - assert(m_object != nullptr); - - if (m_object->is_object()) - { - return m_it.object_iterator->first; - } + return m_it.object_iterator->first; + } JSON_THROW(std::domain_error("cannot use key() for non-object iterators")); - } + } - /*! - @brief return the value of an iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference value() const - { - return operator*(); - } + /*! + @brief return the value of an iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference value() const + { + return operator*(); + } - private: - /// associated JSON instance - pointer m_object = nullptr; - /// the actual iterator of the associated instance - internal_iterator m_it = internal_iterator(); - }; + private: + /// associated JSON instance + pointer m_object = nullptr; + /// the actual iterator of the associated instance + internal_iterator m_it = internal_iterator(); + }; /*! @brief a template for a reverse iterator class @@ -8953,9 +9417,9 @@ class basic_json @since version 1.0.0 */ template<typename Base> - class json_reverse_iterator : public std::reverse_iterator<Base> + class json_reverse_iterator : public std::reverse_iterator<Base> { - public: + public: /// shortcut to the reverse iterator adaptor using base_iterator = std::reverse_iterator<Base>; /// the reference type for the pointed-to element @@ -8963,89 +9427,89 @@ class basic_json /// create reverse iterator from iterator json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept - : base_iterator(it) - {} + : base_iterator(it) + {} - /// create reverse iterator from base class - json_reverse_iterator(const base_iterator& it) noexcept - : base_iterator(it) - {} + /// create reverse iterator from base class + json_reverse_iterator(const base_iterator& it) noexcept + : base_iterator(it) + {} - /// post-increment (it++) - json_reverse_iterator operator++(int) - { - return base_iterator::operator++(1); - } + /// post-increment (it++) + json_reverse_iterator operator++(int) + { + return base_iterator::operator++(1); + } - /// pre-increment (++it) - json_reverse_iterator& operator++() - { - base_iterator::operator++(); - return *this; - } + /// pre-increment (++it) + json_reverse_iterator& operator++() + { + base_iterator::operator++(); + return *this; + } - /// post-decrement (it--) - json_reverse_iterator operator--(int) - { - return base_iterator::operator--(1); - } + /// post-decrement (it--) + json_reverse_iterator operator--(int) + { + return base_iterator::operator--(1); + } - /// pre-decrement (--it) - json_reverse_iterator& operator--() - { - base_iterator::operator--(); - return *this; - } + /// pre-decrement (--it) + json_reverse_iterator& operator--() + { + base_iterator::operator--(); + return *this; + } - /// add to iterator - json_reverse_iterator& operator+=(difference_type i) - { - base_iterator::operator+=(i); - return *this; - } + /// add to iterator + json_reverse_iterator& operator+=(difference_type i) + { + base_iterator::operator+=(i); + return *this; + } - /// add to iterator - json_reverse_iterator operator+(difference_type i) const - { - auto result = *this; - result += i; - return result; - } + /// add to iterator + json_reverse_iterator operator+(difference_type i) const + { + auto result = *this; + result += i; + return result; + } - /// subtract from iterator - json_reverse_iterator operator-(difference_type i) const - { - auto result = *this; - result -= i; - return result; - } + /// subtract from iterator + json_reverse_iterator operator-(difference_type i) const + { + auto result = *this; + result -= i; + return result; + } - /// return difference - difference_type operator-(const json_reverse_iterator& other) const - { - return this->base() - other.base(); - } + /// return difference + difference_type operator-(const json_reverse_iterator& other) const + { + return this->base() - other.base(); + } - /// access to successor - reference operator[](difference_type n) const - { - return *(this->operator+(n)); - } + /// access to successor + reference operator[](difference_type n) const + { + return *(this->operator+(n)); + } - /// return the key of an object iterator - typename object_t::key_type key() const - { - auto it = --this->base(); - return it.key(); - } + /// return the key of an object iterator + typename object_t::key_type key() const + { + auto it = --this->base(); + return it.key(); + } - /// return the value of an iterator - reference value() const - { - auto it = --this->base(); - return it.operator * (); - } - }; + /// return the value of an iterator + reference value() const + { + auto it = --this->base(); + return it.operator * (); + } + }; private: @@ -9062,761 +9526,761 @@ class basic_json */ class lexer { - public: + public: /// token types for the parser enum class token_type - { - uninitialized, ///< indicating the scanner is uninitialized - literal_true, ///< the `true` literal - literal_false, ///< the `false` literal - literal_null, ///< the `null` literal - value_string, ///< a string -- use get_string() for actual value - value_number, ///< a number -- use get_number() for actual value - begin_array, ///< the character for array begin `[` - begin_object, ///< the character for object begin `{` - end_array, ///< the character for array end `]` - end_object, ///< the character for object end `}` - name_separator, ///< the name separator `:` - value_separator, ///< the value separator `,` - parse_error, ///< indicating a parse error - end_of_input ///< indicating the end of the input buffer - }; + { + uninitialized, ///< indicating the scanner is uninitialized + literal_true, ///< the `true` literal + literal_false, ///< the `false` literal + literal_null, ///< the `null` literal + value_string, ///< a string -- use get_string() for actual value + value_number, ///< a number -- use get_number() for actual value + begin_array, ///< the character for array begin `[` + begin_object, ///< the character for object begin `{` + end_array, ///< the character for array end `]` + end_object, ///< the character for object end `}` + name_separator, ///< the name separator `:` + value_separator, ///< the value separator `,` + parse_error, ///< indicating a parse error + end_of_input ///< indicating the end of the input buffer + }; - /// the char type to use in the lexer - using lexer_char_t = unsigned char; + /// the char type to use in the lexer + using lexer_char_t = unsigned char; - /// a lexer from a buffer with given length - lexer(const lexer_char_t* buff, const size_t len) noexcept - : m_content(buff) - { - assert(m_content != nullptr); - m_start = m_cursor = m_content; - m_limit = m_content + len; - } + /// a lexer from a buffer with given length + lexer(const lexer_char_t* buff, const size_t len) noexcept + : m_content(buff) + { + assert(m_content != nullptr); + m_start = m_cursor = m_content; + m_limit = m_content + len; + } - /// a lexer from an input stream - explicit lexer(std::istream& s) - : m_stream(&s), m_line_buffer() + /// a lexer from an input stream + explicit lexer(std::istream& s) + : m_stream(&s), m_line_buffer() + { + // immediately abort if stream is erroneous + if (s.fail()) { - // immediately abort if stream is erroneous - if (s.fail()) - { JSON_THROW(std::invalid_argument("stream error")); - } - - // fill buffer - fill_line_buffer(); - - // skip UTF-8 byte-order mark - if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF") - { - m_line_buffer[0] = ' '; - m_line_buffer[1] = ' '; - m_line_buffer[2] = ' '; - } } - // switch off unwanted functions (due to pointer members) - lexer() = delete; - lexer(const lexer&) = delete; - lexer operator=(const lexer&) = delete; + // fill buffer + fill_line_buffer(); - /*! - @brief create a string from one or two Unicode code points - - There are two cases: (1) @a codepoint1 is in the Basic Multilingual - Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) - @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to - represent a code point above U+FFFF. - - @param[in] codepoint1 the code point (can be high surrogate) - @param[in] codepoint2 the code point (can be low surrogate or 0) - - @return string representation of the code point; the length of the - result string is between 1 and 4 characters. - - @throw std::out_of_range if code point is > 0x10ffff; example: `"code - points above 0x10FFFF are invalid"` - @throw std::invalid_argument if the low surrogate is invalid; example: - `""missing or wrong low surrogate""` - - @complexity Constant. - - @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code> - */ - static string_t to_unicode(const std::size_t codepoint1, - const std::size_t codepoint2 = 0) + // skip UTF-8 byte-order mark + if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF") { - // calculate the code point from the given code points - std::size_t codepoint = codepoint1; + m_line_buffer[0] = ' '; + m_line_buffer[1] = ' '; + m_line_buffer[2] = ' '; + } + } - // check if codepoint1 is a high surrogate - if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF) + // switch off unwanted functions (due to pointer members) + lexer() = delete; + lexer(const lexer&) = delete; + lexer operator=(const lexer&) = delete; + + /*! + @brief create a string from one or two Unicode code points + + There are two cases: (1) @a codepoint1 is in the Basic Multilingual + Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) + @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to + represent a code point above U+FFFF. + + @param[in] codepoint1 the code point (can be high surrogate) + @param[in] codepoint2 the code point (can be low surrogate or 0) + + @return string representation of the code point; the length of the + result string is between 1 and 4 characters. + + @throw std::out_of_range if code point is > 0x10ffff; example: `"code + points above 0x10FFFF are invalid"` + @throw std::invalid_argument if the low surrogate is invalid; example: + `""missing or wrong low surrogate""` + + @complexity Constant. + + @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code> + */ + static string_t to_unicode(const std::size_t codepoint1, + const std::size_t codepoint2 = 0) + { + // calculate the code point from the given code points + std::size_t codepoint = codepoint1; + + // check if codepoint1 is a high surrogate + if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF) + { + // check if codepoint2 is a low surrogate + if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF) + { + codepoint = + // high surrogate occupies the most significant 22 bits + (codepoint1 << 10) + // low surrogate occupies the least significant 15 bits + + codepoint2 + // there is still the 0xD800, 0xDC00 and 0x10000 noise + // in the result so we have to subtract with: + // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 + - 0x35FDC00; + } + else { - // check if codepoint2 is a low surrogate - if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF) - { - codepoint = - // high surrogate occupies the most significant 22 bits - (codepoint1 << 10) - // low surrogate occupies the least significant 15 bits - + codepoint2 - // there is still the 0xD800, 0xDC00 and 0x10000 noise - // in the result so we have to subtract with: - // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 - - 0x35FDC00; - } - else - { JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); - } } + } - string_t result; + string_t result; - if (codepoint < 0x80) - { - // 1-byte characters: 0xxxxxxx (ASCII) - result.append(1, static_cast<typename string_t::value_type>(codepoint)); - } - else if (codepoint <= 0x7ff) - { - // 2-byte characters: 110xxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else if (codepoint <= 0xffff) - { - // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else if (codepoint <= 0x10ffff) - { - // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else - { + if (codepoint < 0x80) + { + // 1-byte characters: 0xxxxxxx (ASCII) + result.append(1, static_cast<typename string_t::value_type>(codepoint)); + } + else if (codepoint <= 0x7ff) + { + // 2-byte characters: 110xxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else if (codepoint <= 0xffff) + { + // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else if (codepoint <= 0x10ffff) + { + // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else + { JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid")); - } - - return result; } - /// return name of values of type token_type (only used for errors) - static std::string token_type_name(const token_type t) + return result; + } + + /// return name of values of type token_type (only used for errors) + static std::string token_type_name(const token_type t) + { + switch (t) { - switch (t) + case token_type::uninitialized: + return "<uninitialized>"; + case token_type::literal_true: + return "true literal"; + case token_type::literal_false: + return "false literal"; + case token_type::literal_null: + return "null literal"; + case token_type::value_string: + return "string literal"; + case token_type::value_number: + return "number literal"; + case token_type::begin_array: + return "'['"; + case token_type::begin_object: + return "'{'"; + case token_type::end_array: + return "']'"; + case token_type::end_object: + return "'}'"; + case token_type::name_separator: + return "':'"; + case token_type::value_separator: + return "','"; + case token_type::parse_error: + return "<parse error>"; + case token_type::end_of_input: + return "end of input"; + default: { - case token_type::uninitialized: - return "<uninitialized>"; - case token_type::literal_true: - return "true literal"; - case token_type::literal_false: - return "false literal"; - case token_type::literal_null: - return "null literal"; - case token_type::value_string: - return "string literal"; - case token_type::value_number: - return "number literal"; - case token_type::begin_array: - return "'['"; - case token_type::begin_object: - return "'{'"; - case token_type::end_array: - return "']'"; - case token_type::end_object: - return "'}'"; - case token_type::name_separator: - return "':'"; - case token_type::value_separator: - return "','"; - case token_type::parse_error: - return "<parse error>"; - case token_type::end_of_input: - return "end of input"; - default: - { - // catch non-enum values - return "unknown token"; // LCOV_EXCL_LINE - } + // catch non-enum values + return "unknown token"; // LCOV_EXCL_LINE } } + } - /*! - This function implements a scanner for JSON. It is specified using - regular expressions that try to follow RFC 7159 as close as possible. - These regular expressions are then translated into a minimized - deterministic finite automaton (DFA) by the tool - [re2c](http://re2c.org). As a result, the translated code for this - function consists of a large block of code with `goto` jumps. + /*! + This function implements a scanner for JSON. It is specified using + regular expressions that try to follow RFC 7159 as close as possible. + These regular expressions are then translated into a minimized + deterministic finite automaton (DFA) by the tool + [re2c](http://re2c.org). As a result, the translated code for this + function consists of a large block of code with `goto` jumps. - @return the class of the next token read from the buffer + @return the class of the next token read from the buffer - @complexity Linear in the length of the input.\n + @complexity Linear in the length of the input.\n - Proposition: The loop below will always terminate for finite input.\n + Proposition: The loop below will always terminate for finite input.\n - Proof (by contradiction): Assume a finite input. To loop forever, the - loop must never hit code with a `break` statement. The only code - snippets without a `break` statement are the continue statements for - whitespace and byte-order-marks. To loop forever, the input must be an - infinite sequence of whitespace or byte-order-marks. This contradicts - the assumption of finite input, q.e.d. - */ - token_type scan() + Proof (by contradiction): Assume a finite input. To loop forever, the + loop must never hit code with a `break` statement. The only code + snippets without a `break` statement are the continue statements for + whitespace and byte-order-marks. To loop forever, the input must be an + infinite sequence of whitespace or byte-order-marks. This contradicts + the assumption of finite input, q.e.d. + */ + token_type scan() + { + while (true) { - while (true) - { - // pointer for backtracking information - m_marker = nullptr; + // pointer for backtracking information + m_marker = nullptr; - // remember the begin of the token - m_start = m_cursor; - assert(m_start != nullptr); + // remember the begin of the token + m_start = m_cursor; + assert(m_start != nullptr); - /*!re2c - re2c:define:YYCTYPE = lexer_char_t; - re2c:define:YYCURSOR = m_cursor; - re2c:define:YYLIMIT = m_limit; - re2c:define:YYMARKER = m_marker; - re2c:define:YYFILL = "fill_line_buffer(@@); // LCOV_EXCL_LINE"; - re2c:define:YYFILL:naked = 1; - re2c:yyfill:enable = 1; - re2c:indent:string = " "; - re2c:indent:top = 1; - re2c:labelprefix = "basic_json_parser_"; + /*!re2c + re2c:define:YYCTYPE = lexer_char_t; + re2c:define:YYCURSOR = m_cursor; + re2c:define:YYLIMIT = m_limit; + re2c:define:YYMARKER = m_marker; + re2c:define:YYFILL = "fill_line_buffer(@@); // LCOV_EXCL_LINE"; + re2c:define:YYFILL:naked = 1; + re2c:yyfill:enable = 1; + re2c:indent:string = " "; + re2c:indent:top = 1; + re2c:labelprefix = "basic_json_parser_"; - // ignore whitespace - ws = [ \t\n\r]+; - ws { continue; } + // ignore whitespace + ws = [ \t\n\r]+; + ws { continue; } - // structural characters - "[" { last_token_type = token_type::begin_array; break; } - "]" { last_token_type = token_type::end_array; break; } - "{" { last_token_type = token_type::begin_object; break; } - "}" { last_token_type = token_type::end_object; break; } - "," { last_token_type = token_type::value_separator; break; } - ":" { last_token_type = token_type::name_separator; break; } + // structural characters + "[" { last_token_type = token_type::begin_array; break; } + "]" { last_token_type = token_type::end_array; break; } + "{" { last_token_type = token_type::begin_object; break; } + "}" { last_token_type = token_type::end_object; break; } + "," { last_token_type = token_type::value_separator; break; } + ":" { last_token_type = token_type::name_separator; break; } - // literal names - "null" { last_token_type = token_type::literal_null; break; } - "true" { last_token_type = token_type::literal_true; break; } - "false" { last_token_type = token_type::literal_false; break; } + // literal names + "null" { last_token_type = token_type::literal_null; break; } + "true" { last_token_type = token_type::literal_true; break; } + "false" { last_token_type = token_type::literal_false; break; } - // number - decimal_point = "."; - digit = [0-9]; - digit_1_9 = [1-9]; - e = "e" | "E"; - minus = "-"; - plus = "+"; - zero = "0"; - exp = e (minus | plus)? digit+; - frac = decimal_point digit+; - int = (zero | digit_1_9 digit*); - number = minus? int frac? exp?; - number { last_token_type = token_type::value_number; break; } + // number + decimal_point = "."; + digit = [0-9]; + digit_1_9 = [1-9]; + e = "e" | "E"; + minus = "-"; + plus = "+"; + zero = "0"; + exp = e (minus | plus)? digit+; + frac = decimal_point digit+; + int = (zero | digit_1_9 digit*); + number = minus? int frac? exp?; + number { last_token_type = token_type::value_number; break; } - // string - quotation_mark = "\""; - escape = "\\"; - unescaped = [^"\\\x00-\x1f]; - single_escaped = "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t"; - unicode_escaped = "u" [0-9a-fA-F]{4}; - escaped = escape (single_escaped | unicode_escaped); - char = unescaped | escaped; - string = quotation_mark char* quotation_mark; - string { last_token_type = token_type::value_string; break; } + // string + quotation_mark = "\""; + escape = "\\"; + unescaped = [^"\\\x00-\x1f]; + single_escaped = "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t"; + unicode_escaped = "u" [0-9a-fA-F]{4}; + escaped = escape (single_escaped | unicode_escaped); + char = unescaped | escaped; + string = quotation_mark char* quotation_mark; + string { last_token_type = token_type::value_string; break; } - // end of file - "\x00" { last_token_type = token_type::end_of_input; break; } + // end of file + "\x00" { last_token_type = token_type::end_of_input; break; } - // anything else is an error - * { last_token_type = token_type::parse_error; break; } - */ - } - - return last_token_type; + // anything else is an error + * { last_token_type = token_type::parse_error; break; } + */ } - /*! - @brief append data from the stream to the line buffer + return last_token_type; + } - This function is called by the scan() function when the end of the - buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be - incremented without leaving the limits of the line buffer. Note re2c - decides when to call this function. + /*! + @brief append data from the stream to the line buffer - If the lexer reads from contiguous storage, there is no trailing null - byte. Therefore, this function must make sure to add these padding - null bytes. + This function is called by the scan() function when the end of the + buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be + incremented without leaving the limits of the line buffer. Note re2c + decides when to call this function. - If the lexer reads from an input stream, this function reads the next - line of the input. + If the lexer reads from contiguous storage, there is no trailing null + byte. Therefore, this function must make sure to add these padding + null bytes. - @pre - p p p p p p u u u u u x . . . . . . - ^ ^ ^ ^ - m_content m_start | m_limit - m_cursor + If the lexer reads from an input stream, this function reads the next + line of the input. - @post - u u u u u x x x x x x x . . . . . . - ^ ^ ^ - | m_cursor m_limit - m_start - m_content - */ - void fill_line_buffer(size_t n = 0) - { - // if line buffer is used, m_content points to its data - assert(m_line_buffer.empty() - or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data())); + @pre + p p p p p p u u u u u x . . . . . . + ^ ^ ^ ^ + m_content m_start | m_limit + m_cursor - // if line buffer is used, m_limit is set past the end of its data - assert(m_line_buffer.empty() - or m_limit == m_content + m_line_buffer.size()); + @post + u u u u u x x x x x x x . . . . . . + ^ ^ ^ + | m_cursor m_limit + m_start + m_content + */ + void fill_line_buffer(size_t n = 0) + { + // if line buffer is used, m_content points to its data + assert(m_line_buffer.empty() + or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data())); - // pointer relationships - assert(m_content <= m_start); - assert(m_start <= m_cursor); - assert(m_cursor <= m_limit); - assert(m_marker == nullptr or m_marker <= m_limit); + // if line buffer is used, m_limit is set past the end of its data + assert(m_line_buffer.empty() + or m_limit == m_content + m_line_buffer.size()); - // number of processed characters (p) + // pointer relationships + assert(m_content <= m_start); + assert(m_start <= m_cursor); + assert(m_cursor <= m_limit); + assert(m_marker == nullptr or m_marker <= m_limit); + + // number of processed characters (p) const auto num_processed_chars = static_cast<size_t>(m_start - m_content); - // offset for m_marker wrt. to m_start - const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; - // number of unprocessed characters (u) - const auto offset_cursor = m_cursor - m_start; + // offset for m_marker wrt. to m_start + const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; + // number of unprocessed characters (u) + const auto offset_cursor = m_cursor - m_start; - // no stream is used or end of file is reached - if (m_stream == nullptr or m_stream->eof()) + // no stream is used or end of file is reached + if (m_stream == nullptr or m_stream->eof()) + { + // m_start may or may not be pointing into m_line_buffer at + // this point. We trust the standand library to do the right + // thing. See http://stackoverflow.com/q/28142011/266378 + m_line_buffer.assign(m_start, m_limit); + + // append n characters to make sure that there is sufficient + // space between m_cursor and m_limit + m_line_buffer.append(1, '\x00'); + if (n > 0) { - // m_start may or may not be pointing into m_line_buffer at - // this point. We trust the standand library to do the right - // thing. See http://stackoverflow.com/q/28142011/266378 - m_line_buffer.assign(m_start, m_limit); + m_line_buffer.append(n - 1, '\x01'); + } + } + else + { + // delete processed characters from line buffer + m_line_buffer.erase(0, num_processed_chars); + // read next line from input stream + m_line_buffer_tmp.clear(); + std::getline(*m_stream, m_line_buffer_tmp, '\n'); - // append n characters to make sure that there is sufficient - // space between m_cursor and m_limit - m_line_buffer.append(1, '\x00'); - if (n > 0) + // add line with newline symbol to the line buffer + m_line_buffer += m_line_buffer_tmp; + m_line_buffer.push_back('\n'); + } + + // set pointers + m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()); + assert(m_content != nullptr); + m_start = m_content; + m_marker = m_start + offset_marker; + m_cursor = m_start + offset_cursor; + m_limit = m_start + m_line_buffer.size(); + } + + /// return string representation of last read token + string_t get_token_string() const + { + assert(m_start != nullptr); + return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start), + static_cast<size_t>(m_cursor - m_start)); + } + + /*! + @brief return string value for string tokens + + The function iterates the characters between the opening and closing + quotes of the string value. The complete string is the range + [m_start,m_cursor). Consequently, we iterate from m_start+1 to + m_cursor-1. + + We differentiate two cases: + + 1. Escaped characters. In this case, a new character is constructed + according to the nature of the escape. Some escapes create new + characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied + as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape + `"\\uxxxx"` need special care. In this case, to_unicode takes care + of the construction of the values. + 2. Unescaped characters are copied as is. + + @pre `m_cursor - m_start >= 2`, meaning the length of the last token + is at least 2 bytes which is trivially true for any string (which + consists of at least two quotes). + + " c1 c2 c3 ... " + ^ ^ + m_start m_cursor + + @complexity Linear in the length of the string.\n + + Lemma: The loop body will always terminate.\n + + Proof (by contradiction): Assume the loop body does not terminate. As + the loop body does not contain another loop, one of the called + functions must never return. The called functions are `std::strtoul` + and to_unicode. Neither function can loop forever, so the loop body + will never loop forever which contradicts the assumption that the loop + body does not terminate, q.e.d.\n + + Lemma: The loop condition for the for loop is eventually false.\n + + Proof (by contradiction): Assume the loop does not terminate. Due to + the above lemma, this can only be due to a tautological loop + condition; that is, the loop condition i < m_cursor - 1 must always be + true. Let x be the change of i for any loop iteration. Then + m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This + can be rephrased to m_cursor - m_start - 2 > x. With the + precondition, we x <= 0, meaning that the loop condition holds + indefinitly if i is always decreased. However, observe that the value + of i is strictly increasing with each iteration, as it is incremented + by 1 in the iteration expression and never decremented inside the loop + body. Hence, the loop condition will eventually be false which + contradicts the assumption that the loop condition is a tautology, + q.e.d. + + @return string value of current token without opening and closing + quotes + @throw std::out_of_range if to_unicode fails + */ + string_t get_string() const + { + assert(m_cursor - m_start >= 2); + + string_t result; + result.reserve(static_cast<size_t>(m_cursor - m_start - 2)); + + // iterate the result between the quotes + for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i) + { + // find next escape character + auto e = std::find(i, m_cursor - 1, '\\'); + if (e != i) + { + // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705 + for (auto k = i; k < e; k++) { - m_line_buffer.append(n - 1, '\x01'); + result.push_back(static_cast<typename string_t::value_type>(*k)); } + i = e - 1; // -1 because of ++i } else { - // delete processed characters from line buffer - m_line_buffer.erase(0, num_processed_chars); - // read next line from input stream - m_line_buffer_tmp.clear(); - std::getline(*m_stream, m_line_buffer_tmp, '\n'); + // processing escaped character + // read next character + ++i; - // add line with newline symbol to the line buffer - m_line_buffer += m_line_buffer_tmp; - m_line_buffer.push_back('\n'); - } - - // set pointers - m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()); - assert(m_content != nullptr); - m_start = m_content; - m_marker = m_start + offset_marker; - m_cursor = m_start + offset_cursor; - m_limit = m_start + m_line_buffer.size(); - } - - /// return string representation of last read token - string_t get_token_string() const - { - assert(m_start != nullptr); - return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start), - static_cast<size_t>(m_cursor - m_start)); - } - - /*! - @brief return string value for string tokens - - The function iterates the characters between the opening and closing - quotes of the string value. The complete string is the range - [m_start,m_cursor). Consequently, we iterate from m_start+1 to - m_cursor-1. - - We differentiate two cases: - - 1. Escaped characters. In this case, a new character is constructed - according to the nature of the escape. Some escapes create new - characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied - as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape - `"\\uxxxx"` need special care. In this case, to_unicode takes care - of the construction of the values. - 2. Unescaped characters are copied as is. - - @pre `m_cursor - m_start >= 2`, meaning the length of the last token - is at least 2 bytes which is trivially true for any string (which - consists of at least two quotes). - - " c1 c2 c3 ... " - ^ ^ - m_start m_cursor - - @complexity Linear in the length of the string.\n - - Lemma: The loop body will always terminate.\n - - Proof (by contradiction): Assume the loop body does not terminate. As - the loop body does not contain another loop, one of the called - functions must never return. The called functions are `std::strtoul` - and to_unicode. Neither function can loop forever, so the loop body - will never loop forever which contradicts the assumption that the loop - body does not terminate, q.e.d.\n - - Lemma: The loop condition for the for loop is eventually false.\n - - Proof (by contradiction): Assume the loop does not terminate. Due to - the above lemma, this can only be due to a tautological loop - condition; that is, the loop condition i < m_cursor - 1 must always be - true. Let x be the change of i for any loop iteration. Then - m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This - can be rephrased to m_cursor - m_start - 2 > x. With the - precondition, we x <= 0, meaning that the loop condition holds - indefinitly if i is always decreased. However, observe that the value - of i is strictly increasing with each iteration, as it is incremented - by 1 in the iteration expression and never decremented inside the loop - body. Hence, the loop condition will eventually be false which - contradicts the assumption that the loop condition is a tautology, - q.e.d. - - @return string value of current token without opening and closing - quotes - @throw std::out_of_range if to_unicode fails - */ - string_t get_string() const - { - assert(m_cursor - m_start >= 2); - - string_t result; - result.reserve(static_cast<size_t>(m_cursor - m_start - 2)); - - // iterate the result between the quotes - for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i) - { - // find next escape character - auto e = std::find(i, m_cursor - 1, '\\'); - if (e != i) + switch (*i) { - // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705 - for (auto k = i; k < e; k++) + // the default escapes + case 't': { - result.push_back(static_cast<typename string_t::value_type>(*k)); + result += "\t"; + break; } - i = e - 1; // -1 because of ++i - } - else - { - // processing escaped character - // read next character - ++i; - - switch (*i) + case 'b': { - // the default escapes - case 't': - { - result += "\t"; - break; - } - case 'b': - { - result += "\b"; - break; - } - case 'f': - { - result += "\f"; - break; - } - case 'n': - { - result += "\n"; - break; - } - case 'r': - { - result += "\r"; - break; - } - case '\\': - { - result += "\\"; - break; - } - case '/': - { - result += "/"; - break; - } - case '"': - { - result += "\""; - break; - } + result += "\b"; + break; + } + case 'f': + { + result += "\f"; + break; + } + case 'n': + { + result += "\n"; + break; + } + case 'r': + { + result += "\r"; + break; + } + case '\\': + { + result += "\\"; + break; + } + case '/': + { + result += "/"; + break; + } + case '"': + { + result += "\""; + break; + } - // unicode - case 'u': - { - // get code xxxx from uxxxx - auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1), - 4).c_str(), nullptr, 16); + // unicode + case 'u': + { + // get code xxxx from uxxxx + auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1), + 4).c_str(), nullptr, 16); - // check if codepoint is a high surrogate - if (codepoint >= 0xD800 and codepoint <= 0xDBFF) + // check if codepoint is a high surrogate + if (codepoint >= 0xD800 and codepoint <= 0xDBFF) + { + // make sure there is a subsequent unicode + if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') { - // make sure there is a subsequent unicode - if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') - { JSON_THROW(std::invalid_argument("missing low surrogate")); - } + } - // get code yyyy from uxxxx\uyyyy - auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer> - (i + 7), 4).c_str(), nullptr, 16); - result += to_unicode(codepoint, codepoint2); - // skip the next 10 characters (xxxx\uyyyy) - i += 10; - } - else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) - { - // we found a lone low surrogate - JSON_THROW(std::invalid_argument("missing high surrogate")); - } - else - { - // add unicode character(s) - result += to_unicode(codepoint); - // skip the next four characters (xxxx) - i += 4; - } - break; + // get code yyyy from uxxxx\uyyyy + auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer> + (i + 7), 4).c_str(), nullptr, 16); + result += to_unicode(codepoint, codepoint2); + // skip the next 10 characters (xxxx\uyyyy) + i += 10; } + else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) + { + // we found a lone low surrogate + JSON_THROW(std::invalid_argument("missing high surrogate")); + } + else + { + // add unicode character(s) + result += to_unicode(codepoint); + // skip the next four characters (xxxx) + i += 4; + } + break; } } } - - return result; } - /*! - @brief parse floating point number + return result; + } - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). + /*! + @brief parse floating point number - @param[in,out] endptr recieves a pointer to the first character after - the number + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). - @return the floating point number - */ - long double str_to_float_t(long double* /* type */, char** endptr) const + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + long double str_to_float_t(long double* /* type */, char** endptr) const + { + return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + double str_to_float_t(double* /* type */, char** endptr) const + { + return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + float str_to_float_t(float* /* type */, char** endptr) const + { + return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief return number value for number tokens + + This function translates the last token into the most appropriate + number type (either integer, unsigned integer or floating point), + which is passed back to the caller via the result parameter. + + This function parses the integer component up to the radix point or + exponent while collecting information about the 'floating point + representation', which it stores in the result parameter. If there is + no radix point or exponent, and the number can fit into a @ref + number_integer_t or @ref number_unsigned_t then it sets the result + parameter accordingly. + + If the number is a floating point number the number is then parsed + using @a std:strtod (or @a std:strtof or @a std::strtold). + + @param[out] result @ref basic_json object to receive the number, or + NAN if the conversion read past the current token. The latter case + needs to be treated by the caller function. + */ + void get_number(basic_json& result) const + { + assert(m_start != nullptr); + + const lexer::lexer_char_t* curptr = m_start; + + // accumulate the integer conversion result (unsigned for now) + number_unsigned_t value = 0; + + // maximum absolute value of the relevant integer type + number_unsigned_t max; + + // temporarily store the type to avoid unecessary bitfield access + value_t type; + + // look for sign + if (*curptr == '-') { - return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + type = value_t::number_integer; + max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1; + curptr++; + } + else + { + type = value_t::number_unsigned; + max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)()); } - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - double str_to_float_t(double* /* type */, char** endptr) const + // count the significant figures + for (; curptr < m_cursor; curptr++) { - return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - float str_to_float_t(float* /* type */, char** endptr) const - { - return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief return number value for number tokens - - This function translates the last token into the most appropriate - number type (either integer, unsigned integer or floating point), - which is passed back to the caller via the result parameter. - - This function parses the integer component up to the radix point or - exponent while collecting information about the 'floating point - representation', which it stores in the result parameter. If there is - no radix point or exponent, and the number can fit into a @ref - number_integer_t or @ref number_unsigned_t then it sets the result - parameter accordingly. - - If the number is a floating point number the number is then parsed - using @a std:strtod (or @a std:strtof or @a std::strtold). - - @param[out] result @ref basic_json object to receive the number, or - NAN if the conversion read past the current token. The latter case - needs to be treated by the caller function. - */ - void get_number(basic_json& result) const - { - assert(m_start != nullptr); - - const lexer::lexer_char_t* curptr = m_start; - - // accumulate the integer conversion result (unsigned for now) - number_unsigned_t value = 0; - - // maximum absolute value of the relevant integer type - number_unsigned_t max; - - // temporarily store the type to avoid unecessary bitfield access - value_t type; - - // look for sign - if (*curptr == '-') + // quickly skip tests if a digit + if (*curptr < '0' || *curptr > '9') { - type = value_t::number_integer; - max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1; - curptr++; - } - else - { - type = value_t::number_unsigned; - max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)()); - } - - // count the significant figures - for (; curptr < m_cursor; curptr++) - { - // quickly skip tests if a digit - if (*curptr < '0' || *curptr > '9') + if (*curptr == '.') { - if (*curptr == '.') - { - // don't count '.' but change to float - type = value_t::number_float; - continue; - } - // assume exponent (if not then will fail parse): change to - // float, stop counting and record exponent details + // don't count '.' but change to float type = value_t::number_float; - break; - } - - // skip if definitely not an integer - if (type != value_t::number_float) - { - auto digit = static_cast<number_unsigned_t>(*curptr - '0'); - - // overflow if value * 10 + digit > max, move terms around - // to avoid overflow in intermediate values - if (value > (max - digit) / 10) - { - // overflow - type = value_t::number_float; - } - else - { - // no overflow - value = value * 10 + digit; - } + continue; } + // assume exponent (if not then will fail parse): change to + // float, stop counting and record exponent details + type = value_t::number_float; + break; } - // save the value (if not a float) - if (type == value_t::number_unsigned) + // skip if definitely not an integer + if (type != value_t::number_float) { - result.m_value.number_unsigned = value; - } - else if (type == value_t::number_integer) - { - // invariant: if we parsed a '-', the absolute value is between - // 0 (we allow -0) and max == -INT64_MIN - assert(value >= 0); - assert(value <= max); + auto digit = static_cast<number_unsigned_t>(*curptr - '0'); - if (value == max) + // overflow if value * 10 + digit > max, move terms around + // to avoid overflow in intermediate values + if (value > (max - digit) / 10) { - // we cannot simply negate value (== max == -INT64_MIN), - // see https://github.com/nlohmann/json/issues/389 - result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN); + // overflow + type = value_t::number_float; } else { - // all other values can be negated safely - result.m_value.number_integer = -static_cast<number_integer_t>(value); + // no overflow + value = value * 10 + digit; } } + } + + // save the value (if not a float) + if (type == value_t::number_unsigned) + { + result.m_value.number_unsigned = value; + } + else if (type == value_t::number_integer) + { + // invariant: if we parsed a '-', the absolute value is between + // 0 (we allow -0) and max == -INT64_MIN + assert(value >= 0); + assert(value <= max); + + if (value == max) + { + // we cannot simply negate value (== max == -INT64_MIN), + // see https://github.com/nlohmann/json/issues/389 + result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN); + } else { - // parse with strtod + // all other values can be negated safely + result.m_value.number_integer = -static_cast<number_integer_t>(value); + } + } + else + { + // parse with strtod result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr); - // replace infinity and NAN by null - if (not std::isfinite(result.m_value.number_float)) - { - type = value_t::null; - result.m_value = basic_json::json_value(); - } + // replace infinity and NAN by null + if (not std::isfinite(result.m_value.number_float)) + { + type = value_t::null; + result.m_value = basic_json::json_value(); } - - // save the type - result.m_type = type; } - private: - /// optional input stream - std::istream* m_stream = nullptr; - /// line buffer buffer for m_stream - string_t m_line_buffer {}; - /// used for filling m_line_buffer - string_t m_line_buffer_tmp {}; - /// the buffer pointer - const lexer_char_t* m_content = nullptr; - /// pointer to the beginning of the current symbol - const lexer_char_t* m_start = nullptr; - /// pointer for backtracking information - const lexer_char_t* m_marker = nullptr; - /// pointer to the current symbol - const lexer_char_t* m_cursor = nullptr; - /// pointer to the end of the buffer - const lexer_char_t* m_limit = nullptr; - /// the last token type - token_type last_token_type = token_type::end_of_input; - }; + // save the type + result.m_type = type; + } + + private: + /// optional input stream + std::istream* m_stream = nullptr; + /// line buffer buffer for m_stream + string_t m_line_buffer {}; + /// used for filling m_line_buffer + string_t m_line_buffer_tmp {}; + /// the buffer pointer + const lexer_char_t* m_content = nullptr; + /// pointer to the beginning of the current symbol + const lexer_char_t* m_start = nullptr; + /// pointer for backtracking information + const lexer_char_t* m_marker = nullptr; + /// pointer to the current symbol + const lexer_char_t* m_cursor = nullptr; + /// pointer to the end of the buffer + const lexer_char_t* m_limit = nullptr; + /// the last token type + token_type last_token_type = token_type::end_of_input; + }; /*! @brief syntax analysis @@ -9825,282 +10289,282 @@ class basic_json */ class parser { - public: + public: /// a parser reading from a string literal parser(const char* buff, const parser_callback_t cb = nullptr) - : callback(cb), - m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff)) - {} + : callback(cb), + m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff)) + {} - /// a parser reading from an input stream - parser(std::istream& is, const parser_callback_t cb = nullptr) - : callback(cb), m_lexer(is) - {} + /// a parser reading from an input stream + parser(std::istream& is, const parser_callback_t cb = nullptr) + : callback(cb), m_lexer(is) + {} - /// a parser reading from an iterator range with contiguous storage - template<class IteratorType, typename std::enable_if< - std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value - , int>::type - = 0> - parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) - : callback(cb), - m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)), - static_cast<size_t>(std::distance(first, last))) - {} + /// a parser reading from an iterator range with contiguous storage + template<class IteratorType, typename std::enable_if< + std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value + , int>::type + = 0> + parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) + : callback(cb), + m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)), + static_cast<size_t>(std::distance(first, last))) + {} - /// public parser interface - basic_json parse() + /// public parser interface + basic_json parse() + { + // read first token + get_token(); + + basic_json result = parse_internal(true); + result.assert_invariant(); + + expect(lexer::token_type::end_of_input); + + // return parser result and replace it with null in case the + // top-level value was discarded by the callback function + return result.is_discarded() ? basic_json() : std::move(result); + } + + private: + /// the actual parser + basic_json parse_internal(bool keep) + { + auto result = basic_json(value_t::discarded); + + switch (last_token) { - // read first token - get_token(); - - basic_json result = parse_internal(true); - result.assert_invariant(); - - expect(lexer::token_type::end_of_input); - - // return parser result and replace it with null in case the - // top-level value was discarded by the callback function - return result.is_discarded() ? basic_json() : std::move(result); - } - - private: - /// the actual parser - basic_json parse_internal(bool keep) - { - auto result = basic_json(value_t::discarded); - - switch (last_token) + case lexer::token_type::begin_object: { - case lexer::token_type::begin_object: + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) { - if (keep and (not callback - or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) - { - // explicitly set result to object to cope with {} - result.m_type = value_t::object; - result.m_value = value_t::object; - } + // explicitly set result to object to cope with {} + result.m_type = value_t::object; + result.m_value = value_t::object; + } - // read next token - get_token(); + // read next token + get_token(); - // closing } -> we are done - if (last_token == lexer::token_type::end_object) - { - get_token(); - if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) - { - result = basic_json(value_t::discarded); - } - return result; - } - - // no comma is expected here - unexpect(lexer::token_type::value_separator); - - // otherwise: parse key-value pairs - do - { - // ugly, but could be fixed with loop reorganization - if (last_token == lexer::token_type::value_separator) - { - get_token(); - } - - // store key - expect(lexer::token_type::value_string); - const auto key = m_lexer.get_string(); - - bool keep_tag = false; - if (keep) - { - if (callback) - { - basic_json k(key); - keep_tag = callback(depth, parse_event_t::key, k); - } - else - { - keep_tag = true; - } - } - - // parse separator (:) - get_token(); - expect(lexer::token_type::name_separator); - - // parse and add value - get_token(); - auto value = parse_internal(keep); - if (keep and keep_tag and not value.is_discarded()) - { - result[key] = std::move(value); - } - } - while (last_token == lexer::token_type::value_separator); - - // closing } - expect(lexer::token_type::end_object); + // closing } -> we are done + if (last_token == lexer::token_type::end_object) + { get_token(); if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) { result = basic_json(value_t::discarded); } - return result; } - case lexer::token_type::begin_array: + // no comma is expected here + unexpect(lexer::token_type::value_separator); + + // otherwise: parse key-value pairs + do { - if (keep and (not callback - or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) - { - // explicitly set result to object to cope with [] - result.m_type = value_t::array; - result.m_value = value_t::array; - } - - // read next token - get_token(); - - // closing ] -> we are done - if (last_token == lexer::token_type::end_array) + // ugly, but could be fixed with loop reorganization + if (last_token == lexer::token_type::value_separator) { get_token(); - if (callback and not callback(--depth, parse_event_t::array_end, result)) - { - result = basic_json(value_t::discarded); - } - return result; } - // no comma is expected here - unexpect(lexer::token_type::value_separator); + // store key + expect(lexer::token_type::value_string); + const auto key = m_lexer.get_string(); - // otherwise: parse values - do + bool keep_tag = false; + if (keep) { - // ugly, but could be fixed with loop reorganization - if (last_token == lexer::token_type::value_separator) + if (callback) { - get_token(); + basic_json k(key); + keep_tag = callback(depth, parse_event_t::key, k); } - - // parse value - auto value = parse_internal(keep); - if (keep and not value.is_discarded()) + else { - result.push_back(std::move(value)); + keep_tag = true; } } - while (last_token == lexer::token_type::value_separator); - // closing ] - expect(lexer::token_type::end_array); + // parse separator (:) get_token(); - if (keep and callback and not callback(--depth, parse_event_t::array_end, result)) + expect(lexer::token_type::name_separator); + + // parse and add value + get_token(); + auto value = parse_internal(keep); + if (keep and keep_tag and not value.is_discarded()) + { + result[key] = std::move(value); + } + } + while (last_token == lexer::token_type::value_separator); + + // closing } + expect(lexer::token_type::end_object); + get_token(); + if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) + { + result = basic_json(value_t::discarded); + } + + return result; + } + + case lexer::token_type::begin_array: + { + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) + { + // explicitly set result to object to cope with [] + result.m_type = value_t::array; + result.m_value = value_t::array; + } + + // read next token + get_token(); + + // closing ] -> we are done + if (last_token == lexer::token_type::end_array) + { + get_token(); + if (callback and not callback(--depth, parse_event_t::array_end, result)) { result = basic_json(value_t::discarded); } - return result; } - case lexer::token_type::literal_null: + // no comma is expected here + unexpect(lexer::token_type::value_separator); + + // otherwise: parse values + do { - get_token(); - result.m_type = value_t::null; - break; + // ugly, but could be fixed with loop reorganization + if (last_token == lexer::token_type::value_separator) + { + get_token(); + } + + // parse value + auto value = parse_internal(keep); + if (keep and not value.is_discarded()) + { + result.push_back(std::move(value)); + } + } + while (last_token == lexer::token_type::value_separator); + + // closing ] + expect(lexer::token_type::end_array); + get_token(); + if (keep and callback and not callback(--depth, parse_event_t::array_end, result)) + { + result = basic_json(value_t::discarded); } - case lexer::token_type::value_string: - { - const auto s = m_lexer.get_string(); - get_token(); - result = basic_json(s); - break; - } - - case lexer::token_type::literal_true: - { - get_token(); - result.m_type = value_t::boolean; - result.m_value = true; - break; - } - - case lexer::token_type::literal_false: - { - get_token(); - result.m_type = value_t::boolean; - result.m_value = false; - break; - } - - case lexer::token_type::value_number: - { - m_lexer.get_number(result); - get_token(); - break; - } - - default: - { - // the last token was unexpected - unexpect(last_token); - } + return result; } - if (keep and callback and not callback(depth, parse_event_t::value, result)) + case lexer::token_type::literal_null: { - result = basic_json(value_t::discarded); + get_token(); + result.m_type = value_t::null; + break; } - return result; - } - /// get next token from lexer - typename lexer::token_type get_token() - { - last_token = m_lexer.scan(); - return last_token; - } - - void expect(typename lexer::token_type t) const - { - if (t != last_token) + case lexer::token_type::value_string: { - std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + - "'") : - lexer::token_type_name(last_token)); - error_msg += "; expected " + lexer::token_type_name(t); + const auto s = m_lexer.get_string(); + get_token(); + result = basic_json(s); + break; + } + + case lexer::token_type::literal_true: + { + get_token(); + result.m_type = value_t::boolean; + result.m_value = true; + break; + } + + case lexer::token_type::literal_false: + { + get_token(); + result.m_type = value_t::boolean; + result.m_value = false; + break; + } + + case lexer::token_type::value_number: + { + m_lexer.get_number(result); + get_token(); + break; + } + + default: + { + // the last token was unexpected + unexpect(last_token); + } + } + + if (keep and callback and not callback(depth, parse_event_t::value, result)) + { + result = basic_json(value_t::discarded); + } + return result; + } + + /// get next token from lexer + typename lexer::token_type get_token() + { + last_token = m_lexer.scan(); + return last_token; + } + + void expect(typename lexer::token_type t) const + { + if (t != last_token) + { + std::string error_msg = "parse error - unexpected "; + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : + lexer::token_type_name(last_token)); + error_msg += "; expected " + lexer::token_type_name(t); JSON_THROW(std::invalid_argument(error_msg)); - } } + } - void unexpect(typename lexer::token_type t) const + void unexpect(typename lexer::token_type t) const + { + if (t == last_token) { - if (t == last_token) - { - std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + - "'") : - lexer::token_type_name(last_token)); + std::string error_msg = "parse error - unexpected "; + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : + lexer::token_type_name(last_token)); JSON_THROW(std::invalid_argument(error_msg)); - } } + } - private: - /// current level of recursion - int depth = 0; - /// callback function - const parser_callback_t callback = nullptr; - /// the type of the last read token - typename lexer::token_type last_token = lexer::token_type::uninitialized; - /// the lexer - lexer m_lexer; - }; + private: + /// current level of recursion + int depth = 0; + /// callback function + const parser_callback_t callback = nullptr; + /// the type of the last read token + typename lexer::token_type last_token = lexer::token_type::uninitialized; + /// the lexer + lexer m_lexer; + }; public: /*! @@ -10119,7 +10583,7 @@ class basic_json /// allow basic_json to access private members friend class basic_json; - public: + public: /*! @brief create JSON pointer @@ -10143,562 +10607,562 @@ class basic_json @since version 2.0.0 */ explicit json_pointer(const std::string& s = "") - : reference_tokens(split(s)) - {} + : reference_tokens(split(s)) + {} - /*! - @brief return a string representation of the JSON pointer + /*! + @brief return a string representation of the JSON pointer - @invariant For each JSON pointer `ptr`, it holds: - @code {.cpp} - ptr == json_pointer(ptr.to_string()); - @endcode + @invariant For each JSON pointer `ptr`, it holds: + @code {.cpp} + ptr == json_pointer(ptr.to_string()); + @endcode - @return a string representation of the JSON pointer + @return a string representation of the JSON pointer - @liveexample{The example shows the result of `to_string`., - json_pointer__to_string} + @liveexample{The example shows the result of `to_string`., + json_pointer__to_string} - @since version 2.0.0 - */ - std::string to_string() const noexcept + @since version 2.0.0 + */ + std::string to_string() const noexcept + { + return std::accumulate(reference_tokens.begin(), + reference_tokens.end(), std::string{}, + [](const std::string & a, const std::string & b) { - return std::accumulate(reference_tokens.begin(), - reference_tokens.end(), std::string{}, - [](const std::string & a, const std::string & b) - { - return a + "/" + escape(b); - }); - } + return a + "/" + escape(b); + }); + } - /// @copydoc to_string() - operator std::string() const - { - return to_string(); - } + /// @copydoc to_string() + operator std::string() const + { + return to_string(); + } - private: - /// remove and return last reference pointer - std::string pop_back() + private: + /// remove and return last reference pointer + std::string pop_back() + { + if (is_root()) { - if (is_root()) - { JSON_THROW(std::domain_error("JSON pointer has no parent")); - } - - auto last = reference_tokens.back(); - reference_tokens.pop_back(); - return last; } - /// return whether pointer points to the root document - bool is_root() const - { - return reference_tokens.empty(); - } + auto last = reference_tokens.back(); + reference_tokens.pop_back(); + return last; + } - json_pointer top() const + /// return whether pointer points to the root document + bool is_root() const + { + return reference_tokens.empty(); + } + + json_pointer top() const + { + if (is_root()) { - if (is_root()) - { JSON_THROW(std::domain_error("JSON pointer has no parent")); - } - - json_pointer result = *this; - result.reference_tokens = {reference_tokens[0]}; - return result; } - /*! - @brief create and return a reference to the pointed to value + json_pointer result = *this; + result.reference_tokens = {reference_tokens[0]}; + return result; + } - @complexity Linear in the number of reference tokens. - */ - reference get_and_create(reference j) const + /*! + @brief create and return a reference to the pointed to value + + @complexity Linear in the number of reference tokens. + */ + reference get_and_create(reference j) const + { + pointer result = &j; + + // in case no reference tokens exist, return a reference to the + // JSON value j which will be overwritten by a primitive value + for (const auto& reference_token : reference_tokens) { - pointer result = &j; - - // in case no reference tokens exist, return a reference to the - // JSON value j which will be overwritten by a primitive value - for (const auto& reference_token : reference_tokens) + switch (result->m_type) { - switch (result->m_type) + case value_t::null: { - case value_t::null: + if (reference_token == "0") { - if (reference_token == "0") - { - // start a new array if reference token is 0 - result = &result->operator[](0); - } - else - { - // start a new object otherwise - result = &result->operator[](reference_token); - } - break; + // start a new array if reference token is 0 + result = &result->operator[](0); } - - case value_t::object: + else { - // create an entry in the object + // start a new object otherwise result = &result->operator[](reference_token); - break; - } - - case value_t::array: - { - // create an entry in the array - result = &result->operator[](static_cast<size_type>(std::stoi(reference_token))); - break; - } - - /* - The following code is only reached if there exists a - reference token _and_ the current value is primitive. In - this case, we have an error situation, because primitive - values may only occur as single value; that is, with an - empty list of reference tokens. - */ - default: - { - JSON_THROW(std::domain_error("invalid value to unflatten")); - } - } - } - - return *result; - } - - /*! - @brief return a reference to the pointed to value - - @note This version does not throw if a value is not present, but tries - to create nested values instead. For instance, calling this function - with pointer `"/this/that"` on a null value is equivalent to calling - `operator[]("this").operator[]("that")` on that value, effectively - changing the null value to an object. - - @param[in] ptr a JSON value - - @return reference to the JSON value pointed to by the JSON pointer - - @complexity Linear in the length of the JSON pointer. - - @throw std::out_of_range if the JSON pointer can not be resolved - @throw std::domain_error if an array index begins with '0' - @throw std::invalid_argument if an array index was not a number - */ - reference get_unchecked(pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - // convert null values to arrays or objects before continuing - if (ptr->m_type == value_t::null) - { - // check if reference token is a number - const bool nums = std::all_of(reference_token.begin(), - reference_token.end(), - [](const char x) - { - return std::isdigit(x); - }); - - // change value to array for numbers or "-" or to object - // otherwise - if (nums or reference_token == "-") - { - *ptr = value_t::array; - } - else - { - *ptr = value_t::object; - } - } - - switch (ptr->m_type) - { - case value_t::object: - { - // use unchecked object access - ptr = &ptr->operator[](reference_token); - break; - } - - case value_t::array: - { - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - if (reference_token == "-") - { - // explicityly treat "-" as index beyond the end - ptr = &ptr->operator[](ptr->m_value.array->size()); - } - else - { - // convert array index to number; unchecked access - ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); - } - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - reference get_checked(pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // note: at performs range check - ptr = &ptr->at(reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" always fails the range check - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // note: at performs range check - ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - /*! - @brief return a const reference to the pointed to value - - @param[in] ptr a JSON value - - @return const reference to the JSON value pointed to by the JSON - pointer - */ - const_reference get_unchecked(const_pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // use unchecked object access - ptr = &ptr->operator[](reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" cannot be used for const access - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // use unchecked array access - ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - const_reference get_checked(const_pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // note: at performs range check - ptr = &ptr->at(reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" always fails the range check - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // note: at performs range check - ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - /// split the string input to reference tokens - static std::vector<std::string> split(const std::string& reference_string) - { - std::vector<std::string> result; - - // special case: empty reference string -> no reference tokens - if (reference_string.empty()) - { - return result; - } - - // check if nonempty reference string begins with slash - if (reference_string[0] != '/') - { - JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'")); - } - - // extract the reference tokens: - // - slash: position of the last read slash (or end of string) - // - start: position after the previous slash - for ( - // search for the first slash after the first character - size_t slash = reference_string.find_first_of('/', 1), - // set the beginning of the first reference token - start = 1; - // we can stop if start == string::npos+1 = 0 - start != 0; - // set the beginning of the next reference token - // (will eventually be 0 if slash == std::string::npos) - start = slash + 1, - // find next slash - slash = reference_string.find_first_of('/', start)) - { - // use the text between the beginning of the reference token - // (start) and the last slash (slash). - auto reference_token = reference_string.substr(start, slash - start); - - // check reference tokens are properly escaped - for (size_t pos = reference_token.find_first_of('~'); - pos != std::string::npos; - pos = reference_token.find_first_of('~', pos + 1)) - { - assert(reference_token[pos] == '~'); - - // ~ must be followed by 0 or 1 - if (pos == reference_token.size() - 1 or - (reference_token[pos + 1] != '0' and - reference_token[pos + 1] != '1')) - { - JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'")); - } - } - - // finally, store the reference token - unescape(reference_token); - result.push_back(reference_token); - } - - return result; - } - - private: - /*! - @brief replace all occurrences of a substring by another string - - @param[in,out] s the string to manipulate; changed so that all - occurrences of @a f are replaced with @a t - @param[in] f the substring to replace with @a t - @param[in] t the string to replace @a f - - @pre The search string @a f must not be empty. - - @since version 2.0.0 - */ - static void replace_substring(std::string& s, - const std::string& f, - const std::string& t) - { - assert(not f.empty()); - - for ( - size_t pos = s.find(f); // find first occurrence of f - pos != std::string::npos; // make sure f was found - s.replace(pos, f.size(), t), // replace with t - pos = s.find(f, pos + t.size()) // find next occurrence of f - ); - } - - /// escape tilde and slash - static std::string escape(std::string s) - { - // escape "~"" to "~0" and "/" to "~1" - replace_substring(s, "~", "~0"); - replace_substring(s, "/", "~1"); - return s; - } - - /// unescape tilde and slash - static void unescape(std::string& s) - { - // first transform any occurrence of the sequence '~1' to '/' - replace_substring(s, "~1", "/"); - // then transform any occurrence of the sequence '~0' to '~' - replace_substring(s, "~0", "~"); - } - - /*! - @param[in] reference_string the reference string to the current value - @param[in] value the value to consider - @param[in,out] result the result object to insert values to - - @note Empty objects or arrays are flattened to `null`. - */ - static void flatten(const std::string& reference_string, - const basic_json& value, - basic_json& result) - { - switch (value.m_type) - { - case value_t::array: - { - if (value.m_value.array->empty()) - { - // flatten empty array as null - result[reference_string] = nullptr; - } - else - { - // iterate array and use index as reference string - for (size_t i = 0; i < value.m_value.array->size(); ++i) - { - flatten(reference_string + "/" + std::to_string(i), - value.m_value.array->operator[](i), result); - } } break; } case value_t::object: { - if (value.m_value.object->empty()) + // create an entry in the object + result = &result->operator[](reference_token); + break; + } + + case value_t::array: + { + // create an entry in the array + result = &result->operator[](static_cast<size_type>(std::stoi(reference_token))); + break; + } + + /* + The following code is only reached if there exists a + reference token _and_ the current value is primitive. In + this case, we have an error situation, because primitive + values may only occur as single value; that is, with an + empty list of reference tokens. + */ + default: + { + JSON_THROW(std::domain_error("invalid value to unflatten")); + } + } + } + + return *result; + } + + /*! + @brief return a reference to the pointed to value + + @note This version does not throw if a value is not present, but tries + to create nested values instead. For instance, calling this function + with pointer `"/this/that"` on a null value is equivalent to calling + `operator[]("this").operator[]("that")` on that value, effectively + changing the null value to an object. + + @param[in] ptr a JSON value + + @return reference to the JSON value pointed to by the JSON pointer + + @complexity Linear in the length of the JSON pointer. + + @throw std::out_of_range if the JSON pointer can not be resolved + @throw std::domain_error if an array index begins with '0' + @throw std::invalid_argument if an array index was not a number + */ + reference get_unchecked(pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + // convert null values to arrays or objects before continuing + if (ptr->m_type == value_t::null) + { + // check if reference token is a number + const bool nums = std::all_of(reference_token.begin(), + reference_token.end(), + [](const char x) + { + return std::isdigit(x); + }); + + // change value to array for numbers or "-" or to object + // otherwise + if (nums or reference_token == "-") + { + *ptr = value_t::array; + } + else + { + *ptr = value_t::object; + } + } + + switch (ptr->m_type) + { + case value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case value_t::array: + { + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') { - // flatten empty object as null - result[reference_string] = nullptr; + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + if (reference_token == "-") + { + // explicityly treat "-" as index beyond the end + ptr = &ptr->operator[](ptr->m_value.array->size()); } else { - // iterate object and use keys as reference string - for (const auto& element : *value.m_value.object) - { - flatten(reference_string + "/" + escape(element.first), - element.second, result); - } + // convert array index to number; unchecked access + ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); } break; } default: { - // add primitive value with its reference string - result[reference_string] = value; - break; + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } - /*! - @param[in] value flattened JSON + return *ptr; + } - @return unflattened JSON - */ - static basic_json unflatten(const basic_json& value) + reference get_checked(pointer ptr) const + { + for (const auto& reference_token : reference_tokens) { - if (not value.is_object()) + switch (ptr->m_type) { - JSON_THROW(std::domain_error("only objects can be unflattened")); - } - - basic_json result; - - // iterate the JSON object values - for (const auto& element : *value.m_value.object) - { - if (not element.second.is_primitive()) + case value_t::object: { - JSON_THROW(std::domain_error("values in object must be primitive")); + // note: at performs range check + ptr = &ptr->at(reference_token); + break; } - // assign value to reference pointed to by JSON pointer; Note - // that if the JSON pointer is "" (i.e., points to the whole - // value), function get_and_create returns a reference to - // result itself. An assignment will then create a primitive - // value. - json_pointer(element.first).get_and_create(result) = element.second; - } + case value_t::array: + { + if (reference_token == "-") + { + // "-" always fails the range check + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // note: at performs range check + ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + /*! + @brief return a const reference to the pointed to value + + @param[in] ptr a JSON value + + @return const reference to the JSON value pointed to by the JSON + pointer + */ + const_reference get_unchecked(const_pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" cannot be used for const access + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // use unchecked array access + ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + const_reference get_checked(const_pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" always fails the range check + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // note: at performs range check + ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + /// split the string input to reference tokens + static std::vector<std::string> split(const std::string& reference_string) + { + std::vector<std::string> result; + + // special case: empty reference string -> no reference tokens + if (reference_string.empty()) + { return result; } - private: - /// the reference tokens - std::vector<std::string> reference_tokens {}; - }; + // check if nonempty reference string begins with slash + if (reference_string[0] != '/') + { + JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'")); + } + + // extract the reference tokens: + // - slash: position of the last read slash (or end of string) + // - start: position after the previous slash + for ( + // search for the first slash after the first character + size_t slash = reference_string.find_first_of('/', 1), + // set the beginning of the first reference token + start = 1; + // we can stop if start == string::npos+1 = 0 + start != 0; + // set the beginning of the next reference token + // (will eventually be 0 if slash == std::string::npos) + start = slash + 1, + // find next slash + slash = reference_string.find_first_of('/', start)) + { + // use the text between the beginning of the reference token + // (start) and the last slash (slash). + auto reference_token = reference_string.substr(start, slash - start); + + // check reference tokens are properly escaped + for (size_t pos = reference_token.find_first_of('~'); + pos != std::string::npos; + pos = reference_token.find_first_of('~', pos + 1)) + { + assert(reference_token[pos] == '~'); + + // ~ must be followed by 0 or 1 + if (pos == reference_token.size() - 1 or + (reference_token[pos + 1] != '0' and + reference_token[pos + 1] != '1')) + { + JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'")); + } + } + + // finally, store the reference token + unescape(reference_token); + result.push_back(reference_token); + } + + return result; + } + + private: + /*! + @brief replace all occurrences of a substring by another string + + @param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t + @param[in] f the substring to replace with @a t + @param[in] t the string to replace @a f + + @pre The search string @a f must not be empty. + + @since version 2.0.0 + */ + static void replace_substring(std::string& s, + const std::string& f, + const std::string& t) + { + assert(not f.empty()); + + for ( + size_t pos = s.find(f); // find first occurrence of f + pos != std::string::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t + pos = s.find(f, pos + t.size()) // find next occurrence of f + ); + } + + /// escape tilde and slash + static std::string escape(std::string s) + { + // escape "~"" to "~0" and "/" to "~1" + replace_substring(s, "~", "~0"); + replace_substring(s, "/", "~1"); + return s; + } + + /// unescape tilde and slash + static void unescape(std::string& s) + { + // first transform any occurrence of the sequence '~1' to '/' + replace_substring(s, "~1", "/"); + // then transform any occurrence of the sequence '~0' to '~' + replace_substring(s, "~0", "~"); + } + + /*! + @param[in] reference_string the reference string to the current value + @param[in] value the value to consider + @param[in,out] result the result object to insert values to + + @note Empty objects or arrays are flattened to `null`. + */ + static void flatten(const std::string& reference_string, + const basic_json& value, + basic_json& result) + { + switch (value.m_type) + { + case value_t::array: + { + if (value.m_value.array->empty()) + { + // flatten empty array as null + result[reference_string] = nullptr; + } + else + { + // iterate array and use index as reference string + for (size_t i = 0; i < value.m_value.array->size(); ++i) + { + flatten(reference_string + "/" + std::to_string(i), + value.m_value.array->operator[](i), result); + } + } + break; + } + + case value_t::object: + { + if (value.m_value.object->empty()) + { + // flatten empty object as null + result[reference_string] = nullptr; + } + else + { + // iterate object and use keys as reference string + for (const auto& element : *value.m_value.object) + { + flatten(reference_string + "/" + escape(element.first), + element.second, result); + } + } + break; + } + + default: + { + // add primitive value with its reference string + result[reference_string] = value; + break; + } + } + } + + /*! + @param[in] value flattened JSON + + @return unflattened JSON + */ + static basic_json unflatten(const basic_json& value) + { + if (not value.is_object()) + { + JSON_THROW(std::domain_error("only objects can be unflattened")); + } + + basic_json result; + + // iterate the JSON object values + for (const auto& element : *value.m_value.object) + { + if (not element.second.is_primitive()) + { + JSON_THROW(std::domain_error("values in object must be primitive")); + } + + // assign value to reference pointed to by JSON pointer; Note + // that if the JSON pointer is "" (i.e., points to the whole + // value), function get_and_create returns a reference to + // result itself. An assignment will then create a primitive + // value. + json_pointer(element.first).get_and_create(result) = element.second; + } + + return result; + } + + private: + /// the reference tokens + std::vector<std::string> reference_tokens {}; + }; ////////////////////////// // JSON Pointer support // @@ -11379,38 +11843,38 @@ using json = basic_json<>; // specialization of std::swap, and std::hash namespace std -{ -/*! -@brief exchanges the values of two JSON objects - -@since version 1.0.0 -*/ -template<> -inline void swap(nlohmann::json& j1, - nlohmann::json& j2) noexcept( - is_nothrow_move_constructible<nlohmann::json>::value and - is_nothrow_move_assignable<nlohmann::json>::value - ) -{ - j1.swap(j2); -} - -/// hash value for JSON objects -template<> -struct hash<nlohmann::json> { /*! - @brief return a hash value for a JSON object + @brief exchanges the values of two JSON objects @since version 1.0.0 */ - std::size_t operator()(const nlohmann::json& j) const + template<> + inline void swap(nlohmann::json& j1, + nlohmann::json& j2) noexcept( + is_nothrow_move_constructible<nlohmann::json>::value and + is_nothrow_move_assignable<nlohmann::json>::value + ) + { + j1.swap(j2); + } + + /// hash value for JSON objects + template<> + struct hash<nlohmann::json> + { + /*! + @brief return a hash value for a JSON object + + @since version 1.0.0 + */ + std::size_t operator()(const nlohmann::json& j) const { // a naive hashing via the string representation const auto& h = hash<nlohmann::json::string_t>(); return h(j.dump()); } -}; + }; } // namespace std /*! diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp index 40867b19d..71e75df43 100644 --- a/test/src/unit-class_lexer.cpp +++ b/test/src/unit-class_lexer.cpp @@ -39,66 +39,66 @@ TEST_CASE("lexer class") SECTION("structural characters") { CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("["), - 1).scan() == json::lexer::token_type::begin_array)); + 1).scan() == json::lexer::token_type::begin_array)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("]"), - 1).scan() == json::lexer::token_type::end_array)); + 1).scan() == json::lexer::token_type::end_array)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("{"), - 1).scan() == json::lexer::token_type::begin_object)); + 1).scan() == json::lexer::token_type::begin_object)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("}"), - 1).scan() == json::lexer::token_type::end_object)); + 1).scan() == json::lexer::token_type::end_object)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(","), - 1).scan() == json::lexer::token_type::value_separator)); + 1).scan() == json::lexer::token_type::value_separator)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(":"), - 1).scan() == json::lexer::token_type::name_separator)); + 1).scan() == json::lexer::token_type::name_separator)); } SECTION("literal names") { CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("null"), - 4).scan() == json::lexer::token_type::literal_null)); + 4).scan() == json::lexer::token_type::literal_null)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("true"), - 4).scan() == json::lexer::token_type::literal_true)); + 4).scan() == json::lexer::token_type::literal_true)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("false"), - 5).scan() == json::lexer::token_type::literal_false)); + 5).scan() == json::lexer::token_type::literal_false)); } SECTION("numbers") { CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("0"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("2"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("3"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("4"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("5"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("6"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("7"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("8"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("9"), - 1).scan() == json::lexer::token_type::value_number)); + 1).scan() == json::lexer::token_type::value_number)); } SECTION("whitespace") { // result is end_of_input, because not token is following CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" "), - 1).scan() == json::lexer::token_type::end_of_input)); + 1).scan() == json::lexer::token_type::end_of_input)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\t"), - 1).scan() == json::lexer::token_type::end_of_input)); + 1).scan() == json::lexer::token_type::end_of_input)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\n"), - 1).scan() == json::lexer::token_type::end_of_input)); + 1).scan() == json::lexer::token_type::end_of_input)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\r"), - 1).scan() == json::lexer::token_type::end_of_input)); + 1).scan() == json::lexer::token_type::end_of_input)); CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" \t\n\r\n\t "), - 7).scan() == json::lexer::token_type::end_of_input)); + 7).scan() == json::lexer::token_type::end_of_input)); } } diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 364c5ae7b..0cd834d6c 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -38,252 +38,257 @@ using nlohmann::json; namespace udt { - enum class country - { +enum class country +{ china, france, russia - }; +}; - struct age - { +struct age +{ int m_val; - }; +}; - struct name - { +struct name +{ std::string m_val; - }; +}; - struct address - { +struct address +{ std::string m_val; - }; +}; - struct person - { +struct person +{ age m_age; name m_name; country m_country; - }; +}; - struct contact - { +struct contact +{ person m_person; address m_address; - }; +}; - struct contact_book - { +struct contact_book +{ name m_book_name; std::vector<contact> m_contacts; - }; +}; } // to_json methods namespace udt { - // templates because of the custom_json tests (see below) - template <typename Json> - void to_json(Json& j, age a) - { +// templates because of the custom_json tests (see below) +template <typename Json> +void to_json(Json& j, age a) +{ j = a.m_val; - } +} - template <typename Json> - void to_json(Json& j, name const& n) - { +template <typename Json> +void to_json(Json& j, name const& n) +{ j = n.m_val; - } +} - template <typename Json> - void to_json(Json& j, country c) - { +template <typename Json> +void to_json(Json& j, country c) +{ switch (c) { - case country::china: - j = u8"中华人民共和国"; - return; - case country::france: - j = "France"; - return; - case country::russia: - j = u8"Российская Федерация"; - return; + case country::china: + j = u8"中华人民共和国"; + return; + case country::france: + j = "France"; + return; + case country::russia: + j = u8"Российская Федерация"; + return; } - } +} - template <typename Json> - void to_json(Json& j, person const& p) - { +template <typename Json> +void to_json(Json& j, person const& p) +{ j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}}; - } +} - void to_json(nlohmann::json& j, address const& a) - { +void to_json(nlohmann::json& j, address const& a) +{ j = a.m_val; - } +} - void to_json(nlohmann::json& j, contact const& c) - { +void to_json(nlohmann::json& j, contact const& c) +{ j = json{{"person", c.m_person}, {"address", c.m_address}}; - } +} - void to_json(nlohmann::json& j, contact_book const& cb) - { +void to_json(nlohmann::json& j, contact_book const& cb) +{ j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}}; - } +} - // operators - bool operator==(age lhs, age rhs) - { +// operators +bool operator==(age lhs, age rhs) +{ return lhs.m_val == rhs.m_val; - } +} - bool operator==(address const &lhs, address const &rhs) - { +bool operator==(address const& lhs, address const& rhs) +{ return lhs.m_val == rhs.m_val; - } +} - bool operator==(name const &lhs, name const &rhs) - { +bool operator==(name const& lhs, name const& rhs) +{ return lhs.m_val == rhs.m_val; - } +} - bool operator==(person const &lhs, person const &rhs) - { +bool operator==(person const& lhs, person const& rhs) +{ return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age); - } +} - bool operator==(contact const &lhs, contact const &rhs) - { +bool operator==(contact const& lhs, contact const& rhs) +{ return std::tie(lhs.m_person, lhs.m_address) == std::tie(rhs.m_person, rhs.m_address); - } +} - bool operator==(contact_book const &lhs, contact_book const &rhs) - { +bool operator==(contact_book const& lhs, contact_book const& rhs) +{ return std::tie(lhs.m_book_name, lhs.m_contacts) == std::tie(rhs.m_book_name, rhs.m_contacts); - } +} } // from_json methods namespace udt { - template <typename Json> - void from_json(Json const& j, age &a) - { +template <typename Json> +void from_json(Json const& j, age& a) +{ a.m_val = j.template get<int>(); - } +} - template <typename Json> - void from_json(Json const& j, name &n) - { +template <typename Json> +void from_json(Json const& j, name& n) +{ n.m_val = j.template get<std::string>(); - } +} - template <typename Json> - void from_json(Json const &j, country &c) - { +template <typename Json> +void from_json(Json const& j, country& c) +{ const auto str = j.template get<std::string>(); - static const std::map<std::string, country> m = { + static const std::map<std::string, country> m = + { {u8"中华人民共和国", country::china}, {"France", country::france}, - {"Российская Федерация", country::russia}}; + {"Российская Федерация", country::russia} + }; const auto it = m.find(str); // TODO test exceptions c = it->second; - } +} - template <typename Json> - void from_json(Json const& j, person &p) - { +template <typename Json> +void from_json(Json const& j, person& p) +{ p.m_age = j["age"].template get<age>(); p.m_name = j["name"].template get<name>(); p.m_country = j["country"].template get<country>(); - } +} - void from_json(nlohmann::json const &j, address &a) - { +void from_json(nlohmann::json const& j, address& a) +{ a.m_val = j.get<std::string>(); - } +} - void from_json(nlohmann::json const& j, contact &c) - { +void from_json(nlohmann::json const& j, contact& c) +{ c.m_person = j["person"].get<person>(); c.m_address = j["address"].get<address>(); - } +} - void from_json(nlohmann::json const&j, contact_book &cb) - { +void from_json(nlohmann::json const& j, contact_book& cb) +{ cb.m_book_name = j["name"].get<name>(); cb.m_contacts = j["contacts"].get<std::vector<contact>>(); - } +} } TEST_CASE("basic usage", "[udt]") { - // a bit narcissic maybe :) ? - const udt::age a{23}; - const udt::name n{"theo"}; - const udt::country c{udt::country::france}; - const udt::person sfinae_addict{a, n, c}; - const udt::person senior_programmer{{42}, {u8"王芳"}, udt::country::china}; - const udt::address addr{"Paris"}; - const udt::contact cpp_programmer{sfinae_addict, addr}; - const udt::contact_book book{{"C++"}, {cpp_programmer, {senior_programmer, addr}}}; + // a bit narcissic maybe :) ? + const udt::age a + { + 23 + }; + const udt::name n{"theo"}; + const udt::country c{udt::country::france}; + const udt::person sfinae_addict{a, n, c}; + const udt::person senior_programmer{{42}, {u8"王芳"}, udt::country::china}; + const udt::address addr{"Paris"}; + const udt::contact cpp_programmer{sfinae_addict, addr}; + const udt::contact_book book{{"C++"}, {cpp_programmer, {senior_programmer, addr}}}; - SECTION("conversion to json via free-functions") - { - CHECK(json(a) == json(23)); - CHECK(json(n) == json("theo")); - CHECK(json(c) == json("France")); - CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23, "country":"France"})"_json); - CHECK(json("Paris") == json(addr)); - CHECK(json(cpp_programmer) == - R"({"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"})"_json); + SECTION("conversion to json via free-functions") + { + CHECK(json(a) == json(23)); + CHECK(json(n) == json("theo")); + CHECK(json(c) == json("France")); + CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23, "country":"France"})"_json); + CHECK(json("Paris") == json(addr)); + CHECK(json(cpp_programmer) == + R"({"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"})"_json); - CHECK( - json(book) == - u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json); + CHECK( + json(book) == + u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json); - } + } - SECTION("conversion from json via free-functions") - { - const auto big_json = - u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json; - const auto parsed_book = big_json.get<udt::contact_book>(); - const auto book_name = big_json["name"].get<udt::name>(); - const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>(); - const auto contact_json = big_json["contacts"].at(0); - const auto contact = contact_json.get<udt::contact>(); - const auto person = contact_json["person"].get<udt::person>(); - const auto address = contact_json["address"].get<udt::address>(); - const auto age = contact_json["person"]["age"].get<udt::age>(); - const auto country = contact_json["person"]["country"].get<udt::country>(); - const auto name = contact_json["person"]["name"].get<udt::name>(); + SECTION("conversion from json via free-functions") + { + const auto big_json = + u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json; + const auto parsed_book = big_json.get<udt::contact_book>(); + const auto book_name = big_json["name"].get<udt::name>(); + const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>(); + const auto contact_json = big_json["contacts"].at(0); + const auto contact = contact_json.get<udt::contact>(); + const auto person = contact_json["person"].get<udt::person>(); + const auto address = contact_json["address"].get<udt::address>(); + const auto age = contact_json["person"]["age"].get<udt::age>(); + const auto country = contact_json["person"]["country"].get<udt::country>(); + const auto name = contact_json["person"]["name"].get<udt::name>(); - CHECK(age == a); - CHECK(name == n); - CHECK(country == c); - CHECK(address == addr); - CHECK(person == sfinae_addict); - CHECK(contact == cpp_programmer); - CHECK(contacts == book.m_contacts); - CHECK(book_name == udt::name{"C++"}); - CHECK(book == parsed_book); - } + CHECK(age == a); + CHECK(name == n); + CHECK(country == c); + CHECK(address == addr); + CHECK(person == sfinae_addict); + CHECK(contact == cpp_programmer); + CHECK(contacts == book.m_contacts); + CHECK(book_name == udt::name{"C++"}); + CHECK(book == parsed_book); + } } namespace udt { struct legacy_type { - std::string number; + std::string number; }; } @@ -292,88 +297,96 @@ namespace nlohmann template <typename T> struct adl_serializer<std::shared_ptr<T>> { - static void to_json(json& j, std::shared_ptr<T> const& opt) - { - if (opt) - j = *opt; - else - j = nullptr; - } + static void to_json(json& j, std::shared_ptr<T> const& opt) + { + if (opt) + { + j = *opt; + } + else + { + j = nullptr; + } + } - static void from_json(json const &j, std::shared_ptr<T> &opt) - { - if (j.is_null()) - opt = nullptr; - else - opt.reset(new T(j.get<T>())); - } + static void from_json(json const& j, std::shared_ptr<T>& opt) + { + if (j.is_null()) + { + opt = nullptr; + } + else + { + opt.reset(new T(j.get<T>())); + } + } }; template <> struct adl_serializer<udt::legacy_type> { - static void to_json(json& j, udt::legacy_type const& l) - { - j = std::stoi(l.number); - } + static void to_json(json& j, udt::legacy_type const& l) + { + j = std::stoi(l.number); + } - static void from_json(json const& j, udt::legacy_type& l) - { - l.number = std::to_string(j.get<int>()); - } + static void from_json(json const& j, udt::legacy_type& l) + { + l.number = std::to_string(j.get<int>()); + } }; } TEST_CASE("adl_serializer specialization", "[udt]") { - SECTION("partial specialization") - { - SECTION("to_json") + SECTION("partial specialization") { - std::shared_ptr<udt::person> optPerson; + SECTION("to_json") + { + std::shared_ptr<udt::person> optPerson; - json j = optPerson; - CHECK(j.is_null()); + json j = optPerson; + CHECK(j.is_null()); - optPerson.reset(new udt::person{{42}, {"John Doe"}}); - j = optPerson; - CHECK_FALSE(j.is_null()); + optPerson.reset(new udt::person{{42}, {"John Doe"}}); + j = optPerson; + CHECK_FALSE(j.is_null()); - CHECK(j.get<udt::person>() == *optPerson); + CHECK(j.get<udt::person>() == *optPerson); + } + + SECTION("from_json") + { + auto person = udt::person{{42}, {"John Doe"}}; + json j = person; + + auto optPerson = j.get<std::shared_ptr<udt::person>>(); + REQUIRE(optPerson); + CHECK(*optPerson == person); + + j = nullptr; + optPerson = j.get<std::shared_ptr<udt::person>>(); + CHECK(!optPerson); + } } - SECTION("from_json") + SECTION("total specialization") { - auto person = udt::person{{42}, {"John Doe"}}; - json j = person; + SECTION("to_json") + { + udt::legacy_type lt{"4242"}; - auto optPerson = j.get<std::shared_ptr<udt::person>>(); - REQUIRE(optPerson); - CHECK(*optPerson == person); + json j = lt; + CHECK(j.get<int>() == 4242); + } - j = nullptr; - optPerson = j.get<std::shared_ptr<udt::person>>(); - CHECK(!optPerson); + SECTION("from_json") + { + json j = 4242; + auto lt = j.get<udt::legacy_type>(); + CHECK(lt.number == "4242"); + } } - } - - SECTION("total specialization") - { - SECTION("to_json") - { - udt::legacy_type lt{"4242"}; - - json j = lt; - CHECK(j.get<int>() == 4242); - } - - SECTION("from_json") - { - json j = 4242; - auto lt = j.get<udt::legacy_type>(); - CHECK(lt.number == "4242"); - } - } } namespace nlohmann @@ -383,22 +396,22 @@ namespace nlohmann template <typename T> struct adl_serializer<std::vector<T>> { - static void to_json(json& j, std::vector<T> const& opt) - { - } + static void to_json(json& j, std::vector<T> const& opt) + { + } - static void from_json(json const &j, std::vector<T> &opt) - { - } + static void from_json(json const& j, std::vector<T>& opt) + { + } }; } TEST_CASE("current supported types are preferred over specializations", "[udt]") { - json j = std::vector<int>{1, 2, 3}; - auto f = j.get<std::vector<int>>(); - CHECK((f == std::vector<int>{1, 2, 3})); + json j = std::vector<int> {1, 2, 3}; + auto f = j.get<std::vector<int>>(); + CHECK((f == std::vector<int> {1, 2, 3})); } namespace nlohmann @@ -406,55 +419,63 @@ namespace nlohmann template <typename T> struct adl_serializer<std::unique_ptr<T>> { - static void to_json(json& j, std::unique_ptr<T> const& opt) - { - if (opt) - j = *opt; - else - j = nullptr; - } + static void to_json(json& j, std::unique_ptr<T> const& opt) + { + if (opt) + { + j = *opt; + } + else + { + j = nullptr; + } + } - // this is the overload needed for non-copyable types, - // should we add a priority tag in the implementation to prefer this overload if it exists? - static std::unique_ptr<T> from_json(json const &j) - { - if (j.is_null()) - return nullptr; - else - return std::unique_ptr<T>(new T(j.get<T>())); - } + // this is the overload needed for non-copyable types, + // should we add a priority tag in the implementation to prefer this overload if it exists? + static std::unique_ptr<T> from_json(json const& j) + { + if (j.is_null()) + { + return nullptr; + } + else + { + return std::unique_ptr<T>(new T(j.get<T>())); + } + } }; } TEST_CASE("Non-copyable types", "[udt]") { - SECTION("to_json") - { - std::unique_ptr<udt::person> optPerson; + SECTION("to_json") + { + std::unique_ptr<udt::person> optPerson; - json j = optPerson; - CHECK(j.is_null()); + json j = optPerson; + CHECK(j.is_null()); - optPerson.reset(new udt::person{{42}, {"John Doe"}}); - j = optPerson; - CHECK_FALSE(j.is_null()); + optPerson.reset(new udt::person{{42}, {"John Doe"}}); + j = optPerson; + CHECK_FALSE(j.is_null()); - CHECK(j.get<udt::person>() == *optPerson); - } + CHECK(j.get<udt::person>() == *optPerson); + } - SECTION("from_json") - { - auto person = udt::person{{42}, {"John Doe"}}; - json j = person; + SECTION("from_json") + { + auto person = udt::person{{42}, {"John Doe"}}; + json j = person; - auto optPerson = j.get<std::unique_ptr<udt::person>>(); - REQUIRE(optPerson); - CHECK(*optPerson == person); + auto optPerson = j.get<std::unique_ptr<udt::person>>(); + REQUIRE(optPerson); + CHECK(*optPerson == person); - j = nullptr; - optPerson = j.get<std::unique_ptr<udt::person>>(); - CHECK(!optPerson); - } + j = nullptr; + optPerson = j.get<std::unique_ptr<udt::person>>(); + CHECK(!optPerson); + } } // custom serializer @@ -462,87 +483,89 @@ TEST_CASE("Non-copyable types", "[udt]") template <typename T, typename = typename std::enable_if<std::is_pod<T>::value>::type> struct pod_serializer { - // I could forward-declare this struct, and add a basic_json alias - template <typename Json> - static void from_json(Json const& j , T& t) - { - auto value = j.template get<std::uint64_t>(); - auto bytes = static_cast<char*>(static_cast<void*>(&value)); - std::memcpy(&t, bytes, sizeof(value)); - } + // I could forward-declare this struct, and add a basic_json alias + template <typename Json> + static void from_json(Json const& j , T& t) + { + auto value = j.template get<std::uint64_t>(); + auto bytes = static_cast<char*>(static_cast<void*>(&value)); + std::memcpy(&t, bytes, sizeof(value)); + } - template <typename Json> - static void to_json(Json& j, T const& t) - { - auto bytes = static_cast<char const*>(static_cast<void const*>(&t)); - std::uint64_t value = bytes[0]; - for (auto i = 1; i < 8; ++i) - value |= bytes[i] << 8 * i; + template <typename Json> + static void to_json(Json& j, T const& t) + { + auto bytes = static_cast<char const*>(static_cast<void const*>(&t)); + std::uint64_t value = bytes[0]; + for (auto i = 1; i < 8; ++i) + { + value |= bytes[i] << 8 * i; + } - j = value; - } + j = value; + } }; namespace udt { struct small_pod { - int begin; - char middle; - short end; + int begin; + char middle; + short end; }; bool operator==(small_pod lhs, small_pod rhs) { - return std::tie(lhs.begin, lhs.middle, lhs.end) == - std::tie(lhs.begin, lhs.middle, lhs.end); + return std::tie(lhs.begin, lhs.middle, lhs.end) == + std::tie(lhs.begin, lhs.middle, lhs.end); } } TEST_CASE("custom serializer for pods", "[udt]") { - using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, pod_serializer>; + using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, pod_serializer>; - auto p = udt::small_pod{42, '/', 42}; - custom_json j = p; + auto p = udt::small_pod{42, '/', 42}; + custom_json j = p; - auto p2 = j.get<udt::small_pod>(); + auto p2 = j.get<udt::small_pod>(); - CHECK(p == p2); + CHECK(p == p2); } template <typename T, typename> struct another_adl_serializer; - using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, another_adl_serializer>; +using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, another_adl_serializer>; template <typename T, typename> struct another_adl_serializer { - static void from_json(custom_json const& j , T& t) - { - using nlohmann::from_json; - from_json(j, t); - } + static void from_json(custom_json const& j , T& t) + { + using nlohmann::from_json; + from_json(j, t); + } - static void to_json(custom_json& j , T const& t) - { - using nlohmann::to_json; - to_json(j, t); - } + static void to_json(custom_json& j , T const& t) + { + using nlohmann::to_json; + to_json(j, t); + } }; TEST_CASE("custom serializer that does adl by default", "[udt]") { - using json = nlohmann::json; + using json = nlohmann::json; - auto me = udt::person{23, "theo", udt::country::france}; + auto me = udt::person{23, "theo", udt::country::france}; - json j = me; - custom_json cj = me; + json j = me; + custom_json cj = me; - CHECK(j.dump() == cj.dump()); + CHECK(j.dump() == cj.dump()); - CHECK(me == j.get<udt::person>()); - CHECK(me == cj.get<udt::person>()); + CHECK(me == j.get<udt::person>()); + CHECK(me == cj.get<udt::person>()); } From 034d5ed97e6d7c1ef051be27256aded65871ee81 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Sun, 18 Dec 2016 21:02:09 +0100 Subject: [PATCH 056/130] :lipstick: some cleanup --- src/json.hpp | 56 +++++++++++++++++++++-------------------------- src/json.hpp.re2c | 56 +++++++++++++++++++++-------------------------- 2 files changed, 50 insertions(+), 62 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 7325e7c89..7a1a9392c 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -141,7 +141,8 @@ using is_unscoped_enum = namespace detail { -// Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t) +// very useful construct against boilerplate (more boilerplate needed than in +// C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void { using type = void; @@ -174,29 +175,29 @@ struct disjunction<B1, Bn...> /*! @brief Helper to determine whether there's a key_type for T. -Thus helper is used to tell associative containers apart from other containers + +This helper is used to tell associative containers apart from other containers such as sequence containers. For instance, `std::map` passes the test as it contains a `mapped_type`, whereas `std::vector` fails the test. + @sa http://stackoverflow.com/a/7728728/266378 @since version 1.0.0, overworked in version 2.0.6 */ -#define NLOHMANN_JSON_HAS_HELPER(type) \ - template <typename T> struct has_##type { \ - private: \ - template <typename U, typename = typename U::type> \ - static int detect(U &&); \ - \ - static void detect(...); \ - \ - public: \ - static constexpr bool value = \ - std::is_integral<decltype(detect(std::declval<T>()))>::value; \ +#define NLOHMANN_JSON_HAS_HELPER(type) \ + template <typename T> struct has_##type { \ + private: \ + template <typename U, typename = typename U::type> \ + static int detect(U &&); \ + static void detect(...); \ + public: \ + static constexpr bool value = \ + std::is_integral<decltype(detect(std::declval<T>()))>::value; \ }; -NLOHMANN_JSON_HAS_HELPER(mapped_type) -NLOHMANN_JSON_HAS_HELPER(key_type) -NLOHMANN_JSON_HAS_HELPER(value_type) -NLOHMANN_JSON_HAS_HELPER(iterator) +NLOHMANN_JSON_HAS_HELPER(mapped_type); +NLOHMANN_JSON_HAS_HELPER(key_type); +NLOHMANN_JSON_HAS_HELPER(value_type); +NLOHMANN_JSON_HAS_HELPER(iterator); #undef NLOHMANN_JSON_HAS_HELPER @@ -216,8 +217,8 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> template<class RealType, class CompatibleObjectType> struct is_compatible_object_type { - // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void - // hence the conjunction + // As noted ahead, we need to stop evaluating traits if + // `CompatibleObjectType = void`, hence the conjunction static auto constexpr value = is_compatible_object_type_impl < conjunction<negation<std::is_same<void, CompatibleObjectType>>, has_mapped_type<CompatibleObjectType>, @@ -249,8 +250,8 @@ struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - // the check for CompatibleArrayType = void is done in is_compatible_object_type - // but we need the conjunction here as well + // the check for CompatibleArrayType = void is done in + // `is_compatible_object_type`, but we need the conjunction here as well static auto constexpr value = is_compatible_array_type_impl < conjunction<negation<is_compatible_object_type< typename BasicJson::object_t, CompatibleArrayType>>, @@ -302,8 +303,7 @@ struct is_compatible_basic_json_type is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or is_compatible_float_type<typename BasicJson::number_float_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_integer_t, - T>::value or + is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or is_compatible_integer_type<typename BasicJson::number_unsigned_t, T>::value; }; @@ -320,8 +320,7 @@ struct is_basic_json_nested_class }; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists -template <template <typename, typename> class JSONSerializer, typename Json, - typename T> +template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_from_json { private: @@ -329,7 +328,6 @@ struct has_from_json template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( std::declval<Json>(), std::declval<T&>()))>::value>> static int detect(U&&); - static void detect(...); public: @@ -346,7 +344,6 @@ struct has_non_default_from_json private: template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> static int detect(U&&); - static void detect(...); public: @@ -363,7 +360,6 @@ struct has_to_json template <typename U, typename = decltype(uncvref_t<U>::to_json( std::declval<Json&>(), std::declval<T>()))> static int detect(U&&); - static void detect(...); public: @@ -1598,8 +1594,7 @@ class basic_json @since version 1.0.0 */ template <class CompatibleArrayType, - enable_if_t<detail::is_compatible_array_type< - basic_json_t, CompatibleArrayType>::value, + enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value, int> = 0> basic_json(const CompatibleArrayType& val) : m_type(value_t::array) { @@ -1620,7 +1615,6 @@ class basic_json not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and - detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< uncvref_t<T>, basic_json_t>>, detail::has_to_json<JSONSerializer, basic_json, diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 12fde56ea..66b425b1d 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -141,7 +141,8 @@ using is_unscoped_enum = namespace detail { -// Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t) +// very useful construct against boilerplate (more boilerplate needed than in +// C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void { using type = void; @@ -174,29 +175,29 @@ struct disjunction<B1, Bn...> /*! @brief Helper to determine whether there's a key_type for T. -Thus helper is used to tell associative containers apart from other containers + +This helper is used to tell associative containers apart from other containers such as sequence containers. For instance, `std::map` passes the test as it contains a `mapped_type`, whereas `std::vector` fails the test. + @sa http://stackoverflow.com/a/7728728/266378 @since version 1.0.0, overworked in version 2.0.6 */ -#define NLOHMANN_JSON_HAS_HELPER(type) \ - template <typename T> struct has_##type { \ - private: \ - template <typename U, typename = typename U::type> \ - static int detect(U &&); \ - \ - static void detect(...); \ - \ - public: \ - static constexpr bool value = \ - std::is_integral<decltype(detect(std::declval<T>()))>::value; \ +#define NLOHMANN_JSON_HAS_HELPER(type) \ + template <typename T> struct has_##type { \ + private: \ + template <typename U, typename = typename U::type> \ + static int detect(U &&); \ + static void detect(...); \ + public: \ + static constexpr bool value = \ + std::is_integral<decltype(detect(std::declval<T>()))>::value; \ }; -NLOHMANN_JSON_HAS_HELPER(mapped_type) -NLOHMANN_JSON_HAS_HELPER(key_type) -NLOHMANN_JSON_HAS_HELPER(value_type) -NLOHMANN_JSON_HAS_HELPER(iterator) +NLOHMANN_JSON_HAS_HELPER(mapped_type); +NLOHMANN_JSON_HAS_HELPER(key_type); +NLOHMANN_JSON_HAS_HELPER(value_type); +NLOHMANN_JSON_HAS_HELPER(iterator); #undef NLOHMANN_JSON_HAS_HELPER @@ -216,8 +217,8 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> template<class RealType, class CompatibleObjectType> struct is_compatible_object_type { - // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void - // hence the conjunction + // As noted ahead, we need to stop evaluating traits if + // `CompatibleObjectType = void`, hence the conjunction static auto constexpr value = is_compatible_object_type_impl < conjunction<negation<std::is_same<void, CompatibleObjectType>>, has_mapped_type<CompatibleObjectType>, @@ -249,8 +250,8 @@ struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - // the check for CompatibleArrayType = void is done in is_compatible_object_type - // but we need the conjunction here as well + // the check for CompatibleArrayType = void is done in + // `is_compatible_object_type`, but we need the conjunction here as well static auto constexpr value = is_compatible_array_type_impl < conjunction<negation<is_compatible_object_type< typename BasicJson::object_t, CompatibleArrayType>>, @@ -302,8 +303,7 @@ struct is_compatible_basic_json_type is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or is_compatible_float_type<typename BasicJson::number_float_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_integer_t, - T>::value or + is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or is_compatible_integer_type<typename BasicJson::number_unsigned_t, T>::value; }; @@ -320,8 +320,7 @@ struct is_basic_json_nested_class }; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists -template <template <typename, typename> class JSONSerializer, typename Json, - typename T> +template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_from_json { private: @@ -329,7 +328,6 @@ struct has_from_json template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( std::declval<Json>(), std::declval<T&>()))>::value>> static int detect(U&&); - static void detect(...); public: @@ -346,7 +344,6 @@ struct has_non_default_from_json private: template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> static int detect(U&&); - static void detect(...); public: @@ -363,7 +360,6 @@ struct has_to_json template <typename U, typename = decltype(uncvref_t<U>::to_json( std::declval<Json&>(), std::declval<T>()))> static int detect(U&&); - static void detect(...); public: @@ -1599,8 +1595,7 @@ class basic_json @since version 1.0.0 */ template <class CompatibleArrayType, - enable_if_t<detail::is_compatible_array_type< - basic_json_t, CompatibleArrayType>::value, + enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value, int> = 0> basic_json(const CompatibleArrayType& val) : m_type(value_t::array) { @@ -1621,7 +1616,6 @@ class basic_json not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and - detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< uncvref_t<T>, basic_json_t>>, detail::has_to_json<JSONSerializer, basic_json, From d359684f2b11f879000e9567135874691a692172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 7 Jan 2017 15:26:50 +0100 Subject: [PATCH 057/130] move enum class value_t outside of basic_json --- src/json.hpp | 1438 +++++++++++++++------------------------------ src/json.hpp.re2c | 160 +++-- 2 files changed, 556 insertions(+), 1042 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 7a1a9392c..cc397e399 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -106,6 +106,46 @@ SOFTWARE. */ namespace nlohmann { + +/////////////////////////// +// JSON type enumeration // +/////////////////////////// + +/*! +@brief the JSON type enumeration + +This enumeration collects the different JSON types. It is internally used +to distinguish the stored values, and the functions @ref is_null(), @ref +is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref +is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and +@ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and +@ref is_structured() rely on it. + +@note There are three enumeration entries (number_integer, +number_unsigned, and number_float), because the library distinguishes +these three types for numbers: @ref number_unsigned_t is used for unsigned +integers, @ref number_integer_t is used for signed integers, and @ref +number_float_t is used for floating-point numbers or to approximate +integers which do not fit in the limits of their respective type. + +@sa @ref basic_json(const value_t value_type) -- create a JSON value with +the default value for a given type + +@since version 1.0.0 +*/ +enum class value_t : uint8_t +{ + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + discarded ///< discarded by the the parser callback function +}; + // alias templates to reduce boilerplate template <bool B, typename T = void> using enable_if_t = typename std::enable_if<B, T>::type; @@ -552,6 +592,7 @@ class basic_json class primitive_iterator_t; public: + using value_t = ::nlohmann::value_t; // forward declarations template<typename U> class iter_impl; template<typename Base> class json_reverse_iterator; @@ -1102,47 +1143,6 @@ class basic_json /// @} - - /////////////////////////// - // JSON type enumeration // - /////////////////////////// - - /*! - @brief the JSON type enumeration - - This enumeration collects the different JSON types. It is internally used - to distinguish the stored values, and the functions @ref is_null(), @ref - is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref - is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and - @ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and - @ref is_structured() rely on it. - - @note There are three enumeration entries (number_integer, - number_unsigned, and number_float), because the library distinguishes - these three types for numbers: @ref number_unsigned_t is used for unsigned - integers, @ref number_integer_t is used for signed integers, and @ref - number_float_t is used for floating-point numbers or to approximate - integers which do not fit in the limits of their respective type. - - @sa @ref basic_json(const value_t value_type) -- create a JSON value with - the default value for a given type - - @since version 1.0.0 - */ - enum class value_t : uint8_t - { - null, ///< null value - object, ///< object (unordered set of name/value pairs) - array, ///< array (ordered collection of values) - string, ///< string value - boolean, ///< boolean value - number_integer, ///< number value (signed integer) - number_unsigned, ///< number value (unsigned integer) - number_float, ///< number value (floating-point) - discarded ///< discarded by the the parser callback function - }; - - private: /// helper for exception-safe object creation @@ -5912,47 +5912,6 @@ class basic_json /// @} - - ////////////////////////////////////////// - // lexicographical comparison operators // - ////////////////////////////////////////// - - /// @name lexicographical comparison operators - /// @{ - - private: - /*! - @brief comparison operator for JSON types - - Returns an ordering that is similar to Python: - - order: null < boolean < number < object < array < string - - furthermore, each type is not smaller than itself - - @since version 1.0.0 - */ - friend bool operator<(const value_t lhs, const value_t rhs) noexcept - { - static constexpr std::array<uint8_t, 8> order = {{ - 0, // null - 3, // object - 4, // array - 5, // string - 1, // boolean - 2, // integer - 2, // unsigned - 2, // float - } - }; - - // discarded values are not comparable - if (lhs == value_t::discarded or rhs == value_t::discarded) - { - return false; - } - - return order[static_cast<std::size_t>(lhs)] < order[static_cast<std::size_t>(rhs)]; - } - public: /*! @brief comparison: equal @@ -9741,915 +9700,437 @@ class basic_json m_start = m_cursor; assert(m_start != nullptr); - - { - lexer_char_t yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = - { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 160, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - if ((m_limit - m_cursor) < 5) - { - fill_line_buffer(5); // LCOV_EXCL_LINE + + { + lexer_char_t yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yybm[0+yych] & 32) { + goto basic_json_parser_6; + } + if (yych <= '[') { + if (yych <= '-') { + if (yych <= '"') { + if (yych <= 0x00) goto basic_json_parser_2; + if (yych <= '!') goto basic_json_parser_4; + goto basic_json_parser_9; + } else { + if (yych <= '+') goto basic_json_parser_4; + if (yych <= ',') goto basic_json_parser_10; + goto basic_json_parser_12; } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; + } else { + if (yych <= '9') { + if (yych <= '/') goto basic_json_parser_4; + if (yych <= '0') goto basic_json_parser_13; + goto basic_json_parser_15; + } else { + if (yych <= ':') goto basic_json_parser_17; + if (yych <= 'Z') goto basic_json_parser_4; + goto basic_json_parser_19; } - if (yych <= '[') - { - if (yych <= '-') - { - if (yych <= '"') - { - if (yych <= 0x00) - { - goto basic_json_parser_2; - } - if (yych <= '!') - { - goto basic_json_parser_4; - } - goto basic_json_parser_9; - } - else - { - if (yych <= '+') - { - goto basic_json_parser_4; - } - if (yych <= ',') - { - goto basic_json_parser_10; - } - goto basic_json_parser_12; - } - } - else - { - if (yych <= '9') - { - if (yych <= '/') - { - goto basic_json_parser_4; - } - if (yych <= '0') - { - goto basic_json_parser_13; - } - goto basic_json_parser_15; - } - else - { - if (yych <= ':') - { - goto basic_json_parser_17; - } - if (yych <= 'Z') - { - goto basic_json_parser_4; - } - goto basic_json_parser_19; - } - } + } + } else { + if (yych <= 'n') { + if (yych <= 'e') { + if (yych == ']') goto basic_json_parser_21; + goto basic_json_parser_4; + } else { + if (yych <= 'f') goto basic_json_parser_23; + if (yych <= 'm') goto basic_json_parser_4; + goto basic_json_parser_24; } - else - { - if (yych <= 'n') - { - if (yych <= 'e') - { - if (yych == ']') - { - goto basic_json_parser_21; - } - goto basic_json_parser_4; - } - else - { - if (yych <= 'f') - { - goto basic_json_parser_23; - } - if (yych <= 'm') - { - goto basic_json_parser_4; - } - goto basic_json_parser_24; - } - } - else - { - if (yych <= 'z') - { - if (yych == 't') - { - goto basic_json_parser_25; - } - goto basic_json_parser_4; - } - else - { - if (yych <= '{') - { - goto basic_json_parser_26; - } - if (yych == '}') - { - goto basic_json_parser_28; - } - goto basic_json_parser_4; - } - } + } else { + if (yych <= 'z') { + if (yych == 't') goto basic_json_parser_25; + goto basic_json_parser_4; + } else { + if (yych <= '{') goto basic_json_parser_26; + if (yych == '}') goto basic_json_parser_28; + goto basic_json_parser_4; } + } + } basic_json_parser_2: - ++m_cursor; - { - last_token_type = token_type::end_of_input; - break; - } + ++m_cursor; + { last_token_type = token_type::end_of_input; break; } basic_json_parser_4: - ++m_cursor; + ++m_cursor; basic_json_parser_5: - { - last_token_type = token_type::parse_error; - break; - } + { last_token_type = token_type::parse_error; break; } basic_json_parser_6: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; - } - { - continue; - } + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yybm[0+yych] & 32) { + goto basic_json_parser_6; + } + { continue; } basic_json_parser_9: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych <= 0x1F) - { - goto basic_json_parser_5; - } - if (yych <= 0x7F) - { - goto basic_json_parser_31; - } - if (yych <= 0xC1) - { - goto basic_json_parser_5; - } - if (yych <= 0xF4) - { - goto basic_json_parser_31; - } - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych <= 0x1F) goto basic_json_parser_5; + if (yych <= 0x7F) goto basic_json_parser_31; + if (yych <= 0xC1) goto basic_json_parser_5; + if (yych <= 0xF4) goto basic_json_parser_31; + goto basic_json_parser_5; basic_json_parser_10: - ++m_cursor; - { - last_token_type = token_type::value_separator; - break; - } + ++m_cursor; + { last_token_type = token_type::value_separator; break; } basic_json_parser_12: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_5; - } - if (yych <= '0') - { - goto basic_json_parser_13; - } - if (yych <= '9') - { - goto basic_json_parser_15; - } - goto basic_json_parser_5; + yych = *++m_cursor; + if (yych <= '/') goto basic_json_parser_5; + if (yych <= '0') goto basic_json_parser_13; + if (yych <= '9') goto basic_json_parser_15; + goto basic_json_parser_5; basic_json_parser_13: - yyaccept = 1; - yych = *(m_marker = ++m_cursor); - if (yych <= 'D') - { - if (yych == '.') - { - goto basic_json_parser_43; - } - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - } + yyaccept = 1; + yych = *(m_marker = ++m_cursor); + if (yych <= 'D') { + if (yych == '.') goto basic_json_parser_43; + } else { + if (yych <= 'E') goto basic_json_parser_44; + if (yych == 'e') goto basic_json_parser_44; + } basic_json_parser_14: - { - last_token_type = token_type::value_number; - break; - } + { last_token_type = token_type::value_number; break; } basic_json_parser_15: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - fill_line_buffer(3); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 64) - { - goto basic_json_parser_15; - } - if (yych <= 'D') - { - if (yych == '.') - { - goto basic_json_parser_43; - } - goto basic_json_parser_14; - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - goto basic_json_parser_14; - } + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yybm[0+yych] & 64) { + goto basic_json_parser_15; + } + if (yych <= 'D') { + if (yych == '.') goto basic_json_parser_43; + goto basic_json_parser_14; + } else { + if (yych <= 'E') goto basic_json_parser_44; + if (yych == 'e') goto basic_json_parser_44; + goto basic_json_parser_14; + } basic_json_parser_17: - ++m_cursor; - { - last_token_type = token_type::name_separator; - break; - } + ++m_cursor; + { last_token_type = token_type::name_separator; break; } basic_json_parser_19: - ++m_cursor; - { - last_token_type = token_type::begin_array; - break; - } + ++m_cursor; + { last_token_type = token_type::begin_array; break; } basic_json_parser_21: - ++m_cursor; - { - last_token_type = token_type::end_array; - break; - } + ++m_cursor; + { last_token_type = token_type::end_array; break; } basic_json_parser_23: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'a') - { - goto basic_json_parser_45; - } - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'a') goto basic_json_parser_45; + goto basic_json_parser_5; basic_json_parser_24: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'u') - { - goto basic_json_parser_46; - } - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'u') goto basic_json_parser_46; + goto basic_json_parser_5; basic_json_parser_25: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'r') - { - goto basic_json_parser_47; - } - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'r') goto basic_json_parser_47; + goto basic_json_parser_5; basic_json_parser_26: - ++m_cursor; - { - last_token_type = token_type::begin_object; - break; - } + ++m_cursor; + { last_token_type = token_type::begin_object; break; } basic_json_parser_28: - ++m_cursor; - { - last_token_type = token_type::end_object; - break; - } + ++m_cursor; + { last_token_type = token_type::end_object; break; } basic_json_parser_30: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; basic_json_parser_31: - if (yybm[0 + yych] & 128) - { - goto basic_json_parser_30; - } - if (yych <= 0xE0) - { - if (yych <= '\\') - { - if (yych <= 0x1F) - { - goto basic_json_parser_32; - } - if (yych <= '"') - { - goto basic_json_parser_33; - } - goto basic_json_parser_35; - } - else - { - if (yych <= 0xC1) - { - goto basic_json_parser_32; - } - if (yych <= 0xDF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_37; - } - } - else - { - if (yych <= 0xEF) - { - if (yych == 0xED) - { - goto basic_json_parser_39; - } - goto basic_json_parser_38; - } - else - { - if (yych <= 0xF0) - { - goto basic_json_parser_40; - } - if (yych <= 0xF3) - { - goto basic_json_parser_41; - } - if (yych <= 0xF4) - { - goto basic_json_parser_42; - } - } - } + if (yybm[0+yych] & 128) { + goto basic_json_parser_30; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x1F) goto basic_json_parser_32; + if (yych <= '"') goto basic_json_parser_33; + goto basic_json_parser_35; + } else { + if (yych <= 0xC1) goto basic_json_parser_32; + if (yych <= 0xDF) goto basic_json_parser_36; + goto basic_json_parser_37; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) goto basic_json_parser_39; + goto basic_json_parser_38; + } else { + if (yych <= 0xF0) goto basic_json_parser_40; + if (yych <= 0xF3) goto basic_json_parser_41; + if (yych <= 0xF4) goto basic_json_parser_42; + } + } basic_json_parser_32: - m_cursor = m_marker; - if (yyaccept == 0) - { - goto basic_json_parser_5; - } - else - { - goto basic_json_parser_14; - } + m_cursor = m_marker; + if (yyaccept == 0) { + goto basic_json_parser_5; + } else { + goto basic_json_parser_14; + } basic_json_parser_33: - ++m_cursor; - { - last_token_type = token_type::value_string; - break; - } + ++m_cursor; + { last_token_type = token_type::value_string; break; } basic_json_parser_35: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 'e') - { - if (yych <= '/') - { - if (yych == '"') - { - goto basic_json_parser_30; - } - if (yych <= '.') - { - goto basic_json_parser_32; - } - goto basic_json_parser_30; - } - else - { - if (yych <= '\\') - { - if (yych <= '[') - { - goto basic_json_parser_32; - } - goto basic_json_parser_30; - } - else - { - if (yych == 'b') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - } - } - else - { - if (yych <= 'q') - { - if (yych <= 'f') - { - goto basic_json_parser_30; - } - if (yych == 'n') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 's') - { - if (yych <= 'r') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 't') - { - goto basic_json_parser_30; - } - if (yych <= 'u') - { - goto basic_json_parser_48; - } - goto basic_json_parser_32; - } - } - } -basic_json_parser_36: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 'e') { + if (yych <= '/') { + if (yych == '"') goto basic_json_parser_30; + if (yych <= '.') goto basic_json_parser_32; + goto basic_json_parser_30; + } else { + if (yych <= '\\') { + if (yych <= '[') goto basic_json_parser_32; goto basic_json_parser_30; - } - goto basic_json_parser_32; -basic_json_parser_37: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x9F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_32; -basic_json_parser_38: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_32; -basic_json_parser_39: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0x9F) - { - goto basic_json_parser_36; - } - goto basic_json_parser_32; -basic_json_parser_40: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x8F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_38; - } - goto basic_json_parser_32; -basic_json_parser_41: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_38; - } - goto basic_json_parser_32; -basic_json_parser_42: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0x8F) - { - goto basic_json_parser_38; - } - goto basic_json_parser_32; -basic_json_parser_43: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_49; - } - goto basic_json_parser_32; -basic_json_parser_44: - yych = *++m_cursor; - if (yych <= ',') - { - if (yych == '+') - { - goto basic_json_parser_51; - } - goto basic_json_parser_32; - } - else - { - if (yych <= '-') - { - goto basic_json_parser_51; - } - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_52; - } - goto basic_json_parser_32; - } -basic_json_parser_45: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_54; - } - goto basic_json_parser_32; -basic_json_parser_46: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_55; - } - goto basic_json_parser_32; -basic_json_parser_47: - yych = *++m_cursor; - if (yych == 'u') - { - goto basic_json_parser_56; - } - goto basic_json_parser_32; -basic_json_parser_48: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_57; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_57; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_57; - } - goto basic_json_parser_32; - } -basic_json_parser_49: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - fill_line_buffer(3); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 'D') - { - if (yych <= '/') - { - goto basic_json_parser_14; - } - if (yych <= '9') - { - goto basic_json_parser_49; - } - goto basic_json_parser_14; - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - goto basic_json_parser_14; - } -basic_json_parser_51: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych >= ':') - { - goto basic_json_parser_32; - } -basic_json_parser_52: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '/') - { - goto basic_json_parser_14; - } - if (yych <= '9') - { - goto basic_json_parser_52; - } - goto basic_json_parser_14; -basic_json_parser_54: - yych = *++m_cursor; - if (yych == 's') - { - goto basic_json_parser_58; - } - goto basic_json_parser_32; -basic_json_parser_55: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_59; - } - goto basic_json_parser_32; -basic_json_parser_56: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_61; - } - goto basic_json_parser_32; -basic_json_parser_57: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_63; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_63; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_63; - } - goto basic_json_parser_32; - } -basic_json_parser_58: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_64; - } - goto basic_json_parser_32; -basic_json_parser_59: - ++m_cursor; - { - last_token_type = token_type::literal_null; - break; - } -basic_json_parser_61: - ++m_cursor; - { - last_token_type = token_type::literal_true; - break; - } -basic_json_parser_63: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_66; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_66; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_66; - } - goto basic_json_parser_32; - } -basic_json_parser_64: - ++m_cursor; - { - last_token_type = token_type::literal_false; - break; - } -basic_json_parser_66: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_30; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_30; - } + } else { + if (yych == 'b') goto basic_json_parser_30; goto basic_json_parser_32; } } + } else { + if (yych <= 'q') { + if (yych <= 'f') goto basic_json_parser_30; + if (yych == 'n') goto basic_json_parser_30; + goto basic_json_parser_32; + } else { + if (yych <= 's') { + if (yych <= 'r') goto basic_json_parser_30; + goto basic_json_parser_32; + } else { + if (yych <= 't') goto basic_json_parser_30; + if (yych <= 'u') goto basic_json_parser_48; + goto basic_json_parser_32; + } + } + } +basic_json_parser_36: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_30; + goto basic_json_parser_32; +basic_json_parser_37: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x9F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_36; + goto basic_json_parser_32; +basic_json_parser_38: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_36; + goto basic_json_parser_32; +basic_json_parser_39: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0x9F) goto basic_json_parser_36; + goto basic_json_parser_32; +basic_json_parser_40: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x8F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_38; + goto basic_json_parser_32; +basic_json_parser_41: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_38; + goto basic_json_parser_32; +basic_json_parser_42: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0x8F) goto basic_json_parser_38; + goto basic_json_parser_32; +basic_json_parser_43: + yych = *++m_cursor; + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_49; + goto basic_json_parser_32; +basic_json_parser_44: + yych = *++m_cursor; + if (yych <= ',') { + if (yych == '+') goto basic_json_parser_51; + goto basic_json_parser_32; + } else { + if (yych <= '-') goto basic_json_parser_51; + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_52; + goto basic_json_parser_32; + } +basic_json_parser_45: + yych = *++m_cursor; + if (yych == 'l') goto basic_json_parser_54; + goto basic_json_parser_32; +basic_json_parser_46: + yych = *++m_cursor; + if (yych == 'l') goto basic_json_parser_55; + goto basic_json_parser_32; +basic_json_parser_47: + yych = *++m_cursor; + if (yych == 'u') goto basic_json_parser_56; + goto basic_json_parser_32; +basic_json_parser_48: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_57; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_57; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_57; + goto basic_json_parser_32; + } +basic_json_parser_49: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 'D') { + if (yych <= '/') goto basic_json_parser_14; + if (yych <= '9') goto basic_json_parser_49; + goto basic_json_parser_14; + } else { + if (yych <= 'E') goto basic_json_parser_44; + if (yych == 'e') goto basic_json_parser_44; + goto basic_json_parser_14; + } +basic_json_parser_51: + yych = *++m_cursor; + if (yych <= '/') goto basic_json_parser_32; + if (yych >= ':') goto basic_json_parser_32; +basic_json_parser_52: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '/') goto basic_json_parser_14; + if (yych <= '9') goto basic_json_parser_52; + goto basic_json_parser_14; +basic_json_parser_54: + yych = *++m_cursor; + if (yych == 's') goto basic_json_parser_58; + goto basic_json_parser_32; +basic_json_parser_55: + yych = *++m_cursor; + if (yych == 'l') goto basic_json_parser_59; + goto basic_json_parser_32; +basic_json_parser_56: + yych = *++m_cursor; + if (yych == 'e') goto basic_json_parser_61; + goto basic_json_parser_32; +basic_json_parser_57: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_63; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_63; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_63; + goto basic_json_parser_32; + } +basic_json_parser_58: + yych = *++m_cursor; + if (yych == 'e') goto basic_json_parser_64; + goto basic_json_parser_32; +basic_json_parser_59: + ++m_cursor; + { last_token_type = token_type::literal_null; break; } +basic_json_parser_61: + ++m_cursor; + { last_token_type = token_type::literal_true; break; } +basic_json_parser_63: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_66; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_66; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_66; + goto basic_json_parser_32; + } +basic_json_parser_64: + ++m_cursor; + { last_token_type = token_type::literal_false; break; } +basic_json_parser_66: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_30; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_30; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_30; + goto basic_json_parser_32; + } + } } @@ -12666,6 +12147,43 @@ basic_json_parser_66: /// @} }; +////////////////////////////////////////// +// lexicographical comparison operators // +////////////////////////////////////////// + +/// @name lexicographical comparison operators +/// @{ +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string +- furthermore, each type is not smaller than itself + +@since version 1.0.0 +*/ +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + static constexpr std::array<uint8_t, 8> order = {{ + 0, // null + 3, // object + 4, // array + 5, // string + 1, // boolean + 2, // integer + 2, // unsigned + 2, // float + }}; + + // discarded values are not comparable + if (lhs == value_t::discarded or rhs == value_t::discarded) + { + return false; + } + + return order[static_cast<std::size_t>(lhs)] < + order[static_cast<std::size_t>(rhs)]; +} ///////////// // presets // diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 66b425b1d..157146690 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -106,6 +106,46 @@ SOFTWARE. */ namespace nlohmann { + +/////////////////////////// +// JSON type enumeration // +/////////////////////////// + +/*! +@brief the JSON type enumeration + +This enumeration collects the different JSON types. It is internally used +to distinguish the stored values, and the functions @ref is_null(), @ref +is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref +is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and +@ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and +@ref is_structured() rely on it. + +@note There are three enumeration entries (number_integer, +number_unsigned, and number_float), because the library distinguishes +these three types for numbers: @ref number_unsigned_t is used for unsigned +integers, @ref number_integer_t is used for signed integers, and @ref +number_float_t is used for floating-point numbers or to approximate +integers which do not fit in the limits of their respective type. + +@sa @ref basic_json(const value_t value_type) -- create a JSON value with +the default value for a given type + +@since version 1.0.0 +*/ +enum class value_t : uint8_t +{ + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + discarded ///< discarded by the the parser callback function +}; + // alias templates to reduce boilerplate template <bool B, typename T = void> using enable_if_t = typename std::enable_if<B, T>::type; @@ -553,6 +593,7 @@ class basic_json class primitive_iterator_t; public: + using value_t = ::nlohmann::value_t; // forward declarations template<typename U> class iter_impl; template<typename Base> class json_reverse_iterator; @@ -1103,47 +1144,6 @@ class basic_json /// @} - - /////////////////////////// - // JSON type enumeration // - /////////////////////////// - - /*! - @brief the JSON type enumeration - - This enumeration collects the different JSON types. It is internally used - to distinguish the stored values, and the functions @ref is_null(), @ref - is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref - is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and - @ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and - @ref is_structured() rely on it. - - @note There are three enumeration entries (number_integer, - number_unsigned, and number_float), because the library distinguishes - these three types for numbers: @ref number_unsigned_t is used for unsigned - integers, @ref number_integer_t is used for signed integers, and @ref - number_float_t is used for floating-point numbers or to approximate - integers which do not fit in the limits of their respective type. - - @sa @ref basic_json(const value_t value_type) -- create a JSON value with - the default value for a given type - - @since version 1.0.0 - */ - enum class value_t : uint8_t - { - null, ///< null value - object, ///< object (unordered set of name/value pairs) - array, ///< array (ordered collection of values) - string, ///< string value - boolean, ///< boolean value - number_integer, ///< number value (signed integer) - number_unsigned, ///< number value (unsigned integer) - number_float, ///< number value (floating-point) - discarded ///< discarded by the the parser callback function - }; - - private: /// helper for exception-safe object creation @@ -5910,47 +5910,6 @@ class basic_json /// @} - - ////////////////////////////////////////// - // lexicographical comparison operators // - ////////////////////////////////////////// - - /// @name lexicographical comparison operators - /// @{ - - private: - /*! - @brief comparison operator for JSON types - - Returns an ordering that is similar to Python: - - order: null < boolean < number < object < array < string - - furthermore, each type is not smaller than itself - - @since version 1.0.0 - */ - friend bool operator<(const value_t lhs, const value_t rhs) noexcept - { - static constexpr std::array<uint8_t, 8> order = {{ - 0, // null - 3, // object - 4, // array - 5, // string - 1, // boolean - 2, // integer - 2, // unsigned - 2, // float - } - }; - - // discarded values are not comparable - if (lhs == value_t::discarded or rhs == value_t::discarded) - { - return false; - } - - return order[static_cast<std::size_t>(lhs)] < order[static_cast<std::size_t>(rhs)]; - } - public: /*! @brief comparison: equal @@ -11814,6 +11773,43 @@ class basic_json /// @} }; +////////////////////////////////////////// +// lexicographical comparison operators // +////////////////////////////////////////// + +/// @name lexicographical comparison operators +/// @{ +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string +- furthermore, each type is not smaller than itself + +@since version 1.0.0 +*/ +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + static constexpr std::array<uint8_t, 8> order = {{ + 0, // null + 3, // object + 4, // array + 5, // string + 1, // boolean + 2, // integer + 2, // unsigned + 2, // float + }}; + + // discarded values are not comparable + if (lhs == value_t::discarded or rhs == value_t::discarded) + { + return false; + } + + return order[static_cast<std::size_t>(lhs)] < + order[static_cast<std::size_t>(rhs)]; +} ///////////// // presets // From c833b22b7b94e7cd4d5a24e8280ec9d8c0890097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 7 Jan 2017 16:57:52 +0100 Subject: [PATCH 058/130] move type_name outside of basic_json, make it a friend --- src/json.hpp | 43 +++++++++++++++++++++++-------------------- src/json.hpp.re2c | 43 +++++++++++++++++++++++-------------------- 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index cc397e399..3b00d80e2 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -181,6 +181,27 @@ using is_unscoped_enum = namespace detail { +template <typename Json> std::string type_name(Json const &j) +{ + switch (j.m_type) + { + case value_t::null: + return "null"; + case value_t::object: + return "object"; + case value_t::array: + return "array"; + case value_t::string: + return "string"; + case value_t::boolean: + return "boolean"; + case value_t::discarded: + return "discarded"; + default: + return "number"; + } +} + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -585,6 +606,7 @@ template < class basic_json { private: + template <typename Json> friend std::string detail::type_name(Json const &); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -8129,26 +8151,7 @@ class basic_json @since version 1.0.0 */ - std::string type_name() const - { - switch (m_type) - { - case value_t::null: - return "null"; - case value_t::object: - return "object"; - case value_t::array: - return "array"; - case value_t::string: - return "string"; - case value_t::boolean: - return "boolean"; - case value_t::discarded: - return "discarded"; - default: - return "number"; - } - } + std::string type_name() const { return detail::type_name(*this); } private: /*! diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 157146690..ed9075acb 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -181,6 +181,27 @@ using is_unscoped_enum = namespace detail { +template <typename Json> std::string type_name(Json const &j) +{ + switch (j.m_type) + { + case value_t::null: + return "null"; + case value_t::object: + return "object"; + case value_t::array: + return "array"; + case value_t::string: + return "string"; + case value_t::boolean: + return "boolean"; + case value_t::discarded: + return "discarded"; + default: + return "number"; + } +} + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -586,6 +607,7 @@ template < class basic_json { private: + template <typename Json> friend std::string detail::type_name(Json const &); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -8127,26 +8149,7 @@ class basic_json @since version 1.0.0 */ - std::string type_name() const - { - switch (m_type) - { - case value_t::null: - return "null"; - case value_t::object: - return "object"; - case value_t::array: - return "array"; - case value_t::string: - return "string"; - case value_t::boolean: - return "boolean"; - case value_t::discarded: - return "discarded"; - default: - return "number"; - } - } + std::string type_name() const { return detail::type_name(*this); } private: /*! From 6b89785fba1fb2387ce640121ed17866ceae79ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 7 Jan 2017 17:01:17 +0100 Subject: [PATCH 059/130] replace constructor by from/to_json: boolean_t --- src/json.hpp | 71 ++++++++++++++++++++++++++++------------------- src/json.hpp.re2c | 71 ++++++++++++++++++++++++++++------------------- 2 files changed, 86 insertions(+), 56 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 3b00d80e2..005566049 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -202,6 +202,21 @@ template <typename Json> std::string type_name(Json const &j) } } +// This is an experiment. I need this to move constructors out of basic_json. +// I'm sure there is a better way, but this might need a big basic_json refactoring +template <value_t> struct external_constructor; + +template <> +struct external_constructor<value_t::boolean> +{ + template <typename Json> + static void construct(Json &j, typename Json::boolean_t b) noexcept + { + j.m_type = value_t::boolean; + j.m_value = b; + j.assert_invariant(); + } +}; // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -340,9 +355,11 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { - static constexpr auto value = is_compatible_integer_type_impl < - std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, - CompatibleNumberIntegerType >::value; + static constexpr auto + value = is_compatible_integer_type_impl < + std::is_arithmetic<CompatibleNumberIntegerType>::value and + not std::is_same<bool, CompatibleNumberIntegerType>::value, + RealIntegerType, CompatibleNumberIntegerType > ::value; }; template <typename RealFloat, typename CompatibleFloat> @@ -360,7 +377,6 @@ struct is_compatible_basic_json_type is_unscoped_enum<T>::value or std::is_same<T, BasicJson>::value or std::is_constructible<typename BasicJson::string_t, T>::value or - std::is_same<typename BasicJson::boolean_t, T>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or is_compatible_float_type<typename BasicJson::number_float_t, T>::value or @@ -433,6 +449,22 @@ struct has_to_json void to_json(); void from_json(); +// overloads for basic_json template parameters + +template <typename Json> +void to_json(Json &j, typename Json::boolean_t b) noexcept +{ + external_constructor<value_t::boolean>::construct(j, b); +} + +template <typename Json> +void from_json(Json const& j, typename Json::boolean_t& b) +{ + if (!j.is_boolean()) + throw std::domain_error("type must be boolean, but is " + type_name(j)); + b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); +} + struct to_json_fn { // is it really useful to mark those as constexpr? @@ -606,6 +638,7 @@ template < class basic_json { private: + template <::nlohmann::value_t> friend struct detail::external_constructor; template <typename Json> friend std::string detail::type_name(Json const &); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, @@ -1731,26 +1764,6 @@ class basic_json assert_invariant(); } - /*! - @brief create a boolean (explicit) - - Creates a JSON boolean type from a given value. - - @param[in] val a boolean value to store - - @complexity Constant. - - @liveexample{The example below demonstrates boolean - values.,basic_json__boolean_t} - - @since version 1.0.0 - */ - basic_json(boolean_t val) noexcept - : m_type(value_t::boolean), m_value(val) - { - assert_invariant(); - } - /*! @brief create an integer number (explicit) @@ -3330,11 +3343,13 @@ class basic_json @since version 1.0.0 */ template <typename ValueType, - enable_if_t<not std::is_pointer<ValueType>::value, int> = 0> + enable_if_t<not std::is_pointer<ValueType>::value and + detail::is_compatible_basic_json_type< + uncvref_t<ValueType>, basic_json_t>::value, + int> = 0> auto get() const - -> decltype(this->get_impl(static_cast<ValueType*>(nullptr))) - { - return get_impl(static_cast<ValueType*>(nullptr)); + -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) { + return get_impl(static_cast<ValueType *>(nullptr)); } template < diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index ed9075acb..067ad1a6b 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -202,6 +202,21 @@ template <typename Json> std::string type_name(Json const &j) } } +// This is an experiment. I need this to move constructors out of basic_json. +// I'm sure there is a better way, but this might need a big basic_json refactoring +template <value_t> struct external_constructor; + +template <> +struct external_constructor<value_t::boolean> +{ + template <typename Json> + static void construct(Json &j, typename Json::boolean_t b) noexcept + { + j.m_type = value_t::boolean; + j.m_value = b; + j.assert_invariant(); + } +}; // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -340,9 +355,11 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { - static constexpr auto value = is_compatible_integer_type_impl < - std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, - CompatibleNumberIntegerType >::value; + static constexpr auto + value = is_compatible_integer_type_impl < + std::is_arithmetic<CompatibleNumberIntegerType>::value and + not std::is_same<bool, CompatibleNumberIntegerType>::value, + RealIntegerType, CompatibleNumberIntegerType > ::value; }; template <typename RealFloat, typename CompatibleFloat> @@ -360,7 +377,6 @@ struct is_compatible_basic_json_type is_unscoped_enum<T>::value or std::is_same<T, BasicJson>::value or std::is_constructible<typename BasicJson::string_t, T>::value or - std::is_same<typename BasicJson::boolean_t, T>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or is_compatible_float_type<typename BasicJson::number_float_t, T>::value or @@ -433,6 +449,22 @@ struct has_to_json void to_json(); void from_json(); +// overloads for basic_json template parameters + +template <typename Json> +void to_json(Json &j, typename Json::boolean_t b) noexcept +{ + external_constructor<value_t::boolean>::construct(j, b); +} + +template <typename Json> +void from_json(Json const& j, typename Json::boolean_t& b) +{ + if (!j.is_boolean()) + throw std::domain_error("type must be boolean, but is " + type_name(j)); + b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); +} + struct to_json_fn { // is it really useful to mark those as constexpr? @@ -607,6 +639,7 @@ template < class basic_json { private: + template <::nlohmann::value_t> friend struct detail::external_constructor; template <typename Json> friend std::string detail::type_name(Json const &); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, @@ -1732,26 +1765,6 @@ class basic_json assert_invariant(); } - /*! - @brief create a boolean (explicit) - - Creates a JSON boolean type from a given value. - - @param[in] val a boolean value to store - - @complexity Constant. - - @liveexample{The example below demonstrates boolean - values.,basic_json__boolean_t} - - @since version 1.0.0 - */ - basic_json(boolean_t val) noexcept - : m_type(value_t::boolean), m_value(val) - { - assert_invariant(); - } - /*! @brief create an integer number (explicit) @@ -3328,11 +3341,13 @@ class basic_json @since version 1.0.0 */ template <typename ValueType, - enable_if_t<not std::is_pointer<ValueType>::value, int> = 0> + enable_if_t<not std::is_pointer<ValueType>::value and + detail::is_compatible_basic_json_type< + uncvref_t<ValueType>, basic_json_t>::value, + int> = 0> auto get() const - -> decltype(this->get_impl(static_cast<ValueType*>(nullptr))) - { - return get_impl(static_cast<ValueType*>(nullptr)); + -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) { + return get_impl(static_cast<ValueType *>(nullptr)); } template < From bbe40641a3339a6590781e41ff7a327abecf67a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 7 Jan 2017 18:09:42 +0100 Subject: [PATCH 060/130] replace constructor by from/to_json: string_t --- src/json.hpp | 142 ++++++++++++++++------------------------------ src/json.hpp.re2c | 142 ++++++++++++++++------------------------------ 2 files changed, 100 insertions(+), 184 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 005566049..becbcbd20 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -217,6 +217,18 @@ struct external_constructor<value_t::boolean> j.assert_invariant(); } }; + +template <> +struct external_constructor<value_t::string> +{ + template <typename Json> + static void construct(Json &j, const typename Json::string_t& s) + { + j.m_type = value_t::string; + j.m_value = s; + j.assert_invariant(); + } +}; // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -328,12 +340,14 @@ struct is_compatible_array_type { // the check for CompatibleArrayType = void is done in // `is_compatible_object_type`, but we need the conjunction here as well - static auto constexpr value = is_compatible_array_type_impl < - conjunction<negation<is_compatible_object_type< - typename BasicJson::object_t, CompatibleArrayType>>, - has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value, - BasicJson, CompatibleArrayType >::value; + static auto constexpr value = is_compatible_array_type_impl< + conjunction<negation<is_compatible_object_type< + typename BasicJson::object_t, CompatibleArrayType>>, + negation<std::is_constructible<typename BasicJson::string_t, + CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value, + BasicJson, CompatibleArrayType>::value; }; template <bool, typename, typename> @@ -376,7 +390,6 @@ struct is_compatible_basic_json_type static auto constexpr value = is_unscoped_enum<T>::value or std::is_same<T, BasicJson>::value or - std::is_constructible<typename BasicJson::string_t, T>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or is_compatible_float_type<typename BasicJson::number_float_t, T>::value or @@ -457,6 +470,15 @@ void to_json(Json &j, typename Json::boolean_t b) noexcept external_constructor<value_t::boolean>::construct(j, b); } +template <typename Json, typename CompatibleString, + enable_if_t<std::is_constructible<typename Json::string_t, + CompatibleString>::value, + int> = 0> +void to_json(Json &j, const CompatibleString &s) +{ + external_constructor<value_t::string>::construct(j, s); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -465,6 +487,14 @@ void from_json(Json const& j, typename Json::boolean_t& b) b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); } +template <typename Json> +void from_json(Json const& j, typename Json::string_t& s) +{ + if (!j.is_string()) + throw std::domain_error("type must be string, but is " + type_name(j)); + s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>(); +} + struct to_json_fn { // is it really useful to mark those as constexpr? @@ -1680,90 +1710,6 @@ class basic_json JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } - /*! - @brief create a string (explicit) - - Create an string JSON value with a given content. - - @param[in] val a value for the string - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for string value fails - - @liveexample{The following code shows the constructor with an @ref - string_t parameter.,basic_json__string_t} - - @sa @ref basic_json(const typename string_t::value_type*) -- create a - string value from a character pointer - @sa @ref basic_json(const CompatibleStringType&) -- create a string value - from a compatible string container - - @since version 1.0.0 - */ - basic_json(const string_t& val) - : m_type(value_t::string), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create a string (explicit) - - Create a string JSON value with a given content. - - @param[in] val a literal value for the string - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for string value fails - - @liveexample{The following code shows the constructor with string literal - parameter.,basic_json__string_t_value_type} - - @sa @ref basic_json(const string_t&) -- create a string value - @sa @ref basic_json(const CompatibleStringType&) -- create a string value - from a compatible string container - - @since version 1.0.0 - */ - basic_json(const typename string_t::value_type* val) - : basic_json(string_t(val)) - { - assert_invariant(); - } - - /*! - @brief create a string (implicit) - - Create a string JSON value with a given content. - - @param[in] val a value for the string - - @tparam CompatibleStringType an string type which is compatible to @ref - string_t, for instance `std::string`. - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for string value fails - - @liveexample{The following code shows the construction of a string value - from a compatible type.,basic_json__CompatibleStringType} - - @sa @ref basic_json(const string_t&) -- create a string value - @sa @ref basic_json(const typename string_t::value_type*) -- create a - string value from a character pointer - - @since version 1.0.0 - */ - template<class CompatibleStringType, typename std::enable_if< - std::is_constructible<string_t, CompatibleStringType>::value, int>::type = 0> - basic_json(const CompatibleStringType& val) - : basic_json(string_t(val)) - { - assert_invariant(); - } - /*! @brief create an integer number (explicit) @@ -11505,9 +11451,21 @@ basic_json_parser_66: } private: + friend bool operator==(json_pointer const &lhs, + json_pointer const &rhs) noexcept + { + return lhs.reference_tokens == rhs.reference_tokens; + } + + friend bool operator!=(json_pointer const &lhs, + json_pointer const &rhs) noexcept + { + return !(lhs == rhs); + } + /// the reference tokens std::vector<std::string> reference_tokens {}; - }; + }; ////////////////////////// // JSON Pointer support // diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 067ad1a6b..0122e8b50 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -217,6 +217,18 @@ struct external_constructor<value_t::boolean> j.assert_invariant(); } }; + +template <> +struct external_constructor<value_t::string> +{ + template <typename Json> + static void construct(Json &j, const typename Json::string_t& s) + { + j.m_type = value_t::string; + j.m_value = s; + j.assert_invariant(); + } +}; // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -328,12 +340,14 @@ struct is_compatible_array_type { // the check for CompatibleArrayType = void is done in // `is_compatible_object_type`, but we need the conjunction here as well - static auto constexpr value = is_compatible_array_type_impl < - conjunction<negation<is_compatible_object_type< - typename BasicJson::object_t, CompatibleArrayType>>, - has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value, - BasicJson, CompatibleArrayType >::value; + static auto constexpr value = is_compatible_array_type_impl< + conjunction<negation<is_compatible_object_type< + typename BasicJson::object_t, CompatibleArrayType>>, + negation<std::is_constructible<typename BasicJson::string_t, + CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value, + BasicJson, CompatibleArrayType>::value; }; template <bool, typename, typename> @@ -376,7 +390,6 @@ struct is_compatible_basic_json_type static auto constexpr value = is_unscoped_enum<T>::value or std::is_same<T, BasicJson>::value or - std::is_constructible<typename BasicJson::string_t, T>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or is_compatible_float_type<typename BasicJson::number_float_t, T>::value or @@ -457,6 +470,15 @@ void to_json(Json &j, typename Json::boolean_t b) noexcept external_constructor<value_t::boolean>::construct(j, b); } +template <typename Json, typename CompatibleString, + enable_if_t<std::is_constructible<typename Json::string_t, + CompatibleString>::value, + int> = 0> +void to_json(Json &j, const CompatibleString &s) +{ + external_constructor<value_t::string>::construct(j, s); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -465,6 +487,14 @@ void from_json(Json const& j, typename Json::boolean_t& b) b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); } +template <typename Json> +void from_json(Json const& j, typename Json::string_t& s) +{ + if (!j.is_string()) + throw std::domain_error("type must be string, but is " + type_name(j)); + s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>(); +} + struct to_json_fn { // is it really useful to mark those as constexpr? @@ -1681,90 +1711,6 @@ class basic_json JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } - /*! - @brief create a string (explicit) - - Create an string JSON value with a given content. - - @param[in] val a value for the string - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for string value fails - - @liveexample{The following code shows the constructor with an @ref - string_t parameter.,basic_json__string_t} - - @sa @ref basic_json(const typename string_t::value_type*) -- create a - string value from a character pointer - @sa @ref basic_json(const CompatibleStringType&) -- create a string value - from a compatible string container - - @since version 1.0.0 - */ - basic_json(const string_t& val) - : m_type(value_t::string), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create a string (explicit) - - Create a string JSON value with a given content. - - @param[in] val a literal value for the string - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for string value fails - - @liveexample{The following code shows the constructor with string literal - parameter.,basic_json__string_t_value_type} - - @sa @ref basic_json(const string_t&) -- create a string value - @sa @ref basic_json(const CompatibleStringType&) -- create a string value - from a compatible string container - - @since version 1.0.0 - */ - basic_json(const typename string_t::value_type* val) - : basic_json(string_t(val)) - { - assert_invariant(); - } - - /*! - @brief create a string (implicit) - - Create a string JSON value with a given content. - - @param[in] val a value for the string - - @tparam CompatibleStringType an string type which is compatible to @ref - string_t, for instance `std::string`. - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for string value fails - - @liveexample{The following code shows the construction of a string value - from a compatible type.,basic_json__CompatibleStringType} - - @sa @ref basic_json(const string_t&) -- create a string value - @sa @ref basic_json(const typename string_t::value_type*) -- create a - string value from a character pointer - - @since version 1.0.0 - */ - template<class CompatibleStringType, typename std::enable_if< - std::is_constructible<string_t, CompatibleStringType>::value, int>::type = 0> - basic_json(const CompatibleStringType& val) - : basic_json(string_t(val)) - { - assert_invariant(); - } - /*! @brief create an integer number (explicit) @@ -11131,9 +11077,21 @@ class basic_json } private: + friend bool operator==(json_pointer const &lhs, + json_pointer const &rhs) noexcept + { + return lhs.reference_tokens == rhs.reference_tokens; + } + + friend bool operator!=(json_pointer const &lhs, + json_pointer const &rhs) noexcept + { + return !(lhs == rhs); + } + /// the reference tokens std::vector<std::string> reference_tokens {}; - }; + }; ////////////////////////// // JSON Pointer support // From d257149f36ecdaa07e3708bafc9a7cc6d3c77b4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 7 Jan 2017 19:21:47 +0100 Subject: [PATCH 061/130] replace constructor by from/to_json: number_float_t --- src/json.hpp | 163 ++++++++++++++++++++++++---------------------- src/json.hpp.re2c | 163 ++++++++++++++++++++++++---------------------- 2 files changed, 168 insertions(+), 158 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index becbcbd20..1e7f1c5a5 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -229,6 +229,25 @@ struct external_constructor<value_t::string> j.assert_invariant(); } }; + +template <> +struct external_constructor<value_t::number_float> +{ + template <typename Json> + static void construct(Json &j, typename Json::number_float_t val) noexcept + { + // replace infinity and NAN by null + if (not std::isfinite(val)) + j = Json{}; + else + { + j.m_type = value_t::number_float; + j.m_value = val; + } + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -392,7 +411,6 @@ struct is_compatible_basic_json_type std::is_same<T, BasicJson>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or - is_compatible_float_type<typename BasicJson::number_float_t, T>::value or is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or is_compatible_integer_type<typename BasicJson::number_unsigned_t, T>::value; @@ -457,6 +475,8 @@ struct has_to_json detect(std::declval<JSONSerializer<T, void>>()))>::value; }; +template <typename Json, typename > + // those declarations are needed to workaround a MSVC bug related to ADL // (taken from MSVC-Ranges implementation) void to_json(); @@ -464,6 +484,23 @@ void from_json(); // overloads for basic_json template parameters +template <typename Json, typename ArithmeticType, + enable_if_t<std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, + typename Json::boolean_t>::value, + int> = 0> +void get_arithmetic_value(Json const &j, ArithmeticType &val) +{ + if (j.is_number_integer()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>(); + else if (j.is_number_unsigned()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>(); + else if (j.is_number_float()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>(); + else + throw std::domain_error("type must be number, but is " + type_name(j)); +} + template <typename Json> void to_json(Json &j, typename Json::boolean_t b) noexcept { @@ -479,6 +516,16 @@ void to_json(Json &j, const CompatibleString &s) external_constructor<value_t::string>::construct(j, s); } +template < + typename Json, typename CompatibleNumberFloatType, + enable_if_t<is_compatible_float_type<typename Json::number_float_t, + CompatibleNumberFloatType>::value, + int> = 0> +void to_json(Json &j, CompatibleNumberFloatType val) noexcept +{ + external_constructor<value_t::number_float>::construct(j, val); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -495,6 +542,42 @@ void from_json(Json const& j, typename Json::string_t& s) s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>(); } +template <typename Json> +void from_json(Json const& j, typename Json::number_float_t& val) +{ + get_arithmetic_value(j, val); +} + +// overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) +// +// note: Is it really necessary to provide explicit overloads for boolean_t etc.. +// in case of a custom BooleanType which is not an arithmetic type? +template < + typename Json, typename ArithmeticType, + enable_if_t< + std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, + typename Json::number_unsigned_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_integer_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_float_t>::value and + not std::is_same<ArithmeticType, typename Json::boolean_t>::value, + int> = 0> +void from_json(Json const &j, ArithmeticType &val) +{ + if (j.is_number_integer()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>(); + else if (j.is_number_unsigned()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>(); + else if (j.is_number_float()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>(); + else if (j.is_boolean()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); + else + throw std::domain_error("type must be number, but is " + type_name(j)); +} + struct to_json_fn { // is it really useful to mark those as constexpr? @@ -1872,84 +1955,6 @@ class basic_json assert_invariant(); } - /*! - @brief create a floating-point number (explicit) - - Create a floating-point number JSON value with a given content. - - @param[in] val a floating-point value to create a JSON number from - - @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6 - disallows NaN values: - > Numeric values that cannot be represented in the grammar below (such as - > Infinity and NaN) are not permitted. - In case the parameter @a val is not a number, a JSON null value is created - instead. - - @complexity Constant. - - @liveexample{The following example creates several floating-point - values.,basic_json__number_float_t} - - @sa @ref basic_json(const CompatibleNumberFloatType) -- create a number - value (floating-point) from a compatible number type - - @since version 1.0.0 - */ - basic_json(const number_float_t val) noexcept - : m_type(value_t::number_float), m_value(val) - { - // replace infinity and NAN by null - if (not std::isfinite(val)) - { - m_type = value_t::null; - m_value = json_value(); - } - - assert_invariant(); - } - - /*! - @brief create an floating-point number (implicit) - - Create an floating-point number JSON value with a given content. This - constructor allows any type @a CompatibleNumberFloatType that can be used - to construct values of type @ref number_float_t. - - @tparam CompatibleNumberFloatType A floating-point type which is - compatible to @ref number_float_t. Examples may include the types `float` - or `double`. - - @param[in] val a floating-point to create a JSON number from - - @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6 - disallows NaN values: - > Numeric values that cannot be represented in the grammar below (such as - > Infinity and NaN) are not permitted. - In case the parameter @a val is not a number, a JSON null value is - created instead. - - @complexity Constant. - - @liveexample{The example below shows the construction of several - floating-point number values from compatible - types.,basic_json__CompatibleNumberFloatType} - - @sa @ref basic_json(const number_float_t) -- create a number value - (floating-point) - - @since version 1.0.0 - */ - template <typename CompatibleNumberFloatType, - enable_if_t<detail::is_compatible_float_type< - number_float_t, CompatibleNumberFloatType>::value, - int> = 0> - basic_json(const CompatibleNumberFloatType val) noexcept - : basic_json(number_float_t(val)) - { - assert_invariant(); - } - /*! @brief create a container (array or object) from an initializer list diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 0122e8b50..74697ab26 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -229,6 +229,25 @@ struct external_constructor<value_t::string> j.assert_invariant(); } }; + +template <> +struct external_constructor<value_t::number_float> +{ + template <typename Json> + static void construct(Json &j, typename Json::number_float_t val) noexcept + { + // replace infinity and NAN by null + if (not std::isfinite(val)) + j = Json{}; + else + { + j.m_type = value_t::number_float; + j.m_value = val; + } + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -392,7 +411,6 @@ struct is_compatible_basic_json_type std::is_same<T, BasicJson>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or - is_compatible_float_type<typename BasicJson::number_float_t, T>::value or is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or is_compatible_integer_type<typename BasicJson::number_unsigned_t, T>::value; @@ -457,6 +475,8 @@ struct has_to_json detect(std::declval<JSONSerializer<T, void>>()))>::value; }; +template <typename Json, typename > + // those declarations are needed to workaround a MSVC bug related to ADL // (taken from MSVC-Ranges implementation) void to_json(); @@ -464,6 +484,23 @@ void from_json(); // overloads for basic_json template parameters +template <typename Json, typename ArithmeticType, + enable_if_t<std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, + typename Json::boolean_t>::value, + int> = 0> +void get_arithmetic_value(Json const &j, ArithmeticType &val) +{ + if (j.is_number_integer()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>(); + else if (j.is_number_unsigned()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>(); + else if (j.is_number_float()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>(); + else + throw std::domain_error("type must be number, but is " + type_name(j)); +} + template <typename Json> void to_json(Json &j, typename Json::boolean_t b) noexcept { @@ -479,6 +516,16 @@ void to_json(Json &j, const CompatibleString &s) external_constructor<value_t::string>::construct(j, s); } +template < + typename Json, typename CompatibleNumberFloatType, + enable_if_t<is_compatible_float_type<typename Json::number_float_t, + CompatibleNumberFloatType>::value, + int> = 0> +void to_json(Json &j, CompatibleNumberFloatType val) noexcept +{ + external_constructor<value_t::number_float>::construct(j, val); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -495,6 +542,42 @@ void from_json(Json const& j, typename Json::string_t& s) s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>(); } +template <typename Json> +void from_json(Json const& j, typename Json::number_float_t& val) +{ + get_arithmetic_value(j, val); +} + +// overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) +// +// note: Is it really necessary to provide explicit overloads for boolean_t etc.. +// in case of a custom BooleanType which is not an arithmetic type? +template < + typename Json, typename ArithmeticType, + enable_if_t< + std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, + typename Json::number_unsigned_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_integer_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_float_t>::value and + not std::is_same<ArithmeticType, typename Json::boolean_t>::value, + int> = 0> +void from_json(Json const &j, ArithmeticType &val) +{ + if (j.is_number_integer()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>(); + else if (j.is_number_unsigned()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>(); + else if (j.is_number_float()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>(); + else if (j.is_boolean()) + val = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); + else + throw std::domain_error("type must be number, but is " + type_name(j)); +} + struct to_json_fn { // is it really useful to mark those as constexpr? @@ -1873,84 +1956,6 @@ class basic_json assert_invariant(); } - /*! - @brief create a floating-point number (explicit) - - Create a floating-point number JSON value with a given content. - - @param[in] val a floating-point value to create a JSON number from - - @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6 - disallows NaN values: - > Numeric values that cannot be represented in the grammar below (such as - > Infinity and NaN) are not permitted. - In case the parameter @a val is not a number, a JSON null value is created - instead. - - @complexity Constant. - - @liveexample{The following example creates several floating-point - values.,basic_json__number_float_t} - - @sa @ref basic_json(const CompatibleNumberFloatType) -- create a number - value (floating-point) from a compatible number type - - @since version 1.0.0 - */ - basic_json(const number_float_t val) noexcept - : m_type(value_t::number_float), m_value(val) - { - // replace infinity and NAN by null - if (not std::isfinite(val)) - { - m_type = value_t::null; - m_value = json_value(); - } - - assert_invariant(); - } - - /*! - @brief create an floating-point number (implicit) - - Create an floating-point number JSON value with a given content. This - constructor allows any type @a CompatibleNumberFloatType that can be used - to construct values of type @ref number_float_t. - - @tparam CompatibleNumberFloatType A floating-point type which is - compatible to @ref number_float_t. Examples may include the types `float` - or `double`. - - @param[in] val a floating-point to create a JSON number from - - @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6 - disallows NaN values: - > Numeric values that cannot be represented in the grammar below (such as - > Infinity and NaN) are not permitted. - In case the parameter @a val is not a number, a JSON null value is - created instead. - - @complexity Constant. - - @liveexample{The example below shows the construction of several - floating-point number values from compatible - types.,basic_json__CompatibleNumberFloatType} - - @sa @ref basic_json(const number_float_t) -- create a number value - (floating-point) - - @since version 1.0.0 - */ - template <typename CompatibleNumberFloatType, - enable_if_t<detail::is_compatible_float_type< - number_float_t, CompatibleNumberFloatType>::value, - int> = 0> - basic_json(const CompatibleNumberFloatType val) noexcept - : basic_json(number_float_t(val)) - { - assert_invariant(); - } - /*! @brief create a container (array or object) from an initializer list From a32de3b528e9b196ec503a3afecfcc0159f5f413 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 12:44:23 +0100 Subject: [PATCH 062/130] replace constructor by from/to_json: number_unsigned_t This commit forces a design change in custom JSONSerializer, which might be temporary --- src/json.hpp | 91 ++++++++++++++----------------------------- src/json.hpp.re2c | 91 ++++++++++++++----------------------------- test/src/unit-udt.cpp | 19 ++++++--- 3 files changed, 73 insertions(+), 128 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 1e7f1c5a5..f34648940 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -248,6 +248,18 @@ struct external_constructor<value_t::number_float> } }; +template <> +struct external_constructor<value_t::number_unsigned> +{ + template <typename Json> + static void construct(Json &j, typename Json::number_unsigned_t val) noexcept + { + j.m_type = value_t::number_unsigned; + j.m_value = val; + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -411,9 +423,7 @@ struct is_compatible_basic_json_type std::is_same<T, BasicJson>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_unsigned_t, - T>::value; + is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value; }; template <typename T, typename BasicJson, typename PrimitiveIterator> @@ -526,6 +536,17 @@ void to_json(Json &j, CompatibleNumberFloatType val) noexcept external_constructor<value_t::number_float>::construct(j, val); } + +template < + typename Json, typename CompatibleNumberUnsignedType, + enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t, + CompatibleNumberUnsignedType>::value, + int> = 0> +void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept +{ + external_constructor<value_t::number_unsigned>::construct(j, val); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -548,6 +569,12 @@ void from_json(Json const& j, typename Json::number_float_t& val) get_arithmetic_value(j, val); } +template <typename Json> +void from_json(Json const& j, typename Json::number_unsigned_t& val) +{ + get_arithmetic_value(j, val); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1897,64 +1924,6 @@ class basic_json assert_invariant(); } - /*! - @brief create an unsigned integer number (explicit) - - Create an unsigned integer number JSON value with a given content. - - @tparam T helper type to compare number_unsigned_t and unsigned int (not - visible in) the interface. - - @param[in] val an integer to create a JSON number from - - @complexity Constant. - - @sa @ref basic_json(const CompatibleNumberUnsignedType) -- create a number - value (unsigned integer) from a compatible number type - - @since version 2.0.0 - */ - template<typename T, typename std::enable_if< - not (std::is_same<T, int>::value) and - std::is_same<T, number_unsigned_t>::value, int>::type = 0> - basic_json(const number_unsigned_t val) noexcept - : m_type(value_t::number_unsigned), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create an unsigned number (implicit) - - Create an unsigned number JSON value with a given content. This - constructor allows any type @a CompatibleNumberUnsignedType that can be - used to construct values of type @ref number_unsigned_t. - - @tparam CompatibleNumberUnsignedType An integer type which is compatible - to @ref number_unsigned_t. Examples may include the types `unsigned int`, - `uint32_t`, or `unsigned short`. - - @param[in] val an unsigned integer to create a JSON number from - - @complexity Constant. - - @sa @ref basic_json(const number_unsigned_t) -- create a number value - (unsigned) - - @since version 2.0.0 - */ - template < - typename CompatibleNumberUnsignedType, - enable_if_t<detail::is_compatible_integer_type< - number_unsigned_t, CompatibleNumberUnsignedType>::value, - int> = 0 > - basic_json(const CompatibleNumberUnsignedType val) noexcept - : m_type(value_t::number_unsigned), - m_value(static_cast<number_unsigned_t>(val)) - { - assert_invariant(); - } - /*! @brief create a container (array or object) from an initializer list diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 74697ab26..a7841f6f0 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -248,6 +248,18 @@ struct external_constructor<value_t::number_float> } }; +template <> +struct external_constructor<value_t::number_unsigned> +{ + template <typename Json> + static void construct(Json &j, typename Json::number_unsigned_t val) noexcept + { + j.m_type = value_t::number_unsigned; + j.m_value = val; + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -411,9 +423,7 @@ struct is_compatible_basic_json_type std::is_same<T, BasicJson>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_unsigned_t, - T>::value; + is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value; }; template <typename T, typename BasicJson, typename PrimitiveIterator> @@ -526,6 +536,17 @@ void to_json(Json &j, CompatibleNumberFloatType val) noexcept external_constructor<value_t::number_float>::construct(j, val); } + +template < + typename Json, typename CompatibleNumberUnsignedType, + enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t, + CompatibleNumberUnsignedType>::value, + int> = 0> +void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept +{ + external_constructor<value_t::number_unsigned>::construct(j, val); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -548,6 +569,12 @@ void from_json(Json const& j, typename Json::number_float_t& val) get_arithmetic_value(j, val); } +template <typename Json> +void from_json(Json const& j, typename Json::number_unsigned_t& val) +{ + get_arithmetic_value(j, val); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1898,64 +1925,6 @@ class basic_json assert_invariant(); } - /*! - @brief create an unsigned integer number (explicit) - - Create an unsigned integer number JSON value with a given content. - - @tparam T helper type to compare number_unsigned_t and unsigned int (not - visible in) the interface. - - @param[in] val an integer to create a JSON number from - - @complexity Constant. - - @sa @ref basic_json(const CompatibleNumberUnsignedType) -- create a number - value (unsigned integer) from a compatible number type - - @since version 2.0.0 - */ - template<typename T, typename std::enable_if< - not (std::is_same<T, int>::value) and - std::is_same<T, number_unsigned_t>::value, int>::type = 0> - basic_json(const number_unsigned_t val) noexcept - : m_type(value_t::number_unsigned), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create an unsigned number (implicit) - - Create an unsigned number JSON value with a given content. This - constructor allows any type @a CompatibleNumberUnsignedType that can be - used to construct values of type @ref number_unsigned_t. - - @tparam CompatibleNumberUnsignedType An integer type which is compatible - to @ref number_unsigned_t. Examples may include the types `unsigned int`, - `uint32_t`, or `unsigned short`. - - @param[in] val an unsigned integer to create a JSON number from - - @complexity Constant. - - @sa @ref basic_json(const number_unsigned_t) -- create a number value - (unsigned) - - @since version 2.0.0 - */ - template < - typename CompatibleNumberUnsignedType, - enable_if_t<detail::is_compatible_integer_type< - number_unsigned_t, CompatibleNumberUnsignedType>::value, - int> = 0 > - basic_json(const CompatibleNumberUnsignedType val) noexcept - : m_type(value_t::number_unsigned), - m_value(static_cast<number_unsigned_t>(val)) - { - assert_invariant(); - } - /*! @brief create a container (array or object) from an initializer list diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 0cd834d6c..382b0ed54 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -483,13 +483,20 @@ TEST_CASE("Non-copyable types", "[udt]") template <typename T, typename = typename std::enable_if<std::is_pod<T>::value>::type> struct pod_serializer { - // I could forward-declare this struct, and add a basic_json alias template <typename Json> static void from_json(Json const& j , T& t) { - auto value = j.template get<std::uint64_t>(); - auto bytes = static_cast<char*>(static_cast<void*>(&value)); - std::memcpy(&t, bytes, sizeof(value)); + std::uint64_t value; + // Why cannot we simply use: j.get<std::uint64_t>() ? + // Well, with the current experiment, the get method looks for a from_json function, which we are currently defining! + // This would end up in a stack overflow. Calling nlohmann::from_json is a workaround. + // I shall find a good way to avoid this once all constructors are converted to free methods + // + // In short, constructing a json by constructor calls to_json + // calling get calls from_json, for now, we cannot do this in custom serializers + nlohmann::from_json(j, value); + auto bytes = static_cast<char *>(static_cast<void *>(&value)); + std::memcpy(&t, bytes, sizeof(value)); } template <typename Json> @@ -501,8 +508,8 @@ struct pod_serializer { value |= bytes[i] << 8 * i; } - - j = value; + // same thing here + nlohmann::to_json(j, value); } }; From f00898331e548e864b6d37f70c5470a841fe6cca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 14:06:25 +0100 Subject: [PATCH 063/130] replace constructor by from/to_json: number_integer_t --- src/json.hpp | 129 +++++++++++----------------------------------- src/json.hpp.re2c | 129 +++++++++++----------------------------------- 2 files changed, 62 insertions(+), 196 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index f34648940..9f8f3145c 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -260,6 +260,18 @@ struct external_constructor<value_t::number_unsigned> } }; +template <> +struct external_constructor<value_t::number_integer> +{ + template <typename Json> + static void construct(Json &j, typename Json::number_integer_t val) noexcept + { + j.m_type = value_t::number_integer; + j.m_value = val; + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -387,6 +399,7 @@ struct is_compatible_integer_type_impl : std::false_type {}; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> { + // is there an assert somewhere on overflows? using RealLimits = std::numeric_limits<RealIntegerType>; using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>; @@ -402,7 +415,7 @@ struct is_compatible_integer_type { static constexpr auto value = is_compatible_integer_type_impl < - std::is_arithmetic<CompatibleNumberIntegerType>::value and + std::is_integral<CompatibleNumberIntegerType>::value and not std::is_same<bool, CompatibleNumberIntegerType>::value, RealIntegerType, CompatibleNumberIntegerType > ::value; }; @@ -422,8 +435,7 @@ struct is_compatible_basic_json_type is_unscoped_enum<T>::value or std::is_same<T, BasicJson>::value or is_compatible_array_type<BasicJson, T>::value or - is_compatible_object_type<typename BasicJson::object_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value; + is_compatible_object_type<typename BasicJson::object_t, T>::value; }; template <typename T, typename BasicJson, typename PrimitiveIterator> @@ -547,6 +559,16 @@ void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept external_constructor<value_t::number_unsigned>::construct(j, val); } +template < + typename Json, typename CompatibleNumberIntegerType, + enable_if_t<is_compatible_integer_type<typename Json::number_integer_t, + CompatibleNumberIntegerType>::value, + int> = 0> +void to_json(Json &j, CompatibleNumberIntegerType val) noexcept +{ + external_constructor<value_t::number_integer>::construct(j, val); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -575,6 +597,12 @@ void from_json(Json const& j, typename Json::number_unsigned_t& val) get_arithmetic_value(j, val); } +template <typename Json> +void from_json(Json const& j, typename Json::number_integer_t& val) +{ + get_arithmetic_value(j, val); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1820,64 +1848,6 @@ class basic_json JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } - /*! - @brief create an integer number (explicit) - - Create an integer number JSON value with a given content. - - @tparam T A helper type to remove this function via SFINAE in case @ref - number_integer_t is the same as `int`. In this case, this constructor - would have the same signature as @ref basic_json(const int value). Note - the helper type @a T is not visible in this constructor's interface. - - @param[in] val an integer to create a JSON number from - - @complexity Constant. - - @liveexample{The example below shows the construction of an integer - number value.,basic_json__number_integer_t} - - @sa @ref basic_json(const int) -- create a number value (integer) - @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number - value (integer) from a compatible number type - - @since version 1.0.0 - */ - template<typename T, typename std::enable_if< - not (std::is_same<T, int>::value) and - std::is_same<T, number_integer_t>::value, int>::type = 0> - basic_json(const number_integer_t val) noexcept - : m_type(value_t::number_integer), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create an integer number from an enum type (explicit) - - Create an integer number JSON value with a given content. - - @param[in] val an integer to create a JSON number from - - @note This constructor allows to pass enums directly to a constructor. As - C++ has no way of specifying the type of an anonymous enum explicitly, we - can only rely on the fact that such values implicitly convert to int. As - int may already be the same type of number_integer_t, we may need to - switch off the constructor @ref basic_json(const number_integer_t). - - @complexity Constant. - - @liveexample{The example below shows the construction of an integer - number value from an anonymous enum.,basic_json__const_int} - - @sa @ref basic_json(const number_integer_t) -- create a number value - (integer) - @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number - value (integer) from a compatible number type - - @since version 1.0.0 - */ - // Constructor for unscoped enums (not enum classes) template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0> basic_json(T val) noexcept @@ -1887,43 +1857,6 @@ class basic_json assert_invariant(); } - /*! - @brief create an integer number (implicit) - - Create an integer number JSON value with a given content. This constructor - allows any type @a CompatibleNumberIntegerType that can be used to - construct values of type @ref number_integer_t. - - @tparam CompatibleNumberIntegerType An integer type which is compatible to - @ref number_integer_t. Examples include the types `int`, `int32_t`, - `long`, and `short`. - - @param[in] val an integer to create a JSON number from - - @complexity Constant. - - @liveexample{The example below shows the construction of several integer - number values from compatible - types.,basic_json__CompatibleIntegerNumberType} - - @sa @ref basic_json(const number_integer_t) -- create a number value - (integer) - @sa @ref basic_json(const int) -- create a number value (integer) - - @since version 1.0.0 - */ - template < - typename CompatibleNumberIntegerType, - enable_if_t<detail::is_compatible_integer_type< - number_integer_t, CompatibleNumberIntegerType>::value, - int> = 0 > - basic_json(const CompatibleNumberIntegerType val) noexcept - : m_type(value_t::number_integer), - m_value(static_cast<number_integer_t>(val)) - { - assert_invariant(); - } - /*! @brief create a container (array or object) from an initializer list diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index a7841f6f0..909ce90dc 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -260,6 +260,18 @@ struct external_constructor<value_t::number_unsigned> } }; +template <> +struct external_constructor<value_t::number_integer> +{ + template <typename Json> + static void construct(Json &j, typename Json::number_integer_t val) noexcept + { + j.m_type = value_t::number_integer; + j.m_value = val; + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -387,6 +399,7 @@ struct is_compatible_integer_type_impl : std::false_type {}; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> { + // is there an assert somewhere on overflows? using RealLimits = std::numeric_limits<RealIntegerType>; using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>; @@ -402,7 +415,7 @@ struct is_compatible_integer_type { static constexpr auto value = is_compatible_integer_type_impl < - std::is_arithmetic<CompatibleNumberIntegerType>::value and + std::is_integral<CompatibleNumberIntegerType>::value and not std::is_same<bool, CompatibleNumberIntegerType>::value, RealIntegerType, CompatibleNumberIntegerType > ::value; }; @@ -422,8 +435,7 @@ struct is_compatible_basic_json_type is_unscoped_enum<T>::value or std::is_same<T, BasicJson>::value or is_compatible_array_type<BasicJson, T>::value or - is_compatible_object_type<typename BasicJson::object_t, T>::value or - is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value; + is_compatible_object_type<typename BasicJson::object_t, T>::value; }; template <typename T, typename BasicJson, typename PrimitiveIterator> @@ -547,6 +559,16 @@ void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept external_constructor<value_t::number_unsigned>::construct(j, val); } +template < + typename Json, typename CompatibleNumberIntegerType, + enable_if_t<is_compatible_integer_type<typename Json::number_integer_t, + CompatibleNumberIntegerType>::value, + int> = 0> +void to_json(Json &j, CompatibleNumberIntegerType val) noexcept +{ + external_constructor<value_t::number_integer>::construct(j, val); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -575,6 +597,12 @@ void from_json(Json const& j, typename Json::number_unsigned_t& val) get_arithmetic_value(j, val); } +template <typename Json> +void from_json(Json const& j, typename Json::number_integer_t& val) +{ + get_arithmetic_value(j, val); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1821,64 +1849,6 @@ class basic_json JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } - /*! - @brief create an integer number (explicit) - - Create an integer number JSON value with a given content. - - @tparam T A helper type to remove this function via SFINAE in case @ref - number_integer_t is the same as `int`. In this case, this constructor - would have the same signature as @ref basic_json(const int value). Note - the helper type @a T is not visible in this constructor's interface. - - @param[in] val an integer to create a JSON number from - - @complexity Constant. - - @liveexample{The example below shows the construction of an integer - number value.,basic_json__number_integer_t} - - @sa @ref basic_json(const int) -- create a number value (integer) - @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number - value (integer) from a compatible number type - - @since version 1.0.0 - */ - template<typename T, typename std::enable_if< - not (std::is_same<T, int>::value) and - std::is_same<T, number_integer_t>::value, int>::type = 0> - basic_json(const number_integer_t val) noexcept - : m_type(value_t::number_integer), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create an integer number from an enum type (explicit) - - Create an integer number JSON value with a given content. - - @param[in] val an integer to create a JSON number from - - @note This constructor allows to pass enums directly to a constructor. As - C++ has no way of specifying the type of an anonymous enum explicitly, we - can only rely on the fact that such values implicitly convert to int. As - int may already be the same type of number_integer_t, we may need to - switch off the constructor @ref basic_json(const number_integer_t). - - @complexity Constant. - - @liveexample{The example below shows the construction of an integer - number value from an anonymous enum.,basic_json__const_int} - - @sa @ref basic_json(const number_integer_t) -- create a number value - (integer) - @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number - value (integer) from a compatible number type - - @since version 1.0.0 - */ - // Constructor for unscoped enums (not enum classes) template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0> basic_json(T val) noexcept @@ -1888,43 +1858,6 @@ class basic_json assert_invariant(); } - /*! - @brief create an integer number (implicit) - - Create an integer number JSON value with a given content. This constructor - allows any type @a CompatibleNumberIntegerType that can be used to - construct values of type @ref number_integer_t. - - @tparam CompatibleNumberIntegerType An integer type which is compatible to - @ref number_integer_t. Examples include the types `int`, `int32_t`, - `long`, and `short`. - - @param[in] val an integer to create a JSON number from - - @complexity Constant. - - @liveexample{The example below shows the construction of several integer - number values from compatible - types.,basic_json__CompatibleIntegerNumberType} - - @sa @ref basic_json(const number_integer_t) -- create a number value - (integer) - @sa @ref basic_json(const int) -- create a number value (integer) - - @since version 1.0.0 - */ - template < - typename CompatibleNumberIntegerType, - enable_if_t<detail::is_compatible_integer_type< - number_integer_t, CompatibleNumberIntegerType>::value, - int> = 0 > - basic_json(const CompatibleNumberIntegerType val) noexcept - : m_type(value_t::number_integer), - m_value(static_cast<number_integer_t>(val)) - { - assert_invariant(); - } - /*! @brief create a container (array or object) from an initializer list From 6d427acdde352db6b48630fddd6d5e3d4bd542dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 14:07:10 +0100 Subject: [PATCH 064/130] replace constructor by from/to_json: unscoped enum types this also means that one can do: j.get<unscoped_enum>(); --- src/json.hpp | 26 ++++++++++++++++---------- src/json.hpp.re2c | 26 ++++++++++++++++---------- test/src/unit-regression.cpp | 10 +++++++++- 3 files changed, 41 insertions(+), 21 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 9f8f3145c..74e6338fa 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -432,7 +432,6 @@ template <typename T, typename BasicJson> struct is_compatible_basic_json_type { static auto constexpr value = - is_unscoped_enum<T>::value or std::is_same<T, BasicJson>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value; @@ -569,6 +568,13 @@ void to_json(Json &j, CompatibleNumberIntegerType val) noexcept external_constructor<value_t::number_integer>::construct(j, val); } +template <typename Json, typename UnscopedEnumType, + enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> +void to_json(Json &j, UnscopedEnumType e) +{ + external_constructor<value_t::number_integer>::construct(j, e); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -603,6 +609,15 @@ void from_json(Json const& j, typename Json::number_integer_t& val) get_arithmetic_value(j, val); } +template <typename Json, typename UnscopedEnumType, + enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> +void from_json(Json const &j, UnscopedEnumType& e) +{ + typename std::underlying_type<UnscopedEnumType>::type val = e; + get_arithmetic_value(j, val); + e = static_cast<UnscopedEnumType>(val); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1848,15 +1863,6 @@ class basic_json JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } - // Constructor for unscoped enums (not enum classes) - template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0> - basic_json(T val) noexcept - : m_type(value_t::number_integer), - m_value(static_cast<number_integer_t>(val)) - { - assert_invariant(); - } - /*! @brief create a container (array or object) from an initializer list diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 909ce90dc..c4182652a 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -432,7 +432,6 @@ template <typename T, typename BasicJson> struct is_compatible_basic_json_type { static auto constexpr value = - is_unscoped_enum<T>::value or std::is_same<T, BasicJson>::value or is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value; @@ -569,6 +568,13 @@ void to_json(Json &j, CompatibleNumberIntegerType val) noexcept external_constructor<value_t::number_integer>::construct(j, val); } +template <typename Json, typename UnscopedEnumType, + enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> +void to_json(Json &j, UnscopedEnumType e) +{ + external_constructor<value_t::number_integer>::construct(j, e); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -603,6 +609,15 @@ void from_json(Json const& j, typename Json::number_integer_t& val) get_arithmetic_value(j, val); } +template <typename Json, typename UnscopedEnumType, + enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> +void from_json(Json const &j, UnscopedEnumType& e) +{ + typename std::underlying_type<UnscopedEnumType>::type val = e; + get_arithmetic_value(j, val); + e = static_cast<UnscopedEnumType>(val); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1849,15 +1864,6 @@ class basic_json JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } - // Constructor for unscoped enums (not enum classes) - template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0> - basic_json(T val) noexcept - : m_type(value_t::number_integer), - m_value(static_cast<number_integer_t>(val)) - { - assert_invariant(); - } - /*! @brief create a container (array or object) from an initializer list diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp index 7cb9169f2..07055bc17 100644 --- a/test/src/unit-regression.cpp +++ b/test/src/unit-regression.cpp @@ -63,10 +63,18 @@ TEST_CASE("regression tests") SECTION("pull request #71 - handle enum type") { - enum { t = 0 }; + enum { t = 0 , u = 1}; json j = json::array(); j.push_back(t); + // maybe this is not the place to test this? + json j2 = u; + + auto anon_enum_value = j2.get<decltype(u)>(); + CHECK(u == anon_enum_value); + + static_assert(std::is_same<decltype(anon_enum_value), decltype(u)>::value, ""); + j.push_back(json::object( { {"game_type", t} From c847e0eea2667d78936bc032884657911b028003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 16:17:47 +0100 Subject: [PATCH 065/130] replace constructor by from/to_json: array_t - tweaked a bit how `get<container<json>>` is handled - added a from_json overload for forward list --- src/json.hpp | 196 ++++++++++++++++++++-------------- src/json.hpp.re2c | 196 ++++++++++++++++++++-------------- test/src/unit-conversions.cpp | 2 + test/src/unit-udt.cpp | 26 ++--- 4 files changed, 249 insertions(+), 171 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 74e6338fa..a7be5c819 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -39,6 +39,7 @@ SOFTWARE. #include <cstdint> // int64_t, uint64_t #include <cstdlib> // strtod, strtof, strtold, strtoul #include <cstring> // strlen +#include <forward_list> // forward_list #include <functional> // function, hash, less #include <initializer_list> // initializer_list #include <iomanip> // setw @@ -272,6 +273,32 @@ struct external_constructor<value_t::number_integer> } }; +template <> +struct external_constructor<value_t::array> +{ + template <typename Json> + static void construct(Json &j, const typename Json::array_t& arr) + { + j.m_type = value_t::array; + j.m_value = arr; + j.assert_invariant(); + } + + template <typename Json, typename CompatibleArrayType, + enable_if_t<not std::is_same<CompatibleArrayType, + typename Json::array_t>::value, + int> = 0> + static void construct(Json &j, const CompatibleArrayType &arr) + { + using std::begin; + using std::end; + j.m_type = value_t::array; + j.m_value.array = + j.template create<typename Json::array_t>(begin(arr), end(arr)); + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -432,8 +459,6 @@ template <typename T, typename BasicJson> struct is_compatible_basic_json_type { static auto constexpr value = - std::is_same<T, BasicJson>::value or - is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value; }; @@ -575,6 +600,17 @@ void to_json(Json &j, UnscopedEnumType e) external_constructor<value_t::number_integer>::construct(j, e); } +template < + typename Json, typename CompatibleArrayType, + enable_if_t< + is_compatible_array_type<Json, CompatibleArrayType>::value or + std::is_same<typename Json::array_t, CompatibleArrayType>::value, + int> = 0> +void to_json(Json &j, CompatibleArrayType const &arr) +{ + external_constructor<value_t::array>::construct(j, arr); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -618,6 +654,59 @@ void from_json(Json const &j, UnscopedEnumType& e) e = static_cast<UnscopedEnumType>(val); } +template <typename Json> +void from_json(Json const &j, typename Json::array_t &arr) +{ + if (!j.is_array()) + throw std::domain_error("type must be array, but is " + type_name(j)); + arr = *const_cast<Json&>(j).template get_ptr<typename Json::array_t*>(); +} + +// forward_list doesn't have an insert method, TODO find a way to avoid including forward_list +template <typename Json, typename T, typename Allocator> +void from_json(Json const&j, std::forward_list<T, Allocator>& l) +{ + // do not perform the check when user wants to retrieve jsons + // (except when it's null.. ?) + if (j.is_null()) + throw std::domain_error("type must be array, but is " + type_name(j)); + if (not std::is_same<T, Json>::value) + { + if (!j.is_array()) + throw std::domain_error("type must be array, but is " + type_name(j)); + } + for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) + l.push_front(it->template get<T>()); +} + +template < + typename Json, typename CompatibleArrayType, + enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and + not std::is_same<typename Json::array_t, + CompatibleArrayType>::value, + int> = 0> +void from_json(Json const &j, CompatibleArrayType &arr) +{ + if (j.is_null()) + throw std::domain_error("type must be array, but is " + type_name(j)); + // when T == Json, do not check if value_t is correct + if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) + { + if (!j.is_array()) + throw std::domain_error("type must be array, but is " + type_name(j)); + } + + using std::begin; + using std::end; + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i) + { + // get<Json>() returns *this, this won't call a from_json method when + // value_type is Json + return i.template get<typename CompatibleArrayType::value_type>(); + }); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1780,69 +1869,6 @@ class basic_json assert_invariant(); } - /*! - @brief create an array (explicit) - - Create an array JSON value with a given content. - - @param[in] val a value for the array - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for array value fails - - @liveexample{The following code shows the constructor with an @ref array_t - parameter.,basic_json__array_t} - - @sa @ref basic_json(const CompatibleArrayType&) -- create an array value - from a compatible STL containers - - @since version 1.0.0 - */ - basic_json(const array_t& val) - : m_type(value_t::array), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create an array (implicit) - - Create an array JSON value with a given content. This constructor allows - any type @a CompatibleArrayType that can be used to construct values of - type @ref array_t. - - @tparam CompatibleArrayType An object type whose `value_type` is - compatible to @ref array_t. Examples include `std::vector`, `std::deque`, - `std::list`, `std::forward_list`, `std::array`, `std::set`, - `std::unordered_set`, `std::multiset`, and `unordered_multiset` with a - `value_type` from which a @ref basic_json value can be constructed. - - @param[in] val a value for the array - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for array value fails - - @liveexample{The following code shows the constructor with several - compatible array type parameters.,basic_json__CompatibleArrayType} - - @sa @ref basic_json(const array_t&) -- create an array value - - @since version 1.0.0 - */ - template <class CompatibleArrayType, - enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value, - int> = 0> - basic_json(const CompatibleArrayType& val) : m_type(value_t::array) - { - using std::begin; - using std::end; - m_value.array = create<array_t>(begin(val), end(val)); - assert_invariant(); - } - - // constructor chosen when: // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) @@ -1851,6 +1877,7 @@ class basic_json typename T, enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and + not std::is_same<uncvref_t<T>, basic_json_t>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< @@ -3211,23 +3238,34 @@ class basic_json return get_impl(static_cast<ValueType *>(nullptr)); } + // if T is basic_json, simply returns *this + template <typename T, + enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> + basic_json get() const + { + return *this; + } + template < typename T, - enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, - detail::has_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>>::value, - int> = 0 > - auto get() const -> uncvref_t<T> + enable_if_t<detail::conjunction< + detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, + detail::has_from_json<JSONSerializer, basic_json_t, + uncvref_t<T>>>::value and + not std::is_same<basic_json_t, uncvref_t<T>>::value, + int> = 0> + // do we really want the uncvref ? if a user call get<int &>, shouldn't we static assert ? + auto get() const -> uncvref_t<T> { - using type = uncvref_t<T>; - static_assert(std::is_default_constructible<type>::value&& - std::is_copy_constructible<type>::value, - "user-defined types must be DefaultConstructible and " - "CopyConstructible when used with get"); - type ret; - JSONSerializer<type>::from_json(*this, ret); - return ret; + using type = uncvref_t<T>; + static_assert(std::is_default_constructible<type>::value && + std::is_copy_constructible<type>::value, + "user-defined types must be DefaultConstructible and " + "CopyConstructible when used with get"); + type ret; + JSONSerializer<type>::from_json(*this, ret); + return ret; } // This overload is chosen for non-default constructible user-defined-types diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index c4182652a..a56742384 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -39,6 +39,7 @@ SOFTWARE. #include <cstdint> // int64_t, uint64_t #include <cstdlib> // strtod, strtof, strtold, strtoul #include <cstring> // strlen +#include <forward_list> // forward_list #include <functional> // function, hash, less #include <initializer_list> // initializer_list #include <iomanip> // setw @@ -272,6 +273,32 @@ struct external_constructor<value_t::number_integer> } }; +template <> +struct external_constructor<value_t::array> +{ + template <typename Json> + static void construct(Json &j, const typename Json::array_t& arr) + { + j.m_type = value_t::array; + j.m_value = arr; + j.assert_invariant(); + } + + template <typename Json, typename CompatibleArrayType, + enable_if_t<not std::is_same<CompatibleArrayType, + typename Json::array_t>::value, + int> = 0> + static void construct(Json &j, const CompatibleArrayType &arr) + { + using std::begin; + using std::end; + j.m_type = value_t::array; + j.m_value.array = + j.template create<typename Json::array_t>(begin(arr), end(arr)); + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -432,8 +459,6 @@ template <typename T, typename BasicJson> struct is_compatible_basic_json_type { static auto constexpr value = - std::is_same<T, BasicJson>::value or - is_compatible_array_type<BasicJson, T>::value or is_compatible_object_type<typename BasicJson::object_t, T>::value; }; @@ -575,6 +600,17 @@ void to_json(Json &j, UnscopedEnumType e) external_constructor<value_t::number_integer>::construct(j, e); } +template < + typename Json, typename CompatibleArrayType, + enable_if_t< + is_compatible_array_type<Json, CompatibleArrayType>::value or + std::is_same<typename Json::array_t, CompatibleArrayType>::value, + int> = 0> +void to_json(Json &j, CompatibleArrayType const &arr) +{ + external_constructor<value_t::array>::construct(j, arr); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -618,6 +654,59 @@ void from_json(Json const &j, UnscopedEnumType& e) e = static_cast<UnscopedEnumType>(val); } +template <typename Json> +void from_json(Json const &j, typename Json::array_t &arr) +{ + if (!j.is_array()) + throw std::domain_error("type must be array, but is " + type_name(j)); + arr = *const_cast<Json&>(j).template get_ptr<typename Json::array_t*>(); +} + +// forward_list doesn't have an insert method, TODO find a way to avoid including forward_list +template <typename Json, typename T, typename Allocator> +void from_json(Json const&j, std::forward_list<T, Allocator>& l) +{ + // do not perform the check when user wants to retrieve jsons + // (except when it's null.. ?) + if (j.is_null()) + throw std::domain_error("type must be array, but is " + type_name(j)); + if (not std::is_same<T, Json>::value) + { + if (!j.is_array()) + throw std::domain_error("type must be array, but is " + type_name(j)); + } + for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) + l.push_front(it->template get<T>()); +} + +template < + typename Json, typename CompatibleArrayType, + enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and + not std::is_same<typename Json::array_t, + CompatibleArrayType>::value, + int> = 0> +void from_json(Json const &j, CompatibleArrayType &arr) +{ + if (j.is_null()) + throw std::domain_error("type must be array, but is " + type_name(j)); + // when T == Json, do not check if value_t is correct + if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) + { + if (!j.is_array()) + throw std::domain_error("type must be array, but is " + type_name(j)); + } + + using std::begin; + using std::end; + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i) + { + // get<Json>() returns *this, this won't call a from_json method when + // value_type is Json + return i.template get<typename CompatibleArrayType::value_type>(); + }); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1781,69 +1870,6 @@ class basic_json assert_invariant(); } - /*! - @brief create an array (explicit) - - Create an array JSON value with a given content. - - @param[in] val a value for the array - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for array value fails - - @liveexample{The following code shows the constructor with an @ref array_t - parameter.,basic_json__array_t} - - @sa @ref basic_json(const CompatibleArrayType&) -- create an array value - from a compatible STL containers - - @since version 1.0.0 - */ - basic_json(const array_t& val) - : m_type(value_t::array), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create an array (implicit) - - Create an array JSON value with a given content. This constructor allows - any type @a CompatibleArrayType that can be used to construct values of - type @ref array_t. - - @tparam CompatibleArrayType An object type whose `value_type` is - compatible to @ref array_t. Examples include `std::vector`, `std::deque`, - `std::list`, `std::forward_list`, `std::array`, `std::set`, - `std::unordered_set`, `std::multiset`, and `unordered_multiset` with a - `value_type` from which a @ref basic_json value can be constructed. - - @param[in] val a value for the array - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for array value fails - - @liveexample{The following code shows the constructor with several - compatible array type parameters.,basic_json__CompatibleArrayType} - - @sa @ref basic_json(const array_t&) -- create an array value - - @since version 1.0.0 - */ - template <class CompatibleArrayType, - enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value, - int> = 0> - basic_json(const CompatibleArrayType& val) : m_type(value_t::array) - { - using std::begin; - using std::end; - m_value.array = create<array_t>(begin(val), end(val)); - assert_invariant(); - } - - // constructor chosen when: // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) @@ -1852,6 +1878,7 @@ class basic_json typename T, enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and + not std::is_same<uncvref_t<T>, basic_json_t>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< @@ -3209,23 +3236,34 @@ class basic_json return get_impl(static_cast<ValueType *>(nullptr)); } + // if T is basic_json, simply returns *this + template <typename T, + enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> + basic_json get() const + { + return *this; + } + template < typename T, - enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, - detail::has_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>>::value, - int> = 0 > - auto get() const -> uncvref_t<T> + enable_if_t<detail::conjunction< + detail::negation<detail::is_compatible_basic_json_type< + uncvref_t<T>, basic_json_t>>, + detail::has_from_json<JSONSerializer, basic_json_t, + uncvref_t<T>>>::value and + not std::is_same<basic_json_t, uncvref_t<T>>::value, + int> = 0> + // do we really want the uncvref ? if a user call get<int &>, shouldn't we static assert ? + auto get() const -> uncvref_t<T> { - using type = uncvref_t<T>; - static_assert(std::is_default_constructible<type>::value&& - std::is_copy_constructible<type>::value, - "user-defined types must be DefaultConstructible and " - "CopyConstructible when used with get"); - type ret; - JSONSerializer<type>::from_json(*this, ret); - return ret; + using type = uncvref_t<T>; + static_assert(std::is_default_constructible<type>::value && + std::is_copy_constructible<type>::value, + "user-defined types must be DefaultConstructible and " + "CopyConstructible when used with get"); + type ret; + JSONSerializer<type>::from_json(*this, ret); + return ret; } // This overload is chosen for non-default constructible user-defined-types diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp index b82127bbd..2b570533c 100644 --- a/test/src/unit-conversions.cpp +++ b/test/src/unit-conversions.cpp @@ -1004,6 +1004,8 @@ TEST_CASE("value conversion") CHECK_THROWS_AS((json().get<std::vector<json>>()), std::logic_error); CHECK_THROWS_AS((json().get<std::list<json>>()), std::logic_error); + // does type really must be an array? or it rather must not be null? + // that's what I thought when other test like this one broke CHECK_THROWS_WITH((json().get<std::list<int>>()), "type must be array, but is null"); CHECK_THROWS_WITH((json().get<std::vector<int>>()), "type must be array, but is null"); CHECK_THROWS_WITH((json().get<std::vector<json>>()), "type must be array, but is null"); diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 382b0ed54..bb150e76e 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -391,19 +391,19 @@ TEST_CASE("adl_serializer specialization", "[udt]") namespace nlohmann { -// this might work in the future, not in the scope of this PR though -// we have to make this very clear in the doc -template <typename T> -struct adl_serializer<std::vector<T>> -{ - static void to_json(json& j, std::vector<T> const& opt) - { - } - - static void from_json(json const& j, std::vector<T>& opt) - { - } -}; + // TODO provide a real example, since this works now :) +// template <typename T> +// struct adl_serializer<std::vector<T>> +// { +// static void to_json(json& j, std::vector<T> const& opt) +// { +// +// } +// +// static void from_json(json const& j, std::vector<T>& opt) +// { +// } +// }; } TEST_CASE("current supported types are preferred over specializations", "[udt]") From 7e6a6f978ecc6e28af719417fdb9e73c6f73c567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 16:55:34 +0100 Subject: [PATCH 066/130] replace constructor by from/to_json: array_t --- src/json.hpp | 120 +++++++++++++++++++++------------------------- src/json.hpp.re2c | 120 +++++++++++++++++++++------------------------- 2 files changed, 110 insertions(+), 130 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index a7be5c819..a07f10eb4 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -299,6 +299,33 @@ struct external_constructor<value_t::array> } }; +template <> +struct external_constructor<value_t::object> +{ + template <typename Json> + static void construct(Json &j, const typename Json::object_t& obj) + { + j.m_type = value_t::object; + j.m_value = obj; + j.assert_invariant(); + } + + template <typename Json, typename CompatibleObjectType, + enable_if_t<not std::is_same<CompatibleObjectType, + typename Json::object_t>::value, + int> = 0> + static void construct(Json &j, const CompatibleObjectType &obj) + { + using std::begin; + using std::end; + + j.m_type = value_t::object; + j.m_value.object = + j.template create<typename Json::object_t>(begin(obj), end(obj)); + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -458,8 +485,7 @@ struct is_compatible_float_type template <typename T, typename BasicJson> struct is_compatible_basic_json_type { - static auto constexpr value = - is_compatible_object_type<typename BasicJson::object_t, T>::value; + static auto constexpr value = false; }; template <typename T, typename BasicJson, typename PrimitiveIterator> @@ -611,6 +637,15 @@ void to_json(Json &j, CompatibleArrayType const &arr) external_constructor<value_t::array>::construct(j, arr); } +template < + typename Json, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value, + int> = 0> +void to_json(Json &j, CompatibleObjectType const &arr) +{ + external_constructor<value_t::object>::construct(j, arr); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -707,6 +742,24 @@ void from_json(Json const &j, CompatibleArrayType &arr) }); } + +template < + typename Json, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value, + int> = 0> +void from_json(Json const &j, CompatibleObjectType &obj) +{ + if (!j.is_object()) + throw std::domain_error("type must be object, but is " + type_name(j)); + + auto inner_object = const_cast<Json&>(j).template get_ptr<typename Json::object_t*>(); + using std::begin; + using std::end; + // we could avoid the assignment, but this might require a for loop, which + // might be less efficient than the container constructor for some containers (would it?) + obj = CompatibleObjectType(begin(*inner_object), end(*inner_object)); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1806,69 +1859,6 @@ class basic_json assert_invariant(); } - /*! - @brief create an object (explicit) - - Create an object JSON value with a given content. - - @param[in] val a value for the object - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for object value fails - - @liveexample{The following code shows the constructor with an @ref - object_t parameter.,basic_json__object_t} - - @sa @ref basic_json(const CompatibleObjectType&) -- create an object value - from a compatible STL container - - @since version 1.0.0 - */ - basic_json(const object_t& val) - : m_type(value_t::object), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create an object (implicit) - - Create an object JSON value with a given content. This constructor allows - any type @a CompatibleObjectType that can be used to construct values of - type @ref object_t. - - @tparam CompatibleObjectType An object type whose `key_type` and - `value_type` is compatible to @ref object_t. Examples include `std::map`, - `std::unordered_map`, `std::multimap`, and `std::unordered_multimap` with - a `key_type` of `std::string`, and a `value_type` from which a @ref - basic_json value can be constructed. - - @param[in] val a value for the object - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for object value fails - - @liveexample{The following code shows the constructor with several - compatible object type parameters.,basic_json__CompatibleObjectType} - - @sa @ref basic_json(const object_t&) -- create an object value - - @since version 1.0.0 - */ - template <class CompatibleObjectType, - enable_if_t<detail::is_compatible_object_type< - object_t, CompatibleObjectType>::value, - int> = 0> - basic_json(const CompatibleObjectType& val) : m_type(value_t::object) - { - using std::begin; - using std::end; - m_value.object = create<object_t>(begin(val), end(val)); - assert_invariant(); - } - // constructor chosen when: // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index a56742384..32a6282ec 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -299,6 +299,33 @@ struct external_constructor<value_t::array> } }; +template <> +struct external_constructor<value_t::object> +{ + template <typename Json> + static void construct(Json &j, const typename Json::object_t& obj) + { + j.m_type = value_t::object; + j.m_value = obj; + j.assert_invariant(); + } + + template <typename Json, typename CompatibleObjectType, + enable_if_t<not std::is_same<CompatibleObjectType, + typename Json::object_t>::value, + int> = 0> + static void construct(Json &j, const CompatibleObjectType &obj) + { + using std::begin; + using std::end; + + j.m_type = value_t::object; + j.m_value.object = + j.template create<typename Json::object_t>(begin(obj), end(obj)); + j.assert_invariant(); + } +}; + // very useful construct against boilerplate (more boilerplate needed than in // C++17: http://en.cppreference.com/w/cpp/types/void_t) template <typename...> struct make_void @@ -458,8 +485,7 @@ struct is_compatible_float_type template <typename T, typename BasicJson> struct is_compatible_basic_json_type { - static auto constexpr value = - is_compatible_object_type<typename BasicJson::object_t, T>::value; + static auto constexpr value = false; }; template <typename T, typename BasicJson, typename PrimitiveIterator> @@ -611,6 +637,15 @@ void to_json(Json &j, CompatibleArrayType const &arr) external_constructor<value_t::array>::construct(j, arr); } +template < + typename Json, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value, + int> = 0> +void to_json(Json &j, CompatibleObjectType const &arr) +{ + external_constructor<value_t::object>::construct(j, arr); +} + template <typename Json> void from_json(Json const& j, typename Json::boolean_t& b) { @@ -707,6 +742,24 @@ void from_json(Json const &j, CompatibleArrayType &arr) }); } + +template < + typename Json, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value, + int> = 0> +void from_json(Json const &j, CompatibleObjectType &obj) +{ + if (!j.is_object()) + throw std::domain_error("type must be object, but is " + type_name(j)); + + auto inner_object = const_cast<Json&>(j).template get_ptr<typename Json::object_t*>(); + using std::begin; + using std::end; + // we could avoid the assignment, but this might require a for loop, which + // might be less efficient than the container constructor for some containers (would it?) + obj = CompatibleObjectType(begin(*inner_object), end(*inner_object)); +} + // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. @@ -1807,69 +1860,6 @@ class basic_json assert_invariant(); } - /*! - @brief create an object (explicit) - - Create an object JSON value with a given content. - - @param[in] val a value for the object - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for object value fails - - @liveexample{The following code shows the constructor with an @ref - object_t parameter.,basic_json__object_t} - - @sa @ref basic_json(const CompatibleObjectType&) -- create an object value - from a compatible STL container - - @since version 1.0.0 - */ - basic_json(const object_t& val) - : m_type(value_t::object), m_value(val) - { - assert_invariant(); - } - - /*! - @brief create an object (implicit) - - Create an object JSON value with a given content. This constructor allows - any type @a CompatibleObjectType that can be used to construct values of - type @ref object_t. - - @tparam CompatibleObjectType An object type whose `key_type` and - `value_type` is compatible to @ref object_t. Examples include `std::map`, - `std::unordered_map`, `std::multimap`, and `std::unordered_multimap` with - a `key_type` of `std::string`, and a `value_type` from which a @ref - basic_json value can be constructed. - - @param[in] val a value for the object - - @complexity Linear in the size of the passed @a val. - - @throw std::bad_alloc if allocation for object value fails - - @liveexample{The following code shows the constructor with several - compatible object type parameters.,basic_json__CompatibleObjectType} - - @sa @ref basic_json(const object_t&) -- create an object value - - @since version 1.0.0 - */ - template <class CompatibleObjectType, - enable_if_t<detail::is_compatible_object_type< - object_t, CompatibleObjectType>::value, - int> = 0> - basic_json(const CompatibleObjectType& val) : m_type(value_t::object) - { - using std::begin; - using std::end; - m_value.object = create<object_t>(begin(val), end(val)); - assert_invariant(); - } - // constructor chosen when: // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) From 4e8089b9de2094037103b45d791fec4a8816a430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 17:20:50 +0100 Subject: [PATCH 067/130] remove old get/get_impl overloads (doc removal is of course temporary) --- src/json.hpp | 231 +++++----------------------------------------- src/json.hpp.re2c | 227 +++++---------------------------------------- 2 files changed, 47 insertions(+), 411 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index a07f10eb4..c50212c1f 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -834,6 +834,7 @@ struct DecimalSeparator : std::numpunct<char> } }; +} // taken from ranges-v3 // TODO add doc @@ -2908,151 +2909,6 @@ class basic_json /// @} private: - ////////////////// - // value access // - ////////////////// - - template<class T, typename std::enable_if< - std::is_convertible<typename object_t::key_type, typename T::key_type>::value and - std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0> - T get_impl(T*) const - { - if (is_object()) - { - return T(m_value.object->begin(), m_value.object->end()); - } - else - { - - JSON_THROW(std::domain_error("type must be object, but is " + type_name())); - } - - /// get an object (explicit) - object_t get_impl(object_t* /*unused*/) const - { - if (is_object()) - { - return *(m_value.object); - } - - JSON_THROW(std::domain_error("type must be object, but is " + type_name())); - } - - /// get an array (explicit) - template < - class T, - typename std::enable_if < - std::is_convertible<basic_json_t, typename T::value_type>::value and - not std::is_same<basic_json_t, - typename T::value_type>::value and - not std::is_arithmetic<T>::value and - not std::is_convertible<std::string, T>::value and - not detail::has_mapped_type<T>::value, - int >::type = 0 > - T get_impl(T*) const - { - if (is_array()) - { - T to_vector; - std::transform(m_value.array->begin(), m_value.array->end(), - std::inserter(to_vector, to_vector.end()), [](basic_json i) - { - return i.get<typename T::value_type>(); - }); - return to_vector; - } - - JSON_THROW(std::domain_error("type must be array, but is " + type_name())); - } - - /// get an array (explicit) - template<class T, typename std::enable_if< - std::is_convertible<basic_json_t, T>::value and - not std::is_same<basic_json_t, T>::value, int>::type = 0> - std::vector<T> get_impl(std::vector<T>* /*unused*/) const - { - if (is_array()) - { - std::vector<T> to_vector; - to_vector.reserve(m_value.array->size()); - std::transform(m_value.array->begin(), m_value.array->end(), - std::inserter(to_vector, to_vector.end()), [](basic_json i) - { - return i.get<T>(); - }); - return to_vector; - } - - JSON_THROW(std::domain_error("type must be array, but is " + type_name())); - } - - /// get an array (explicit) - template<class T, typename std::enable_if< - std::is_same<basic_json, typename T::value_type>::value and - not detail::has_mapped_type<T>::value, int>::type = 0> - T get_impl(T* /*unused*/) const - { - if (is_array()) - { - return T(m_value.array->begin(), m_value.array->end()); - } - - JSON_THROW(std::domain_error("type must be array, but is " + type_name())); - } - - /// get an array (explicit) - array_t get_impl(array_t* /*unused*/) const - { - if (is_array()) - { - return *(m_value.array); - } - - JSON_THROW(std::domain_error("type must be array, but is " + type_name())); - } - - /// get a string (explicit) - template<typename T, typename std::enable_if< - std::is_convertible<string_t, T>::value, int>::type = 0> - T get_impl(T* /*unused*/) const - { - if (is_string()) - { - return *m_value.string; - } - - JSON_THROW(std::domain_error("type must be string, but is " + type_name())); - } - - /// get a number (explicit) - template<typename T, typename std::enable_if< - std::is_arithmetic<T>::value, int>::type = 0> - T get_impl(T* /*unused*/) const - { - switch (m_type) - { - case value_t::number_integer: - { - return static_cast<T>(m_value.number_integer); - } - - case value_t::number_unsigned: - { - return static_cast<T>(m_value.number_unsigned); - } - - case value_t::number_float: - { - return static_cast<T>(m_value.number_float); - } - - default: - { - JSON_THROW(std::domain_error("type must be number, but is " + type_name())); - } - } - } - /// get a boolean (explicit) boolean_t get_impl(boolean_t* /*unused*/) const { @@ -3180,54 +3036,6 @@ class basic_json } public: - - /// @name value access - /// Direct access to the stored value of a JSON value. - /// @{ - - /*! - @brief get a value (explicit) - - Explicit type conversion between the JSON value and a compatible value. - - @tparam ValueType non-pointer type compatible to the JSON value, for - instance `int` for JSON integer numbers, `bool` for JSON booleans, or - `std::vector` types for JSON arrays - - @return copy of the JSON value, converted to type @a ValueType - - @throw std::domain_error in case passed type @a ValueType is incompatible - to JSON; example: `"type must be object, but is null"` - - @complexity Linear in the size of the JSON value. - - @liveexample{The example below shows several conversions from JSON values - to other types. There a few things to note: (1) Floating-point numbers can - be converted to integers\, (2) A JSON array can be converted to a standard - `std::vector<short>`\, (3) A JSON object can be converted to C++ - associative containers such as `std::unordered_map<std::string\, - json>`.,get__ValueType_const} - - @internal - The idea of using a casted null pointer to choose the correct - implementation is from <http://stackoverflow.com/a/8315197/266378>. - @endinternal - - @sa @ref operator ValueType() const for implicit conversion - @sa @ref get() for pointer-member access - - @since version 1.0.0 - */ - template <typename ValueType, - enable_if_t<not std::is_pointer<ValueType>::value and - detail::is_compatible_basic_json_type< - uncvref_t<ValueType>, basic_json_t>::value, - int> = 0> - auto get() const - -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) { - return get_impl(static_cast<ValueType *>(nullptr)); - } - // if T is basic_json, simply returns *this template <typename T, enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> @@ -3236,16 +3044,22 @@ class basic_json return *this; } + // This overload is chosen when: + // - T is not basic_json_t + // - JSONSerializer<T>::from_json(basic_json const&, T&) exists + // - and JSONSerializer<T>::from_json(basic_json const&) does not exist + // + // the latter is preferred if both are present (since it does not require a default construction of T) template < typename T, - enable_if_t<detail::conjunction< - detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, + enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and detail::has_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>>::value and - not std::is_same<basic_json_t, uncvref_t<T>>::value, + uncvref_t<T>>::value and + not detail::has_non_default_from_json< + JSONSerializer, basic_json_t, uncvref_t<T>>::value, int> = 0> - // do we really want the uncvref ? if a user call get<int &>, shouldn't we static assert ? + // do we really want the uncvref ? if a user call get<int &>, shouldn't we + // static assert ? auto get() const -> uncvref_t<T> { using type = uncvref_t<T>; @@ -3258,19 +3072,22 @@ class basic_json return ret; } - // This overload is chosen for non-default constructible user-defined-types + // This overload is chosen when: + // - T is not basic_json_t + // - and JSONSerializer<T>::from_json(basic_json const&) does not exist + // TODO add constexpr, noexcept(...) template < typename T, - enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, - detail::has_non_default_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>>::value, - short> = 0 > - T get() const + enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and + detail::has_non_default_from_json< + JSONSerializer, basic_json_t, uncvref_t<T>>::value, + int> = 0> + uncvref_t<T> get() const { - return JSONSerializer<T>::from_json(*this); + return JSONSerializer<T>::from_json(*this); } + // TODO what to do with those... /*! @brief get a pointer value (explicit) diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 32a6282ec..f83ca76b9 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -2909,148 +2909,6 @@ class basic_json /// @} private: - ////////////////// - // value access // - ////////////////// - - template<class T, typename std::enable_if< - std::is_convertible<typename object_t::key_type, typename T::key_type>::value and - std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0> - T get_impl(T* /*unused*/) const - { - if (is_object()) - { - return T(m_value.object->begin(), m_value.object->end()); - } - - JSON_THROW(std::domain_error("type must be object, but is " + type_name())); - } - - /// get an object (explicit) - object_t get_impl(object_t* /*unused*/) const - { - if (is_object()) - { - return *(m_value.object); - } - - JSON_THROW(std::domain_error("type must be object, but is " + type_name())); - } - - /// get an array (explicit) - template < - class T, - typename std::enable_if < - std::is_convertible<basic_json_t, typename T::value_type>::value and - not std::is_same<basic_json_t, - typename T::value_type>::value and - not std::is_arithmetic<T>::value and - not std::is_convertible<std::string, T>::value and - not detail::has_mapped_type<T>::value, - int >::type = 0 > - { - if (is_array()) - { - T to_vector; - std::transform(m_value.array->begin(), m_value.array->end(), - std::inserter(to_vector, to_vector.end()), [](basic_json i) - { - return i.get<typename T::value_type>(); - }); - return to_vector; - } - - JSON_THROW(std::domain_error("type must be array, but is " + type_name())); - } - - /// get an array (explicit) - template<class T, typename std::enable_if< - std::is_convertible<basic_json_t, T>::value and - not std::is_same<basic_json_t, T>::value, int>::type = 0> - std::vector<T> get_impl(std::vector<T>* /*unused*/) const - { - if (is_array()) - { - std::vector<T> to_vector; - to_vector.reserve(m_value.array->size()); - std::transform(m_value.array->begin(), m_value.array->end(), - std::inserter(to_vector, to_vector.end()), [](basic_json i) - { - return i.get<T>(); - }); - return to_vector; - } - - JSON_THROW(std::domain_error("type must be array, but is " + type_name())); - } - - /// get an array (explicit) - template<class T, typename std::enable_if< - std::is_same<basic_json, typename T::value_type>::value and - not detail::has_mapped_type<T>::value, int>::type = 0> - T get_impl(T* /*unused*/) const - { - if (is_array()) - { - return T(m_value.array->begin(), m_value.array->end()); - } - - JSON_THROW(std::domain_error("type must be array, but is " + type_name())); - } - - /// get an array (explicit) - array_t get_impl(array_t* /*unused*/) const - { - if (is_array()) - { - return *(m_value.array); - } - - JSON_THROW(std::domain_error("type must be array, but is " + type_name())); - } - - /// get a string (explicit) - template<typename T, typename std::enable_if< - std::is_convertible<string_t, T>::value, int>::type = 0> - T get_impl(T* /*unused*/) const - { - if (is_string()) - { - return *m_value.string; - } - - JSON_THROW(std::domain_error("type must be string, but is " + type_name())); - } - - /// get a number (explicit) - template<typename T, typename std::enable_if< - std::is_arithmetic<T>::value, int>::type = 0> - T get_impl(T* /*unused*/) const - { - switch (m_type) - { - case value_t::number_integer: - { - return static_cast<T>(m_value.number_integer); - } - - case value_t::number_unsigned: - { - return static_cast<T>(m_value.number_unsigned); - } - - case value_t::number_float: - { - return static_cast<T>(m_value.number_float); - } - - default: - { - JSON_THROW(std::domain_error("type must be number, but is " + type_name())); - } - } - } - /// get a boolean (explicit) boolean_t get_impl(boolean_t* /*unused*/) const { @@ -3178,54 +3036,6 @@ class basic_json } public: - - /// @name value access - /// Direct access to the stored value of a JSON value. - /// @{ - - /*! - @brief get a value (explicit) - - Explicit type conversion between the JSON value and a compatible value. - - @tparam ValueType non-pointer type compatible to the JSON value, for - instance `int` for JSON integer numbers, `bool` for JSON booleans, or - `std::vector` types for JSON arrays - - @return copy of the JSON value, converted to type @a ValueType - - @throw std::domain_error in case passed type @a ValueType is incompatible - to JSON; example: `"type must be object, but is null"` - - @complexity Linear in the size of the JSON value. - - @liveexample{The example below shows several conversions from JSON values - to other types. There a few things to note: (1) Floating-point numbers can - be converted to integers\, (2) A JSON array can be converted to a standard - `std::vector<short>`\, (3) A JSON object can be converted to C++ - associative containers such as `std::unordered_map<std::string\, - json>`.,get__ValueType_const} - - @internal - The idea of using a casted null pointer to choose the correct - implementation is from <http://stackoverflow.com/a/8315197/266378>. - @endinternal - - @sa @ref operator ValueType() const for implicit conversion - @sa @ref get() for pointer-member access - - @since version 1.0.0 - */ - template <typename ValueType, - enable_if_t<not std::is_pointer<ValueType>::value and - detail::is_compatible_basic_json_type< - uncvref_t<ValueType>, basic_json_t>::value, - int> = 0> - auto get() const - -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) { - return get_impl(static_cast<ValueType *>(nullptr)); - } - // if T is basic_json, simply returns *this template <typename T, enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> @@ -3234,16 +3044,22 @@ class basic_json return *this; } + // This overload is chosen when: + // - T is not basic_json_t + // - JSONSerializer<T>::from_json(basic_json const&, T&) exists + // - and JSONSerializer<T>::from_json(basic_json const&) does not exist + // + // the latter is preferred if both are present (since it does not require a default construction of T) template < typename T, - enable_if_t<detail::conjunction< - detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, + enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and detail::has_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>>::value and - not std::is_same<basic_json_t, uncvref_t<T>>::value, + uncvref_t<T>>::value and + not detail::has_non_default_from_json< + JSONSerializer, basic_json_t, uncvref_t<T>>::value, int> = 0> - // do we really want the uncvref ? if a user call get<int &>, shouldn't we static assert ? + // do we really want the uncvref ? if a user call get<int &>, shouldn't we + // static assert ? auto get() const -> uncvref_t<T> { using type = uncvref_t<T>; @@ -3256,19 +3072,22 @@ class basic_json return ret; } - // This overload is chosen for non-default constructible user-defined-types + // This overload is chosen when: + // - T is not basic_json_t + // - and JSONSerializer<T>::from_json(basic_json const&) does not exist + // TODO add constexpr, noexcept(...) template < typename T, - enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, - detail::has_non_default_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>>::value, - short> = 0 > - T get() const + enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and + detail::has_non_default_from_json< + JSONSerializer, basic_json_t, uncvref_t<T>>::value, + int> = 0> + uncvref_t<T> get() const { - return JSONSerializer<T>::from_json(*this); + return JSONSerializer<T>::from_json(*this); } + // TODO what to do with those... /*! @brief get a pointer value (explicit) From 317883b21b086213a2f53727aca55d8c5a9b4d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 17:30:01 +0100 Subject: [PATCH 068/130] cleanup, details in body removes: - is_basic_json_compatible_type traits - a useless operator= - void_t - disjunction changes: - is_compatible_object_type's first argument is BasicJson --- src/json.hpp | 56 ++++++++++------------------------------------- src/json.hpp.re2c | 56 ++++++++++------------------------------------- 2 files changed, 22 insertions(+), 90 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index c50212c1f..721a6c48b 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -326,15 +326,7 @@ struct external_constructor<value_t::object> } }; -// very useful construct against boilerplate (more boilerplate needed than in -// C++17: http://en.cppreference.com/w/cpp/types/void_t) -template <typename...> struct make_void -{ - using type = void; -}; -template <typename... Ts> using void_t = typename make_void<Ts...>::type; - -// Implementation of 3 C++17 constructs: conjunction, disjunction, negation. +// Implementation of 2 C++17 constructs: conjunction, negation. // This is needed to avoid evaluating all the traits in a condition // // For example: not std::is_same<void, T>::value and has_value_type<T>::value @@ -352,11 +344,6 @@ struct conjunction<B1, Bn...> : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {}; template <class B> struct negation : std::integral_constant < bool, !B::value > {}; -template <class...> struct disjunction : std::false_type {}; -template <class B1> struct disjunction<B1> : B1 {}; -template <class B1, class... Bn> -struct disjunction<B1, Bn...> -: conditional_t<bool(B1::value), B1, disjunction<Bn...>> {}; /*! @brief Helper to determine whether there's a key_type for T. @@ -399,16 +386,16 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> typename CompatibleObjectType::mapped_type>::value; }; -template<class RealType, class CompatibleObjectType> +template<class BasicJson, class CompatibleObjectType> struct is_compatible_object_type { // As noted ahead, we need to stop evaluating traits if // `CompatibleObjectType = void`, hence the conjunction - static auto constexpr value = is_compatible_object_type_impl < - conjunction<negation<std::is_same<void, CompatibleObjectType>>, - has_mapped_type<CompatibleObjectType>, - has_key_type<CompatibleObjectType>>::value, - RealType, CompatibleObjectType >::value; + static auto constexpr value = is_compatible_object_type_impl< + conjunction<negation<std::is_same<void, CompatibleObjectType>>, + has_mapped_type<CompatibleObjectType>, + has_key_type<CompatibleObjectType>>::value, + typename BasicJson::object_t, CompatibleObjectType>::value; }; template <bool B, class BasicJson, class CompatibleArrayType> @@ -439,7 +426,7 @@ struct is_compatible_array_type // `is_compatible_object_type`, but we need the conjunction here as well static auto constexpr value = is_compatible_array_type_impl< conjunction<negation<is_compatible_object_type< - typename BasicJson::object_t, CompatibleArrayType>>, + BasicJson, CompatibleArrayType>>, negation<std::is_constructible<typename BasicJson::string_t, CompatibleArrayType>>, has_value_type<CompatibleArrayType>, @@ -482,12 +469,6 @@ struct is_compatible_float_type std::is_floating_point<CompatibleFloat>::value; }; -template <typename T, typename BasicJson> -struct is_compatible_basic_json_type -{ - static auto constexpr value = false; -}; - template <typename T, typename BasicJson, typename PrimitiveIterator> struct is_basic_json_nested_class { @@ -639,7 +620,7 @@ void to_json(Json &j, CompatibleArrayType const &arr) template < typename Json, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value, + enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, int> = 0> void to_json(Json &j, CompatibleObjectType const &arr) { @@ -745,7 +726,7 @@ void from_json(Json const &j, CompatibleArrayType &arr) template < typename Json, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value, + enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, int> = 0> void from_json(Json const &j, CompatibleObjectType &obj) { @@ -1863,7 +1844,6 @@ class basic_json // constructor chosen when: // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) - // is_compatible_basic_json_type == not is_user_defined_type template < typename T, enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and @@ -1871,10 +1851,8 @@ class basic_json not std::is_same<uncvref_t<T>, basic_json_t>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and - detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, detail::has_to_json<JSONSerializer, basic_json, - uncvref_t<T>>>::value, + uncvref_t<T>>::value, int> = 0 > basic_json(T && val) { @@ -2428,18 +2406,6 @@ class basic_json return *this; } - // this overload is needed, since constructor for udt is explicit - template <typename T, enable_if_t<not detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>::value and - detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>> - reference& operator=(T&& val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and - std::is_nothrow_move_assignable<uncvref_t<T>>::value) - { - static_assert(sizeof(T) == 0 , ""); - // I'm not sure this a is good practice... - return *this = basic_json_t{std::forward<T>(val)}; - } - /*! @brief destructor diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index f83ca76b9..cc89accf1 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -326,15 +326,7 @@ struct external_constructor<value_t::object> } }; -// very useful construct against boilerplate (more boilerplate needed than in -// C++17: http://en.cppreference.com/w/cpp/types/void_t) -template <typename...> struct make_void -{ - using type = void; -}; -template <typename... Ts> using void_t = typename make_void<Ts...>::type; - -// Implementation of 3 C++17 constructs: conjunction, disjunction, negation. +// Implementation of 2 C++17 constructs: conjunction, negation. // This is needed to avoid evaluating all the traits in a condition // // For example: not std::is_same<void, T>::value and has_value_type<T>::value @@ -352,11 +344,6 @@ struct conjunction<B1, Bn...> : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {}; template <class B> struct negation : std::integral_constant < bool, !B::value > {}; -template <class...> struct disjunction : std::false_type {}; -template <class B1> struct disjunction<B1> : B1 {}; -template <class B1, class... Bn> -struct disjunction<B1, Bn...> -: conditional_t<bool(B1::value), B1, disjunction<Bn...>> {}; /*! @brief Helper to determine whether there's a key_type for T. @@ -399,16 +386,16 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> typename CompatibleObjectType::mapped_type>::value; }; -template<class RealType, class CompatibleObjectType> +template<class BasicJson, class CompatibleObjectType> struct is_compatible_object_type { // As noted ahead, we need to stop evaluating traits if // `CompatibleObjectType = void`, hence the conjunction - static auto constexpr value = is_compatible_object_type_impl < - conjunction<negation<std::is_same<void, CompatibleObjectType>>, - has_mapped_type<CompatibleObjectType>, - has_key_type<CompatibleObjectType>>::value, - RealType, CompatibleObjectType >::value; + static auto constexpr value = is_compatible_object_type_impl< + conjunction<negation<std::is_same<void, CompatibleObjectType>>, + has_mapped_type<CompatibleObjectType>, + has_key_type<CompatibleObjectType>>::value, + typename BasicJson::object_t, CompatibleObjectType>::value; }; template <bool B, class BasicJson, class CompatibleArrayType> @@ -439,7 +426,7 @@ struct is_compatible_array_type // `is_compatible_object_type`, but we need the conjunction here as well static auto constexpr value = is_compatible_array_type_impl< conjunction<negation<is_compatible_object_type< - typename BasicJson::object_t, CompatibleArrayType>>, + BasicJson, CompatibleArrayType>>, negation<std::is_constructible<typename BasicJson::string_t, CompatibleArrayType>>, has_value_type<CompatibleArrayType>, @@ -482,12 +469,6 @@ struct is_compatible_float_type std::is_floating_point<CompatibleFloat>::value; }; -template <typename T, typename BasicJson> -struct is_compatible_basic_json_type -{ - static auto constexpr value = false; -}; - template <typename T, typename BasicJson, typename PrimitiveIterator> struct is_basic_json_nested_class { @@ -639,7 +620,7 @@ void to_json(Json &j, CompatibleArrayType const &arr) template < typename Json, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value, + enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, int> = 0> void to_json(Json &j, CompatibleObjectType const &arr) { @@ -745,7 +726,7 @@ void from_json(Json const &j, CompatibleArrayType &arr) template < typename Json, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value, + enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, int> = 0> void from_json(Json const &j, CompatibleObjectType &obj) { @@ -1863,7 +1844,6 @@ class basic_json // constructor chosen when: // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) - // is_compatible_basic_json_type == not is_user_defined_type template < typename T, enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and @@ -1871,10 +1851,8 @@ class basic_json not std::is_same<uncvref_t<T>, basic_json_t>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and - detail::conjunction<detail::negation<detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>>, detail::has_to_json<JSONSerializer, basic_json, - uncvref_t<T>>>::value, + uncvref_t<T>>::value, int> = 0 > basic_json(T && val) { @@ -2428,18 +2406,6 @@ class basic_json return *this; } - // this overload is needed, since constructor for udt is explicit - template <typename T, enable_if_t<not detail::is_compatible_basic_json_type< - uncvref_t<T>, basic_json_t>::value and - detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>> - reference& operator=(T&& val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and - std::is_nothrow_move_assignable<uncvref_t<T>>::value) - { - static_assert(sizeof(T) == 0 , ""); - // I'm not sure this a is good practice... - return *this = basic_json_t{std::forward<T>(val)}; - } - /*! @brief destructor From be6b417c8765ee9587770d57fb6992ad5f4f2f09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 18:17:33 +0100 Subject: [PATCH 069/130] tweak SFINAE checks for internal types (see commit body) only check for public types (iterators, json_pointer) for private ones (m_array.iterator, primitive_iterator) simply double parentheses on relevant Catch checks --- src/json.hpp | 26 +++--- src/json.hpp.re2c | 26 +++--- test/src/unit-class_const_iterator.cpp | 124 ++++++++++++------------- test/src/unit-class_iterator.cpp | 124 ++++++++++++------------- 4 files changed, 146 insertions(+), 154 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 721a6c48b..93e996f67 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -469,14 +469,13 @@ struct is_compatible_float_type std::is_floating_point<CompatibleFloat>::value; }; -template <typename T, typename BasicJson, typename PrimitiveIterator> -struct is_basic_json_nested_class +template <typename BasicJson, typename T> +struct is_basic_json_nested_type { static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or std::is_same<T, typename BasicJson::const_iterator>::value or std::is_same<T, typename BasicJson::reverse_iterator>::value or std::is_same<T, typename BasicJson::const_reverse_iterator>::value or - std::is_same<T, PrimitiveIterator>::value or std::is_same<T, typename BasicJson::json_pointer>::value; }; @@ -1844,19 +1843,16 @@ class basic_json // constructor chosen when: // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) - template < - typename T, - enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and - not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and - not std::is_same<uncvref_t<T>, basic_json_t>::value and - not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and - not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and - detail::has_to_json<JSONSerializer, basic_json, - uncvref_t<T>>::value, - int> = 0 > - basic_json(T && val) + template <typename T, typename U = uncvref_t<T>, + enable_if_t< + not std::is_base_of<std::istream, U>::value and + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type<basic_json_t,U>::value and + detail::has_to_json<JSONSerializer, basic_json, U>::value, + int> = 0> + basic_json(T &&val) { - JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); + JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } /*! diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index cc89accf1..e69211329 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -469,14 +469,13 @@ struct is_compatible_float_type std::is_floating_point<CompatibleFloat>::value; }; -template <typename T, typename BasicJson, typename PrimitiveIterator> -struct is_basic_json_nested_class +template <typename BasicJson, typename T> +struct is_basic_json_nested_type { static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or std::is_same<T, typename BasicJson::const_iterator>::value or std::is_same<T, typename BasicJson::reverse_iterator>::value or std::is_same<T, typename BasicJson::const_reverse_iterator>::value or - std::is_same<T, PrimitiveIterator>::value or std::is_same<T, typename BasicJson::json_pointer>::value; }; @@ -1844,19 +1843,16 @@ class basic_json // constructor chosen when: // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) - template < - typename T, - enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and - not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and - not std::is_same<uncvref_t<T>, basic_json_t>::value and - not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and - not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and - detail::has_to_json<JSONSerializer, basic_json, - uncvref_t<T>>::value, - int> = 0 > - basic_json(T && val) + template <typename T, typename U = uncvref_t<T>, + enable_if_t< + not std::is_base_of<std::istream, U>::value and + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type<basic_json_t,U>::value and + detail::has_to_json<JSONSerializer, basic_json, U>::value, + int> = 0> + basic_json(T &&val) { - JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); + JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); } /*! diff --git a/test/src/unit-class_const_iterator.cpp b/test/src/unit-class_const_iterator.cpp index a1f6b827a..dba96e1f3 100644 --- a/test/src/unit-class_const_iterator.cpp +++ b/test/src/unit-class_const_iterator.cpp @@ -91,7 +91,7 @@ TEST_CASE("const_iterator class") json j(json::value_t::null); json::const_iterator it(&j); it.set_begin(); - CHECK(it == j.cbegin()); + CHECK((it == j.cbegin())); } SECTION("object") @@ -99,7 +99,7 @@ TEST_CASE("const_iterator class") json j(json::value_t::object); json::const_iterator it(&j); it.set_begin(); - CHECK(it == j.cbegin()); + CHECK((it == j.cbegin())); } SECTION("array") @@ -107,7 +107,7 @@ TEST_CASE("const_iterator class") json j(json::value_t::array); json::const_iterator it(&j); it.set_begin(); - CHECK(it == j.cbegin()); + CHECK((it == j.cbegin())); } } @@ -118,7 +118,7 @@ TEST_CASE("const_iterator class") json j(json::value_t::null); json::const_iterator it(&j); it.set_end(); - CHECK(it == j.cend()); + CHECK((it == j.cend())); } SECTION("object") @@ -126,7 +126,7 @@ TEST_CASE("const_iterator class") json j(json::value_t::object); json::const_iterator it(&j); it.set_end(); - CHECK(it == j.cend()); + CHECK((it == j.cend())); } SECTION("array") @@ -134,7 +134,7 @@ TEST_CASE("const_iterator class") json j(json::value_t::array); json::const_iterator it(&j); it.set_end(); - CHECK(it == j.cend()); + CHECK((it == j.cend())); } } } @@ -220,7 +220,7 @@ TEST_CASE("const_iterator class") { json j(json::value_t::null); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); it++; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -229,9 +229,9 @@ TEST_CASE("const_iterator class") { json j(17); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator.m_it == 0); + CHECK((it.m_it.primitive_iterator.m_it == 0)); it++; - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); it++; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -240,28 +240,28 @@ TEST_CASE("const_iterator class") { json j({{"foo", "bar"}}); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin())); it++; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end())); } SECTION("array") { json j({1, 2, 3, 4}); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin())); it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end())); } } @@ -271,7 +271,7 @@ TEST_CASE("const_iterator class") { json j(json::value_t::null); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); ++it; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -280,9 +280,9 @@ TEST_CASE("const_iterator class") { json j(17); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator.m_it == 0); + CHECK((it.m_it.primitive_iterator.m_it == 0)); ++it; - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); ++it; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -291,28 +291,28 @@ TEST_CASE("const_iterator class") { json j({{"foo", "bar"}}); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin())); ++it; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end())); } SECTION("array") { json j({1, 2, 3, 4}); json::const_iterator it = j.cbegin(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin())); ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end())); } } @@ -322,16 +322,16 @@ TEST_CASE("const_iterator class") { json j(json::value_t::null); json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); } SECTION("number") { json j(17); json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); it--; - CHECK(it.m_it.primitive_iterator.m_it == 0); + CHECK((it.m_it.primitive_iterator.m_it == 0)); it--; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -340,28 +340,28 @@ TEST_CASE("const_iterator class") { json j({{"foo", "bar"}}); json::const_iterator it = j.cend(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end())); it--; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin())); } SECTION("array") { json j({1, 2, 3, 4}); json::const_iterator it = j.cend(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end())); it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it--; - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); } } @@ -371,16 +371,16 @@ TEST_CASE("const_iterator class") { json j(json::value_t::null); json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); } SECTION("number") { json j(17); json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); --it; - CHECK(it.m_it.primitive_iterator.m_it == 0); + CHECK((it.m_it.primitive_iterator.m_it == 0)); --it; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -389,28 +389,28 @@ TEST_CASE("const_iterator class") { json j({{"foo", "bar"}}); json::const_iterator it = j.cend(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end())); --it; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin())); } SECTION("array") { json j({1, 2, 3, 4}); json::const_iterator it = j.cend(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end())); --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); --it; - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); } } } diff --git a/test/src/unit-class_iterator.cpp b/test/src/unit-class_iterator.cpp index 1e8a3cec4..16833cd9d 100644 --- a/test/src/unit-class_iterator.cpp +++ b/test/src/unit-class_iterator.cpp @@ -75,7 +75,7 @@ TEST_CASE("iterator class") json j(json::value_t::null); json::iterator it(&j); it.set_begin(); - CHECK(it == j.begin()); + CHECK((it == j.begin())); } SECTION("object") @@ -83,7 +83,7 @@ TEST_CASE("iterator class") json j(json::value_t::object); json::iterator it(&j); it.set_begin(); - CHECK(it == j.begin()); + CHECK((it == j.begin())); } SECTION("array") @@ -91,7 +91,7 @@ TEST_CASE("iterator class") json j(json::value_t::array); json::iterator it(&j); it.set_begin(); - CHECK(it == j.begin()); + CHECK((it == j.begin())); } } @@ -102,7 +102,7 @@ TEST_CASE("iterator class") json j(json::value_t::null); json::iterator it(&j); it.set_end(); - CHECK(it == j.end()); + CHECK((it == j.end())); } SECTION("object") @@ -110,7 +110,7 @@ TEST_CASE("iterator class") json j(json::value_t::object); json::iterator it(&j); it.set_end(); - CHECK(it == j.end()); + CHECK((it == j.end())); } SECTION("array") @@ -118,7 +118,7 @@ TEST_CASE("iterator class") json j(json::value_t::array); json::iterator it(&j); it.set_end(); - CHECK(it == j.end()); + CHECK((it == j.end())); } } } @@ -204,7 +204,7 @@ TEST_CASE("iterator class") { json j(json::value_t::null); json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); it++; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -213,9 +213,9 @@ TEST_CASE("iterator class") { json j(17); json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator.m_it == 0); + CHECK((it.m_it.primitive_iterator.m_it == 0)); it++; - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); it++; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -224,28 +224,28 @@ TEST_CASE("iterator class") { json j({{"foo", "bar"}}); json::iterator it = j.begin(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin())); it++; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end())); } SECTION("array") { json j({1, 2, 3, 4}); json::iterator it = j.begin(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin())); it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end())); } } @@ -255,7 +255,7 @@ TEST_CASE("iterator class") { json j(json::value_t::null); json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); ++it; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -264,9 +264,9 @@ TEST_CASE("iterator class") { json j(17); json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator.m_it == 0); + CHECK((it.m_it.primitive_iterator.m_it == 0)); ++it; - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); ++it; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -275,28 +275,28 @@ TEST_CASE("iterator class") { json j({{"foo", "bar"}}); json::iterator it = j.begin(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin())); ++it; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end())); } SECTION("array") { json j({1, 2, 3, 4}); json::iterator it = j.begin(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin())); ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end())); } } @@ -306,16 +306,16 @@ TEST_CASE("iterator class") { json j(json::value_t::null); json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); } SECTION("number") { json j(17); json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); it--; - CHECK(it.m_it.primitive_iterator.m_it == 0); + CHECK((it.m_it.primitive_iterator.m_it == 0)); it--; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -324,28 +324,28 @@ TEST_CASE("iterator class") { json j({{"foo", "bar"}}); json::iterator it = j.end(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end())); it--; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin())); } SECTION("array") { json j({1, 2, 3, 4}); json::iterator it = j.end(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end())); it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); it--; - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); } } @@ -355,16 +355,16 @@ TEST_CASE("iterator class") { json j(json::value_t::null); json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); } SECTION("number") { json j(17); json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator.m_it == 1); + CHECK((it.m_it.primitive_iterator.m_it == 1)); --it; - CHECK(it.m_it.primitive_iterator.m_it == 0); + CHECK((it.m_it.primitive_iterator.m_it == 0)); --it; CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1)); } @@ -373,28 +373,28 @@ TEST_CASE("iterator class") { json j({{"foo", "bar"}}); json::iterator it = j.end(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end())); --it; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); + CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin())); } SECTION("array") { json j({1, 2, 3, 4}); json::iterator it = j.end(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end())); --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); --it; - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); + CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin())); + CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end())); } } } From b2543e06d8ea1121f1423c435d5e30c81cafe472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 18:59:51 +0100 Subject: [PATCH 070/130] removed is_compatible_float_type trait --- src/json.hpp | 17 +++-------------- src/json.hpp.re2c | 17 +++-------------- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 93e996f67..fd27d83fe 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -461,14 +461,6 @@ struct is_compatible_integer_type RealIntegerType, CompatibleNumberIntegerType > ::value; }; -template <typename RealFloat, typename CompatibleFloat> -struct is_compatible_float_type -{ - static constexpr auto value = - std::is_constructible<RealFloat, CompatibleFloat>::value and - std::is_floating_point<CompatibleFloat>::value; -}; - template <typename BasicJson, typename T> struct is_basic_json_nested_type { @@ -568,12 +560,9 @@ void to_json(Json &j, const CompatibleString &s) external_constructor<value_t::string>::construct(j, s); } -template < - typename Json, typename CompatibleNumberFloatType, - enable_if_t<is_compatible_float_type<typename Json::number_float_t, - CompatibleNumberFloatType>::value, - int> = 0> -void to_json(Json &j, CompatibleNumberFloatType val) noexcept +template <typename Json, typename FloatType, + enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> +void to_json(Json &j, FloatType val) noexcept { external_constructor<value_t::number_float>::construct(j, val); } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index e69211329..702f3fd3b 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -461,14 +461,6 @@ struct is_compatible_integer_type RealIntegerType, CompatibleNumberIntegerType > ::value; }; -template <typename RealFloat, typename CompatibleFloat> -struct is_compatible_float_type -{ - static constexpr auto value = - std::is_constructible<RealFloat, CompatibleFloat>::value and - std::is_floating_point<CompatibleFloat>::value; -}; - template <typename BasicJson, typename T> struct is_basic_json_nested_type { @@ -568,12 +560,9 @@ void to_json(Json &j, const CompatibleString &s) external_constructor<value_t::string>::construct(j, s); } -template < - typename Json, typename CompatibleNumberFloatType, - enable_if_t<is_compatible_float_type<typename Json::number_float_t, - CompatibleNumberFloatType>::value, - int> = 0> -void to_json(Json &j, CompatibleNumberFloatType val) noexcept +template <typename Json, typename FloatType, + enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> +void to_json(Json &j, FloatType val) noexcept { external_constructor<value_t::number_float>::construct(j, val); } From b4cea6825d477428acc0da7070a02c999ec872b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 19:06:00 +0100 Subject: [PATCH 071/130] remove is_compatible_array_type_impl trait --- src/json.hpp | 59 ++++++++------------------ src/json.hpp.re2c | 59 ++++++++------------------ src/json.hpp.re2c.rej | 98 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 84 deletions(-) create mode 100644 src/json.hpp.re2c.rej diff --git a/src/json.hpp b/src/json.hpp index fd27d83fe..4435102eb 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -398,40 +398,30 @@ struct is_compatible_object_type typename BasicJson::object_t, CompatibleObjectType>::value; }; -template <bool B, class BasicJson, class CompatibleArrayType> -struct is_compatible_array_type_impl : std::false_type {}; - -template <class BasicJson, class CompatibleArrayType> -struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> +template <typename BasicJson, typename T> +struct is_basic_json_nested_type { - static constexpr auto value = - not std::is_same<CompatibleArrayType, - typename BasicJson::iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::const_iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::reverse_iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::const_reverse_iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::array_t::iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::array_t::const_iterator>::value; + static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or + std::is_same<T, typename BasicJson::const_iterator>::value or + std::is_same<T, typename BasicJson::reverse_iterator>::value or + std::is_same<T, typename BasicJson::const_reverse_iterator>::value or + std::is_same<T, typename BasicJson::json_pointer>::value; }; template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - // the check for CompatibleArrayType = void is done in - // `is_compatible_object_type`, but we need the conjunction here as well - static auto constexpr value = is_compatible_array_type_impl< - conjunction<negation<is_compatible_object_type< + // TODO concept Container? + // this might not make VS happy + static auto constexpr value = + conjunction<negation<std::is_same<void, CompatibleArrayType>>, + negation<is_compatible_object_type< BasicJson, CompatibleArrayType>>, negation<std::is_constructible<typename BasicJson::string_t, CompatibleArrayType>>, + negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value, - BasicJson, CompatibleArrayType>::value; + has_iterator<CompatibleArrayType>>::value; }; template <bool, typename, typename> @@ -461,16 +451,6 @@ struct is_compatible_integer_type RealIntegerType, CompatibleNumberIntegerType > ::value; }; -template <typename BasicJson, typename T> -struct is_basic_json_nested_type -{ - static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or - std::is_same<T, typename BasicJson::const_iterator>::value or - std::is_same<T, typename BasicJson::reverse_iterator>::value or - std::is_same<T, typename BasicJson::const_reverse_iterator>::value or - std::is_same<T, typename BasicJson::json_pointer>::value; -}; - // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_from_json @@ -519,8 +499,6 @@ struct has_to_json detect(std::declval<JSONSerializer<T, void>>()))>::value; }; -template <typename Json, typename > - // those declarations are needed to workaround a MSVC bug related to ADL // (taken from MSVC-Ranges implementation) void to_json(); @@ -737,12 +715,9 @@ template < typename Json, typename ArithmeticType, enable_if_t< std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, - typename Json::number_unsigned_t>::value and - not std::is_same<ArithmeticType, - typename Json::number_integer_t>::value and - not std::is_same<ArithmeticType, - typename Json::number_float_t>::value and + not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and + not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and + not std::is_same<ArithmeticType, typename Json::number_float_t>::value and not std::is_same<ArithmeticType, typename Json::boolean_t>::value, int> = 0> void from_json(Json const &j, ArithmeticType &val) diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 702f3fd3b..412a9b49c 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -398,40 +398,30 @@ struct is_compatible_object_type typename BasicJson::object_t, CompatibleObjectType>::value; }; -template <bool B, class BasicJson, class CompatibleArrayType> -struct is_compatible_array_type_impl : std::false_type {}; - -template <class BasicJson, class CompatibleArrayType> -struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> +template <typename BasicJson, typename T> +struct is_basic_json_nested_type { - static constexpr auto value = - not std::is_same<CompatibleArrayType, - typename BasicJson::iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::const_iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::reverse_iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::const_reverse_iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::array_t::iterator>::value and - not std::is_same<CompatibleArrayType, - typename BasicJson::array_t::const_iterator>::value; + static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or + std::is_same<T, typename BasicJson::const_iterator>::value or + std::is_same<T, typename BasicJson::reverse_iterator>::value or + std::is_same<T, typename BasicJson::const_reverse_iterator>::value or + std::is_same<T, typename BasicJson::json_pointer>::value; }; template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - // the check for CompatibleArrayType = void is done in - // `is_compatible_object_type`, but we need the conjunction here as well - static auto constexpr value = is_compatible_array_type_impl< - conjunction<negation<is_compatible_object_type< + // TODO concept Container? + // this might not make VS happy + static auto constexpr value = + conjunction<negation<std::is_same<void, CompatibleArrayType>>, + negation<is_compatible_object_type< BasicJson, CompatibleArrayType>>, negation<std::is_constructible<typename BasicJson::string_t, CompatibleArrayType>>, + negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value, - BasicJson, CompatibleArrayType>::value; + has_iterator<CompatibleArrayType>>::value; }; template <bool, typename, typename> @@ -461,16 +451,6 @@ struct is_compatible_integer_type RealIntegerType, CompatibleNumberIntegerType > ::value; }; -template <typename BasicJson, typename T> -struct is_basic_json_nested_type -{ - static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or - std::is_same<T, typename BasicJson::const_iterator>::value or - std::is_same<T, typename BasicJson::reverse_iterator>::value or - std::is_same<T, typename BasicJson::const_reverse_iterator>::value or - std::is_same<T, typename BasicJson::json_pointer>::value; -}; - // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists template <template <typename, typename> class JSONSerializer, typename Json, typename T> struct has_from_json @@ -519,8 +499,6 @@ struct has_to_json detect(std::declval<JSONSerializer<T, void>>()))>::value; }; -template <typename Json, typename > - // those declarations are needed to workaround a MSVC bug related to ADL // (taken from MSVC-Ranges implementation) void to_json(); @@ -737,12 +715,9 @@ template < typename Json, typename ArithmeticType, enable_if_t< std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, - typename Json::number_unsigned_t>::value and - not std::is_same<ArithmeticType, - typename Json::number_integer_t>::value and - not std::is_same<ArithmeticType, - typename Json::number_float_t>::value and + not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and + not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and + not std::is_same<ArithmeticType, typename Json::number_float_t>::value and not std::is_same<ArithmeticType, typename Json::boolean_t>::value, int> = 0> void from_json(Json const &j, ArithmeticType &val) diff --git a/src/json.hpp.re2c.rej b/src/json.hpp.re2c.rej new file mode 100644 index 000000000..ab8fa89d3 --- /dev/null +++ b/src/json.hpp.re2c.rej @@ -0,0 +1,98 @@ +diff a/src/json.hpp.re2c b/src/json.hpp.re2c (rejected hunks) +@@ -389,40 +389,30 @@ struct is_compatible_object_type + typename BasicJson::object_t, CompatibleObjectType>::value; + }; + +-template <bool B, class BasicJson, class CompatibleArrayType> +-struct is_compatible_array_type_impl : std::false_type {}; +- +-template <class BasicJson, class CompatibleArrayType> +-struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> ++template <typename BasicJson, typename T> ++struct is_basic_json_nested_type + { +- static constexpr auto value = +- not std::is_same<CompatibleArrayType, +- typename BasicJson::iterator>::value and +- not std::is_same<CompatibleArrayType, +- typename BasicJson::const_iterator>::value and +- not std::is_same<CompatibleArrayType, +- typename BasicJson::reverse_iterator>::value and +- not std::is_same<CompatibleArrayType, +- typename BasicJson::const_reverse_iterator>::value and +- not std::is_same<CompatibleArrayType, +- typename BasicJson::array_t::iterator>::value and +- not std::is_same<CompatibleArrayType, +- typename BasicJson::array_t::const_iterator>::value; ++ static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or ++ std::is_same<T, typename BasicJson::const_iterator>::value or ++ std::is_same<T, typename BasicJson::reverse_iterator>::value or ++ std::is_same<T, typename BasicJson::const_reverse_iterator>::value or ++ std::is_same<T, typename BasicJson::json_pointer>::value; + }; + + template <class BasicJson, class CompatibleArrayType> + struct is_compatible_array_type + { +- // the check for CompatibleArrayType = void is done in +- // `is_compatible_object_type`, but we need the conjunction here as well +- static auto constexpr value = is_compatible_array_type_impl< +- conjunction<negation<is_compatible_object_type< ++ // TODO concept Container? ++ // this might not make VS happy ++ static auto constexpr value = ++ conjunction<negation<std::is_same<void, CompatibleArrayType>>, ++ negation<is_compatible_object_type< + BasicJson, CompatibleArrayType>>, + negation<std::is_constructible<typename BasicJson::string_t, + CompatibleArrayType>>, ++ negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, +- has_iterator<CompatibleArrayType>>::value, +- BasicJson, CompatibleArrayType>::value; ++ has_iterator<CompatibleArrayType>>::value; + }; + + template <bool, typename, typename> +@@ -452,16 +442,6 @@ struct is_compatible_integer_type + RealIntegerType, CompatibleNumberIntegerType > ::value; + }; + +-template <typename BasicJson, typename T> +-struct is_basic_json_nested_type +-{ +- static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or +- std::is_same<T, typename BasicJson::const_iterator>::value or +- std::is_same<T, typename BasicJson::reverse_iterator>::value or +- std::is_same<T, typename BasicJson::const_reverse_iterator>::value or +- std::is_same<T, typename BasicJson::json_pointer>::value; +-}; +- + // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists + template <template <typename, typename> class JSONSerializer, typename Json, typename T> + struct has_from_json +@@ -510,8 +490,6 @@ struct has_to_json + detect(std::declval<JSONSerializer<T, void>>()))>::value; + }; + +-template <typename Json, typename > +- + // those declarations are needed to workaround a MSVC bug related to ADL + // (taken from MSVC-Ranges implementation) + void to_json(); +@@ -728,12 +706,9 @@ template < + typename Json, typename ArithmeticType, + enable_if_t< + std::is_arithmetic<ArithmeticType>::value and +- not std::is_same<ArithmeticType, +- typename Json::number_unsigned_t>::value and +- not std::is_same<ArithmeticType, +- typename Json::number_integer_t>::value and +- not std::is_same<ArithmeticType, +- typename Json::number_float_t>::value and ++ not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and ++ not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and ++ not std::is_same<ArithmeticType, typename Json::number_float_t>::value and + not std::is_same<ArithmeticType, typename Json::boolean_t>::value, + int> = 0> + void from_json(Json const &j, ArithmeticType &val) From 5839795725ef0adb278bad0f2449ecb88d0381d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 22:49:02 +0100 Subject: [PATCH 072/130] remove useless helpers --- src/json.hpp | 28 +++------------------------- src/json.hpp.re2c | 28 +++------------------------- 2 files changed, 6 insertions(+), 50 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 4435102eb..8b94a3f38 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -152,23 +152,9 @@ template <bool B, typename T = void> using enable_if_t = typename std::enable_if<B, T>::type; template <typename T> -using remove_cv_t = typename std::remove_cv<T>::type; - -template <typename T> -using remove_reference_t = typename std::remove_reference<T>::type; - -template <typename T> -using uncvref_t = remove_cv_t<remove_reference_t<T>>; - -template <bool If, typename Then, typename Else> -using conditional_t = typename std::conditional<If, Then, Else>::type; +using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type; // Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait -template <typename T> -using is_scoped_enum = - std::integral_constant<bool, not std::is_convertible<T, int>::value and - std::is_enum<T>::value>; - template <typename T> using is_unscoped_enum = std::integral_constant<bool, std::is_convertible<T, int>::value and @@ -341,7 +327,7 @@ template <class...> struct conjunction : std::true_type {}; template <class B1> struct conjunction<B1> : B1 {}; template <class B1, class... Bn> struct conjunction<B1, Bn...> -: conditional_t<bool(B1::value), conjunction<Bn...>, B1> {}; +: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; template <class B> struct negation : std::integral_constant < bool, !B::value > {}; @@ -389,8 +375,6 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> template<class BasicJson, class CompatibleObjectType> struct is_compatible_object_type { - // As noted ahead, we need to stop evaluating traits if - // `CompatibleObjectType = void`, hence the conjunction static auto constexpr value = is_compatible_object_type_impl< conjunction<negation<std::is_same<void, CompatibleObjectType>>, has_mapped_type<CompatibleObjectType>, @@ -499,11 +483,6 @@ struct has_to_json detect(std::declval<JSONSerializer<T, void>>()))>::value; }; -// those declarations are needed to workaround a MSVC bug related to ADL -// (taken from MSVC-Ranges implementation) -void to_json(); -void from_json(); - // overloads for basic_json template parameters template <typename Json, typename ArithmeticType, @@ -568,7 +547,7 @@ void to_json(Json &j, CompatibleNumberIntegerType val) noexcept template <typename Json, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void to_json(Json &j, UnscopedEnumType e) +void to_json(Json &j, UnscopedEnumType e) noexcept { external_constructor<value_t::number_integer>::construct(j, e); } @@ -736,7 +715,6 @@ void from_json(Json const &j, ArithmeticType &val) struct to_json_fn { - // is it really useful to mark those as constexpr? template <typename Json, typename T> constexpr auto operator()(Json&& j, T&& val) const noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 412a9b49c..79d30e9d1 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -152,23 +152,9 @@ template <bool B, typename T = void> using enable_if_t = typename std::enable_if<B, T>::type; template <typename T> -using remove_cv_t = typename std::remove_cv<T>::type; - -template <typename T> -using remove_reference_t = typename std::remove_reference<T>::type; - -template <typename T> -using uncvref_t = remove_cv_t<remove_reference_t<T>>; - -template <bool If, typename Then, typename Else> -using conditional_t = typename std::conditional<If, Then, Else>::type; +using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type; // Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait -template <typename T> -using is_scoped_enum = - std::integral_constant<bool, not std::is_convertible<T, int>::value and - std::is_enum<T>::value>; - template <typename T> using is_unscoped_enum = std::integral_constant<bool, std::is_convertible<T, int>::value and @@ -341,7 +327,7 @@ template <class...> struct conjunction : std::true_type {}; template <class B1> struct conjunction<B1> : B1 {}; template <class B1, class... Bn> struct conjunction<B1, Bn...> -: conditional_t<bool(B1::value), conjunction<Bn...>, B1> {}; +: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; template <class B> struct negation : std::integral_constant < bool, !B::value > {}; @@ -389,8 +375,6 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> template<class BasicJson, class CompatibleObjectType> struct is_compatible_object_type { - // As noted ahead, we need to stop evaluating traits if - // `CompatibleObjectType = void`, hence the conjunction static auto constexpr value = is_compatible_object_type_impl< conjunction<negation<std::is_same<void, CompatibleObjectType>>, has_mapped_type<CompatibleObjectType>, @@ -499,11 +483,6 @@ struct has_to_json detect(std::declval<JSONSerializer<T, void>>()))>::value; }; -// those declarations are needed to workaround a MSVC bug related to ADL -// (taken from MSVC-Ranges implementation) -void to_json(); -void from_json(); - // overloads for basic_json template parameters template <typename Json, typename ArithmeticType, @@ -568,7 +547,7 @@ void to_json(Json &j, CompatibleNumberIntegerType val) noexcept template <typename Json, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void to_json(Json &j, UnscopedEnumType e) +void to_json(Json &j, UnscopedEnumType e) noexcept { external_constructor<value_t::number_integer>::construct(j, e); } @@ -736,7 +715,6 @@ void from_json(Json const &j, ArithmeticType &val) struct to_json_fn { - // is it really useful to mark those as constexpr? template <typename Json, typename T> constexpr auto operator()(Json&& j, T&& val) const noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) From 29f9fe6ae9e28197b6623bb06b70152945109684 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 8 Jan 2017 23:10:16 +0100 Subject: [PATCH 073/130] remove one has_to/from_json template parameter --- src/json.hpp | 58 ++++++++++++++++++++++++----------------------- src/json.hpp.re2c | 58 ++++++++++++++++++++++++----------------------- 2 files changed, 60 insertions(+), 56 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 8b94a3f38..c7ca74d79 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -436,7 +436,7 @@ struct is_compatible_integer_type }; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists -template <template <typename, typename> class JSONSerializer, typename Json, typename T> +template <typename Json, typename T> struct has_from_json { private: @@ -448,39 +448,40 @@ struct has_from_json public: static constexpr bool value = std::is_integral<decltype( - detect(std::declval<JSONSerializer<T, void>>()))>::value; + detect(std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; // This trait checks if JSONSerializer<T>::from_json(json const&) exists // this overload is used for non-default-constructible user-defined-types -template <template <typename, typename> class JSONSerializer, typename Json, - typename T> +template <typename Json, typename T> struct has_non_default_from_json { - private: - template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> - static int detect(U&&); - static void detect(...); +private: + template < + typename U, + typename = enable_if_t<std::is_same< + T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> + static int detect(U &&); + static void detect(...); - public: - static constexpr bool value = std::is_integral<decltype( - detect(std::declval<JSONSerializer<T, void>>()))>::value; +public: + static constexpr bool value = std::is_integral<decltype(detect( + std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; -// This trait checks if JSONSerializer<T>::to_json exists -template <template <typename, typename> class JSONSerializer, typename Json, - typename T> +// This trait checks if Json::json_serializer<T>::to_json exists +template <typename Json, typename T> struct has_to_json { - private: - template <typename U, typename = decltype(uncvref_t<U>::to_json( - std::declval<Json&>(), std::declval<T>()))> - static int detect(U&&); - static void detect(...); +private: + template <typename U, typename = decltype(uncvref_t<U>::to_json( + std::declval<Json &>(), std::declval<T>()))> + static int detect(U &&); + static void detect(...); - public: - static constexpr bool value = std::is_integral<decltype( - detect(std::declval<JSONSerializer<T, void>>()))>::value; +public: + static constexpr bool value = std::is_integral<decltype(detect( + std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; // overloads for basic_json template parameters @@ -900,6 +901,8 @@ class basic_json template<typename U> class iter_impl; template<typename Base> class json_reverse_iterator; class json_pointer; + template <typename T, typename SFINAE> + using json_serializer = JSONSerializer<T, SFINAE>; ///////////////////// // container types // @@ -1790,7 +1793,7 @@ class basic_json not std::is_base_of<std::istream, U>::value and not std::is_same<U, basic_json_t>::value and not detail::is_basic_json_nested_type<basic_json_t,U>::value and - detail::has_to_json<JSONSerializer, basic_json, U>::value, + detail::has_to_json<basic_json, U>::value, int> = 0> basic_json(T &&val) { @@ -2957,10 +2960,9 @@ class basic_json template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>::value and + detail::has_from_json<basic_json_t, uncvref_t<T>>::value and not detail::has_non_default_from_json< - JSONSerializer, basic_json_t, uncvref_t<T>>::value, + basic_json_t, uncvref_t<T>>::value, int> = 0> // do we really want the uncvref ? if a user call get<int &>, shouldn't we // static assert ? @@ -2983,8 +2985,8 @@ class basic_json template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_non_default_from_json< - JSONSerializer, basic_json_t, uncvref_t<T>>::value, + detail::has_non_default_from_json<basic_json_t, + uncvref_t<T>>::value, int> = 0> uncvref_t<T> get() const { diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 79d30e9d1..b3b512e53 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -436,7 +436,7 @@ struct is_compatible_integer_type }; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists -template <template <typename, typename> class JSONSerializer, typename Json, typename T> +template <typename Json, typename T> struct has_from_json { private: @@ -448,39 +448,40 @@ struct has_from_json public: static constexpr bool value = std::is_integral<decltype( - detect(std::declval<JSONSerializer<T, void>>()))>::value; + detect(std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; // This trait checks if JSONSerializer<T>::from_json(json const&) exists // this overload is used for non-default-constructible user-defined-types -template <template <typename, typename> class JSONSerializer, typename Json, - typename T> +template <typename Json, typename T> struct has_non_default_from_json { - private: - template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> - static int detect(U&&); - static void detect(...); +private: + template < + typename U, + typename = enable_if_t<std::is_same< + T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> + static int detect(U &&); + static void detect(...); - public: - static constexpr bool value = std::is_integral<decltype( - detect(std::declval<JSONSerializer<T, void>>()))>::value; +public: + static constexpr bool value = std::is_integral<decltype(detect( + std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; -// This trait checks if JSONSerializer<T>::to_json exists -template <template <typename, typename> class JSONSerializer, typename Json, - typename T> +// This trait checks if Json::json_serializer<T>::to_json exists +template <typename Json, typename T> struct has_to_json { - private: - template <typename U, typename = decltype(uncvref_t<U>::to_json( - std::declval<Json&>(), std::declval<T>()))> - static int detect(U&&); - static void detect(...); +private: + template <typename U, typename = decltype(uncvref_t<U>::to_json( + std::declval<Json &>(), std::declval<T>()))> + static int detect(U &&); + static void detect(...); - public: - static constexpr bool value = std::is_integral<decltype( - detect(std::declval<JSONSerializer<T, void>>()))>::value; +public: + static constexpr bool value = std::is_integral<decltype(detect( + std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; // overloads for basic_json template parameters @@ -900,6 +901,8 @@ class basic_json template<typename U> class iter_impl; template<typename Base> class json_reverse_iterator; class json_pointer; + template <typename T, typename SFINAE> + using json_serializer = JSONSerializer<T, SFINAE>; ///////////////////// // container types // @@ -1790,7 +1793,7 @@ class basic_json not std::is_base_of<std::istream, U>::value and not std::is_same<U, basic_json_t>::value and not detail::is_basic_json_nested_type<basic_json_t,U>::value and - detail::has_to_json<JSONSerializer, basic_json, U>::value, + detail::has_to_json<basic_json, U>::value, int> = 0> basic_json(T &&val) { @@ -2957,10 +2960,9 @@ class basic_json template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_from_json<JSONSerializer, basic_json_t, - uncvref_t<T>>::value and + detail::has_from_json<basic_json_t, uncvref_t<T>>::value and not detail::has_non_default_from_json< - JSONSerializer, basic_json_t, uncvref_t<T>>::value, + basic_json_t, uncvref_t<T>>::value, int> = 0> // do we really want the uncvref ? if a user call get<int &>, shouldn't we // static assert ? @@ -2983,8 +2985,8 @@ class basic_json template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_non_default_from_json< - JSONSerializer, basic_json_t, uncvref_t<T>>::value, + detail::has_non_default_from_json<basic_json_t, + uncvref_t<T>>::value, int> = 0> uncvref_t<T> get() const { From 1f25ec5d360f9d7cd22a99b500d9039a77e82acc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Mon, 9 Jan 2017 00:06:25 +0100 Subject: [PATCH 074/130] add some constexpr + noexcept --- src/json.hpp | 36 ++++++++++++++++++++---------------- src/json.hpp.re2c | 36 ++++++++++++++++++++---------------- 2 files changed, 40 insertions(+), 32 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index c7ca74d79..177c15321 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -1789,15 +1789,16 @@ class basic_json // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) template <typename T, typename U = uncvref_t<T>, - enable_if_t< - not std::is_base_of<std::istream, U>::value and - not std::is_same<U, basic_json_t>::value and - not detail::is_basic_json_nested_type<basic_json_t,U>::value and - detail::has_to_json<basic_json, U>::value, - int> = 0> - basic_json(T &&val) + enable_if_t<not std::is_base_of<std::istream, U>::value and + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type< + basic_json_t, U>::value and + detail::has_to_json<basic_json, U>::value, + int> = 0> + basic_json(T &&val) noexcept(noexcept(JSONSerializer<U>::to_json( + std::declval<basic_json_t &>(), std::forward<T>(val)))) { - JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); + JSONSerializer<U>::to_json(*this, std::forward<T>(val)); } /*! @@ -2959,14 +2960,18 @@ class basic_json // the latter is preferred if both are present (since it does not require a default construction of T) template < typename T, - enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_from_json<basic_json_t, uncvref_t<T>>::value and - not detail::has_non_default_from_json< - basic_json_t, uncvref_t<T>>::value, - int> = 0> + enable_if_t< + not std::is_same<basic_json_t, uncvref_t<T>>::value and + detail::has_from_json<basic_json_t, uncvref_t<T>>::value and + not detail::has_non_default_from_json<basic_json_t, + uncvref_t<T>>::value, + int> = 0> // do we really want the uncvref ? if a user call get<int &>, shouldn't we + // i know there is a special behaviour for boolean_t* and such // static assert ? - auto get() const -> uncvref_t<T> + auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json( + std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>()))) + -> uncvref_t<T> { using type = uncvref_t<T>; static_assert(std::is_default_constructible<type>::value && @@ -2981,14 +2986,13 @@ class basic_json // This overload is chosen when: // - T is not basic_json_t // - and JSONSerializer<T>::from_json(basic_json const&) does not exist - // TODO add constexpr, noexcept(...) template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and detail::has_non_default_from_json<basic_json_t, uncvref_t<T>>::value, int> = 0> - uncvref_t<T> get() const + constexpr uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>()))) { return JSONSerializer<T>::from_json(*this); } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index b3b512e53..5dc2e0277 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -1789,15 +1789,16 @@ class basic_json // - JSONSerializer::to_json exists for type T // - T is not a istream, nor convertible to basic_json (float, vectors, etc) template <typename T, typename U = uncvref_t<T>, - enable_if_t< - not std::is_base_of<std::istream, U>::value and - not std::is_same<U, basic_json_t>::value and - not detail::is_basic_json_nested_type<basic_json_t,U>::value and - detail::has_to_json<basic_json, U>::value, - int> = 0> - basic_json(T &&val) + enable_if_t<not std::is_base_of<std::istream, U>::value and + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type< + basic_json_t, U>::value and + detail::has_to_json<basic_json, U>::value, + int> = 0> + basic_json(T &&val) noexcept(noexcept(JSONSerializer<U>::to_json( + std::declval<basic_json_t &>(), std::forward<T>(val)))) { - JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val)); + JSONSerializer<U>::to_json(*this, std::forward<T>(val)); } /*! @@ -2959,14 +2960,18 @@ class basic_json // the latter is preferred if both are present (since it does not require a default construction of T) template < typename T, - enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_from_json<basic_json_t, uncvref_t<T>>::value and - not detail::has_non_default_from_json< - basic_json_t, uncvref_t<T>>::value, - int> = 0> + enable_if_t< + not std::is_same<basic_json_t, uncvref_t<T>>::value and + detail::has_from_json<basic_json_t, uncvref_t<T>>::value and + not detail::has_non_default_from_json<basic_json_t, + uncvref_t<T>>::value, + int> = 0> // do we really want the uncvref ? if a user call get<int &>, shouldn't we + // i know there is a special behaviour for boolean_t* and such // static assert ? - auto get() const -> uncvref_t<T> + auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json( + std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>()))) + -> uncvref_t<T> { using type = uncvref_t<T>; static_assert(std::is_default_constructible<type>::value && @@ -2981,14 +2986,13 @@ class basic_json // This overload is chosen when: // - T is not basic_json_t // - and JSONSerializer<T>::from_json(basic_json const&) does not exist - // TODO add constexpr, noexcept(...) template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and detail::has_non_default_from_json<basic_json_t, uncvref_t<T>>::value, int> = 0> - uncvref_t<T> get() const + constexpr uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>()))) { return JSONSerializer<T>::from_json(*this); } From 3494014ba0ab3ff402df17b40cc138334fd8a529 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Mon, 9 Jan 2017 00:29:00 +0100 Subject: [PATCH 075/130] new unit-udt.cpp tests --- test/src/unit-udt.cpp | 181 ++++++++++++++++++++++++++++-------------- 1 file changed, 123 insertions(+), 58 deletions(-) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index bb150e76e..60b839577 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -391,27 +391,27 @@ TEST_CASE("adl_serializer specialization", "[udt]") namespace nlohmann { - // TODO provide a real example, since this works now :) -// template <typename T> -// struct adl_serializer<std::vector<T>> -// { -// static void to_json(json& j, std::vector<T> const& opt) -// { -// -// } -// -// static void from_json(json const& j, std::vector<T>& opt) -// { -// } -// }; +template <> +struct adl_serializer<std::vector<float>> +{ + static void to_json(json& j, std::vector<float> const&) + { + j = "hijacked!"; + } + + static void from_json(json const&, std::vector<float>& opt) + { + opt = {42.0, 42.0, 42.0}; + } +}; } -TEST_CASE("current supported types are preferred over specializations", "[udt]") +TEST_CASE("even supported types can be specialized", "[udt]") { - - json j = std::vector<int> {1, 2, 3}; - auto f = j.get<std::vector<int>>(); - CHECK((f == std::vector<int> {1, 2, 3})); + json j = std::vector<float> {1.0, 2.0, 3.0}; + CHECK(j.dump() == R"("hijacked!")"); + auto f = j.get<std::vector<float>>(); + CHECK((f == std::vector<float>{42.0, 42.0, 42.0})); } namespace nlohmann @@ -432,7 +432,6 @@ struct adl_serializer<std::unique_ptr<T>> } // this is the overload needed for non-copyable types, - // should we add a priority tag in the implementation to prefer this overload if it exists? static std::unique_ptr<T> from_json(json const& j) { if (j.is_null()) @@ -456,7 +455,7 @@ TEST_CASE("Non-copyable types", "[udt]") json j = optPerson; CHECK(j.is_null()); - optPerson.reset(new udt::person{{42}, {"John Doe"}}); + optPerson.reset(new udt::person{{42}, {"John Doe"}, udt::country::russia}); j = optPerson; CHECK_FALSE(j.is_null()); @@ -465,7 +464,7 @@ TEST_CASE("Non-copyable types", "[udt]") SECTION("from_json") { - auto person = udt::person{{42}, {"John Doe"}}; + auto person = udt::person{{42}, {"John Doe"}, udt::country::russia}; json j = person; auto optPerson = j.get<std::unique_ptr<udt::person>>(); @@ -478,39 +477,70 @@ TEST_CASE("Non-copyable types", "[udt]") } } -// custom serializer -// advanced usage (I did not have a real use case in mind) -template <typename T, typename = typename std::enable_if<std::is_pod<T>::value>::type> +// custom serializer - advanced usage +// pack structs that are pod-types (but not scalar types) +// relies on adl for any other type +template <typename T, typename = void> struct pod_serializer { - template <typename Json> - static void from_json(Json const& j , T& t) - { - std::uint64_t value; - // Why cannot we simply use: j.get<std::uint64_t>() ? - // Well, with the current experiment, the get method looks for a from_json function, which we are currently defining! - // This would end up in a stack overflow. Calling nlohmann::from_json is a workaround. - // I shall find a good way to avoid this once all constructors are converted to free methods - // - // In short, constructing a json by constructor calls to_json - // calling get calls from_json, for now, we cannot do this in custom serializers - nlohmann::from_json(j, value); - auto bytes = static_cast<char *>(static_cast<void *>(&value)); - std::memcpy(&t, bytes, sizeof(value)); - } + // use adl for non-pods, or scalar types + template < + typename Json, typename U = T, + typename std::enable_if< + not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0> + static void from_json(Json const &j, U &t) + { + using nlohmann::from_json; + from_json(j, t); + } - template <typename Json> - static void to_json(Json& j, T const& t) - { - auto bytes = static_cast<char const*>(static_cast<void const*>(&t)); - std::uint64_t value = bytes[0]; - for (auto i = 1; i < 8; ++i) - { - value |= bytes[i] << 8 * i; - } - // same thing here - nlohmann::to_json(j, value); - } + // special behaviour for pods + template <typename Json, typename U = T, + typename std::enable_if< + std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> + static void from_json(Json const &j, U &t) + { + std::uint64_t value; + // TODO The following block is no longer relevant in this serializer, make another one that shows the issue + // the problem arises only when one from_json method is defined without any constraint + // + // Why cannot we simply use: j.get<std::uint64_t>() ? + // Well, with the current experiment, the get method looks for a from_json + // function, which we are currently defining! + // This would end up in a stack overflow. Calling nlohmann::from_json is a + // workaround (is it?). + // I shall find a good way to avoid this once all constructors are converted + // to free methods + // + // In short, constructing a json by constructor calls to_json + // calling get calls from_json, for now, we cannot do this in custom + // serializers + nlohmann::from_json(j, value); + auto bytes = static_cast<char *>(static_cast<void *>(&value)); + std::memcpy(&t, bytes, sizeof(value)); + } + + template < + typename Json, typename U = T, + typename std::enable_if< + not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0> + static void to_json(Json &j, T const &t) + { + using nlohmann::to_json; + to_json(j, t); + } + + template <typename Json, typename U = T, + typename std::enable_if< + std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> + static void to_json(Json &j, T const &t) noexcept + { + auto bytes = static_cast<unsigned char const *>(static_cast<void const *>(&t)); + std::uint64_t value = bytes[0]; + for (auto i = 1; i < 8; ++i) + value |= std::uint64_t{bytes[i]} << 8 * i; + nlohmann::to_json(j, value); + } }; namespace udt @@ -522,23 +552,58 @@ struct small_pod short end; }; -bool operator==(small_pod lhs, small_pod rhs) +struct non_pod +{ + std::string s; +}; + +template <typename Json> +void to_json(Json& j, non_pod const& np) +{ + j = np.s; +} + +template <typename Json> +void from_json(Json const& j, non_pod& np) +{ + np.s = j.template get<std::string>(); +} + +bool operator==(small_pod lhs, small_pod rhs) noexcept { return std::tie(lhs.begin, lhs.middle, lhs.end) == - std::tie(lhs.begin, lhs.middle, lhs.end); + std::tie(rhs.begin, rhs.middle, rhs.end); +} + +bool operator==(non_pod const &lhs, non_pod const &rhs) noexcept +{ + return lhs.s == rhs.s; +} + +std::ostream& operator<<(std::ostream& os, small_pod l) +{ + return os << "begin: " << l.begin << ", middle: " << l.middle << ", end: " << l.end; } } TEST_CASE("custom serializer for pods", "[udt]") { - using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, pod_serializer>; + using custom_json = + nlohmann::basic_json<std::map, std::vector, std::string, bool, + std::int64_t, std::uint64_t, double, std::allocator, + pod_serializer>; - auto p = udt::small_pod{42, '/', 42}; - custom_json j = p; + auto p = udt::small_pod{42, '/', 42}; + custom_json j = p; - auto p2 = j.get<udt::small_pod>(); + auto p2 = j.get<udt::small_pod>(); - CHECK(p == p2); + CHECK(p == p2); + + auto np = udt::non_pod{{"non-pod"}}; + custom_json j2 = np; + auto np2 = j2.get<udt::non_pod>(); + CHECK(np == np2); } template <typename T, typename> From cb3d455bd227071cde6a87f7b23112254ca7c010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Mon, 9 Jan 2017 10:22:22 +0100 Subject: [PATCH 076/130] do not const_cast when calling get_ptr --- src/json.hpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 177c15321..feb1aa3cb 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -494,11 +494,11 @@ template <typename Json, typename ArithmeticType, void get_arithmetic_value(Json const &j, ArithmeticType &val) { if (j.is_number_integer()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>(); + val = *j.template get_ptr<const typename Json::number_integer_t*>(); else if (j.is_number_unsigned()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>(); + val = *j.template get_ptr<const typename Json::number_unsigned_t*>(); else if (j.is_number_float()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>(); + val = *j.template get_ptr<const typename Json::number_float_t*>(); else throw std::domain_error("type must be number, but is " + type_name(j)); } @@ -578,7 +578,7 @@ void from_json(Json const& j, typename Json::boolean_t& b) { if (!j.is_boolean()) throw std::domain_error("type must be boolean, but is " + type_name(j)); - b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); + b = *j.template get_ptr<const typename Json::boolean_t*>(); } template <typename Json> @@ -586,7 +586,7 @@ void from_json(Json const& j, typename Json::string_t& s) { if (!j.is_string()) throw std::domain_error("type must be string, but is " + type_name(j)); - s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>(); + s = *j.template get_ptr<const typename Json::string_t*>(); } template <typename Json> @@ -621,7 +621,7 @@ void from_json(Json const &j, typename Json::array_t &arr) { if (!j.is_array()) throw std::domain_error("type must be array, but is " + type_name(j)); - arr = *const_cast<Json&>(j).template get_ptr<typename Json::array_t*>(); + arr = *j.template get_ptr<const typename Json::array_t*>(); } // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list @@ -679,7 +679,7 @@ void from_json(Json const &j, CompatibleObjectType &obj) if (!j.is_object()) throw std::domain_error("type must be object, but is " + type_name(j)); - auto inner_object = const_cast<Json&>(j).template get_ptr<typename Json::object_t*>(); + auto inner_object = j.template get_ptr<const typename Json::object_t*>(); using std::begin; using std::end; // we could avoid the assignment, but this might require a for loop, which @@ -703,13 +703,13 @@ template < void from_json(Json const &j, ArithmeticType &val) { if (j.is_number_integer()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>(); + val = *j.template get_ptr<const typename Json::number_integer_t*>(); else if (j.is_number_unsigned()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>(); + val = *j.template get_ptr<const typename Json::number_unsigned_t*>(); else if (j.is_number_float()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>(); + val = *j.template get_ptr<const typename Json::number_float_t*>(); else if (j.is_boolean()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); + val = *j.template get_ptr<const typename Json::boolean_t*>(); else throw std::domain_error("type must be number, but is " + type_name(j)); } From e678c075dda8fbff4218ceca0a2e0ffbffc10343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Mon, 9 Jan 2017 10:41:00 +0100 Subject: [PATCH 077/130] check for is_number_unsigned before is_number_integer --- src/json.hpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index feb1aa3cb..4c6d8671a 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -493,10 +493,11 @@ template <typename Json, typename ArithmeticType, int> = 0> void get_arithmetic_value(Json const &j, ArithmeticType &val) { - if (j.is_number_integer()) - val = *j.template get_ptr<const typename Json::number_integer_t*>(); - else if (j.is_number_unsigned()) + // unsigned must be checked first, since is_number_integer() == true for unsigned + if (j.is_number_unsigned()) val = *j.template get_ptr<const typename Json::number_unsigned_t*>(); + else if (j.is_number_integer()) + val = *j.template get_ptr<const typename Json::number_integer_t*>(); else if (j.is_number_float()) val = *j.template get_ptr<const typename Json::number_float_t*>(); else @@ -702,10 +703,10 @@ template < int> = 0> void from_json(Json const &j, ArithmeticType &val) { - if (j.is_number_integer()) - val = *j.template get_ptr<const typename Json::number_integer_t*>(); - else if (j.is_number_unsigned()) + if (j.is_number_unsigned()) val = *j.template get_ptr<const typename Json::number_unsigned_t*>(); + else if (j.is_number_integer()) + val = *j.template get_ptr<const typename Json::number_integer_t*>(); else if (j.is_number_float()) val = *j.template get_ptr<const typename Json::number_float_t*>(); else if (j.is_boolean()) From d0d8070422eed0bd5826a655de5c0be321d285a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Thu, 12 Jan 2017 22:52:00 +0100 Subject: [PATCH 078/130] add static_asserts remove some useless trailing return types and && to help MSVC --- src/json.hpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 5 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 4c6d8671a..1188ead45 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -715,27 +715,81 @@ void from_json(Json const &j, ArithmeticType &val) throw std::domain_error("type must be number, but is " + type_name(j)); } +template <typename Json, typename T> +constexpr auto has_adl_from_json(int) -> decltype(from_json(std::declval<Json const&>(), std::declval<T&>()), true) +{ + return true; +} + +template <typename, typename> +constexpr bool has_adl_from_json(long) +{ + return false; +} + +template <typename Json, typename T> +constexpr auto has_adl_to_json(int) -> decltype(to_json(std::declval<Json&>(), std::declval<T const&>()), true) +{ + return true; +} + +template <typename, typename> +constexpr bool has_adl_to_json(long) +{ + return false; +} + struct to_json_fn { - template <typename Json, typename T> - constexpr auto operator()(Json&& j, T&& val) const + private: + template <typename Json, typename T, enable_if_t<has_adl_to_json<Json, T>(0), int> = 0> + auto operator()(Json&& j, T&& val) const noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), void()) { return to_json(std::forward<Json>(j), std::forward<T>(val)); } + + template <typename Json, typename T, enable_if_t<not has_adl_to_json<Json, T>(0), int> = 0> + void operator()(Json&&, T&&) const noexcept + { + static_assert(has_adl_to_json<Json, T>(0), "to_json method in T's namespace can not be called"); + } + +public: + template <typename Json, typename T> + void operator()(Json &j, T &&val) const + noexcept(noexcept(std::declval<to_json_fn>().call(0, j, std::forward<T>(val)))) + { + return call(0, j, std::forward<T>(val)); + } }; struct from_json_fn { - template <typename Json, typename T> - constexpr auto operator()(Json&& j, T& val) const + private: + template <typename Json, typename T, enable_if_t<has_adl_from_json<Json, T>(0), int> = 0> + auto operator()(Json&& j, T& val) const noexcept(noexcept(from_json(std::forward<Json>(j), val))) -> decltype(from_json(std::forward<Json>(j), val), void()) { return from_json(std::forward<Json>(j), val); } + + template <typename Json, typename T, enable_if_t<not has_adl_from_json<Json, T>(0), int> = 0> + void operator()(Json&&, T&) const noexcept + { + static_assert(has_adl_from_json<Json, T>(0), "from_json method in T's namespace can not be called"); + } + +public: + template <typename Json, typename T> + void operator()(Json const &j, T &val) const + noexcept(noexcept(std::declval<from_json_fn>().call(0, j, val))) + { + return call(0, j, val); + } }; /*! @@ -757,7 +811,6 @@ struct DecimalSeparator : std::numpunct<char> return '.'; } }; - } // taken from ranges-v3 From e247e01a6e98aef1e9ed821617e295bbea031b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com> Date: Thu, 12 Jan 2017 23:45:20 +0100 Subject: [PATCH 079/130] use static_casts to silence MSVC warnings Those warnings are not "fixed", but that's intentional. Truncations are expected when ArithmeticType is not the same type than number_unsigned_t (or another basic_json template argument) --- src/json.hpp | 89 +++++++++++++++++++--------------------------------- 1 file changed, 32 insertions(+), 57 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 1188ead45..98f782623 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -495,11 +495,11 @@ void get_arithmetic_value(Json const &j, ArithmeticType &val) { // unsigned must be checked first, since is_number_integer() == true for unsigned if (j.is_number_unsigned()) - val = *j.template get_ptr<const typename Json::number_unsigned_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); else if (j.is_number_integer()) - val = *j.template get_ptr<const typename Json::number_integer_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); else if (j.is_number_float()) - val = *j.template get_ptr<const typename Json::number_float_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); else throw std::domain_error("type must be number, but is " + type_name(j)); } @@ -523,7 +523,7 @@ template <typename Json, typename FloatType, enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> void to_json(Json &j, FloatType val) noexcept { - external_constructor<value_t::number_float>::construct(j, val); + external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val)); } @@ -534,7 +534,7 @@ template < int> = 0> void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept { - external_constructor<value_t::number_unsigned>::construct(j, val); + external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val)); } template < @@ -544,7 +544,7 @@ template < int> = 0> void to_json(Json &j, CompatibleNumberIntegerType val) noexcept { - external_constructor<value_t::number_integer>::construct(j, val); + external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val)); } template <typename Json, typename UnscopedEnumType, @@ -704,57 +704,32 @@ template < void from_json(Json const &j, ArithmeticType &val) { if (j.is_number_unsigned()) - val = *j.template get_ptr<const typename Json::number_unsigned_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); else if (j.is_number_integer()) - val = *j.template get_ptr<const typename Json::number_integer_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); else if (j.is_number_float()) - val = *j.template get_ptr<const typename Json::number_float_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); else if (j.is_boolean()) - val = *j.template get_ptr<const typename Json::boolean_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>()); else throw std::domain_error("type must be number, but is " + type_name(j)); } -template <typename Json, typename T> -constexpr auto has_adl_from_json(int) -> decltype(from_json(std::declval<Json const&>(), std::declval<T&>()), true) -{ - return true; -} - -template <typename, typename> -constexpr bool has_adl_from_json(long) -{ - return false; -} - -template <typename Json, typename T> -constexpr auto has_adl_to_json(int) -> decltype(to_json(std::declval<Json&>(), std::declval<T const&>()), true) -{ - return true; -} - -template <typename, typename> -constexpr bool has_adl_to_json(long) -{ - return false; -} - struct to_json_fn { - private: - template <typename Json, typename T, enable_if_t<has_adl_to_json<Json, T>(0), int> = 0> - auto operator()(Json&& j, T&& val) const - noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) - -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), + template <typename Json, typename T> + auto call(int, Json& j, T&& val) const + noexcept(noexcept(to_json(j, std::forward<T>(val)))) + -> decltype(to_json(j, std::forward<T>(val)), void()) { - return to_json(std::forward<Json>(j), std::forward<T>(val)); + return to_json(j, std::forward<T>(val)); } - template <typename Json, typename T, enable_if_t<not has_adl_to_json<Json, T>(0), int> = 0> - void operator()(Json&&, T&&) const noexcept + template <typename Json, typename T> + void call(long, Json&, T&&) const noexcept { - static_assert(has_adl_to_json<Json, T>(0), "to_json method in T's namespace can not be called"); + static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called"); } public: @@ -768,20 +743,20 @@ public: struct from_json_fn { - private: - template <typename Json, typename T, enable_if_t<has_adl_from_json<Json, T>(0), int> = 0> - auto operator()(Json&& j, T& val) const - noexcept(noexcept(from_json(std::forward<Json>(j), val))) - -> decltype(from_json(std::forward<Json>(j), val), void()) - { - return from_json(std::forward<Json>(j), val); - } - - template <typename Json, typename T, enable_if_t<not has_adl_from_json<Json, T>(0), int> = 0> - void operator()(Json&&, T&) const noexcept - { - static_assert(has_adl_from_json<Json, T>(0), "from_json method in T's namespace can not be called"); - } +private: + template <typename Json, typename T> + auto call(int, Json const &j, T &val) const + noexcept(noexcept(from_json(j, val))) + -> decltype(from_json(j, val), void()) + { + return from_json(j, val); + } + + template <typename Json, typename T> + void call(long, Json const&, T&) const noexcept + { + static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); + } public: template <typename Json, typename T> From a9d5ae4fad1d40932e138781611c9b3680b26330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 14 Jan 2017 01:09:14 +0100 Subject: [PATCH 080/130] put back a specialization for containers with a reserve method --- src/json.hpp | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 98f782623..96221664a 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -642,6 +642,41 @@ void from_json(Json const&j, std::forward_list<T, Allocator>& l) l.push_front(it->template get<T>()); } + +template <typename Json, typename CompatibleArrayType> +void from_json_array_impl(Json const &j, CompatibleArrayType &arr, long) +{ + using std::begin; + using std::end; + + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i) + { + // get<Json>() returns *this, this won't call a from_json method when + // value_type is Json + return i.template get<typename CompatibleArrayType::value_type>(); + }); +} + +template <typename Json, typename CompatibleArrayType> +auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, int) + -> decltype( + arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), + void()) +{ + using std::begin; + using std::end; + + arr.reserve(j.size()); + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i) + { + // get<Json>() returns *this, this won't call a from_json method when + // value_type is Json + return i.template get<typename CompatibleArrayType::value_type>(); + }); +} + template < typename Json, typename CompatibleArrayType, enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and @@ -658,16 +693,7 @@ void from_json(Json const &j, CompatibleArrayType &arr) if (!j.is_array()) throw std::domain_error("type must be array, but is " + type_name(j)); } - - using std::begin; - using std::end; - std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i) - { - // get<Json>() returns *this, this won't call a from_json method when - // value_type is Json - return i.template get<typename CompatibleArrayType::value_type>(); - }); + from_json_array_impl(j, arr, 0); } From 1554baa01d58499e3d06806d59955d38b35c224d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 14 Jan 2017 01:26:06 +0100 Subject: [PATCH 081/130] attempting to fix coverage. testing that reserve is called --- test/src/unit-conversions.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp index 2b570533c..73b686d84 100644 --- a/test/src/unit-conversions.cpp +++ b/test/src/unit-conversions.cpp @@ -160,12 +160,28 @@ TEST_CASE("value conversion") { std::forward_list<json> a = j.get<std::forward_list<json>>(); CHECK(json(a) == j); + + CHECK_THROWS_AS(json(json::value_t::null).get<std::forward_list<json>>(), std::logic_error); + CHECK_THROWS_WITH(json(json::value_t::null).get<std::forward_list<json>>(), + "type must be array, but is null"); } SECTION("std::vector<json>") { std::vector<json> a = j.get<std::vector<json>>(); CHECK(json(a) == j); + + CHECK_THROWS_AS(json(json::value_t::null).get<std::vector<json>>(), std::logic_error); + CHECK_THROWS_WITH(json(json::value_t::null).get<std::vector<json>>(), + "type must be array, but is null"); + + SECTION("reserve is called on containers that supports it") + { + // making the call to from_json throw in order to check capacity + std::vector<float> v; + CHECK_THROWS_AS(nlohmann::from_json(j, v), std::logic_error); + CHECK(v.capacity() == j.size()); + } } SECTION("std::deque<json>") @@ -184,6 +200,8 @@ TEST_CASE("value conversion") CHECK_THROWS_AS(json(json::value_t::number_unsigned).get<json::array_t>(), std::logic_error); CHECK_THROWS_AS(json(json::value_t::number_float).get<json::array_t>(), std::logic_error); + CHECK_THROWS_WITH(json(json::value_t::object).get<std::vector<int>>(), + "type must be array, but is object"); CHECK_THROWS_WITH(json(json::value_t::null).get<json::array_t>(), "type must be array, but is null"); CHECK_THROWS_WITH(json(json::value_t::object).get<json::array_t>(), From b8012876a5988ba6066aa1c46e33b2ecf5f14f86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 14 Jan 2017 02:20:53 +0100 Subject: [PATCH 082/130] add noexcept checks, and some missing noexcepts --- src/json.hpp | 5 +++-- test/CMakeLists.txt | 1 + test/src/unit-noexcept.cpp | 27 +++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 test/src/unit-noexcept.cpp diff --git a/src/json.hpp b/src/json.hpp index 96221664a..4b8f9e5ab 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -843,9 +843,10 @@ struct adl_serializer } template <typename Json, typename T> - static void to_json(Json& j, T&& val) + static void to_json(Json &j, T &&val) noexcept( + noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) { - ::nlohmann::to_json(j, std::forward<T>(val)); + ::nlohmann::to_json(j, std::forward<T>(val)); } }; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index a988f47be..0ceb6bf61 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -29,6 +29,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME} "src/unit-meta.cpp" "src/unit-modifiers.cpp" "src/unit-msgpack.cpp" + "src/unit-noexcept.cpp" "src/unit-pointer_access.cpp" "src/unit-readme.cpp" "src/unit-reference_access.cpp" diff --git a/test/src/unit-noexcept.cpp b/test/src/unit-noexcept.cpp new file mode 100644 index 000000000..212abdf71 --- /dev/null +++ b/test/src/unit-noexcept.cpp @@ -0,0 +1,27 @@ +#include "catch.hpp" + +#include "json.hpp" + +using nlohmann::json; + +enum test +{ +}; + +struct pod {}; +struct pod_bis {}; + +void to_json(json &, pod) noexcept; +void to_json(json &, pod_bis); +static json j; + +static_assert(noexcept(json{}), ""); +static_assert(noexcept(nlohmann::to_json(j, 2)), ""); +static_assert(noexcept(nlohmann::to_json(j, 2.5)), ""); +static_assert(noexcept(nlohmann::to_json(j, true)), ""); +static_assert(noexcept(nlohmann::to_json(j, test{})), ""); +static_assert(noexcept(nlohmann::to_json(j, pod{})), ""); +static_assert(not noexcept(nlohmann::to_json(j, pod_bis{})), ""); +static_assert(noexcept(json(2)), ""); +static_assert(noexcept(json(test{})), ""); +static_assert(noexcept(json(pod{})), ""); From 63e4249e9fc127cac2a793ac085f8650ba1be666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 14 Jan 2017 02:33:03 +0100 Subject: [PATCH 083/130] use a priority_tag instead of int and longs with sfinae-dispatch --- src/json.hpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 4b8f9e5ab..f10f178b4 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -189,6 +189,11 @@ template <typename Json> std::string type_name(Json const &j) } } +// dispatch utility (taken from ranges-v3) +template <unsigned N> struct priority_tag : priority_tag<N - 1> {}; + +template <> struct priority_tag<0> {}; + // This is an experiment. I need this to move constructors out of basic_json. // I'm sure there is a better way, but this might need a big basic_json refactoring template <value_t> struct external_constructor; @@ -642,9 +647,8 @@ void from_json(Json const&j, std::forward_list<T, Allocator>& l) l.push_front(it->template get<T>()); } - template <typename Json, typename CompatibleArrayType> -void from_json_array_impl(Json const &j, CompatibleArrayType &arr, long) +void from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<0>) { using std::begin; using std::end; @@ -659,7 +663,7 @@ void from_json_array_impl(Json const &j, CompatibleArrayType &arr, long) } template <typename Json, typename CompatibleArrayType> -auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, int) +auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<1>) -> decltype( arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), void()) @@ -693,7 +697,7 @@ void from_json(Json const &j, CompatibleArrayType &arr) if (!j.is_array()) throw std::domain_error("type must be array, but is " + type_name(j)); } - from_json_array_impl(j, arr, 0); + from_json_array_impl(j, arr, priority_tag<1>{}); } @@ -744,7 +748,7 @@ void from_json(Json const &j, ArithmeticType &val) struct to_json_fn { template <typename Json, typename T> - auto call(int, Json& j, T&& val) const + auto call(Json& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val)))) -> decltype(to_json(j, std::forward<T>(val)), void()) @@ -753,7 +757,7 @@ struct to_json_fn } template <typename Json, typename T> - void call(long, Json&, T&&) const noexcept + void call(Json&, T&&, priority_tag<0>) const noexcept { static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called"); } @@ -761,9 +765,9 @@ struct to_json_fn public: template <typename Json, typename T> void operator()(Json &j, T &&val) const - noexcept(noexcept(std::declval<to_json_fn>().call(0, j, std::forward<T>(val)))) + noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1>{}))) { - return call(0, j, std::forward<T>(val)); + return call(j, std::forward<T>(val), priority_tag<1>{}); } }; @@ -771,7 +775,7 @@ struct from_json_fn { private: template <typename Json, typename T> - auto call(int, Json const &j, T &val) const + auto call(Json const &j, T &val, priority_tag<1>) const noexcept(noexcept(from_json(j, val))) -> decltype(from_json(j, val), void()) { @@ -779,7 +783,7 @@ private: } template <typename Json, typename T> - void call(long, Json const&, T&) const noexcept + void call(Json const&, T&, priority_tag<0>) const noexcept { static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); } @@ -787,9 +791,9 @@ private: public: template <typename Json, typename T> void operator()(Json const &j, T &val) const - noexcept(noexcept(std::declval<from_json_fn>().call(0, j, val))) + noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{}))) { - return call(0, j, val); + return call(j, val, priority_tag<1>{}); } }; From f2c71fafda559beec41cdf8eb7449a1c9a31d9c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 14 Jan 2017 02:47:02 +0100 Subject: [PATCH 084/130] minor message/comments tweak --- src/json.hpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index f10f178b4..75fece938 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -3027,16 +3027,16 @@ class basic_json uncvref_t<T>>::value, int> = 0> // do we really want the uncvref ? if a user call get<int &>, shouldn't we - // i know there is a special behaviour for boolean_t* and such // static assert ? + // i know there is a special behaviour for boolean_t* and such auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json( std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>()))) -> uncvref_t<T> { using type = uncvref_t<T>; - static_assert(std::is_default_constructible<type>::value && + static_assert(std::is_default_constructible<type>::value and std::is_copy_constructible<type>::value, - "user-defined types must be DefaultConstructible and " + "Types must be DefaultConstructible and " "CopyConstructible when used with get"); type ret; JSONSerializer<type>::from_json(*this, ret); @@ -3052,12 +3052,11 @@ class basic_json detail::has_non_default_from_json<basic_json_t, uncvref_t<T>>::value, int> = 0> - constexpr uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>()))) + uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>()))) { return JSONSerializer<T>::from_json(*this); } - // TODO what to do with those... /*! @brief get a pointer value (explicit) From f1482d1f01c12f634b1b0adee047e96d701c5528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 14 Jan 2017 02:47:29 +0100 Subject: [PATCH 085/130] more tests in unit-udt --- test/src/unit-udt.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 60b839577..10e8b71a3 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -394,15 +394,22 @@ namespace nlohmann template <> struct adl_serializer<std::vector<float>> { - static void to_json(json& j, std::vector<float> const&) + using type = std::vector<float>; + static void to_json(json& j, type const&) { j = "hijacked!"; } - static void from_json(json const&, std::vector<float>& opt) + static void from_json(json const&, type& opt) { opt = {42.0, 42.0, 42.0}; } + + // preferred version + static type from_json(json const&) + { + return {4.0, 5.0, 6.0}; + } }; } @@ -411,7 +418,8 @@ TEST_CASE("even supported types can be specialized", "[udt]") json j = std::vector<float> {1.0, 2.0, 3.0}; CHECK(j.dump() == R"("hijacked!")"); auto f = j.get<std::vector<float>>(); - CHECK((f == std::vector<float>{42.0, 42.0, 42.0})); + // the single argument from_json method is preferred + CHECK((f == std::vector<float>{4.0, 5.0, 6.0})); } namespace nlohmann From 07bc82d3a7aac7092bcc7d3465779c32b4606364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 15 Jan 2017 20:19:54 +0100 Subject: [PATCH 086/130] put const to the left --- src/json.hpp | 54 ++++++++++++++++---------------- test/src/unit-udt.cpp | 72 +++++++++++++++++++++---------------------- 2 files changed, 63 insertions(+), 63 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 75fece938..2457f5d70 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -168,7 +168,7 @@ using is_unscoped_enum = namespace detail { -template <typename Json> std::string type_name(Json const &j) +template <typename Json> std::string type_name(const Json &j) { switch (j.m_type) { @@ -496,7 +496,7 @@ template <typename Json, typename ArithmeticType, not std::is_same<ArithmeticType, typename Json::boolean_t>::value, int> = 0> -void get_arithmetic_value(Json const &j, ArithmeticType &val) +void get_arithmetic_value(const Json &j, ArithmeticType &val) { // unsigned must be checked first, since is_number_integer() == true for unsigned if (j.is_number_unsigned()) @@ -565,7 +565,7 @@ template < is_compatible_array_type<Json, CompatibleArrayType>::value or std::is_same<typename Json::array_t, CompatibleArrayType>::value, int> = 0> -void to_json(Json &j, CompatibleArrayType const &arr) +void to_json(Json &j, const CompatibleArrayType &arr) { external_constructor<value_t::array>::construct(j, arr); } @@ -574,13 +574,13 @@ template < typename Json, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, int> = 0> -void to_json(Json &j, CompatibleObjectType const &arr) +void to_json(Json &j, const CompatibleObjectType &arr) { external_constructor<value_t::object>::construct(j, arr); } template <typename Json> -void from_json(Json const& j, typename Json::boolean_t& b) +void from_json(const Json & j, typename Json::boolean_t& b) { if (!j.is_boolean()) throw std::domain_error("type must be boolean, but is " + type_name(j)); @@ -588,7 +588,7 @@ void from_json(Json const& j, typename Json::boolean_t& b) } template <typename Json> -void from_json(Json const& j, typename Json::string_t& s) +void from_json(const Json & j, typename Json::string_t& s) { if (!j.is_string()) throw std::domain_error("type must be string, but is " + type_name(j)); @@ -596,26 +596,26 @@ void from_json(Json const& j, typename Json::string_t& s) } template <typename Json> -void from_json(Json const& j, typename Json::number_float_t& val) +void from_json(const Json & j, typename Json::number_float_t& val) { get_arithmetic_value(j, val); } template <typename Json> -void from_json(Json const& j, typename Json::number_unsigned_t& val) +void from_json(const Json & j, typename Json::number_unsigned_t& val) { get_arithmetic_value(j, val); } template <typename Json> -void from_json(Json const& j, typename Json::number_integer_t& val) +void from_json(const Json & j, typename Json::number_integer_t& val) { get_arithmetic_value(j, val); } template <typename Json, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void from_json(Json const &j, UnscopedEnumType& e) +void from_json(const Json &j, UnscopedEnumType& e) { typename std::underlying_type<UnscopedEnumType>::type val = e; get_arithmetic_value(j, val); @@ -623,7 +623,7 @@ void from_json(Json const &j, UnscopedEnumType& e) } template <typename Json> -void from_json(Json const &j, typename Json::array_t &arr) +void from_json(const Json &j, typename Json::array_t &arr) { if (!j.is_array()) throw std::domain_error("type must be array, but is " + type_name(j)); @@ -632,7 +632,7 @@ void from_json(Json const &j, typename Json::array_t &arr) // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list template <typename Json, typename T, typename Allocator> -void from_json(Json const&j, std::forward_list<T, Allocator>& l) +void from_json(const Json &j, std::forward_list<T, Allocator>& l) { // do not perform the check when user wants to retrieve jsons // (except when it's null.. ?) @@ -648,13 +648,13 @@ void from_json(Json const&j, std::forward_list<T, Allocator>& l) } template <typename Json, typename CompatibleArrayType> -void from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<0>) +void from_json_array_impl(const Json &j, CompatibleArrayType &arr, priority_tag<0>) { using std::begin; using std::end; std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i) + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json &i) { // get<Json>() returns *this, this won't call a from_json method when // value_type is Json @@ -663,7 +663,7 @@ void from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag< } template <typename Json, typename CompatibleArrayType> -auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<1>) +auto from_json_array_impl(const Json &j, CompatibleArrayType &arr, priority_tag<1>) -> decltype( arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), void()) @@ -673,7 +673,7 @@ auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag< arr.reserve(j.size()); std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i) + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json &i) { // get<Json>() returns *this, this won't call a from_json method when // value_type is Json @@ -687,7 +687,7 @@ template < not std::is_same<typename Json::array_t, CompatibleArrayType>::value, int> = 0> -void from_json(Json const &j, CompatibleArrayType &arr) +void from_json(const Json &j, CompatibleArrayType &arr) { if (j.is_null()) throw std::domain_error("type must be array, but is " + type_name(j)); @@ -705,7 +705,7 @@ template < typename Json, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, int> = 0> -void from_json(Json const &j, CompatibleObjectType &obj) +void from_json(const Json &j, CompatibleObjectType &obj) { if (!j.is_object()) throw std::domain_error("type must be object, but is " + type_name(j)); @@ -731,7 +731,7 @@ template < not std::is_same<ArithmeticType, typename Json::number_float_t>::value and not std::is_same<ArithmeticType, typename Json::boolean_t>::value, int> = 0> -void from_json(Json const &j, ArithmeticType &val) +void from_json(const Json &j, ArithmeticType &val) { if (j.is_number_unsigned()) val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); @@ -775,7 +775,7 @@ struct from_json_fn { private: template <typename Json, typename T> - auto call(Json const &j, T &val, priority_tag<1>) const + auto call(const Json &j, T &val, priority_tag<1>) const noexcept(noexcept(from_json(j, val))) -> decltype(from_json(j, val), void()) { @@ -783,14 +783,14 @@ private: } template <typename Json, typename T> - void call(Json const&, T&, priority_tag<0>) const noexcept + void call(const Json &, T&, priority_tag<0>) const noexcept { static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); } public: template <typename Json, typename T> - void operator()(Json const &j, T &val) const + void operator()(const Json &j, T &val) const noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{}))) { return call(j, val, priority_tag<1>{}); @@ -831,8 +831,8 @@ constexpr T static_const<T>::value; inline namespace { -constexpr auto const& to_json = static_const<detail::to_json_fn>::value; -constexpr auto const& from_json = static_const<detail::from_json_fn>::value; +constexpr const auto & to_json = static_const<detail::to_json_fn>::value; +constexpr const auto & from_json = static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument @@ -948,7 +948,7 @@ class basic_json { private: template <::nlohmann::value_t> friend struct detail::external_constructor; - template <typename Json> friend std::string detail::type_name(Json const &); + template <typename Json> friend std::string detail::type_name(const Json &); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -3030,7 +3030,7 @@ class basic_json // static assert ? // i know there is a special behaviour for boolean_t* and such auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json( - std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>()))) + std::declval<const basic_json_t &>(), std::declval<uncvref_t<T> &>()))) -> uncvref_t<T> { using type = uncvref_t<T>; @@ -3052,7 +3052,7 @@ class basic_json detail::has_non_default_from_json<basic_json_t, uncvref_t<T>>::value, int> = 0> - uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>()))) + uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t &>()))) { return JSONSerializer<T>::from_json(*this); } diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 10e8b71a3..0590a8e52 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -91,7 +91,7 @@ void to_json(Json& j, age a) } template <typename Json> -void to_json(Json& j, name const& n) +void to_json(Json& j, const name& n) { j = n.m_val; } @@ -114,22 +114,22 @@ void to_json(Json& j, country c) } template <typename Json> -void to_json(Json& j, person const& p) +void to_json(Json& j, const person & p) { j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}}; } -void to_json(nlohmann::json& j, address const& a) +void to_json(nlohmann::json& j, const address & a) { j = a.m_val; } -void to_json(nlohmann::json& j, contact const& c) +void to_json(nlohmann::json& j, const contact & c) { j = json{{"person", c.m_person}, {"address", c.m_address}}; } -void to_json(nlohmann::json& j, contact_book const& cb) +void to_json(nlohmann::json& j, const contact_book & cb) { j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}}; } @@ -140,28 +140,28 @@ bool operator==(age lhs, age rhs) return lhs.m_val == rhs.m_val; } -bool operator==(address const& lhs, address const& rhs) +bool operator==(const address & lhs, const address & rhs) { return lhs.m_val == rhs.m_val; } -bool operator==(name const& lhs, name const& rhs) +bool operator==(const name & lhs, const name & rhs) { return lhs.m_val == rhs.m_val; } -bool operator==(person const& lhs, person const& rhs) +bool operator==(const person & lhs, const person & rhs) { return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age); } -bool operator==(contact const& lhs, contact const& rhs) +bool operator==(const contact & lhs, const contact & rhs) { return std::tie(lhs.m_person, lhs.m_address) == std::tie(rhs.m_person, rhs.m_address); } -bool operator==(contact_book const& lhs, contact_book const& rhs) +bool operator==(const contact_book & lhs, const contact_book & rhs) { return std::tie(lhs.m_book_name, lhs.m_contacts) == std::tie(rhs.m_book_name, rhs.m_contacts); @@ -172,19 +172,19 @@ bool operator==(contact_book const& lhs, contact_book const& rhs) namespace udt { template <typename Json> -void from_json(Json const& j, age& a) +void from_json(const Json & j, age& a) { a.m_val = j.template get<int>(); } template <typename Json> -void from_json(Json const& j, name& n) +void from_json(const Json & j, name& n) { n.m_val = j.template get<std::string>(); } template <typename Json> -void from_json(Json const& j, country& c) +void from_json(const Json & j, country& c) { const auto str = j.template get<std::string>(); static const std::map<std::string, country> m = @@ -200,25 +200,25 @@ void from_json(Json const& j, country& c) } template <typename Json> -void from_json(Json const& j, person& p) +void from_json(const Json & j, person& p) { p.m_age = j["age"].template get<age>(); p.m_name = j["name"].template get<name>(); p.m_country = j["country"].template get<country>(); } -void from_json(nlohmann::json const& j, address& a) +void from_json(const nlohmann::json & j, address& a) { a.m_val = j.get<std::string>(); } -void from_json(nlohmann::json const& j, contact& c) +void from_json(const nlohmann::json & j, contact& c) { c.m_person = j["person"].get<person>(); c.m_address = j["address"].get<address>(); } -void from_json(nlohmann::json const& j, contact_book& cb) +void from_json(const nlohmann::json & j, contact_book& cb) { cb.m_book_name = j["name"].get<name>(); cb.m_contacts = j["contacts"].get<std::vector<contact>>(); @@ -297,7 +297,7 @@ namespace nlohmann template <typename T> struct adl_serializer<std::shared_ptr<T>> { - static void to_json(json& j, std::shared_ptr<T> const& opt) + static void to_json(json& j, const std::shared_ptr<T> & opt) { if (opt) { @@ -309,7 +309,7 @@ struct adl_serializer<std::shared_ptr<T>> } } - static void from_json(json const& j, std::shared_ptr<T>& opt) + static void from_json(const json & j, std::shared_ptr<T>& opt) { if (j.is_null()) { @@ -325,12 +325,12 @@ struct adl_serializer<std::shared_ptr<T>> template <> struct adl_serializer<udt::legacy_type> { - static void to_json(json& j, udt::legacy_type const& l) + static void to_json(json& j, const udt::legacy_type & l) { j = std::stoi(l.number); } - static void from_json(json const& j, udt::legacy_type& l) + static void from_json(const json & j, udt::legacy_type& l) { l.number = std::to_string(j.get<int>()); } @@ -395,18 +395,18 @@ template <> struct adl_serializer<std::vector<float>> { using type = std::vector<float>; - static void to_json(json& j, type const&) + static void to_json(json& j, const type &) { j = "hijacked!"; } - static void from_json(json const&, type& opt) + static void from_json(const json &, type& opt) { opt = {42.0, 42.0, 42.0}; } // preferred version - static type from_json(json const&) + static type from_json(const json &) { return {4.0, 5.0, 6.0}; } @@ -427,7 +427,7 @@ namespace nlohmann template <typename T> struct adl_serializer<std::unique_ptr<T>> { - static void to_json(json& j, std::unique_ptr<T> const& opt) + static void to_json(json& j, const std::unique_ptr<T> & opt) { if (opt) { @@ -440,7 +440,7 @@ struct adl_serializer<std::unique_ptr<T>> } // this is the overload needed for non-copyable types, - static std::unique_ptr<T> from_json(json const& j) + static std::unique_ptr<T> from_json(const json & j) { if (j.is_null()) { @@ -496,7 +496,7 @@ struct pod_serializer typename Json, typename U = T, typename std::enable_if< not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0> - static void from_json(Json const &j, U &t) + static void from_json(const Json &j, U &t) { using nlohmann::from_json; from_json(j, t); @@ -506,7 +506,7 @@ struct pod_serializer template <typename Json, typename U = T, typename std::enable_if< std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> - static void from_json(Json const &j, U &t) + static void from_json(const Json &j, U &t) { std::uint64_t value; // TODO The following block is no longer relevant in this serializer, make another one that shows the issue @@ -532,7 +532,7 @@ struct pod_serializer typename Json, typename U = T, typename std::enable_if< not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0> - static void to_json(Json &j, T const &t) + static void to_json(Json &j, const T &t) { using nlohmann::to_json; to_json(j, t); @@ -541,9 +541,9 @@ struct pod_serializer template <typename Json, typename U = T, typename std::enable_if< std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> - static void to_json(Json &j, T const &t) noexcept + static void to_json(Json &j, const T &t) noexcept { - auto bytes = static_cast<unsigned char const *>(static_cast<void const *>(&t)); + auto bytes = static_cast< const unsigned char*>(static_cast<const void *>(&t)); std::uint64_t value = bytes[0]; for (auto i = 1; i < 8; ++i) value |= std::uint64_t{bytes[i]} << 8 * i; @@ -566,13 +566,13 @@ struct non_pod }; template <typename Json> -void to_json(Json& j, non_pod const& np) +void to_json(Json& j, const non_pod & np) { j = np.s; } template <typename Json> -void from_json(Json const& j, non_pod& np) +void from_json(const Json & j, non_pod& np) { np.s = j.template get<std::string>(); } @@ -583,7 +583,7 @@ bool operator==(small_pod lhs, small_pod rhs) noexcept std::tie(rhs.begin, rhs.middle, rhs.end); } -bool operator==(non_pod const &lhs, non_pod const &rhs) noexcept +bool operator==(const non_pod &lhs, const non_pod &rhs) noexcept { return lhs.s == rhs.s; } @@ -622,13 +622,13 @@ using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, boo template <typename T, typename> struct another_adl_serializer { - static void from_json(custom_json const& j , T& t) + static void from_json(const custom_json & j , T& t) { using nlohmann::from_json; from_json(j, t); } - static void to_json(custom_json& j , T const& t) + static void to_json(custom_json& j , const T & t) { using nlohmann::to_json; to_json(j, t); From 68081cd1129d5807132b6c1f1aceb074da310a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 15 Jan 2017 20:52:24 +0100 Subject: [PATCH 087/130] remove useless file --- src/json.hpp.re2c.rej | 98 ------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 src/json.hpp.re2c.rej diff --git a/src/json.hpp.re2c.rej b/src/json.hpp.re2c.rej deleted file mode 100644 index ab8fa89d3..000000000 --- a/src/json.hpp.re2c.rej +++ /dev/null @@ -1,98 +0,0 @@ -diff a/src/json.hpp.re2c b/src/json.hpp.re2c (rejected hunks) -@@ -389,40 +389,30 @@ struct is_compatible_object_type - typename BasicJson::object_t, CompatibleObjectType>::value; - }; - --template <bool B, class BasicJson, class CompatibleArrayType> --struct is_compatible_array_type_impl : std::false_type {}; -- --template <class BasicJson, class CompatibleArrayType> --struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType> -+template <typename BasicJson, typename T> -+struct is_basic_json_nested_type - { -- static constexpr auto value = -- not std::is_same<CompatibleArrayType, -- typename BasicJson::iterator>::value and -- not std::is_same<CompatibleArrayType, -- typename BasicJson::const_iterator>::value and -- not std::is_same<CompatibleArrayType, -- typename BasicJson::reverse_iterator>::value and -- not std::is_same<CompatibleArrayType, -- typename BasicJson::const_reverse_iterator>::value and -- not std::is_same<CompatibleArrayType, -- typename BasicJson::array_t::iterator>::value and -- not std::is_same<CompatibleArrayType, -- typename BasicJson::array_t::const_iterator>::value; -+ static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or -+ std::is_same<T, typename BasicJson::const_iterator>::value or -+ std::is_same<T, typename BasicJson::reverse_iterator>::value or -+ std::is_same<T, typename BasicJson::const_reverse_iterator>::value or -+ std::is_same<T, typename BasicJson::json_pointer>::value; - }; - - template <class BasicJson, class CompatibleArrayType> - struct is_compatible_array_type - { -- // the check for CompatibleArrayType = void is done in -- // `is_compatible_object_type`, but we need the conjunction here as well -- static auto constexpr value = is_compatible_array_type_impl< -- conjunction<negation<is_compatible_object_type< -+ // TODO concept Container? -+ // this might not make VS happy -+ static auto constexpr value = -+ conjunction<negation<std::is_same<void, CompatibleArrayType>>, -+ negation<is_compatible_object_type< - BasicJson, CompatibleArrayType>>, - negation<std::is_constructible<typename BasicJson::string_t, - CompatibleArrayType>>, -+ negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, - has_value_type<CompatibleArrayType>, -- has_iterator<CompatibleArrayType>>::value, -- BasicJson, CompatibleArrayType>::value; -+ has_iterator<CompatibleArrayType>>::value; - }; - - template <bool, typename, typename> -@@ -452,16 +442,6 @@ struct is_compatible_integer_type - RealIntegerType, CompatibleNumberIntegerType > ::value; - }; - --template <typename BasicJson, typename T> --struct is_basic_json_nested_type --{ -- static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or -- std::is_same<T, typename BasicJson::const_iterator>::value or -- std::is_same<T, typename BasicJson::reverse_iterator>::value or -- std::is_same<T, typename BasicJson::const_reverse_iterator>::value or -- std::is_same<T, typename BasicJson::json_pointer>::value; --}; -- - // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists - template <template <typename, typename> class JSONSerializer, typename Json, typename T> - struct has_from_json -@@ -510,8 +490,6 @@ struct has_to_json - detect(std::declval<JSONSerializer<T, void>>()))>::value; - }; - --template <typename Json, typename > -- - // those declarations are needed to workaround a MSVC bug related to ADL - // (taken from MSVC-Ranges implementation) - void to_json(); -@@ -728,12 +706,9 @@ template < - typename Json, typename ArithmeticType, - enable_if_t< - std::is_arithmetic<ArithmeticType>::value and -- not std::is_same<ArithmeticType, -- typename Json::number_unsigned_t>::value and -- not std::is_same<ArithmeticType, -- typename Json::number_integer_t>::value and -- not std::is_same<ArithmeticType, -- typename Json::number_float_t>::value and -+ not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and -+ not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and -+ not std::is_same<ArithmeticType, typename Json::number_float_t>::value and - not std::is_same<ArithmeticType, typename Json::boolean_t>::value, - int> = 0> - void from_json(Json const &j, ArithmeticType &val) From 794dae8911d2a4ea42a28066a536d3b5f42227d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 15 Jan 2017 21:01:29 +0100 Subject: [PATCH 088/130] apply changes to json.hpp.re2c --- src/json.hpp.re2c | 191 ++++++++++++++++++++++++++++++---------------- 1 file changed, 125 insertions(+), 66 deletions(-) diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 5dc2e0277..4dbeda8a8 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -168,7 +168,7 @@ using is_unscoped_enum = namespace detail { -template <typename Json> std::string type_name(Json const &j) +template <typename Json> std::string type_name(const Json &j) { switch (j.m_type) { @@ -189,6 +189,11 @@ template <typename Json> std::string type_name(Json const &j) } } +// dispatch utility (taken from ranges-v3) +template <unsigned N> struct priority_tag : priority_tag<N - 1> {}; + +template <> struct priority_tag<0> {}; + // This is an experiment. I need this to move constructors out of basic_json. // I'm sure there is a better way, but this might need a big basic_json refactoring template <value_t> struct external_constructor; @@ -491,14 +496,15 @@ template <typename Json, typename ArithmeticType, not std::is_same<ArithmeticType, typename Json::boolean_t>::value, int> = 0> -void get_arithmetic_value(Json const &j, ArithmeticType &val) +void get_arithmetic_value(const Json &j, ArithmeticType &val) { - if (j.is_number_integer()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>(); - else if (j.is_number_unsigned()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>(); + // unsigned must be checked first, since is_number_integer() == true for unsigned + if (j.is_number_unsigned()) + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); + else if (j.is_number_integer()) + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); else if (j.is_number_float()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); else throw std::domain_error("type must be number, but is " + type_name(j)); } @@ -522,7 +528,7 @@ template <typename Json, typename FloatType, enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> void to_json(Json &j, FloatType val) noexcept { - external_constructor<value_t::number_float>::construct(j, val); + external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val)); } @@ -533,7 +539,7 @@ template < int> = 0> void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept { - external_constructor<value_t::number_unsigned>::construct(j, val); + external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val)); } template < @@ -543,7 +549,7 @@ template < int> = 0> void to_json(Json &j, CompatibleNumberIntegerType val) noexcept { - external_constructor<value_t::number_integer>::construct(j, val); + external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val)); } template <typename Json, typename UnscopedEnumType, @@ -559,7 +565,7 @@ template < is_compatible_array_type<Json, CompatibleArrayType>::value or std::is_same<typename Json::array_t, CompatibleArrayType>::value, int> = 0> -void to_json(Json &j, CompatibleArrayType const &arr) +void to_json(Json &j, const CompatibleArrayType &arr) { external_constructor<value_t::array>::construct(j, arr); } @@ -568,48 +574,48 @@ template < typename Json, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, int> = 0> -void to_json(Json &j, CompatibleObjectType const &arr) +void to_json(Json &j, const CompatibleObjectType &arr) { external_constructor<value_t::object>::construct(j, arr); } template <typename Json> -void from_json(Json const& j, typename Json::boolean_t& b) +void from_json(const Json & j, typename Json::boolean_t& b) { if (!j.is_boolean()) throw std::domain_error("type must be boolean, but is " + type_name(j)); - b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); + b = *j.template get_ptr<const typename Json::boolean_t*>(); } template <typename Json> -void from_json(Json const& j, typename Json::string_t& s) +void from_json(const Json & j, typename Json::string_t& s) { if (!j.is_string()) throw std::domain_error("type must be string, but is " + type_name(j)); - s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>(); + s = *j.template get_ptr<const typename Json::string_t*>(); } template <typename Json> -void from_json(Json const& j, typename Json::number_float_t& val) +void from_json(const Json & j, typename Json::number_float_t& val) { get_arithmetic_value(j, val); } template <typename Json> -void from_json(Json const& j, typename Json::number_unsigned_t& val) +void from_json(const Json & j, typename Json::number_unsigned_t& val) { get_arithmetic_value(j, val); } template <typename Json> -void from_json(Json const& j, typename Json::number_integer_t& val) +void from_json(const Json & j, typename Json::number_integer_t& val) { get_arithmetic_value(j, val); } template <typename Json, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void from_json(Json const &j, UnscopedEnumType& e) +void from_json(const Json &j, UnscopedEnumType& e) { typename std::underlying_type<UnscopedEnumType>::type val = e; get_arithmetic_value(j, val); @@ -617,16 +623,16 @@ void from_json(Json const &j, UnscopedEnumType& e) } template <typename Json> -void from_json(Json const &j, typename Json::array_t &arr) +void from_json(const Json &j, typename Json::array_t &arr) { if (!j.is_array()) throw std::domain_error("type must be array, but is " + type_name(j)); - arr = *const_cast<Json&>(j).template get_ptr<typename Json::array_t*>(); + arr = *j.template get_ptr<const typename Json::array_t*>(); } // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list template <typename Json, typename T, typename Allocator> -void from_json(Json const&j, std::forward_list<T, Allocator>& l) +void from_json(const Json &j, std::forward_list<T, Allocator>& l) { // do not perform the check when user wants to retrieve jsons // (except when it's null.. ?) @@ -641,13 +647,47 @@ void from_json(Json const&j, std::forward_list<T, Allocator>& l) l.push_front(it->template get<T>()); } +template <typename Json, typename CompatibleArrayType> +void from_json_array_impl(const Json &j, CompatibleArrayType &arr, priority_tag<0>) +{ + using std::begin; + using std::end; + + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json &i) + { + // get<Json>() returns *this, this won't call a from_json method when + // value_type is Json + return i.template get<typename CompatibleArrayType::value_type>(); + }); +} + +template <typename Json, typename CompatibleArrayType> +auto from_json_array_impl(const Json &j, CompatibleArrayType &arr, priority_tag<1>) + -> decltype( + arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), + void()) +{ + using std::begin; + using std::end; + + arr.reserve(j.size()); + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json &i) + { + // get<Json>() returns *this, this won't call a from_json method when + // value_type is Json + return i.template get<typename CompatibleArrayType::value_type>(); + }); +} + template < typename Json, typename CompatibleArrayType, enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and not std::is_same<typename Json::array_t, CompatibleArrayType>::value, int> = 0> -void from_json(Json const &j, CompatibleArrayType &arr) +void from_json(const Json &j, CompatibleArrayType &arr) { if (j.is_null()) throw std::domain_error("type must be array, but is " + type_name(j)); @@ -657,16 +697,7 @@ void from_json(Json const &j, CompatibleArrayType &arr) if (!j.is_array()) throw std::domain_error("type must be array, but is " + type_name(j)); } - - using std::begin; - using std::end; - std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i) - { - // get<Json>() returns *this, this won't call a from_json method when - // value_type is Json - return i.template get<typename CompatibleArrayType::value_type>(); - }); + from_json_array_impl(j, arr, priority_tag<1>{}); } @@ -674,12 +705,12 @@ template < typename Json, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, int> = 0> -void from_json(Json const &j, CompatibleObjectType &obj) +void from_json(const Json &j, CompatibleObjectType &obj) { if (!j.is_object()) throw std::domain_error("type must be object, but is " + type_name(j)); - auto inner_object = const_cast<Json&>(j).template get_ptr<typename Json::object_t*>(); + auto inner_object = j.template get_ptr<const typename Json::object_t*>(); using std::begin; using std::end; // we could avoid the assignment, but this might require a for loop, which @@ -700,16 +731,16 @@ template < not std::is_same<ArithmeticType, typename Json::number_float_t>::value and not std::is_same<ArithmeticType, typename Json::boolean_t>::value, int> = 0> -void from_json(Json const &j, ArithmeticType &val) +void from_json(const Json &j, ArithmeticType &val) { - if (j.is_number_integer()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>(); - else if (j.is_number_unsigned()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>(); + if (j.is_number_unsigned()) + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); + else if (j.is_number_integer()) + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); else if (j.is_number_float()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); else if (j.is_boolean()) - val = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>(); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>()); else throw std::domain_error("type must be number, but is " + type_name(j)); } @@ -717,24 +748,53 @@ void from_json(Json const &j, ArithmeticType &val) struct to_json_fn { template <typename Json, typename T> - constexpr auto operator()(Json&& j, T&& val) const - noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val)))) - -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), + auto call(Json& j, T&& val, priority_tag<1>) const + noexcept(noexcept(to_json(j, std::forward<T>(val)))) + -> decltype(to_json(j, std::forward<T>(val)), void()) { - return to_json(std::forward<Json>(j), std::forward<T>(val)); + return to_json(j, std::forward<T>(val)); } + + template <typename Json, typename T> + void call(Json&, T&&, priority_tag<0>) const noexcept + { + static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called"); + } + +public: + template <typename Json, typename T> + void operator()(Json &j, T &&val) const + noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1>{}))) + { + return call(j, std::forward<T>(val), priority_tag<1>{}); + } }; struct from_json_fn { - template <typename Json, typename T> - constexpr auto operator()(Json&& j, T& val) const - noexcept(noexcept(from_json(std::forward<Json>(j), val))) - -> decltype(from_json(std::forward<Json>(j), val), void()) - { - return from_json(std::forward<Json>(j), val); - } +private: + template <typename Json, typename T> + auto call(const Json &j, T &val, priority_tag<1>) const + noexcept(noexcept(from_json(j, val))) + -> decltype(from_json(j, val), void()) + { + return from_json(j, val); + } + + template <typename Json, typename T> + void call(const Json &, T&, priority_tag<0>) const noexcept + { + static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); + } + +public: + template <typename Json, typename T> + void operator()(const Json &j, T &val) const + noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{}))) + { + return call(j, val, priority_tag<1>{}); + } }; /*! @@ -756,7 +816,6 @@ struct DecimalSeparator : std::numpunct<char> return '.'; } }; - } // taken from ranges-v3 @@ -772,8 +831,8 @@ constexpr T static_const<T>::value; inline namespace { -constexpr auto const& to_json = static_const<detail::to_json_fn>::value; -constexpr auto const& from_json = static_const<detail::from_json_fn>::value; +constexpr const auto & to_json = static_const<detail::to_json_fn>::value; +constexpr const auto & from_json = static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument @@ -788,9 +847,10 @@ struct adl_serializer } template <typename Json, typename T> - static void to_json(Json& j, T&& val) + static void to_json(Json &j, T &&val) noexcept( + noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) { - ::nlohmann::to_json(j, std::forward<T>(val)); + ::nlohmann::to_json(j, std::forward<T>(val)); } }; @@ -888,7 +948,7 @@ class basic_json { private: template <::nlohmann::value_t> friend struct detail::external_constructor; - template <typename Json> friend std::string detail::type_name(Json const &); + template <typename Json> friend std::string detail::type_name(const Json &); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -2967,16 +3027,16 @@ class basic_json uncvref_t<T>>::value, int> = 0> // do we really want the uncvref ? if a user call get<int &>, shouldn't we - // i know there is a special behaviour for boolean_t* and such // static assert ? + // i know there is a special behaviour for boolean_t* and such auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json( - std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>()))) + std::declval<const basic_json_t &>(), std::declval<uncvref_t<T> &>()))) -> uncvref_t<T> { using type = uncvref_t<T>; - static_assert(std::is_default_constructible<type>::value && + static_assert(std::is_default_constructible<type>::value and std::is_copy_constructible<type>::value, - "user-defined types must be DefaultConstructible and " + "Types must be DefaultConstructible and " "CopyConstructible when used with get"); type ret; JSONSerializer<type>::from_json(*this, ret); @@ -2992,12 +3052,11 @@ class basic_json detail::has_non_default_from_json<basic_json_t, uncvref_t<T>>::value, int> = 0> - constexpr uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>()))) + uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t &>()))) { return JSONSerializer<T>::from_json(*this); } - // TODO what to do with those... /*! @brief get a pointer value (explicit) From e60e458a7e7d9fe6a18fabfc3930711483afb74f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 15 Jan 2017 21:18:58 +0100 Subject: [PATCH 089/130] move static_const to the detail namespace --- src/json.hpp | 25 ++++++++++++------------- src/json.hpp.re2c | 25 ++++++++++++------------- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 2457f5d70..8e14b5cdf 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -797,6 +797,16 @@ public: } }; +// taken from ranges-v3 +template <typename T> +struct static_const +{ + static constexpr T value{}; +}; + +template <typename T> +constexpr T static_const<T>::value; + /*! @brief helper class to create locales with decimal point @@ -818,21 +828,10 @@ struct DecimalSeparator : std::numpunct<char> }; } -// taken from ranges-v3 -// TODO add doc -template <typename T> -struct static_const -{ - static constexpr T value{}; -}; - -template <typename T> -constexpr T static_const<T>::value; - inline namespace { -constexpr const auto & to_json = static_const<detail::to_json_fn>::value; -constexpr const auto & from_json = static_const<detail::from_json_fn>::value; +constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value; +constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 4dbeda8a8..f4d0cf8de 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -797,6 +797,16 @@ public: } }; +// taken from ranges-v3 +template <typename T> +struct static_const +{ + static constexpr T value{}; +}; + +template <typename T> +constexpr T static_const<T>::value; + /*! @brief helper class to create locales with decimal point @@ -818,21 +828,10 @@ struct DecimalSeparator : std::numpunct<char> }; } -// taken from ranges-v3 -// TODO add doc -template <typename T> -struct static_const -{ - static constexpr T value{}; -}; - -template <typename T> -constexpr T static_const<T>::value; - inline namespace { -constexpr const auto & to_json = static_const<detail::to_json_fn>::value; -constexpr const auto & from_json = static_const<detail::from_json_fn>::value; +constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value; +constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument From 1d87097741520289ae5ab4cc49c8db546ccd9209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 15 Jan 2017 22:08:33 +0100 Subject: [PATCH 090/130] remove some boilerplate --- src/json.hpp | 22 +++++++++++----------- src/json.hpp.re2c | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 8e14b5cdf..9d4a548a2 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -3019,26 +3019,26 @@ class basic_json // the latter is preferred if both are present (since it does not require a default construction of T) template < typename T, + typename U = uncvref_t<T>, enable_if_t< - not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_from_json<basic_json_t, uncvref_t<T>>::value and + not std::is_same<basic_json_t, U>::value and + detail::has_from_json<basic_json_t, U>::value and not detail::has_non_default_from_json<basic_json_t, - uncvref_t<T>>::value, + U>::value, int> = 0> // do we really want the uncvref ? if a user call get<int &>, shouldn't we // static assert ? // i know there is a special behaviour for boolean_t* and such - auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json( - std::declval<const basic_json_t &>(), std::declval<uncvref_t<T> &>()))) - -> uncvref_t<T> + auto get() const noexcept(noexcept(JSONSerializer<U>::from_json( + std::declval<const basic_json_t &>(), std::declval<U &>()))) + -> U { - using type = uncvref_t<T>; - static_assert(std::is_default_constructible<type>::value and - std::is_copy_constructible<type>::value, + static_assert(std::is_default_constructible<U>::value and + std::is_copy_constructible<U>::value, "Types must be DefaultConstructible and " "CopyConstructible when used with get"); - type ret; - JSONSerializer<type>::from_json(*this, ret); + U ret; + JSONSerializer<U>::from_json(*this, ret); return ret; } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index f4d0cf8de..4b28a0323 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -3019,26 +3019,26 @@ class basic_json // the latter is preferred if both are present (since it does not require a default construction of T) template < typename T, + typename U = uncvref_t<T>, enable_if_t< - not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_from_json<basic_json_t, uncvref_t<T>>::value and + not std::is_same<basic_json_t, U>::value and + detail::has_from_json<basic_json_t, U>::value and not detail::has_non_default_from_json<basic_json_t, - uncvref_t<T>>::value, + U>::value, int> = 0> // do we really want the uncvref ? if a user call get<int &>, shouldn't we // static assert ? // i know there is a special behaviour for boolean_t* and such - auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json( - std::declval<const basic_json_t &>(), std::declval<uncvref_t<T> &>()))) - -> uncvref_t<T> + auto get() const noexcept(noexcept(JSONSerializer<U>::from_json( + std::declval<const basic_json_t &>(), std::declval<U &>()))) + -> U { - using type = uncvref_t<T>; - static_assert(std::is_default_constructible<type>::value and - std::is_copy_constructible<type>::value, + static_assert(std::is_default_constructible<U>::value and + std::is_copy_constructible<U>::value, "Types must be DefaultConstructible and " "CopyConstructible when used with get"); - type ret; - JSONSerializer<type>::from_json(*this, ret); + U ret; + JSONSerializer<U>::from_json(*this, ret); return ret; } From af94e712c771cabe446b1f3512dc901d40b97e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 15 Jan 2017 22:08:49 +0100 Subject: [PATCH 091/130] add basic doxygen documentations --- doc/Doxyfile | 2 +- src/json.hpp | 101 ++++++++++++++++++++++++++++++---------------- src/json.hpp.re2c | 101 ++++++++++++++++++++++++++++++---------------- 3 files changed, 135 insertions(+), 69 deletions(-) diff --git a/doc/Doxyfile b/doc/Doxyfile index 5064a0a0c..4d511af31 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -109,7 +109,7 @@ RECURSIVE = NO EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = nlohmann::anonymous_namespace +EXCLUDE_SYMBOLS = nlohmann::detail EXAMPLE_PATH = examples EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO diff --git a/src/json.hpp b/src/json.hpp index 9d4a548a2..838d2d071 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -116,20 +116,20 @@ namespace nlohmann @brief the JSON type enumeration This enumeration collects the different JSON types. It is internally used -to distinguish the stored values, and the functions @ref is_null(), @ref -is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref -is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and -@ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and -@ref is_structured() rely on it. +to distinguish the stored values, and the functions @ref basic_json::is_null(), @ref +basic_json::is_object(), @ref basic_json::is_array(), @ref basic_json::is_string(), @ref basic_json::is_boolean(), @ref +basic_json::is_number() (with @ref basic_json::is_number_integer(), @ref basic_json::is_number_unsigned(), and +@ref basic_json::is_number_float()), @ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +@ref basic_json::is_structured() rely on it. @note There are three enumeration entries (number_integer, number_unsigned, and number_float), because the library distinguishes -these three types for numbers: @ref number_unsigned_t is used for unsigned -integers, @ref number_integer_t is used for signed integers, and @ref -number_float_t is used for floating-point numbers or to approximate +these three types for numbers: @ref basic_json::number_unsigned_t is used for unsigned +integers, @ref basic_json::number_integer_t is used for signed integers, and @ref +basic_json::number_float_t is used for floating-point numbers or to approximate integers which do not fit in the limits of their respective type. -@sa @ref basic_json(const value_t value_type) -- create a JSON value with +@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON value with the default value for a given type @since version 1.0.0 @@ -1800,18 +1800,6 @@ class basic_json @liveexample{The following code shows the constructor for different @ref value_t values,basic_json__value_t} - @sa @ref basic_json(std::nullptr_t) -- create a `null` value - @sa @ref basic_json(boolean_t value) -- create a boolean value - @sa @ref basic_json(const string_t&) -- create a string value - @sa @ref basic_json(const object_t&) -- create a object value - @sa @ref basic_json(const array_t&) -- create a array value - @sa @ref basic_json(const number_float_t) -- create a number - (floating-point) value - @sa @ref basic_json(const number_integer_t) -- create a number (integer) - value - @sa @ref basic_json(const number_unsigned_t) -- create a number (unsigned) - value - @since version 1.0.0 */ basic_json(const value_t value_type) @@ -1844,9 +1832,21 @@ class basic_json assert_invariant(); } - // constructor chosen when: - // - JSONSerializer::to_json exists for type T - // - T is not a istream, nor convertible to basic_json (float, vectors, etc) + /*! + @brief forwards the parameter to json_serializer<U>::to_json method (U = uncvref_t<T>) + + this constructor is chosen if: + - T is not derived from std::istream + - T is not @ref basic_json (to avoid hijacking copy/move constructors) + - T is not a @ref basic_json nested type (@ref json_pointer, @ref iterator, etc ...) + - @ref json_serializer<U> has a to_json(basic_json_t&, T&&) method + + @param[in] val the value to be forwarded + + @throw what json_serializer<U>::to_json throws + + @since version 2.1.0 + */ template <typename T, typename U = uncvref_t<T>, enable_if_t<not std::is_base_of<std::istream, U>::value and not std::is_same<U, basic_json_t>::value and @@ -3003,7 +3003,19 @@ class basic_json } public: - // if T is basic_json, simply returns *this + /*! + @brief get special-case overload + + This overloads avoids a lot of template boilerplate, it can be seen as the identity method + + @tparam T type; T == @ref basic_json + + @return a copy of *this + + @complexity Constant. + + @since version 2.1.0 + */ template <typename T, enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> basic_json get() const @@ -3011,12 +3023,21 @@ class basic_json return *this; } - // This overload is chosen when: - // - T is not basic_json_t - // - JSONSerializer<T>::from_json(basic_json const&, T&) exists - // - and JSONSerializer<T>::from_json(basic_json const&) does not exist - // - // the latter is preferred if both are present (since it does not require a default construction of T) + /*! + @brief get overload for CopyConstructible and DefaultConstructible types + construct a default U value, and call @ref json_serializer<U> from_json method with it + + This overloads is chosen if: + - U is not @ref basic_json + - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&) + - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&); + + @return a value of type U + + @throw what json_serializer<U> from_json method throws + + @since version 2.1.0 + */ template < typename T, typename U = uncvref_t<T>, @@ -3042,9 +3063,21 @@ class basic_json return ret; } - // This overload is chosen when: - // - T is not basic_json_t - // - and JSONSerializer<T>::from_json(basic_json const&) does not exist + /*! + @brief get overload for types than cannot be default constructed or copy constructed + + If @ref json_serializer<U> has both overloads of from_json, this one is chosen + + This overloads is chosen if: + - U is not @ref basic_json + - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&); + + @return a value of type U + + @throw what json_serializer<U> from_json method throws + + @since version 2.1.0 + */ template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 4b28a0323..a35391800 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -116,20 +116,20 @@ namespace nlohmann @brief the JSON type enumeration This enumeration collects the different JSON types. It is internally used -to distinguish the stored values, and the functions @ref is_null(), @ref -is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref -is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and -@ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and -@ref is_structured() rely on it. +to distinguish the stored values, and the functions @ref basic_json::is_null(), @ref +basic_json::is_object(), @ref basic_json::is_array(), @ref basic_json::is_string(), @ref basic_json::is_boolean(), @ref +basic_json::is_number() (with @ref basic_json::is_number_integer(), @ref basic_json::is_number_unsigned(), and +@ref basic_json::is_number_float()), @ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +@ref basic_json::is_structured() rely on it. @note There are three enumeration entries (number_integer, number_unsigned, and number_float), because the library distinguishes -these three types for numbers: @ref number_unsigned_t is used for unsigned -integers, @ref number_integer_t is used for signed integers, and @ref -number_float_t is used for floating-point numbers or to approximate +these three types for numbers: @ref basic_json::number_unsigned_t is used for unsigned +integers, @ref basic_json::number_integer_t is used for signed integers, and @ref +basic_json::number_float_t is used for floating-point numbers or to approximate integers which do not fit in the limits of their respective type. -@sa @ref basic_json(const value_t value_type) -- create a JSON value with +@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON value with the default value for a given type @since version 1.0.0 @@ -1800,18 +1800,6 @@ class basic_json @liveexample{The following code shows the constructor for different @ref value_t values,basic_json__value_t} - @sa @ref basic_json(std::nullptr_t) -- create a `null` value - @sa @ref basic_json(boolean_t value) -- create a boolean value - @sa @ref basic_json(const string_t&) -- create a string value - @sa @ref basic_json(const object_t&) -- create a object value - @sa @ref basic_json(const array_t&) -- create a array value - @sa @ref basic_json(const number_float_t) -- create a number - (floating-point) value - @sa @ref basic_json(const number_integer_t) -- create a number (integer) - value - @sa @ref basic_json(const number_unsigned_t) -- create a number (unsigned) - value - @since version 1.0.0 */ basic_json(const value_t value_type) @@ -1844,9 +1832,21 @@ class basic_json assert_invariant(); } - // constructor chosen when: - // - JSONSerializer::to_json exists for type T - // - T is not a istream, nor convertible to basic_json (float, vectors, etc) + /*! + @brief forwards the parameter to json_serializer<U>::to_json method (U = uncvref_t<T>) + + this constructor is chosen if: + - T is not derived from std::istream + - T is not @ref basic_json (to avoid hijacking copy/move constructors) + - T is not a @ref basic_json nested type (@ref json_pointer, @ref iterator, etc ...) + - @ref json_serializer<U> has a to_json(basic_json_t&, T&&) method + + @param[in] val the value to be forwarded + + @throw what json_serializer<U>::to_json throws + + @since version 2.1.0 + */ template <typename T, typename U = uncvref_t<T>, enable_if_t<not std::is_base_of<std::istream, U>::value and not std::is_same<U, basic_json_t>::value and @@ -3003,7 +3003,19 @@ class basic_json } public: - // if T is basic_json, simply returns *this + /*! + @brief get special-case overload + + This overloads avoids a lot of template boilerplate, it can be seen as the identity method + + @tparam T type; T == @ref basic_json + + @return a copy of *this + + @complexity Constant. + + @since version 2.1.0 + */ template <typename T, enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> basic_json get() const @@ -3011,12 +3023,21 @@ class basic_json return *this; } - // This overload is chosen when: - // - T is not basic_json_t - // - JSONSerializer<T>::from_json(basic_json const&, T&) exists - // - and JSONSerializer<T>::from_json(basic_json const&) does not exist - // - // the latter is preferred if both are present (since it does not require a default construction of T) + /*! + @brief get overload for CopyConstructible and DefaultConstructible types + construct a default U value, and call @ref json_serializer<U> from_json method with it + + This overloads is chosen if: + - U is not @ref basic_json + - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&) + - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&); + + @return a value of type U + + @throw what json_serializer<U> from_json method throws + + @since version 2.1.0 + */ template < typename T, typename U = uncvref_t<T>, @@ -3042,9 +3063,21 @@ class basic_json return ret; } - // This overload is chosen when: - // - T is not basic_json_t - // - and JSONSerializer<T>::from_json(basic_json const&) does not exist + /*! + @brief get overload for types than cannot be default constructed or copy constructed + + If @ref json_serializer<U> has both overloads of from_json, this one is chosen + + This overloads is chosen if: + - U is not @ref basic_json + - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&); + + @return a value of type U + + @throw what json_serializer<U> from_json method throws + + @since version 2.1.0 + */ template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and From b56117b148b346b78a9928764b03326bce96d3df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Mon, 16 Jan 2017 21:59:47 +0100 Subject: [PATCH 092/130] add noexcept tests --- src/json.hpp | 2 +- src/json.hpp.re2c | 2 +- test/src/unit-noexcept.cpp | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 838d2d071..9c0a8168b 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -840,7 +840,7 @@ template <typename = void, typename = void> struct adl_serializer { template <typename Json, typename T> - static void from_json(Json&& j, T& val) + static void from_json(Json&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<Json>(j), val))) { ::nlohmann::from_json(std::forward<Json>(j), val); } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index a35391800..8fbff2ad5 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -840,7 +840,7 @@ template <typename = void, typename = void> struct adl_serializer { template <typename Json, typename T> - static void from_json(Json&& j, T& val) + static void from_json(Json&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<Json>(j), val))) { ::nlohmann::from_json(std::forward<Json>(j), val); } diff --git a/test/src/unit-noexcept.cpp b/test/src/unit-noexcept.cpp index 212abdf71..de13e0578 100644 --- a/test/src/unit-noexcept.cpp +++ b/test/src/unit-noexcept.cpp @@ -13,6 +13,8 @@ struct pod_bis {}; void to_json(json &, pod) noexcept; void to_json(json &, pod_bis); +void from_json(const json&, pod) noexcept; +void from_json(const json&, pod_bis); static json j; static_assert(noexcept(json{}), ""); @@ -25,3 +27,6 @@ static_assert(not noexcept(nlohmann::to_json(j, pod_bis{})), ""); static_assert(noexcept(json(2)), ""); static_assert(noexcept(json(test{})), ""); static_assert(noexcept(json(pod{})), ""); +static_assert(noexcept(j.get<pod>()), ""); +static_assert(not noexcept(j.get<pod_bis>()), ""); +static_assert(noexcept(json(pod{})), ""); From fbac056c381b48499498ca355a811d082998d349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Mon, 16 Jan 2017 23:23:06 +0100 Subject: [PATCH 093/130] add readme --- README.md | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) diff --git a/README.md b/README.md index 69676370a..b64c14171 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ - [Conversion from STL containers](#conversion-from-stl-containers) - [JSON Pointer and JSON Patch](#json-pointer-and-json-patch) - [Implicit conversions](#implicit-conversions) + - [Conversions to arbitrary types](#arbitrary-types-conversions) - [Binary formats (CBOR and MessagePack)](#binary-formats-cbor-and-messagepack) - [Supported compilers](#supported-compilers) - [License](#license) @@ -441,6 +442,218 @@ int vi = jn.get<int>(); // etc. ``` +### Arbitrary types conversions + +Every type can be serialized in JSON, not just STL-containers and scalar types. +Usually, you would do something along those lines: + +```cpp +namespace ns { +struct person { std::string name; std::string address; int age; }; +} +// convert to JSON +json j; +ns::person p = createSomeone(); +j["name"] = p.name; +j["address"] = p.address; +j["age"] = p.age; + +// ... + +// convert from JSON +ns::person p {j["name"].get<std::string>(), j["address"].get<std::string>(), j["age"].get<int>()}; +``` + +It works, but that's quite a lot of boilerplate.. Hopefully, there's a better way: + +```cpp +ns::person p = createPerson(); +json j = p; + +auto p2 = j.get<ns::person>(); +assert(p == p2); +``` + +#### Basic usage + +To make this work with one of your types, you only need to provide two methods: + +```cpp +using nlohmann::json; + +namespace ns { +void to_json(json& j, person const& p) +{ + j = json{{"name", p.name}, {"address", p.address}, {"age", p.age}}; +} + +void from_json(json const& j, person& p) +{ + p.name = j["name"].get<std::string>(); + p.address = j["address"].get<std::string>(); + p.age = j["age"].get<int>(); +} +} // namespace ns +``` + +That's all. When calling the json constructor with your type, your custom `to_json` method will be automatically called. +Likewise, when calling `get<your_type>()`, the `from_json` method will be called. + +Some important things: + +* Those methods **MUST** be in your type's namespace, or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined). +* When using `get<your_type>()`, `your_type` **MUST** be DefaultConstructible and CopyConstructible (There is a way to bypass those requirements described later) + +#### How do I convert third-party types? + +This requires a bit more advanced technique. +But first, let's see how this conversion mechanism works: + +The library uses **JSON Serializers** to convert types to json. +The default serializer for `nlohmann::json` is `nlohmann::adl_serializer` (ADL means [Argument-Dependent Lookup](http://en.cppreference.com/w/cpp/language/adl)) + +It is implemented like this (simplified): + +```cpp +template <typename T> +struct adl_serializer +{ + static void to_json(json& j, const T& value) + { + // calls the "to_json" method in T's namespace + } + + static void from_json(const json& j, T& value) + { + // same thing, but with the "from_json" method + } +}; +``` + +This serializer works fine when you have control over the type's namespace. +However, what about `boost::optional`, or `std::filesystem::path` (C++17)? + +Hijacking the `boost` namespace is pretty bad, and it's illegal to add something other than template specializations to `std`... + +To solve this, you need to add a specialization of `adl_serializer` to the `nlohmann` namespace, here's an example: + +```cpp +// partial specialization (full specialization works too) +namespace nlohmann { +template <typename T> +struct adl_serializer<boost::optional<T>> +{ + static void to_json(json& j, const boost::optional<T>& opt) + { + if (opt == boost::none) + j = nullptr; + else + j = *opt; // this will call adl_serializer<T>::to_json, which will find the free function to_json in T's namespace! + } + + static void from_json(const json& j, boost::optional<T>& opt) + { + if (!j.is_null()) + opt = j.get<T>(); // same as above, but with adl_serializer<T>::from_json + } +}; +} +``` + +#### How can I use `get()` for non-default constructible/non-copyable types? + +There is a way, if your type is **MoveConstructible**. +You will need to specialize the `adl_serializer` as well, but with a special `from_json` overload: + +```cpp +struct move_only_type { + move_only_type() = delete; + move_only_type(int ii): i(ii) {} + move_only_type(const move_only_type&) = delete; + move_only_type(move_only_type&&) = default; + : + int i; +}; + +namespace nlohmann { +template <> +struct adl_serializer<move_only_type> +{ + // note: the return type is no longer 'void', and the method only takes one argument + static move_only_type from_json(const json& j) + { + return {j.get<int>()}; + } + + // Here's the catch! You must provide a to_json method! + // Otherwise you will not be able to convert move_only_type to json, + // since you fully specialized adl_serializer on that type + static void to_json(json& j, move_only_type t) + { + j = t.i; + } +}; +} +``` + +#### Can I write my own serializer? (Advanced use) + +Yes. You might want to take a look at `unit-udt.cpp` in the test suite, to see a few examples. + +If you write your own serializer, you'll need to do a few things: + +* use a different `basic_json` alias than nlohmann::json (the last template parameter of basic_json is the JSONSerializer) +* use your `basic_json` alias (or a template parameter) in all your `to_json`/`from_json` methods +* use `nlohmann::to_json` and `nlohmann::from_json` when you need ADL + +Here is an example, without simplifications, that only accepts types with a size <= 32, and uses ADL. + +```cpp +// You should use void as a second template argument if you don't need compile-time checks on T +template <typename T, typename SFINAE = typename std::enable_if<sizeof(T) <= 32>::type> +struct less_than_32_serializer // if someone tries to use a type bigger than 32, the compiler will complain +{ + template <typename Json> + static void to_json(Json& j, T value) + { + // we want to use ADL, and call the correct to_json overload + using nlohmann::to_json; // this method is called by adl_serializer, this is where the magic happens + to_json(j, value); + } + + template <typename Json> + static void from_json(const Json& j, T& value) + { + // same thing here + using nlohmann::from_json; + from_json(j, value); + } +}; +``` + +Be **very** careful when reimplementing your serializer, you can stack overflow if you don't pay attention: + +```cpp +template <typename T, void> +struct bad_serializer +{ + template <typename Json> + static void to_json(Json& j, const T& value) + { + // this calls Json::json_serializer<T>::to_json(j, value); + // if Json::json_serializer == bad_serializer ... oops! + j = value; + } + + template <typename Json> + static void to_json(const Json& j, T& value) + { + // this calls Json::json_serializer<T>::from_json(j, value); + // if Json::json_serializer == bad_serializer ... oops! + value = j.template get<T>(); // oops! + } +}; +``` ### Binary formats (CBOR and MessagePack) From 3e15b551e01679bca7e27d08d39aaca6774465cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Tue, 17 Jan 2017 10:32:35 +0100 Subject: [PATCH 094/130] run make pretty --- src/json.hpp | 6492 ++++++++++++++++++--------------- src/json.hpp.re2c | 5270 +++++++++++++------------- test/src/unit-conversions.cpp | 8 +- test/src/unit-noexcept.cpp | 4 +- test/src/unit-regression.cpp | 2 +- test/src/unit-udt.cpp | 214 +- 6 files changed, 6274 insertions(+), 5716 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 9c0a8168b..fc7b60f20 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -136,15 +136,15 @@ the default value for a given type */ enum class value_t : uint8_t { - null, ///< null value - object, ///< object (unordered set of name/value pairs) - array, ///< array (ordered collection of values) - string, ///< string value - boolean, ///< boolean value - number_integer, ///< number value (signed integer) - number_unsigned, ///< number value (unsigned integer) - number_float, ///< number value (floating-point) - discarded ///< discarded by the the parser callback function + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + discarded ///< discarded by the the parser callback function }; // alias templates to reduce boilerplate @@ -168,29 +168,29 @@ using is_unscoped_enum = namespace detail { -template <typename Json> std::string type_name(const Json &j) +template <typename Json> std::string type_name(const Json& j) { - switch (j.m_type) - { - case value_t::null: - return "null"; - case value_t::object: - return "object"; - case value_t::array: - return "array"; - case value_t::string: - return "string"; - case value_t::boolean: - return "boolean"; - case value_t::discarded: - return "discarded"; - default: - return "number"; - } + switch (j.m_type) + { + case value_t::null: + return "null"; + case value_t::object: + return "object"; + case value_t::array: + return "array"; + case value_t::string: + return "string"; + case value_t::boolean: + return "boolean"; + case value_t::discarded: + return "discarded"; + default: + return "number"; + } } // dispatch utility (taken from ranges-v3) -template <unsigned N> struct priority_tag : priority_tag<N - 1> {}; +template <unsigned N> struct priority_tag : priority_tag < N - 1 > {}; template <> struct priority_tag<0> {}; @@ -201,120 +201,120 @@ template <value_t> struct external_constructor; template <> struct external_constructor<value_t::boolean> { - template <typename Json> - static void construct(Json &j, typename Json::boolean_t b) noexcept - { - j.m_type = value_t::boolean; - j.m_value = b; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, typename Json::boolean_t b) noexcept + { + j.m_type = value_t::boolean; + j.m_value = b; + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::string> { - template <typename Json> - static void construct(Json &j, const typename Json::string_t& s) - { - j.m_type = value_t::string; - j.m_value = s; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, const typename Json::string_t& s) + { + j.m_type = value_t::string; + j.m_value = s; + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::number_float> { - template <typename Json> - static void construct(Json &j, typename Json::number_float_t val) noexcept - { - // replace infinity and NAN by null - if (not std::isfinite(val)) - j = Json{}; - else + template <typename Json> + static void construct(Json& j, typename Json::number_float_t val) noexcept { - j.m_type = value_t::number_float; - j.m_value = val; + // replace infinity and NAN by null + if (not std::isfinite(val)) + j = Json{}; + else + { + j.m_type = value_t::number_float; + j.m_value = val; + } + j.assert_invariant(); } - j.assert_invariant(); - } }; template <> struct external_constructor<value_t::number_unsigned> { - template <typename Json> - static void construct(Json &j, typename Json::number_unsigned_t val) noexcept - { - j.m_type = value_t::number_unsigned; - j.m_value = val; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, typename Json::number_unsigned_t val) noexcept + { + j.m_type = value_t::number_unsigned; + j.m_value = val; + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::number_integer> { - template <typename Json> - static void construct(Json &j, typename Json::number_integer_t val) noexcept - { - j.m_type = value_t::number_integer; - j.m_value = val; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, typename Json::number_integer_t val) noexcept + { + j.m_type = value_t::number_integer; + j.m_value = val; + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::array> { - template <typename Json> - static void construct(Json &j, const typename Json::array_t& arr) - { - j.m_type = value_t::array; - j.m_value = arr; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, const typename Json::array_t& arr) + { + j.m_type = value_t::array; + j.m_value = arr; + j.assert_invariant(); + } - template <typename Json, typename CompatibleArrayType, - enable_if_t<not std::is_same<CompatibleArrayType, - typename Json::array_t>::value, - int> = 0> - static void construct(Json &j, const CompatibleArrayType &arr) - { - using std::begin; - using std::end; - j.m_type = value_t::array; - j.m_value.array = - j.template create<typename Json::array_t>(begin(arr), end(arr)); - j.assert_invariant(); - } + template <typename Json, typename CompatibleArrayType, + enable_if_t<not std::is_same<CompatibleArrayType, + typename Json::array_t>::value, + int> = 0> + static void construct(Json& j, const CompatibleArrayType& arr) + { + using std::begin; + using std::end; + j.m_type = value_t::array; + j.m_value.array = + j.template create<typename Json::array_t>(begin(arr), end(arr)); + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::object> { - template <typename Json> - static void construct(Json &j, const typename Json::object_t& obj) - { - j.m_type = value_t::object; - j.m_value = obj; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, const typename Json::object_t& obj) + { + j.m_type = value_t::object; + j.m_value = obj; + j.assert_invariant(); + } - template <typename Json, typename CompatibleObjectType, - enable_if_t<not std::is_same<CompatibleObjectType, - typename Json::object_t>::value, - int> = 0> - static void construct(Json &j, const CompatibleObjectType &obj) - { - using std::begin; - using std::end; + template <typename Json, typename CompatibleObjectType, + enable_if_t<not std::is_same<CompatibleObjectType, + typename Json::object_t>::value, + int> = 0> + static void construct(Json& j, const CompatibleObjectType& obj) + { + using std::begin; + using std::end; - j.m_type = value_t::object; - j.m_value.object = - j.template create<typename Json::object_t>(begin(obj), end(obj)); - j.assert_invariant(); - } + j.m_type = value_t::object; + j.m_value.object = + j.template create<typename Json::object_t>(begin(obj), end(obj)); + j.assert_invariant(); + } }; // Implementation of 2 C++17 constructs: conjunction, negation. @@ -380,11 +380,11 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> template<class BasicJson, class CompatibleObjectType> struct is_compatible_object_type { - static auto constexpr value = is_compatible_object_type_impl< - conjunction<negation<std::is_same<void, CompatibleObjectType>>, - has_mapped_type<CompatibleObjectType>, - has_key_type<CompatibleObjectType>>::value, - typename BasicJson::object_t, CompatibleObjectType>::value; + static auto constexpr value = is_compatible_object_type_impl < + conjunction<negation<std::is_same<void, CompatibleObjectType>>, + has_mapped_type<CompatibleObjectType>, + has_key_type<CompatibleObjectType>>::value, + typename BasicJson::object_t, CompatibleObjectType >::value; }; template <typename BasicJson, typename T> @@ -400,17 +400,17 @@ struct is_basic_json_nested_type template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - // TODO concept Container? - // this might not make VS happy - static auto constexpr value = + // TODO concept Container? + // this might not make VS happy + static auto constexpr value = conjunction<negation<std::is_same<void, CompatibleArrayType>>, - negation<is_compatible_object_type< - BasicJson, CompatibleArrayType>>, - negation<std::is_constructible<typename BasicJson::string_t, - CompatibleArrayType>>, - negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, - has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value; + negation<is_compatible_object_type< + BasicJson, CompatibleArrayType>>, + negation<std::is_constructible<typename BasicJson::string_t, + CompatibleArrayType>>, + negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value; }; template <bool, typename, typename> @@ -419,7 +419,7 @@ struct is_compatible_integer_type_impl : std::false_type {}; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> { - // is there an assert somewhere on overflows? + // is there an assert somewhere on overflows? using RealLimits = std::numeric_limits<RealIntegerType>; using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>; @@ -433,11 +433,11 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { - static constexpr auto - value = is_compatible_integer_type_impl < - std::is_integral<CompatibleNumberIntegerType>::value and - not std::is_same<bool, CompatibleNumberIntegerType>::value, - RealIntegerType, CompatibleNumberIntegerType > ::value; + static constexpr auto + value = is_compatible_integer_type_impl < + std::is_integral<CompatibleNumberIntegerType>::value and + not std::is_same<bool, CompatibleNumberIntegerType>::value, + RealIntegerType, CompatibleNumberIntegerType > ::value; }; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists @@ -461,261 +461,287 @@ struct has_from_json template <typename Json, typename T> struct has_non_default_from_json { -private: - template < - typename U, - typename = enable_if_t<std::is_same< - T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> - static int detect(U &&); - static void detect(...); + private: + template < + typename U, + typename = enable_if_t<std::is_same< + T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value >> + static int detect(U&&); + static void detect(...); -public: - static constexpr bool value = std::is_integral<decltype(detect( - std::declval<typename Json::template json_serializer<T, void>>()))>::value; + public: + static constexpr bool value = std::is_integral<decltype(detect( + std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; // This trait checks if Json::json_serializer<T>::to_json exists template <typename Json, typename T> struct has_to_json { -private: - template <typename U, typename = decltype(uncvref_t<U>::to_json( - std::declval<Json &>(), std::declval<T>()))> - static int detect(U &&); - static void detect(...); + private: + template <typename U, typename = decltype(uncvref_t<U>::to_json( + std::declval<Json&>(), std::declval<T>()))> + static int detect(U&&); + static void detect(...); -public: - static constexpr bool value = std::is_integral<decltype(detect( - std::declval<typename Json::template json_serializer<T, void>>()))>::value; + public: + static constexpr bool value = std::is_integral<decltype(detect( + std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; // overloads for basic_json template parameters template <typename Json, typename ArithmeticType, enable_if_t<std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, - typename Json::boolean_t>::value, + not std::is_same<ArithmeticType, + typename Json::boolean_t>::value, int> = 0> -void get_arithmetic_value(const Json &j, ArithmeticType &val) +void get_arithmetic_value(const Json& j, ArithmeticType& val) { - // unsigned must be checked first, since is_number_integer() == true for unsigned - if (j.is_number_unsigned()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); - else if (j.is_number_integer()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); - else if (j.is_number_float()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); - else - throw std::domain_error("type must be number, but is " + type_name(j)); + // unsigned must be checked first, since is_number_integer() == true for unsigned + if (j.is_number_unsigned()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); + } + else if (j.is_number_integer()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); + } + else if (j.is_number_float()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); + } + else + { + throw std::domain_error("type must be number, but is " + type_name(j)); + } } template <typename Json> -void to_json(Json &j, typename Json::boolean_t b) noexcept +void to_json(Json& j, typename Json::boolean_t b) noexcept { - external_constructor<value_t::boolean>::construct(j, b); + external_constructor<value_t::boolean>::construct(j, b); } template <typename Json, typename CompatibleString, enable_if_t<std::is_constructible<typename Json::string_t, - CompatibleString>::value, + CompatibleString>::value, int> = 0> -void to_json(Json &j, const CompatibleString &s) +void to_json(Json& j, const CompatibleString& s) { - external_constructor<value_t::string>::construct(j, s); + external_constructor<value_t::string>::construct(j, s); } template <typename Json, typename FloatType, enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> -void to_json(Json &j, FloatType val) noexcept +void to_json(Json& j, FloatType val) noexcept { - external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val)); + external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val)); } template < typename Json, typename CompatibleNumberUnsignedType, - enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t, - CompatibleNumberUnsignedType>::value, - int> = 0> -void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept + enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t, + CompatibleNumberUnsignedType>::value, + int> = 0 > +void to_json(Json& j, CompatibleNumberUnsignedType val) noexcept { - external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val)); + external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val)); } template < typename Json, typename CompatibleNumberIntegerType, - enable_if_t<is_compatible_integer_type<typename Json::number_integer_t, - CompatibleNumberIntegerType>::value, - int> = 0> -void to_json(Json &j, CompatibleNumberIntegerType val) noexcept + enable_if_t<is_compatible_integer_type<typename Json::number_integer_t, + CompatibleNumberIntegerType>::value, + int> = 0 > +void to_json(Json& j, CompatibleNumberIntegerType val) noexcept { - external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val)); + external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val)); } template <typename Json, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void to_json(Json &j, UnscopedEnumType e) noexcept +void to_json(Json& j, UnscopedEnumType e) noexcept { - external_constructor<value_t::number_integer>::construct(j, e); + external_constructor<value_t::number_integer>::construct(j, e); } template < typename Json, typename CompatibleArrayType, - enable_if_t< + enable_if_t < is_compatible_array_type<Json, CompatibleArrayType>::value or - std::is_same<typename Json::array_t, CompatibleArrayType>::value, - int> = 0> -void to_json(Json &j, const CompatibleArrayType &arr) + std::is_same<typename Json::array_t, CompatibleArrayType>::value, + int > = 0 > +void to_json(Json& j, const CompatibleArrayType& arr) { - external_constructor<value_t::array>::construct(j, arr); + external_constructor<value_t::array>::construct(j, arr); } template < typename Json, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, - int> = 0> -void to_json(Json &j, const CompatibleObjectType &arr) + int> = 0 > +void to_json(Json& j, const CompatibleObjectType& arr) { - external_constructor<value_t::object>::construct(j, arr); + external_constructor<value_t::object>::construct(j, arr); } template <typename Json> -void from_json(const Json & j, typename Json::boolean_t& b) +void from_json(const Json& j, typename Json::boolean_t& b) { - if (!j.is_boolean()) - throw std::domain_error("type must be boolean, but is " + type_name(j)); - b = *j.template get_ptr<const typename Json::boolean_t*>(); + if (!j.is_boolean()) + { + throw std::domain_error("type must be boolean, but is " + type_name(j)); + } + b = *j.template get_ptr<const typename Json::boolean_t*>(); } template <typename Json> -void from_json(const Json & j, typename Json::string_t& s) +void from_json(const Json& j, typename Json::string_t& s) { - if (!j.is_string()) - throw std::domain_error("type must be string, but is " + type_name(j)); - s = *j.template get_ptr<const typename Json::string_t*>(); + if (!j.is_string()) + { + throw std::domain_error("type must be string, but is " + type_name(j)); + } + s = *j.template get_ptr<const typename Json::string_t*>(); } template <typename Json> -void from_json(const Json & j, typename Json::number_float_t& val) +void from_json(const Json& j, typename Json::number_float_t& val) { - get_arithmetic_value(j, val); + get_arithmetic_value(j, val); } template <typename Json> -void from_json(const Json & j, typename Json::number_unsigned_t& val) +void from_json(const Json& j, typename Json::number_unsigned_t& val) { - get_arithmetic_value(j, val); + get_arithmetic_value(j, val); } template <typename Json> -void from_json(const Json & j, typename Json::number_integer_t& val) +void from_json(const Json& j, typename Json::number_integer_t& val) { - get_arithmetic_value(j, val); + get_arithmetic_value(j, val); } template <typename Json, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void from_json(const Json &j, UnscopedEnumType& e) +void from_json(const Json& j, UnscopedEnumType& e) { - typename std::underlying_type<UnscopedEnumType>::type val = e; - get_arithmetic_value(j, val); - e = static_cast<UnscopedEnumType>(val); + typename std::underlying_type<UnscopedEnumType>::type val = e; + get_arithmetic_value(j, val); + e = static_cast<UnscopedEnumType>(val); } template <typename Json> -void from_json(const Json &j, typename Json::array_t &arr) +void from_json(const Json& j, typename Json::array_t& arr) { - if (!j.is_array()) - throw std::domain_error("type must be array, but is " + type_name(j)); - arr = *j.template get_ptr<const typename Json::array_t*>(); + if (!j.is_array()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + arr = *j.template get_ptr<const typename Json::array_t*>(); } // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list template <typename Json, typename T, typename Allocator> -void from_json(const Json &j, std::forward_list<T, Allocator>& l) +void from_json(const Json& j, std::forward_list<T, Allocator>& l) { - // do not perform the check when user wants to retrieve jsons - // (except when it's null.. ?) - if (j.is_null()) - throw std::domain_error("type must be array, but is " + type_name(j)); - if (not std::is_same<T, Json>::value) - { - if (!j.is_array()) - throw std::domain_error("type must be array, but is " + type_name(j)); - } - for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) - l.push_front(it->template get<T>()); + // do not perform the check when user wants to retrieve jsons + // (except when it's null.. ?) + if (j.is_null()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + if (not std::is_same<T, Json>::value) + { + if (!j.is_array()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + } + for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) + { + l.push_front(it->template get<T>()); + } } template <typename Json, typename CompatibleArrayType> -void from_json_array_impl(const Json &j, CompatibleArrayType &arr, priority_tag<0>) +void from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag<0>) { - using std::begin; - using std::end; + using std::begin; + using std::end; - std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json &i) - { + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json & i) + { // get<Json>() returns *this, this won't call a from_json method when // value_type is Json return i.template get<typename CompatibleArrayType::value_type>(); - }); + }); } template <typename Json, typename CompatibleArrayType> -auto from_json_array_impl(const Json &j, CompatibleArrayType &arr, priority_tag<1>) - -> decltype( - arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), - void()) +auto from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag<1>) +-> decltype( + arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), + void()) { - using std::begin; - using std::end; + using std::begin; + using std::end; - arr.reserve(j.size()); - std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json &i) - { + arr.reserve(j.size()); + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json & i) + { // get<Json>() returns *this, this won't call a from_json method when // value_type is Json return i.template get<typename CompatibleArrayType::value_type>(); - }); + }); } template < typename Json, typename CompatibleArrayType, enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and - not std::is_same<typename Json::array_t, - CompatibleArrayType>::value, - int> = 0> -void from_json(const Json &j, CompatibleArrayType &arr) + not std::is_same<typename Json::array_t, + CompatibleArrayType>::value, + int> = 0 > +void from_json(const Json& j, CompatibleArrayType& arr) { - if (j.is_null()) - throw std::domain_error("type must be array, but is " + type_name(j)); - // when T == Json, do not check if value_t is correct - if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) - { - if (!j.is_array()) - throw std::domain_error("type must be array, but is " + type_name(j)); - } - from_json_array_impl(j, arr, priority_tag<1>{}); + if (j.is_null()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + // when T == Json, do not check if value_t is correct + if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) + { + if (!j.is_array()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + } + from_json_array_impl(j, arr, priority_tag<1> {}); } template < typename Json, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, - int> = 0> -void from_json(const Json &j, CompatibleObjectType &obj) + int> = 0 > +void from_json(const Json& j, CompatibleObjectType& obj) { - if (!j.is_object()) - throw std::domain_error("type must be object, but is " + type_name(j)); + if (!j.is_object()) + { + throw std::domain_error("type must be object, but is " + type_name(j)); + } - auto inner_object = j.template get_ptr<const typename Json::object_t*>(); - using std::begin; - using std::end; - // we could avoid the assignment, but this might require a for loop, which - // might be less efficient than the container constructor for some containers (would it?) - obj = CompatibleObjectType(begin(*inner_object), end(*inner_object)); + auto inner_object = j.template get_ptr<const typename Json::object_t*>(); + using std::begin; + using std::end; + // we could avoid the assignment, but this might require a for loop, which + // might be less efficient than the container constructor for some containers (would it?) + obj = CompatibleObjectType(begin(*inner_object), end(*inner_object)); } // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) @@ -724,25 +750,35 @@ void from_json(const Json &j, CompatibleObjectType &obj) // in case of a custom BooleanType which is not an arithmetic type? template < typename Json, typename ArithmeticType, - enable_if_t< + enable_if_t < std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and - not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and - not std::is_same<ArithmeticType, typename Json::number_float_t>::value and - not std::is_same<ArithmeticType, typename Json::boolean_t>::value, - int> = 0> -void from_json(const Json &j, ArithmeticType &val) + not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and + not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and + not std::is_same<ArithmeticType, typename Json::number_float_t>::value and + not std::is_same<ArithmeticType, typename Json::boolean_t>::value, + int > = 0 > +void from_json(const Json& j, ArithmeticType& val) { - if (j.is_number_unsigned()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); - else if (j.is_number_integer()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); - else if (j.is_number_float()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); - else if (j.is_boolean()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>()); - else - throw std::domain_error("type must be number, but is " + type_name(j)); + if (j.is_number_unsigned()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); + } + else if (j.is_number_integer()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); + } + else if (j.is_number_float()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); + } + else if (j.is_boolean()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>()); + } + else + { + throw std::domain_error("type must be number, but is " + type_name(j)); + } } struct to_json_fn @@ -762,39 +798,39 @@ struct to_json_fn static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called"); } -public: - template <typename Json, typename T> - void operator()(Json &j, T &&val) const - noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1>{}))) - { - return call(j, std::forward<T>(val), priority_tag<1>{}); - } + public: + template <typename Json, typename T> + void operator()(Json& j, T&& val) const + noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {}))) + { + return call(j, std::forward<T>(val), priority_tag<1> {}); + } }; struct from_json_fn { -private: - template <typename Json, typename T> - auto call(const Json &j, T &val, priority_tag<1>) const - noexcept(noexcept(from_json(j, val))) - -> decltype(from_json(j, val), void()) - { - return from_json(j, val); - } + private: + template <typename Json, typename T> + auto call(const Json& j, T& val, priority_tag<1>) const + noexcept(noexcept(from_json(j, val))) + -> decltype(from_json(j, val), void()) + { + return from_json(j, val); + } - template <typename Json, typename T> - void call(const Json &, T&, priority_tag<0>) const noexcept - { - static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); - } + template <typename Json, typename T> + void call(const Json&, T&, priority_tag<0>) const noexcept + { + static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); + } -public: - template <typename Json, typename T> - void operator()(const Json &j, T &val) const - noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{}))) - { - return call(j, val, priority_tag<1>{}); - } + public: + template <typename Json, typename T> + void operator()(const Json& j, T& val) const + noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {}))) + { + return call(j, val, priority_tag<1> {}); + } }; // taken from ranges-v3 @@ -830,8 +866,8 @@ struct DecimalSeparator : std::numpunct<char> inline namespace { -constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value; -constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value; +constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value; +constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument @@ -846,10 +882,10 @@ struct adl_serializer } template <typename Json, typename T> - static void to_json(Json &j, T &&val) noexcept( + static void to_json(Json& j, T&& val) noexcept( noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) { - ::nlohmann::to_json(j, std::forward<T>(val)); + ::nlohmann::to_json(j, std::forward<T>(val)); } }; @@ -947,7 +983,7 @@ class basic_json { private: template <::nlohmann::value_t> friend struct detail::external_constructor; - template <typename Json> friend std::string detail::type_name(const Json &); + template <typename Json> friend std::string detail::type_name(const Json&); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -1849,15 +1885,15 @@ class basic_json */ template <typename T, typename U = uncvref_t<T>, enable_if_t<not std::is_base_of<std::istream, U>::value and - not std::is_same<U, basic_json_t>::value and - not detail::is_basic_json_nested_type< - basic_json_t, U>::value and - detail::has_to_json<basic_json, U>::value, + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type< + basic_json_t, U>::value and + detail::has_to_json<basic_json, U>::value, int> = 0> - basic_json(T &&val) noexcept(noexcept(JSONSerializer<U>::to_json( - std::declval<basic_json_t &>(), std::forward<T>(val)))) + basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json( + std::declval<basic_json_t&>(), std::forward<T>(val)))) { - JSONSerializer<U>::to_json(*this, std::forward<T>(val)); + JSONSerializer<U>::to_json(*this, std::forward<T>(val)); } /*! @@ -2013,7 +2049,7 @@ class basic_json @since version 1.0.0 */ static basic_json array(std::initializer_list<basic_json> init = - std::initializer_list<basic_json>()) + std::initializer_list<basic_json>()) { return basic_json(init, false, value_t::array); } @@ -2053,7 +2089,7 @@ class basic_json @since version 1.0.0 */ static basic_json object(std::initializer_list<basic_json> init = - std::initializer_list<basic_json>()) + std::initializer_list<basic_json>()) { return basic_json(init, false, value_t::object); } @@ -2394,7 +2430,7 @@ class basic_json std::is_nothrow_move_assignable<value_t>::value and std::is_nothrow_move_constructible<json_value>::value and std::is_nothrow_move_assignable<json_value>::value - ) + ) { // check that passed value is valid other.assert_invariant(); @@ -3020,7 +3056,7 @@ class basic_json enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> basic_json get() const { - return *this; + return *this; } /*! @@ -3032,7 +3068,7 @@ class basic_json - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&) - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&); - @return a value of type U + @return a value of type U @throw what json_serializer<U> from_json method throws @@ -3040,27 +3076,27 @@ class basic_json */ template < typename T, - typename U = uncvref_t<T>, - enable_if_t< + typename U = uncvref_t<T>, + enable_if_t < not std::is_same<basic_json_t, U>::value and - detail::has_from_json<basic_json_t, U>::value and - not detail::has_non_default_from_json<basic_json_t, - U>::value, - int> = 0> + detail::has_from_json<basic_json_t, U>::value and + not detail::has_non_default_from_json<basic_json_t, + U>::value, + int > = 0 > // do we really want the uncvref ? if a user call get<int &>, shouldn't we // static assert ? // i know there is a special behaviour for boolean_t* and such auto get() const noexcept(noexcept(JSONSerializer<U>::from_json( - std::declval<const basic_json_t &>(), std::declval<U &>()))) - -> U + std::declval<const basic_json_t&>(), std::declval<U&>()))) + -> U { - static_assert(std::is_default_constructible<U>::value and - std::is_copy_constructible<U>::value, - "Types must be DefaultConstructible and " - "CopyConstructible when used with get"); - U ret; - JSONSerializer<U>::from_json(*this, ret); - return ret; + static_assert(std::is_default_constructible<U>::value and + std::is_copy_constructible<U>::value, + "Types must be DefaultConstructible and " + "CopyConstructible when used with get"); + U ret; + JSONSerializer<U>::from_json(*this, ret); + return ret; } /*! @@ -3072,7 +3108,7 @@ class basic_json - U is not @ref basic_json - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&); - @return a value of type U + @return a value of type U @throw what json_serializer<U> from_json method throws @@ -3081,12 +3117,12 @@ class basic_json template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_non_default_from_json<basic_json_t, - uncvref_t<T>>::value, - int> = 0> - uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t &>()))) + detail::has_non_default_from_json<basic_json_t, + uncvref_t<T>>::value, + int> = 0 > + uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { - return JSONSerializer<T>::from_json(*this); + return JSONSerializer<T>::from_json(*this); } /*! @@ -3168,8 +3204,8 @@ class basic_json { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const<typename - std::remove_pointer<typename - std::remove_const<PointerType>::type>::type>::type; + std::remove_pointer<typename + std::remove_const<PointerType>::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same<object_t, pointee_t>::value @@ -3196,8 +3232,8 @@ class basic_json { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const<typename - std::remove_pointer<typename - std::remove_const<PointerType>::type>::type>::type; + std::remove_pointer<typename + std::remove_const<PointerType>::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same<object_t, pointee_t>::value @@ -4250,14 +4286,14 @@ class basic_json case value_t::object: { result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, - last.m_it.object_iterator); + last.m_it.object_iterator); break; } case value_t::array: { result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, - last.m_it.array_iterator); + last.m_it.array_iterator); break; } @@ -5474,9 +5510,9 @@ class basic_json // insert to array and return iterator iterator result(this); result.m_it.array_iterator = m_value.array->insert( - pos.m_it.array_iterator, - first.m_it.array_iterator, - last.m_it.array_iterator); + pos.m_it.array_iterator, + first.m_it.array_iterator, + last.m_it.array_iterator); return result; } @@ -5546,7 +5582,7 @@ class basic_json std::is_nothrow_move_assignable<value_t>::value and std::is_nothrow_move_constructible<json_value>::value and std::is_nothrow_move_assignable<json_value>::value - ) + ) { std::swap(m_type, other.m_type); std::swap(m_value, other.m_value); @@ -7871,7 +7907,10 @@ class basic_json @since version 1.0.0 */ - std::string type_name() const { return detail::type_name(*this); } + std::string type_name() const + { + return detail::type_name(*this); + } private: /*! @@ -8086,13 +8125,13 @@ class basic_json o << (pretty_print ? ",\n" : ","); } o << string_t(new_indent, ' ') << "\"" - << escape_string(i->first) << "\":" - << (pretty_print ? " " : ""); - i->second.dump(o, pretty_print, indent_step, new_indent); + << escape_string(i->first) << "\":" + << (pretty_print ? " " : ""); + i->second.dump(o, pretty_print, indent_step, new_indent); } - // decrease indentation - if (pretty_print) + // decrease indentation + if (pretty_print) { new_indent -= indent_step; o << "\n"; @@ -8137,16 +8176,16 @@ class basic_json } o << string_t(new_indent, ' ') << "]"; - return; + return; } - case value_t::string: + case value_t::string: { o << string_t("\"") << escape_string(*m_value.string) << "\""; - return; + return; } - case value_t::boolean: + case value_t::boolean: { o << (m_value.boolean ? "true" : "false"); return; @@ -8220,126 +8259,126 @@ class basic_json */ class primitive_iterator_t { - public: + public: difference_type get_value() const noexcept - { - return m_it; - } - /// set iterator to a defined beginning - void set_begin() noexcept - { - m_it = begin_value; - } + { + return m_it; + } + /// set iterator to a defined beginning + void set_begin() noexcept + { + m_it = begin_value; + } - /// set iterator to a defined past the end - void set_end() noexcept - { - m_it = end_value; - } + /// set iterator to a defined past the end + void set_end() noexcept + { + m_it = end_value; + } - /// return whether the iterator can be dereferenced - constexpr bool is_begin() const noexcept - { - return (m_it == begin_value); - } + /// return whether the iterator can be dereferenced + constexpr bool is_begin() const noexcept + { + return (m_it == begin_value); + } - /// return whether the iterator is at end - constexpr bool is_end() const noexcept - { - return (m_it == end_value); - } + /// return whether the iterator is at end + constexpr bool is_end() const noexcept + { + return (m_it == end_value); + } - friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it == rhs.m_it; - } + friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it == rhs.m_it; + } - friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return !(lhs == rhs); - } + friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return !(lhs == rhs); + } - friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it < rhs.m_it; - } + friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it < rhs.m_it; + } - friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it <= rhs.m_it; - } + friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it <= rhs.m_it; + } - friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it > rhs.m_it; - } + friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it > rhs.m_it; + } - friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it >= rhs.m_it; - } + friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it >= rhs.m_it; + } - primitive_iterator_t operator+(difference_type i) - { - auto result = *this; - result += i; - return result; - } + primitive_iterator_t operator+(difference_type i) + { + auto result = *this; + result += i; + return result; + } - friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it - rhs.m_it; - } + friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it - rhs.m_it; + } - friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it) - { - return os << it.m_it; - } + friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it) + { + return os << it.m_it; + } - primitive_iterator_t& operator++() - { - ++m_it; - return *this; - } + primitive_iterator_t& operator++() + { + ++m_it; + return *this; + } - primitive_iterator_t& operator++(int) - { - m_it++; - return *this; - } + primitive_iterator_t& operator++(int) + { + m_it++; + return *this; + } - primitive_iterator_t& operator--() - { - --m_it; - return *this; - } + primitive_iterator_t& operator--() + { + --m_it; + return *this; + } - primitive_iterator_t& operator--(int) - { - m_it--; - return *this; - } + primitive_iterator_t& operator--(int) + { + m_it--; + return *this; + } - primitive_iterator_t& operator+=(difference_type n) - { - m_it += n; - return *this; - } + primitive_iterator_t& operator+=(difference_type n) + { + m_it += n; + return *this; + } - primitive_iterator_t& operator-=(difference_type n) - { - m_it -= n; - return *this; - } + primitive_iterator_t& operator-=(difference_type n) + { + m_it -= n; + return *this; + } - private: - static constexpr difference_type begin_value = 0; - static constexpr difference_type end_value = begin_value + 1; + private: + static constexpr difference_type begin_value = 0; + static constexpr difference_type end_value = begin_value + 1; - /// iterator as signed integer type - difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min(); - }; + /// iterator as signed integer type + difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min(); + }; /*! @brief an iterator value @@ -8359,104 +8398,104 @@ class basic_json /// create an uninitialized internal_iterator internal_iterator() noexcept - : object_iterator(), array_iterator(), primitive_iterator() - {} + : object_iterator(), array_iterator(), primitive_iterator() + {} }; /// proxy class for the iterator_wrapper functions template<typename IteratorType> class iteration_proxy { - private: + private: /// helper class for iteration class iteration_proxy_internal { - private: + private: /// the iterator IteratorType anchor; /// an index for arrays (used to create key names) size_t array_index = 0; - public: + public: explicit iteration_proxy_internal(IteratorType it) noexcept - : anchor(it) - {} + : anchor(it) + {} - /// dereference operator (needed for range-based for) - iteration_proxy_internal& operator*() - { - return *this; - } - - /// increment operator (needed for range-based for) - iteration_proxy_internal& operator++() - { - ++anchor; - ++array_index; - - return *this; - } - - /// inequality operator (needed for range-based for) - bool operator!= (const iteration_proxy_internal& o) const - { - return anchor != o.anchor; - } - - /// return key of the iterator - typename basic_json::string_t key() const - { - assert(anchor.m_object != nullptr); - - switch (anchor.m_object->type()) - { - // use integer array index as key - case value_t::array: + /// dereference operator (needed for range-based for) + iteration_proxy_internal& operator*() { - return std::to_string(array_index); + return *this; } - // use key from the object - case value_t::object: + /// increment operator (needed for range-based for) + iteration_proxy_internal& operator++() { - return anchor.key(); + ++anchor; + ++array_index; + + return *this; } - // use an empty key for all primitive types - default: + /// inequality operator (needed for range-based for) + bool operator!= (const iteration_proxy_internal& o) const { - return ""; + return anchor != o.anchor; } - } - } - /// return value of the iterator - typename IteratorType::reference value() const - { - return anchor.value(); - } + /// return key of the iterator + typename basic_json::string_t key() const + { + assert(anchor.m_object != nullptr); + + switch (anchor.m_object->type()) + { + // use integer array index as key + case value_t::array: + { + return std::to_string(array_index); + } + + // use key from the object + case value_t::object: + { + return anchor.key(); + } + + // use an empty key for all primitive types + default: + { + return ""; + } + } + } + + /// return value of the iterator + typename IteratorType::reference value() const + { + return anchor.value(); + } }; - /// the container to iterate - typename IteratorType::reference container; + /// the container to iterate + typename IteratorType::reference container; - public: - /// construct iteration proxy from a container - explicit iteration_proxy(typename IteratorType::reference cont) - : container(cont) - {} + public: + /// construct iteration proxy from a container + explicit iteration_proxy(typename IteratorType::reference cont) + : container(cont) + {} - /// return iterator begin (needed for range-based for) - iteration_proxy_internal begin() noexcept - { - return iteration_proxy_internal(container.begin()); - } + /// return iterator begin (needed for range-based for) + iteration_proxy_internal begin() noexcept + { + return iteration_proxy_internal(container.begin()); + } - /// return iterator end (needed for range-based for) - iteration_proxy_internal end() noexcept - { - return iteration_proxy_internal(container.end()); - } + /// return iterator end (needed for range-based for) + iteration_proxy_internal end() noexcept + { + return iteration_proxy_internal(container.end()); + } }; public: @@ -8480,7 +8519,7 @@ class basic_json @since version 1.0.0, simplified in version 2.0.9 */ template<typename U> - class iter_impl : public std::iterator<std::random_access_iterator_tag, U> + class iter_impl : public std::iterator<std::random_access_iterator_tag, U> { /// allow basic_json to access private members friend class basic_json; @@ -8490,19 +8529,19 @@ class basic_json or std::is_same<U, const basic_json>::value, "iter_impl only accepts (const) basic_json"); - public: + public: /// the type of the values when the iterator is dereferenced using value_type = typename basic_json::value_type; /// a type to represent differences between iterators using difference_type = typename basic_json::difference_type; /// defines a pointer to the type iterated over (value_type) using pointer = typename std::conditional<std::is_const<U>::value, - typename basic_json::const_pointer, - typename basic_json::pointer>::type; + typename basic_json::const_pointer, + typename basic_json::pointer>::type; /// defines a reference to the type iterated over (value_type) using reference = typename std::conditional<std::is_const<U>::value, - typename basic_json::const_reference, - typename basic_json::reference>::type; + typename basic_json::const_reference, + typename basic_json::reference>::type; /// the category of the iterator using iterator_category = std::bidirectional_iterator_tag; @@ -8516,566 +8555,566 @@ class basic_json @post The iterator is initialized; i.e. `m_object != nullptr`. */ explicit iter_impl(pointer object) noexcept - : m_object(object) - { - assert(m_object != nullptr); - - switch (m_object->m_type) + : m_object(object) { - case basic_json::value_t::object: + assert(m_object != nullptr); + + switch (m_object->m_type) { - m_it.object_iterator = typename object_t::iterator(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = typename array_t::iterator(); - break; - } - - default: - { - m_it.primitive_iterator = primitive_iterator_t(); - break; - } - } - } - - /* - Use operator `const_iterator` instead of `const_iterator(const iterator& - other) noexcept` to avoid two class definitions for @ref iterator and - @ref const_iterator. - - This function is only called if this class is an @ref iterator. If this - class is a @ref const_iterator this function is not called. - */ - operator const_iterator() const - { - const_iterator ret; - - if (m_object) - { - ret.m_object = m_object; - ret.m_it = m_it; - } - - return ret; - } - - /*! - @brief copy constructor - @param[in] other iterator to copy from - @note It is not checked whether @a other is initialized. - */ - iter_impl(const iter_impl& other) noexcept - : m_object(other.m_object), m_it(other.m_it) - {} - - /*! - @brief copy assignment - @param[in,out] other iterator to copy from - @note It is not checked whether @a other is initialized. - */ - iter_impl& operator=(iter_impl other) noexcept( - std::is_nothrow_move_constructible<pointer>::value and - std::is_nothrow_move_assignable<pointer>::value and - std::is_nothrow_move_constructible<internal_iterator>::value and - std::is_nothrow_move_assignable<internal_iterator>::value - ) - { - std::swap(m_object, other.m_object); - std::swap(m_it, other.m_it); - return *this; - } - - private: - /*! - @brief set the iterator to the first value - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - void set_begin() noexcept - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - m_it.object_iterator = m_object->m_value.object->begin(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = m_object->m_value.array->begin(); - break; - } - - case basic_json::value_t::null: - { - // set to end so begin()==end() is true: null is empty - m_it.primitive_iterator.set_end(); - break; - } - - default: - { - m_it.primitive_iterator.set_begin(); - break; - } - } - } - - /*! - @brief set the iterator past the last value - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - void set_end() noexcept - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - m_it.object_iterator = m_object->m_value.object->end(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = m_object->m_value.array->end(); - break; - } - - default: - { - m_it.primitive_iterator.set_end(); - break; - } - } - } - - public: - /*! - @brief return a reference to the value pointed to by the iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference operator*() const - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - assert(m_it.object_iterator != m_object->m_value.object->end()); - return m_it.object_iterator->second; - } - - case basic_json::value_t::array: - { - assert(m_it.array_iterator != m_object->m_value.array->end()); - return *m_it.array_iterator; - } - - case basic_json::value_t::null: - { - JSON_THROW(std::out_of_range("cannot get value")); - } - - default: - { - if (m_it.primitive_iterator.is_begin()) + case basic_json::value_t::object: { - return *m_object; + m_it.object_iterator = typename object_t::iterator(); + break; } - JSON_THROW(std::out_of_range("cannot get value")); - } - } - } - - /*! - @brief dereference the iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - pointer operator->() const - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - assert(m_it.object_iterator != m_object->m_value.object->end()); - return &(m_it.object_iterator->second); - } - - case basic_json::value_t::array: - { - assert(m_it.array_iterator != m_object->m_value.array->end()); - return &*m_it.array_iterator; - } - - default: - { - if (m_it.primitive_iterator.is_begin()) + case basic_json::value_t::array: { - return m_object; + m_it.array_iterator = typename array_t::iterator(); + break; } + default: + { + m_it.primitive_iterator = primitive_iterator_t(); + break; + } + } + } + + /* + Use operator `const_iterator` instead of `const_iterator(const iterator& + other) noexcept` to avoid two class definitions for @ref iterator and + @ref const_iterator. + + This function is only called if this class is an @ref iterator. If this + class is a @ref const_iterator this function is not called. + */ + operator const_iterator() const + { + const_iterator ret; + + if (m_object) + { + ret.m_object = m_object; + ret.m_it = m_it; + } + + return ret; + } + + /*! + @brief copy constructor + @param[in] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl(const iter_impl& other) noexcept + : m_object(other.m_object), m_it(other.m_it) + {} + + /*! + @brief copy assignment + @param[in,out] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl& operator=(iter_impl other) noexcept( + std::is_nothrow_move_constructible<pointer>::value and + std::is_nothrow_move_assignable<pointer>::value and + std::is_nothrow_move_constructible<internal_iterator>::value and + std::is_nothrow_move_assignable<internal_iterator>::value + ) + { + std::swap(m_object, other.m_object); + std::swap(m_it, other.m_it); + return *this; + } + + private: + /*! + @brief set the iterator to the first value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_begin() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + m_it.object_iterator = m_object->m_value.object->begin(); + break; + } + + case basic_json::value_t::array: + { + m_it.array_iterator = m_object->m_value.array->begin(); + break; + } + + case basic_json::value_t::null: + { + // set to end so begin()==end() is true: null is empty + m_it.primitive_iterator.set_end(); + break; + } + + default: + { + m_it.primitive_iterator.set_begin(); + break; + } + } + } + + /*! + @brief set the iterator past the last value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_end() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + m_it.object_iterator = m_object->m_value.object->end(); + break; + } + + case basic_json::value_t::array: + { + m_it.array_iterator = m_object->m_value.array->end(); + break; + } + + default: + { + m_it.primitive_iterator.set_end(); + break; + } + } + } + + public: + /*! + @brief return a reference to the value pointed to by the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator*() const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + assert(m_it.object_iterator != m_object->m_value.object->end()); + return m_it.object_iterator->second; + } + + case basic_json::value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return *m_it.array_iterator; + } + + case basic_json::value_t::null: + { JSON_THROW(std::out_of_range("cannot get value")); - } - } - } + } - /*! - @brief post-increment (it++) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator++(int) - { - auto result = *this; - ++(*this); - return result; - } + default: + { + if (m_it.primitive_iterator.is_begin()) + { + return *m_object; + } - /*! - @brief pre-increment (++it) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator++() - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - std::advance(m_it.object_iterator, 1); - break; - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, 1); - break; - } - - default: - { - ++m_it.primitive_iterator; - break; + JSON_THROW(std::out_of_range("cannot get value")); + } } } - return *this; - } - - /*! - @brief post-decrement (it--) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator--(int) - { - auto result = *this; - --(*this); - return result; - } - - /*! - @brief pre-decrement (--it) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator--() - { - assert(m_object != nullptr); - - switch (m_object->m_type) + /*! + @brief dereference the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + pointer operator->() const { - case basic_json::value_t::object: - { - std::advance(m_it.object_iterator, -1); - break; - } + assert(m_object != nullptr); - case basic_json::value_t::array: + switch (m_object->m_type) { - std::advance(m_it.array_iterator, -1); - break; - } + case basic_json::value_t::object: + { + assert(m_it.object_iterator != m_object->m_value.object->end()); + return &(m_it.object_iterator->second); + } - default: - { - --m_it.primitive_iterator; - break; + case basic_json::value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return &*m_it.array_iterator; + } + + default: + { + if (m_it.primitive_iterator.is_begin()) + { + return m_object; + } + + JSON_THROW(std::out_of_range("cannot get value")); + } } } - return *this; - } - - /*! - @brief comparison: equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator==(const iter_impl& other) const - { - // if objects are not the same, the comparison is undefined - if (m_object != other.m_object) + /*! + @brief post-increment (it++) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator++(int) { + auto result = *this; + ++(*this); + return result; + } + + /*! + @brief pre-increment (++it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator++() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + std::advance(m_it.object_iterator, 1); + break; + } + + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, 1); + break; + } + + default: + { + ++m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief post-decrement (it--) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator--(int) + { + auto result = *this; + --(*this); + return result; + } + + /*! + @brief pre-decrement (--it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator--() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + std::advance(m_it.object_iterator, -1); + break; + } + + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, -1); + break; + } + + default: + { + --m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief comparison: equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator==(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (m_object != other.m_object) + { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); - } - - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - return (m_it.object_iterator == other.m_it.object_iterator); } - case basic_json::value_t::array: - { - return (m_it.array_iterator == other.m_it.array_iterator); - } + assert(m_object != nullptr); - default: + switch (m_object->m_type) { - return (m_it.primitive_iterator == other.m_it.primitive_iterator); + case basic_json::value_t::object: + { + return (m_it.object_iterator == other.m_it.object_iterator); + } + + case basic_json::value_t::array: + { + return (m_it.array_iterator == other.m_it.array_iterator); + } + + default: + { + return (m_it.primitive_iterator == other.m_it.primitive_iterator); + } } } - } - /*! - @brief comparison: not equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator!=(const iter_impl& other) const - { - return not operator==(other); - } - - /*! - @brief comparison: smaller - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator<(const iter_impl& other) const - { - // if objects are not the same, the comparison is undefined - if (m_object != other.m_object) + /*! + @brief comparison: not equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator!=(const iter_impl& other) const { + return not operator==(other); + } + + /*! + @brief comparison: smaller + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (m_object != other.m_object) + { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); - } + } - assert(m_object != nullptr); + assert(m_object != nullptr); - switch (m_object->m_type) - { - case basic_json::value_t::object: + switch (m_object->m_type) { + case basic_json::value_t::object: + { JSON_THROW(std::domain_error("cannot compare order of object iterators")); - } - - case basic_json::value_t::array: - { - return (m_it.array_iterator < other.m_it.array_iterator); - } - - default: - { - return (m_it.primitive_iterator < other.m_it.primitive_iterator); - } - } - } - - /*! - @brief comparison: less than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator<=(const iter_impl& other) const - { - return not other.operator < (*this); - } - - /*! - @brief comparison: greater than - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator>(const iter_impl& other) const - { - return not operator<=(other); - } - - /*! - @brief comparison: greater than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator>=(const iter_impl& other) const - { - return not operator<(other); - } - - /*! - @brief add to iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator+=(difference_type i) - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - JSON_THROW(std::domain_error("cannot use offsets with object iterators")); - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, i); - break; - } - - default: - { - m_it.primitive_iterator += i; - break; - } - } - - return *this; - } - - /*! - @brief subtract from iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator-=(difference_type i) - { - return operator+=(-i); - } - - /*! - @brief add to iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator+(difference_type i) - { - auto result = *this; - result += i; - return result; - } - - /*! - @brief subtract from iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator-(difference_type i) - { - auto result = *this; - result -= i; - return result; - } - - /*! - @brief return difference - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - difference_type operator-(const iter_impl& other) const - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - JSON_THROW(std::domain_error("cannot use offsets with object iterators")); - } - - case basic_json::value_t::array: - { - return m_it.array_iterator - other.m_it.array_iterator; - } - - default: - { - return m_it.primitive_iterator - other.m_it.primitive_iterator; - } - } - } - - /*! - @brief access to successor - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference operator[](difference_type n) const - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - JSON_THROW(std::domain_error("cannot use operator[] for object iterators")); - } - - case basic_json::value_t::array: - { - return *std::next(m_it.array_iterator, n); - } - - case basic_json::value_t::null: - { - JSON_THROW(std::out_of_range("cannot get value")); - } - - default: - { - if (m_it.primitive_iterator.get_value() == -n) - { - return *m_object; } - JSON_THROW(std::out_of_range("cannot get value")); + case basic_json::value_t::array: + { + return (m_it.array_iterator < other.m_it.array_iterator); + } + + default: + { + return (m_it.primitive_iterator < other.m_it.primitive_iterator); + } } } - } - /*! - @brief return the key of an object iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - typename object_t::key_type key() const - { - assert(m_object != nullptr); - - if (m_object->is_object()) + /*! + @brief comparison: less than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<=(const iter_impl& other) const { - return m_it.object_iterator->first; + return not other.operator < (*this); } + /*! + @brief comparison: greater than + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>(const iter_impl& other) const + { + return not operator<=(other); + } + + /*! + @brief comparison: greater than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>=(const iter_impl& other) const + { + return not operator<(other); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator+=(difference_type i) + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + JSON_THROW(std::domain_error("cannot use offsets with object iterators")); + } + + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, i); + break; + } + + default: + { + m_it.primitive_iterator += i; + break; + } + } + + return *this; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator-=(difference_type i) + { + return operator+=(-i); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator+(difference_type i) + { + auto result = *this; + result += i; + return result; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator-(difference_type i) + { + auto result = *this; + result -= i; + return result; + } + + /*! + @brief return difference + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + difference_type operator-(const iter_impl& other) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + JSON_THROW(std::domain_error("cannot use offsets with object iterators")); + } + + case basic_json::value_t::array: + { + return m_it.array_iterator - other.m_it.array_iterator; + } + + default: + { + return m_it.primitive_iterator - other.m_it.primitive_iterator; + } + } + } + + /*! + @brief access to successor + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator[](difference_type n) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + JSON_THROW(std::domain_error("cannot use operator[] for object iterators")); + } + + case basic_json::value_t::array: + { + return *std::next(m_it.array_iterator, n); + } + + case basic_json::value_t::null: + { + JSON_THROW(std::out_of_range("cannot get value")); + } + + default: + { + if (m_it.primitive_iterator.get_value() == -n) + { + return *m_object; + } + + JSON_THROW(std::out_of_range("cannot get value")); + } + } + } + + /*! + @brief return the key of an object iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + typename object_t::key_type key() const + { + assert(m_object != nullptr); + + if (m_object->is_object()) + { + return m_it.object_iterator->first; + } + JSON_THROW(std::domain_error("cannot use key() for non-object iterators")); - } + } - /*! - @brief return the value of an iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference value() const - { - return operator*(); - } + /*! + @brief return the value of an iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference value() const + { + return operator*(); + } - private: - /// associated JSON instance - pointer m_object = nullptr; - /// the actual iterator of the associated instance - internal_iterator m_it = internal_iterator(); - }; + private: + /// associated JSON instance + pointer m_object = nullptr; + /// the actual iterator of the associated instance + internal_iterator m_it = internal_iterator(); + }; /*! @brief a template for a reverse iterator class @@ -9095,9 +9134,9 @@ class basic_json @since version 1.0.0 */ template<typename Base> - class json_reverse_iterator : public std::reverse_iterator<Base> + class json_reverse_iterator : public std::reverse_iterator<Base> { - public: + public: /// shortcut to the reverse iterator adaptor using base_iterator = std::reverse_iterator<Base>; /// the reference type for the pointed-to element @@ -9105,89 +9144,89 @@ class basic_json /// create reverse iterator from iterator json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept - : base_iterator(it) - {} + : base_iterator(it) + {} - /// create reverse iterator from base class - json_reverse_iterator(const base_iterator& it) noexcept - : base_iterator(it) - {} + /// create reverse iterator from base class + json_reverse_iterator(const base_iterator& it) noexcept + : base_iterator(it) + {} - /// post-increment (it++) - json_reverse_iterator operator++(int) - { - return base_iterator::operator++(1); - } + /// post-increment (it++) + json_reverse_iterator operator++(int) + { + return base_iterator::operator++(1); + } - /// pre-increment (++it) - json_reverse_iterator& operator++() - { - base_iterator::operator++(); - return *this; - } + /// pre-increment (++it) + json_reverse_iterator& operator++() + { + base_iterator::operator++(); + return *this; + } - /// post-decrement (it--) - json_reverse_iterator operator--(int) - { - return base_iterator::operator--(1); - } + /// post-decrement (it--) + json_reverse_iterator operator--(int) + { + return base_iterator::operator--(1); + } - /// pre-decrement (--it) - json_reverse_iterator& operator--() - { - base_iterator::operator--(); - return *this; - } + /// pre-decrement (--it) + json_reverse_iterator& operator--() + { + base_iterator::operator--(); + return *this; + } - /// add to iterator - json_reverse_iterator& operator+=(difference_type i) - { - base_iterator::operator+=(i); - return *this; - } + /// add to iterator + json_reverse_iterator& operator+=(difference_type i) + { + base_iterator::operator+=(i); + return *this; + } - /// add to iterator - json_reverse_iterator operator+(difference_type i) const - { - auto result = *this; - result += i; - return result; - } + /// add to iterator + json_reverse_iterator operator+(difference_type i) const + { + auto result = *this; + result += i; + return result; + } - /// subtract from iterator - json_reverse_iterator operator-(difference_type i) const - { - auto result = *this; - result -= i; - return result; - } + /// subtract from iterator + json_reverse_iterator operator-(difference_type i) const + { + auto result = *this; + result -= i; + return result; + } - /// return difference - difference_type operator-(const json_reverse_iterator& other) const - { - return this->base() - other.base(); - } + /// return difference + difference_type operator-(const json_reverse_iterator& other) const + { + return this->base() - other.base(); + } - /// access to successor - reference operator[](difference_type n) const - { - return *(this->operator+(n)); - } + /// access to successor + reference operator[](difference_type n) const + { + return *(this->operator+(n)); + } - /// return the key of an object iterator - typename object_t::key_type key() const - { - auto it = --this->base(); - return it.key(); - } + /// return the key of an object iterator + typename object_t::key_type key() const + { + auto it = --this->base(); + return it.key(); + } - /// return the value of an iterator - reference value() const - { - auto it = --this->base(); - return it.operator * (); - } - }; + /// return the value of an iterator + reference value() const + { + auto it = --this->base(); + return it.operator * (); + } + }; private: @@ -9204,1133 +9243,1611 @@ class basic_json */ class lexer { - public: + public: /// token types for the parser enum class token_type - { - uninitialized, ///< indicating the scanner is uninitialized - literal_true, ///< the `true` literal - literal_false, ///< the `false` literal - literal_null, ///< the `null` literal - value_string, ///< a string -- use get_string() for actual value - value_number, ///< a number -- use get_number() for actual value - begin_array, ///< the character for array begin `[` - begin_object, ///< the character for object begin `{` - end_array, ///< the character for array end `]` - end_object, ///< the character for object end `}` - name_separator, ///< the name separator `:` - value_separator, ///< the value separator `,` - parse_error, ///< indicating a parse error - end_of_input ///< indicating the end of the input buffer - }; - - /// the char type to use in the lexer - using lexer_char_t = unsigned char; - - /// a lexer from a buffer with given length - lexer(const lexer_char_t* buff, const size_t len) noexcept - : m_content(buff) - { - assert(m_content != nullptr); - m_start = m_cursor = m_content; - m_limit = m_content + len; - } - - /// a lexer from an input stream - explicit lexer(std::istream& s) - : m_stream(&s), m_line_buffer() - { - // immediately abort if stream is erroneous - if (s.fail()) { - JSON_THROW(std::invalid_argument("stream error")); - } - - // fill buffer - fill_line_buffer(); - - // skip UTF-8 byte-order mark - if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF") - { - m_line_buffer[0] = ' '; - m_line_buffer[1] = ' '; - m_line_buffer[2] = ' '; - } - } - - // switch off unwanted functions (due to pointer members) - lexer() = delete; - lexer(const lexer&) = delete; - lexer operator=(const lexer&) = delete; - - /*! - @brief create a string from one or two Unicode code points - - There are two cases: (1) @a codepoint1 is in the Basic Multilingual - Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) - @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to - represent a code point above U+FFFF. - - @param[in] codepoint1 the code point (can be high surrogate) - @param[in] codepoint2 the code point (can be low surrogate or 0) - - @return string representation of the code point; the length of the - result string is between 1 and 4 characters. - - @throw std::out_of_range if code point is > 0x10ffff; example: `"code - points above 0x10FFFF are invalid"` - @throw std::invalid_argument if the low surrogate is invalid; example: - `""missing or wrong low surrogate""` - - @complexity Constant. - - @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code> - */ - static string_t to_unicode(const std::size_t codepoint1, - const std::size_t codepoint2 = 0) - { - // calculate the code point from the given code points - std::size_t codepoint = codepoint1; - - // check if codepoint1 is a high surrogate - if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF) - { - // check if codepoint2 is a low surrogate - if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF) - { - codepoint = - // high surrogate occupies the most significant 22 bits - (codepoint1 << 10) - // low surrogate occupies the least significant 15 bits - + codepoint2 - // there is still the 0xD800, 0xDC00 and 0x10000 noise - // in the result so we have to subtract with: - // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 - - 0x35FDC00; - } - else - { - JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); - } - } - - string_t result; - - if (codepoint < 0x80) - { - // 1-byte characters: 0xxxxxxx (ASCII) - result.append(1, static_cast<typename string_t::value_type>(codepoint)); - } - else if (codepoint <= 0x7ff) - { - // 2-byte characters: 110xxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else if (codepoint <= 0xffff) - { - // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else if (codepoint <= 0x10ffff) - { - // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else - { - JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid")); - } - - return result; - } - - /// return name of values of type token_type (only used for errors) - static std::string token_type_name(const token_type t) - { - switch (t) - { - case token_type::uninitialized: - return "<uninitialized>"; - case token_type::literal_true: - return "true literal"; - case token_type::literal_false: - return "false literal"; - case token_type::literal_null: - return "null literal"; - case token_type::value_string: - return "string literal"; - case token_type::value_number: - return "number literal"; - case token_type::begin_array: - return "'['"; - case token_type::begin_object: - return "'{'"; - case token_type::end_array: - return "']'"; - case token_type::end_object: - return "'}'"; - case token_type::name_separator: - return "':'"; - case token_type::value_separator: - return "','"; - case token_type::parse_error: - return "<parse error>"; - case token_type::end_of_input: - return "end of input"; - default: - { - // catch non-enum values - return "unknown token"; // LCOV_EXCL_LINE - } - } - } - - /*! - This function implements a scanner for JSON. It is specified using - regular expressions that try to follow RFC 7159 as close as possible. - These regular expressions are then translated into a minimized - deterministic finite automaton (DFA) by the tool - [re2c](http://re2c.org). As a result, the translated code for this - function consists of a large block of code with `goto` jumps. - - @return the class of the next token read from the buffer - - @complexity Linear in the length of the input.\n - - Proposition: The loop below will always terminate for finite input.\n - - Proof (by contradiction): Assume a finite input. To loop forever, the - loop must never hit code with a `break` statement. The only code - snippets without a `break` statement are the continue statements for - whitespace and byte-order-marks. To loop forever, the input must be an - infinite sequence of whitespace or byte-order-marks. This contradicts - the assumption of finite input, q.e.d. - */ - token_type scan() - { - while (true) - { - // pointer for backtracking information - m_marker = nullptr; - - // remember the begin of the token - m_start = m_cursor; - assert(m_start != nullptr); - - - { - lexer_char_t yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 160, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + uninitialized, ///< indicating the scanner is uninitialized + literal_true, ///< the `true` literal + literal_false, ///< the `false` literal + literal_null, ///< the `null` literal + value_string, ///< a string -- use get_string() for actual value + value_number, ///< a number -- use get_number() for actual value + begin_array, ///< the character for array begin `[` + begin_object, ///< the character for object begin `{` + end_array, ///< the character for array end `]` + end_object, ///< the character for object end `}` + name_separator, ///< the name separator `:` + value_separator, ///< the value separator `,` + parse_error, ///< indicating a parse error + end_of_input ///< indicating the end of the input buffer }; - if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yybm[0+yych] & 32) { - goto basic_json_parser_6; - } - if (yych <= '[') { - if (yych <= '-') { - if (yych <= '"') { - if (yych <= 0x00) goto basic_json_parser_2; - if (yych <= '!') goto basic_json_parser_4; - goto basic_json_parser_9; - } else { - if (yych <= '+') goto basic_json_parser_4; - if (yych <= ',') goto basic_json_parser_10; - goto basic_json_parser_12; - } - } else { - if (yych <= '9') { - if (yych <= '/') goto basic_json_parser_4; - if (yych <= '0') goto basic_json_parser_13; - goto basic_json_parser_15; - } else { - if (yych <= ':') goto basic_json_parser_17; - if (yych <= 'Z') goto basic_json_parser_4; - goto basic_json_parser_19; - } - } - } else { - if (yych <= 'n') { - if (yych <= 'e') { - if (yych == ']') goto basic_json_parser_21; - goto basic_json_parser_4; - } else { - if (yych <= 'f') goto basic_json_parser_23; - if (yych <= 'm') goto basic_json_parser_4; - goto basic_json_parser_24; - } - } else { - if (yych <= 'z') { - if (yych == 't') goto basic_json_parser_25; - goto basic_json_parser_4; - } else { - if (yych <= '{') goto basic_json_parser_26; - if (yych == '}') goto basic_json_parser_28; - goto basic_json_parser_4; - } - } - } -basic_json_parser_2: - ++m_cursor; - { last_token_type = token_type::end_of_input; break; } -basic_json_parser_4: - ++m_cursor; -basic_json_parser_5: - { last_token_type = token_type::parse_error; break; } -basic_json_parser_6: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yybm[0+yych] & 32) { - goto basic_json_parser_6; - } - { continue; } -basic_json_parser_9: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych <= 0x1F) goto basic_json_parser_5; - if (yych <= 0x7F) goto basic_json_parser_31; - if (yych <= 0xC1) goto basic_json_parser_5; - if (yych <= 0xF4) goto basic_json_parser_31; - goto basic_json_parser_5; -basic_json_parser_10: - ++m_cursor; - { last_token_type = token_type::value_separator; break; } -basic_json_parser_12: - yych = *++m_cursor; - if (yych <= '/') goto basic_json_parser_5; - if (yych <= '0') goto basic_json_parser_13; - if (yych <= '9') goto basic_json_parser_15; - goto basic_json_parser_5; -basic_json_parser_13: - yyaccept = 1; - yych = *(m_marker = ++m_cursor); - if (yych <= 'D') { - if (yych == '.') goto basic_json_parser_43; - } else { - if (yych <= 'E') goto basic_json_parser_44; - if (yych == 'e') goto basic_json_parser_44; - } -basic_json_parser_14: - { last_token_type = token_type::value_number; break; } -basic_json_parser_15: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yybm[0+yych] & 64) { - goto basic_json_parser_15; - } - if (yych <= 'D') { - if (yych == '.') goto basic_json_parser_43; - goto basic_json_parser_14; - } else { - if (yych <= 'E') goto basic_json_parser_44; - if (yych == 'e') goto basic_json_parser_44; - goto basic_json_parser_14; - } -basic_json_parser_17: - ++m_cursor; - { last_token_type = token_type::name_separator; break; } -basic_json_parser_19: - ++m_cursor; - { last_token_type = token_type::begin_array; break; } -basic_json_parser_21: - ++m_cursor; - { last_token_type = token_type::end_array; break; } -basic_json_parser_23: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'a') goto basic_json_parser_45; - goto basic_json_parser_5; -basic_json_parser_24: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'u') goto basic_json_parser_46; - goto basic_json_parser_5; -basic_json_parser_25: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'r') goto basic_json_parser_47; - goto basic_json_parser_5; -basic_json_parser_26: - ++m_cursor; - { last_token_type = token_type::begin_object; break; } -basic_json_parser_28: - ++m_cursor; - { last_token_type = token_type::end_object; break; } -basic_json_parser_30: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; -basic_json_parser_31: - if (yybm[0+yych] & 128) { - goto basic_json_parser_30; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x1F) goto basic_json_parser_32; - if (yych <= '"') goto basic_json_parser_33; - goto basic_json_parser_35; - } else { - if (yych <= 0xC1) goto basic_json_parser_32; - if (yych <= 0xDF) goto basic_json_parser_36; - goto basic_json_parser_37; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto basic_json_parser_39; - goto basic_json_parser_38; - } else { - if (yych <= 0xF0) goto basic_json_parser_40; - if (yych <= 0xF3) goto basic_json_parser_41; - if (yych <= 0xF4) goto basic_json_parser_42; - } - } -basic_json_parser_32: - m_cursor = m_marker; - if (yyaccept == 0) { - goto basic_json_parser_5; - } else { - goto basic_json_parser_14; - } -basic_json_parser_33: - ++m_cursor; - { last_token_type = token_type::value_string; break; } -basic_json_parser_35: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 'e') { - if (yych <= '/') { - if (yych == '"') goto basic_json_parser_30; - if (yych <= '.') goto basic_json_parser_32; - goto basic_json_parser_30; - } else { - if (yych <= '\\') { - if (yych <= '[') goto basic_json_parser_32; - goto basic_json_parser_30; - } else { - if (yych == 'b') goto basic_json_parser_30; - goto basic_json_parser_32; - } - } - } else { - if (yych <= 'q') { - if (yych <= 'f') goto basic_json_parser_30; - if (yych == 'n') goto basic_json_parser_30; - goto basic_json_parser_32; - } else { - if (yych <= 's') { - if (yych <= 'r') goto basic_json_parser_30; - goto basic_json_parser_32; - } else { - if (yych <= 't') goto basic_json_parser_30; - if (yych <= 'u') goto basic_json_parser_48; - goto basic_json_parser_32; - } - } - } -basic_json_parser_36: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_30; - goto basic_json_parser_32; -basic_json_parser_37: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x9F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_36; - goto basic_json_parser_32; -basic_json_parser_38: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_36; - goto basic_json_parser_32; -basic_json_parser_39: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0x9F) goto basic_json_parser_36; - goto basic_json_parser_32; -basic_json_parser_40: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x8F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_38; - goto basic_json_parser_32; -basic_json_parser_41: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_38; - goto basic_json_parser_32; -basic_json_parser_42: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0x8F) goto basic_json_parser_38; - goto basic_json_parser_32; -basic_json_parser_43: - yych = *++m_cursor; - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_49; - goto basic_json_parser_32; -basic_json_parser_44: - yych = *++m_cursor; - if (yych <= ',') { - if (yych == '+') goto basic_json_parser_51; - goto basic_json_parser_32; - } else { - if (yych <= '-') goto basic_json_parser_51; - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_52; - goto basic_json_parser_32; - } -basic_json_parser_45: - yych = *++m_cursor; - if (yych == 'l') goto basic_json_parser_54; - goto basic_json_parser_32; -basic_json_parser_46: - yych = *++m_cursor; - if (yych == 'l') goto basic_json_parser_55; - goto basic_json_parser_32; -basic_json_parser_47: - yych = *++m_cursor; - if (yych == 'u') goto basic_json_parser_56; - goto basic_json_parser_32; -basic_json_parser_48: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_57; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_57; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_57; - goto basic_json_parser_32; - } -basic_json_parser_49: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 'D') { - if (yych <= '/') goto basic_json_parser_14; - if (yych <= '9') goto basic_json_parser_49; - goto basic_json_parser_14; - } else { - if (yych <= 'E') goto basic_json_parser_44; - if (yych == 'e') goto basic_json_parser_44; - goto basic_json_parser_14; - } -basic_json_parser_51: - yych = *++m_cursor; - if (yych <= '/') goto basic_json_parser_32; - if (yych >= ':') goto basic_json_parser_32; -basic_json_parser_52: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '/') goto basic_json_parser_14; - if (yych <= '9') goto basic_json_parser_52; - goto basic_json_parser_14; -basic_json_parser_54: - yych = *++m_cursor; - if (yych == 's') goto basic_json_parser_58; - goto basic_json_parser_32; -basic_json_parser_55: - yych = *++m_cursor; - if (yych == 'l') goto basic_json_parser_59; - goto basic_json_parser_32; -basic_json_parser_56: - yych = *++m_cursor; - if (yych == 'e') goto basic_json_parser_61; - goto basic_json_parser_32; -basic_json_parser_57: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_63; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_63; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_63; - goto basic_json_parser_32; - } -basic_json_parser_58: - yych = *++m_cursor; - if (yych == 'e') goto basic_json_parser_64; - goto basic_json_parser_32; -basic_json_parser_59: - ++m_cursor; - { last_token_type = token_type::literal_null; break; } -basic_json_parser_61: - ++m_cursor; - { last_token_type = token_type::literal_true; break; } -basic_json_parser_63: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_66; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_66; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_66; - goto basic_json_parser_32; - } -basic_json_parser_64: - ++m_cursor; - { last_token_type = token_type::literal_false; break; } -basic_json_parser_66: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_30; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_30; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_30; - goto basic_json_parser_32; - } - } - } + /// the char type to use in the lexer + using lexer_char_t = unsigned char; - return last_token_type; - } - - /*! - @brief append data from the stream to the line buffer - - This function is called by the scan() function when the end of the - buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be - incremented without leaving the limits of the line buffer. Note re2c - decides when to call this function. - - If the lexer reads from contiguous storage, there is no trailing null - byte. Therefore, this function must make sure to add these padding - null bytes. - - If the lexer reads from an input stream, this function reads the next - line of the input. - - @pre - p p p p p p u u u u u x . . . . . . - ^ ^ ^ ^ - m_content m_start | m_limit - m_cursor - - @post - u u u u u x x x x x x x . . . . . . - ^ ^ ^ - | m_cursor m_limit - m_start - m_content - */ - void fill_line_buffer(size_t n = 0) - { - // if line buffer is used, m_content points to its data - assert(m_line_buffer.empty() - or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data())); - - // if line buffer is used, m_limit is set past the end of its data - assert(m_line_buffer.empty() - or m_limit == m_content + m_line_buffer.size()); - - // pointer relationships - assert(m_content <= m_start); - assert(m_start <= m_cursor); - assert(m_cursor <= m_limit); - assert(m_marker == nullptr or m_marker <= m_limit); - - // number of processed characters (p) - const auto num_processed_chars = static_cast<size_t>(m_start - m_content); - // offset for m_marker wrt. to m_start - const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; - // number of unprocessed characters (u) - const auto offset_cursor = m_cursor - m_start; - - // no stream is used or end of file is reached - if (m_stream == nullptr or m_stream->eof()) + /// a lexer from a buffer with given length + lexer(const lexer_char_t* buff, const size_t len) noexcept + : m_content(buff) { - // m_start may or may not be pointing into m_line_buffer at - // this point. We trust the standand library to do the right - // thing. See http://stackoverflow.com/q/28142011/266378 - m_line_buffer.assign(m_start, m_limit); + assert(m_content != nullptr); + m_start = m_cursor = m_content; + m_limit = m_content + len; + } - // append n characters to make sure that there is sufficient - // space between m_cursor and m_limit - m_line_buffer.append(1, '\x00'); - if (n > 0) + /// a lexer from an input stream + explicit lexer(std::istream& s) + : m_stream(&s), m_line_buffer() + { + // immediately abort if stream is erroneous + if (s.fail()) { - m_line_buffer.append(n - 1, '\x01'); + JSON_THROW(std::invalid_argument("stream error")); + } + + // fill buffer + fill_line_buffer(); + + // skip UTF-8 byte-order mark + if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF") + { + m_line_buffer[0] = ' '; + m_line_buffer[1] = ' '; + m_line_buffer[2] = ' '; } } - else + + // switch off unwanted functions (due to pointer members) + lexer() = delete; + lexer(const lexer&) = delete; + lexer operator=(const lexer&) = delete; + + /*! + @brief create a string from one or two Unicode code points + + There are two cases: (1) @a codepoint1 is in the Basic Multilingual + Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) + @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to + represent a code point above U+FFFF. + + @param[in] codepoint1 the code point (can be high surrogate) + @param[in] codepoint2 the code point (can be low surrogate or 0) + + @return string representation of the code point; the length of the + result string is between 1 and 4 characters. + + @throw std::out_of_range if code point is > 0x10ffff; example: `"code + points above 0x10FFFF are invalid"` + @throw std::invalid_argument if the low surrogate is invalid; example: + `""missing or wrong low surrogate""` + + @complexity Constant. + + @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code> + */ + static string_t to_unicode(const std::size_t codepoint1, + const std::size_t codepoint2 = 0) { - // delete processed characters from line buffer - m_line_buffer.erase(0, num_processed_chars); - // read next line from input stream - m_line_buffer_tmp.clear(); - std::getline(*m_stream, m_line_buffer_tmp, '\n'); + // calculate the code point from the given code points + std::size_t codepoint = codepoint1; - // add line with newline symbol to the line buffer - m_line_buffer += m_line_buffer_tmp; - m_line_buffer.push_back('\n'); - } - - // set pointers - m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()); - assert(m_content != nullptr); - m_start = m_content; - m_marker = m_start + offset_marker; - m_cursor = m_start + offset_cursor; - m_limit = m_start + m_line_buffer.size(); - } - - /// return string representation of last read token - string_t get_token_string() const - { - assert(m_start != nullptr); - return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start), - static_cast<size_t>(m_cursor - m_start)); - } - - /*! - @brief return string value for string tokens - - The function iterates the characters between the opening and closing - quotes of the string value. The complete string is the range - [m_start,m_cursor). Consequently, we iterate from m_start+1 to - m_cursor-1. - - We differentiate two cases: - - 1. Escaped characters. In this case, a new character is constructed - according to the nature of the escape. Some escapes create new - characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied - as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape - `"\\uxxxx"` need special care. In this case, to_unicode takes care - of the construction of the values. - 2. Unescaped characters are copied as is. - - @pre `m_cursor - m_start >= 2`, meaning the length of the last token - is at least 2 bytes which is trivially true for any string (which - consists of at least two quotes). - - " c1 c2 c3 ... " - ^ ^ - m_start m_cursor - - @complexity Linear in the length of the string.\n - - Lemma: The loop body will always terminate.\n - - Proof (by contradiction): Assume the loop body does not terminate. As - the loop body does not contain another loop, one of the called - functions must never return. The called functions are `std::strtoul` - and to_unicode. Neither function can loop forever, so the loop body - will never loop forever which contradicts the assumption that the loop - body does not terminate, q.e.d.\n - - Lemma: The loop condition for the for loop is eventually false.\n - - Proof (by contradiction): Assume the loop does not terminate. Due to - the above lemma, this can only be due to a tautological loop - condition; that is, the loop condition i < m_cursor - 1 must always be - true. Let x be the change of i for any loop iteration. Then - m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This - can be rephrased to m_cursor - m_start - 2 > x. With the - precondition, we x <= 0, meaning that the loop condition holds - indefinitly if i is always decreased. However, observe that the value - of i is strictly increasing with each iteration, as it is incremented - by 1 in the iteration expression and never decremented inside the loop - body. Hence, the loop condition will eventually be false which - contradicts the assumption that the loop condition is a tautology, - q.e.d. - - @return string value of current token without opening and closing - quotes - @throw std::out_of_range if to_unicode fails - */ - string_t get_string() const - { - assert(m_cursor - m_start >= 2); - - string_t result; - result.reserve(static_cast<size_t>(m_cursor - m_start - 2)); - - // iterate the result between the quotes - for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i) - { - // find next escape character - auto e = std::find(i, m_cursor - 1, '\\'); - if (e != i) + // check if codepoint1 is a high surrogate + if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF) { - // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705 - for (auto k = i; k < e; k++) + // check if codepoint2 is a low surrogate + if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF) { - result.push_back(static_cast<typename string_t::value_type>(*k)); - } - i = e - 1; // -1 because of ++i - } - else - { - // processing escaped character - // read next character - ++i; - - switch (*i) - { - // the default escapes - case 't': - { - result += "\t"; - break; - } - case 'b': - { - result += "\b"; - break; - } - case 'f': - { - result += "\f"; - break; - } - case 'n': - { - result += "\n"; - break; - } - case 'r': - { - result += "\r"; - break; - } - case '\\': - { - result += "\\"; - break; - } - case '/': - { - result += "/"; - break; - } - case '"': - { - result += "\""; - break; - } - - // unicode - case 'u': - { - // get code xxxx from uxxxx - auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1), - 4).c_str(), nullptr, 16); - - // check if codepoint is a high surrogate - if (codepoint >= 0xD800 and codepoint <= 0xDBFF) - { - // make sure there is a subsequent unicode - if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') - { - JSON_THROW(std::invalid_argument("missing low surrogate")); - } - - // get code yyyy from uxxxx\uyyyy - auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer> - (i + 7), 4).c_str(), nullptr, 16); - result += to_unicode(codepoint, codepoint2); - // skip the next 10 characters (xxxx\uyyyy) - i += 10; - } - else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) - { - // we found a lone low surrogate - JSON_THROW(std::invalid_argument("missing high surrogate")); - } - else - { - // add unicode character(s) - result += to_unicode(codepoint); - // skip the next four characters (xxxx) - i += 4; - } - break; - } - } - } - } - - return result; - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - long double str_to_float_t(long double* /* type */, char** endptr) const - { - return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - double str_to_float_t(double* /* type */, char** endptr) const - { - return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - float str_to_float_t(float* /* type */, char** endptr) const - { - return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief return number value for number tokens - - This function translates the last token into the most appropriate - number type (either integer, unsigned integer or floating point), - which is passed back to the caller via the result parameter. - - This function parses the integer component up to the radix point or - exponent while collecting information about the 'floating point - representation', which it stores in the result parameter. If there is - no radix point or exponent, and the number can fit into a @ref - number_integer_t or @ref number_unsigned_t then it sets the result - parameter accordingly. - - If the number is a floating point number the number is then parsed - using @a std:strtod (or @a std:strtof or @a std::strtold). - - @param[out] result @ref basic_json object to receive the number, or - NAN if the conversion read past the current token. The latter case - needs to be treated by the caller function. - */ - void get_number(basic_json& result) const - { - assert(m_start != nullptr); - - const lexer::lexer_char_t* curptr = m_start; - - // accumulate the integer conversion result (unsigned for now) - number_unsigned_t value = 0; - - // maximum absolute value of the relevant integer type - number_unsigned_t max; - - // temporarily store the type to avoid unecessary bitfield access - value_t type; - - // look for sign - if (*curptr == '-') - { - type = value_t::number_integer; - max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1; - curptr++; - } - else - { - type = value_t::number_unsigned; - max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)()); - } - - // count the significant figures - for (; curptr < m_cursor; curptr++) - { - // quickly skip tests if a digit - if (*curptr < '0' || *curptr > '9') - { - if (*curptr == '.') - { - // don't count '.' but change to float - type = value_t::number_float; - continue; - } - // assume exponent (if not then will fail parse): change to - // float, stop counting and record exponent details - type = value_t::number_float; - break; - } - - // skip if definitely not an integer - if (type != value_t::number_float) - { - auto digit = static_cast<number_unsigned_t>(*curptr - '0'); - - // overflow if value * 10 + digit > max, move terms around - // to avoid overflow in intermediate values - if (value > (max - digit) / 10) - { - // overflow - type = value_t::number_float; + codepoint = + // high surrogate occupies the most significant 22 bits + (codepoint1 << 10) + // low surrogate occupies the least significant 15 bits + + codepoint2 + // there is still the 0xD800, 0xDC00 and 0x10000 noise + // in the result so we have to subtract with: + // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 + - 0x35FDC00; } else { - // no overflow - value = value * 10 + digit; + JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); + } + } + + string_t result; + + if (codepoint < 0x80) + { + // 1-byte characters: 0xxxxxxx (ASCII) + result.append(1, static_cast<typename string_t::value_type>(codepoint)); + } + else if (codepoint <= 0x7ff) + { + // 2-byte characters: 110xxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else if (codepoint <= 0xffff) + { + // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else if (codepoint <= 0x10ffff) + { + // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else + { + JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid")); + } + + return result; + } + + /// return name of values of type token_type (only used for errors) + static std::string token_type_name(const token_type t) + { + switch (t) + { + case token_type::uninitialized: + return "<uninitialized>"; + case token_type::literal_true: + return "true literal"; + case token_type::literal_false: + return "false literal"; + case token_type::literal_null: + return "null literal"; + case token_type::value_string: + return "string literal"; + case token_type::value_number: + return "number literal"; + case token_type::begin_array: + return "'['"; + case token_type::begin_object: + return "'{'"; + case token_type::end_array: + return "']'"; + case token_type::end_object: + return "'}'"; + case token_type::name_separator: + return "':'"; + case token_type::value_separator: + return "','"; + case token_type::parse_error: + return "<parse error>"; + case token_type::end_of_input: + return "end of input"; + default: + { + // catch non-enum values + return "unknown token"; // LCOV_EXCL_LINE } } } - // save the value (if not a float) - if (type == value_t::number_unsigned) - { - result.m_value.number_unsigned = value; - } - else if (type == value_t::number_integer) - { - // invariant: if we parsed a '-', the absolute value is between - // 0 (we allow -0) and max == -INT64_MIN - assert(value >= 0); - assert(value <= max); + /*! + This function implements a scanner for JSON. It is specified using + regular expressions that try to follow RFC 7159 as close as possible. + These regular expressions are then translated into a minimized + deterministic finite automaton (DFA) by the tool + [re2c](http://re2c.org). As a result, the translated code for this + function consists of a large block of code with `goto` jumps. - if (value == max) + @return the class of the next token read from the buffer + + @complexity Linear in the length of the input.\n + + Proposition: The loop below will always terminate for finite input.\n + + Proof (by contradiction): Assume a finite input. To loop forever, the + loop must never hit code with a `break` statement. The only code + snippets without a `break` statement are the continue statements for + whitespace and byte-order-marks. To loop forever, the input must be an + infinite sequence of whitespace or byte-order-marks. This contradicts + the assumption of finite input, q.e.d. + */ + token_type scan() + { + while (true) { - // we cannot simply negate value (== max == -INT64_MIN), - // see https://github.com/nlohmann/json/issues/389 - result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN); + // pointer for backtracking information + m_marker = nullptr; + + // remember the begin of the token + m_start = m_cursor; + assert(m_start != nullptr); + + + { + lexer_char_t yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = + { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + if ((m_limit - m_cursor) < 5) + { + fill_line_buffer(5); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 32) + { + goto basic_json_parser_6; + } + if (yych <= '[') + { + if (yych <= '-') + { + if (yych <= '"') + { + if (yych <= 0x00) + { + goto basic_json_parser_2; + } + if (yych <= '!') + { + goto basic_json_parser_4; + } + goto basic_json_parser_9; + } + else + { + if (yych <= '+') + { + goto basic_json_parser_4; + } + if (yych <= ',') + { + goto basic_json_parser_10; + } + goto basic_json_parser_12; + } + } + else + { + if (yych <= '9') + { + if (yych <= '/') + { + goto basic_json_parser_4; + } + if (yych <= '0') + { + goto basic_json_parser_13; + } + goto basic_json_parser_15; + } + else + { + if (yych <= ':') + { + goto basic_json_parser_17; + } + if (yych <= 'Z') + { + goto basic_json_parser_4; + } + goto basic_json_parser_19; + } + } + } + else + { + if (yych <= 'n') + { + if (yych <= 'e') + { + if (yych == ']') + { + goto basic_json_parser_21; + } + goto basic_json_parser_4; + } + else + { + if (yych <= 'f') + { + goto basic_json_parser_23; + } + if (yych <= 'm') + { + goto basic_json_parser_4; + } + goto basic_json_parser_24; + } + } + else + { + if (yych <= 'z') + { + if (yych == 't') + { + goto basic_json_parser_25; + } + goto basic_json_parser_4; + } + else + { + if (yych <= '{') + { + goto basic_json_parser_26; + } + if (yych == '}') + { + goto basic_json_parser_28; + } + goto basic_json_parser_4; + } + } + } +basic_json_parser_2: + ++m_cursor; + { + last_token_type = token_type::end_of_input; + break; + } +basic_json_parser_4: + ++m_cursor; +basic_json_parser_5: + { + last_token_type = token_type::parse_error; + break; + } +basic_json_parser_6: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 32) + { + goto basic_json_parser_6; + } + { + continue; + } +basic_json_parser_9: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych <= 0x1F) + { + goto basic_json_parser_5; + } + if (yych <= 0x7F) + { + goto basic_json_parser_31; + } + if (yych <= 0xC1) + { + goto basic_json_parser_5; + } + if (yych <= 0xF4) + { + goto basic_json_parser_31; + } + goto basic_json_parser_5; +basic_json_parser_10: + ++m_cursor; + { + last_token_type = token_type::value_separator; + break; + } +basic_json_parser_12: + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_5; + } + if (yych <= '0') + { + goto basic_json_parser_13; + } + if (yych <= '9') + { + goto basic_json_parser_15; + } + goto basic_json_parser_5; +basic_json_parser_13: + yyaccept = 1; + yych = *(m_marker = ++m_cursor); + if (yych <= 'D') + { + if (yych == '.') + { + goto basic_json_parser_43; + } + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + } +basic_json_parser_14: + { + last_token_type = token_type::value_number; + break; + } +basic_json_parser_15: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) + { + fill_line_buffer(3); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 64) + { + goto basic_json_parser_15; + } + if (yych <= 'D') + { + if (yych == '.') + { + goto basic_json_parser_43; + } + goto basic_json_parser_14; + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + goto basic_json_parser_14; + } +basic_json_parser_17: + ++m_cursor; + { + last_token_type = token_type::name_separator; + break; + } +basic_json_parser_19: + ++m_cursor; + { + last_token_type = token_type::begin_array; + break; + } +basic_json_parser_21: + ++m_cursor; + { + last_token_type = token_type::end_array; + break; + } +basic_json_parser_23: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'a') + { + goto basic_json_parser_45; + } + goto basic_json_parser_5; +basic_json_parser_24: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'u') + { + goto basic_json_parser_46; + } + goto basic_json_parser_5; +basic_json_parser_25: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'r') + { + goto basic_json_parser_47; + } + goto basic_json_parser_5; +basic_json_parser_26: + ++m_cursor; + { + last_token_type = token_type::begin_object; + break; + } +basic_json_parser_28: + ++m_cursor; + { + last_token_type = token_type::end_object; + break; + } +basic_json_parser_30: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; +basic_json_parser_31: + if (yybm[0 + yych] & 128) + { + goto basic_json_parser_30; + } + if (yych <= 0xE0) + { + if (yych <= '\\') + { + if (yych <= 0x1F) + { + goto basic_json_parser_32; + } + if (yych <= '"') + { + goto basic_json_parser_33; + } + goto basic_json_parser_35; + } + else + { + if (yych <= 0xC1) + { + goto basic_json_parser_32; + } + if (yych <= 0xDF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_37; + } + } + else + { + if (yych <= 0xEF) + { + if (yych == 0xED) + { + goto basic_json_parser_39; + } + goto basic_json_parser_38; + } + else + { + if (yych <= 0xF0) + { + goto basic_json_parser_40; + } + if (yych <= 0xF3) + { + goto basic_json_parser_41; + } + if (yych <= 0xF4) + { + goto basic_json_parser_42; + } + } + } +basic_json_parser_32: + m_cursor = m_marker; + if (yyaccept == 0) + { + goto basic_json_parser_5; + } + else + { + goto basic_json_parser_14; + } +basic_json_parser_33: + ++m_cursor; + { + last_token_type = token_type::value_string; + break; + } +basic_json_parser_35: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 'e') + { + if (yych <= '/') + { + if (yych == '"') + { + goto basic_json_parser_30; + } + if (yych <= '.') + { + goto basic_json_parser_32; + } + goto basic_json_parser_30; + } + else + { + if (yych <= '\\') + { + if (yych <= '[') + { + goto basic_json_parser_32; + } + goto basic_json_parser_30; + } + else + { + if (yych == 'b') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + } + } + else + { + if (yych <= 'q') + { + if (yych <= 'f') + { + goto basic_json_parser_30; + } + if (yych == 'n') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 's') + { + if (yych <= 'r') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 't') + { + goto basic_json_parser_30; + } + if (yych <= 'u') + { + goto basic_json_parser_48; + } + goto basic_json_parser_32; + } + } + } +basic_json_parser_36: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; +basic_json_parser_37: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x9F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; +basic_json_parser_38: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; +basic_json_parser_39: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0x9F) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; +basic_json_parser_40: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x8F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; +basic_json_parser_41: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; +basic_json_parser_42: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0x8F) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; +basic_json_parser_43: + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_49; + } + goto basic_json_parser_32; +basic_json_parser_44: + yych = *++m_cursor; + if (yych <= ',') + { + if (yych == '+') + { + goto basic_json_parser_51; + } + goto basic_json_parser_32; + } + else + { + if (yych <= '-') + { + goto basic_json_parser_51; + } + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_52; + } + goto basic_json_parser_32; + } +basic_json_parser_45: + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_54; + } + goto basic_json_parser_32; +basic_json_parser_46: + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_55; + } + goto basic_json_parser_32; +basic_json_parser_47: + yych = *++m_cursor; + if (yych == 'u') + { + goto basic_json_parser_56; + } + goto basic_json_parser_32; +basic_json_parser_48: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_57; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_57; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_57; + } + goto basic_json_parser_32; + } +basic_json_parser_49: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) + { + fill_line_buffer(3); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 'D') + { + if (yych <= '/') + { + goto basic_json_parser_14; + } + if (yych <= '9') + { + goto basic_json_parser_49; + } + goto basic_json_parser_14; + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + goto basic_json_parser_14; + } +basic_json_parser_51: + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych >= ':') + { + goto basic_json_parser_32; + } +basic_json_parser_52: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '/') + { + goto basic_json_parser_14; + } + if (yych <= '9') + { + goto basic_json_parser_52; + } + goto basic_json_parser_14; +basic_json_parser_54: + yych = *++m_cursor; + if (yych == 's') + { + goto basic_json_parser_58; + } + goto basic_json_parser_32; +basic_json_parser_55: + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_59; + } + goto basic_json_parser_32; +basic_json_parser_56: + yych = *++m_cursor; + if (yych == 'e') + { + goto basic_json_parser_61; + } + goto basic_json_parser_32; +basic_json_parser_57: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_63; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_63; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_63; + } + goto basic_json_parser_32; + } +basic_json_parser_58: + yych = *++m_cursor; + if (yych == 'e') + { + goto basic_json_parser_64; + } + goto basic_json_parser_32; +basic_json_parser_59: + ++m_cursor; + { + last_token_type = token_type::literal_null; + break; + } +basic_json_parser_61: + ++m_cursor; + { + last_token_type = token_type::literal_true; + break; + } +basic_json_parser_63: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_66; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_66; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_66; + } + goto basic_json_parser_32; + } +basic_json_parser_64: + ++m_cursor; + { + last_token_type = token_type::literal_false; + break; + } +basic_json_parser_66: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_30; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + } + + } + + return last_token_type; + } + + /*! + @brief append data from the stream to the line buffer + + This function is called by the scan() function when the end of the + buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be + incremented without leaving the limits of the line buffer. Note re2c + decides when to call this function. + + If the lexer reads from contiguous storage, there is no trailing null + byte. Therefore, this function must make sure to add these padding + null bytes. + + If the lexer reads from an input stream, this function reads the next + line of the input. + + @pre + p p p p p p u u u u u x . . . . . . + ^ ^ ^ ^ + m_content m_start | m_limit + m_cursor + + @post + u u u u u x x x x x x x . . . . . . + ^ ^ ^ + | m_cursor m_limit + m_start + m_content + */ + void fill_line_buffer(size_t n = 0) + { + // if line buffer is used, m_content points to its data + assert(m_line_buffer.empty() + or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data())); + + // if line buffer is used, m_limit is set past the end of its data + assert(m_line_buffer.empty() + or m_limit == m_content + m_line_buffer.size()); + + // pointer relationships + assert(m_content <= m_start); + assert(m_start <= m_cursor); + assert(m_cursor <= m_limit); + assert(m_marker == nullptr or m_marker <= m_limit); + + // number of processed characters (p) + const auto num_processed_chars = static_cast<size_t>(m_start - m_content); + // offset for m_marker wrt. to m_start + const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; + // number of unprocessed characters (u) + const auto offset_cursor = m_cursor - m_start; + + // no stream is used or end of file is reached + if (m_stream == nullptr or m_stream->eof()) + { + // m_start may or may not be pointing into m_line_buffer at + // this point. We trust the standand library to do the right + // thing. See http://stackoverflow.com/q/28142011/266378 + m_line_buffer.assign(m_start, m_limit); + + // append n characters to make sure that there is sufficient + // space between m_cursor and m_limit + m_line_buffer.append(1, '\x00'); + if (n > 0) + { + m_line_buffer.append(n - 1, '\x01'); + } } else { - // all other values can be negated safely - result.m_value.number_integer = -static_cast<number_integer_t>(value); + // delete processed characters from line buffer + m_line_buffer.erase(0, num_processed_chars); + // read next line from input stream + m_line_buffer_tmp.clear(); + std::getline(*m_stream, m_line_buffer_tmp, '\n'); + + // add line with newline symbol to the line buffer + m_line_buffer += m_line_buffer_tmp; + m_line_buffer.push_back('\n'); } + + // set pointers + m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()); + assert(m_content != nullptr); + m_start = m_content; + m_marker = m_start + offset_marker; + m_cursor = m_start + offset_cursor; + m_limit = m_start + m_line_buffer.size(); } - else + + /// return string representation of last read token + string_t get_token_string() const { - // parse with strtod + assert(m_start != nullptr); + return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start), + static_cast<size_t>(m_cursor - m_start)); + } + + /*! + @brief return string value for string tokens + + The function iterates the characters between the opening and closing + quotes of the string value. The complete string is the range + [m_start,m_cursor). Consequently, we iterate from m_start+1 to + m_cursor-1. + + We differentiate two cases: + + 1. Escaped characters. In this case, a new character is constructed + according to the nature of the escape. Some escapes create new + characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied + as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape + `"\\uxxxx"` need special care. In this case, to_unicode takes care + of the construction of the values. + 2. Unescaped characters are copied as is. + + @pre `m_cursor - m_start >= 2`, meaning the length of the last token + is at least 2 bytes which is trivially true for any string (which + consists of at least two quotes). + + " c1 c2 c3 ... " + ^ ^ + m_start m_cursor + + @complexity Linear in the length of the string.\n + + Lemma: The loop body will always terminate.\n + + Proof (by contradiction): Assume the loop body does not terminate. As + the loop body does not contain another loop, one of the called + functions must never return. The called functions are `std::strtoul` + and to_unicode. Neither function can loop forever, so the loop body + will never loop forever which contradicts the assumption that the loop + body does not terminate, q.e.d.\n + + Lemma: The loop condition for the for loop is eventually false.\n + + Proof (by contradiction): Assume the loop does not terminate. Due to + the above lemma, this can only be due to a tautological loop + condition; that is, the loop condition i < m_cursor - 1 must always be + true. Let x be the change of i for any loop iteration. Then + m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This + can be rephrased to m_cursor - m_start - 2 > x. With the + precondition, we x <= 0, meaning that the loop condition holds + indefinitly if i is always decreased. However, observe that the value + of i is strictly increasing with each iteration, as it is incremented + by 1 in the iteration expression and never decremented inside the loop + body. Hence, the loop condition will eventually be false which + contradicts the assumption that the loop condition is a tautology, + q.e.d. + + @return string value of current token without opening and closing + quotes + @throw std::out_of_range if to_unicode fails + */ + string_t get_string() const + { + assert(m_cursor - m_start >= 2); + + string_t result; + result.reserve(static_cast<size_t>(m_cursor - m_start - 2)); + + // iterate the result between the quotes + for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i) + { + // find next escape character + auto e = std::find(i, m_cursor - 1, '\\'); + if (e != i) + { + // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705 + for (auto k = i; k < e; k++) + { + result.push_back(static_cast<typename string_t::value_type>(*k)); + } + i = e - 1; // -1 because of ++i + } + else + { + // processing escaped character + // read next character + ++i; + + switch (*i) + { + // the default escapes + case 't': + { + result += "\t"; + break; + } + case 'b': + { + result += "\b"; + break; + } + case 'f': + { + result += "\f"; + break; + } + case 'n': + { + result += "\n"; + break; + } + case 'r': + { + result += "\r"; + break; + } + case '\\': + { + result += "\\"; + break; + } + case '/': + { + result += "/"; + break; + } + case '"': + { + result += "\""; + break; + } + + // unicode + case 'u': + { + // get code xxxx from uxxxx + auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1), + 4).c_str(), nullptr, 16); + + // check if codepoint is a high surrogate + if (codepoint >= 0xD800 and codepoint <= 0xDBFF) + { + // make sure there is a subsequent unicode + if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') + { + JSON_THROW(std::invalid_argument("missing low surrogate")); + } + + // get code yyyy from uxxxx\uyyyy + auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer> + (i + 7), 4).c_str(), nullptr, 16); + result += to_unicode(codepoint, codepoint2); + // skip the next 10 characters (xxxx\uyyyy) + i += 10; + } + else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) + { + // we found a lone low surrogate + JSON_THROW(std::invalid_argument("missing high surrogate")); + } + else + { + // add unicode character(s) + result += to_unicode(codepoint); + // skip the next four characters (xxxx) + i += 4; + } + break; + } + } + } + } + + return result; + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + long double str_to_float_t(long double* /* type */, char** endptr) const + { + return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + double str_to_float_t(double* /* type */, char** endptr) const + { + return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + float str_to_float_t(float* /* type */, char** endptr) const + { + return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief return number value for number tokens + + This function translates the last token into the most appropriate + number type (either integer, unsigned integer or floating point), + which is passed back to the caller via the result parameter. + + This function parses the integer component up to the radix point or + exponent while collecting information about the 'floating point + representation', which it stores in the result parameter. If there is + no radix point or exponent, and the number can fit into a @ref + number_integer_t or @ref number_unsigned_t then it sets the result + parameter accordingly. + + If the number is a floating point number the number is then parsed + using @a std:strtod (or @a std:strtof or @a std::strtold). + + @param[out] result @ref basic_json object to receive the number, or + NAN if the conversion read past the current token. The latter case + needs to be treated by the caller function. + */ + void get_number(basic_json& result) const + { + assert(m_start != nullptr); + + const lexer::lexer_char_t* curptr = m_start; + + // accumulate the integer conversion result (unsigned for now) + number_unsigned_t value = 0; + + // maximum absolute value of the relevant integer type + number_unsigned_t max; + + // temporarily store the type to avoid unecessary bitfield access + value_t type; + + // look for sign + if (*curptr == '-') + { + type = value_t::number_integer; + max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1; + curptr++; + } + else + { + type = value_t::number_unsigned; + max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)()); + } + + // count the significant figures + for (; curptr < m_cursor; curptr++) + { + // quickly skip tests if a digit + if (*curptr < '0' || *curptr > '9') + { + if (*curptr == '.') + { + // don't count '.' but change to float + type = value_t::number_float; + continue; + } + // assume exponent (if not then will fail parse): change to + // float, stop counting and record exponent details + type = value_t::number_float; + break; + } + + // skip if definitely not an integer + if (type != value_t::number_float) + { + auto digit = static_cast<number_unsigned_t>(*curptr - '0'); + + // overflow if value * 10 + digit > max, move terms around + // to avoid overflow in intermediate values + if (value > (max - digit) / 10) + { + // overflow + type = value_t::number_float; + } + else + { + // no overflow + value = value * 10 + digit; + } + } + } + + // save the value (if not a float) + if (type == value_t::number_unsigned) + { + result.m_value.number_unsigned = value; + } + else if (type == value_t::number_integer) + { + // invariant: if we parsed a '-', the absolute value is between + // 0 (we allow -0) and max == -INT64_MIN + assert(value >= 0); + assert(value <= max); + + if (value == max) + { + // we cannot simply negate value (== max == -INT64_MIN), + // see https://github.com/nlohmann/json/issues/389 + result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN); + } + else + { + // all other values can be negated safely + result.m_value.number_integer = -static_cast<number_integer_t>(value); + } + } + else + { + // parse with strtod result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr); - // replace infinity and NAN by null - if (not std::isfinite(result.m_value.number_float)) - { - type = value_t::null; - result.m_value = basic_json::json_value(); + // replace infinity and NAN by null + if (not std::isfinite(result.m_value.number_float)) + { + type = value_t::null; + result.m_value = basic_json::json_value(); + } } + + // save the type + result.m_type = type; } - // save the type - result.m_type = type; - } - - private: - /// optional input stream - std::istream* m_stream = nullptr; - /// line buffer buffer for m_stream - string_t m_line_buffer {}; - /// used for filling m_line_buffer - string_t m_line_buffer_tmp {}; - /// the buffer pointer - const lexer_char_t* m_content = nullptr; - /// pointer to the beginning of the current symbol - const lexer_char_t* m_start = nullptr; - /// pointer for backtracking information - const lexer_char_t* m_marker = nullptr; - /// pointer to the current symbol - const lexer_char_t* m_cursor = nullptr; - /// pointer to the end of the buffer - const lexer_char_t* m_limit = nullptr; - /// the last token type - token_type last_token_type = token_type::end_of_input; - }; + private: + /// optional input stream + std::istream* m_stream = nullptr; + /// line buffer buffer for m_stream + string_t m_line_buffer {}; + /// used for filling m_line_buffer + string_t m_line_buffer_tmp {}; + /// the buffer pointer + const lexer_char_t* m_content = nullptr; + /// pointer to the beginning of the current symbol + const lexer_char_t* m_start = nullptr; + /// pointer for backtracking information + const lexer_char_t* m_marker = nullptr; + /// pointer to the current symbol + const lexer_char_t* m_cursor = nullptr; + /// pointer to the end of the buffer + const lexer_char_t* m_limit = nullptr; + /// the last token type + token_type last_token_type = token_type::end_of_input; + }; /*! @brief syntax analysis @@ -10339,282 +10856,282 @@ basic_json_parser_66: */ class parser { - public: + public: /// a parser reading from a string literal parser(const char* buff, const parser_callback_t cb = nullptr) - : callback(cb), - m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff)) - {} + : callback(cb), + m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff)) + {} - /// a parser reading from an input stream - parser(std::istream& is, const parser_callback_t cb = nullptr) - : callback(cb), m_lexer(is) - {} + /// a parser reading from an input stream + parser(std::istream& is, const parser_callback_t cb = nullptr) + : callback(cb), m_lexer(is) + {} - /// a parser reading from an iterator range with contiguous storage - template<class IteratorType, typename std::enable_if< - std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value - , int>::type - = 0> - parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) - : callback(cb), - m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)), - static_cast<size_t>(std::distance(first, last))) - {} + /// a parser reading from an iterator range with contiguous storage + template<class IteratorType, typename std::enable_if< + std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value + , int>::type + = 0> + parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) + : callback(cb), + m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)), + static_cast<size_t>(std::distance(first, last))) + {} - /// public parser interface - basic_json parse() - { - // read first token - get_token(); - - basic_json result = parse_internal(true); - result.assert_invariant(); - - expect(lexer::token_type::end_of_input); - - // return parser result and replace it with null in case the - // top-level value was discarded by the callback function - return result.is_discarded() ? basic_json() : std::move(result); - } - - private: - /// the actual parser - basic_json parse_internal(bool keep) - { - auto result = basic_json(value_t::discarded); - - switch (last_token) + /// public parser interface + basic_json parse() { - case lexer::token_type::begin_object: + // read first token + get_token(); + + basic_json result = parse_internal(true); + result.assert_invariant(); + + expect(lexer::token_type::end_of_input); + + // return parser result and replace it with null in case the + // top-level value was discarded by the callback function + return result.is_discarded() ? basic_json() : std::move(result); + } + + private: + /// the actual parser + basic_json parse_internal(bool keep) + { + auto result = basic_json(value_t::discarded); + + switch (last_token) { - if (keep and (not callback - or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) + case lexer::token_type::begin_object: { - // explicitly set result to object to cope with {} - result.m_type = value_t::object; - result.m_value = value_t::object; - } + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) + { + // explicitly set result to object to cope with {} + result.m_type = value_t::object; + result.m_value = value_t::object; + } - // read next token - get_token(); + // read next token + get_token(); - // closing } -> we are done - if (last_token == lexer::token_type::end_object) - { + // closing } -> we are done + if (last_token == lexer::token_type::end_object) + { + get_token(); + if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) + { + result = basic_json(value_t::discarded); + } + return result; + } + + // no comma is expected here + unexpect(lexer::token_type::value_separator); + + // otherwise: parse key-value pairs + do + { + // ugly, but could be fixed with loop reorganization + if (last_token == lexer::token_type::value_separator) + { + get_token(); + } + + // store key + expect(lexer::token_type::value_string); + const auto key = m_lexer.get_string(); + + bool keep_tag = false; + if (keep) + { + if (callback) + { + basic_json k(key); + keep_tag = callback(depth, parse_event_t::key, k); + } + else + { + keep_tag = true; + } + } + + // parse separator (:) + get_token(); + expect(lexer::token_type::name_separator); + + // parse and add value + get_token(); + auto value = parse_internal(keep); + if (keep and keep_tag and not value.is_discarded()) + { + result[key] = std::move(value); + } + } + while (last_token == lexer::token_type::value_separator); + + // closing } + expect(lexer::token_type::end_object); get_token(); if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) { result = basic_json(value_t::discarded); } + return result; } - // no comma is expected here - unexpect(lexer::token_type::value_separator); - - // otherwise: parse key-value pairs - do + case lexer::token_type::begin_array: { - // ugly, but could be fixed with loop reorganization - if (last_token == lexer::token_type::value_separator) + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) + { + // explicitly set result to object to cope with [] + result.m_type = value_t::array; + result.m_value = value_t::array; + } + + // read next token + get_token(); + + // closing ] -> we are done + if (last_token == lexer::token_type::end_array) { get_token(); + if (callback and not callback(--depth, parse_event_t::array_end, result)) + { + result = basic_json(value_t::discarded); + } + return result; } - // store key - expect(lexer::token_type::value_string); - const auto key = m_lexer.get_string(); + // no comma is expected here + unexpect(lexer::token_type::value_separator); - bool keep_tag = false; - if (keep) + // otherwise: parse values + do { - if (callback) + // ugly, but could be fixed with loop reorganization + if (last_token == lexer::token_type::value_separator) { - basic_json k(key); - keep_tag = callback(depth, parse_event_t::key, k); + get_token(); } - else + + // parse value + auto value = parse_internal(keep); + if (keep and not value.is_discarded()) { - keep_tag = true; + result.push_back(std::move(value)); } } + while (last_token == lexer::token_type::value_separator); - // parse separator (:) + // closing ] + expect(lexer::token_type::end_array); get_token(); - expect(lexer::token_type::name_separator); - - // parse and add value - get_token(); - auto value = parse_internal(keep); - if (keep and keep_tag and not value.is_discarded()) - { - result[key] = std::move(value); - } - } - while (last_token == lexer::token_type::value_separator); - - // closing } - expect(lexer::token_type::end_object); - get_token(); - if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) - { - result = basic_json(value_t::discarded); - } - - return result; - } - - case lexer::token_type::begin_array: - { - if (keep and (not callback - or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) - { - // explicitly set result to object to cope with [] - result.m_type = value_t::array; - result.m_value = value_t::array; - } - - // read next token - get_token(); - - // closing ] -> we are done - if (last_token == lexer::token_type::end_array) - { - get_token(); - if (callback and not callback(--depth, parse_event_t::array_end, result)) + if (keep and callback and not callback(--depth, parse_event_t::array_end, result)) { result = basic_json(value_t::discarded); } + return result; } - // no comma is expected here - unexpect(lexer::token_type::value_separator); - - // otherwise: parse values - do + case lexer::token_type::literal_null: { - // ugly, but could be fixed with loop reorganization - if (last_token == lexer::token_type::value_separator) - { - get_token(); - } - - // parse value - auto value = parse_internal(keep); - if (keep and not value.is_discarded()) - { - result.push_back(std::move(value)); - } - } - while (last_token == lexer::token_type::value_separator); - - // closing ] - expect(lexer::token_type::end_array); - get_token(); - if (keep and callback and not callback(--depth, parse_event_t::array_end, result)) - { - result = basic_json(value_t::discarded); + get_token(); + result.m_type = value_t::null; + break; } - return result; + case lexer::token_type::value_string: + { + const auto s = m_lexer.get_string(); + get_token(); + result = basic_json(s); + break; + } + + case lexer::token_type::literal_true: + { + get_token(); + result.m_type = value_t::boolean; + result.m_value = true; + break; + } + + case lexer::token_type::literal_false: + { + get_token(); + result.m_type = value_t::boolean; + result.m_value = false; + break; + } + + case lexer::token_type::value_number: + { + m_lexer.get_number(result); + get_token(); + break; + } + + default: + { + // the last token was unexpected + unexpect(last_token); + } } - case lexer::token_type::literal_null: + if (keep and callback and not callback(depth, parse_event_t::value, result)) { - get_token(); - result.m_type = value_t::null; - break; - } - - case lexer::token_type::value_string: - { - const auto s = m_lexer.get_string(); - get_token(); - result = basic_json(s); - break; - } - - case lexer::token_type::literal_true: - { - get_token(); - result.m_type = value_t::boolean; - result.m_value = true; - break; - } - - case lexer::token_type::literal_false: - { - get_token(); - result.m_type = value_t::boolean; - result.m_value = false; - break; - } - - case lexer::token_type::value_number: - { - m_lexer.get_number(result); - get_token(); - break; - } - - default: - { - // the last token was unexpected - unexpect(last_token); + result = basic_json(value_t::discarded); } + return result; } - if (keep and callback and not callback(depth, parse_event_t::value, result)) + /// get next token from lexer + typename lexer::token_type get_token() { - result = basic_json(value_t::discarded); + last_token = m_lexer.scan(); + return last_token; } - return result; - } - /// get next token from lexer - typename lexer::token_type get_token() - { - last_token = m_lexer.scan(); - return last_token; - } - - void expect(typename lexer::token_type t) const - { - if (t != last_token) + void expect(typename lexer::token_type t) const { - std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + - "'") : - lexer::token_type_name(last_token)); - error_msg += "; expected " + lexer::token_type_name(t); + if (t != last_token) + { + std::string error_msg = "parse error - unexpected "; + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : + lexer::token_type_name(last_token)); + error_msg += "; expected " + lexer::token_type_name(t); JSON_THROW(std::invalid_argument(error_msg)); + } } - } - void unexpect(typename lexer::token_type t) const - { - if (t == last_token) + void unexpect(typename lexer::token_type t) const { - std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + - "'") : - lexer::token_type_name(last_token)); + if (t == last_token) + { + std::string error_msg = "parse error - unexpected "; + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : + lexer::token_type_name(last_token)); JSON_THROW(std::invalid_argument(error_msg)); + } } - } - private: - /// current level of recursion - int depth = 0; - /// callback function - const parser_callback_t callback = nullptr; - /// the type of the last read token - typename lexer::token_type last_token = lexer::token_type::uninitialized; - /// the lexer - lexer m_lexer; - }; + private: + /// current level of recursion + int depth = 0; + /// callback function + const parser_callback_t callback = nullptr; + /// the type of the last read token + typename lexer::token_type last_token = lexer::token_type::uninitialized; + /// the lexer + lexer m_lexer; + }; public: /*! @@ -10633,7 +11150,7 @@ basic_json_parser_66: /// allow basic_json to access private members friend class basic_json; - public: + public: /*! @brief create JSON pointer @@ -10657,573 +11174,573 @@ basic_json_parser_66: @since version 2.0.0 */ explicit json_pointer(const std::string& s = "") - : reference_tokens(split(s)) - {} + : reference_tokens(split(s)) + {} - /*! - @brief return a string representation of the JSON pointer + /*! + @brief return a string representation of the JSON pointer - @invariant For each JSON pointer `ptr`, it holds: - @code {.cpp} - ptr == json_pointer(ptr.to_string()); - @endcode + @invariant For each JSON pointer `ptr`, it holds: + @code {.cpp} + ptr == json_pointer(ptr.to_string()); + @endcode - @return a string representation of the JSON pointer + @return a string representation of the JSON pointer - @liveexample{The example shows the result of `to_string`., - json_pointer__to_string} + @liveexample{The example shows the result of `to_string`., + json_pointer__to_string} - @since version 2.0.0 - */ - std::string to_string() const noexcept - { - return std::accumulate(reference_tokens.begin(), - reference_tokens.end(), std::string{}, - [](const std::string & a, const std::string & b) + @since version 2.0.0 + */ + std::string to_string() const noexcept { - return a + "/" + escape(b); - }); - } + return std::accumulate(reference_tokens.begin(), + reference_tokens.end(), std::string{}, + [](const std::string & a, const std::string & b) + { + return a + "/" + escape(b); + }); + } - /// @copydoc to_string() - operator std::string() const - { - return to_string(); - } - - private: - /// remove and return last reference pointer - std::string pop_back() - { - if (is_root()) + /// @copydoc to_string() + operator std::string() const { + return to_string(); + } + + private: + /// remove and return last reference pointer + std::string pop_back() + { + if (is_root()) + { JSON_THROW(std::domain_error("JSON pointer has no parent")); + } + + auto last = reference_tokens.back(); + reference_tokens.pop_back(); + return last; } - auto last = reference_tokens.back(); - reference_tokens.pop_back(); - return last; - } - - /// return whether pointer points to the root document - bool is_root() const - { - return reference_tokens.empty(); - } - - json_pointer top() const - { - if (is_root()) + /// return whether pointer points to the root document + bool is_root() const { + return reference_tokens.empty(); + } + + json_pointer top() const + { + if (is_root()) + { JSON_THROW(std::domain_error("JSON pointer has no parent")); - } - - json_pointer result = *this; - result.reference_tokens = {reference_tokens[0]}; - return result; - } - - /*! - @brief create and return a reference to the pointed to value - - @complexity Linear in the number of reference tokens. - */ - reference get_and_create(reference j) const - { - pointer result = &j; - - // in case no reference tokens exist, return a reference to the - // JSON value j which will be overwritten by a primitive value - for (const auto& reference_token : reference_tokens) - { - switch (result->m_type) - { - case value_t::null: - { - if (reference_token == "0") - { - // start a new array if reference token is 0 - result = &result->operator[](0); - } - else - { - // start a new object otherwise - result = &result->operator[](reference_token); - } - break; - } - - case value_t::object: - { - // create an entry in the object - result = &result->operator[](reference_token); - break; - } - - case value_t::array: - { - // create an entry in the array - result = &result->operator[](static_cast<size_type>(std::stoi(reference_token))); - break; - } - - /* - The following code is only reached if there exists a - reference token _and_ the current value is primitive. In - this case, we have an error situation, because primitive - values may only occur as single value; that is, with an - empty list of reference tokens. - */ - default: - { - JSON_THROW(std::domain_error("invalid value to unflatten")); - } - } - } - - return *result; - } - - /*! - @brief return a reference to the pointed to value - - @note This version does not throw if a value is not present, but tries - to create nested values instead. For instance, calling this function - with pointer `"/this/that"` on a null value is equivalent to calling - `operator[]("this").operator[]("that")` on that value, effectively - changing the null value to an object. - - @param[in] ptr a JSON value - - @return reference to the JSON value pointed to by the JSON pointer - - @complexity Linear in the length of the JSON pointer. - - @throw std::out_of_range if the JSON pointer can not be resolved - @throw std::domain_error if an array index begins with '0' - @throw std::invalid_argument if an array index was not a number - */ - reference get_unchecked(pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - // convert null values to arrays or objects before continuing - if (ptr->m_type == value_t::null) - { - // check if reference token is a number - const bool nums = std::all_of(reference_token.begin(), - reference_token.end(), - [](const char x) - { - return std::isdigit(x); - }); - - // change value to array for numbers or "-" or to object - // otherwise - if (nums or reference_token == "-") - { - *ptr = value_t::array; - } - else - { - *ptr = value_t::object; - } } - switch (ptr->m_type) - { - case value_t::object: - { - // use unchecked object access - ptr = &ptr->operator[](reference_token); - break; - } - - case value_t::array: - { - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - if (reference_token == "-") - { - // explicityly treat "-" as index beyond the end - ptr = &ptr->operator[](ptr->m_value.array->size()); - } - else - { - // convert array index to number; unchecked access - ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); - } - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - reference get_checked(pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // note: at performs range check - ptr = &ptr->at(reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" always fails the range check - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // note: at performs range check - ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - /*! - @brief return a const reference to the pointed to value - - @param[in] ptr a JSON value - - @return const reference to the JSON value pointed to by the JSON - pointer - */ - const_reference get_unchecked(const_pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // use unchecked object access - ptr = &ptr->operator[](reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" cannot be used for const access - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // use unchecked array access - ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - const_reference get_checked(const_pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // note: at performs range check - ptr = &ptr->at(reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" always fails the range check - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // note: at performs range check - ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - /// split the string input to reference tokens - static std::vector<std::string> split(const std::string& reference_string) - { - std::vector<std::string> result; - - // special case: empty reference string -> no reference tokens - if (reference_string.empty()) - { + json_pointer result = *this; + result.reference_tokens = {reference_tokens[0]}; return result; } - // check if nonempty reference string begins with slash - if (reference_string[0] != '/') + /*! + @brief create and return a reference to the pointed to value + + @complexity Linear in the number of reference tokens. + */ + reference get_and_create(reference j) const { + pointer result = &j; + + // in case no reference tokens exist, return a reference to the + // JSON value j which will be overwritten by a primitive value + for (const auto& reference_token : reference_tokens) + { + switch (result->m_type) + { + case value_t::null: + { + if (reference_token == "0") + { + // start a new array if reference token is 0 + result = &result->operator[](0); + } + else + { + // start a new object otherwise + result = &result->operator[](reference_token); + } + break; + } + + case value_t::object: + { + // create an entry in the object + result = &result->operator[](reference_token); + break; + } + + case value_t::array: + { + // create an entry in the array + result = &result->operator[](static_cast<size_type>(std::stoi(reference_token))); + break; + } + + /* + The following code is only reached if there exists a + reference token _and_ the current value is primitive. In + this case, we have an error situation, because primitive + values may only occur as single value; that is, with an + empty list of reference tokens. + */ + default: + { + JSON_THROW(std::domain_error("invalid value to unflatten")); + } + } + } + + return *result; + } + + /*! + @brief return a reference to the pointed to value + + @note This version does not throw if a value is not present, but tries + to create nested values instead. For instance, calling this function + with pointer `"/this/that"` on a null value is equivalent to calling + `operator[]("this").operator[]("that")` on that value, effectively + changing the null value to an object. + + @param[in] ptr a JSON value + + @return reference to the JSON value pointed to by the JSON pointer + + @complexity Linear in the length of the JSON pointer. + + @throw std::out_of_range if the JSON pointer can not be resolved + @throw std::domain_error if an array index begins with '0' + @throw std::invalid_argument if an array index was not a number + */ + reference get_unchecked(pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + // convert null values to arrays or objects before continuing + if (ptr->m_type == value_t::null) + { + // check if reference token is a number + const bool nums = std::all_of(reference_token.begin(), + reference_token.end(), + [](const char x) + { + return std::isdigit(x); + }); + + // change value to array for numbers or "-" or to object + // otherwise + if (nums or reference_token == "-") + { + *ptr = value_t::array; + } + else + { + *ptr = value_t::object; + } + } + + switch (ptr->m_type) + { + case value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case value_t::array: + { + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + if (reference_token == "-") + { + // explicityly treat "-" as index beyond the end + ptr = &ptr->operator[](ptr->m_value.array->size()); + } + else + { + // convert array index to number; unchecked access + ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); + } + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + reference get_checked(pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" always fails the range check + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // note: at performs range check + ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + /*! + @brief return a const reference to the pointed to value + + @param[in] ptr a JSON value + + @return const reference to the JSON value pointed to by the JSON + pointer + */ + const_reference get_unchecked(const_pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" cannot be used for const access + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // use unchecked array access + ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + const_reference get_checked(const_pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" always fails the range check + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // note: at performs range check + ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + /// split the string input to reference tokens + static std::vector<std::string> split(const std::string& reference_string) + { + std::vector<std::string> result; + + // special case: empty reference string -> no reference tokens + if (reference_string.empty()) + { + return result; + } + + // check if nonempty reference string begins with slash + if (reference_string[0] != '/') + { JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'")); - } + } - // extract the reference tokens: - // - slash: position of the last read slash (or end of string) - // - start: position after the previous slash - for ( - // search for the first slash after the first character + // extract the reference tokens: + // - slash: position of the last read slash (or end of string) + // - start: position after the previous slash + for ( + // search for the first slash after the first character size_t slash = reference_string.find_first_of('/', 1), - // set the beginning of the first reference token - start = 1; - // we can stop if start == string::npos+1 = 0 - start != 0; - // set the beginning of the next reference token - // (will eventually be 0 if slash == std::string::npos) - start = slash + 1, - // find next slash + // set the beginning of the first reference token + start = 1; + // we can stop if start == string::npos+1 = 0 + start != 0; + // set the beginning of the next reference token + // (will eventually be 0 if slash == std::string::npos) + start = slash + 1, + // find next slash slash = reference_string.find_first_of('/', start)) - { - // use the text between the beginning of the reference token - // (start) and the last slash (slash). - auto reference_token = reference_string.substr(start, slash - start); + { + // use the text between the beginning of the reference token + // (start) and the last slash (slash). + auto reference_token = reference_string.substr(start, slash - start); - // check reference tokens are properly escaped + // check reference tokens are properly escaped for (size_t pos = reference_token.find_first_of('~'); - pos != std::string::npos; + pos != std::string::npos; pos = reference_token.find_first_of('~', pos + 1)) - { - assert(reference_token[pos] == '~'); - - // ~ must be followed by 0 or 1 - if (pos == reference_token.size() - 1 or - (reference_token[pos + 1] != '0' and - reference_token[pos + 1] != '1')) { + assert(reference_token[pos] == '~'); + + // ~ must be followed by 0 or 1 + if (pos == reference_token.size() - 1 or + (reference_token[pos + 1] != '0' and + reference_token[pos + 1] != '1')) + { JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'")); - } - } - - // finally, store the reference token - unescape(reference_token); - result.push_back(reference_token); - } - - return result; - } - - private: - /*! - @brief replace all occurrences of a substring by another string - - @param[in,out] s the string to manipulate; changed so that all - occurrences of @a f are replaced with @a t - @param[in] f the substring to replace with @a t - @param[in] t the string to replace @a f - - @pre The search string @a f must not be empty. - - @since version 2.0.0 - */ - static void replace_substring(std::string& s, - const std::string& f, - const std::string& t) - { - assert(not f.empty()); - - for ( - size_t pos = s.find(f); // find first occurrence of f - pos != std::string::npos; // make sure f was found - s.replace(pos, f.size(), t), // replace with t - pos = s.find(f, pos + t.size()) // find next occurrence of f - ); - } - - /// escape tilde and slash - static std::string escape(std::string s) - { - // escape "~"" to "~0" and "/" to "~1" - replace_substring(s, "~", "~0"); - replace_substring(s, "/", "~1"); - return s; - } - - /// unescape tilde and slash - static void unescape(std::string& s) - { - // first transform any occurrence of the sequence '~1' to '/' - replace_substring(s, "~1", "/"); - // then transform any occurrence of the sequence '~0' to '~' - replace_substring(s, "~0", "~"); - } - - /*! - @param[in] reference_string the reference string to the current value - @param[in] value the value to consider - @param[in,out] result the result object to insert values to - - @note Empty objects or arrays are flattened to `null`. - */ - static void flatten(const std::string& reference_string, - const basic_json& value, - basic_json& result) - { - switch (value.m_type) - { - case value_t::array: - { - if (value.m_value.array->empty()) - { - // flatten empty array as null - result[reference_string] = nullptr; - } - else - { - // iterate array and use index as reference string - for (size_t i = 0; i < value.m_value.array->size(); ++i) - { - flatten(reference_string + "/" + std::to_string(i), - value.m_value.array->operator[](i), result); } } - break; + + // finally, store the reference token + unescape(reference_token); + result.push_back(reference_token); } - case value_t::object: + return result; + } + + private: + /*! + @brief replace all occurrences of a substring by another string + + @param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t + @param[in] f the substring to replace with @a t + @param[in] t the string to replace @a f + + @pre The search string @a f must not be empty. + + @since version 2.0.0 + */ + static void replace_substring(std::string& s, + const std::string& f, + const std::string& t) + { + assert(not f.empty()); + + for ( + size_t pos = s.find(f); // find first occurrence of f + pos != std::string::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t + pos = s.find(f, pos + t.size()) // find next occurrence of f + ); + } + + /// escape tilde and slash + static std::string escape(std::string s) + { + // escape "~"" to "~0" and "/" to "~1" + replace_substring(s, "~", "~0"); + replace_substring(s, "/", "~1"); + return s; + } + + /// unescape tilde and slash + static void unescape(std::string& s) + { + // first transform any occurrence of the sequence '~1' to '/' + replace_substring(s, "~1", "/"); + // then transform any occurrence of the sequence '~0' to '~' + replace_substring(s, "~0", "~"); + } + + /*! + @param[in] reference_string the reference string to the current value + @param[in] value the value to consider + @param[in,out] result the result object to insert values to + + @note Empty objects or arrays are flattened to `null`. + */ + static void flatten(const std::string& reference_string, + const basic_json& value, + basic_json& result) + { + switch (value.m_type) { - if (value.m_value.object->empty()) + case value_t::array: { - // flatten empty object as null - result[reference_string] = nullptr; - } - else - { - // iterate object and use keys as reference string - for (const auto& element : *value.m_value.object) + if (value.m_value.array->empty()) { - flatten(reference_string + "/" + escape(element.first), - element.second, result); + // flatten empty array as null + result[reference_string] = nullptr; } + else + { + // iterate array and use index as reference string + for (size_t i = 0; i < value.m_value.array->size(); ++i) + { + flatten(reference_string + "/" + std::to_string(i), + value.m_value.array->operator[](i), result); + } + } + break; } - break; - } - default: - { - // add primitive value with its reference string - result[reference_string] = value; - break; + case value_t::object: + { + if (value.m_value.object->empty()) + { + // flatten empty object as null + result[reference_string] = nullptr; + } + else + { + // iterate object and use keys as reference string + for (const auto& element : *value.m_value.object) + { + flatten(reference_string + "/" + escape(element.first), + element.second, result); + } + } + break; + } + + default: + { + // add primitive value with its reference string + result[reference_string] = value; + break; + } } } - } - /*! - @param[in] value flattened JSON + /*! + @param[in] value flattened JSON - @return unflattened JSON - */ - static basic_json unflatten(const basic_json& value) - { - if (not value.is_object()) + @return unflattened JSON + */ + static basic_json unflatten(const basic_json& value) { + if (not value.is_object()) + { JSON_THROW(std::domain_error("only objects can be unflattened")); - } - - basic_json result; - - // iterate the JSON object values - for (const auto& element : *value.m_value.object) - { - if (not element.second.is_primitive()) - { - JSON_THROW(std::domain_error("values in object must be primitive")); } - // assign value to reference pointed to by JSON pointer; Note - // that if the JSON pointer is "" (i.e., points to the whole - // value), function get_and_create returns a reference to - // result itself. An assignment will then create a primitive - // value. - json_pointer(element.first).get_and_create(result) = element.second; + basic_json result; + + // iterate the JSON object values + for (const auto& element : *value.m_value.object) + { + if (not element.second.is_primitive()) + { + JSON_THROW(std::domain_error("values in object must be primitive")); + } + + // assign value to reference pointed to by JSON pointer; Note + // that if the JSON pointer is "" (i.e., points to the whole + // value), function get_and_create returns a reference to + // result itself. An assignment will then create a primitive + // value. + json_pointer(element.first).get_and_create(result) = element.second; + } + + return result; } - return result; - } + private: + friend bool operator==(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return lhs.reference_tokens == rhs.reference_tokens; + } - private: - friend bool operator==(json_pointer const &lhs, - json_pointer const &rhs) noexcept - { - return lhs.reference_tokens == rhs.reference_tokens; - } + friend bool operator!=(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return !(lhs == rhs); + } - friend bool operator!=(json_pointer const &lhs, - json_pointer const &rhs) noexcept - { - return !(lhs == rhs); - } - - /// the reference tokens - std::vector<std::string> reference_tokens {}; + /// the reference tokens + std::vector<std::string> reference_tokens {}; }; ////////////////////////// @@ -11899,25 +12416,26 @@ Returns an ordering that is similar to Python: */ inline bool operator<(const value_t lhs, const value_t rhs) noexcept { - static constexpr std::array<uint8_t, 8> order = {{ - 0, // null - 3, // object - 4, // array - 5, // string - 1, // boolean - 2, // integer - 2, // unsigned - 2, // float - }}; + static constexpr std::array<uint8_t, 8> order = {{ + 0, // null + 3, // object + 4, // array + 5, // string + 1, // boolean + 2, // integer + 2, // unsigned + 2, // float + } + }; - // discarded values are not comparable - if (lhs == value_t::discarded or rhs == value_t::discarded) - { - return false; - } + // discarded values are not comparable + if (lhs == value_t::discarded or rhs == value_t::discarded) + { + return false; + } - return order[static_cast<std::size_t>(lhs)] < - order[static_cast<std::size_t>(rhs)]; + return order[static_cast<std::size_t>(lhs)] < + order[static_cast<std::size_t>(rhs)]; } ///////////// @@ -11942,38 +12460,38 @@ using json = basic_json<>; // specialization of std::swap, and std::hash namespace std +{ +/*! +@brief exchanges the values of two JSON objects + +@since version 1.0.0 +*/ +template<> +inline void swap(nlohmann::json& j1, + nlohmann::json& j2) noexcept( + is_nothrow_move_constructible<nlohmann::json>::value and + is_nothrow_move_assignable<nlohmann::json>::value + ) +{ + j1.swap(j2); +} + +/// hash value for JSON objects +template<> +struct hash<nlohmann::json> { /*! - @brief exchanges the values of two JSON objects + @brief return a hash value for a JSON object @since version 1.0.0 */ - template<> - inline void swap(nlohmann::json& j1, - nlohmann::json& j2) noexcept( - is_nothrow_move_constructible<nlohmann::json>::value and - is_nothrow_move_assignable<nlohmann::json>::value - ) - { - j1.swap(j2); - } - - /// hash value for JSON objects - template<> - struct hash<nlohmann::json> - { - /*! - @brief return a hash value for a JSON object - - @since version 1.0.0 - */ - std::size_t operator()(const nlohmann::json& j) const + std::size_t operator()(const nlohmann::json& j) const { // a naive hashing via the string representation const auto& h = hash<nlohmann::json::string_t>(); return h(j.dump()); } - }; +}; } // namespace std /*! diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 8fbff2ad5..cbda7ee77 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -136,15 +136,15 @@ the default value for a given type */ enum class value_t : uint8_t { - null, ///< null value - object, ///< object (unordered set of name/value pairs) - array, ///< array (ordered collection of values) - string, ///< string value - boolean, ///< boolean value - number_integer, ///< number value (signed integer) - number_unsigned, ///< number value (unsigned integer) - number_float, ///< number value (floating-point) - discarded ///< discarded by the the parser callback function + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + discarded ///< discarded by the the parser callback function }; // alias templates to reduce boilerplate @@ -168,29 +168,29 @@ using is_unscoped_enum = namespace detail { -template <typename Json> std::string type_name(const Json &j) +template <typename Json> std::string type_name(const Json& j) { - switch (j.m_type) - { - case value_t::null: - return "null"; - case value_t::object: - return "object"; - case value_t::array: - return "array"; - case value_t::string: - return "string"; - case value_t::boolean: - return "boolean"; - case value_t::discarded: - return "discarded"; - default: - return "number"; - } + switch (j.m_type) + { + case value_t::null: + return "null"; + case value_t::object: + return "object"; + case value_t::array: + return "array"; + case value_t::string: + return "string"; + case value_t::boolean: + return "boolean"; + case value_t::discarded: + return "discarded"; + default: + return "number"; + } } // dispatch utility (taken from ranges-v3) -template <unsigned N> struct priority_tag : priority_tag<N - 1> {}; +template <unsigned N> struct priority_tag : priority_tag < N - 1 > {}; template <> struct priority_tag<0> {}; @@ -201,120 +201,120 @@ template <value_t> struct external_constructor; template <> struct external_constructor<value_t::boolean> { - template <typename Json> - static void construct(Json &j, typename Json::boolean_t b) noexcept - { - j.m_type = value_t::boolean; - j.m_value = b; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, typename Json::boolean_t b) noexcept + { + j.m_type = value_t::boolean; + j.m_value = b; + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::string> { - template <typename Json> - static void construct(Json &j, const typename Json::string_t& s) - { - j.m_type = value_t::string; - j.m_value = s; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, const typename Json::string_t& s) + { + j.m_type = value_t::string; + j.m_value = s; + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::number_float> { - template <typename Json> - static void construct(Json &j, typename Json::number_float_t val) noexcept - { - // replace infinity and NAN by null - if (not std::isfinite(val)) - j = Json{}; - else + template <typename Json> + static void construct(Json& j, typename Json::number_float_t val) noexcept { - j.m_type = value_t::number_float; - j.m_value = val; + // replace infinity and NAN by null + if (not std::isfinite(val)) + j = Json{}; + else + { + j.m_type = value_t::number_float; + j.m_value = val; + } + j.assert_invariant(); } - j.assert_invariant(); - } }; template <> struct external_constructor<value_t::number_unsigned> { - template <typename Json> - static void construct(Json &j, typename Json::number_unsigned_t val) noexcept - { - j.m_type = value_t::number_unsigned; - j.m_value = val; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, typename Json::number_unsigned_t val) noexcept + { + j.m_type = value_t::number_unsigned; + j.m_value = val; + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::number_integer> { - template <typename Json> - static void construct(Json &j, typename Json::number_integer_t val) noexcept - { - j.m_type = value_t::number_integer; - j.m_value = val; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, typename Json::number_integer_t val) noexcept + { + j.m_type = value_t::number_integer; + j.m_value = val; + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::array> { - template <typename Json> - static void construct(Json &j, const typename Json::array_t& arr) - { - j.m_type = value_t::array; - j.m_value = arr; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, const typename Json::array_t& arr) + { + j.m_type = value_t::array; + j.m_value = arr; + j.assert_invariant(); + } - template <typename Json, typename CompatibleArrayType, - enable_if_t<not std::is_same<CompatibleArrayType, - typename Json::array_t>::value, - int> = 0> - static void construct(Json &j, const CompatibleArrayType &arr) - { - using std::begin; - using std::end; - j.m_type = value_t::array; - j.m_value.array = - j.template create<typename Json::array_t>(begin(arr), end(arr)); - j.assert_invariant(); - } + template <typename Json, typename CompatibleArrayType, + enable_if_t<not std::is_same<CompatibleArrayType, + typename Json::array_t>::value, + int> = 0> + static void construct(Json& j, const CompatibleArrayType& arr) + { + using std::begin; + using std::end; + j.m_type = value_t::array; + j.m_value.array = + j.template create<typename Json::array_t>(begin(arr), end(arr)); + j.assert_invariant(); + } }; template <> struct external_constructor<value_t::object> { - template <typename Json> - static void construct(Json &j, const typename Json::object_t& obj) - { - j.m_type = value_t::object; - j.m_value = obj; - j.assert_invariant(); - } + template <typename Json> + static void construct(Json& j, const typename Json::object_t& obj) + { + j.m_type = value_t::object; + j.m_value = obj; + j.assert_invariant(); + } - template <typename Json, typename CompatibleObjectType, - enable_if_t<not std::is_same<CompatibleObjectType, - typename Json::object_t>::value, - int> = 0> - static void construct(Json &j, const CompatibleObjectType &obj) - { - using std::begin; - using std::end; + template <typename Json, typename CompatibleObjectType, + enable_if_t<not std::is_same<CompatibleObjectType, + typename Json::object_t>::value, + int> = 0> + static void construct(Json& j, const CompatibleObjectType& obj) + { + using std::begin; + using std::end; - j.m_type = value_t::object; - j.m_value.object = - j.template create<typename Json::object_t>(begin(obj), end(obj)); - j.assert_invariant(); - } + j.m_type = value_t::object; + j.m_value.object = + j.template create<typename Json::object_t>(begin(obj), end(obj)); + j.assert_invariant(); + } }; // Implementation of 2 C++17 constructs: conjunction, negation. @@ -380,11 +380,11 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> template<class BasicJson, class CompatibleObjectType> struct is_compatible_object_type { - static auto constexpr value = is_compatible_object_type_impl< - conjunction<negation<std::is_same<void, CompatibleObjectType>>, - has_mapped_type<CompatibleObjectType>, - has_key_type<CompatibleObjectType>>::value, - typename BasicJson::object_t, CompatibleObjectType>::value; + static auto constexpr value = is_compatible_object_type_impl < + conjunction<negation<std::is_same<void, CompatibleObjectType>>, + has_mapped_type<CompatibleObjectType>, + has_key_type<CompatibleObjectType>>::value, + typename BasicJson::object_t, CompatibleObjectType >::value; }; template <typename BasicJson, typename T> @@ -400,17 +400,17 @@ struct is_basic_json_nested_type template <class BasicJson, class CompatibleArrayType> struct is_compatible_array_type { - // TODO concept Container? - // this might not make VS happy - static auto constexpr value = + // TODO concept Container? + // this might not make VS happy + static auto constexpr value = conjunction<negation<std::is_same<void, CompatibleArrayType>>, - negation<is_compatible_object_type< - BasicJson, CompatibleArrayType>>, - negation<std::is_constructible<typename BasicJson::string_t, - CompatibleArrayType>>, - negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, - has_value_type<CompatibleArrayType>, - has_iterator<CompatibleArrayType>>::value; + negation<is_compatible_object_type< + BasicJson, CompatibleArrayType>>, + negation<std::is_constructible<typename BasicJson::string_t, + CompatibleArrayType>>, + negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, + has_value_type<CompatibleArrayType>, + has_iterator<CompatibleArrayType>>::value; }; template <bool, typename, typename> @@ -419,7 +419,7 @@ struct is_compatible_integer_type_impl : std::false_type {}; template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> { - // is there an assert somewhere on overflows? + // is there an assert somewhere on overflows? using RealLimits = std::numeric_limits<RealIntegerType>; using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>; @@ -433,11 +433,11 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn template <typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { - static constexpr auto - value = is_compatible_integer_type_impl < - std::is_integral<CompatibleNumberIntegerType>::value and - not std::is_same<bool, CompatibleNumberIntegerType>::value, - RealIntegerType, CompatibleNumberIntegerType > ::value; + static constexpr auto + value = is_compatible_integer_type_impl < + std::is_integral<CompatibleNumberIntegerType>::value and + not std::is_same<bool, CompatibleNumberIntegerType>::value, + RealIntegerType, CompatibleNumberIntegerType > ::value; }; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists @@ -461,261 +461,287 @@ struct has_from_json template <typename Json, typename T> struct has_non_default_from_json { -private: - template < - typename U, - typename = enable_if_t<std::is_same< - T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>> - static int detect(U &&); - static void detect(...); + private: + template < + typename U, + typename = enable_if_t<std::is_same< + T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value >> + static int detect(U&&); + static void detect(...); -public: - static constexpr bool value = std::is_integral<decltype(detect( - std::declval<typename Json::template json_serializer<T, void>>()))>::value; + public: + static constexpr bool value = std::is_integral<decltype(detect( + std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; // This trait checks if Json::json_serializer<T>::to_json exists template <typename Json, typename T> struct has_to_json { -private: - template <typename U, typename = decltype(uncvref_t<U>::to_json( - std::declval<Json &>(), std::declval<T>()))> - static int detect(U &&); - static void detect(...); + private: + template <typename U, typename = decltype(uncvref_t<U>::to_json( + std::declval<Json&>(), std::declval<T>()))> + static int detect(U&&); + static void detect(...); -public: - static constexpr bool value = std::is_integral<decltype(detect( - std::declval<typename Json::template json_serializer<T, void>>()))>::value; + public: + static constexpr bool value = std::is_integral<decltype(detect( + std::declval<typename Json::template json_serializer<T, void>>()))>::value; }; // overloads for basic_json template parameters template <typename Json, typename ArithmeticType, enable_if_t<std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, - typename Json::boolean_t>::value, + not std::is_same<ArithmeticType, + typename Json::boolean_t>::value, int> = 0> -void get_arithmetic_value(const Json &j, ArithmeticType &val) +void get_arithmetic_value(const Json& j, ArithmeticType& val) { - // unsigned must be checked first, since is_number_integer() == true for unsigned - if (j.is_number_unsigned()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); - else if (j.is_number_integer()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); - else if (j.is_number_float()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); - else - throw std::domain_error("type must be number, but is " + type_name(j)); + // unsigned must be checked first, since is_number_integer() == true for unsigned + if (j.is_number_unsigned()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); + } + else if (j.is_number_integer()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); + } + else if (j.is_number_float()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); + } + else + { + throw std::domain_error("type must be number, but is " + type_name(j)); + } } template <typename Json> -void to_json(Json &j, typename Json::boolean_t b) noexcept +void to_json(Json& j, typename Json::boolean_t b) noexcept { - external_constructor<value_t::boolean>::construct(j, b); + external_constructor<value_t::boolean>::construct(j, b); } template <typename Json, typename CompatibleString, enable_if_t<std::is_constructible<typename Json::string_t, - CompatibleString>::value, + CompatibleString>::value, int> = 0> -void to_json(Json &j, const CompatibleString &s) +void to_json(Json& j, const CompatibleString& s) { - external_constructor<value_t::string>::construct(j, s); + external_constructor<value_t::string>::construct(j, s); } template <typename Json, typename FloatType, enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> -void to_json(Json &j, FloatType val) noexcept +void to_json(Json& j, FloatType val) noexcept { - external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val)); + external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val)); } template < typename Json, typename CompatibleNumberUnsignedType, - enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t, - CompatibleNumberUnsignedType>::value, - int> = 0> -void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept + enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t, + CompatibleNumberUnsignedType>::value, + int> = 0 > +void to_json(Json& j, CompatibleNumberUnsignedType val) noexcept { - external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val)); + external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val)); } template < typename Json, typename CompatibleNumberIntegerType, - enable_if_t<is_compatible_integer_type<typename Json::number_integer_t, - CompatibleNumberIntegerType>::value, - int> = 0> -void to_json(Json &j, CompatibleNumberIntegerType val) noexcept + enable_if_t<is_compatible_integer_type<typename Json::number_integer_t, + CompatibleNumberIntegerType>::value, + int> = 0 > +void to_json(Json& j, CompatibleNumberIntegerType val) noexcept { - external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val)); + external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val)); } template <typename Json, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void to_json(Json &j, UnscopedEnumType e) noexcept +void to_json(Json& j, UnscopedEnumType e) noexcept { - external_constructor<value_t::number_integer>::construct(j, e); + external_constructor<value_t::number_integer>::construct(j, e); } template < typename Json, typename CompatibleArrayType, - enable_if_t< + enable_if_t < is_compatible_array_type<Json, CompatibleArrayType>::value or - std::is_same<typename Json::array_t, CompatibleArrayType>::value, - int> = 0> -void to_json(Json &j, const CompatibleArrayType &arr) + std::is_same<typename Json::array_t, CompatibleArrayType>::value, + int > = 0 > +void to_json(Json& j, const CompatibleArrayType& arr) { - external_constructor<value_t::array>::construct(j, arr); + external_constructor<value_t::array>::construct(j, arr); } template < typename Json, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, - int> = 0> -void to_json(Json &j, const CompatibleObjectType &arr) + int> = 0 > +void to_json(Json& j, const CompatibleObjectType& arr) { - external_constructor<value_t::object>::construct(j, arr); + external_constructor<value_t::object>::construct(j, arr); } template <typename Json> -void from_json(const Json & j, typename Json::boolean_t& b) +void from_json(const Json& j, typename Json::boolean_t& b) { - if (!j.is_boolean()) - throw std::domain_error("type must be boolean, but is " + type_name(j)); - b = *j.template get_ptr<const typename Json::boolean_t*>(); + if (!j.is_boolean()) + { + throw std::domain_error("type must be boolean, but is " + type_name(j)); + } + b = *j.template get_ptr<const typename Json::boolean_t*>(); } template <typename Json> -void from_json(const Json & j, typename Json::string_t& s) +void from_json(const Json& j, typename Json::string_t& s) { - if (!j.is_string()) - throw std::domain_error("type must be string, but is " + type_name(j)); - s = *j.template get_ptr<const typename Json::string_t*>(); + if (!j.is_string()) + { + throw std::domain_error("type must be string, but is " + type_name(j)); + } + s = *j.template get_ptr<const typename Json::string_t*>(); } template <typename Json> -void from_json(const Json & j, typename Json::number_float_t& val) +void from_json(const Json& j, typename Json::number_float_t& val) { - get_arithmetic_value(j, val); + get_arithmetic_value(j, val); } template <typename Json> -void from_json(const Json & j, typename Json::number_unsigned_t& val) +void from_json(const Json& j, typename Json::number_unsigned_t& val) { - get_arithmetic_value(j, val); + get_arithmetic_value(j, val); } template <typename Json> -void from_json(const Json & j, typename Json::number_integer_t& val) +void from_json(const Json& j, typename Json::number_integer_t& val) { - get_arithmetic_value(j, val); + get_arithmetic_value(j, val); } template <typename Json, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void from_json(const Json &j, UnscopedEnumType& e) +void from_json(const Json& j, UnscopedEnumType& e) { - typename std::underlying_type<UnscopedEnumType>::type val = e; - get_arithmetic_value(j, val); - e = static_cast<UnscopedEnumType>(val); + typename std::underlying_type<UnscopedEnumType>::type val = e; + get_arithmetic_value(j, val); + e = static_cast<UnscopedEnumType>(val); } template <typename Json> -void from_json(const Json &j, typename Json::array_t &arr) +void from_json(const Json& j, typename Json::array_t& arr) { - if (!j.is_array()) - throw std::domain_error("type must be array, but is " + type_name(j)); - arr = *j.template get_ptr<const typename Json::array_t*>(); + if (!j.is_array()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + arr = *j.template get_ptr<const typename Json::array_t*>(); } // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list template <typename Json, typename T, typename Allocator> -void from_json(const Json &j, std::forward_list<T, Allocator>& l) +void from_json(const Json& j, std::forward_list<T, Allocator>& l) { - // do not perform the check when user wants to retrieve jsons - // (except when it's null.. ?) - if (j.is_null()) - throw std::domain_error("type must be array, but is " + type_name(j)); - if (not std::is_same<T, Json>::value) - { - if (!j.is_array()) - throw std::domain_error("type must be array, but is " + type_name(j)); - } - for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) - l.push_front(it->template get<T>()); + // do not perform the check when user wants to retrieve jsons + // (except when it's null.. ?) + if (j.is_null()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + if (not std::is_same<T, Json>::value) + { + if (!j.is_array()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + } + for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) + { + l.push_front(it->template get<T>()); + } } template <typename Json, typename CompatibleArrayType> -void from_json_array_impl(const Json &j, CompatibleArrayType &arr, priority_tag<0>) +void from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag<0>) { - using std::begin; - using std::end; + using std::begin; + using std::end; - std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json &i) - { + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json & i) + { // get<Json>() returns *this, this won't call a from_json method when // value_type is Json return i.template get<typename CompatibleArrayType::value_type>(); - }); + }); } template <typename Json, typename CompatibleArrayType> -auto from_json_array_impl(const Json &j, CompatibleArrayType &arr, priority_tag<1>) - -> decltype( - arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), - void()) +auto from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag<1>) +-> decltype( + arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), + void()) { - using std::begin; - using std::end; + using std::begin; + using std::end; - arr.reserve(j.size()); - std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json &i) - { + arr.reserve(j.size()); + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json & i) + { // get<Json>() returns *this, this won't call a from_json method when // value_type is Json return i.template get<typename CompatibleArrayType::value_type>(); - }); + }); } template < typename Json, typename CompatibleArrayType, enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and - not std::is_same<typename Json::array_t, - CompatibleArrayType>::value, - int> = 0> -void from_json(const Json &j, CompatibleArrayType &arr) + not std::is_same<typename Json::array_t, + CompatibleArrayType>::value, + int> = 0 > +void from_json(const Json& j, CompatibleArrayType& arr) { - if (j.is_null()) - throw std::domain_error("type must be array, but is " + type_name(j)); - // when T == Json, do not check if value_t is correct - if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) - { - if (!j.is_array()) - throw std::domain_error("type must be array, but is " + type_name(j)); - } - from_json_array_impl(j, arr, priority_tag<1>{}); + if (j.is_null()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + // when T == Json, do not check if value_t is correct + if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) + { + if (!j.is_array()) + { + throw std::domain_error("type must be array, but is " + type_name(j)); + } + } + from_json_array_impl(j, arr, priority_tag<1> {}); } template < typename Json, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, - int> = 0> -void from_json(const Json &j, CompatibleObjectType &obj) + int> = 0 > +void from_json(const Json& j, CompatibleObjectType& obj) { - if (!j.is_object()) - throw std::domain_error("type must be object, but is " + type_name(j)); + if (!j.is_object()) + { + throw std::domain_error("type must be object, but is " + type_name(j)); + } - auto inner_object = j.template get_ptr<const typename Json::object_t*>(); - using std::begin; - using std::end; - // we could avoid the assignment, but this might require a for loop, which - // might be less efficient than the container constructor for some containers (would it?) - obj = CompatibleObjectType(begin(*inner_object), end(*inner_object)); + auto inner_object = j.template get_ptr<const typename Json::object_t*>(); + using std::begin; + using std::end; + // we could avoid the assignment, but this might require a for loop, which + // might be less efficient than the container constructor for some containers (would it?) + obj = CompatibleObjectType(begin(*inner_object), end(*inner_object)); } // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) @@ -724,25 +750,35 @@ void from_json(const Json &j, CompatibleObjectType &obj) // in case of a custom BooleanType which is not an arithmetic type? template < typename Json, typename ArithmeticType, - enable_if_t< + enable_if_t < std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and - not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and - not std::is_same<ArithmeticType, typename Json::number_float_t>::value and - not std::is_same<ArithmeticType, typename Json::boolean_t>::value, - int> = 0> -void from_json(const Json &j, ArithmeticType &val) + not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and + not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and + not std::is_same<ArithmeticType, typename Json::number_float_t>::value and + not std::is_same<ArithmeticType, typename Json::boolean_t>::value, + int > = 0 > +void from_json(const Json& j, ArithmeticType& val) { - if (j.is_number_unsigned()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); - else if (j.is_number_integer()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); - else if (j.is_number_float()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); - else if (j.is_boolean()) - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>()); - else - throw std::domain_error("type must be number, but is " + type_name(j)); + if (j.is_number_unsigned()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); + } + else if (j.is_number_integer()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); + } + else if (j.is_number_float()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); + } + else if (j.is_boolean()) + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>()); + } + else + { + throw std::domain_error("type must be number, but is " + type_name(j)); + } } struct to_json_fn @@ -762,39 +798,39 @@ struct to_json_fn static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called"); } -public: - template <typename Json, typename T> - void operator()(Json &j, T &&val) const - noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1>{}))) - { - return call(j, std::forward<T>(val), priority_tag<1>{}); - } + public: + template <typename Json, typename T> + void operator()(Json& j, T&& val) const + noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {}))) + { + return call(j, std::forward<T>(val), priority_tag<1> {}); + } }; struct from_json_fn { -private: - template <typename Json, typename T> - auto call(const Json &j, T &val, priority_tag<1>) const - noexcept(noexcept(from_json(j, val))) - -> decltype(from_json(j, val), void()) - { - return from_json(j, val); - } + private: + template <typename Json, typename T> + auto call(const Json& j, T& val, priority_tag<1>) const + noexcept(noexcept(from_json(j, val))) + -> decltype(from_json(j, val), void()) + { + return from_json(j, val); + } - template <typename Json, typename T> - void call(const Json &, T&, priority_tag<0>) const noexcept - { - static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); - } + template <typename Json, typename T> + void call(const Json&, T&, priority_tag<0>) const noexcept + { + static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); + } -public: - template <typename Json, typename T> - void operator()(const Json &j, T &val) const - noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{}))) - { - return call(j, val, priority_tag<1>{}); - } + public: + template <typename Json, typename T> + void operator()(const Json& j, T& val) const + noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {}))) + { + return call(j, val, priority_tag<1> {}); + } }; // taken from ranges-v3 @@ -830,8 +866,8 @@ struct DecimalSeparator : std::numpunct<char> inline namespace { -constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value; -constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value; +constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value; +constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument @@ -846,10 +882,10 @@ struct adl_serializer } template <typename Json, typename T> - static void to_json(Json &j, T &&val) noexcept( + static void to_json(Json& j, T&& val) noexcept( noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) { - ::nlohmann::to_json(j, std::forward<T>(val)); + ::nlohmann::to_json(j, std::forward<T>(val)); } }; @@ -947,7 +983,7 @@ class basic_json { private: template <::nlohmann::value_t> friend struct detail::external_constructor; - template <typename Json> friend std::string detail::type_name(const Json &); + template <typename Json> friend std::string detail::type_name(const Json&); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -1849,15 +1885,15 @@ class basic_json */ template <typename T, typename U = uncvref_t<T>, enable_if_t<not std::is_base_of<std::istream, U>::value and - not std::is_same<U, basic_json_t>::value and - not detail::is_basic_json_nested_type< - basic_json_t, U>::value and - detail::has_to_json<basic_json, U>::value, + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type< + basic_json_t, U>::value and + detail::has_to_json<basic_json, U>::value, int> = 0> - basic_json(T &&val) noexcept(noexcept(JSONSerializer<U>::to_json( - std::declval<basic_json_t &>(), std::forward<T>(val)))) + basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json( + std::declval<basic_json_t&>(), std::forward<T>(val)))) { - JSONSerializer<U>::to_json(*this, std::forward<T>(val)); + JSONSerializer<U>::to_json(*this, std::forward<T>(val)); } /*! @@ -2013,7 +2049,7 @@ class basic_json @since version 1.0.0 */ static basic_json array(std::initializer_list<basic_json> init = - std::initializer_list<basic_json>()) + std::initializer_list<basic_json>()) { return basic_json(init, false, value_t::array); } @@ -2053,7 +2089,7 @@ class basic_json @since version 1.0.0 */ static basic_json object(std::initializer_list<basic_json> init = - std::initializer_list<basic_json>()) + std::initializer_list<basic_json>()) { return basic_json(init, false, value_t::object); } @@ -2394,7 +2430,7 @@ class basic_json std::is_nothrow_move_assignable<value_t>::value and std::is_nothrow_move_constructible<json_value>::value and std::is_nothrow_move_assignable<json_value>::value - ) + ) { // check that passed value is valid other.assert_invariant(); @@ -3020,7 +3056,7 @@ class basic_json enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> basic_json get() const { - return *this; + return *this; } /*! @@ -3032,7 +3068,7 @@ class basic_json - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&) - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&); - @return a value of type U + @return a value of type U @throw what json_serializer<U> from_json method throws @@ -3040,27 +3076,27 @@ class basic_json */ template < typename T, - typename U = uncvref_t<T>, - enable_if_t< + typename U = uncvref_t<T>, + enable_if_t < not std::is_same<basic_json_t, U>::value and - detail::has_from_json<basic_json_t, U>::value and - not detail::has_non_default_from_json<basic_json_t, - U>::value, - int> = 0> + detail::has_from_json<basic_json_t, U>::value and + not detail::has_non_default_from_json<basic_json_t, + U>::value, + int > = 0 > // do we really want the uncvref ? if a user call get<int &>, shouldn't we // static assert ? // i know there is a special behaviour for boolean_t* and such auto get() const noexcept(noexcept(JSONSerializer<U>::from_json( - std::declval<const basic_json_t &>(), std::declval<U &>()))) - -> U + std::declval<const basic_json_t&>(), std::declval<U&>()))) + -> U { - static_assert(std::is_default_constructible<U>::value and - std::is_copy_constructible<U>::value, - "Types must be DefaultConstructible and " - "CopyConstructible when used with get"); - U ret; - JSONSerializer<U>::from_json(*this, ret); - return ret; + static_assert(std::is_default_constructible<U>::value and + std::is_copy_constructible<U>::value, + "Types must be DefaultConstructible and " + "CopyConstructible when used with get"); + U ret; + JSONSerializer<U>::from_json(*this, ret); + return ret; } /*! @@ -3072,7 +3108,7 @@ class basic_json - U is not @ref basic_json - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&); - @return a value of type U + @return a value of type U @throw what json_serializer<U> from_json method throws @@ -3081,12 +3117,12 @@ class basic_json template < typename T, enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_non_default_from_json<basic_json_t, - uncvref_t<T>>::value, - int> = 0> - uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t &>()))) + detail::has_non_default_from_json<basic_json_t, + uncvref_t<T>>::value, + int> = 0 > + uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { - return JSONSerializer<T>::from_json(*this); + return JSONSerializer<T>::from_json(*this); } /*! @@ -3168,8 +3204,8 @@ class basic_json { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const<typename - std::remove_pointer<typename - std::remove_const<PointerType>::type>::type>::type; + std::remove_pointer<typename + std::remove_const<PointerType>::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same<object_t, pointee_t>::value @@ -3196,8 +3232,8 @@ class basic_json { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const<typename - std::remove_pointer<typename - std::remove_const<PointerType>::type>::type>::type; + std::remove_pointer<typename + std::remove_const<PointerType>::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same<object_t, pointee_t>::value @@ -4250,14 +4286,14 @@ class basic_json case value_t::object: { result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, - last.m_it.object_iterator); + last.m_it.object_iterator); break; } case value_t::array: { result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, - last.m_it.array_iterator); + last.m_it.array_iterator); break; } @@ -5474,9 +5510,9 @@ class basic_json // insert to array and return iterator iterator result(this); result.m_it.array_iterator = m_value.array->insert( - pos.m_it.array_iterator, - first.m_it.array_iterator, - last.m_it.array_iterator); + pos.m_it.array_iterator, + first.m_it.array_iterator, + last.m_it.array_iterator); return result; } @@ -5546,7 +5582,7 @@ class basic_json std::is_nothrow_move_assignable<value_t>::value and std::is_nothrow_move_constructible<json_value>::value and std::is_nothrow_move_assignable<json_value>::value - ) + ) { std::swap(m_type, other.m_type); std::swap(m_value, other.m_value); @@ -7871,7 +7907,10 @@ class basic_json @since version 1.0.0 */ - std::string type_name() const { return detail::type_name(*this); } + std::string type_name() const + { + return detail::type_name(*this); + } private: /*! @@ -8086,13 +8125,13 @@ class basic_json o << (pretty_print ? ",\n" : ","); } o << string_t(new_indent, ' ') << "\"" - << escape_string(i->first) << "\":" - << (pretty_print ? " " : ""); - i->second.dump(o, pretty_print, indent_step, new_indent); + << escape_string(i->first) << "\":" + << (pretty_print ? " " : ""); + i->second.dump(o, pretty_print, indent_step, new_indent); } - // decrease indentation - if (pretty_print) + // decrease indentation + if (pretty_print) { new_indent -= indent_step; o << "\n"; @@ -8137,16 +8176,16 @@ class basic_json } o << string_t(new_indent, ' ') << "]"; - return; + return; } - case value_t::string: + case value_t::string: { o << string_t("\"") << escape_string(*m_value.string) << "\""; - return; + return; } - case value_t::boolean: + case value_t::boolean: { o << (m_value.boolean ? "true" : "false"); return; @@ -8220,126 +8259,126 @@ class basic_json */ class primitive_iterator_t { - public: + public: difference_type get_value() const noexcept - { - return m_it; - } - /// set iterator to a defined beginning - void set_begin() noexcept - { - m_it = begin_value; - } + { + return m_it; + } + /// set iterator to a defined beginning + void set_begin() noexcept + { + m_it = begin_value; + } - /// set iterator to a defined past the end - void set_end() noexcept - { - m_it = end_value; - } + /// set iterator to a defined past the end + void set_end() noexcept + { + m_it = end_value; + } - /// return whether the iterator can be dereferenced - constexpr bool is_begin() const noexcept - { - return (m_it == begin_value); - } + /// return whether the iterator can be dereferenced + constexpr bool is_begin() const noexcept + { + return (m_it == begin_value); + } - /// return whether the iterator is at end - constexpr bool is_end() const noexcept - { - return (m_it == end_value); - } + /// return whether the iterator is at end + constexpr bool is_end() const noexcept + { + return (m_it == end_value); + } - friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it == rhs.m_it; - } + friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it == rhs.m_it; + } - friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return !(lhs == rhs); - } + friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return !(lhs == rhs); + } - friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it < rhs.m_it; - } + friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it < rhs.m_it; + } - friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it <= rhs.m_it; - } + friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it <= rhs.m_it; + } - friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it > rhs.m_it; - } + friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it > rhs.m_it; + } - friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it >= rhs.m_it; - } + friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it >= rhs.m_it; + } - primitive_iterator_t operator+(difference_type i) - { - auto result = *this; - result += i; - return result; - } + primitive_iterator_t operator+(difference_type i) + { + auto result = *this; + result += i; + return result; + } - friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it - rhs.m_it; - } + friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it - rhs.m_it; + } - friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it) - { - return os << it.m_it; - } + friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it) + { + return os << it.m_it; + } - primitive_iterator_t& operator++() - { - ++m_it; - return *this; - } + primitive_iterator_t& operator++() + { + ++m_it; + return *this; + } - primitive_iterator_t& operator++(int) - { - m_it++; - return *this; - } + primitive_iterator_t& operator++(int) + { + m_it++; + return *this; + } - primitive_iterator_t& operator--() - { - --m_it; - return *this; - } + primitive_iterator_t& operator--() + { + --m_it; + return *this; + } - primitive_iterator_t& operator--(int) - { - m_it--; - return *this; - } + primitive_iterator_t& operator--(int) + { + m_it--; + return *this; + } - primitive_iterator_t& operator+=(difference_type n) - { - m_it += n; - return *this; - } + primitive_iterator_t& operator+=(difference_type n) + { + m_it += n; + return *this; + } - primitive_iterator_t& operator-=(difference_type n) - { - m_it -= n; - return *this; - } + primitive_iterator_t& operator-=(difference_type n) + { + m_it -= n; + return *this; + } - private: - static constexpr difference_type begin_value = 0; - static constexpr difference_type end_value = begin_value + 1; + private: + static constexpr difference_type begin_value = 0; + static constexpr difference_type end_value = begin_value + 1; - /// iterator as signed integer type - difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min(); - }; + /// iterator as signed integer type + difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min(); + }; /*! @brief an iterator value @@ -8359,104 +8398,104 @@ class basic_json /// create an uninitialized internal_iterator internal_iterator() noexcept - : object_iterator(), array_iterator(), primitive_iterator() - {} + : object_iterator(), array_iterator(), primitive_iterator() + {} }; /// proxy class for the iterator_wrapper functions template<typename IteratorType> class iteration_proxy { - private: + private: /// helper class for iteration class iteration_proxy_internal { - private: + private: /// the iterator IteratorType anchor; /// an index for arrays (used to create key names) size_t array_index = 0; - public: + public: explicit iteration_proxy_internal(IteratorType it) noexcept - : anchor(it) - {} + : anchor(it) + {} - /// dereference operator (needed for range-based for) - iteration_proxy_internal& operator*() - { - return *this; - } - - /// increment operator (needed for range-based for) - iteration_proxy_internal& operator++() - { - ++anchor; - ++array_index; - - return *this; - } - - /// inequality operator (needed for range-based for) - bool operator!= (const iteration_proxy_internal& o) const - { - return anchor != o.anchor; - } - - /// return key of the iterator - typename basic_json::string_t key() const - { - assert(anchor.m_object != nullptr); - - switch (anchor.m_object->type()) - { - // use integer array index as key - case value_t::array: + /// dereference operator (needed for range-based for) + iteration_proxy_internal& operator*() { - return std::to_string(array_index); + return *this; } - // use key from the object - case value_t::object: + /// increment operator (needed for range-based for) + iteration_proxy_internal& operator++() { - return anchor.key(); + ++anchor; + ++array_index; + + return *this; } - // use an empty key for all primitive types - default: + /// inequality operator (needed for range-based for) + bool operator!= (const iteration_proxy_internal& o) const { - return ""; + return anchor != o.anchor; } - } - } - /// return value of the iterator - typename IteratorType::reference value() const - { - return anchor.value(); - } + /// return key of the iterator + typename basic_json::string_t key() const + { + assert(anchor.m_object != nullptr); + + switch (anchor.m_object->type()) + { + // use integer array index as key + case value_t::array: + { + return std::to_string(array_index); + } + + // use key from the object + case value_t::object: + { + return anchor.key(); + } + + // use an empty key for all primitive types + default: + { + return ""; + } + } + } + + /// return value of the iterator + typename IteratorType::reference value() const + { + return anchor.value(); + } }; - /// the container to iterate - typename IteratorType::reference container; + /// the container to iterate + typename IteratorType::reference container; - public: - /// construct iteration proxy from a container - explicit iteration_proxy(typename IteratorType::reference cont) - : container(cont) - {} + public: + /// construct iteration proxy from a container + explicit iteration_proxy(typename IteratorType::reference cont) + : container(cont) + {} - /// return iterator begin (needed for range-based for) - iteration_proxy_internal begin() noexcept - { - return iteration_proxy_internal(container.begin()); - } + /// return iterator begin (needed for range-based for) + iteration_proxy_internal begin() noexcept + { + return iteration_proxy_internal(container.begin()); + } - /// return iterator end (needed for range-based for) - iteration_proxy_internal end() noexcept - { - return iteration_proxy_internal(container.end()); - } + /// return iterator end (needed for range-based for) + iteration_proxy_internal end() noexcept + { + return iteration_proxy_internal(container.end()); + } }; public: @@ -8480,7 +8519,7 @@ class basic_json @since version 1.0.0, simplified in version 2.0.9 */ template<typename U> - class iter_impl : public std::iterator<std::random_access_iterator_tag, U> + class iter_impl : public std::iterator<std::random_access_iterator_tag, U> { /// allow basic_json to access private members friend class basic_json; @@ -8490,19 +8529,19 @@ class basic_json or std::is_same<U, const basic_json>::value, "iter_impl only accepts (const) basic_json"); - public: + public: /// the type of the values when the iterator is dereferenced using value_type = typename basic_json::value_type; /// a type to represent differences between iterators using difference_type = typename basic_json::difference_type; /// defines a pointer to the type iterated over (value_type) using pointer = typename std::conditional<std::is_const<U>::value, - typename basic_json::const_pointer, - typename basic_json::pointer>::type; + typename basic_json::const_pointer, + typename basic_json::pointer>::type; /// defines a reference to the type iterated over (value_type) using reference = typename std::conditional<std::is_const<U>::value, - typename basic_json::const_reference, - typename basic_json::reference>::type; + typename basic_json::const_reference, + typename basic_json::reference>::type; /// the category of the iterator using iterator_category = std::bidirectional_iterator_tag; @@ -8516,566 +8555,566 @@ class basic_json @post The iterator is initialized; i.e. `m_object != nullptr`. */ explicit iter_impl(pointer object) noexcept - : m_object(object) - { - assert(m_object != nullptr); - - switch (m_object->m_type) + : m_object(object) { - case basic_json::value_t::object: + assert(m_object != nullptr); + + switch (m_object->m_type) { - m_it.object_iterator = typename object_t::iterator(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = typename array_t::iterator(); - break; - } - - default: - { - m_it.primitive_iterator = primitive_iterator_t(); - break; - } - } - } - - /* - Use operator `const_iterator` instead of `const_iterator(const iterator& - other) noexcept` to avoid two class definitions for @ref iterator and - @ref const_iterator. - - This function is only called if this class is an @ref iterator. If this - class is a @ref const_iterator this function is not called. - */ - operator const_iterator() const - { - const_iterator ret; - - if (m_object) - { - ret.m_object = m_object; - ret.m_it = m_it; - } - - return ret; - } - - /*! - @brief copy constructor - @param[in] other iterator to copy from - @note It is not checked whether @a other is initialized. - */ - iter_impl(const iter_impl& other) noexcept - : m_object(other.m_object), m_it(other.m_it) - {} - - /*! - @brief copy assignment - @param[in,out] other iterator to copy from - @note It is not checked whether @a other is initialized. - */ - iter_impl& operator=(iter_impl other) noexcept( - std::is_nothrow_move_constructible<pointer>::value and - std::is_nothrow_move_assignable<pointer>::value and - std::is_nothrow_move_constructible<internal_iterator>::value and - std::is_nothrow_move_assignable<internal_iterator>::value - ) - { - std::swap(m_object, other.m_object); - std::swap(m_it, other.m_it); - return *this; - } - - private: - /*! - @brief set the iterator to the first value - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - void set_begin() noexcept - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - m_it.object_iterator = m_object->m_value.object->begin(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = m_object->m_value.array->begin(); - break; - } - - case basic_json::value_t::null: - { - // set to end so begin()==end() is true: null is empty - m_it.primitive_iterator.set_end(); - break; - } - - default: - { - m_it.primitive_iterator.set_begin(); - break; - } - } - } - - /*! - @brief set the iterator past the last value - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - void set_end() noexcept - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - m_it.object_iterator = m_object->m_value.object->end(); - break; - } - - case basic_json::value_t::array: - { - m_it.array_iterator = m_object->m_value.array->end(); - break; - } - - default: - { - m_it.primitive_iterator.set_end(); - break; - } - } - } - - public: - /*! - @brief return a reference to the value pointed to by the iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference operator*() const - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - assert(m_it.object_iterator != m_object->m_value.object->end()); - return m_it.object_iterator->second; - } - - case basic_json::value_t::array: - { - assert(m_it.array_iterator != m_object->m_value.array->end()); - return *m_it.array_iterator; - } - - case basic_json::value_t::null: - { - JSON_THROW(std::out_of_range("cannot get value")); - } - - default: - { - if (m_it.primitive_iterator.is_begin()) + case basic_json::value_t::object: { - return *m_object; + m_it.object_iterator = typename object_t::iterator(); + break; } - JSON_THROW(std::out_of_range("cannot get value")); - } - } - } - - /*! - @brief dereference the iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - pointer operator->() const - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - assert(m_it.object_iterator != m_object->m_value.object->end()); - return &(m_it.object_iterator->second); - } - - case basic_json::value_t::array: - { - assert(m_it.array_iterator != m_object->m_value.array->end()); - return &*m_it.array_iterator; - } - - default: - { - if (m_it.primitive_iterator.is_begin()) + case basic_json::value_t::array: { - return m_object; + m_it.array_iterator = typename array_t::iterator(); + break; } + default: + { + m_it.primitive_iterator = primitive_iterator_t(); + break; + } + } + } + + /* + Use operator `const_iterator` instead of `const_iterator(const iterator& + other) noexcept` to avoid two class definitions for @ref iterator and + @ref const_iterator. + + This function is only called if this class is an @ref iterator. If this + class is a @ref const_iterator this function is not called. + */ + operator const_iterator() const + { + const_iterator ret; + + if (m_object) + { + ret.m_object = m_object; + ret.m_it = m_it; + } + + return ret; + } + + /*! + @brief copy constructor + @param[in] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl(const iter_impl& other) noexcept + : m_object(other.m_object), m_it(other.m_it) + {} + + /*! + @brief copy assignment + @param[in,out] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl& operator=(iter_impl other) noexcept( + std::is_nothrow_move_constructible<pointer>::value and + std::is_nothrow_move_assignable<pointer>::value and + std::is_nothrow_move_constructible<internal_iterator>::value and + std::is_nothrow_move_assignable<internal_iterator>::value + ) + { + std::swap(m_object, other.m_object); + std::swap(m_it, other.m_it); + return *this; + } + + private: + /*! + @brief set the iterator to the first value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_begin() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + m_it.object_iterator = m_object->m_value.object->begin(); + break; + } + + case basic_json::value_t::array: + { + m_it.array_iterator = m_object->m_value.array->begin(); + break; + } + + case basic_json::value_t::null: + { + // set to end so begin()==end() is true: null is empty + m_it.primitive_iterator.set_end(); + break; + } + + default: + { + m_it.primitive_iterator.set_begin(); + break; + } + } + } + + /*! + @brief set the iterator past the last value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_end() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + m_it.object_iterator = m_object->m_value.object->end(); + break; + } + + case basic_json::value_t::array: + { + m_it.array_iterator = m_object->m_value.array->end(); + break; + } + + default: + { + m_it.primitive_iterator.set_end(); + break; + } + } + } + + public: + /*! + @brief return a reference to the value pointed to by the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator*() const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + assert(m_it.object_iterator != m_object->m_value.object->end()); + return m_it.object_iterator->second; + } + + case basic_json::value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return *m_it.array_iterator; + } + + case basic_json::value_t::null: + { JSON_THROW(std::out_of_range("cannot get value")); - } - } - } + } - /*! - @brief post-increment (it++) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator++(int) - { - auto result = *this; - ++(*this); - return result; - } + default: + { + if (m_it.primitive_iterator.is_begin()) + { + return *m_object; + } - /*! - @brief pre-increment (++it) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator++() - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - std::advance(m_it.object_iterator, 1); - break; - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, 1); - break; - } - - default: - { - ++m_it.primitive_iterator; - break; + JSON_THROW(std::out_of_range("cannot get value")); + } } } - return *this; - } - - /*! - @brief post-decrement (it--) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator--(int) - { - auto result = *this; - --(*this); - return result; - } - - /*! - @brief pre-decrement (--it) - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator--() - { - assert(m_object != nullptr); - - switch (m_object->m_type) + /*! + @brief dereference the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + pointer operator->() const { - case basic_json::value_t::object: - { - std::advance(m_it.object_iterator, -1); - break; - } + assert(m_object != nullptr); - case basic_json::value_t::array: + switch (m_object->m_type) { - std::advance(m_it.array_iterator, -1); - break; - } + case basic_json::value_t::object: + { + assert(m_it.object_iterator != m_object->m_value.object->end()); + return &(m_it.object_iterator->second); + } - default: - { - --m_it.primitive_iterator; - break; + case basic_json::value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return &*m_it.array_iterator; + } + + default: + { + if (m_it.primitive_iterator.is_begin()) + { + return m_object; + } + + JSON_THROW(std::out_of_range("cannot get value")); + } } } - return *this; - } - - /*! - @brief comparison: equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator==(const iter_impl& other) const - { - // if objects are not the same, the comparison is undefined - if (m_object != other.m_object) + /*! + @brief post-increment (it++) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator++(int) { + auto result = *this; + ++(*this); + return result; + } + + /*! + @brief pre-increment (++it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator++() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + std::advance(m_it.object_iterator, 1); + break; + } + + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, 1); + break; + } + + default: + { + ++m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief post-decrement (it--) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator--(int) + { + auto result = *this; + --(*this); + return result; + } + + /*! + @brief pre-decrement (--it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator--() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + std::advance(m_it.object_iterator, -1); + break; + } + + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, -1); + break; + } + + default: + { + --m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief comparison: equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator==(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (m_object != other.m_object) + { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); - } - - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - return (m_it.object_iterator == other.m_it.object_iterator); } - case basic_json::value_t::array: - { - return (m_it.array_iterator == other.m_it.array_iterator); - } + assert(m_object != nullptr); - default: + switch (m_object->m_type) { - return (m_it.primitive_iterator == other.m_it.primitive_iterator); + case basic_json::value_t::object: + { + return (m_it.object_iterator == other.m_it.object_iterator); + } + + case basic_json::value_t::array: + { + return (m_it.array_iterator == other.m_it.array_iterator); + } + + default: + { + return (m_it.primitive_iterator == other.m_it.primitive_iterator); + } } } - } - /*! - @brief comparison: not equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator!=(const iter_impl& other) const - { - return not operator==(other); - } - - /*! - @brief comparison: smaller - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator<(const iter_impl& other) const - { - // if objects are not the same, the comparison is undefined - if (m_object != other.m_object) + /*! + @brief comparison: not equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator!=(const iter_impl& other) const { + return not operator==(other); + } + + /*! + @brief comparison: smaller + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (m_object != other.m_object) + { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); - } + } - assert(m_object != nullptr); + assert(m_object != nullptr); - switch (m_object->m_type) - { - case basic_json::value_t::object: + switch (m_object->m_type) { + case basic_json::value_t::object: + { JSON_THROW(std::domain_error("cannot compare order of object iterators")); - } - - case basic_json::value_t::array: - { - return (m_it.array_iterator < other.m_it.array_iterator); - } - - default: - { - return (m_it.primitive_iterator < other.m_it.primitive_iterator); - } - } - } - - /*! - @brief comparison: less than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator<=(const iter_impl& other) const - { - return not other.operator < (*this); - } - - /*! - @brief comparison: greater than - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator>(const iter_impl& other) const - { - return not operator<=(other); - } - - /*! - @brief comparison: greater than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - bool operator>=(const iter_impl& other) const - { - return not operator<(other); - } - - /*! - @brief add to iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator+=(difference_type i) - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - JSON_THROW(std::domain_error("cannot use offsets with object iterators")); - } - - case basic_json::value_t::array: - { - std::advance(m_it.array_iterator, i); - break; - } - - default: - { - m_it.primitive_iterator += i; - break; - } - } - - return *this; - } - - /*! - @brief subtract from iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl& operator-=(difference_type i) - { - return operator+=(-i); - } - - /*! - @brief add to iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator+(difference_type i) - { - auto result = *this; - result += i; - return result; - } - - /*! - @brief subtract from iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - iter_impl operator-(difference_type i) - { - auto result = *this; - result -= i; - return result; - } - - /*! - @brief return difference - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - difference_type operator-(const iter_impl& other) const - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - JSON_THROW(std::domain_error("cannot use offsets with object iterators")); - } - - case basic_json::value_t::array: - { - return m_it.array_iterator - other.m_it.array_iterator; - } - - default: - { - return m_it.primitive_iterator - other.m_it.primitive_iterator; - } - } - } - - /*! - @brief access to successor - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference operator[](difference_type n) const - { - assert(m_object != nullptr); - - switch (m_object->m_type) - { - case basic_json::value_t::object: - { - JSON_THROW(std::domain_error("cannot use operator[] for object iterators")); - } - - case basic_json::value_t::array: - { - return *std::next(m_it.array_iterator, n); - } - - case basic_json::value_t::null: - { - JSON_THROW(std::out_of_range("cannot get value")); - } - - default: - { - if (m_it.primitive_iterator.get_value() == -n) - { - return *m_object; } - JSON_THROW(std::out_of_range("cannot get value")); + case basic_json::value_t::array: + { + return (m_it.array_iterator < other.m_it.array_iterator); + } + + default: + { + return (m_it.primitive_iterator < other.m_it.primitive_iterator); + } } } - } - /*! - @brief return the key of an object iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - typename object_t::key_type key() const - { - assert(m_object != nullptr); - - if (m_object->is_object()) + /*! + @brief comparison: less than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<=(const iter_impl& other) const { - return m_it.object_iterator->first; + return not other.operator < (*this); } + /*! + @brief comparison: greater than + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>(const iter_impl& other) const + { + return not operator<=(other); + } + + /*! + @brief comparison: greater than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>=(const iter_impl& other) const + { + return not operator<(other); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator+=(difference_type i) + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + JSON_THROW(std::domain_error("cannot use offsets with object iterators")); + } + + case basic_json::value_t::array: + { + std::advance(m_it.array_iterator, i); + break; + } + + default: + { + m_it.primitive_iterator += i; + break; + } + } + + return *this; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator-=(difference_type i) + { + return operator+=(-i); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator+(difference_type i) + { + auto result = *this; + result += i; + return result; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator-(difference_type i) + { + auto result = *this; + result -= i; + return result; + } + + /*! + @brief return difference + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + difference_type operator-(const iter_impl& other) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + JSON_THROW(std::domain_error("cannot use offsets with object iterators")); + } + + case basic_json::value_t::array: + { + return m_it.array_iterator - other.m_it.array_iterator; + } + + default: + { + return m_it.primitive_iterator - other.m_it.primitive_iterator; + } + } + } + + /*! + @brief access to successor + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator[](difference_type n) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case basic_json::value_t::object: + { + JSON_THROW(std::domain_error("cannot use operator[] for object iterators")); + } + + case basic_json::value_t::array: + { + return *std::next(m_it.array_iterator, n); + } + + case basic_json::value_t::null: + { + JSON_THROW(std::out_of_range("cannot get value")); + } + + default: + { + if (m_it.primitive_iterator.get_value() == -n) + { + return *m_object; + } + + JSON_THROW(std::out_of_range("cannot get value")); + } + } + } + + /*! + @brief return the key of an object iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + typename object_t::key_type key() const + { + assert(m_object != nullptr); + + if (m_object->is_object()) + { + return m_it.object_iterator->first; + } + JSON_THROW(std::domain_error("cannot use key() for non-object iterators")); - } + } - /*! - @brief return the value of an iterator - @pre The iterator is initialized; i.e. `m_object != nullptr`. - */ - reference value() const - { - return operator*(); - } + /*! + @brief return the value of an iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference value() const + { + return operator*(); + } - private: - /// associated JSON instance - pointer m_object = nullptr; - /// the actual iterator of the associated instance - internal_iterator m_it = internal_iterator(); - }; + private: + /// associated JSON instance + pointer m_object = nullptr; + /// the actual iterator of the associated instance + internal_iterator m_it = internal_iterator(); + }; /*! @brief a template for a reverse iterator class @@ -9095,9 +9134,9 @@ class basic_json @since version 1.0.0 */ template<typename Base> - class json_reverse_iterator : public std::reverse_iterator<Base> + class json_reverse_iterator : public std::reverse_iterator<Base> { - public: + public: /// shortcut to the reverse iterator adaptor using base_iterator = std::reverse_iterator<Base>; /// the reference type for the pointed-to element @@ -9105,89 +9144,89 @@ class basic_json /// create reverse iterator from iterator json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept - : base_iterator(it) - {} + : base_iterator(it) + {} - /// create reverse iterator from base class - json_reverse_iterator(const base_iterator& it) noexcept - : base_iterator(it) - {} + /// create reverse iterator from base class + json_reverse_iterator(const base_iterator& it) noexcept + : base_iterator(it) + {} - /// post-increment (it++) - json_reverse_iterator operator++(int) - { - return base_iterator::operator++(1); - } + /// post-increment (it++) + json_reverse_iterator operator++(int) + { + return base_iterator::operator++(1); + } - /// pre-increment (++it) - json_reverse_iterator& operator++() - { - base_iterator::operator++(); - return *this; - } + /// pre-increment (++it) + json_reverse_iterator& operator++() + { + base_iterator::operator++(); + return *this; + } - /// post-decrement (it--) - json_reverse_iterator operator--(int) - { - return base_iterator::operator--(1); - } + /// post-decrement (it--) + json_reverse_iterator operator--(int) + { + return base_iterator::operator--(1); + } - /// pre-decrement (--it) - json_reverse_iterator& operator--() - { - base_iterator::operator--(); - return *this; - } + /// pre-decrement (--it) + json_reverse_iterator& operator--() + { + base_iterator::operator--(); + return *this; + } - /// add to iterator - json_reverse_iterator& operator+=(difference_type i) - { - base_iterator::operator+=(i); - return *this; - } + /// add to iterator + json_reverse_iterator& operator+=(difference_type i) + { + base_iterator::operator+=(i); + return *this; + } - /// add to iterator - json_reverse_iterator operator+(difference_type i) const - { - auto result = *this; - result += i; - return result; - } + /// add to iterator + json_reverse_iterator operator+(difference_type i) const + { + auto result = *this; + result += i; + return result; + } - /// subtract from iterator - json_reverse_iterator operator-(difference_type i) const - { - auto result = *this; - result -= i; - return result; - } + /// subtract from iterator + json_reverse_iterator operator-(difference_type i) const + { + auto result = *this; + result -= i; + return result; + } - /// return difference - difference_type operator-(const json_reverse_iterator& other) const - { - return this->base() - other.base(); - } + /// return difference + difference_type operator-(const json_reverse_iterator& other) const + { + return this->base() - other.base(); + } - /// access to successor - reference operator[](difference_type n) const - { - return *(this->operator+(n)); - } + /// access to successor + reference operator[](difference_type n) const + { + return *(this->operator+(n)); + } - /// return the key of an object iterator - typename object_t::key_type key() const - { - auto it = --this->base(); - return it.key(); - } + /// return the key of an object iterator + typename object_t::key_type key() const + { + auto it = --this->base(); + return it.key(); + } - /// return the value of an iterator - reference value() const - { - auto it = --this->base(); - return it.operator * (); - } - }; + /// return the value of an iterator + reference value() const + { + auto it = --this->base(); + return it.operator * (); + } + }; private: @@ -9204,761 +9243,761 @@ class basic_json */ class lexer { - public: + public: /// token types for the parser enum class token_type - { - uninitialized, ///< indicating the scanner is uninitialized - literal_true, ///< the `true` literal - literal_false, ///< the `false` literal - literal_null, ///< the `null` literal - value_string, ///< a string -- use get_string() for actual value - value_number, ///< a number -- use get_number() for actual value - begin_array, ///< the character for array begin `[` - begin_object, ///< the character for object begin `{` - end_array, ///< the character for array end `]` - end_object, ///< the character for object end `}` - name_separator, ///< the name separator `:` - value_separator, ///< the value separator `,` - parse_error, ///< indicating a parse error - end_of_input ///< indicating the end of the input buffer - }; - - /// the char type to use in the lexer - using lexer_char_t = unsigned char; - - /// a lexer from a buffer with given length - lexer(const lexer_char_t* buff, const size_t len) noexcept - : m_content(buff) - { - assert(m_content != nullptr); - m_start = m_cursor = m_content; - m_limit = m_content + len; - } - - /// a lexer from an input stream - explicit lexer(std::istream& s) - : m_stream(&s), m_line_buffer() - { - // immediately abort if stream is erroneous - if (s.fail()) { + uninitialized, ///< indicating the scanner is uninitialized + literal_true, ///< the `true` literal + literal_false, ///< the `false` literal + literal_null, ///< the `null` literal + value_string, ///< a string -- use get_string() for actual value + value_number, ///< a number -- use get_number() for actual value + begin_array, ///< the character for array begin `[` + begin_object, ///< the character for object begin `{` + end_array, ///< the character for array end `]` + end_object, ///< the character for object end `}` + name_separator, ///< the name separator `:` + value_separator, ///< the value separator `,` + parse_error, ///< indicating a parse error + end_of_input ///< indicating the end of the input buffer + }; + + /// the char type to use in the lexer + using lexer_char_t = unsigned char; + + /// a lexer from a buffer with given length + lexer(const lexer_char_t* buff, const size_t len) noexcept + : m_content(buff) + { + assert(m_content != nullptr); + m_start = m_cursor = m_content; + m_limit = m_content + len; + } + + /// a lexer from an input stream + explicit lexer(std::istream& s) + : m_stream(&s), m_line_buffer() + { + // immediately abort if stream is erroneous + if (s.fail()) + { JSON_THROW(std::invalid_argument("stream error")); - } - - // fill buffer - fill_line_buffer(); - - // skip UTF-8 byte-order mark - if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF") - { - m_line_buffer[0] = ' '; - m_line_buffer[1] = ' '; - m_line_buffer[2] = ' '; - } - } - - // switch off unwanted functions (due to pointer members) - lexer() = delete; - lexer(const lexer&) = delete; - lexer operator=(const lexer&) = delete; - - /*! - @brief create a string from one or two Unicode code points - - There are two cases: (1) @a codepoint1 is in the Basic Multilingual - Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) - @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to - represent a code point above U+FFFF. - - @param[in] codepoint1 the code point (can be high surrogate) - @param[in] codepoint2 the code point (can be low surrogate or 0) - - @return string representation of the code point; the length of the - result string is between 1 and 4 characters. - - @throw std::out_of_range if code point is > 0x10ffff; example: `"code - points above 0x10FFFF are invalid"` - @throw std::invalid_argument if the low surrogate is invalid; example: - `""missing or wrong low surrogate""` - - @complexity Constant. - - @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code> - */ - static string_t to_unicode(const std::size_t codepoint1, - const std::size_t codepoint2 = 0) - { - // calculate the code point from the given code points - std::size_t codepoint = codepoint1; - - // check if codepoint1 is a high surrogate - if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF) - { - // check if codepoint2 is a low surrogate - if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF) - { - codepoint = - // high surrogate occupies the most significant 22 bits - (codepoint1 << 10) - // low surrogate occupies the least significant 15 bits - + codepoint2 - // there is still the 0xD800, 0xDC00 and 0x10000 noise - // in the result so we have to subtract with: - // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 - - 0x35FDC00; } - else + + // fill buffer + fill_line_buffer(); + + // skip UTF-8 byte-order mark + if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF") { - JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); + m_line_buffer[0] = ' '; + m_line_buffer[1] = ' '; + m_line_buffer[2] = ' '; } } - string_t result; + // switch off unwanted functions (due to pointer members) + lexer() = delete; + lexer(const lexer&) = delete; + lexer operator=(const lexer&) = delete; - if (codepoint < 0x80) - { - // 1-byte characters: 0xxxxxxx (ASCII) - result.append(1, static_cast<typename string_t::value_type>(codepoint)); - } - else if (codepoint <= 0x7ff) - { - // 2-byte characters: 110xxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else if (codepoint <= 0xffff) - { - // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else if (codepoint <= 0x10ffff) - { - // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); - result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); - } - else - { - JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid")); - } + /*! + @brief create a string from one or two Unicode code points - return result; - } + There are two cases: (1) @a codepoint1 is in the Basic Multilingual + Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) + @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to + represent a code point above U+FFFF. - /// return name of values of type token_type (only used for errors) - static std::string token_type_name(const token_type t) - { - switch (t) + @param[in] codepoint1 the code point (can be high surrogate) + @param[in] codepoint2 the code point (can be low surrogate or 0) + + @return string representation of the code point; the length of the + result string is between 1 and 4 characters. + + @throw std::out_of_range if code point is > 0x10ffff; example: `"code + points above 0x10FFFF are invalid"` + @throw std::invalid_argument if the low surrogate is invalid; example: + `""missing or wrong low surrogate""` + + @complexity Constant. + + @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code> + */ + static string_t to_unicode(const std::size_t codepoint1, + const std::size_t codepoint2 = 0) { - case token_type::uninitialized: - return "<uninitialized>"; - case token_type::literal_true: - return "true literal"; - case token_type::literal_false: - return "false literal"; - case token_type::literal_null: - return "null literal"; - case token_type::value_string: - return "string literal"; - case token_type::value_number: - return "number literal"; - case token_type::begin_array: - return "'['"; - case token_type::begin_object: - return "'{'"; - case token_type::end_array: - return "']'"; - case token_type::end_object: - return "'}'"; - case token_type::name_separator: - return "':'"; - case token_type::value_separator: - return "','"; - case token_type::parse_error: - return "<parse error>"; - case token_type::end_of_input: - return "end of input"; - default: + // calculate the code point from the given code points + std::size_t codepoint = codepoint1; + + // check if codepoint1 is a high surrogate + if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF) { - // catch non-enum values - return "unknown token"; // LCOV_EXCL_LINE - } - } - } - - /*! - This function implements a scanner for JSON. It is specified using - regular expressions that try to follow RFC 7159 as close as possible. - These regular expressions are then translated into a minimized - deterministic finite automaton (DFA) by the tool - [re2c](http://re2c.org). As a result, the translated code for this - function consists of a large block of code with `goto` jumps. - - @return the class of the next token read from the buffer - - @complexity Linear in the length of the input.\n - - Proposition: The loop below will always terminate for finite input.\n - - Proof (by contradiction): Assume a finite input. To loop forever, the - loop must never hit code with a `break` statement. The only code - snippets without a `break` statement are the continue statements for - whitespace and byte-order-marks. To loop forever, the input must be an - infinite sequence of whitespace or byte-order-marks. This contradicts - the assumption of finite input, q.e.d. - */ - token_type scan() - { - while (true) - { - // pointer for backtracking information - m_marker = nullptr; - - // remember the begin of the token - m_start = m_cursor; - assert(m_start != nullptr); - - /*!re2c - re2c:define:YYCTYPE = lexer_char_t; - re2c:define:YYCURSOR = m_cursor; - re2c:define:YYLIMIT = m_limit; - re2c:define:YYMARKER = m_marker; - re2c:define:YYFILL = "fill_line_buffer(@@); // LCOV_EXCL_LINE"; - re2c:define:YYFILL:naked = 1; - re2c:yyfill:enable = 1; - re2c:indent:string = " "; - re2c:indent:top = 1; - re2c:labelprefix = "basic_json_parser_"; - - // ignore whitespace - ws = [ \t\n\r]+; - ws { continue; } - - // structural characters - "[" { last_token_type = token_type::begin_array; break; } - "]" { last_token_type = token_type::end_array; break; } - "{" { last_token_type = token_type::begin_object; break; } - "}" { last_token_type = token_type::end_object; break; } - "," { last_token_type = token_type::value_separator; break; } - ":" { last_token_type = token_type::name_separator; break; } - - // literal names - "null" { last_token_type = token_type::literal_null; break; } - "true" { last_token_type = token_type::literal_true; break; } - "false" { last_token_type = token_type::literal_false; break; } - - // number - decimal_point = "."; - digit = [0-9]; - digit_1_9 = [1-9]; - e = "e" | "E"; - minus = "-"; - plus = "+"; - zero = "0"; - exp = e (minus | plus)? digit+; - frac = decimal_point digit+; - int = (zero | digit_1_9 digit*); - number = minus? int frac? exp?; - number { last_token_type = token_type::value_number; break; } - - // string - quotation_mark = "\""; - escape = "\\"; - unescaped = [^"\\\x00-\x1f]; - single_escaped = "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t"; - unicode_escaped = "u" [0-9a-fA-F]{4}; - escaped = escape (single_escaped | unicode_escaped); - char = unescaped | escaped; - string = quotation_mark char* quotation_mark; - string { last_token_type = token_type::value_string; break; } - - // end of file - "\x00" { last_token_type = token_type::end_of_input; break; } - - // anything else is an error - * { last_token_type = token_type::parse_error; break; } - */ - } - - return last_token_type; - } - - /*! - @brief append data from the stream to the line buffer - - This function is called by the scan() function when the end of the - buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be - incremented without leaving the limits of the line buffer. Note re2c - decides when to call this function. - - If the lexer reads from contiguous storage, there is no trailing null - byte. Therefore, this function must make sure to add these padding - null bytes. - - If the lexer reads from an input stream, this function reads the next - line of the input. - - @pre - p p p p p p u u u u u x . . . . . . - ^ ^ ^ ^ - m_content m_start | m_limit - m_cursor - - @post - u u u u u x x x x x x x . . . . . . - ^ ^ ^ - | m_cursor m_limit - m_start - m_content - */ - void fill_line_buffer(size_t n = 0) - { - // if line buffer is used, m_content points to its data - assert(m_line_buffer.empty() - or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data())); - - // if line buffer is used, m_limit is set past the end of its data - assert(m_line_buffer.empty() - or m_limit == m_content + m_line_buffer.size()); - - // pointer relationships - assert(m_content <= m_start); - assert(m_start <= m_cursor); - assert(m_cursor <= m_limit); - assert(m_marker == nullptr or m_marker <= m_limit); - - // number of processed characters (p) - const auto num_processed_chars = static_cast<size_t>(m_start - m_content); - // offset for m_marker wrt. to m_start - const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; - // number of unprocessed characters (u) - const auto offset_cursor = m_cursor - m_start; - - // no stream is used or end of file is reached - if (m_stream == nullptr or m_stream->eof()) - { - // m_start may or may not be pointing into m_line_buffer at - // this point. We trust the standand library to do the right - // thing. See http://stackoverflow.com/q/28142011/266378 - m_line_buffer.assign(m_start, m_limit); - - // append n characters to make sure that there is sufficient - // space between m_cursor and m_limit - m_line_buffer.append(1, '\x00'); - if (n > 0) - { - m_line_buffer.append(n - 1, '\x01'); - } - } - else - { - // delete processed characters from line buffer - m_line_buffer.erase(0, num_processed_chars); - // read next line from input stream - m_line_buffer_tmp.clear(); - std::getline(*m_stream, m_line_buffer_tmp, '\n'); - - // add line with newline symbol to the line buffer - m_line_buffer += m_line_buffer_tmp; - m_line_buffer.push_back('\n'); - } - - // set pointers - m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()); - assert(m_content != nullptr); - m_start = m_content; - m_marker = m_start + offset_marker; - m_cursor = m_start + offset_cursor; - m_limit = m_start + m_line_buffer.size(); - } - - /// return string representation of last read token - string_t get_token_string() const - { - assert(m_start != nullptr); - return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start), - static_cast<size_t>(m_cursor - m_start)); - } - - /*! - @brief return string value for string tokens - - The function iterates the characters between the opening and closing - quotes of the string value. The complete string is the range - [m_start,m_cursor). Consequently, we iterate from m_start+1 to - m_cursor-1. - - We differentiate two cases: - - 1. Escaped characters. In this case, a new character is constructed - according to the nature of the escape. Some escapes create new - characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied - as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape - `"\\uxxxx"` need special care. In this case, to_unicode takes care - of the construction of the values. - 2. Unescaped characters are copied as is. - - @pre `m_cursor - m_start >= 2`, meaning the length of the last token - is at least 2 bytes which is trivially true for any string (which - consists of at least two quotes). - - " c1 c2 c3 ... " - ^ ^ - m_start m_cursor - - @complexity Linear in the length of the string.\n - - Lemma: The loop body will always terminate.\n - - Proof (by contradiction): Assume the loop body does not terminate. As - the loop body does not contain another loop, one of the called - functions must never return. The called functions are `std::strtoul` - and to_unicode. Neither function can loop forever, so the loop body - will never loop forever which contradicts the assumption that the loop - body does not terminate, q.e.d.\n - - Lemma: The loop condition for the for loop is eventually false.\n - - Proof (by contradiction): Assume the loop does not terminate. Due to - the above lemma, this can only be due to a tautological loop - condition; that is, the loop condition i < m_cursor - 1 must always be - true. Let x be the change of i for any loop iteration. Then - m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This - can be rephrased to m_cursor - m_start - 2 > x. With the - precondition, we x <= 0, meaning that the loop condition holds - indefinitly if i is always decreased. However, observe that the value - of i is strictly increasing with each iteration, as it is incremented - by 1 in the iteration expression and never decremented inside the loop - body. Hence, the loop condition will eventually be false which - contradicts the assumption that the loop condition is a tautology, - q.e.d. - - @return string value of current token without opening and closing - quotes - @throw std::out_of_range if to_unicode fails - */ - string_t get_string() const - { - assert(m_cursor - m_start >= 2); - - string_t result; - result.reserve(static_cast<size_t>(m_cursor - m_start - 2)); - - // iterate the result between the quotes - for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i) - { - // find next escape character - auto e = std::find(i, m_cursor - 1, '\\'); - if (e != i) - { - // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705 - for (auto k = i; k < e; k++) + // check if codepoint2 is a low surrogate + if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF) { - result.push_back(static_cast<typename string_t::value_type>(*k)); - } - i = e - 1; // -1 because of ++i - } - else - { - // processing escaped character - // read next character - ++i; - - switch (*i) - { - // the default escapes - case 't': - { - result += "\t"; - break; - } - case 'b': - { - result += "\b"; - break; - } - case 'f': - { - result += "\f"; - break; - } - case 'n': - { - result += "\n"; - break; - } - case 'r': - { - result += "\r"; - break; - } - case '\\': - { - result += "\\"; - break; - } - case '/': - { - result += "/"; - break; - } - case '"': - { - result += "\""; - break; - } - - // unicode - case 'u': - { - // get code xxxx from uxxxx - auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1), - 4).c_str(), nullptr, 16); - - // check if codepoint is a high surrogate - if (codepoint >= 0xD800 and codepoint <= 0xDBFF) - { - // make sure there is a subsequent unicode - if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') - { - JSON_THROW(std::invalid_argument("missing low surrogate")); - } - - // get code yyyy from uxxxx\uyyyy - auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer> - (i + 7), 4).c_str(), nullptr, 16); - result += to_unicode(codepoint, codepoint2); - // skip the next 10 characters (xxxx\uyyyy) - i += 10; - } - else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) - { - // we found a lone low surrogate - JSON_THROW(std::invalid_argument("missing high surrogate")); - } - else - { - // add unicode character(s) - result += to_unicode(codepoint); - // skip the next four characters (xxxx) - i += 4; - } - break; - } - } - } - } - - return result; - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - long double str_to_float_t(long double* /* type */, char** endptr) const - { - return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - double str_to_float_t(double* /* type */, char** endptr) const - { - return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief parse floating point number - - This function (and its overloads) serves to select the most approprate - standard floating point number parsing function based on the type - supplied via the first parameter. Set this to @a - static_cast<number_float_t*>(nullptr). - - @param[in,out] endptr recieves a pointer to the first character after - the number - - @return the floating point number - */ - float str_to_float_t(float* /* type */, char** endptr) const - { - return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); - } - - /*! - @brief return number value for number tokens - - This function translates the last token into the most appropriate - number type (either integer, unsigned integer or floating point), - which is passed back to the caller via the result parameter. - - This function parses the integer component up to the radix point or - exponent while collecting information about the 'floating point - representation', which it stores in the result parameter. If there is - no radix point or exponent, and the number can fit into a @ref - number_integer_t or @ref number_unsigned_t then it sets the result - parameter accordingly. - - If the number is a floating point number the number is then parsed - using @a std:strtod (or @a std:strtof or @a std::strtold). - - @param[out] result @ref basic_json object to receive the number, or - NAN if the conversion read past the current token. The latter case - needs to be treated by the caller function. - */ - void get_number(basic_json& result) const - { - assert(m_start != nullptr); - - const lexer::lexer_char_t* curptr = m_start; - - // accumulate the integer conversion result (unsigned for now) - number_unsigned_t value = 0; - - // maximum absolute value of the relevant integer type - number_unsigned_t max; - - // temporarily store the type to avoid unecessary bitfield access - value_t type; - - // look for sign - if (*curptr == '-') - { - type = value_t::number_integer; - max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1; - curptr++; - } - else - { - type = value_t::number_unsigned; - max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)()); - } - - // count the significant figures - for (; curptr < m_cursor; curptr++) - { - // quickly skip tests if a digit - if (*curptr < '0' || *curptr > '9') - { - if (*curptr == '.') - { - // don't count '.' but change to float - type = value_t::number_float; - continue; - } - // assume exponent (if not then will fail parse): change to - // float, stop counting and record exponent details - type = value_t::number_float; - break; - } - - // skip if definitely not an integer - if (type != value_t::number_float) - { - auto digit = static_cast<number_unsigned_t>(*curptr - '0'); - - // overflow if value * 10 + digit > max, move terms around - // to avoid overflow in intermediate values - if (value > (max - digit) / 10) - { - // overflow - type = value_t::number_float; + codepoint = + // high surrogate occupies the most significant 22 bits + (codepoint1 << 10) + // low surrogate occupies the least significant 15 bits + + codepoint2 + // there is still the 0xD800, 0xDC00 and 0x10000 noise + // in the result so we have to subtract with: + // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 + - 0x35FDC00; } else { - // no overflow - value = value * 10 + digit; + JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); + } + } + + string_t result; + + if (codepoint < 0x80) + { + // 1-byte characters: 0xxxxxxx (ASCII) + result.append(1, static_cast<typename string_t::value_type>(codepoint)); + } + else if (codepoint <= 0x7ff) + { + // 2-byte characters: 110xxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else if (codepoint <= 0xffff) + { + // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else if (codepoint <= 0x10ffff) + { + // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F))); + result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F))); + } + else + { + JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid")); + } + + return result; + } + + /// return name of values of type token_type (only used for errors) + static std::string token_type_name(const token_type t) + { + switch (t) + { + case token_type::uninitialized: + return "<uninitialized>"; + case token_type::literal_true: + return "true literal"; + case token_type::literal_false: + return "false literal"; + case token_type::literal_null: + return "null literal"; + case token_type::value_string: + return "string literal"; + case token_type::value_number: + return "number literal"; + case token_type::begin_array: + return "'['"; + case token_type::begin_object: + return "'{'"; + case token_type::end_array: + return "']'"; + case token_type::end_object: + return "'}'"; + case token_type::name_separator: + return "':'"; + case token_type::value_separator: + return "','"; + case token_type::parse_error: + return "<parse error>"; + case token_type::end_of_input: + return "end of input"; + default: + { + // catch non-enum values + return "unknown token"; // LCOV_EXCL_LINE } } } - // save the value (if not a float) - if (type == value_t::number_unsigned) - { - result.m_value.number_unsigned = value; - } - else if (type == value_t::number_integer) - { - // invariant: if we parsed a '-', the absolute value is between - // 0 (we allow -0) and max == -INT64_MIN - assert(value >= 0); - assert(value <= max); + /*! + This function implements a scanner for JSON. It is specified using + regular expressions that try to follow RFC 7159 as close as possible. + These regular expressions are then translated into a minimized + deterministic finite automaton (DFA) by the tool + [re2c](http://re2c.org). As a result, the translated code for this + function consists of a large block of code with `goto` jumps. - if (value == max) + @return the class of the next token read from the buffer + + @complexity Linear in the length of the input.\n + + Proposition: The loop below will always terminate for finite input.\n + + Proof (by contradiction): Assume a finite input. To loop forever, the + loop must never hit code with a `break` statement. The only code + snippets without a `break` statement are the continue statements for + whitespace and byte-order-marks. To loop forever, the input must be an + infinite sequence of whitespace or byte-order-marks. This contradicts + the assumption of finite input, q.e.d. + */ + token_type scan() + { + while (true) { - // we cannot simply negate value (== max == -INT64_MIN), - // see https://github.com/nlohmann/json/issues/389 - result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN); + // pointer for backtracking information + m_marker = nullptr; + + // remember the begin of the token + m_start = m_cursor; + assert(m_start != nullptr); + + /*!re2c + re2c:define:YYCTYPE = lexer_char_t; + re2c:define:YYCURSOR = m_cursor; + re2c:define:YYLIMIT = m_limit; + re2c:define:YYMARKER = m_marker; + re2c:define:YYFILL = "fill_line_buffer(@@); // LCOV_EXCL_LINE"; + re2c:define:YYFILL:naked = 1; + re2c:yyfill:enable = 1; + re2c:indent:string = " "; + re2c:indent:top = 1; + re2c:labelprefix = "basic_json_parser_"; + + // ignore whitespace + ws = [ \t\n\r]+; + ws { continue; } + + // structural characters + "[" { last_token_type = token_type::begin_array; break; } + "]" { last_token_type = token_type::end_array; break; } + "{" { last_token_type = token_type::begin_object; break; } + "}" { last_token_type = token_type::end_object; break; } + "," { last_token_type = token_type::value_separator; break; } + ":" { last_token_type = token_type::name_separator; break; } + + // literal names + "null" { last_token_type = token_type::literal_null; break; } + "true" { last_token_type = token_type::literal_true; break; } + "false" { last_token_type = token_type::literal_false; break; } + + // number + decimal_point = "."; + digit = [0-9]; + digit_1_9 = [1-9]; + e = "e" | "E"; + minus = "-"; + plus = "+"; + zero = "0"; + exp = e (minus | plus)? digit+; + frac = decimal_point digit+; + int = (zero | digit_1_9 digit*); + number = minus? int frac? exp?; + number { last_token_type = token_type::value_number; break; } + + // string + quotation_mark = "\""; + escape = "\\"; + unescaped = [^"\\\x00-\x1f]; + single_escaped = "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t"; + unicode_escaped = "u" [0-9a-fA-F]{4}; + escaped = escape (single_escaped | unicode_escaped); + char = unescaped | escaped; + string = quotation_mark char* quotation_mark; + string { last_token_type = token_type::value_string; break; } + + // end of file + "\x00" { last_token_type = token_type::end_of_input; break; } + + // anything else is an error + * { last_token_type = token_type::parse_error; break; } + */ + } + + return last_token_type; + } + + /*! + @brief append data from the stream to the line buffer + + This function is called by the scan() function when the end of the + buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be + incremented without leaving the limits of the line buffer. Note re2c + decides when to call this function. + + If the lexer reads from contiguous storage, there is no trailing null + byte. Therefore, this function must make sure to add these padding + null bytes. + + If the lexer reads from an input stream, this function reads the next + line of the input. + + @pre + p p p p p p u u u u u x . . . . . . + ^ ^ ^ ^ + m_content m_start | m_limit + m_cursor + + @post + u u u u u x x x x x x x . . . . . . + ^ ^ ^ + | m_cursor m_limit + m_start + m_content + */ + void fill_line_buffer(size_t n = 0) + { + // if line buffer is used, m_content points to its data + assert(m_line_buffer.empty() + or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data())); + + // if line buffer is used, m_limit is set past the end of its data + assert(m_line_buffer.empty() + or m_limit == m_content + m_line_buffer.size()); + + // pointer relationships + assert(m_content <= m_start); + assert(m_start <= m_cursor); + assert(m_cursor <= m_limit); + assert(m_marker == nullptr or m_marker <= m_limit); + + // number of processed characters (p) + const auto num_processed_chars = static_cast<size_t>(m_start - m_content); + // offset for m_marker wrt. to m_start + const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; + // number of unprocessed characters (u) + const auto offset_cursor = m_cursor - m_start; + + // no stream is used or end of file is reached + if (m_stream == nullptr or m_stream->eof()) + { + // m_start may or may not be pointing into m_line_buffer at + // this point. We trust the standand library to do the right + // thing. See http://stackoverflow.com/q/28142011/266378 + m_line_buffer.assign(m_start, m_limit); + + // append n characters to make sure that there is sufficient + // space between m_cursor and m_limit + m_line_buffer.append(1, '\x00'); + if (n > 0) + { + m_line_buffer.append(n - 1, '\x01'); + } } else { - // all other values can be negated safely - result.m_value.number_integer = -static_cast<number_integer_t>(value); + // delete processed characters from line buffer + m_line_buffer.erase(0, num_processed_chars); + // read next line from input stream + m_line_buffer_tmp.clear(); + std::getline(*m_stream, m_line_buffer_tmp, '\n'); + + // add line with newline symbol to the line buffer + m_line_buffer += m_line_buffer_tmp; + m_line_buffer.push_back('\n'); } + + // set pointers + m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()); + assert(m_content != nullptr); + m_start = m_content; + m_marker = m_start + offset_marker; + m_cursor = m_start + offset_cursor; + m_limit = m_start + m_line_buffer.size(); } - else + + /// return string representation of last read token + string_t get_token_string() const { - // parse with strtod + assert(m_start != nullptr); + return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start), + static_cast<size_t>(m_cursor - m_start)); + } + + /*! + @brief return string value for string tokens + + The function iterates the characters between the opening and closing + quotes of the string value. The complete string is the range + [m_start,m_cursor). Consequently, we iterate from m_start+1 to + m_cursor-1. + + We differentiate two cases: + + 1. Escaped characters. In this case, a new character is constructed + according to the nature of the escape. Some escapes create new + characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied + as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape + `"\\uxxxx"` need special care. In this case, to_unicode takes care + of the construction of the values. + 2. Unescaped characters are copied as is. + + @pre `m_cursor - m_start >= 2`, meaning the length of the last token + is at least 2 bytes which is trivially true for any string (which + consists of at least two quotes). + + " c1 c2 c3 ... " + ^ ^ + m_start m_cursor + + @complexity Linear in the length of the string.\n + + Lemma: The loop body will always terminate.\n + + Proof (by contradiction): Assume the loop body does not terminate. As + the loop body does not contain another loop, one of the called + functions must never return. The called functions are `std::strtoul` + and to_unicode. Neither function can loop forever, so the loop body + will never loop forever which contradicts the assumption that the loop + body does not terminate, q.e.d.\n + + Lemma: The loop condition for the for loop is eventually false.\n + + Proof (by contradiction): Assume the loop does not terminate. Due to + the above lemma, this can only be due to a tautological loop + condition; that is, the loop condition i < m_cursor - 1 must always be + true. Let x be the change of i for any loop iteration. Then + m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This + can be rephrased to m_cursor - m_start - 2 > x. With the + precondition, we x <= 0, meaning that the loop condition holds + indefinitly if i is always decreased. However, observe that the value + of i is strictly increasing with each iteration, as it is incremented + by 1 in the iteration expression and never decremented inside the loop + body. Hence, the loop condition will eventually be false which + contradicts the assumption that the loop condition is a tautology, + q.e.d. + + @return string value of current token without opening and closing + quotes + @throw std::out_of_range if to_unicode fails + */ + string_t get_string() const + { + assert(m_cursor - m_start >= 2); + + string_t result; + result.reserve(static_cast<size_t>(m_cursor - m_start - 2)); + + // iterate the result between the quotes + for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i) + { + // find next escape character + auto e = std::find(i, m_cursor - 1, '\\'); + if (e != i) + { + // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705 + for (auto k = i; k < e; k++) + { + result.push_back(static_cast<typename string_t::value_type>(*k)); + } + i = e - 1; // -1 because of ++i + } + else + { + // processing escaped character + // read next character + ++i; + + switch (*i) + { + // the default escapes + case 't': + { + result += "\t"; + break; + } + case 'b': + { + result += "\b"; + break; + } + case 'f': + { + result += "\f"; + break; + } + case 'n': + { + result += "\n"; + break; + } + case 'r': + { + result += "\r"; + break; + } + case '\\': + { + result += "\\"; + break; + } + case '/': + { + result += "/"; + break; + } + case '"': + { + result += "\""; + break; + } + + // unicode + case 'u': + { + // get code xxxx from uxxxx + auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1), + 4).c_str(), nullptr, 16); + + // check if codepoint is a high surrogate + if (codepoint >= 0xD800 and codepoint <= 0xDBFF) + { + // make sure there is a subsequent unicode + if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') + { + JSON_THROW(std::invalid_argument("missing low surrogate")); + } + + // get code yyyy from uxxxx\uyyyy + auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer> + (i + 7), 4).c_str(), nullptr, 16); + result += to_unicode(codepoint, codepoint2); + // skip the next 10 characters (xxxx\uyyyy) + i += 10; + } + else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) + { + // we found a lone low surrogate + JSON_THROW(std::invalid_argument("missing high surrogate")); + } + else + { + // add unicode character(s) + result += to_unicode(codepoint); + // skip the next four characters (xxxx) + i += 4; + } + break; + } + } + } + } + + return result; + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + long double str_to_float_t(long double* /* type */, char** endptr) const + { + return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + double str_to_float_t(double* /* type */, char** endptr) const + { + return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief parse floating point number + + This function (and its overloads) serves to select the most approprate + standard floating point number parsing function based on the type + supplied via the first parameter. Set this to @a + static_cast<number_float_t*>(nullptr). + + @param[in,out] endptr recieves a pointer to the first character after + the number + + @return the floating point number + */ + float str_to_float_t(float* /* type */, char** endptr) const + { + return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr); + } + + /*! + @brief return number value for number tokens + + This function translates the last token into the most appropriate + number type (either integer, unsigned integer or floating point), + which is passed back to the caller via the result parameter. + + This function parses the integer component up to the radix point or + exponent while collecting information about the 'floating point + representation', which it stores in the result parameter. If there is + no radix point or exponent, and the number can fit into a @ref + number_integer_t or @ref number_unsigned_t then it sets the result + parameter accordingly. + + If the number is a floating point number the number is then parsed + using @a std:strtod (or @a std:strtof or @a std::strtold). + + @param[out] result @ref basic_json object to receive the number, or + NAN if the conversion read past the current token. The latter case + needs to be treated by the caller function. + */ + void get_number(basic_json& result) const + { + assert(m_start != nullptr); + + const lexer::lexer_char_t* curptr = m_start; + + // accumulate the integer conversion result (unsigned for now) + number_unsigned_t value = 0; + + // maximum absolute value of the relevant integer type + number_unsigned_t max; + + // temporarily store the type to avoid unecessary bitfield access + value_t type; + + // look for sign + if (*curptr == '-') + { + type = value_t::number_integer; + max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1; + curptr++; + } + else + { + type = value_t::number_unsigned; + max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)()); + } + + // count the significant figures + for (; curptr < m_cursor; curptr++) + { + // quickly skip tests if a digit + if (*curptr < '0' || *curptr > '9') + { + if (*curptr == '.') + { + // don't count '.' but change to float + type = value_t::number_float; + continue; + } + // assume exponent (if not then will fail parse): change to + // float, stop counting and record exponent details + type = value_t::number_float; + break; + } + + // skip if definitely not an integer + if (type != value_t::number_float) + { + auto digit = static_cast<number_unsigned_t>(*curptr - '0'); + + // overflow if value * 10 + digit > max, move terms around + // to avoid overflow in intermediate values + if (value > (max - digit) / 10) + { + // overflow + type = value_t::number_float; + } + else + { + // no overflow + value = value * 10 + digit; + } + } + } + + // save the value (if not a float) + if (type == value_t::number_unsigned) + { + result.m_value.number_unsigned = value; + } + else if (type == value_t::number_integer) + { + // invariant: if we parsed a '-', the absolute value is between + // 0 (we allow -0) and max == -INT64_MIN + assert(value >= 0); + assert(value <= max); + + if (value == max) + { + // we cannot simply negate value (== max == -INT64_MIN), + // see https://github.com/nlohmann/json/issues/389 + result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN); + } + else + { + // all other values can be negated safely + result.m_value.number_integer = -static_cast<number_integer_t>(value); + } + } + else + { + // parse with strtod result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr); - // replace infinity and NAN by null - if (not std::isfinite(result.m_value.number_float)) - { - type = value_t::null; - result.m_value = basic_json::json_value(); + // replace infinity and NAN by null + if (not std::isfinite(result.m_value.number_float)) + { + type = value_t::null; + result.m_value = basic_json::json_value(); + } } + + // save the type + result.m_type = type; } - // save the type - result.m_type = type; - } - - private: - /// optional input stream - std::istream* m_stream = nullptr; - /// line buffer buffer for m_stream - string_t m_line_buffer {}; - /// used for filling m_line_buffer - string_t m_line_buffer_tmp {}; - /// the buffer pointer - const lexer_char_t* m_content = nullptr; - /// pointer to the beginning of the current symbol - const lexer_char_t* m_start = nullptr; - /// pointer for backtracking information - const lexer_char_t* m_marker = nullptr; - /// pointer to the current symbol - const lexer_char_t* m_cursor = nullptr; - /// pointer to the end of the buffer - const lexer_char_t* m_limit = nullptr; - /// the last token type - token_type last_token_type = token_type::end_of_input; - }; + private: + /// optional input stream + std::istream* m_stream = nullptr; + /// line buffer buffer for m_stream + string_t m_line_buffer {}; + /// used for filling m_line_buffer + string_t m_line_buffer_tmp {}; + /// the buffer pointer + const lexer_char_t* m_content = nullptr; + /// pointer to the beginning of the current symbol + const lexer_char_t* m_start = nullptr; + /// pointer for backtracking information + const lexer_char_t* m_marker = nullptr; + /// pointer to the current symbol + const lexer_char_t* m_cursor = nullptr; + /// pointer to the end of the buffer + const lexer_char_t* m_limit = nullptr; + /// the last token type + token_type last_token_type = token_type::end_of_input; + }; /*! @brief syntax analysis @@ -9967,282 +10006,282 @@ class basic_json */ class parser { - public: + public: /// a parser reading from a string literal parser(const char* buff, const parser_callback_t cb = nullptr) - : callback(cb), - m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff)) - {} + : callback(cb), + m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff)) + {} - /// a parser reading from an input stream - parser(std::istream& is, const parser_callback_t cb = nullptr) - : callback(cb), m_lexer(is) - {} + /// a parser reading from an input stream + parser(std::istream& is, const parser_callback_t cb = nullptr) + : callback(cb), m_lexer(is) + {} - /// a parser reading from an iterator range with contiguous storage - template<class IteratorType, typename std::enable_if< - std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value - , int>::type - = 0> - parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) - : callback(cb), - m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)), - static_cast<size_t>(std::distance(first, last))) - {} + /// a parser reading from an iterator range with contiguous storage + template<class IteratorType, typename std::enable_if< + std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value + , int>::type + = 0> + parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) + : callback(cb), + m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)), + static_cast<size_t>(std::distance(first, last))) + {} - /// public parser interface - basic_json parse() - { - // read first token - get_token(); - - basic_json result = parse_internal(true); - result.assert_invariant(); - - expect(lexer::token_type::end_of_input); - - // return parser result and replace it with null in case the - // top-level value was discarded by the callback function - return result.is_discarded() ? basic_json() : std::move(result); - } - - private: - /// the actual parser - basic_json parse_internal(bool keep) - { - auto result = basic_json(value_t::discarded); - - switch (last_token) + /// public parser interface + basic_json parse() { - case lexer::token_type::begin_object: + // read first token + get_token(); + + basic_json result = parse_internal(true); + result.assert_invariant(); + + expect(lexer::token_type::end_of_input); + + // return parser result and replace it with null in case the + // top-level value was discarded by the callback function + return result.is_discarded() ? basic_json() : std::move(result); + } + + private: + /// the actual parser + basic_json parse_internal(bool keep) + { + auto result = basic_json(value_t::discarded); + + switch (last_token) { - if (keep and (not callback - or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) + case lexer::token_type::begin_object: { - // explicitly set result to object to cope with {} - result.m_type = value_t::object; - result.m_value = value_t::object; - } + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) + { + // explicitly set result to object to cope with {} + result.m_type = value_t::object; + result.m_value = value_t::object; + } - // read next token - get_token(); + // read next token + get_token(); - // closing } -> we are done - if (last_token == lexer::token_type::end_object) - { + // closing } -> we are done + if (last_token == lexer::token_type::end_object) + { + get_token(); + if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) + { + result = basic_json(value_t::discarded); + } + return result; + } + + // no comma is expected here + unexpect(lexer::token_type::value_separator); + + // otherwise: parse key-value pairs + do + { + // ugly, but could be fixed with loop reorganization + if (last_token == lexer::token_type::value_separator) + { + get_token(); + } + + // store key + expect(lexer::token_type::value_string); + const auto key = m_lexer.get_string(); + + bool keep_tag = false; + if (keep) + { + if (callback) + { + basic_json k(key); + keep_tag = callback(depth, parse_event_t::key, k); + } + else + { + keep_tag = true; + } + } + + // parse separator (:) + get_token(); + expect(lexer::token_type::name_separator); + + // parse and add value + get_token(); + auto value = parse_internal(keep); + if (keep and keep_tag and not value.is_discarded()) + { + result[key] = std::move(value); + } + } + while (last_token == lexer::token_type::value_separator); + + // closing } + expect(lexer::token_type::end_object); get_token(); if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) { result = basic_json(value_t::discarded); } + return result; } - // no comma is expected here - unexpect(lexer::token_type::value_separator); - - // otherwise: parse key-value pairs - do + case lexer::token_type::begin_array: { - // ugly, but could be fixed with loop reorganization - if (last_token == lexer::token_type::value_separator) + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) + { + // explicitly set result to object to cope with [] + result.m_type = value_t::array; + result.m_value = value_t::array; + } + + // read next token + get_token(); + + // closing ] -> we are done + if (last_token == lexer::token_type::end_array) { get_token(); + if (callback and not callback(--depth, parse_event_t::array_end, result)) + { + result = basic_json(value_t::discarded); + } + return result; } - // store key - expect(lexer::token_type::value_string); - const auto key = m_lexer.get_string(); + // no comma is expected here + unexpect(lexer::token_type::value_separator); - bool keep_tag = false; - if (keep) + // otherwise: parse values + do { - if (callback) + // ugly, but could be fixed with loop reorganization + if (last_token == lexer::token_type::value_separator) { - basic_json k(key); - keep_tag = callback(depth, parse_event_t::key, k); + get_token(); } - else + + // parse value + auto value = parse_internal(keep); + if (keep and not value.is_discarded()) { - keep_tag = true; + result.push_back(std::move(value)); } } + while (last_token == lexer::token_type::value_separator); - // parse separator (:) + // closing ] + expect(lexer::token_type::end_array); get_token(); - expect(lexer::token_type::name_separator); - - // parse and add value - get_token(); - auto value = parse_internal(keep); - if (keep and keep_tag and not value.is_discarded()) - { - result[key] = std::move(value); - } - } - while (last_token == lexer::token_type::value_separator); - - // closing } - expect(lexer::token_type::end_object); - get_token(); - if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) - { - result = basic_json(value_t::discarded); - } - - return result; - } - - case lexer::token_type::begin_array: - { - if (keep and (not callback - or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) - { - // explicitly set result to object to cope with [] - result.m_type = value_t::array; - result.m_value = value_t::array; - } - - // read next token - get_token(); - - // closing ] -> we are done - if (last_token == lexer::token_type::end_array) - { - get_token(); - if (callback and not callback(--depth, parse_event_t::array_end, result)) + if (keep and callback and not callback(--depth, parse_event_t::array_end, result)) { result = basic_json(value_t::discarded); } + return result; } - // no comma is expected here - unexpect(lexer::token_type::value_separator); - - // otherwise: parse values - do + case lexer::token_type::literal_null: { - // ugly, but could be fixed with loop reorganization - if (last_token == lexer::token_type::value_separator) - { - get_token(); - } - - // parse value - auto value = parse_internal(keep); - if (keep and not value.is_discarded()) - { - result.push_back(std::move(value)); - } - } - while (last_token == lexer::token_type::value_separator); - - // closing ] - expect(lexer::token_type::end_array); - get_token(); - if (keep and callback and not callback(--depth, parse_event_t::array_end, result)) - { - result = basic_json(value_t::discarded); + get_token(); + result.m_type = value_t::null; + break; } - return result; + case lexer::token_type::value_string: + { + const auto s = m_lexer.get_string(); + get_token(); + result = basic_json(s); + break; + } + + case lexer::token_type::literal_true: + { + get_token(); + result.m_type = value_t::boolean; + result.m_value = true; + break; + } + + case lexer::token_type::literal_false: + { + get_token(); + result.m_type = value_t::boolean; + result.m_value = false; + break; + } + + case lexer::token_type::value_number: + { + m_lexer.get_number(result); + get_token(); + break; + } + + default: + { + // the last token was unexpected + unexpect(last_token); + } } - case lexer::token_type::literal_null: + if (keep and callback and not callback(depth, parse_event_t::value, result)) { - get_token(); - result.m_type = value_t::null; - break; - } - - case lexer::token_type::value_string: - { - const auto s = m_lexer.get_string(); - get_token(); - result = basic_json(s); - break; - } - - case lexer::token_type::literal_true: - { - get_token(); - result.m_type = value_t::boolean; - result.m_value = true; - break; - } - - case lexer::token_type::literal_false: - { - get_token(); - result.m_type = value_t::boolean; - result.m_value = false; - break; - } - - case lexer::token_type::value_number: - { - m_lexer.get_number(result); - get_token(); - break; - } - - default: - { - // the last token was unexpected - unexpect(last_token); + result = basic_json(value_t::discarded); } + return result; } - if (keep and callback and not callback(depth, parse_event_t::value, result)) + /// get next token from lexer + typename lexer::token_type get_token() { - result = basic_json(value_t::discarded); + last_token = m_lexer.scan(); + return last_token; } - return result; - } - /// get next token from lexer - typename lexer::token_type get_token() - { - last_token = m_lexer.scan(); - return last_token; - } - - void expect(typename lexer::token_type t) const - { - if (t != last_token) + void expect(typename lexer::token_type t) const { - std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + - "'") : - lexer::token_type_name(last_token)); - error_msg += "; expected " + lexer::token_type_name(t); + if (t != last_token) + { + std::string error_msg = "parse error - unexpected "; + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : + lexer::token_type_name(last_token)); + error_msg += "; expected " + lexer::token_type_name(t); JSON_THROW(std::invalid_argument(error_msg)); + } } - } - void unexpect(typename lexer::token_type t) const - { - if (t == last_token) + void unexpect(typename lexer::token_type t) const { - std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + - "'") : - lexer::token_type_name(last_token)); + if (t == last_token) + { + std::string error_msg = "parse error - unexpected "; + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : + lexer::token_type_name(last_token)); JSON_THROW(std::invalid_argument(error_msg)); + } } - } - private: - /// current level of recursion - int depth = 0; - /// callback function - const parser_callback_t callback = nullptr; - /// the type of the last read token - typename lexer::token_type last_token = lexer::token_type::uninitialized; - /// the lexer - lexer m_lexer; - }; + private: + /// current level of recursion + int depth = 0; + /// callback function + const parser_callback_t callback = nullptr; + /// the type of the last read token + typename lexer::token_type last_token = lexer::token_type::uninitialized; + /// the lexer + lexer m_lexer; + }; public: /*! @@ -10261,7 +10300,7 @@ class basic_json /// allow basic_json to access private members friend class basic_json; - public: + public: /*! @brief create JSON pointer @@ -10285,573 +10324,573 @@ class basic_json @since version 2.0.0 */ explicit json_pointer(const std::string& s = "") - : reference_tokens(split(s)) - {} + : reference_tokens(split(s)) + {} - /*! - @brief return a string representation of the JSON pointer + /*! + @brief return a string representation of the JSON pointer - @invariant For each JSON pointer `ptr`, it holds: - @code {.cpp} - ptr == json_pointer(ptr.to_string()); - @endcode + @invariant For each JSON pointer `ptr`, it holds: + @code {.cpp} + ptr == json_pointer(ptr.to_string()); + @endcode - @return a string representation of the JSON pointer + @return a string representation of the JSON pointer - @liveexample{The example shows the result of `to_string`., - json_pointer__to_string} + @liveexample{The example shows the result of `to_string`., + json_pointer__to_string} - @since version 2.0.0 - */ - std::string to_string() const noexcept - { - return std::accumulate(reference_tokens.begin(), - reference_tokens.end(), std::string{}, - [](const std::string & a, const std::string & b) + @since version 2.0.0 + */ + std::string to_string() const noexcept { - return a + "/" + escape(b); - }); - } + return std::accumulate(reference_tokens.begin(), + reference_tokens.end(), std::string{}, + [](const std::string & a, const std::string & b) + { + return a + "/" + escape(b); + }); + } - /// @copydoc to_string() - operator std::string() const - { - return to_string(); - } - - private: - /// remove and return last reference pointer - std::string pop_back() - { - if (is_root()) + /// @copydoc to_string() + operator std::string() const { + return to_string(); + } + + private: + /// remove and return last reference pointer + std::string pop_back() + { + if (is_root()) + { JSON_THROW(std::domain_error("JSON pointer has no parent")); + } + + auto last = reference_tokens.back(); + reference_tokens.pop_back(); + return last; } - auto last = reference_tokens.back(); - reference_tokens.pop_back(); - return last; - } - - /// return whether pointer points to the root document - bool is_root() const - { - return reference_tokens.empty(); - } - - json_pointer top() const - { - if (is_root()) + /// return whether pointer points to the root document + bool is_root() const { + return reference_tokens.empty(); + } + + json_pointer top() const + { + if (is_root()) + { JSON_THROW(std::domain_error("JSON pointer has no parent")); - } - - json_pointer result = *this; - result.reference_tokens = {reference_tokens[0]}; - return result; - } - - /*! - @brief create and return a reference to the pointed to value - - @complexity Linear in the number of reference tokens. - */ - reference get_and_create(reference j) const - { - pointer result = &j; - - // in case no reference tokens exist, return a reference to the - // JSON value j which will be overwritten by a primitive value - for (const auto& reference_token : reference_tokens) - { - switch (result->m_type) - { - case value_t::null: - { - if (reference_token == "0") - { - // start a new array if reference token is 0 - result = &result->operator[](0); - } - else - { - // start a new object otherwise - result = &result->operator[](reference_token); - } - break; - } - - case value_t::object: - { - // create an entry in the object - result = &result->operator[](reference_token); - break; - } - - case value_t::array: - { - // create an entry in the array - result = &result->operator[](static_cast<size_type>(std::stoi(reference_token))); - break; - } - - /* - The following code is only reached if there exists a - reference token _and_ the current value is primitive. In - this case, we have an error situation, because primitive - values may only occur as single value; that is, with an - empty list of reference tokens. - */ - default: - { - JSON_THROW(std::domain_error("invalid value to unflatten")); - } - } - } - - return *result; - } - - /*! - @brief return a reference to the pointed to value - - @note This version does not throw if a value is not present, but tries - to create nested values instead. For instance, calling this function - with pointer `"/this/that"` on a null value is equivalent to calling - `operator[]("this").operator[]("that")` on that value, effectively - changing the null value to an object. - - @param[in] ptr a JSON value - - @return reference to the JSON value pointed to by the JSON pointer - - @complexity Linear in the length of the JSON pointer. - - @throw std::out_of_range if the JSON pointer can not be resolved - @throw std::domain_error if an array index begins with '0' - @throw std::invalid_argument if an array index was not a number - */ - reference get_unchecked(pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - // convert null values to arrays or objects before continuing - if (ptr->m_type == value_t::null) - { - // check if reference token is a number - const bool nums = std::all_of(reference_token.begin(), - reference_token.end(), - [](const char x) - { - return std::isdigit(x); - }); - - // change value to array for numbers or "-" or to object - // otherwise - if (nums or reference_token == "-") - { - *ptr = value_t::array; - } - else - { - *ptr = value_t::object; - } } - switch (ptr->m_type) - { - case value_t::object: - { - // use unchecked object access - ptr = &ptr->operator[](reference_token); - break; - } - - case value_t::array: - { - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - if (reference_token == "-") - { - // explicityly treat "-" as index beyond the end - ptr = &ptr->operator[](ptr->m_value.array->size()); - } - else - { - // convert array index to number; unchecked access - ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); - } - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - reference get_checked(pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // note: at performs range check - ptr = &ptr->at(reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" always fails the range check - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // note: at performs range check - ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - /*! - @brief return a const reference to the pointed to value - - @param[in] ptr a JSON value - - @return const reference to the JSON value pointed to by the JSON - pointer - */ - const_reference get_unchecked(const_pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // use unchecked object access - ptr = &ptr->operator[](reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" cannot be used for const access - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // use unchecked array access - ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - const_reference get_checked(const_pointer ptr) const - { - for (const auto& reference_token : reference_tokens) - { - switch (ptr->m_type) - { - case value_t::object: - { - // note: at performs range check - ptr = &ptr->at(reference_token); - break; - } - - case value_t::array: - { - if (reference_token == "-") - { - // "-" always fails the range check - throw std::out_of_range("array index '-' (" + - std::to_string(ptr->m_value.array->size()) + - ") is out of range"); - } - - // error condition (cf. RFC 6901, Sect. 4) - if (reference_token.size() > 1 and reference_token[0] == '0') - { - JSON_THROW(std::domain_error("array index must not begin with '0'")); - } - - // note: at performs range check - ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); - break; - } - - default: - { - JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); - } - } - } - - return *ptr; - } - - /// split the string input to reference tokens - static std::vector<std::string> split(const std::string& reference_string) - { - std::vector<std::string> result; - - // special case: empty reference string -> no reference tokens - if (reference_string.empty()) - { + json_pointer result = *this; + result.reference_tokens = {reference_tokens[0]}; return result; } - // check if nonempty reference string begins with slash - if (reference_string[0] != '/') + /*! + @brief create and return a reference to the pointed to value + + @complexity Linear in the number of reference tokens. + */ + reference get_and_create(reference j) const { + pointer result = &j; + + // in case no reference tokens exist, return a reference to the + // JSON value j which will be overwritten by a primitive value + for (const auto& reference_token : reference_tokens) + { + switch (result->m_type) + { + case value_t::null: + { + if (reference_token == "0") + { + // start a new array if reference token is 0 + result = &result->operator[](0); + } + else + { + // start a new object otherwise + result = &result->operator[](reference_token); + } + break; + } + + case value_t::object: + { + // create an entry in the object + result = &result->operator[](reference_token); + break; + } + + case value_t::array: + { + // create an entry in the array + result = &result->operator[](static_cast<size_type>(std::stoi(reference_token))); + break; + } + + /* + The following code is only reached if there exists a + reference token _and_ the current value is primitive. In + this case, we have an error situation, because primitive + values may only occur as single value; that is, with an + empty list of reference tokens. + */ + default: + { + JSON_THROW(std::domain_error("invalid value to unflatten")); + } + } + } + + return *result; + } + + /*! + @brief return a reference to the pointed to value + + @note This version does not throw if a value is not present, but tries + to create nested values instead. For instance, calling this function + with pointer `"/this/that"` on a null value is equivalent to calling + `operator[]("this").operator[]("that")` on that value, effectively + changing the null value to an object. + + @param[in] ptr a JSON value + + @return reference to the JSON value pointed to by the JSON pointer + + @complexity Linear in the length of the JSON pointer. + + @throw std::out_of_range if the JSON pointer can not be resolved + @throw std::domain_error if an array index begins with '0' + @throw std::invalid_argument if an array index was not a number + */ + reference get_unchecked(pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + // convert null values to arrays or objects before continuing + if (ptr->m_type == value_t::null) + { + // check if reference token is a number + const bool nums = std::all_of(reference_token.begin(), + reference_token.end(), + [](const char x) + { + return std::isdigit(x); + }); + + // change value to array for numbers or "-" or to object + // otherwise + if (nums or reference_token == "-") + { + *ptr = value_t::array; + } + else + { + *ptr = value_t::object; + } + } + + switch (ptr->m_type) + { + case value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case value_t::array: + { + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + if (reference_token == "-") + { + // explicityly treat "-" as index beyond the end + ptr = &ptr->operator[](ptr->m_value.array->size()); + } + else + { + // convert array index to number; unchecked access + ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); + } + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + reference get_checked(pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" always fails the range check + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // note: at performs range check + ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + /*! + @brief return a const reference to the pointed to value + + @param[in] ptr a JSON value + + @return const reference to the JSON value pointed to by the JSON + pointer + */ + const_reference get_unchecked(const_pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" cannot be used for const access + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // use unchecked array access + ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + const_reference get_checked(const_pointer ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case value_t::array: + { + if (reference_token == "-") + { + // "-" always fails the range check + throw std::out_of_range("array index '-' (" + + std::to_string(ptr->m_value.array->size()) + + ") is out of range"); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (reference_token.size() > 1 and reference_token[0] == '0') + { + JSON_THROW(std::domain_error("array index must not begin with '0'")); + } + + // note: at performs range check + ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token))); + break; + } + + default: + { + JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); + } + } + } + + return *ptr; + } + + /// split the string input to reference tokens + static std::vector<std::string> split(const std::string& reference_string) + { + std::vector<std::string> result; + + // special case: empty reference string -> no reference tokens + if (reference_string.empty()) + { + return result; + } + + // check if nonempty reference string begins with slash + if (reference_string[0] != '/') + { JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'")); - } + } - // extract the reference tokens: - // - slash: position of the last read slash (or end of string) - // - start: position after the previous slash - for ( - // search for the first slash after the first character + // extract the reference tokens: + // - slash: position of the last read slash (or end of string) + // - start: position after the previous slash + for ( + // search for the first slash after the first character size_t slash = reference_string.find_first_of('/', 1), - // set the beginning of the first reference token - start = 1; - // we can stop if start == string::npos+1 = 0 - start != 0; - // set the beginning of the next reference token - // (will eventually be 0 if slash == std::string::npos) - start = slash + 1, - // find next slash + // set the beginning of the first reference token + start = 1; + // we can stop if start == string::npos+1 = 0 + start != 0; + // set the beginning of the next reference token + // (will eventually be 0 if slash == std::string::npos) + start = slash + 1, + // find next slash slash = reference_string.find_first_of('/', start)) - { - // use the text between the beginning of the reference token - // (start) and the last slash (slash). - auto reference_token = reference_string.substr(start, slash - start); + { + // use the text between the beginning of the reference token + // (start) and the last slash (slash). + auto reference_token = reference_string.substr(start, slash - start); - // check reference tokens are properly escaped + // check reference tokens are properly escaped for (size_t pos = reference_token.find_first_of('~'); - pos != std::string::npos; + pos != std::string::npos; pos = reference_token.find_first_of('~', pos + 1)) - { - assert(reference_token[pos] == '~'); - - // ~ must be followed by 0 or 1 - if (pos == reference_token.size() - 1 or - (reference_token[pos + 1] != '0' and - reference_token[pos + 1] != '1')) { + assert(reference_token[pos] == '~'); + + // ~ must be followed by 0 or 1 + if (pos == reference_token.size() - 1 or + (reference_token[pos + 1] != '0' and + reference_token[pos + 1] != '1')) + { JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'")); - } - } - - // finally, store the reference token - unescape(reference_token); - result.push_back(reference_token); - } - - return result; - } - - private: - /*! - @brief replace all occurrences of a substring by another string - - @param[in,out] s the string to manipulate; changed so that all - occurrences of @a f are replaced with @a t - @param[in] f the substring to replace with @a t - @param[in] t the string to replace @a f - - @pre The search string @a f must not be empty. - - @since version 2.0.0 - */ - static void replace_substring(std::string& s, - const std::string& f, - const std::string& t) - { - assert(not f.empty()); - - for ( - size_t pos = s.find(f); // find first occurrence of f - pos != std::string::npos; // make sure f was found - s.replace(pos, f.size(), t), // replace with t - pos = s.find(f, pos + t.size()) // find next occurrence of f - ); - } - - /// escape tilde and slash - static std::string escape(std::string s) - { - // escape "~"" to "~0" and "/" to "~1" - replace_substring(s, "~", "~0"); - replace_substring(s, "/", "~1"); - return s; - } - - /// unescape tilde and slash - static void unescape(std::string& s) - { - // first transform any occurrence of the sequence '~1' to '/' - replace_substring(s, "~1", "/"); - // then transform any occurrence of the sequence '~0' to '~' - replace_substring(s, "~0", "~"); - } - - /*! - @param[in] reference_string the reference string to the current value - @param[in] value the value to consider - @param[in,out] result the result object to insert values to - - @note Empty objects or arrays are flattened to `null`. - */ - static void flatten(const std::string& reference_string, - const basic_json& value, - basic_json& result) - { - switch (value.m_type) - { - case value_t::array: - { - if (value.m_value.array->empty()) - { - // flatten empty array as null - result[reference_string] = nullptr; - } - else - { - // iterate array and use index as reference string - for (size_t i = 0; i < value.m_value.array->size(); ++i) - { - flatten(reference_string + "/" + std::to_string(i), - value.m_value.array->operator[](i), result); } } - break; + + // finally, store the reference token + unescape(reference_token); + result.push_back(reference_token); } - case value_t::object: + return result; + } + + private: + /*! + @brief replace all occurrences of a substring by another string + + @param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t + @param[in] f the substring to replace with @a t + @param[in] t the string to replace @a f + + @pre The search string @a f must not be empty. + + @since version 2.0.0 + */ + static void replace_substring(std::string& s, + const std::string& f, + const std::string& t) + { + assert(not f.empty()); + + for ( + size_t pos = s.find(f); // find first occurrence of f + pos != std::string::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t + pos = s.find(f, pos + t.size()) // find next occurrence of f + ); + } + + /// escape tilde and slash + static std::string escape(std::string s) + { + // escape "~"" to "~0" and "/" to "~1" + replace_substring(s, "~", "~0"); + replace_substring(s, "/", "~1"); + return s; + } + + /// unescape tilde and slash + static void unescape(std::string& s) + { + // first transform any occurrence of the sequence '~1' to '/' + replace_substring(s, "~1", "/"); + // then transform any occurrence of the sequence '~0' to '~' + replace_substring(s, "~0", "~"); + } + + /*! + @param[in] reference_string the reference string to the current value + @param[in] value the value to consider + @param[in,out] result the result object to insert values to + + @note Empty objects or arrays are flattened to `null`. + */ + static void flatten(const std::string& reference_string, + const basic_json& value, + basic_json& result) + { + switch (value.m_type) { - if (value.m_value.object->empty()) + case value_t::array: { - // flatten empty object as null - result[reference_string] = nullptr; - } - else - { - // iterate object and use keys as reference string - for (const auto& element : *value.m_value.object) + if (value.m_value.array->empty()) { - flatten(reference_string + "/" + escape(element.first), - element.second, result); + // flatten empty array as null + result[reference_string] = nullptr; } + else + { + // iterate array and use index as reference string + for (size_t i = 0; i < value.m_value.array->size(); ++i) + { + flatten(reference_string + "/" + std::to_string(i), + value.m_value.array->operator[](i), result); + } + } + break; } - break; - } - default: - { - // add primitive value with its reference string - result[reference_string] = value; - break; + case value_t::object: + { + if (value.m_value.object->empty()) + { + // flatten empty object as null + result[reference_string] = nullptr; + } + else + { + // iterate object and use keys as reference string + for (const auto& element : *value.m_value.object) + { + flatten(reference_string + "/" + escape(element.first), + element.second, result); + } + } + break; + } + + default: + { + // add primitive value with its reference string + result[reference_string] = value; + break; + } } } - } - /*! - @param[in] value flattened JSON + /*! + @param[in] value flattened JSON - @return unflattened JSON - */ - static basic_json unflatten(const basic_json& value) - { - if (not value.is_object()) + @return unflattened JSON + */ + static basic_json unflatten(const basic_json& value) { + if (not value.is_object()) + { JSON_THROW(std::domain_error("only objects can be unflattened")); - } - - basic_json result; - - // iterate the JSON object values - for (const auto& element : *value.m_value.object) - { - if (not element.second.is_primitive()) - { - JSON_THROW(std::domain_error("values in object must be primitive")); } - // assign value to reference pointed to by JSON pointer; Note - // that if the JSON pointer is "" (i.e., points to the whole - // value), function get_and_create returns a reference to - // result itself. An assignment will then create a primitive - // value. - json_pointer(element.first).get_and_create(result) = element.second; + basic_json result; + + // iterate the JSON object values + for (const auto& element : *value.m_value.object) + { + if (not element.second.is_primitive()) + { + JSON_THROW(std::domain_error("values in object must be primitive")); + } + + // assign value to reference pointed to by JSON pointer; Note + // that if the JSON pointer is "" (i.e., points to the whole + // value), function get_and_create returns a reference to + // result itself. An assignment will then create a primitive + // value. + json_pointer(element.first).get_and_create(result) = element.second; + } + + return result; } - return result; - } + private: + friend bool operator==(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return lhs.reference_tokens == rhs.reference_tokens; + } - private: - friend bool operator==(json_pointer const &lhs, - json_pointer const &rhs) noexcept - { - return lhs.reference_tokens == rhs.reference_tokens; - } + friend bool operator!=(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return !(lhs == rhs); + } - friend bool operator!=(json_pointer const &lhs, - json_pointer const &rhs) noexcept - { - return !(lhs == rhs); - } - - /// the reference tokens - std::vector<std::string> reference_tokens {}; + /// the reference tokens + std::vector<std::string> reference_tokens {}; }; ////////////////////////// @@ -11527,25 +11566,26 @@ Returns an ordering that is similar to Python: */ inline bool operator<(const value_t lhs, const value_t rhs) noexcept { - static constexpr std::array<uint8_t, 8> order = {{ - 0, // null - 3, // object - 4, // array - 5, // string - 1, // boolean - 2, // integer - 2, // unsigned - 2, // float - }}; + static constexpr std::array<uint8_t, 8> order = {{ + 0, // null + 3, // object + 4, // array + 5, // string + 1, // boolean + 2, // integer + 2, // unsigned + 2, // float + } + }; - // discarded values are not comparable - if (lhs == value_t::discarded or rhs == value_t::discarded) - { - return false; - } + // discarded values are not comparable + if (lhs == value_t::discarded or rhs == value_t::discarded) + { + return false; + } - return order[static_cast<std::size_t>(lhs)] < - order[static_cast<std::size_t>(rhs)]; + return order[static_cast<std::size_t>(lhs)] < + order[static_cast<std::size_t>(rhs)]; } ///////////// @@ -11570,38 +11610,38 @@ using json = basic_json<>; // specialization of std::swap, and std::hash namespace std +{ +/*! +@brief exchanges the values of two JSON objects + +@since version 1.0.0 +*/ +template<> +inline void swap(nlohmann::json& j1, + nlohmann::json& j2) noexcept( + is_nothrow_move_constructible<nlohmann::json>::value and + is_nothrow_move_assignable<nlohmann::json>::value + ) +{ + j1.swap(j2); +} + +/// hash value for JSON objects +template<> +struct hash<nlohmann::json> { /*! - @brief exchanges the values of two JSON objects + @brief return a hash value for a JSON object @since version 1.0.0 */ - template<> - inline void swap(nlohmann::json& j1, - nlohmann::json& j2) noexcept( - is_nothrow_move_constructible<nlohmann::json>::value and - is_nothrow_move_assignable<nlohmann::json>::value - ) - { - j1.swap(j2); - } - - /// hash value for JSON objects - template<> - struct hash<nlohmann::json> - { - /*! - @brief return a hash value for a JSON object - - @since version 1.0.0 - */ - std::size_t operator()(const nlohmann::json& j) const + std::size_t operator()(const nlohmann::json& j) const { // a naive hashing via the string representation const auto& h = hash<nlohmann::json::string_t>(); return h(j.dump()); } - }; +}; } // namespace std /*! diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp index 73b686d84..3c4d8bef4 100644 --- a/test/src/unit-conversions.cpp +++ b/test/src/unit-conversions.cpp @@ -177,10 +177,10 @@ TEST_CASE("value conversion") SECTION("reserve is called on containers that supports it") { - // making the call to from_json throw in order to check capacity - std::vector<float> v; - CHECK_THROWS_AS(nlohmann::from_json(j, v), std::logic_error); - CHECK(v.capacity() == j.size()); + // making the call to from_json throw in order to check capacity + std::vector<float> v; + CHECK_THROWS_AS(nlohmann::from_json(j, v), std::logic_error); + CHECK(v.capacity() == j.size()); } } diff --git a/test/src/unit-noexcept.cpp b/test/src/unit-noexcept.cpp index de13e0578..b939db4e8 100644 --- a/test/src/unit-noexcept.cpp +++ b/test/src/unit-noexcept.cpp @@ -11,8 +11,8 @@ enum test struct pod {}; struct pod_bis {}; -void to_json(json &, pod) noexcept; -void to_json(json &, pod_bis); +void to_json(json&, pod) noexcept; +void to_json(json&, pod_bis); void from_json(const json&, pod) noexcept; void from_json(const json&, pod_bis); static json j; diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp index 07055bc17..6a5e0c64c 100644 --- a/test/src/unit-regression.cpp +++ b/test/src/unit-regression.cpp @@ -63,7 +63,7 @@ TEST_CASE("regression tests") SECTION("pull request #71 - handle enum type") { - enum { t = 0 , u = 1}; + enum { t = 0, u = 1}; json j = json::array(); j.push_back(t); diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 0590a8e52..35f864406 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -114,22 +114,22 @@ void to_json(Json& j, country c) } template <typename Json> -void to_json(Json& j, const person & p) +void to_json(Json& j, const person& p) { j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}}; } -void to_json(nlohmann::json& j, const address & a) +void to_json(nlohmann::json& j, const address& a) { j = a.m_val; } -void to_json(nlohmann::json& j, const contact & c) +void to_json(nlohmann::json& j, const contact& c) { j = json{{"person", c.m_person}, {"address", c.m_address}}; } -void to_json(nlohmann::json& j, const contact_book & cb) +void to_json(nlohmann::json& j, const contact_book& cb) { j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}}; } @@ -140,28 +140,28 @@ bool operator==(age lhs, age rhs) return lhs.m_val == rhs.m_val; } -bool operator==(const address & lhs, const address & rhs) +bool operator==(const address& lhs, const address& rhs) { return lhs.m_val == rhs.m_val; } -bool operator==(const name & lhs, const name & rhs) +bool operator==(const name& lhs, const name& rhs) { return lhs.m_val == rhs.m_val; } -bool operator==(const person & lhs, const person & rhs) +bool operator==(const person& lhs, const person& rhs) { return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age); } -bool operator==(const contact & lhs, const contact & rhs) +bool operator==(const contact& lhs, const contact& rhs) { return std::tie(lhs.m_person, lhs.m_address) == std::tie(rhs.m_person, rhs.m_address); } -bool operator==(const contact_book & lhs, const contact_book & rhs) +bool operator==(const contact_book& lhs, const contact_book& rhs) { return std::tie(lhs.m_book_name, lhs.m_contacts) == std::tie(rhs.m_book_name, rhs.m_contacts); @@ -172,19 +172,19 @@ bool operator==(const contact_book & lhs, const contact_book & rhs) namespace udt { template <typename Json> -void from_json(const Json & j, age& a) +void from_json(const Json& j, age& a) { a.m_val = j.template get<int>(); } template <typename Json> -void from_json(const Json & j, name& n) +void from_json(const Json& j, name& n) { n.m_val = j.template get<std::string>(); } template <typename Json> -void from_json(const Json & j, country& c) +void from_json(const Json& j, country& c) { const auto str = j.template get<std::string>(); static const std::map<std::string, country> m = @@ -200,25 +200,25 @@ void from_json(const Json & j, country& c) } template <typename Json> -void from_json(const Json & j, person& p) +void from_json(const Json& j, person& p) { p.m_age = j["age"].template get<age>(); p.m_name = j["name"].template get<name>(); p.m_country = j["country"].template get<country>(); } -void from_json(const nlohmann::json & j, address& a) +void from_json(const nlohmann::json& j, address& a) { a.m_val = j.get<std::string>(); } -void from_json(const nlohmann::json & j, contact& c) +void from_json(const nlohmann::json& j, contact& c) { c.m_person = j["person"].get<person>(); c.m_address = j["address"].get<address>(); } -void from_json(const nlohmann::json & j, contact_book& cb) +void from_json(const nlohmann::json& j, contact_book& cb) { cb.m_book_name = j["name"].get<name>(); cb.m_contacts = j["contacts"].get<std::vector<contact>>(); @@ -297,7 +297,7 @@ namespace nlohmann template <typename T> struct adl_serializer<std::shared_ptr<T>> { - static void to_json(json& j, const std::shared_ptr<T> & opt) + static void to_json(json& j, const std::shared_ptr<T>& opt) { if (opt) { @@ -309,7 +309,7 @@ struct adl_serializer<std::shared_ptr<T>> } } - static void from_json(const json & j, std::shared_ptr<T>& opt) + static void from_json(const json& j, std::shared_ptr<T>& opt) { if (j.is_null()) { @@ -325,12 +325,12 @@ struct adl_serializer<std::shared_ptr<T>> template <> struct adl_serializer<udt::legacy_type> { - static void to_json(json& j, const udt::legacy_type & l) + static void to_json(json& j, const udt::legacy_type& l) { j = std::stoi(l.number); } - static void from_json(const json & j, udt::legacy_type& l) + static void from_json(const json& j, udt::legacy_type& l) { l.number = std::to_string(j.get<int>()); } @@ -394,21 +394,21 @@ namespace nlohmann template <> struct adl_serializer<std::vector<float>> { - using type = std::vector<float>; - static void to_json(json& j, const type &) + using type = std::vector<float>; + static void to_json(json& j, const type&) { - j = "hijacked!"; + j = "hijacked!"; } - static void from_json(const json &, type& opt) + static void from_json(const json&, type& opt) { - opt = {42.0, 42.0, 42.0}; + opt = {42.0, 42.0, 42.0}; } // preferred version - static type from_json(const json &) + static type from_json(const json&) { - return {4.0, 5.0, 6.0}; + return {4.0, 5.0, 6.0}; } }; } @@ -419,7 +419,7 @@ TEST_CASE("even supported types can be specialized", "[udt]") CHECK(j.dump() == R"("hijacked!")"); auto f = j.get<std::vector<float>>(); // the single argument from_json method is preferred - CHECK((f == std::vector<float>{4.0, 5.0, 6.0})); + CHECK((f == std::vector<float> {4.0, 5.0, 6.0})); } namespace nlohmann @@ -427,7 +427,7 @@ namespace nlohmann template <typename T> struct adl_serializer<std::unique_ptr<T>> { - static void to_json(json& j, const std::unique_ptr<T> & opt) + static void to_json(json& j, const std::unique_ptr<T>& opt) { if (opt) { @@ -440,7 +440,7 @@ struct adl_serializer<std::unique_ptr<T>> } // this is the overload needed for non-copyable types, - static std::unique_ptr<T> from_json(const json & j) + static std::unique_ptr<T> from_json(const json& j) { if (j.is_null()) { @@ -491,64 +491,64 @@ TEST_CASE("Non-copyable types", "[udt]") template <typename T, typename = void> struct pod_serializer { - // use adl for non-pods, or scalar types - template < - typename Json, typename U = T, - typename std::enable_if< - not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0> - static void from_json(const Json &j, U &t) - { - using nlohmann::from_json; - from_json(j, t); - } + // use adl for non-pods, or scalar types + template < + typename Json, typename U = T, + typename std::enable_if < + not(std::is_pod<U>::value and std::is_class<U>::value), int >::type = 0 > + static void from_json(const Json& j, U& t) + { + using nlohmann::from_json; + from_json(j, t); + } - // special behaviour for pods - template <typename Json, typename U = T, - typename std::enable_if< - std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> - static void from_json(const Json &j, U &t) - { - std::uint64_t value; - // TODO The following block is no longer relevant in this serializer, make another one that shows the issue - // the problem arises only when one from_json method is defined without any constraint - // - // Why cannot we simply use: j.get<std::uint64_t>() ? - // Well, with the current experiment, the get method looks for a from_json - // function, which we are currently defining! - // This would end up in a stack overflow. Calling nlohmann::from_json is a - // workaround (is it?). - // I shall find a good way to avoid this once all constructors are converted - // to free methods - // - // In short, constructing a json by constructor calls to_json - // calling get calls from_json, for now, we cannot do this in custom - // serializers - nlohmann::from_json(j, value); - auto bytes = static_cast<char *>(static_cast<void *>(&value)); - std::memcpy(&t, bytes, sizeof(value)); - } + // special behaviour for pods + template <typename Json, typename U = T, + typename std::enable_if< + std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> + static void from_json(const Json& j, U& t) + { + std::uint64_t value; + // TODO The following block is no longer relevant in this serializer, make another one that shows the issue + // the problem arises only when one from_json method is defined without any constraint + // + // Why cannot we simply use: j.get<std::uint64_t>() ? + // Well, with the current experiment, the get method looks for a from_json + // function, which we are currently defining! + // This would end up in a stack overflow. Calling nlohmann::from_json is a + // workaround (is it?). + // I shall find a good way to avoid this once all constructors are converted + // to free methods + // + // In short, constructing a json by constructor calls to_json + // calling get calls from_json, for now, we cannot do this in custom + // serializers + nlohmann::from_json(j, value); + auto bytes = static_cast<char*>(static_cast<void*>(&value)); + std::memcpy(&t, bytes, sizeof(value)); + } - template < - typename Json, typename U = T, - typename std::enable_if< - not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0> - static void to_json(Json &j, const T &t) - { - using nlohmann::to_json; - to_json(j, t); - } + template < + typename Json, typename U = T, + typename std::enable_if < + not(std::is_pod<U>::value and std::is_class<U>::value), int >::type = 0 > + static void to_json(Json& j, const T& t) + { + using nlohmann::to_json; + to_json(j, t); + } - template <typename Json, typename U = T, - typename std::enable_if< - std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> - static void to_json(Json &j, const T &t) noexcept - { - auto bytes = static_cast< const unsigned char*>(static_cast<const void *>(&t)); - std::uint64_t value = bytes[0]; - for (auto i = 1; i < 8; ++i) - value |= std::uint64_t{bytes[i]} << 8 * i; - nlohmann::to_json(j, value); - } + template <typename Json, typename U = T, + typename std::enable_if< + std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> + static void to_json(Json& j, const T& t) noexcept + { + auto bytes = static_cast< const unsigned char*>(static_cast<const void*>(&t)); + std::uint64_t value = bytes[0]; + for (auto i = 1; i < 8; ++i) + value |= std::uint64_t{bytes[i]} << 8 * i; + nlohmann::to_json(j, value); + } }; namespace udt @@ -562,19 +562,19 @@ struct small_pod struct non_pod { - std::string s; + std::string s; }; template <typename Json> -void to_json(Json& j, const non_pod & np) +void to_json(Json& j, const non_pod& np) { - j = np.s; + j = np.s; } template <typename Json> -void from_json(const Json & j, non_pod& np) +void from_json(const Json& j, non_pod& np) { - np.s = j.template get<std::string>(); + np.s = j.template get<std::string>(); } bool operator==(small_pod lhs, small_pod rhs) noexcept @@ -583,35 +583,35 @@ bool operator==(small_pod lhs, small_pod rhs) noexcept std::tie(rhs.begin, rhs.middle, rhs.end); } -bool operator==(const non_pod &lhs, const non_pod &rhs) noexcept +bool operator==(const non_pod& lhs, const non_pod& rhs) noexcept { - return lhs.s == rhs.s; + return lhs.s == rhs.s; } std::ostream& operator<<(std::ostream& os, small_pod l) { - return os << "begin: " << l.begin << ", middle: " << l.middle << ", end: " << l.end; + return os << "begin: " << l.begin << ", middle: " << l.middle << ", end: " << l.end; } } TEST_CASE("custom serializer for pods", "[udt]") { - using custom_json = - nlohmann::basic_json<std::map, std::vector, std::string, bool, - std::int64_t, std::uint64_t, double, std::allocator, - pod_serializer>; + using custom_json = + nlohmann::basic_json<std::map, std::vector, std::string, bool, + std::int64_t, std::uint64_t, double, std::allocator, + pod_serializer>; - auto p = udt::small_pod{42, '/', 42}; - custom_json j = p; + auto p = udt::small_pod{42, '/', 42}; + custom_json j = p; - auto p2 = j.get<udt::small_pod>(); + auto p2 = j.get<udt::small_pod>(); - CHECK(p == p2); + CHECK(p == p2); - auto np = udt::non_pod{{"non-pod"}}; - custom_json j2 = np; - auto np2 = j2.get<udt::non_pod>(); - CHECK(np == np2); + auto np = udt::non_pod{{"non-pod"}}; + custom_json j2 = np; + auto np2 = j2.get<udt::non_pod>(); + CHECK(np == np2); } template <typename T, typename> @@ -622,13 +622,13 @@ using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, boo template <typename T, typename> struct another_adl_serializer { - static void from_json(const custom_json & j , T& t) + static void from_json(const custom_json& j, T& t) { using nlohmann::from_json; from_json(j, t); } - static void to_json(custom_json& j , const T & t) + static void to_json(custom_json& j, const T& t) { using nlohmann::to_json; to_json(j, t); From 447c6a670f1d058ee37865107d2fccda1d207588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Tue, 17 Jan 2017 10:39:14 +0100 Subject: [PATCH 095/130] run make re2c --- src/json.hpp | 1338 ++++++++++++++++---------------------------------- 1 file changed, 430 insertions(+), 908 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index fc7b60f20..62779059c 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -9462,915 +9462,437 @@ class basic_json m_start = m_cursor; assert(m_start != nullptr); - - { - lexer_char_t yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = - { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 160, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - if ((m_limit - m_cursor) < 5) - { - fill_line_buffer(5); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; - } - if (yych <= '[') - { - if (yych <= '-') - { - if (yych <= '"') - { - if (yych <= 0x00) - { - goto basic_json_parser_2; - } - if (yych <= '!') - { - goto basic_json_parser_4; - } - goto basic_json_parser_9; - } - else - { - if (yych <= '+') - { - goto basic_json_parser_4; - } - if (yych <= ',') - { - goto basic_json_parser_10; - } - goto basic_json_parser_12; - } - } - else - { - if (yych <= '9') - { - if (yych <= '/') - { - goto basic_json_parser_4; - } - if (yych <= '0') - { - goto basic_json_parser_13; - } - goto basic_json_parser_15; - } - else - { - if (yych <= ':') - { - goto basic_json_parser_17; - } - if (yych <= 'Z') - { - goto basic_json_parser_4; - } - goto basic_json_parser_19; - } - } - } - else - { - if (yych <= 'n') - { - if (yych <= 'e') - { - if (yych == ']') - { - goto basic_json_parser_21; - } - goto basic_json_parser_4; - } - else - { - if (yych <= 'f') - { - goto basic_json_parser_23; - } - if (yych <= 'm') - { - goto basic_json_parser_4; - } - goto basic_json_parser_24; - } - } - else - { - if (yych <= 'z') - { - if (yych == 't') - { - goto basic_json_parser_25; - } - goto basic_json_parser_4; - } - else - { - if (yych <= '{') - { - goto basic_json_parser_26; - } - if (yych == '}') - { - goto basic_json_parser_28; - } - goto basic_json_parser_4; - } - } - } -basic_json_parser_2: - ++m_cursor; - { - last_token_type = token_type::end_of_input; - break; - } -basic_json_parser_4: - ++m_cursor; -basic_json_parser_5: - { - last_token_type = token_type::parse_error; - break; - } -basic_json_parser_6: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; - } - { - continue; - } -basic_json_parser_9: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych <= 0x1F) - { - goto basic_json_parser_5; - } - if (yych <= 0x7F) - { - goto basic_json_parser_31; - } - if (yych <= 0xC1) - { - goto basic_json_parser_5; - } - if (yych <= 0xF4) - { - goto basic_json_parser_31; - } - goto basic_json_parser_5; -basic_json_parser_10: - ++m_cursor; - { - last_token_type = token_type::value_separator; - break; - } -basic_json_parser_12: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_5; - } - if (yych <= '0') - { - goto basic_json_parser_13; - } - if (yych <= '9') - { - goto basic_json_parser_15; - } - goto basic_json_parser_5; -basic_json_parser_13: - yyaccept = 1; - yych = *(m_marker = ++m_cursor); - if (yych <= 'D') - { - if (yych == '.') - { - goto basic_json_parser_43; - } - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - } -basic_json_parser_14: - { - last_token_type = token_type::value_number; - break; - } -basic_json_parser_15: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - fill_line_buffer(3); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 64) - { - goto basic_json_parser_15; - } - if (yych <= 'D') - { - if (yych == '.') - { - goto basic_json_parser_43; - } - goto basic_json_parser_14; - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - goto basic_json_parser_14; - } -basic_json_parser_17: - ++m_cursor; - { - last_token_type = token_type::name_separator; - break; - } -basic_json_parser_19: - ++m_cursor; - { - last_token_type = token_type::begin_array; - break; - } -basic_json_parser_21: - ++m_cursor; - { - last_token_type = token_type::end_array; - break; - } -basic_json_parser_23: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'a') - { - goto basic_json_parser_45; - } - goto basic_json_parser_5; -basic_json_parser_24: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'u') - { - goto basic_json_parser_46; - } - goto basic_json_parser_5; -basic_json_parser_25: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'r') - { - goto basic_json_parser_47; - } - goto basic_json_parser_5; -basic_json_parser_26: - ++m_cursor; - { - last_token_type = token_type::begin_object; - break; - } -basic_json_parser_28: - ++m_cursor; - { - last_token_type = token_type::end_object; - break; - } -basic_json_parser_30: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; -basic_json_parser_31: - if (yybm[0 + yych] & 128) - { - goto basic_json_parser_30; - } - if (yych <= 0xE0) - { - if (yych <= '\\') - { - if (yych <= 0x1F) - { - goto basic_json_parser_32; - } - if (yych <= '"') - { - goto basic_json_parser_33; - } - goto basic_json_parser_35; - } - else - { - if (yych <= 0xC1) - { - goto basic_json_parser_32; - } - if (yych <= 0xDF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_37; - } - } - else - { - if (yych <= 0xEF) - { - if (yych == 0xED) - { - goto basic_json_parser_39; - } - goto basic_json_parser_38; - } - else - { - if (yych <= 0xF0) - { - goto basic_json_parser_40; - } - if (yych <= 0xF3) - { - goto basic_json_parser_41; - } - if (yych <= 0xF4) - { - goto basic_json_parser_42; - } - } - } -basic_json_parser_32: - m_cursor = m_marker; - if (yyaccept == 0) - { - goto basic_json_parser_5; - } - else - { - goto basic_json_parser_14; - } -basic_json_parser_33: - ++m_cursor; - { - last_token_type = token_type::value_string; - break; - } -basic_json_parser_35: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 'e') - { - if (yych <= '/') - { - if (yych == '"') - { - goto basic_json_parser_30; - } - if (yych <= '.') - { - goto basic_json_parser_32; - } - goto basic_json_parser_30; - } - else - { - if (yych <= '\\') - { - if (yych <= '[') - { - goto basic_json_parser_32; - } - goto basic_json_parser_30; - } - else - { - if (yych == 'b') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - } - } - else - { - if (yych <= 'q') - { - if (yych <= 'f') - { - goto basic_json_parser_30; - } - if (yych == 'n') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 's') - { - if (yych <= 'r') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 't') - { - goto basic_json_parser_30; - } - if (yych <= 'u') - { - goto basic_json_parser_48; - } - goto basic_json_parser_32; - } - } - } -basic_json_parser_36: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; -basic_json_parser_37: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x9F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_32; -basic_json_parser_38: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_32; -basic_json_parser_39: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0x9F) - { - goto basic_json_parser_36; - } - goto basic_json_parser_32; -basic_json_parser_40: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x8F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_38; - } - goto basic_json_parser_32; -basic_json_parser_41: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_38; - } - goto basic_json_parser_32; -basic_json_parser_42: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0x8F) - { - goto basic_json_parser_38; - } - goto basic_json_parser_32; -basic_json_parser_43: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_49; - } - goto basic_json_parser_32; -basic_json_parser_44: - yych = *++m_cursor; - if (yych <= ',') - { - if (yych == '+') - { - goto basic_json_parser_51; - } - goto basic_json_parser_32; - } - else - { - if (yych <= '-') - { - goto basic_json_parser_51; - } - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_52; - } - goto basic_json_parser_32; - } -basic_json_parser_45: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_54; - } - goto basic_json_parser_32; -basic_json_parser_46: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_55; - } - goto basic_json_parser_32; -basic_json_parser_47: - yych = *++m_cursor; - if (yych == 'u') - { - goto basic_json_parser_56; - } - goto basic_json_parser_32; -basic_json_parser_48: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_57; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_57; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_57; - } - goto basic_json_parser_32; - } -basic_json_parser_49: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - fill_line_buffer(3); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 'D') - { - if (yych <= '/') - { - goto basic_json_parser_14; - } - if (yych <= '9') - { - goto basic_json_parser_49; - } - goto basic_json_parser_14; - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - goto basic_json_parser_14; - } -basic_json_parser_51: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych >= ':') - { - goto basic_json_parser_32; - } -basic_json_parser_52: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '/') - { - goto basic_json_parser_14; - } - if (yych <= '9') - { - goto basic_json_parser_52; - } - goto basic_json_parser_14; -basic_json_parser_54: - yych = *++m_cursor; - if (yych == 's') - { - goto basic_json_parser_58; - } - goto basic_json_parser_32; -basic_json_parser_55: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_59; - } - goto basic_json_parser_32; -basic_json_parser_56: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_61; - } - goto basic_json_parser_32; -basic_json_parser_57: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_63; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_63; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_63; - } - goto basic_json_parser_32; - } -basic_json_parser_58: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_64; - } - goto basic_json_parser_32; -basic_json_parser_59: - ++m_cursor; - { - last_token_type = token_type::literal_null; - break; - } -basic_json_parser_61: - ++m_cursor; - { - last_token_type = token_type::literal_true; - break; - } -basic_json_parser_63: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_66; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_66; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_66; - } - goto basic_json_parser_32; - } -basic_json_parser_64: - ++m_cursor; - { - last_token_type = token_type::literal_false; - break; - } -basic_json_parser_66: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_30; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } + + { + lexer_char_t yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yybm[0+yych] & 32) { + goto basic_json_parser_6; + } + if (yych <= '[') { + if (yych <= '-') { + if (yych <= '"') { + if (yych <= 0x00) goto basic_json_parser_2; + if (yych <= '!') goto basic_json_parser_4; + goto basic_json_parser_9; + } else { + if (yych <= '+') goto basic_json_parser_4; + if (yych <= ',') goto basic_json_parser_10; + goto basic_json_parser_12; } + } else { + if (yych <= '9') { + if (yych <= '/') goto basic_json_parser_4; + if (yych <= '0') goto basic_json_parser_13; + goto basic_json_parser_15; + } else { + if (yych <= ':') goto basic_json_parser_17; + if (yych <= 'Z') goto basic_json_parser_4; + goto basic_json_parser_19; + } + } + } else { + if (yych <= 'n') { + if (yych <= 'e') { + if (yych == ']') goto basic_json_parser_21; + goto basic_json_parser_4; + } else { + if (yych <= 'f') goto basic_json_parser_23; + if (yych <= 'm') goto basic_json_parser_4; + goto basic_json_parser_24; + } + } else { + if (yych <= 'z') { + if (yych == 't') goto basic_json_parser_25; + goto basic_json_parser_4; + } else { + if (yych <= '{') goto basic_json_parser_26; + if (yych == '}') goto basic_json_parser_28; + goto basic_json_parser_4; + } + } + } +basic_json_parser_2: + ++m_cursor; + { last_token_type = token_type::end_of_input; break; } +basic_json_parser_4: + ++m_cursor; +basic_json_parser_5: + { last_token_type = token_type::parse_error; break; } +basic_json_parser_6: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yybm[0+yych] & 32) { + goto basic_json_parser_6; + } + { continue; } +basic_json_parser_9: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych <= 0x1F) goto basic_json_parser_5; + if (yych <= 0x7F) goto basic_json_parser_31; + if (yych <= 0xC1) goto basic_json_parser_5; + if (yych <= 0xF4) goto basic_json_parser_31; + goto basic_json_parser_5; +basic_json_parser_10: + ++m_cursor; + { last_token_type = token_type::value_separator; break; } +basic_json_parser_12: + yych = *++m_cursor; + if (yych <= '/') goto basic_json_parser_5; + if (yych <= '0') goto basic_json_parser_13; + if (yych <= '9') goto basic_json_parser_15; + goto basic_json_parser_5; +basic_json_parser_13: + yyaccept = 1; + yych = *(m_marker = ++m_cursor); + if (yych <= 'D') { + if (yych == '.') goto basic_json_parser_43; + } else { + if (yych <= 'E') goto basic_json_parser_44; + if (yych == 'e') goto basic_json_parser_44; + } +basic_json_parser_14: + { last_token_type = token_type::value_number; break; } +basic_json_parser_15: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yybm[0+yych] & 64) { + goto basic_json_parser_15; + } + if (yych <= 'D') { + if (yych == '.') goto basic_json_parser_43; + goto basic_json_parser_14; + } else { + if (yych <= 'E') goto basic_json_parser_44; + if (yych == 'e') goto basic_json_parser_44; + goto basic_json_parser_14; + } +basic_json_parser_17: + ++m_cursor; + { last_token_type = token_type::name_separator; break; } +basic_json_parser_19: + ++m_cursor; + { last_token_type = token_type::begin_array; break; } +basic_json_parser_21: + ++m_cursor; + { last_token_type = token_type::end_array; break; } +basic_json_parser_23: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'a') goto basic_json_parser_45; + goto basic_json_parser_5; +basic_json_parser_24: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'u') goto basic_json_parser_46; + goto basic_json_parser_5; +basic_json_parser_25: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'r') goto basic_json_parser_47; + goto basic_json_parser_5; +basic_json_parser_26: + ++m_cursor; + { last_token_type = token_type::begin_object; break; } +basic_json_parser_28: + ++m_cursor; + { last_token_type = token_type::end_object; break; } +basic_json_parser_30: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; +basic_json_parser_31: + if (yybm[0+yych] & 128) { + goto basic_json_parser_30; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x1F) goto basic_json_parser_32; + if (yych <= '"') goto basic_json_parser_33; + goto basic_json_parser_35; + } else { + if (yych <= 0xC1) goto basic_json_parser_32; + if (yych <= 0xDF) goto basic_json_parser_36; + goto basic_json_parser_37; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) goto basic_json_parser_39; + goto basic_json_parser_38; + } else { + if (yych <= 0xF0) goto basic_json_parser_40; + if (yych <= 0xF3) goto basic_json_parser_41; + if (yych <= 0xF4) goto basic_json_parser_42; + } + } +basic_json_parser_32: + m_cursor = m_marker; + if (yyaccept == 0) { + goto basic_json_parser_5; + } else { + goto basic_json_parser_14; + } +basic_json_parser_33: + ++m_cursor; + { last_token_type = token_type::value_string; break; } +basic_json_parser_35: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 'e') { + if (yych <= '/') { + if (yych == '"') goto basic_json_parser_30; + if (yych <= '.') goto basic_json_parser_32; + goto basic_json_parser_30; + } else { + if (yych <= '\\') { + if (yych <= '[') goto basic_json_parser_32; + goto basic_json_parser_30; + } else { + if (yych == 'b') goto basic_json_parser_30; + goto basic_json_parser_32; + } + } + } else { + if (yych <= 'q') { + if (yych <= 'f') goto basic_json_parser_30; + if (yych == 'n') goto basic_json_parser_30; + goto basic_json_parser_32; + } else { + if (yych <= 's') { + if (yych <= 'r') goto basic_json_parser_30; + goto basic_json_parser_32; + } else { + if (yych <= 't') goto basic_json_parser_30; + if (yych <= 'u') goto basic_json_parser_48; + goto basic_json_parser_32; + } + } + } +basic_json_parser_36: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_30; + goto basic_json_parser_32; +basic_json_parser_37: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x9F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_36; + goto basic_json_parser_32; +basic_json_parser_38: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_36; + goto basic_json_parser_32; +basic_json_parser_39: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0x9F) goto basic_json_parser_36; + goto basic_json_parser_32; +basic_json_parser_40: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x8F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_38; + goto basic_json_parser_32; +basic_json_parser_41: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_38; + goto basic_json_parser_32; +basic_json_parser_42: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0x8F) goto basic_json_parser_38; + goto basic_json_parser_32; +basic_json_parser_43: + yych = *++m_cursor; + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_49; + goto basic_json_parser_32; +basic_json_parser_44: + yych = *++m_cursor; + if (yych <= ',') { + if (yych == '+') goto basic_json_parser_51; + goto basic_json_parser_32; + } else { + if (yych <= '-') goto basic_json_parser_51; + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_52; + goto basic_json_parser_32; + } +basic_json_parser_45: + yych = *++m_cursor; + if (yych == 'l') goto basic_json_parser_54; + goto basic_json_parser_32; +basic_json_parser_46: + yych = *++m_cursor; + if (yych == 'l') goto basic_json_parser_55; + goto basic_json_parser_32; +basic_json_parser_47: + yych = *++m_cursor; + if (yych == 'u') goto basic_json_parser_56; + goto basic_json_parser_32; +basic_json_parser_48: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_57; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_57; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_57; + goto basic_json_parser_32; + } +basic_json_parser_49: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 'D') { + if (yych <= '/') goto basic_json_parser_14; + if (yych <= '9') goto basic_json_parser_49; + goto basic_json_parser_14; + } else { + if (yych <= 'E') goto basic_json_parser_44; + if (yych == 'e') goto basic_json_parser_44; + goto basic_json_parser_14; + } +basic_json_parser_51: + yych = *++m_cursor; + if (yych <= '/') goto basic_json_parser_32; + if (yych >= ':') goto basic_json_parser_32; +basic_json_parser_52: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '/') goto basic_json_parser_14; + if (yych <= '9') goto basic_json_parser_52; + goto basic_json_parser_14; +basic_json_parser_54: + yych = *++m_cursor; + if (yych == 's') goto basic_json_parser_58; + goto basic_json_parser_32; +basic_json_parser_55: + yych = *++m_cursor; + if (yych == 'l') goto basic_json_parser_59; + goto basic_json_parser_32; +basic_json_parser_56: + yych = *++m_cursor; + if (yych == 'e') goto basic_json_parser_61; + goto basic_json_parser_32; +basic_json_parser_57: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_63; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_63; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_63; + goto basic_json_parser_32; + } +basic_json_parser_58: + yych = *++m_cursor; + if (yych == 'e') goto basic_json_parser_64; + goto basic_json_parser_32; +basic_json_parser_59: + ++m_cursor; + { last_token_type = token_type::literal_null; break; } +basic_json_parser_61: + ++m_cursor; + { last_token_type = token_type::literal_true; break; } +basic_json_parser_63: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_66; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_66; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_66; + goto basic_json_parser_32; + } +basic_json_parser_64: + ++m_cursor; + { last_token_type = token_type::literal_false; break; } +basic_json_parser_66: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_30; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_30; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_30; + goto basic_json_parser_32; + } + } } From 1e20887cff2a57dc562f1a19b76c716d19d98da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Fri, 20 Jan 2017 23:07:06 +0100 Subject: [PATCH 096/130] use JSON_THROW --- src/json.hpp | 20 ++++++++++---------- src/json.hpp.re2c | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 62779059c..630624a64 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -513,7 +513,7 @@ void get_arithmetic_value(const Json& j, ArithmeticType& val) } else { - throw std::domain_error("type must be number, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); } } @@ -592,7 +592,7 @@ void from_json(const Json& j, typename Json::boolean_t& b) { if (!j.is_boolean()) { - throw std::domain_error("type must be boolean, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j))); } b = *j.template get_ptr<const typename Json::boolean_t*>(); } @@ -602,7 +602,7 @@ void from_json(const Json& j, typename Json::string_t& s) { if (!j.is_string()) { - throw std::domain_error("type must be string, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be string, but is " + type_name(j))); } s = *j.template get_ptr<const typename Json::string_t*>(); } @@ -639,7 +639,7 @@ void from_json(const Json& j, typename Json::array_t& arr) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } arr = *j.template get_ptr<const typename Json::array_t*>(); } @@ -652,13 +652,13 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l) // (except when it's null.. ?) if (j.is_null()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } if (not std::is_same<T, Json>::value) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } } for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) @@ -711,14 +711,14 @@ void from_json(const Json& j, CompatibleArrayType& arr) { if (j.is_null()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } // when T == Json, do not check if value_t is correct if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } } from_json_array_impl(j, arr, priority_tag<1> {}); @@ -733,7 +733,7 @@ void from_json(const Json& j, CompatibleObjectType& obj) { if (!j.is_object()) { - throw std::domain_error("type must be object, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be object, but is " + type_name(j))); } auto inner_object = j.template get_ptr<const typename Json::object_t*>(); @@ -777,7 +777,7 @@ void from_json(const Json& j, ArithmeticType& val) } else { - throw std::domain_error("type must be number, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); } } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index cbda7ee77..710f61e80 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -513,7 +513,7 @@ void get_arithmetic_value(const Json& j, ArithmeticType& val) } else { - throw std::domain_error("type must be number, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); } } @@ -592,7 +592,7 @@ void from_json(const Json& j, typename Json::boolean_t& b) { if (!j.is_boolean()) { - throw std::domain_error("type must be boolean, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j))); } b = *j.template get_ptr<const typename Json::boolean_t*>(); } @@ -602,7 +602,7 @@ void from_json(const Json& j, typename Json::string_t& s) { if (!j.is_string()) { - throw std::domain_error("type must be string, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be string, but is " + type_name(j))); } s = *j.template get_ptr<const typename Json::string_t*>(); } @@ -639,7 +639,7 @@ void from_json(const Json& j, typename Json::array_t& arr) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } arr = *j.template get_ptr<const typename Json::array_t*>(); } @@ -652,13 +652,13 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l) // (except when it's null.. ?) if (j.is_null()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } if (not std::is_same<T, Json>::value) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } } for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) @@ -711,14 +711,14 @@ void from_json(const Json& j, CompatibleArrayType& arr) { if (j.is_null()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } // when T == Json, do not check if value_t is correct if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } } from_json_array_impl(j, arr, priority_tag<1> {}); @@ -733,7 +733,7 @@ void from_json(const Json& j, CompatibleObjectType& obj) { if (!j.is_object()) { - throw std::domain_error("type must be object, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be object, but is " + type_name(j))); } auto inner_object = j.template get_ptr<const typename Json::object_t*>(); @@ -777,7 +777,7 @@ void from_json(const Json& j, ArithmeticType& val) } else { - throw std::domain_error("type must be number, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); } } From d566bb81c4e304a2a05be6b01c75b8a3dc63442a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Fri, 20 Jan 2017 23:21:20 +0100 Subject: [PATCH 097/130] use switchs where appropriate --- src/json.hpp | 80 +++++++++++++++++++++++++---------------------- src/json.hpp.re2c | 80 +++++++++++++++++++++++++---------------------- 2 files changed, 86 insertions(+), 74 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 630624a64..9fd0d05bc 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -498,22 +498,23 @@ template <typename Json, typename ArithmeticType, int> = 0> void get_arithmetic_value(const Json& j, ArithmeticType& val) { - // unsigned must be checked first, since is_number_integer() == true for unsigned - if (j.is_number_unsigned()) + switch (static_cast<value_t>(j)) { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); - } - else if (j.is_number_integer()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); - } - else if (j.is_number_float()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); - } - else - { - JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); + case value_t::number_unsigned: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_unsigned_t*>()); + break; + case value_t::number_integer: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_integer_t*>()); + break; + case value_t::number_float: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_float_t*>()); + break; + default: + JSON_THROW( + std::domain_error("type must be number, but is " + type_name(j))); } } @@ -752,32 +753,37 @@ template < typename Json, typename ArithmeticType, enable_if_t < std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and - not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and - not std::is_same<ArithmeticType, typename Json::number_float_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_unsigned_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_integer_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_float_t>::value and not std::is_same<ArithmeticType, typename Json::boolean_t>::value, int > = 0 > -void from_json(const Json& j, ArithmeticType& val) +void from_json(const Json& j, ArithmeticType& val) { - if (j.is_number_unsigned()) + switch (static_cast<value_t>(j)) { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); - } - else if (j.is_number_integer()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); - } - else if (j.is_number_float()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); - } - else if (j.is_boolean()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>()); - } - else - { - JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); + case value_t::number_unsigned: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_unsigned_t*>()); + break; + case value_t::number_integer: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_integer_t*>()); + break; + case value_t::number_float: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_float_t*>()); + break; + case value_t::boolean: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::boolean_t*>()); + break; + default: + JSON_THROW( + std::domain_error("type must be number, but is " + type_name(j))); } } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 710f61e80..c400e1560 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -498,22 +498,23 @@ template <typename Json, typename ArithmeticType, int> = 0> void get_arithmetic_value(const Json& j, ArithmeticType& val) { - // unsigned must be checked first, since is_number_integer() == true for unsigned - if (j.is_number_unsigned()) + switch (static_cast<value_t>(j)) { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); - } - else if (j.is_number_integer()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); - } - else if (j.is_number_float()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); - } - else - { - JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); + case value_t::number_unsigned: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_unsigned_t*>()); + break; + case value_t::number_integer: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_integer_t*>()); + break; + case value_t::number_float: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_float_t*>()); + break; + default: + JSON_THROW( + std::domain_error("type must be number, but is " + type_name(j))); } } @@ -752,32 +753,37 @@ template < typename Json, typename ArithmeticType, enable_if_t < std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and - not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and - not std::is_same<ArithmeticType, typename Json::number_float_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_unsigned_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_integer_t>::value and + not std::is_same<ArithmeticType, + typename Json::number_float_t>::value and not std::is_same<ArithmeticType, typename Json::boolean_t>::value, int > = 0 > -void from_json(const Json& j, ArithmeticType& val) +void from_json(const Json& j, ArithmeticType& val) { - if (j.is_number_unsigned()) + switch (static_cast<value_t>(j)) { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>()); - } - else if (j.is_number_integer()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>()); - } - else if (j.is_number_float()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>()); - } - else if (j.is_boolean()) - { - val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>()); - } - else - { - JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); + case value_t::number_unsigned: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_unsigned_t*>()); + break; + case value_t::number_integer: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_integer_t*>()); + break; + case value_t::number_float: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::number_float_t*>()); + break; + case value_t::boolean: + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename Json::boolean_t*>()); + break; + default: + JSON_THROW( + std::domain_error("type must be number, but is " + type_name(j))); } } From a6b028286b13203331237f21ece1dc751962722e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Fri, 20 Jan 2017 23:28:36 +0100 Subject: [PATCH 098/130] move conjunction/disjunction to the top of detail --- src/json.hpp | 1280 +++++++++++++++++++++++++++++++-------------- src/json.hpp.re2c | 38 +- 2 files changed, 898 insertions(+), 420 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 9fd0d05bc..bd21c93cd 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -168,6 +168,25 @@ using is_unscoped_enum = namespace detail { +// Implementation of 2 C++17 constructs: conjunction, negation. +// This is needed to avoid evaluating all the traits in a condition +// +// For example: not std::is_same<void, T>::value and has_value_type<T>::value +// will not compile when T = void (on MSVC at least) +// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value +// will stop evaluating if negation<...>::value == false +// +// Please note that those constructs must be used with caution, since symbols can +// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors) +// Only use it when you have too (see example ahead) +template <class...> struct conjunction : std::true_type {}; +template <class B1> struct conjunction<B1> : B1 {}; +template <class B1, class... Bn> +struct conjunction<B1, Bn...> +: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; + +template <class B> struct negation : std::integral_constant < bool, !B::value > {}; + template <typename Json> std::string type_name(const Json& j) { switch (j.m_type) @@ -317,25 +336,6 @@ struct external_constructor<value_t::object> } }; -// Implementation of 2 C++17 constructs: conjunction, negation. -// This is needed to avoid evaluating all the traits in a condition -// -// For example: not std::is_same<void, T>::value and has_value_type<T>::value -// will not compile when T = void (on MSVC at least) -// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value -// will stop evaluating if negation<...>::value == false -// -// Please note that those constructs must be used with caution, since symbols can -// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors) -// Only use it when you have too (see example ahead) -template <class...> struct conjunction : std::true_type {}; -template <class B1> struct conjunction<B1> : B1 {}; -template <class B1, class... Bn> -struct conjunction<B1, Bn...> -: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; - -template <class B> struct negation : std::integral_constant < bool, !B::value > {}; - /*! @brief Helper to determine whether there's a key_type for T. @@ -9468,437 +9468,915 @@ class basic_json m_start = m_cursor; assert(m_start != nullptr); - - { - lexer_char_t yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 160, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yybm[0+yych] & 32) { - goto basic_json_parser_6; - } - if (yych <= '[') { - if (yych <= '-') { - if (yych <= '"') { - if (yych <= 0x00) goto basic_json_parser_2; - if (yych <= '!') goto basic_json_parser_4; - goto basic_json_parser_9; - } else { - if (yych <= '+') goto basic_json_parser_4; - if (yych <= ',') goto basic_json_parser_10; - goto basic_json_parser_12; - } - } else { - if (yych <= '9') { - if (yych <= '/') goto basic_json_parser_4; - if (yych <= '0') goto basic_json_parser_13; - goto basic_json_parser_15; - } else { - if (yych <= ':') goto basic_json_parser_17; - if (yych <= 'Z') goto basic_json_parser_4; - goto basic_json_parser_19; - } - } - } else { - if (yych <= 'n') { - if (yych <= 'e') { - if (yych == ']') goto basic_json_parser_21; - goto basic_json_parser_4; - } else { - if (yych <= 'f') goto basic_json_parser_23; - if (yych <= 'm') goto basic_json_parser_4; - goto basic_json_parser_24; - } - } else { - if (yych <= 'z') { - if (yych == 't') goto basic_json_parser_25; - goto basic_json_parser_4; - } else { - if (yych <= '{') goto basic_json_parser_26; - if (yych == '}') goto basic_json_parser_28; - goto basic_json_parser_4; - } - } - } + + { + lexer_char_t yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = + { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + if ((m_limit - m_cursor) < 5) + { + fill_line_buffer(5); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 32) + { + goto basic_json_parser_6; + } + if (yych <= '[') + { + if (yych <= '-') + { + if (yych <= '"') + { + if (yych <= 0x00) + { + goto basic_json_parser_2; + } + if (yych <= '!') + { + goto basic_json_parser_4; + } + goto basic_json_parser_9; + } + else + { + if (yych <= '+') + { + goto basic_json_parser_4; + } + if (yych <= ',') + { + goto basic_json_parser_10; + } + goto basic_json_parser_12; + } + } + else + { + if (yych <= '9') + { + if (yych <= '/') + { + goto basic_json_parser_4; + } + if (yych <= '0') + { + goto basic_json_parser_13; + } + goto basic_json_parser_15; + } + else + { + if (yych <= ':') + { + goto basic_json_parser_17; + } + if (yych <= 'Z') + { + goto basic_json_parser_4; + } + goto basic_json_parser_19; + } + } + } + else + { + if (yych <= 'n') + { + if (yych <= 'e') + { + if (yych == ']') + { + goto basic_json_parser_21; + } + goto basic_json_parser_4; + } + else + { + if (yych <= 'f') + { + goto basic_json_parser_23; + } + if (yych <= 'm') + { + goto basic_json_parser_4; + } + goto basic_json_parser_24; + } + } + else + { + if (yych <= 'z') + { + if (yych == 't') + { + goto basic_json_parser_25; + } + goto basic_json_parser_4; + } + else + { + if (yych <= '{') + { + goto basic_json_parser_26; + } + if (yych == '}') + { + goto basic_json_parser_28; + } + goto basic_json_parser_4; + } + } + } basic_json_parser_2: - ++m_cursor; - { last_token_type = token_type::end_of_input; break; } + ++m_cursor; + { + last_token_type = token_type::end_of_input; + break; + } basic_json_parser_4: - ++m_cursor; + ++m_cursor; basic_json_parser_5: - { last_token_type = token_type::parse_error; break; } + { + last_token_type = token_type::parse_error; + break; + } basic_json_parser_6: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yybm[0+yych] & 32) { - goto basic_json_parser_6; - } - { continue; } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 32) + { + goto basic_json_parser_6; + } + { + continue; + } basic_json_parser_9: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych <= 0x1F) goto basic_json_parser_5; - if (yych <= 0x7F) goto basic_json_parser_31; - if (yych <= 0xC1) goto basic_json_parser_5; - if (yych <= 0xF4) goto basic_json_parser_31; - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych <= 0x1F) + { + goto basic_json_parser_5; + } + if (yych <= 0x7F) + { + goto basic_json_parser_31; + } + if (yych <= 0xC1) + { + goto basic_json_parser_5; + } + if (yych <= 0xF4) + { + goto basic_json_parser_31; + } + goto basic_json_parser_5; basic_json_parser_10: - ++m_cursor; - { last_token_type = token_type::value_separator; break; } + ++m_cursor; + { + last_token_type = token_type::value_separator; + break; + } basic_json_parser_12: - yych = *++m_cursor; - if (yych <= '/') goto basic_json_parser_5; - if (yych <= '0') goto basic_json_parser_13; - if (yych <= '9') goto basic_json_parser_15; - goto basic_json_parser_5; + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_5; + } + if (yych <= '0') + { + goto basic_json_parser_13; + } + if (yych <= '9') + { + goto basic_json_parser_15; + } + goto basic_json_parser_5; basic_json_parser_13: - yyaccept = 1; - yych = *(m_marker = ++m_cursor); - if (yych <= 'D') { - if (yych == '.') goto basic_json_parser_43; - } else { - if (yych <= 'E') goto basic_json_parser_44; - if (yych == 'e') goto basic_json_parser_44; - } + yyaccept = 1; + yych = *(m_marker = ++m_cursor); + if (yych <= 'D') + { + if (yych == '.') + { + goto basic_json_parser_43; + } + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + } basic_json_parser_14: - { last_token_type = token_type::value_number; break; } + { + last_token_type = token_type::value_number; + break; + } basic_json_parser_15: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yybm[0+yych] & 64) { - goto basic_json_parser_15; - } - if (yych <= 'D') { - if (yych == '.') goto basic_json_parser_43; - goto basic_json_parser_14; - } else { - if (yych <= 'E') goto basic_json_parser_44; - if (yych == 'e') goto basic_json_parser_44; - goto basic_json_parser_14; - } + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) + { + fill_line_buffer(3); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 64) + { + goto basic_json_parser_15; + } + if (yych <= 'D') + { + if (yych == '.') + { + goto basic_json_parser_43; + } + goto basic_json_parser_14; + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + goto basic_json_parser_14; + } basic_json_parser_17: - ++m_cursor; - { last_token_type = token_type::name_separator; break; } + ++m_cursor; + { + last_token_type = token_type::name_separator; + break; + } basic_json_parser_19: - ++m_cursor; - { last_token_type = token_type::begin_array; break; } + ++m_cursor; + { + last_token_type = token_type::begin_array; + break; + } basic_json_parser_21: - ++m_cursor; - { last_token_type = token_type::end_array; break; } + ++m_cursor; + { + last_token_type = token_type::end_array; + break; + } basic_json_parser_23: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'a') goto basic_json_parser_45; - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'a') + { + goto basic_json_parser_45; + } + goto basic_json_parser_5; basic_json_parser_24: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'u') goto basic_json_parser_46; - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'u') + { + goto basic_json_parser_46; + } + goto basic_json_parser_5; basic_json_parser_25: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'r') goto basic_json_parser_47; - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'r') + { + goto basic_json_parser_47; + } + goto basic_json_parser_5; basic_json_parser_26: - ++m_cursor; - { last_token_type = token_type::begin_object; break; } + ++m_cursor; + { + last_token_type = token_type::begin_object; + break; + } basic_json_parser_28: - ++m_cursor; - { last_token_type = token_type::end_object; break; } + ++m_cursor; + { + last_token_type = token_type::end_object; + break; + } basic_json_parser_30: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; basic_json_parser_31: - if (yybm[0+yych] & 128) { - goto basic_json_parser_30; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x1F) goto basic_json_parser_32; - if (yych <= '"') goto basic_json_parser_33; - goto basic_json_parser_35; - } else { - if (yych <= 0xC1) goto basic_json_parser_32; - if (yych <= 0xDF) goto basic_json_parser_36; - goto basic_json_parser_37; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto basic_json_parser_39; - goto basic_json_parser_38; - } else { - if (yych <= 0xF0) goto basic_json_parser_40; - if (yych <= 0xF3) goto basic_json_parser_41; - if (yych <= 0xF4) goto basic_json_parser_42; - } - } + if (yybm[0 + yych] & 128) + { + goto basic_json_parser_30; + } + if (yych <= 0xE0) + { + if (yych <= '\\') + { + if (yych <= 0x1F) + { + goto basic_json_parser_32; + } + if (yych <= '"') + { + goto basic_json_parser_33; + } + goto basic_json_parser_35; + } + else + { + if (yych <= 0xC1) + { + goto basic_json_parser_32; + } + if (yych <= 0xDF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_37; + } + } + else + { + if (yych <= 0xEF) + { + if (yych == 0xED) + { + goto basic_json_parser_39; + } + goto basic_json_parser_38; + } + else + { + if (yych <= 0xF0) + { + goto basic_json_parser_40; + } + if (yych <= 0xF3) + { + goto basic_json_parser_41; + } + if (yych <= 0xF4) + { + goto basic_json_parser_42; + } + } + } basic_json_parser_32: - m_cursor = m_marker; - if (yyaccept == 0) { - goto basic_json_parser_5; - } else { - goto basic_json_parser_14; - } + m_cursor = m_marker; + if (yyaccept == 0) + { + goto basic_json_parser_5; + } + else + { + goto basic_json_parser_14; + } basic_json_parser_33: - ++m_cursor; - { last_token_type = token_type::value_string; break; } + ++m_cursor; + { + last_token_type = token_type::value_string; + break; + } basic_json_parser_35: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 'e') { - if (yych <= '/') { - if (yych == '"') goto basic_json_parser_30; - if (yych <= '.') goto basic_json_parser_32; - goto basic_json_parser_30; - } else { - if (yych <= '\\') { - if (yych <= '[') goto basic_json_parser_32; - goto basic_json_parser_30; - } else { - if (yych == 'b') goto basic_json_parser_30; - goto basic_json_parser_32; - } - } - } else { - if (yych <= 'q') { - if (yych <= 'f') goto basic_json_parser_30; - if (yych == 'n') goto basic_json_parser_30; - goto basic_json_parser_32; - } else { - if (yych <= 's') { - if (yych <= 'r') goto basic_json_parser_30; - goto basic_json_parser_32; - } else { - if (yych <= 't') goto basic_json_parser_30; - if (yych <= 'u') goto basic_json_parser_48; - goto basic_json_parser_32; - } - } - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 'e') + { + if (yych <= '/') + { + if (yych == '"') + { + goto basic_json_parser_30; + } + if (yych <= '.') + { + goto basic_json_parser_32; + } + goto basic_json_parser_30; + } + else + { + if (yych <= '\\') + { + if (yych <= '[') + { + goto basic_json_parser_32; + } + goto basic_json_parser_30; + } + else + { + if (yych == 'b') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + } + } + else + { + if (yych <= 'q') + { + if (yych <= 'f') + { + goto basic_json_parser_30; + } + if (yych == 'n') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 's') + { + if (yych <= 'r') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 't') + { + goto basic_json_parser_30; + } + if (yych <= 'u') + { + goto basic_json_parser_48; + } + goto basic_json_parser_32; + } + } + } basic_json_parser_36: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_30; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; basic_json_parser_37: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x9F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_36; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x9F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; basic_json_parser_38: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_36; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; basic_json_parser_39: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0x9F) goto basic_json_parser_36; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0x9F) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; basic_json_parser_40: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x8F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_38; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x8F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; basic_json_parser_41: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_38; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; basic_json_parser_42: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0x8F) goto basic_json_parser_38; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0x8F) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; basic_json_parser_43: - yych = *++m_cursor; - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_49; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_49; + } + goto basic_json_parser_32; basic_json_parser_44: - yych = *++m_cursor; - if (yych <= ',') { - if (yych == '+') goto basic_json_parser_51; - goto basic_json_parser_32; - } else { - if (yych <= '-') goto basic_json_parser_51; - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_52; - goto basic_json_parser_32; - } + yych = *++m_cursor; + if (yych <= ',') + { + if (yych == '+') + { + goto basic_json_parser_51; + } + goto basic_json_parser_32; + } + else + { + if (yych <= '-') + { + goto basic_json_parser_51; + } + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_52; + } + goto basic_json_parser_32; + } basic_json_parser_45: - yych = *++m_cursor; - if (yych == 'l') goto basic_json_parser_54; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_54; + } + goto basic_json_parser_32; basic_json_parser_46: - yych = *++m_cursor; - if (yych == 'l') goto basic_json_parser_55; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_55; + } + goto basic_json_parser_32; basic_json_parser_47: - yych = *++m_cursor; - if (yych == 'u') goto basic_json_parser_56; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'u') + { + goto basic_json_parser_56; + } + goto basic_json_parser_32; basic_json_parser_48: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_57; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_57; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_57; - goto basic_json_parser_32; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_57; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_57; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_57; + } + goto basic_json_parser_32; + } basic_json_parser_49: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 'D') { - if (yych <= '/') goto basic_json_parser_14; - if (yych <= '9') goto basic_json_parser_49; - goto basic_json_parser_14; - } else { - if (yych <= 'E') goto basic_json_parser_44; - if (yych == 'e') goto basic_json_parser_44; - goto basic_json_parser_14; - } + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) + { + fill_line_buffer(3); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 'D') + { + if (yych <= '/') + { + goto basic_json_parser_14; + } + if (yych <= '9') + { + goto basic_json_parser_49; + } + goto basic_json_parser_14; + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + goto basic_json_parser_14; + } basic_json_parser_51: - yych = *++m_cursor; - if (yych <= '/') goto basic_json_parser_32; - if (yych >= ':') goto basic_json_parser_32; + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych >= ':') + { + goto basic_json_parser_32; + } basic_json_parser_52: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '/') goto basic_json_parser_14; - if (yych <= '9') goto basic_json_parser_52; - goto basic_json_parser_14; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '/') + { + goto basic_json_parser_14; + } + if (yych <= '9') + { + goto basic_json_parser_52; + } + goto basic_json_parser_14; basic_json_parser_54: - yych = *++m_cursor; - if (yych == 's') goto basic_json_parser_58; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 's') + { + goto basic_json_parser_58; + } + goto basic_json_parser_32; basic_json_parser_55: - yych = *++m_cursor; - if (yych == 'l') goto basic_json_parser_59; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_59; + } + goto basic_json_parser_32; basic_json_parser_56: - yych = *++m_cursor; - if (yych == 'e') goto basic_json_parser_61; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'e') + { + goto basic_json_parser_61; + } + goto basic_json_parser_32; basic_json_parser_57: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_63; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_63; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_63; - goto basic_json_parser_32; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_63; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_63; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_63; + } + goto basic_json_parser_32; + } basic_json_parser_58: - yych = *++m_cursor; - if (yych == 'e') goto basic_json_parser_64; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'e') + { + goto basic_json_parser_64; + } + goto basic_json_parser_32; basic_json_parser_59: - ++m_cursor; - { last_token_type = token_type::literal_null; break; } + ++m_cursor; + { + last_token_type = token_type::literal_null; + break; + } basic_json_parser_61: - ++m_cursor; - { last_token_type = token_type::literal_true; break; } + ++m_cursor; + { + last_token_type = token_type::literal_true; + break; + } basic_json_parser_63: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_66; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_66; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_66; - goto basic_json_parser_32; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_66; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_66; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_66; + } + goto basic_json_parser_32; + } basic_json_parser_64: - ++m_cursor; - { last_token_type = token_type::literal_false; break; } + ++m_cursor; + { + last_token_type = token_type::literal_false; + break; + } basic_json_parser_66: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_30; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_30; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_30; - goto basic_json_parser_32; - } - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_30; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + } } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index c400e1560..c47b321cf 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -168,6 +168,25 @@ using is_unscoped_enum = namespace detail { +// Implementation of 2 C++17 constructs: conjunction, negation. +// This is needed to avoid evaluating all the traits in a condition +// +// For example: not std::is_same<void, T>::value and has_value_type<T>::value +// will not compile when T = void (on MSVC at least) +// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value +// will stop evaluating if negation<...>::value == false +// +// Please note that those constructs must be used with caution, since symbols can +// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors) +// Only use it when you have too (see example ahead) +template <class...> struct conjunction : std::true_type {}; +template <class B1> struct conjunction<B1> : B1 {}; +template <class B1, class... Bn> +struct conjunction<B1, Bn...> +: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; + +template <class B> struct negation : std::integral_constant < bool, !B::value > {}; + template <typename Json> std::string type_name(const Json& j) { switch (j.m_type) @@ -317,25 +336,6 @@ struct external_constructor<value_t::object> } }; -// Implementation of 2 C++17 constructs: conjunction, negation. -// This is needed to avoid evaluating all the traits in a condition -// -// For example: not std::is_same<void, T>::value and has_value_type<T>::value -// will not compile when T = void (on MSVC at least) -// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value -// will stop evaluating if negation<...>::value == false -// -// Please note that those constructs must be used with caution, since symbols can -// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors) -// Only use it when you have too (see example ahead) -template <class...> struct conjunction : std::true_type {}; -template <class B1> struct conjunction<B1> : B1 {}; -template <class B1, class... Bn> -struct conjunction<B1, Bn...> -: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; - -template <class B> struct negation : std::integral_constant < bool, !B::value > {}; - /*! @brief Helper to determine whether there's a key_type for T. From 889b269a4fc081b1fae4369b0fdefe3f1ccc29b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Fri, 20 Jan 2017 23:34:52 +0100 Subject: [PATCH 099/130] rename template argument: BasicJson -> Json --- src/json.hpp | 1362 +++++++++++++++------------------------------ src/json.hpp.re2c | 24 +- 2 files changed, 454 insertions(+), 932 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index bd21c93cd..e9a6c80b3 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -377,27 +377,27 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> typename CompatibleObjectType::mapped_type>::value; }; -template<class BasicJson, class CompatibleObjectType> +template<class Json, class CompatibleObjectType> struct is_compatible_object_type { static auto constexpr value = is_compatible_object_type_impl < conjunction<negation<std::is_same<void, CompatibleObjectType>>, has_mapped_type<CompatibleObjectType>, has_key_type<CompatibleObjectType>>::value, - typename BasicJson::object_t, CompatibleObjectType >::value; + typename Json::object_t, CompatibleObjectType >::value; }; -template <typename BasicJson, typename T> +template <typename Json, typename T> struct is_basic_json_nested_type { - static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or - std::is_same<T, typename BasicJson::const_iterator>::value or - std::is_same<T, typename BasicJson::reverse_iterator>::value or - std::is_same<T, typename BasicJson::const_reverse_iterator>::value or - std::is_same<T, typename BasicJson::json_pointer>::value; + static auto constexpr value = std::is_same<T, typename Json::iterator>::value or + std::is_same<T, typename Json::const_iterator>::value or + std::is_same<T, typename Json::reverse_iterator>::value or + std::is_same<T, typename Json::const_reverse_iterator>::value or + std::is_same<T, typename Json::json_pointer>::value; }; -template <class BasicJson, class CompatibleArrayType> +template <class Json, class CompatibleArrayType> struct is_compatible_array_type { // TODO concept Container? @@ -405,10 +405,10 @@ struct is_compatible_array_type static auto constexpr value = conjunction<negation<std::is_same<void, CompatibleArrayType>>, negation<is_compatible_object_type< - BasicJson, CompatibleArrayType>>, - negation<std::is_constructible<typename BasicJson::string_t, + Json, CompatibleArrayType>>, + negation<std::is_constructible<typename Json::string_t, CompatibleArrayType>>, - negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, + negation<is_basic_json_nested_type<Json, CompatibleArrayType>>, has_value_type<CompatibleArrayType>, has_iterator<CompatibleArrayType>>::value; }; @@ -9468,915 +9468,437 @@ class basic_json m_start = m_cursor; assert(m_start != nullptr); - - { - lexer_char_t yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = - { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 160, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - if ((m_limit - m_cursor) < 5) - { - fill_line_buffer(5); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; - } - if (yych <= '[') - { - if (yych <= '-') - { - if (yych <= '"') - { - if (yych <= 0x00) - { - goto basic_json_parser_2; - } - if (yych <= '!') - { - goto basic_json_parser_4; - } - goto basic_json_parser_9; - } - else - { - if (yych <= '+') - { - goto basic_json_parser_4; - } - if (yych <= ',') - { - goto basic_json_parser_10; - } - goto basic_json_parser_12; - } - } - else - { - if (yych <= '9') - { - if (yych <= '/') - { - goto basic_json_parser_4; - } - if (yych <= '0') - { - goto basic_json_parser_13; - } - goto basic_json_parser_15; - } - else - { - if (yych <= ':') - { - goto basic_json_parser_17; - } - if (yych <= 'Z') - { - goto basic_json_parser_4; - } - goto basic_json_parser_19; - } - } - } - else - { - if (yych <= 'n') - { - if (yych <= 'e') - { - if (yych == ']') - { - goto basic_json_parser_21; - } - goto basic_json_parser_4; - } - else - { - if (yych <= 'f') - { - goto basic_json_parser_23; - } - if (yych <= 'm') - { - goto basic_json_parser_4; - } - goto basic_json_parser_24; - } - } - else - { - if (yych <= 'z') - { - if (yych == 't') - { - goto basic_json_parser_25; - } - goto basic_json_parser_4; - } - else - { - if (yych <= '{') - { - goto basic_json_parser_26; - } - if (yych == '}') - { - goto basic_json_parser_28; - } - goto basic_json_parser_4; - } - } - } -basic_json_parser_2: - ++m_cursor; - { - last_token_type = token_type::end_of_input; - break; - } -basic_json_parser_4: - ++m_cursor; -basic_json_parser_5: - { - last_token_type = token_type::parse_error; - break; - } -basic_json_parser_6: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; - } - { - continue; - } -basic_json_parser_9: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych <= 0x1F) - { - goto basic_json_parser_5; - } - if (yych <= 0x7F) - { - goto basic_json_parser_31; - } - if (yych <= 0xC1) - { - goto basic_json_parser_5; - } - if (yych <= 0xF4) - { - goto basic_json_parser_31; - } - goto basic_json_parser_5; -basic_json_parser_10: - ++m_cursor; - { - last_token_type = token_type::value_separator; - break; - } -basic_json_parser_12: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_5; - } - if (yych <= '0') - { - goto basic_json_parser_13; - } - if (yych <= '9') - { - goto basic_json_parser_15; - } - goto basic_json_parser_5; -basic_json_parser_13: - yyaccept = 1; - yych = *(m_marker = ++m_cursor); - if (yych <= 'D') - { - if (yych == '.') - { - goto basic_json_parser_43; - } - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - } -basic_json_parser_14: - { - last_token_type = token_type::value_number; - break; - } -basic_json_parser_15: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - fill_line_buffer(3); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yybm[0 + yych] & 64) - { - goto basic_json_parser_15; - } - if (yych <= 'D') - { - if (yych == '.') - { - goto basic_json_parser_43; - } - goto basic_json_parser_14; - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - goto basic_json_parser_14; - } -basic_json_parser_17: - ++m_cursor; - { - last_token_type = token_type::name_separator; - break; - } -basic_json_parser_19: - ++m_cursor; - { - last_token_type = token_type::begin_array; - break; - } -basic_json_parser_21: - ++m_cursor; - { - last_token_type = token_type::end_array; - break; - } -basic_json_parser_23: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'a') - { - goto basic_json_parser_45; - } - goto basic_json_parser_5; -basic_json_parser_24: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'u') - { - goto basic_json_parser_46; - } - goto basic_json_parser_5; -basic_json_parser_25: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'r') - { - goto basic_json_parser_47; - } - goto basic_json_parser_5; -basic_json_parser_26: - ++m_cursor; - { - last_token_type = token_type::begin_object; - break; - } -basic_json_parser_28: - ++m_cursor; - { - last_token_type = token_type::end_object; - break; - } -basic_json_parser_30: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; -basic_json_parser_31: - if (yybm[0 + yych] & 128) - { - goto basic_json_parser_30; - } - if (yych <= 0xE0) - { - if (yych <= '\\') - { - if (yych <= 0x1F) - { - goto basic_json_parser_32; - } - if (yych <= '"') - { - goto basic_json_parser_33; - } - goto basic_json_parser_35; - } - else - { - if (yych <= 0xC1) - { - goto basic_json_parser_32; - } - if (yych <= 0xDF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_37; - } - } - else - { - if (yych <= 0xEF) - { - if (yych == 0xED) - { - goto basic_json_parser_39; - } - goto basic_json_parser_38; - } - else - { - if (yych <= 0xF0) - { - goto basic_json_parser_40; - } - if (yych <= 0xF3) - { - goto basic_json_parser_41; - } - if (yych <= 0xF4) - { - goto basic_json_parser_42; - } - } - } -basic_json_parser_32: - m_cursor = m_marker; - if (yyaccept == 0) - { - goto basic_json_parser_5; - } - else - { - goto basic_json_parser_14; - } -basic_json_parser_33: - ++m_cursor; - { - last_token_type = token_type::value_string; - break; - } -basic_json_parser_35: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 'e') - { - if (yych <= '/') - { - if (yych == '"') - { - goto basic_json_parser_30; - } - if (yych <= '.') - { - goto basic_json_parser_32; - } - goto basic_json_parser_30; - } - else - { - if (yych <= '\\') - { - if (yych <= '[') - { - goto basic_json_parser_32; - } - goto basic_json_parser_30; - } - else - { - if (yych == 'b') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - } - } - else - { - if (yych <= 'q') - { - if (yych <= 'f') - { - goto basic_json_parser_30; - } - if (yych == 'n') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 's') - { - if (yych <= 'r') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 't') - { - goto basic_json_parser_30; - } - if (yych <= 'u') - { - goto basic_json_parser_48; - } - goto basic_json_parser_32; - } - } - } -basic_json_parser_36: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; -basic_json_parser_37: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x9F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_32; -basic_json_parser_38: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_36; - } - goto basic_json_parser_32; -basic_json_parser_39: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0x9F) - { - goto basic_json_parser_36; - } - goto basic_json_parser_32; -basic_json_parser_40: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x8F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_38; - } - goto basic_json_parser_32; -basic_json_parser_41: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0xBF) - { - goto basic_json_parser_38; - } - goto basic_json_parser_32; -basic_json_parser_42: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 0x7F) - { - goto basic_json_parser_32; - } - if (yych <= 0x8F) - { - goto basic_json_parser_38; - } - goto basic_json_parser_32; -basic_json_parser_43: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_49; - } - goto basic_json_parser_32; -basic_json_parser_44: - yych = *++m_cursor; - if (yych <= ',') - { - if (yych == '+') - { - goto basic_json_parser_51; - } - goto basic_json_parser_32; - } - else - { - if (yych <= '-') - { - goto basic_json_parser_51; - } - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_52; - } - goto basic_json_parser_32; - } -basic_json_parser_45: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_54; - } - goto basic_json_parser_32; -basic_json_parser_46: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_55; - } - goto basic_json_parser_32; -basic_json_parser_47: - yych = *++m_cursor; - if (yych == 'u') - { - goto basic_json_parser_56; - } - goto basic_json_parser_32; -basic_json_parser_48: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_57; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_57; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_57; - } - goto basic_json_parser_32; - } -basic_json_parser_49: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - fill_line_buffer(3); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= 'D') - { - if (yych <= '/') - { - goto basic_json_parser_14; - } - if (yych <= '9') - { - goto basic_json_parser_49; - } - goto basic_json_parser_14; - } - else - { - if (yych <= 'E') - { - goto basic_json_parser_44; - } - if (yych == 'e') - { - goto basic_json_parser_44; - } - goto basic_json_parser_14; - } -basic_json_parser_51: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych >= ':') - { - goto basic_json_parser_32; - } -basic_json_parser_52: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '/') - { - goto basic_json_parser_14; - } - if (yych <= '9') - { - goto basic_json_parser_52; - } - goto basic_json_parser_14; -basic_json_parser_54: - yych = *++m_cursor; - if (yych == 's') - { - goto basic_json_parser_58; - } - goto basic_json_parser_32; -basic_json_parser_55: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_59; - } - goto basic_json_parser_32; -basic_json_parser_56: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_61; - } - goto basic_json_parser_32; -basic_json_parser_57: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_63; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_63; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_63; - } - goto basic_json_parser_32; - } -basic_json_parser_58: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_64; - } - goto basic_json_parser_32; -basic_json_parser_59: - ++m_cursor; - { - last_token_type = token_type::literal_null; - break; - } -basic_json_parser_61: - ++m_cursor; - { - last_token_type = token_type::literal_true; - break; - } -basic_json_parser_63: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_66; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_66; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_66; - } - goto basic_json_parser_32; - } -basic_json_parser_64: - ++m_cursor; - { - last_token_type = token_type::literal_false; - break; - } -basic_json_parser_66: - ++m_cursor; - if (m_limit <= m_cursor) - { - fill_line_buffer(1); // LCOV_EXCL_LINE - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') - { - goto basic_json_parser_32; - } - if (yych <= '9') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } - else - { - if (yych <= 'F') - { - goto basic_json_parser_30; - } - if (yych <= '`') - { - goto basic_json_parser_32; - } - if (yych <= 'f') - { - goto basic_json_parser_30; - } - goto basic_json_parser_32; - } + + { + lexer_char_t yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yybm[0+yych] & 32) { + goto basic_json_parser_6; + } + if (yych <= '[') { + if (yych <= '-') { + if (yych <= '"') { + if (yych <= 0x00) goto basic_json_parser_2; + if (yych <= '!') goto basic_json_parser_4; + goto basic_json_parser_9; + } else { + if (yych <= '+') goto basic_json_parser_4; + if (yych <= ',') goto basic_json_parser_10; + goto basic_json_parser_12; } + } else { + if (yych <= '9') { + if (yych <= '/') goto basic_json_parser_4; + if (yych <= '0') goto basic_json_parser_13; + goto basic_json_parser_15; + } else { + if (yych <= ':') goto basic_json_parser_17; + if (yych <= 'Z') goto basic_json_parser_4; + goto basic_json_parser_19; + } + } + } else { + if (yych <= 'n') { + if (yych <= 'e') { + if (yych == ']') goto basic_json_parser_21; + goto basic_json_parser_4; + } else { + if (yych <= 'f') goto basic_json_parser_23; + if (yych <= 'm') goto basic_json_parser_4; + goto basic_json_parser_24; + } + } else { + if (yych <= 'z') { + if (yych == 't') goto basic_json_parser_25; + goto basic_json_parser_4; + } else { + if (yych <= '{') goto basic_json_parser_26; + if (yych == '}') goto basic_json_parser_28; + goto basic_json_parser_4; + } + } + } +basic_json_parser_2: + ++m_cursor; + { last_token_type = token_type::end_of_input; break; } +basic_json_parser_4: + ++m_cursor; +basic_json_parser_5: + { last_token_type = token_type::parse_error; break; } +basic_json_parser_6: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yybm[0+yych] & 32) { + goto basic_json_parser_6; + } + { continue; } +basic_json_parser_9: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych <= 0x1F) goto basic_json_parser_5; + if (yych <= 0x7F) goto basic_json_parser_31; + if (yych <= 0xC1) goto basic_json_parser_5; + if (yych <= 0xF4) goto basic_json_parser_31; + goto basic_json_parser_5; +basic_json_parser_10: + ++m_cursor; + { last_token_type = token_type::value_separator; break; } +basic_json_parser_12: + yych = *++m_cursor; + if (yych <= '/') goto basic_json_parser_5; + if (yych <= '0') goto basic_json_parser_13; + if (yych <= '9') goto basic_json_parser_15; + goto basic_json_parser_5; +basic_json_parser_13: + yyaccept = 1; + yych = *(m_marker = ++m_cursor); + if (yych <= 'D') { + if (yych == '.') goto basic_json_parser_43; + } else { + if (yych <= 'E') goto basic_json_parser_44; + if (yych == 'e') goto basic_json_parser_44; + } +basic_json_parser_14: + { last_token_type = token_type::value_number; break; } +basic_json_parser_15: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yybm[0+yych] & 64) { + goto basic_json_parser_15; + } + if (yych <= 'D') { + if (yych == '.') goto basic_json_parser_43; + goto basic_json_parser_14; + } else { + if (yych <= 'E') goto basic_json_parser_44; + if (yych == 'e') goto basic_json_parser_44; + goto basic_json_parser_14; + } +basic_json_parser_17: + ++m_cursor; + { last_token_type = token_type::name_separator; break; } +basic_json_parser_19: + ++m_cursor; + { last_token_type = token_type::begin_array; break; } +basic_json_parser_21: + ++m_cursor; + { last_token_type = token_type::end_array; break; } +basic_json_parser_23: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'a') goto basic_json_parser_45; + goto basic_json_parser_5; +basic_json_parser_24: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'u') goto basic_json_parser_46; + goto basic_json_parser_5; +basic_json_parser_25: + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'r') goto basic_json_parser_47; + goto basic_json_parser_5; +basic_json_parser_26: + ++m_cursor; + { last_token_type = token_type::begin_object; break; } +basic_json_parser_28: + ++m_cursor; + { last_token_type = token_type::end_object; break; } +basic_json_parser_30: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; +basic_json_parser_31: + if (yybm[0+yych] & 128) { + goto basic_json_parser_30; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x1F) goto basic_json_parser_32; + if (yych <= '"') goto basic_json_parser_33; + goto basic_json_parser_35; + } else { + if (yych <= 0xC1) goto basic_json_parser_32; + if (yych <= 0xDF) goto basic_json_parser_36; + goto basic_json_parser_37; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) goto basic_json_parser_39; + goto basic_json_parser_38; + } else { + if (yych <= 0xF0) goto basic_json_parser_40; + if (yych <= 0xF3) goto basic_json_parser_41; + if (yych <= 0xF4) goto basic_json_parser_42; + } + } +basic_json_parser_32: + m_cursor = m_marker; + if (yyaccept == 0) { + goto basic_json_parser_5; + } else { + goto basic_json_parser_14; + } +basic_json_parser_33: + ++m_cursor; + { last_token_type = token_type::value_string; break; } +basic_json_parser_35: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 'e') { + if (yych <= '/') { + if (yych == '"') goto basic_json_parser_30; + if (yych <= '.') goto basic_json_parser_32; + goto basic_json_parser_30; + } else { + if (yych <= '\\') { + if (yych <= '[') goto basic_json_parser_32; + goto basic_json_parser_30; + } else { + if (yych == 'b') goto basic_json_parser_30; + goto basic_json_parser_32; + } + } + } else { + if (yych <= 'q') { + if (yych <= 'f') goto basic_json_parser_30; + if (yych == 'n') goto basic_json_parser_30; + goto basic_json_parser_32; + } else { + if (yych <= 's') { + if (yych <= 'r') goto basic_json_parser_30; + goto basic_json_parser_32; + } else { + if (yych <= 't') goto basic_json_parser_30; + if (yych <= 'u') goto basic_json_parser_48; + goto basic_json_parser_32; + } + } + } +basic_json_parser_36: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_30; + goto basic_json_parser_32; +basic_json_parser_37: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x9F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_36; + goto basic_json_parser_32; +basic_json_parser_38: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_36; + goto basic_json_parser_32; +basic_json_parser_39: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0x9F) goto basic_json_parser_36; + goto basic_json_parser_32; +basic_json_parser_40: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x8F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_38; + goto basic_json_parser_32; +basic_json_parser_41: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0xBF) goto basic_json_parser_38; + goto basic_json_parser_32; +basic_json_parser_42: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 0x7F) goto basic_json_parser_32; + if (yych <= 0x8F) goto basic_json_parser_38; + goto basic_json_parser_32; +basic_json_parser_43: + yych = *++m_cursor; + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_49; + goto basic_json_parser_32; +basic_json_parser_44: + yych = *++m_cursor; + if (yych <= ',') { + if (yych == '+') goto basic_json_parser_51; + goto basic_json_parser_32; + } else { + if (yych <= '-') goto basic_json_parser_51; + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_52; + goto basic_json_parser_32; + } +basic_json_parser_45: + yych = *++m_cursor; + if (yych == 'l') goto basic_json_parser_54; + goto basic_json_parser_32; +basic_json_parser_46: + yych = *++m_cursor; + if (yych == 'l') goto basic_json_parser_55; + goto basic_json_parser_32; +basic_json_parser_47: + yych = *++m_cursor; + if (yych == 'u') goto basic_json_parser_56; + goto basic_json_parser_32; +basic_json_parser_48: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_57; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_57; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_57; + goto basic_json_parser_32; + } +basic_json_parser_49: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= 'D') { + if (yych <= '/') goto basic_json_parser_14; + if (yych <= '9') goto basic_json_parser_49; + goto basic_json_parser_14; + } else { + if (yych <= 'E') goto basic_json_parser_44; + if (yych == 'e') goto basic_json_parser_44; + goto basic_json_parser_14; + } +basic_json_parser_51: + yych = *++m_cursor; + if (yych <= '/') goto basic_json_parser_32; + if (yych >= ':') goto basic_json_parser_32; +basic_json_parser_52: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '/') goto basic_json_parser_14; + if (yych <= '9') goto basic_json_parser_52; + goto basic_json_parser_14; +basic_json_parser_54: + yych = *++m_cursor; + if (yych == 's') goto basic_json_parser_58; + goto basic_json_parser_32; +basic_json_parser_55: + yych = *++m_cursor; + if (yych == 'l') goto basic_json_parser_59; + goto basic_json_parser_32; +basic_json_parser_56: + yych = *++m_cursor; + if (yych == 'e') goto basic_json_parser_61; + goto basic_json_parser_32; +basic_json_parser_57: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_63; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_63; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_63; + goto basic_json_parser_32; + } +basic_json_parser_58: + yych = *++m_cursor; + if (yych == 'e') goto basic_json_parser_64; + goto basic_json_parser_32; +basic_json_parser_59: + ++m_cursor; + { last_token_type = token_type::literal_null; break; } +basic_json_parser_61: + ++m_cursor; + { last_token_type = token_type::literal_true; break; } +basic_json_parser_63: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_66; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_66; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_66; + goto basic_json_parser_32; + } +basic_json_parser_64: + ++m_cursor; + { last_token_type = token_type::literal_false; break; } +basic_json_parser_66: + ++m_cursor; + if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') goto basic_json_parser_32; + if (yych <= '9') goto basic_json_parser_30; + goto basic_json_parser_32; + } else { + if (yych <= 'F') goto basic_json_parser_30; + if (yych <= '`') goto basic_json_parser_32; + if (yych <= 'f') goto basic_json_parser_30; + goto basic_json_parser_32; + } + } } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index c47b321cf..cb4f3ad1a 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -377,27 +377,27 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> typename CompatibleObjectType::mapped_type>::value; }; -template<class BasicJson, class CompatibleObjectType> +template<class Json, class CompatibleObjectType> struct is_compatible_object_type { static auto constexpr value = is_compatible_object_type_impl < conjunction<negation<std::is_same<void, CompatibleObjectType>>, has_mapped_type<CompatibleObjectType>, has_key_type<CompatibleObjectType>>::value, - typename BasicJson::object_t, CompatibleObjectType >::value; + typename Json::object_t, CompatibleObjectType >::value; }; -template <typename BasicJson, typename T> +template <typename Json, typename T> struct is_basic_json_nested_type { - static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or - std::is_same<T, typename BasicJson::const_iterator>::value or - std::is_same<T, typename BasicJson::reverse_iterator>::value or - std::is_same<T, typename BasicJson::const_reverse_iterator>::value or - std::is_same<T, typename BasicJson::json_pointer>::value; + static auto constexpr value = std::is_same<T, typename Json::iterator>::value or + std::is_same<T, typename Json::const_iterator>::value or + std::is_same<T, typename Json::reverse_iterator>::value or + std::is_same<T, typename Json::const_reverse_iterator>::value or + std::is_same<T, typename Json::json_pointer>::value; }; -template <class BasicJson, class CompatibleArrayType> +template <class Json, class CompatibleArrayType> struct is_compatible_array_type { // TODO concept Container? @@ -405,10 +405,10 @@ struct is_compatible_array_type static auto constexpr value = conjunction<negation<std::is_same<void, CompatibleArrayType>>, negation<is_compatible_object_type< - BasicJson, CompatibleArrayType>>, - negation<std::is_constructible<typename BasicJson::string_t, + Json, CompatibleArrayType>>, + negation<std::is_constructible<typename Json::string_t, CompatibleArrayType>>, - negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>, + negation<is_basic_json_nested_type<Json, CompatibleArrayType>>, has_value_type<CompatibleArrayType>, has_iterator<CompatibleArrayType>>::value; }; From 708eb9613b24422848b2bee92425fcaf3fc11d31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 21 Jan 2017 16:35:23 +0100 Subject: [PATCH 100/130] disable reserve tests when exceptions are disabled --- test/src/unit-conversions.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp index 3c4d8bef4..994f882dd 100644 --- a/test/src/unit-conversions.cpp +++ b/test/src/unit-conversions.cpp @@ -175,6 +175,7 @@ TEST_CASE("value conversion") CHECK_THROWS_WITH(json(json::value_t::null).get<std::vector<json>>(), "type must be array, but is null"); +#if not defined(JSON_NOEXCEPTION) SECTION("reserve is called on containers that supports it") { // making the call to from_json throw in order to check capacity @@ -182,6 +183,7 @@ TEST_CASE("value conversion") CHECK_THROWS_AS(nlohmann::from_json(j, v), std::logic_error); CHECK(v.capacity() == j.size()); } +#endif } SECTION("std::deque<json>") From 7f359017d2d0da0138cfeafa9bfc2c5e0e892cea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 21 Jan 2017 16:41:14 +0100 Subject: [PATCH 101/130] rename template argument Json -> BasicJsonType --- src/json.hpp | 1536 +++++++++++++++++++++++++++-------------- src/json.hpp.re2c | 294 ++++---- test/src/unit-udt.cpp | 58 +- 3 files changed, 1183 insertions(+), 705 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index e9a6c80b3..2524a694e 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -187,7 +187,7 @@ struct conjunction<B1, Bn...> template <class B> struct negation : std::integral_constant < bool, !B::value > {}; -template <typename Json> std::string type_name(const Json& j) +template <typename BasicJsonType> std::string type_name(const BasicJsonType& j) { switch (j.m_type) { @@ -220,8 +220,8 @@ template <value_t> struct external_constructor; template <> struct external_constructor<value_t::boolean> { - template <typename Json> - static void construct(Json& j, typename Json::boolean_t b) noexcept + template <typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { j.m_type = value_t::boolean; j.m_value = b; @@ -232,8 +232,8 @@ struct external_constructor<value_t::boolean> template <> struct external_constructor<value_t::string> { - template <typename Json> - static void construct(Json& j, const typename Json::string_t& s) + template <typename BasicJsonType> + static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s) { j.m_type = value_t::string; j.m_value = s; @@ -244,12 +244,12 @@ struct external_constructor<value_t::string> template <> struct external_constructor<value_t::number_float> { - template <typename Json> - static void construct(Json& j, typename Json::number_float_t val) noexcept + template <typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept { // replace infinity and NAN by null if (not std::isfinite(val)) - j = Json{}; + j = BasicJsonType{}; else { j.m_type = value_t::number_float; @@ -262,8 +262,8 @@ struct external_constructor<value_t::number_float> template <> struct external_constructor<value_t::number_unsigned> { - template <typename Json> - static void construct(Json& j, typename Json::number_unsigned_t val) noexcept + template <typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept { j.m_type = value_t::number_unsigned; j.m_value = val; @@ -274,8 +274,8 @@ struct external_constructor<value_t::number_unsigned> template <> struct external_constructor<value_t::number_integer> { - template <typename Json> - static void construct(Json& j, typename Json::number_integer_t val) noexcept + template <typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept { j.m_type = value_t::number_integer; j.m_value = val; @@ -286,25 +286,25 @@ struct external_constructor<value_t::number_integer> template <> struct external_constructor<value_t::array> { - template <typename Json> - static void construct(Json& j, const typename Json::array_t& arr) + template <typename BasicJsonType> + static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr) { j.m_type = value_t::array; j.m_value = arr; j.assert_invariant(); } - template <typename Json, typename CompatibleArrayType, + template <typename BasicJsonType, typename CompatibleArrayType, enable_if_t<not std::is_same<CompatibleArrayType, - typename Json::array_t>::value, + typename BasicJsonType::array_t>::value, int> = 0> - static void construct(Json& j, const CompatibleArrayType& arr) + static void construct(BasicJsonType& j, const CompatibleArrayType& arr) { using std::begin; using std::end; j.m_type = value_t::array; j.m_value.array = - j.template create<typename Json::array_t>(begin(arr), end(arr)); + j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr)); j.assert_invariant(); } }; @@ -312,26 +312,26 @@ struct external_constructor<value_t::array> template <> struct external_constructor<value_t::object> { - template <typename Json> - static void construct(Json& j, const typename Json::object_t& obj) + template <typename BasicJsonType> + static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj) { j.m_type = value_t::object; j.m_value = obj; j.assert_invariant(); } - template <typename Json, typename CompatibleObjectType, + template <typename BasicJsonType, typename CompatibleObjectType, enable_if_t<not std::is_same<CompatibleObjectType, - typename Json::object_t>::value, + typename BasicJsonType::object_t>::value, int> = 0> - static void construct(Json& j, const CompatibleObjectType& obj) + static void construct(BasicJsonType& j, const CompatibleObjectType& obj) { using std::begin; using std::end; j.m_type = value_t::object; j.m_value.object = - j.template create<typename Json::object_t>(begin(obj), end(obj)); + j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj)); j.assert_invariant(); } }; @@ -377,27 +377,27 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> typename CompatibleObjectType::mapped_type>::value; }; -template<class Json, class CompatibleObjectType> +template<class BasicJsonType, class CompatibleObjectType> struct is_compatible_object_type { static auto constexpr value = is_compatible_object_type_impl < conjunction<negation<std::is_same<void, CompatibleObjectType>>, has_mapped_type<CompatibleObjectType>, has_key_type<CompatibleObjectType>>::value, - typename Json::object_t, CompatibleObjectType >::value; + typename BasicJsonType::object_t, CompatibleObjectType >::value; }; -template <typename Json, typename T> +template <typename BasicJsonType, typename T> struct is_basic_json_nested_type { - static auto constexpr value = std::is_same<T, typename Json::iterator>::value or - std::is_same<T, typename Json::const_iterator>::value or - std::is_same<T, typename Json::reverse_iterator>::value or - std::is_same<T, typename Json::const_reverse_iterator>::value or - std::is_same<T, typename Json::json_pointer>::value; + static auto constexpr value = std::is_same<T, typename BasicJsonType::iterator>::value or + std::is_same<T, typename BasicJsonType::const_iterator>::value or + std::is_same<T, typename BasicJsonType::reverse_iterator>::value or + std::is_same<T, typename BasicJsonType::const_reverse_iterator>::value or + std::is_same<T, typename BasicJsonType::json_pointer>::value; }; -template <class Json, class CompatibleArrayType> +template <class BasicJsonType, class CompatibleArrayType> struct is_compatible_array_type { // TODO concept Container? @@ -405,10 +405,10 @@ struct is_compatible_array_type static auto constexpr value = conjunction<negation<std::is_same<void, CompatibleArrayType>>, negation<is_compatible_object_type< - Json, CompatibleArrayType>>, - negation<std::is_constructible<typename Json::string_t, + BasicJsonType, CompatibleArrayType>>, + negation<std::is_constructible<typename BasicJsonType::string_t, CompatibleArrayType>>, - negation<is_basic_json_nested_type<Json, CompatibleArrayType>>, + negation<is_basic_json_nested_type<BasicJsonType, CompatibleArrayType>>, has_value_type<CompatibleArrayType>, has_iterator<CompatibleArrayType>>::value; }; @@ -441,76 +441,76 @@ struct is_compatible_integer_type }; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists -template <typename Json, typename T> +template <typename BasicJsonType, typename T> struct has_from_json { private: // also check the return type of from_json template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( - std::declval<Json>(), std::declval<T&>()))>::value>> + std::declval<BasicJsonType>(), std::declval<T&>()))>::value>> static int detect(U&&); static void detect(...); public: static constexpr bool value = std::is_integral<decltype( - detect(std::declval<typename Json::template json_serializer<T, void>>()))>::value; + detect(std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value; }; // This trait checks if JSONSerializer<T>::from_json(json const&) exists // this overload is used for non-default-constructible user-defined-types -template <typename Json, typename T> +template <typename BasicJsonType, typename T> struct has_non_default_from_json { private: template < typename U, typename = enable_if_t<std::is_same< - T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value >> + T, decltype(uncvref_t<U>::from_json(std::declval<BasicJsonType>()))>::value >> static int detect(U&&); static void detect(...); public: static constexpr bool value = std::is_integral<decltype(detect( - std::declval<typename Json::template json_serializer<T, void>>()))>::value; + std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value; }; -// This trait checks if Json::json_serializer<T>::to_json exists -template <typename Json, typename T> +// This trait checks if BasicJsonType::json_serializer<T>::to_json exists +template <typename BasicJsonType, typename T> struct has_to_json { private: template <typename U, typename = decltype(uncvref_t<U>::to_json( - std::declval<Json&>(), std::declval<T>()))> + std::declval<BasicJsonType&>(), std::declval<T>()))> static int detect(U&&); static void detect(...); public: static constexpr bool value = std::is_integral<decltype(detect( - std::declval<typename Json::template json_serializer<T, void>>()))>::value; + std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value; }; // overloads for basic_json template parameters -template <typename Json, typename ArithmeticType, +template <typename BasicJsonType, typename ArithmeticType, enable_if_t<std::is_arithmetic<ArithmeticType>::value and not std::is_same<ArithmeticType, - typename Json::boolean_t>::value, + typename BasicJsonType::boolean_t>::value, int> = 0> -void get_arithmetic_value(const Json& j, ArithmeticType& val) +void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) { switch (static_cast<value_t>(j)) { case value_t::number_unsigned: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_unsigned_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); break; case value_t::number_integer: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_integer_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); break; case value_t::number_float: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_float_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); break; default: JSON_THROW( @@ -518,136 +518,136 @@ void get_arithmetic_value(const Json& j, ArithmeticType& val) } } -template <typename Json> -void to_json(Json& j, typename Json::boolean_t b) noexcept +template <typename BasicJsonType> +void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { external_constructor<value_t::boolean>::construct(j, b); } -template <typename Json, typename CompatibleString, - enable_if_t<std::is_constructible<typename Json::string_t, +template <typename BasicJsonType, typename CompatibleString, + enable_if_t<std::is_constructible<typename BasicJsonType::string_t, CompatibleString>::value, int> = 0> -void to_json(Json& j, const CompatibleString& s) +void to_json(BasicJsonType& j, const CompatibleString& s) { external_constructor<value_t::string>::construct(j, s); } -template <typename Json, typename FloatType, +template <typename BasicJsonType, typename FloatType, enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> -void to_json(Json& j, FloatType val) noexcept +void to_json(BasicJsonType& j, FloatType val) noexcept { - external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val)); + external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val)); } template < - typename Json, typename CompatibleNumberUnsignedType, - enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t, + typename BasicJsonType, typename CompatibleNumberUnsignedType, + enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t, CompatibleNumberUnsignedType>::value, int> = 0 > -void to_json(Json& j, CompatibleNumberUnsignedType val) noexcept +void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept { - external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val)); + external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val)); } template < - typename Json, typename CompatibleNumberIntegerType, - enable_if_t<is_compatible_integer_type<typename Json::number_integer_t, + typename BasicJsonType, typename CompatibleNumberIntegerType, + enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t, CompatibleNumberIntegerType>::value, int> = 0 > -void to_json(Json& j, CompatibleNumberIntegerType val) noexcept +void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept { - external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val)); + external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val)); } -template <typename Json, typename UnscopedEnumType, +template <typename BasicJsonType, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void to_json(Json& j, UnscopedEnumType e) noexcept +void to_json(BasicJsonType& j, UnscopedEnumType e) noexcept { external_constructor<value_t::number_integer>::construct(j, e); } template < - typename Json, typename CompatibleArrayType, + typename BasicJsonType, typename CompatibleArrayType, enable_if_t < - is_compatible_array_type<Json, CompatibleArrayType>::value or - std::is_same<typename Json::array_t, CompatibleArrayType>::value, + is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value or + std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value, int > = 0 > -void to_json(Json& j, const CompatibleArrayType& arr) +void to_json(BasicJsonType& j, const CompatibleArrayType& arr) { external_constructor<value_t::array>::construct(j, arr); } template < - typename Json, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, + typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0 > -void to_json(Json& j, const CompatibleObjectType& arr) +void to_json(BasicJsonType& j, const CompatibleObjectType& arr) { external_constructor<value_t::object>::construct(j, arr); } -template <typename Json> -void from_json(const Json& j, typename Json::boolean_t& b) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) { if (!j.is_boolean()) { JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j))); } - b = *j.template get_ptr<const typename Json::boolean_t*>(); + b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>(); } -template <typename Json> -void from_json(const Json& j, typename Json::string_t& s) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) { if (!j.is_string()) { JSON_THROW(std::domain_error("type must be string, but is " + type_name(j))); } - s = *j.template get_ptr<const typename Json::string_t*>(); + s = *j.template get_ptr<const typename BasicJsonType::string_t*>(); } -template <typename Json> -void from_json(const Json& j, typename Json::number_float_t& val) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val) { get_arithmetic_value(j, val); } -template <typename Json> -void from_json(const Json& j, typename Json::number_unsigned_t& val) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val) { get_arithmetic_value(j, val); } -template <typename Json> -void from_json(const Json& j, typename Json::number_integer_t& val) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val) { get_arithmetic_value(j, val); } -template <typename Json, typename UnscopedEnumType, +template <typename BasicJsonType, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void from_json(const Json& j, UnscopedEnumType& e) +void from_json(const BasicJsonType& j, UnscopedEnumType& e) { typename std::underlying_type<UnscopedEnumType>::type val = e; get_arithmetic_value(j, val); e = static_cast<UnscopedEnumType>(val); } -template <typename Json> -void from_json(const Json& j, typename Json::array_t& arr) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) { if (!j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } - arr = *j.template get_ptr<const typename Json::array_t*>(); + arr = *j.template get_ptr<const typename BasicJsonType::array_t*>(); } // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list -template <typename Json, typename T, typename Allocator> -void from_json(const Json& j, std::forward_list<T, Allocator>& l) +template <typename BasicJsonType, typename T, typename Allocator> +void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) { // do not perform the check when user wants to retrieve jsons // (except when it's null.. ?) @@ -655,7 +655,7 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l) { JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } - if (not std::is_same<T, Json>::value) + if (not std::is_same<T, BasicJsonType>::value) { if (!j.is_array()) { @@ -668,23 +668,23 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l) } } -template <typename Json, typename CompatibleArrayType> -void from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag<0>) +template <typename BasicJsonType, typename CompatibleArrayType> +void from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>) { using std::begin; using std::end; std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json & i) + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) { - // get<Json>() returns *this, this won't call a from_json method when - // value_type is Json + // get<BasicJsonType>() returns *this, this won't call a from_json method when + // value_type is BasicJsonType return i.template get<typename CompatibleArrayType::value_type>(); }); } -template <typename Json, typename CompatibleArrayType> -auto from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag<1>) +template <typename BasicJsonType, typename CompatibleArrayType> +auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>) -> decltype( arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), void()) @@ -694,28 +694,28 @@ auto from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag arr.reserve(j.size()); std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json & i) + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) { - // get<Json>() returns *this, this won't call a from_json method when - // value_type is Json + // get<BasicJsonType>() returns *this, this won't call a from_json method when + // value_type is BasicJsonType return i.template get<typename CompatibleArrayType::value_type>(); }); } template < - typename Json, typename CompatibleArrayType, - enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and - not std::is_same<typename Json::array_t, + typename BasicJsonType, typename CompatibleArrayType, + enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and + not std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value, int> = 0 > -void from_json(const Json& j, CompatibleArrayType& arr) +void from_json(const BasicJsonType& j, CompatibleArrayType& arr) { if (j.is_null()) { JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } - // when T == Json, do not check if value_t is correct - if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) + // when T == BasicJsonType, do not check if value_t is correct + if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value) { if (!j.is_array()) { @@ -727,17 +727,17 @@ void from_json(const Json& j, CompatibleArrayType& arr) template < - typename Json, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, + typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0 > -void from_json(const Json& j, CompatibleObjectType& obj) +void from_json(const BasicJsonType& j, CompatibleObjectType& obj) { if (!j.is_object()) { JSON_THROW(std::domain_error("type must be object, but is " + type_name(j))); } - auto inner_object = j.template get_ptr<const typename Json::object_t*>(); + auto inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>(); using std::begin; using std::end; // we could avoid the assignment, but this might require a for loop, which @@ -750,36 +750,36 @@ void from_json(const Json& j, CompatibleObjectType& obj) // note: Is it really necessary to provide explicit overloads for boolean_t etc.. // in case of a custom BooleanType which is not an arithmetic type? template < - typename Json, typename ArithmeticType, + typename BasicJsonType, typename ArithmeticType, enable_if_t < std::is_arithmetic<ArithmeticType>::value and not std::is_same<ArithmeticType, - typename Json::number_unsigned_t>::value and + typename BasicJsonType::number_unsigned_t>::value and not std::is_same<ArithmeticType, - typename Json::number_integer_t>::value and + typename BasicJsonType::number_integer_t>::value and not std::is_same<ArithmeticType, - typename Json::number_float_t>::value and - not std::is_same<ArithmeticType, typename Json::boolean_t>::value, + typename BasicJsonType::number_float_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value, int > = 0 > -void from_json(const Json& j, ArithmeticType& val) +void from_json(const BasicJsonType& j, ArithmeticType& val) { switch (static_cast<value_t>(j)) { case value_t::number_unsigned: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_unsigned_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); break; case value_t::number_integer: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_integer_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); break; case value_t::number_float: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_float_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); break; case value_t::boolean: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::boolean_t*>()); + *j.template get_ptr<const typename BasicJsonType::boolean_t*>()); break; default: JSON_THROW( @@ -789,8 +789,8 @@ void from_json(const Json& j, ArithmeticType& val) struct to_json_fn { - template <typename Json, typename T> - auto call(Json& j, T&& val, priority_tag<1>) const + template <typename BasicJsonType, typename T> + auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val)))) -> decltype(to_json(j, std::forward<T>(val)), void()) @@ -798,15 +798,15 @@ struct to_json_fn return to_json(j, std::forward<T>(val)); } - template <typename Json, typename T> - void call(Json&, T&&, priority_tag<0>) const noexcept + template <typename BasicJsonType, typename T> + void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept { - static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called"); + static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called"); } public: - template <typename Json, typename T> - void operator()(Json& j, T&& val) const + template <typename BasicJsonType, typename T> + void operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {}))) { return call(j, std::forward<T>(val), priority_tag<1> {}); @@ -816,23 +816,23 @@ struct to_json_fn struct from_json_fn { private: - template <typename Json, typename T> - auto call(const Json& j, T& val, priority_tag<1>) const + template <typename BasicJsonType, typename T> + auto call(const BasicJsonType& j, T& val, priority_tag<1>) const noexcept(noexcept(from_json(j, val))) -> decltype(from_json(j, val), void()) { return from_json(j, val); } - template <typename Json, typename T> - void call(const Json&, T&, priority_tag<0>) const noexcept + template <typename BasicJsonType, typename T> + void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept { - static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); + static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called"); } public: - template <typename Json, typename T> - void operator()(const Json& j, T& val) const + template <typename BasicJsonType, typename T> + void operator()(const BasicJsonType& j, T& val) const noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {}))) { return call(j, val, priority_tag<1> {}); @@ -881,14 +881,14 @@ constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::va template <typename = void, typename = void> struct adl_serializer { - template <typename Json, typename T> - static void from_json(Json&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<Json>(j), val))) + template <typename BasicJsonType, typename T> + static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val))) { - ::nlohmann::from_json(std::forward<Json>(j), val); + ::nlohmann::from_json(std::forward<BasicJsonType>(j), val); } - template <typename Json, typename T> - static void to_json(Json& j, T&& val) noexcept( + template <typename BasicJsonType, typename T> + static void to_json(BasicJsonType& j, T&& val) noexcept( noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) { ::nlohmann::to_json(j, std::forward<T>(val)); @@ -989,7 +989,7 @@ class basic_json { private: template <::nlohmann::value_t> friend struct detail::external_constructor; - template <typename Json> friend std::string detail::type_name(const Json&); + template <typename BasicJsonType> friend std::string detail::type_name(const BasicJsonType&); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -9468,437 +9468,915 @@ class basic_json m_start = m_cursor; assert(m_start != nullptr); - - { - lexer_char_t yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 160, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yybm[0+yych] & 32) { - goto basic_json_parser_6; - } - if (yych <= '[') { - if (yych <= '-') { - if (yych <= '"') { - if (yych <= 0x00) goto basic_json_parser_2; - if (yych <= '!') goto basic_json_parser_4; - goto basic_json_parser_9; - } else { - if (yych <= '+') goto basic_json_parser_4; - if (yych <= ',') goto basic_json_parser_10; - goto basic_json_parser_12; - } - } else { - if (yych <= '9') { - if (yych <= '/') goto basic_json_parser_4; - if (yych <= '0') goto basic_json_parser_13; - goto basic_json_parser_15; - } else { - if (yych <= ':') goto basic_json_parser_17; - if (yych <= 'Z') goto basic_json_parser_4; - goto basic_json_parser_19; - } - } - } else { - if (yych <= 'n') { - if (yych <= 'e') { - if (yych == ']') goto basic_json_parser_21; - goto basic_json_parser_4; - } else { - if (yych <= 'f') goto basic_json_parser_23; - if (yych <= 'm') goto basic_json_parser_4; - goto basic_json_parser_24; - } - } else { - if (yych <= 'z') { - if (yych == 't') goto basic_json_parser_25; - goto basic_json_parser_4; - } else { - if (yych <= '{') goto basic_json_parser_26; - if (yych == '}') goto basic_json_parser_28; - goto basic_json_parser_4; - } - } - } + + { + lexer_char_t yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = + { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + if ((m_limit - m_cursor) < 5) + { + fill_line_buffer(5); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 32) + { + goto basic_json_parser_6; + } + if (yych <= '[') + { + if (yych <= '-') + { + if (yych <= '"') + { + if (yych <= 0x00) + { + goto basic_json_parser_2; + } + if (yych <= '!') + { + goto basic_json_parser_4; + } + goto basic_json_parser_9; + } + else + { + if (yych <= '+') + { + goto basic_json_parser_4; + } + if (yych <= ',') + { + goto basic_json_parser_10; + } + goto basic_json_parser_12; + } + } + else + { + if (yych <= '9') + { + if (yych <= '/') + { + goto basic_json_parser_4; + } + if (yych <= '0') + { + goto basic_json_parser_13; + } + goto basic_json_parser_15; + } + else + { + if (yych <= ':') + { + goto basic_json_parser_17; + } + if (yych <= 'Z') + { + goto basic_json_parser_4; + } + goto basic_json_parser_19; + } + } + } + else + { + if (yych <= 'n') + { + if (yych <= 'e') + { + if (yych == ']') + { + goto basic_json_parser_21; + } + goto basic_json_parser_4; + } + else + { + if (yych <= 'f') + { + goto basic_json_parser_23; + } + if (yych <= 'm') + { + goto basic_json_parser_4; + } + goto basic_json_parser_24; + } + } + else + { + if (yych <= 'z') + { + if (yych == 't') + { + goto basic_json_parser_25; + } + goto basic_json_parser_4; + } + else + { + if (yych <= '{') + { + goto basic_json_parser_26; + } + if (yych == '}') + { + goto basic_json_parser_28; + } + goto basic_json_parser_4; + } + } + } basic_json_parser_2: - ++m_cursor; - { last_token_type = token_type::end_of_input; break; } + ++m_cursor; + { + last_token_type = token_type::end_of_input; + break; + } basic_json_parser_4: - ++m_cursor; + ++m_cursor; basic_json_parser_5: - { last_token_type = token_type::parse_error; break; } + { + last_token_type = token_type::parse_error; + break; + } basic_json_parser_6: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yybm[0+yych] & 32) { - goto basic_json_parser_6; - } - { continue; } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 32) + { + goto basic_json_parser_6; + } + { + continue; + } basic_json_parser_9: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych <= 0x1F) goto basic_json_parser_5; - if (yych <= 0x7F) goto basic_json_parser_31; - if (yych <= 0xC1) goto basic_json_parser_5; - if (yych <= 0xF4) goto basic_json_parser_31; - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych <= 0x1F) + { + goto basic_json_parser_5; + } + if (yych <= 0x7F) + { + goto basic_json_parser_31; + } + if (yych <= 0xC1) + { + goto basic_json_parser_5; + } + if (yych <= 0xF4) + { + goto basic_json_parser_31; + } + goto basic_json_parser_5; basic_json_parser_10: - ++m_cursor; - { last_token_type = token_type::value_separator; break; } + ++m_cursor; + { + last_token_type = token_type::value_separator; + break; + } basic_json_parser_12: - yych = *++m_cursor; - if (yych <= '/') goto basic_json_parser_5; - if (yych <= '0') goto basic_json_parser_13; - if (yych <= '9') goto basic_json_parser_15; - goto basic_json_parser_5; + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_5; + } + if (yych <= '0') + { + goto basic_json_parser_13; + } + if (yych <= '9') + { + goto basic_json_parser_15; + } + goto basic_json_parser_5; basic_json_parser_13: - yyaccept = 1; - yych = *(m_marker = ++m_cursor); - if (yych <= 'D') { - if (yych == '.') goto basic_json_parser_43; - } else { - if (yych <= 'E') goto basic_json_parser_44; - if (yych == 'e') goto basic_json_parser_44; - } + yyaccept = 1; + yych = *(m_marker = ++m_cursor); + if (yych <= 'D') + { + if (yych == '.') + { + goto basic_json_parser_43; + } + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + } basic_json_parser_14: - { last_token_type = token_type::value_number; break; } + { + last_token_type = token_type::value_number; + break; + } basic_json_parser_15: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yybm[0+yych] & 64) { - goto basic_json_parser_15; - } - if (yych <= 'D') { - if (yych == '.') goto basic_json_parser_43; - goto basic_json_parser_14; - } else { - if (yych <= 'E') goto basic_json_parser_44; - if (yych == 'e') goto basic_json_parser_44; - goto basic_json_parser_14; - } + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) + { + fill_line_buffer(3); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yybm[0 + yych] & 64) + { + goto basic_json_parser_15; + } + if (yych <= 'D') + { + if (yych == '.') + { + goto basic_json_parser_43; + } + goto basic_json_parser_14; + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + goto basic_json_parser_14; + } basic_json_parser_17: - ++m_cursor; - { last_token_type = token_type::name_separator; break; } + ++m_cursor; + { + last_token_type = token_type::name_separator; + break; + } basic_json_parser_19: - ++m_cursor; - { last_token_type = token_type::begin_array; break; } + ++m_cursor; + { + last_token_type = token_type::begin_array; + break; + } basic_json_parser_21: - ++m_cursor; - { last_token_type = token_type::end_array; break; } + ++m_cursor; + { + last_token_type = token_type::end_array; + break; + } basic_json_parser_23: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'a') goto basic_json_parser_45; - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'a') + { + goto basic_json_parser_45; + } + goto basic_json_parser_5; basic_json_parser_24: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'u') goto basic_json_parser_46; - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'u') + { + goto basic_json_parser_46; + } + goto basic_json_parser_5; basic_json_parser_25: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'r') goto basic_json_parser_47; - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'r') + { + goto basic_json_parser_47; + } + goto basic_json_parser_5; basic_json_parser_26: - ++m_cursor; - { last_token_type = token_type::begin_object; break; } + ++m_cursor; + { + last_token_type = token_type::begin_object; + break; + } basic_json_parser_28: - ++m_cursor; - { last_token_type = token_type::end_object; break; } + ++m_cursor; + { + last_token_type = token_type::end_object; + break; + } basic_json_parser_30: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; basic_json_parser_31: - if (yybm[0+yych] & 128) { - goto basic_json_parser_30; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x1F) goto basic_json_parser_32; - if (yych <= '"') goto basic_json_parser_33; - goto basic_json_parser_35; - } else { - if (yych <= 0xC1) goto basic_json_parser_32; - if (yych <= 0xDF) goto basic_json_parser_36; - goto basic_json_parser_37; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto basic_json_parser_39; - goto basic_json_parser_38; - } else { - if (yych <= 0xF0) goto basic_json_parser_40; - if (yych <= 0xF3) goto basic_json_parser_41; - if (yych <= 0xF4) goto basic_json_parser_42; - } - } + if (yybm[0 + yych] & 128) + { + goto basic_json_parser_30; + } + if (yych <= 0xE0) + { + if (yych <= '\\') + { + if (yych <= 0x1F) + { + goto basic_json_parser_32; + } + if (yych <= '"') + { + goto basic_json_parser_33; + } + goto basic_json_parser_35; + } + else + { + if (yych <= 0xC1) + { + goto basic_json_parser_32; + } + if (yych <= 0xDF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_37; + } + } + else + { + if (yych <= 0xEF) + { + if (yych == 0xED) + { + goto basic_json_parser_39; + } + goto basic_json_parser_38; + } + else + { + if (yych <= 0xF0) + { + goto basic_json_parser_40; + } + if (yych <= 0xF3) + { + goto basic_json_parser_41; + } + if (yych <= 0xF4) + { + goto basic_json_parser_42; + } + } + } basic_json_parser_32: - m_cursor = m_marker; - if (yyaccept == 0) { - goto basic_json_parser_5; - } else { - goto basic_json_parser_14; - } + m_cursor = m_marker; + if (yyaccept == 0) + { + goto basic_json_parser_5; + } + else + { + goto basic_json_parser_14; + } basic_json_parser_33: - ++m_cursor; - { last_token_type = token_type::value_string; break; } + ++m_cursor; + { + last_token_type = token_type::value_string; + break; + } basic_json_parser_35: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 'e') { - if (yych <= '/') { - if (yych == '"') goto basic_json_parser_30; - if (yych <= '.') goto basic_json_parser_32; - goto basic_json_parser_30; - } else { - if (yych <= '\\') { - if (yych <= '[') goto basic_json_parser_32; - goto basic_json_parser_30; - } else { - if (yych == 'b') goto basic_json_parser_30; - goto basic_json_parser_32; - } - } - } else { - if (yych <= 'q') { - if (yych <= 'f') goto basic_json_parser_30; - if (yych == 'n') goto basic_json_parser_30; - goto basic_json_parser_32; - } else { - if (yych <= 's') { - if (yych <= 'r') goto basic_json_parser_30; - goto basic_json_parser_32; - } else { - if (yych <= 't') goto basic_json_parser_30; - if (yych <= 'u') goto basic_json_parser_48; - goto basic_json_parser_32; - } - } - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 'e') + { + if (yych <= '/') + { + if (yych == '"') + { + goto basic_json_parser_30; + } + if (yych <= '.') + { + goto basic_json_parser_32; + } + goto basic_json_parser_30; + } + else + { + if (yych <= '\\') + { + if (yych <= '[') + { + goto basic_json_parser_32; + } + goto basic_json_parser_30; + } + else + { + if (yych == 'b') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + } + } + else + { + if (yych <= 'q') + { + if (yych <= 'f') + { + goto basic_json_parser_30; + } + if (yych == 'n') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 's') + { + if (yych <= 'r') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 't') + { + goto basic_json_parser_30; + } + if (yych <= 'u') + { + goto basic_json_parser_48; + } + goto basic_json_parser_32; + } + } + } basic_json_parser_36: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_30; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; basic_json_parser_37: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x9F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_36; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x9F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; basic_json_parser_38: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_36; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; basic_json_parser_39: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0x9F) goto basic_json_parser_36; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0x9F) + { + goto basic_json_parser_36; + } + goto basic_json_parser_32; basic_json_parser_40: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x8F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_38; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x8F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; basic_json_parser_41: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0xBF) goto basic_json_parser_38; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0xBF) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; basic_json_parser_42: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 0x7F) goto basic_json_parser_32; - if (yych <= 0x8F) goto basic_json_parser_38; - goto basic_json_parser_32; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 0x7F) + { + goto basic_json_parser_32; + } + if (yych <= 0x8F) + { + goto basic_json_parser_38; + } + goto basic_json_parser_32; basic_json_parser_43: - yych = *++m_cursor; - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_49; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_49; + } + goto basic_json_parser_32; basic_json_parser_44: - yych = *++m_cursor; - if (yych <= ',') { - if (yych == '+') goto basic_json_parser_51; - goto basic_json_parser_32; - } else { - if (yych <= '-') goto basic_json_parser_51; - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_52; - goto basic_json_parser_32; - } + yych = *++m_cursor; + if (yych <= ',') + { + if (yych == '+') + { + goto basic_json_parser_51; + } + goto basic_json_parser_32; + } + else + { + if (yych <= '-') + { + goto basic_json_parser_51; + } + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_52; + } + goto basic_json_parser_32; + } basic_json_parser_45: - yych = *++m_cursor; - if (yych == 'l') goto basic_json_parser_54; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_54; + } + goto basic_json_parser_32; basic_json_parser_46: - yych = *++m_cursor; - if (yych == 'l') goto basic_json_parser_55; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_55; + } + goto basic_json_parser_32; basic_json_parser_47: - yych = *++m_cursor; - if (yych == 'u') goto basic_json_parser_56; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'u') + { + goto basic_json_parser_56; + } + goto basic_json_parser_32; basic_json_parser_48: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_57; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_57; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_57; - goto basic_json_parser_32; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_57; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_57; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_57; + } + goto basic_json_parser_32; + } basic_json_parser_49: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= 'D') { - if (yych <= '/') goto basic_json_parser_14; - if (yych <= '9') goto basic_json_parser_49; - goto basic_json_parser_14; - } else { - if (yych <= 'E') goto basic_json_parser_44; - if (yych == 'e') goto basic_json_parser_44; - goto basic_json_parser_14; - } + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) + { + fill_line_buffer(3); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= 'D') + { + if (yych <= '/') + { + goto basic_json_parser_14; + } + if (yych <= '9') + { + goto basic_json_parser_49; + } + goto basic_json_parser_14; + } + else + { + if (yych <= 'E') + { + goto basic_json_parser_44; + } + if (yych == 'e') + { + goto basic_json_parser_44; + } + goto basic_json_parser_14; + } basic_json_parser_51: - yych = *++m_cursor; - if (yych <= '/') goto basic_json_parser_32; - if (yych >= ':') goto basic_json_parser_32; + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych >= ':') + { + goto basic_json_parser_32; + } basic_json_parser_52: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '/') goto basic_json_parser_14; - if (yych <= '9') goto basic_json_parser_52; - goto basic_json_parser_14; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '/') + { + goto basic_json_parser_14; + } + if (yych <= '9') + { + goto basic_json_parser_52; + } + goto basic_json_parser_14; basic_json_parser_54: - yych = *++m_cursor; - if (yych == 's') goto basic_json_parser_58; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 's') + { + goto basic_json_parser_58; + } + goto basic_json_parser_32; basic_json_parser_55: - yych = *++m_cursor; - if (yych == 'l') goto basic_json_parser_59; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_59; + } + goto basic_json_parser_32; basic_json_parser_56: - yych = *++m_cursor; - if (yych == 'e') goto basic_json_parser_61; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'e') + { + goto basic_json_parser_61; + } + goto basic_json_parser_32; basic_json_parser_57: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_63; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_63; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_63; - goto basic_json_parser_32; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_63; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_63; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_63; + } + goto basic_json_parser_32; + } basic_json_parser_58: - yych = *++m_cursor; - if (yych == 'e') goto basic_json_parser_64; - goto basic_json_parser_32; + yych = *++m_cursor; + if (yych == 'e') + { + goto basic_json_parser_64; + } + goto basic_json_parser_32; basic_json_parser_59: - ++m_cursor; - { last_token_type = token_type::literal_null; break; } + ++m_cursor; + { + last_token_type = token_type::literal_null; + break; + } basic_json_parser_61: - ++m_cursor; - { last_token_type = token_type::literal_true; break; } + ++m_cursor; + { + last_token_type = token_type::literal_true; + break; + } basic_json_parser_63: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_66; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_66; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_66; - goto basic_json_parser_32; - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_66; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_66; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_66; + } + goto basic_json_parser_32; + } basic_json_parser_64: - ++m_cursor; - { last_token_type = token_type::literal_false; break; } + ++m_cursor; + { + last_token_type = token_type::literal_false; + break; + } basic_json_parser_66: - ++m_cursor; - if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE - yych = *m_cursor; - if (yych <= '@') { - if (yych <= '/') goto basic_json_parser_32; - if (yych <= '9') goto basic_json_parser_30; - goto basic_json_parser_32; - } else { - if (yych <= 'F') goto basic_json_parser_30; - if (yych <= '`') goto basic_json_parser_32; - if (yych <= 'f') goto basic_json_parser_30; - goto basic_json_parser_32; - } - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(1); // LCOV_EXCL_LINE + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_32; + } + if (yych <= '9') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_30; + } + if (yych <= '`') + { + goto basic_json_parser_32; + } + if (yych <= 'f') + { + goto basic_json_parser_30; + } + goto basic_json_parser_32; + } + } } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index cb4f3ad1a..94b72eb23 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -187,7 +187,7 @@ struct conjunction<B1, Bn...> template <class B> struct negation : std::integral_constant < bool, !B::value > {}; -template <typename Json> std::string type_name(const Json& j) +template <typename BasicJsonType> std::string type_name(const BasicJsonType& j) { switch (j.m_type) { @@ -220,8 +220,8 @@ template <value_t> struct external_constructor; template <> struct external_constructor<value_t::boolean> { - template <typename Json> - static void construct(Json& j, typename Json::boolean_t b) noexcept + template <typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { j.m_type = value_t::boolean; j.m_value = b; @@ -232,8 +232,8 @@ struct external_constructor<value_t::boolean> template <> struct external_constructor<value_t::string> { - template <typename Json> - static void construct(Json& j, const typename Json::string_t& s) + template <typename BasicJsonType> + static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s) { j.m_type = value_t::string; j.m_value = s; @@ -244,12 +244,12 @@ struct external_constructor<value_t::string> template <> struct external_constructor<value_t::number_float> { - template <typename Json> - static void construct(Json& j, typename Json::number_float_t val) noexcept + template <typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept { // replace infinity and NAN by null if (not std::isfinite(val)) - j = Json{}; + j = BasicJsonType{}; else { j.m_type = value_t::number_float; @@ -262,8 +262,8 @@ struct external_constructor<value_t::number_float> template <> struct external_constructor<value_t::number_unsigned> { - template <typename Json> - static void construct(Json& j, typename Json::number_unsigned_t val) noexcept + template <typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept { j.m_type = value_t::number_unsigned; j.m_value = val; @@ -274,8 +274,8 @@ struct external_constructor<value_t::number_unsigned> template <> struct external_constructor<value_t::number_integer> { - template <typename Json> - static void construct(Json& j, typename Json::number_integer_t val) noexcept + template <typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept { j.m_type = value_t::number_integer; j.m_value = val; @@ -286,25 +286,25 @@ struct external_constructor<value_t::number_integer> template <> struct external_constructor<value_t::array> { - template <typename Json> - static void construct(Json& j, const typename Json::array_t& arr) + template <typename BasicJsonType> + static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr) { j.m_type = value_t::array; j.m_value = arr; j.assert_invariant(); } - template <typename Json, typename CompatibleArrayType, + template <typename BasicJsonType, typename CompatibleArrayType, enable_if_t<not std::is_same<CompatibleArrayType, - typename Json::array_t>::value, + typename BasicJsonType::array_t>::value, int> = 0> - static void construct(Json& j, const CompatibleArrayType& arr) + static void construct(BasicJsonType& j, const CompatibleArrayType& arr) { using std::begin; using std::end; j.m_type = value_t::array; j.m_value.array = - j.template create<typename Json::array_t>(begin(arr), end(arr)); + j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr)); j.assert_invariant(); } }; @@ -312,26 +312,26 @@ struct external_constructor<value_t::array> template <> struct external_constructor<value_t::object> { - template <typename Json> - static void construct(Json& j, const typename Json::object_t& obj) + template <typename BasicJsonType> + static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj) { j.m_type = value_t::object; j.m_value = obj; j.assert_invariant(); } - template <typename Json, typename CompatibleObjectType, + template <typename BasicJsonType, typename CompatibleObjectType, enable_if_t<not std::is_same<CompatibleObjectType, - typename Json::object_t>::value, + typename BasicJsonType::object_t>::value, int> = 0> - static void construct(Json& j, const CompatibleObjectType& obj) + static void construct(BasicJsonType& j, const CompatibleObjectType& obj) { using std::begin; using std::end; j.m_type = value_t::object; j.m_value.object = - j.template create<typename Json::object_t>(begin(obj), end(obj)); + j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj)); j.assert_invariant(); } }; @@ -377,27 +377,27 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> typename CompatibleObjectType::mapped_type>::value; }; -template<class Json, class CompatibleObjectType> +template<class BasicJsonType, class CompatibleObjectType> struct is_compatible_object_type { static auto constexpr value = is_compatible_object_type_impl < conjunction<negation<std::is_same<void, CompatibleObjectType>>, has_mapped_type<CompatibleObjectType>, has_key_type<CompatibleObjectType>>::value, - typename Json::object_t, CompatibleObjectType >::value; + typename BasicJsonType::object_t, CompatibleObjectType >::value; }; -template <typename Json, typename T> +template <typename BasicJsonType, typename T> struct is_basic_json_nested_type { - static auto constexpr value = std::is_same<T, typename Json::iterator>::value or - std::is_same<T, typename Json::const_iterator>::value or - std::is_same<T, typename Json::reverse_iterator>::value or - std::is_same<T, typename Json::const_reverse_iterator>::value or - std::is_same<T, typename Json::json_pointer>::value; + static auto constexpr value = std::is_same<T, typename BasicJsonType::iterator>::value or + std::is_same<T, typename BasicJsonType::const_iterator>::value or + std::is_same<T, typename BasicJsonType::reverse_iterator>::value or + std::is_same<T, typename BasicJsonType::const_reverse_iterator>::value or + std::is_same<T, typename BasicJsonType::json_pointer>::value; }; -template <class Json, class CompatibleArrayType> +template <class BasicJsonType, class CompatibleArrayType> struct is_compatible_array_type { // TODO concept Container? @@ -405,10 +405,10 @@ struct is_compatible_array_type static auto constexpr value = conjunction<negation<std::is_same<void, CompatibleArrayType>>, negation<is_compatible_object_type< - Json, CompatibleArrayType>>, - negation<std::is_constructible<typename Json::string_t, + BasicJsonType, CompatibleArrayType>>, + negation<std::is_constructible<typename BasicJsonType::string_t, CompatibleArrayType>>, - negation<is_basic_json_nested_type<Json, CompatibleArrayType>>, + negation<is_basic_json_nested_type<BasicJsonType, CompatibleArrayType>>, has_value_type<CompatibleArrayType>, has_iterator<CompatibleArrayType>>::value; }; @@ -441,76 +441,76 @@ struct is_compatible_integer_type }; // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists -template <typename Json, typename T> +template <typename BasicJsonType, typename T> struct has_from_json { private: // also check the return type of from_json template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( - std::declval<Json>(), std::declval<T&>()))>::value>> + std::declval<BasicJsonType>(), std::declval<T&>()))>::value>> static int detect(U&&); static void detect(...); public: static constexpr bool value = std::is_integral<decltype( - detect(std::declval<typename Json::template json_serializer<T, void>>()))>::value; + detect(std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value; }; // This trait checks if JSONSerializer<T>::from_json(json const&) exists // this overload is used for non-default-constructible user-defined-types -template <typename Json, typename T> +template <typename BasicJsonType, typename T> struct has_non_default_from_json { private: template < typename U, typename = enable_if_t<std::is_same< - T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value >> + T, decltype(uncvref_t<U>::from_json(std::declval<BasicJsonType>()))>::value >> static int detect(U&&); static void detect(...); public: static constexpr bool value = std::is_integral<decltype(detect( - std::declval<typename Json::template json_serializer<T, void>>()))>::value; + std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value; }; -// This trait checks if Json::json_serializer<T>::to_json exists -template <typename Json, typename T> +// This trait checks if BasicJsonType::json_serializer<T>::to_json exists +template <typename BasicJsonType, typename T> struct has_to_json { private: template <typename U, typename = decltype(uncvref_t<U>::to_json( - std::declval<Json&>(), std::declval<T>()))> + std::declval<BasicJsonType&>(), std::declval<T>()))> static int detect(U&&); static void detect(...); public: static constexpr bool value = std::is_integral<decltype(detect( - std::declval<typename Json::template json_serializer<T, void>>()))>::value; + std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value; }; // overloads for basic_json template parameters -template <typename Json, typename ArithmeticType, +template <typename BasicJsonType, typename ArithmeticType, enable_if_t<std::is_arithmetic<ArithmeticType>::value and not std::is_same<ArithmeticType, - typename Json::boolean_t>::value, + typename BasicJsonType::boolean_t>::value, int> = 0> -void get_arithmetic_value(const Json& j, ArithmeticType& val) +void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) { switch (static_cast<value_t>(j)) { case value_t::number_unsigned: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_unsigned_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); break; case value_t::number_integer: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_integer_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); break; case value_t::number_float: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_float_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); break; default: JSON_THROW( @@ -518,136 +518,136 @@ void get_arithmetic_value(const Json& j, ArithmeticType& val) } } -template <typename Json> -void to_json(Json& j, typename Json::boolean_t b) noexcept +template <typename BasicJsonType> +void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { external_constructor<value_t::boolean>::construct(j, b); } -template <typename Json, typename CompatibleString, - enable_if_t<std::is_constructible<typename Json::string_t, +template <typename BasicJsonType, typename CompatibleString, + enable_if_t<std::is_constructible<typename BasicJsonType::string_t, CompatibleString>::value, int> = 0> -void to_json(Json& j, const CompatibleString& s) +void to_json(BasicJsonType& j, const CompatibleString& s) { external_constructor<value_t::string>::construct(j, s); } -template <typename Json, typename FloatType, +template <typename BasicJsonType, typename FloatType, enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> -void to_json(Json& j, FloatType val) noexcept +void to_json(BasicJsonType& j, FloatType val) noexcept { - external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val)); + external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val)); } template < - typename Json, typename CompatibleNumberUnsignedType, - enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t, + typename BasicJsonType, typename CompatibleNumberUnsignedType, + enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t, CompatibleNumberUnsignedType>::value, int> = 0 > -void to_json(Json& j, CompatibleNumberUnsignedType val) noexcept +void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept { - external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val)); + external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val)); } template < - typename Json, typename CompatibleNumberIntegerType, - enable_if_t<is_compatible_integer_type<typename Json::number_integer_t, + typename BasicJsonType, typename CompatibleNumberIntegerType, + enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t, CompatibleNumberIntegerType>::value, int> = 0 > -void to_json(Json& j, CompatibleNumberIntegerType val) noexcept +void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept { - external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val)); + external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val)); } -template <typename Json, typename UnscopedEnumType, +template <typename BasicJsonType, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void to_json(Json& j, UnscopedEnumType e) noexcept +void to_json(BasicJsonType& j, UnscopedEnumType e) noexcept { external_constructor<value_t::number_integer>::construct(j, e); } template < - typename Json, typename CompatibleArrayType, + typename BasicJsonType, typename CompatibleArrayType, enable_if_t < - is_compatible_array_type<Json, CompatibleArrayType>::value or - std::is_same<typename Json::array_t, CompatibleArrayType>::value, + is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value or + std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value, int > = 0 > -void to_json(Json& j, const CompatibleArrayType& arr) +void to_json(BasicJsonType& j, const CompatibleArrayType& arr) { external_constructor<value_t::array>::construct(j, arr); } template < - typename Json, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, + typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0 > -void to_json(Json& j, const CompatibleObjectType& arr) +void to_json(BasicJsonType& j, const CompatibleObjectType& arr) { external_constructor<value_t::object>::construct(j, arr); } -template <typename Json> -void from_json(const Json& j, typename Json::boolean_t& b) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) { if (!j.is_boolean()) { JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j))); } - b = *j.template get_ptr<const typename Json::boolean_t*>(); + b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>(); } -template <typename Json> -void from_json(const Json& j, typename Json::string_t& s) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) { if (!j.is_string()) { JSON_THROW(std::domain_error("type must be string, but is " + type_name(j))); } - s = *j.template get_ptr<const typename Json::string_t*>(); + s = *j.template get_ptr<const typename BasicJsonType::string_t*>(); } -template <typename Json> -void from_json(const Json& j, typename Json::number_float_t& val) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val) { get_arithmetic_value(j, val); } -template <typename Json> -void from_json(const Json& j, typename Json::number_unsigned_t& val) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val) { get_arithmetic_value(j, val); } -template <typename Json> -void from_json(const Json& j, typename Json::number_integer_t& val) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val) { get_arithmetic_value(j, val); } -template <typename Json, typename UnscopedEnumType, +template <typename BasicJsonType, typename UnscopedEnumType, enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void from_json(const Json& j, UnscopedEnumType& e) +void from_json(const BasicJsonType& j, UnscopedEnumType& e) { typename std::underlying_type<UnscopedEnumType>::type val = e; get_arithmetic_value(j, val); e = static_cast<UnscopedEnumType>(val); } -template <typename Json> -void from_json(const Json& j, typename Json::array_t& arr) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) { if (!j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } - arr = *j.template get_ptr<const typename Json::array_t*>(); + arr = *j.template get_ptr<const typename BasicJsonType::array_t*>(); } // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list -template <typename Json, typename T, typename Allocator> -void from_json(const Json& j, std::forward_list<T, Allocator>& l) +template <typename BasicJsonType, typename T, typename Allocator> +void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) { // do not perform the check when user wants to retrieve jsons // (except when it's null.. ?) @@ -655,7 +655,7 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l) { JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } - if (not std::is_same<T, Json>::value) + if (not std::is_same<T, BasicJsonType>::value) { if (!j.is_array()) { @@ -668,23 +668,23 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l) } } -template <typename Json, typename CompatibleArrayType> -void from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag<0>) +template <typename BasicJsonType, typename CompatibleArrayType> +void from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>) { using std::begin; using std::end; std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json & i) + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) { - // get<Json>() returns *this, this won't call a from_json method when - // value_type is Json + // get<BasicJsonType>() returns *this, this won't call a from_json method when + // value_type is BasicJsonType return i.template get<typename CompatibleArrayType::value_type>(); }); } -template <typename Json, typename CompatibleArrayType> -auto from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag<1>) +template <typename BasicJsonType, typename CompatibleArrayType> +auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>) -> decltype( arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), void()) @@ -694,28 +694,28 @@ auto from_json_array_impl(const Json& j, CompatibleArrayType& arr, priority_tag arr.reserve(j.size()); std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const Json & i) + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) { - // get<Json>() returns *this, this won't call a from_json method when - // value_type is Json + // get<BasicJsonType>() returns *this, this won't call a from_json method when + // value_type is BasicJsonType return i.template get<typename CompatibleArrayType::value_type>(); }); } template < - typename Json, typename CompatibleArrayType, - enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and - not std::is_same<typename Json::array_t, + typename BasicJsonType, typename CompatibleArrayType, + enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and + not std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value, int> = 0 > -void from_json(const Json& j, CompatibleArrayType& arr) +void from_json(const BasicJsonType& j, CompatibleArrayType& arr) { if (j.is_null()) { JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } - // when T == Json, do not check if value_t is correct - if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value) + // when T == BasicJsonType, do not check if value_t is correct + if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value) { if (!j.is_array()) { @@ -727,17 +727,17 @@ void from_json(const Json& j, CompatibleArrayType& arr) template < - typename Json, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value, + typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0 > -void from_json(const Json& j, CompatibleObjectType& obj) +void from_json(const BasicJsonType& j, CompatibleObjectType& obj) { if (!j.is_object()) { JSON_THROW(std::domain_error("type must be object, but is " + type_name(j))); } - auto inner_object = j.template get_ptr<const typename Json::object_t*>(); + auto inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>(); using std::begin; using std::end; // we could avoid the assignment, but this might require a for loop, which @@ -750,36 +750,36 @@ void from_json(const Json& j, CompatibleObjectType& obj) // note: Is it really necessary to provide explicit overloads for boolean_t etc.. // in case of a custom BooleanType which is not an arithmetic type? template < - typename Json, typename ArithmeticType, + typename BasicJsonType, typename ArithmeticType, enable_if_t < std::is_arithmetic<ArithmeticType>::value and not std::is_same<ArithmeticType, - typename Json::number_unsigned_t>::value and + typename BasicJsonType::number_unsigned_t>::value and not std::is_same<ArithmeticType, - typename Json::number_integer_t>::value and + typename BasicJsonType::number_integer_t>::value and not std::is_same<ArithmeticType, - typename Json::number_float_t>::value and - not std::is_same<ArithmeticType, typename Json::boolean_t>::value, + typename BasicJsonType::number_float_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value, int > = 0 > -void from_json(const Json& j, ArithmeticType& val) +void from_json(const BasicJsonType& j, ArithmeticType& val) { switch (static_cast<value_t>(j)) { case value_t::number_unsigned: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_unsigned_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); break; case value_t::number_integer: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_integer_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); break; case value_t::number_float: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::number_float_t*>()); + *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); break; case value_t::boolean: val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename Json::boolean_t*>()); + *j.template get_ptr<const typename BasicJsonType::boolean_t*>()); break; default: JSON_THROW( @@ -789,8 +789,8 @@ void from_json(const Json& j, ArithmeticType& val) struct to_json_fn { - template <typename Json, typename T> - auto call(Json& j, T&& val, priority_tag<1>) const + template <typename BasicJsonType, typename T> + auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val)))) -> decltype(to_json(j, std::forward<T>(val)), void()) @@ -798,15 +798,15 @@ struct to_json_fn return to_json(j, std::forward<T>(val)); } - template <typename Json, typename T> - void call(Json&, T&&, priority_tag<0>) const noexcept + template <typename BasicJsonType, typename T> + void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept { - static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called"); + static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called"); } public: - template <typename Json, typename T> - void operator()(Json& j, T&& val) const + template <typename BasicJsonType, typename T> + void operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {}))) { return call(j, std::forward<T>(val), priority_tag<1> {}); @@ -816,23 +816,23 @@ struct to_json_fn struct from_json_fn { private: - template <typename Json, typename T> - auto call(const Json& j, T& val, priority_tag<1>) const + template <typename BasicJsonType, typename T> + auto call(const BasicJsonType& j, T& val, priority_tag<1>) const noexcept(noexcept(from_json(j, val))) -> decltype(from_json(j, val), void()) { return from_json(j, val); } - template <typename Json, typename T> - void call(const Json&, T&, priority_tag<0>) const noexcept + template <typename BasicJsonType, typename T> + void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept { - static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called"); + static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called"); } public: - template <typename Json, typename T> - void operator()(const Json& j, T& val) const + template <typename BasicJsonType, typename T> + void operator()(const BasicJsonType& j, T& val) const noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {}))) { return call(j, val, priority_tag<1> {}); @@ -881,14 +881,14 @@ constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::va template <typename = void, typename = void> struct adl_serializer { - template <typename Json, typename T> - static void from_json(Json&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<Json>(j), val))) + template <typename BasicJsonType, typename T> + static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val))) { - ::nlohmann::from_json(std::forward<Json>(j), val); + ::nlohmann::from_json(std::forward<BasicJsonType>(j), val); } - template <typename Json, typename T> - static void to_json(Json& j, T&& val) noexcept( + template <typename BasicJsonType, typename T> + static void to_json(BasicJsonType& j, T&& val) noexcept( noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) { ::nlohmann::to_json(j, std::forward<T>(val)); @@ -989,7 +989,7 @@ class basic_json { private: template <::nlohmann::value_t> friend struct detail::external_constructor; - template <typename Json> friend std::string detail::type_name(const Json&); + template <typename BasicJsonType> friend std::string detail::type_name(const BasicJsonType&); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 35f864406..7c297190c 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -84,20 +84,20 @@ struct contact_book namespace udt { // templates because of the custom_json tests (see below) -template <typename Json> -void to_json(Json& j, age a) +template <typename BasicJsonType> +void to_json(BasicJsonType& j, age a) { j = a.m_val; } -template <typename Json> -void to_json(Json& j, const name& n) +template <typename BasicJsonType> +void to_json(BasicJsonType& j, const name& n) { j = n.m_val; } -template <typename Json> -void to_json(Json& j, country c) +template <typename BasicJsonType> +void to_json(BasicJsonType& j, country c) { switch (c) { @@ -113,10 +113,10 @@ void to_json(Json& j, country c) } } -template <typename Json> -void to_json(Json& j, const person& p) +template <typename BasicJsonType> +void to_json(BasicJsonType& j, const person& p) { - j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}}; + j = BasicJsonType{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}}; } void to_json(nlohmann::json& j, const address& a) @@ -171,20 +171,20 @@ bool operator==(const contact_book& lhs, const contact_book& rhs) // from_json methods namespace udt { -template <typename Json> -void from_json(const Json& j, age& a) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, age& a) { a.m_val = j.template get<int>(); } -template <typename Json> -void from_json(const Json& j, name& n) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, name& n) { n.m_val = j.template get<std::string>(); } -template <typename Json> -void from_json(const Json& j, country& c) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, country& c) { const auto str = j.template get<std::string>(); static const std::map<std::string, country> m = @@ -199,8 +199,8 @@ void from_json(const Json& j, country& c) c = it->second; } -template <typename Json> -void from_json(const Json& j, person& p) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, person& p) { p.m_age = j["age"].template get<age>(); p.m_name = j["name"].template get<name>(); @@ -493,20 +493,20 @@ struct pod_serializer { // use adl for non-pods, or scalar types template < - typename Json, typename U = T, + typename BasicJsonType, typename U = T, typename std::enable_if < not(std::is_pod<U>::value and std::is_class<U>::value), int >::type = 0 > - static void from_json(const Json& j, U& t) + static void from_json(const BasicJsonType& j, U& t) { using nlohmann::from_json; from_json(j, t); } // special behaviour for pods - template <typename Json, typename U = T, + template <typename BasicJsonType, typename U = T, typename std::enable_if< std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> - static void from_json(const Json& j, U& t) + static void from_json(const BasicJsonType& j, U& t) { std::uint64_t value; // TODO The following block is no longer relevant in this serializer, make another one that shows the issue @@ -529,19 +529,19 @@ struct pod_serializer } template < - typename Json, typename U = T, + typename BasicJsonType, typename U = T, typename std::enable_if < not(std::is_pod<U>::value and std::is_class<U>::value), int >::type = 0 > - static void to_json(Json& j, const T& t) + static void to_json(BasicJsonType& j, const T& t) { using nlohmann::to_json; to_json(j, t); } - template <typename Json, typename U = T, + template <typename BasicJsonType, typename U = T, typename std::enable_if< std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0> - static void to_json(Json& j, const T& t) noexcept + static void to_json(BasicJsonType& j, const T& t) noexcept { auto bytes = static_cast< const unsigned char*>(static_cast<const void*>(&t)); std::uint64_t value = bytes[0]; @@ -565,14 +565,14 @@ struct non_pod std::string s; }; -template <typename Json> -void to_json(Json& j, const non_pod& np) +template <typename BasicJsonType> +void to_json(BasicJsonType& j, const non_pod& np) { j = np.s; } -template <typename Json> -void from_json(const Json& j, non_pod& np) +template <typename BasicJsonType> +void from_json(const BasicJsonType& j, non_pod& np) { np.s = j.template get<std::string>(); } From 40ba5a8b7b4dffce2a24e43a4a108a04756dbfc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 21 Jan 2017 16:45:08 +0100 Subject: [PATCH 102/130] remove inline keyword from anonymous namespace (not needed) --- src/json.hpp | 2 +- src/json.hpp.re2c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 2524a694e..8e2cfed0b 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -870,7 +870,7 @@ struct DecimalSeparator : std::numpunct<char> }; } -inline namespace +namespace { constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value; constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value; diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 94b72eb23..4fcdb23f8 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -870,7 +870,7 @@ struct DecimalSeparator : std::numpunct<char> }; } -inline namespace +namespace { constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value; constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value; From f997758cad75c901262fc174481d622f5ff5a070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 21 Jan 2017 16:47:41 +0100 Subject: [PATCH 103/130] remove useless forward declaration of primitive_iterator_t --- src/json.hpp | 1 - src/json.hpp.re2c | 1 - 2 files changed, 2 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 8e2cfed0b..daa4e21b4 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -994,7 +994,6 @@ class basic_json using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>; - class primitive_iterator_t; public: using value_t = ::nlohmann::value_t; diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 4fcdb23f8..924a4ca1f 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -994,7 +994,6 @@ class basic_json using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>; - class primitive_iterator_t; public: using value_t = ::nlohmann::value_t; From 7d771c71ed3558e5affabe1c0ceb193fafbb431c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 21 Jan 2017 17:09:41 +0100 Subject: [PATCH 104/130] put back type_name in basic_json This can however not be done easily for value_t, since external_constructor depends on it, as is operator< which was moved outside basic_json too. This is not really an issue, since all basic_json classes share the same enum --- src/json.hpp | 63 ++++++++++++++++++++++------------------------- src/json.hpp.re2c | 63 ++++++++++++++++++++++------------------------- 2 files changed, 60 insertions(+), 66 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index daa4e21b4..124a794f2 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -187,27 +187,6 @@ struct conjunction<B1, Bn...> template <class B> struct negation : std::integral_constant < bool, !B::value > {}; -template <typename BasicJsonType> std::string type_name(const BasicJsonType& j) -{ - switch (j.m_type) - { - case value_t::null: - return "null"; - case value_t::object: - return "object"; - case value_t::array: - return "array"; - case value_t::string: - return "string"; - case value_t::boolean: - return "boolean"; - case value_t::discarded: - return "discarded"; - default: - return "number"; - } -} - // dispatch utility (taken from ranges-v3) template <unsigned N> struct priority_tag : priority_tag < N - 1 > {}; @@ -514,7 +493,7 @@ void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) break; default: JSON_THROW( - std::domain_error("type must be number, but is " + type_name(j))); + std::domain_error("type must be number, but is " + j.type_name())); } } @@ -593,7 +572,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) { if (!j.is_boolean()) { - JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be boolean, but is " + j.type_name())); } b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>(); } @@ -603,7 +582,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) { if (!j.is_string()) { - JSON_THROW(std::domain_error("type must be string, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be string, but is " + j.type_name())); } s = *j.template get_ptr<const typename BasicJsonType::string_t*>(); } @@ -640,7 +619,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) { if (!j.is_array()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } arr = *j.template get_ptr<const typename BasicJsonType::array_t*>(); } @@ -653,13 +632,13 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) // (except when it's null.. ?) if (j.is_null()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } if (not std::is_same<T, BasicJsonType>::value) { if (!j.is_array()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } } for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) @@ -712,14 +691,14 @@ void from_json(const BasicJsonType& j, CompatibleArrayType& arr) { if (j.is_null()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } // when T == BasicJsonType, do not check if value_t is correct if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value) { if (!j.is_array()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } } from_json_array_impl(j, arr, priority_tag<1> {}); @@ -734,7 +713,7 @@ void from_json(const BasicJsonType& j, CompatibleObjectType& obj) { if (!j.is_object()) { - JSON_THROW(std::domain_error("type must be object, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be object, but is " + j.type_name())); } auto inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>(); @@ -783,7 +762,7 @@ void from_json(const BasicJsonType& j, ArithmeticType& val) break; default: JSON_THROW( - std::domain_error("type must be number, but is " + type_name(j))); + std::domain_error("type must be number, but is " + j.type_name())); } } @@ -989,7 +968,6 @@ class basic_json { private: template <::nlohmann::value_t> friend struct detail::external_constructor; - template <typename BasicJsonType> friend std::string detail::type_name(const BasicJsonType&); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -7914,7 +7892,26 @@ class basic_json */ std::string type_name() const { - return detail::type_name(*this); + { + switch (m_type) + { + case value_t::null: + return "null"; + case value_t::object: + return "object"; + case value_t::array: + return "array"; + case value_t::string: + return "string"; + case value_t::boolean: + return "boolean"; + case value_t::discarded: + return "discarded"; + default: + return "number"; + } + } + } private: diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 924a4ca1f..7ba1cc855 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -187,27 +187,6 @@ struct conjunction<B1, Bn...> template <class B> struct negation : std::integral_constant < bool, !B::value > {}; -template <typename BasicJsonType> std::string type_name(const BasicJsonType& j) -{ - switch (j.m_type) - { - case value_t::null: - return "null"; - case value_t::object: - return "object"; - case value_t::array: - return "array"; - case value_t::string: - return "string"; - case value_t::boolean: - return "boolean"; - case value_t::discarded: - return "discarded"; - default: - return "number"; - } -} - // dispatch utility (taken from ranges-v3) template <unsigned N> struct priority_tag : priority_tag < N - 1 > {}; @@ -514,7 +493,7 @@ void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) break; default: JSON_THROW( - std::domain_error("type must be number, but is " + type_name(j))); + std::domain_error("type must be number, but is " + j.type_name())); } } @@ -593,7 +572,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) { if (!j.is_boolean()) { - JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be boolean, but is " + j.type_name())); } b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>(); } @@ -603,7 +582,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) { if (!j.is_string()) { - JSON_THROW(std::domain_error("type must be string, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be string, but is " + j.type_name())); } s = *j.template get_ptr<const typename BasicJsonType::string_t*>(); } @@ -640,7 +619,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) { if (!j.is_array()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } arr = *j.template get_ptr<const typename BasicJsonType::array_t*>(); } @@ -653,13 +632,13 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) // (except when it's null.. ?) if (j.is_null()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } if (not std::is_same<T, BasicJsonType>::value) { if (!j.is_array()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } } for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) @@ -712,14 +691,14 @@ void from_json(const BasicJsonType& j, CompatibleArrayType& arr) { if (j.is_null()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } // when T == BasicJsonType, do not check if value_t is correct if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value) { if (!j.is_array()) { - JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } } from_json_array_impl(j, arr, priority_tag<1> {}); @@ -734,7 +713,7 @@ void from_json(const BasicJsonType& j, CompatibleObjectType& obj) { if (!j.is_object()) { - JSON_THROW(std::domain_error("type must be object, but is " + type_name(j))); + JSON_THROW(std::domain_error("type must be object, but is " + j.type_name())); } auto inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>(); @@ -783,7 +762,7 @@ void from_json(const BasicJsonType& j, ArithmeticType& val) break; default: JSON_THROW( - std::domain_error("type must be number, but is " + type_name(j))); + std::domain_error("type must be number, but is " + j.type_name())); } } @@ -989,7 +968,6 @@ class basic_json { private: template <::nlohmann::value_t> friend struct detail::external_constructor; - template <typename BasicJsonType> friend std::string detail::type_name(const BasicJsonType&); /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -7914,7 +7892,26 @@ class basic_json */ std::string type_name() const { - return detail::type_name(*this); + { + switch (m_type) + { + case value_t::null: + return "null"; + case value_t::object: + return "object"; + case value_t::array: + return "array"; + case value_t::string: + return "string"; + case value_t::boolean: + return "boolean"; + case value_t::discarded: + return "discarded"; + default: + return "number"; + } + } + } private: From 37fd20b2eb6a03c0b1681db19283d4d770c9a1c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 21 Jan 2017 17:17:13 +0100 Subject: [PATCH 105/130] put uncvref_t, enable_if_t, value_t and operator<(value_t) in detail --- src/json.hpp | 127 +++++++++++++++++++++++----------------------- src/json.hpp.re2c | 127 +++++++++++++++++++++++----------------------- 2 files changed, 126 insertions(+), 128 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 124a794f2..c40691a50 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -107,7 +107,14 @@ SOFTWARE. */ namespace nlohmann { +// TODO update this doc +/*! +@brief unnamed namespace with internal helper functions +@since version 1.0.0 +*/ +namespace detail +{ /////////////////////////// // JSON type enumeration // /////////////////////////// @@ -147,6 +154,45 @@ enum class value_t : uint8_t discarded ///< discarded by the the parser callback function }; +////////////////////////////////////////// +// lexicographical comparison operators // +////////////////////////////////////////// + +/// @name lexicographical comparison operators +/// @{ +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string +- furthermore, each type is not smaller than itself + +@since version 1.0.0 +*/ +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + static constexpr std::array<uint8_t, 8> order = {{ + 0, // null + 3, // object + 4, // array + 5, // string + 1, // boolean + 2, // integer + 2, // unsigned + 2, // float + } + }; + + // discarded values are not comparable + if (lhs == value_t::discarded or rhs == value_t::discarded) + { + return false; + } + + return order[static_cast<std::size_t>(lhs)] < + order[static_cast<std::size_t>(rhs)]; +} + // alias templates to reduce boilerplate template <bool B, typename T = void> using enable_if_t = typename std::enable_if<B, T>::type; @@ -160,14 +206,6 @@ using is_unscoped_enum = std::integral_constant<bool, std::is_convertible<T, int>::value and std::is_enum<T>::value>; -// TODO update this doc -/*! -@brief unnamed namespace with internal helper functions -@since version 1.0.0 -*/ - -namespace detail -{ // Implementation of 2 C++17 constructs: conjunction, negation. // This is needed to avoid evaluating all the traits in a condition // @@ -967,14 +1005,14 @@ template < class basic_json { private: - template <::nlohmann::value_t> friend struct detail::external_constructor; + template <detail::value_t> friend struct detail::external_constructor; /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>; public: - using value_t = ::nlohmann::value_t; + using value_t = detail::value_t; // forward declarations template<typename U> class iter_impl; template<typename Base> class json_reverse_iterator; @@ -1866,13 +1904,13 @@ class basic_json @since version 2.1.0 */ - template <typename T, typename U = uncvref_t<T>, - enable_if_t<not std::is_base_of<std::istream, U>::value and - not std::is_same<U, basic_json_t>::value and - not detail::is_basic_json_nested_type< - basic_json_t, U>::value and - detail::has_to_json<basic_json, U>::value, - int> = 0> + template <typename T, typename U = detail::uncvref_t<T>, + detail::enable_if_t<not std::is_base_of<std::istream, U>::value and + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type< + basic_json_t, U>::value and + detail::has_to_json<basic_json, U>::value, + int> = 0> basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json( std::declval<basic_json_t&>(), std::forward<T>(val)))) { @@ -3036,7 +3074,7 @@ class basic_json @since version 2.1.0 */ template <typename T, - enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> + detail::enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> basic_json get() const { return *this; @@ -3059,8 +3097,8 @@ class basic_json */ template < typename T, - typename U = uncvref_t<T>, - enable_if_t < + typename U = detail::uncvref_t<T>, + detail::enable_if_t < not std::is_same<basic_json_t, U>::value and detail::has_from_json<basic_json_t, U>::value and not detail::has_non_default_from_json<basic_json_t, @@ -3099,11 +3137,11 @@ class basic_json */ template < typename T, - enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_non_default_from_json<basic_json_t, - uncvref_t<T>>::value, - int> = 0 > - uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) + detail::enable_if_t<not std::is_same<basic_json_t, detail::uncvref_t<T>>::value and + detail::has_non_default_from_json<basic_json_t, + detail::uncvref_t<T>>::value, + int> = 0 > + detail::uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { return JSONSerializer<T>::from_json(*this); } @@ -12401,45 +12439,6 @@ basic_json_parser_66: /// @} }; -////////////////////////////////////////// -// lexicographical comparison operators // -////////////////////////////////////////// - -/// @name lexicographical comparison operators -/// @{ -/*! -@brief comparison operator for JSON types - -Returns an ordering that is similar to Python: -- order: null < boolean < number < object < array < string -- furthermore, each type is not smaller than itself - -@since version 1.0.0 -*/ -inline bool operator<(const value_t lhs, const value_t rhs) noexcept -{ - static constexpr std::array<uint8_t, 8> order = {{ - 0, // null - 3, // object - 4, // array - 5, // string - 1, // boolean - 2, // integer - 2, // unsigned - 2, // float - } - }; - - // discarded values are not comparable - if (lhs == value_t::discarded or rhs == value_t::discarded) - { - return false; - } - - return order[static_cast<std::size_t>(lhs)] < - order[static_cast<std::size_t>(rhs)]; -} - ///////////// // presets // ///////////// diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 7ba1cc855..e3fee848b 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -107,7 +107,14 @@ SOFTWARE. */ namespace nlohmann { +// TODO update this doc +/*! +@brief unnamed namespace with internal helper functions +@since version 1.0.0 +*/ +namespace detail +{ /////////////////////////// // JSON type enumeration // /////////////////////////// @@ -147,6 +154,45 @@ enum class value_t : uint8_t discarded ///< discarded by the the parser callback function }; +////////////////////////////////////////// +// lexicographical comparison operators // +////////////////////////////////////////// + +/// @name lexicographical comparison operators +/// @{ +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string +- furthermore, each type is not smaller than itself + +@since version 1.0.0 +*/ +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + static constexpr std::array<uint8_t, 8> order = {{ + 0, // null + 3, // object + 4, // array + 5, // string + 1, // boolean + 2, // integer + 2, // unsigned + 2, // float + } + }; + + // discarded values are not comparable + if (lhs == value_t::discarded or rhs == value_t::discarded) + { + return false; + } + + return order[static_cast<std::size_t>(lhs)] < + order[static_cast<std::size_t>(rhs)]; +} + // alias templates to reduce boilerplate template <bool B, typename T = void> using enable_if_t = typename std::enable_if<B, T>::type; @@ -160,14 +206,6 @@ using is_unscoped_enum = std::integral_constant<bool, std::is_convertible<T, int>::value and std::is_enum<T>::value>; -// TODO update this doc -/*! -@brief unnamed namespace with internal helper functions -@since version 1.0.0 -*/ - -namespace detail -{ // Implementation of 2 C++17 constructs: conjunction, negation. // This is needed to avoid evaluating all the traits in a condition // @@ -967,14 +1005,14 @@ template < class basic_json { private: - template <::nlohmann::value_t> friend struct detail::external_constructor; + template <detail::value_t> friend struct detail::external_constructor; /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>; public: - using value_t = ::nlohmann::value_t; + using value_t = detail::value_t; // forward declarations template<typename U> class iter_impl; template<typename Base> class json_reverse_iterator; @@ -1866,13 +1904,13 @@ class basic_json @since version 2.1.0 */ - template <typename T, typename U = uncvref_t<T>, - enable_if_t<not std::is_base_of<std::istream, U>::value and - not std::is_same<U, basic_json_t>::value and - not detail::is_basic_json_nested_type< - basic_json_t, U>::value and - detail::has_to_json<basic_json, U>::value, - int> = 0> + template <typename T, typename U = detail::uncvref_t<T>, + detail::enable_if_t<not std::is_base_of<std::istream, U>::value and + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type< + basic_json_t, U>::value and + detail::has_to_json<basic_json, U>::value, + int> = 0> basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json( std::declval<basic_json_t&>(), std::forward<T>(val)))) { @@ -3036,7 +3074,7 @@ class basic_json @since version 2.1.0 */ template <typename T, - enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> + detail::enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> basic_json get() const { return *this; @@ -3059,8 +3097,8 @@ class basic_json */ template < typename T, - typename U = uncvref_t<T>, - enable_if_t < + typename U = detail::uncvref_t<T>, + detail::enable_if_t < not std::is_same<basic_json_t, U>::value and detail::has_from_json<basic_json_t, U>::value and not detail::has_non_default_from_json<basic_json_t, @@ -3099,11 +3137,11 @@ class basic_json */ template < typename T, - enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and - detail::has_non_default_from_json<basic_json_t, - uncvref_t<T>>::value, - int> = 0 > - uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) + detail::enable_if_t<not std::is_same<basic_json_t, detail::uncvref_t<T>>::value and + detail::has_non_default_from_json<basic_json_t, + detail::uncvref_t<T>>::value, + int> = 0 > + detail::uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { return JSONSerializer<T>::from_json(*this); } @@ -11551,45 +11589,6 @@ class basic_json /// @} }; -////////////////////////////////////////// -// lexicographical comparison operators // -////////////////////////////////////////// - -/// @name lexicographical comparison operators -/// @{ -/*! -@brief comparison operator for JSON types - -Returns an ordering that is similar to Python: -- order: null < boolean < number < object < array < string -- furthermore, each type is not smaller than itself - -@since version 1.0.0 -*/ -inline bool operator<(const value_t lhs, const value_t rhs) noexcept -{ - static constexpr std::array<uint8_t, 8> order = {{ - 0, // null - 3, // object - 4, // array - 5, // string - 1, // boolean - 2, // integer - 2, // unsigned - 2, // float - } - }; - - // discarded values are not comparable - if (lhs == value_t::discarded or rhs == value_t::discarded) - { - return false; - } - - return order[static_cast<std::size_t>(lhs)] < - order[static_cast<std::size_t>(rhs)]; -} - ///////////// // presets // ///////////// From ba0b35f414af97aba682cd4d29c405f358a53cd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 21 Jan 2017 17:20:32 +0100 Subject: [PATCH 106/130] use typename U = uncvref_t where appropriate --- src/json.hpp | 18 +++++++++--------- src/json.hpp.re2c | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index c40691a50..d238a28f3 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -3107,14 +3107,13 @@ class basic_json // do we really want the uncvref ? if a user call get<int &>, shouldn't we // static assert ? // i know there is a special behaviour for boolean_t* and such - auto get() const noexcept(noexcept(JSONSerializer<U>::from_json( - std::declval<const basic_json_t&>(), std::declval<U&>()))) - -> U + U get() const noexcept(noexcept(JSONSerializer<U>::from_json( + std::declval<const basic_json_t&>(), std::declval<U&>()))) { static_assert(std::is_default_constructible<U>::value and - std::is_copy_constructible<U>::value, - "Types must be DefaultConstructible and " - "CopyConstructible when used with get"); + std::is_copy_constructible<U>::value, + "Types must be DefaultConstructible and " + "CopyConstructible when used with get"); U ret; JSONSerializer<U>::from_json(*this, ret); return ret; @@ -3137,11 +3136,12 @@ class basic_json */ template < typename T, - detail::enable_if_t<not std::is_same<basic_json_t, detail::uncvref_t<T>>::value and + typename U = detail::uncvref_t<T>, + detail::enable_if_t<not std::is_same<basic_json_t, U>::value and detail::has_non_default_from_json<basic_json_t, - detail::uncvref_t<T>>::value, + U>::value, int> = 0 > - detail::uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) + U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { return JSONSerializer<T>::from_json(*this); } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index e3fee848b..9510cddca 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -3107,14 +3107,13 @@ class basic_json // do we really want the uncvref ? if a user call get<int &>, shouldn't we // static assert ? // i know there is a special behaviour for boolean_t* and such - auto get() const noexcept(noexcept(JSONSerializer<U>::from_json( - std::declval<const basic_json_t&>(), std::declval<U&>()))) - -> U + U get() const noexcept(noexcept(JSONSerializer<U>::from_json( + std::declval<const basic_json_t&>(), std::declval<U&>()))) { static_assert(std::is_default_constructible<U>::value and - std::is_copy_constructible<U>::value, - "Types must be DefaultConstructible and " - "CopyConstructible when used with get"); + std::is_copy_constructible<U>::value, + "Types must be DefaultConstructible and " + "CopyConstructible when used with get"); U ret; JSONSerializer<U>::from_json(*this, ret); return ret; @@ -3137,11 +3136,12 @@ class basic_json */ template < typename T, - detail::enable_if_t<not std::is_same<basic_json_t, detail::uncvref_t<T>>::value and + typename U = detail::uncvref_t<T>, + detail::enable_if_t<not std::is_same<basic_json_t, U>::value and detail::has_non_default_from_json<basic_json_t, - detail::uncvref_t<T>>::value, + U>::value, int> = 0 > - detail::uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) + U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { return JSONSerializer<T>::from_json(*this); } From 9c6ef74a28a2bbad33f84a5370227e77c9eb6c12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sat, 21 Jan 2017 17:56:59 +0100 Subject: [PATCH 107/130] add static_asserts/remove the need for CopyConstructible in get --- src/json.hpp | 22 +++++++++++++--------- src/json.hpp.re2c | 20 +++++++++++--------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index d238a28f3..f7101d142 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -3073,8 +3073,11 @@ class basic_json @since version 2.1.0 */ - template <typename T, - detail::enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> + template < + typename T, + detail::enable_if_t<std::is_same<typename std::remove_const<T>::type, + basic_json_t>::value, + int> = 0 > basic_json get() const { return *this; @@ -3104,16 +3107,15 @@ class basic_json not detail::has_non_default_from_json<basic_json_t, U>::value, int > = 0 > - // do we really want the uncvref ? if a user call get<int &>, shouldn't we - // static assert ? - // i know there is a special behaviour for boolean_t* and such U get() const noexcept(noexcept(JSONSerializer<U>::from_json( std::declval<const basic_json_t&>(), std::declval<U&>()))) { - static_assert(std::is_default_constructible<U>::value and - std::is_copy_constructible<U>::value, - "Types must be DefaultConstructible and " - "CopyConstructible when used with get"); + // we cannot static_assert on T being non-const, because there is support + // for get<const basic_json_t>(), which is why we still need the uncvref + static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); + static_assert(not std::is_pointer<T>::value, "get cannot be used with pointer types, you might want to use get_ptr"); + static_assert(std::is_default_constructible<U>::value, + "Types must be DefaultConstructible when used with get"); U ret; JSONSerializer<U>::from_json(*this, ret); return ret; @@ -3143,6 +3145,8 @@ class basic_json int> = 0 > U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { + static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); + static_assert(not std::is_pointer<T>::value, "get cannot be used with pointer types, you might want to use get_ptr"); return JSONSerializer<T>::from_json(*this); } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 9510cddca..65860c4d7 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -3073,8 +3073,11 @@ class basic_json @since version 2.1.0 */ - template <typename T, - detail::enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0> + template < + typename T, + detail::enable_if_t<std::is_same<typename std::remove_const<T>::type, + basic_json_t>::value, + int> = 0 > basic_json get() const { return *this; @@ -3104,16 +3107,14 @@ class basic_json not detail::has_non_default_from_json<basic_json_t, U>::value, int > = 0 > - // do we really want the uncvref ? if a user call get<int &>, shouldn't we - // static assert ? - // i know there is a special behaviour for boolean_t* and such U get() const noexcept(noexcept(JSONSerializer<U>::from_json( std::declval<const basic_json_t&>(), std::declval<U&>()))) { - static_assert(std::is_default_constructible<U>::value and - std::is_copy_constructible<U>::value, - "Types must be DefaultConstructible and " - "CopyConstructible when used with get"); + // we cannot static_assert on T being non-const, because there is support + // for get<const basic_json_t>(), which is why we still need the uncvref + static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); + static_assert(std::is_default_constructible<U>::value, + "Types must be DefaultConstructible when used with get"); U ret; JSONSerializer<U>::from_json(*this, ret); return ret; @@ -3143,6 +3144,7 @@ class basic_json int> = 0 > U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { + static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); return JSONSerializer<T>::from_json(*this); } From 9f8b270ed91808b621e26cab9c6c1dfa81459317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 22 Jan 2017 14:07:28 +0100 Subject: [PATCH 108/130] fix some warnings --- src/json.hpp | 4 +--- src/json.hpp.re2c | 2 +- test/src/unit-udt.cpp | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index f7101d142..7f17a5554 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -372,7 +372,7 @@ contains a `mapped_type`, whereas `std::vector` fails the test. public: \ static constexpr bool value = \ std::is_integral<decltype(detect(std::declval<T>()))>::value; \ - }; + } NLOHMANN_JSON_HAS_HELPER(mapped_type); NLOHMANN_JSON_HAS_HELPER(key_type); @@ -3113,7 +3113,6 @@ class basic_json // we cannot static_assert on T being non-const, because there is support // for get<const basic_json_t>(), which is why we still need the uncvref static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); - static_assert(not std::is_pointer<T>::value, "get cannot be used with pointer types, you might want to use get_ptr"); static_assert(std::is_default_constructible<U>::value, "Types must be DefaultConstructible when used with get"); U ret; @@ -3146,7 +3145,6 @@ class basic_json U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); - static_assert(not std::is_pointer<T>::value, "get cannot be used with pointer types, you might want to use get_ptr"); return JSONSerializer<T>::from_json(*this); } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 65860c4d7..8c670c909 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -372,7 +372,7 @@ contains a `mapped_type`, whereas `std::vector` fails the test. public: \ static constexpr bool value = \ std::is_integral<decltype(detect(std::declval<T>()))>::value; \ - }; + } NLOHMANN_JSON_HAS_HELPER(mapped_type); NLOHMANN_JSON_HAS_HELPER(key_type); diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 7c297190c..98a60c34d 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -348,7 +348,7 @@ TEST_CASE("adl_serializer specialization", "[udt]") json j = optPerson; CHECK(j.is_null()); - optPerson.reset(new udt::person{{42}, {"John Doe"}}); + optPerson.reset(new udt::person{{42}, {"John Doe"}, udt::country::russia}); j = optPerson; CHECK_FALSE(j.is_null()); @@ -357,7 +357,7 @@ TEST_CASE("adl_serializer specialization", "[udt]") SECTION("from_json") { - auto person = udt::person{{42}, {"John Doe"}}; + auto person = udt::person{{42}, {"John Doe"}, udt::country::russia}; json j = person; auto optPerson = j.get<std::shared_ptr<udt::person>>(); From 9f103d19d7a2df9f88f6d4749adc9071e2e6ad1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io> Date: Sun, 22 Jan 2017 14:23:24 +0100 Subject: [PATCH 109/130] add implicit conversions test (operator T()) --- test/src/unit-udt.cpp | 67 +++++++++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 19 deletions(-) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 98a60c34d..07f85b378 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -261,26 +261,55 @@ TEST_CASE("basic usage", "[udt]") { const auto big_json = u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json; - const auto parsed_book = big_json.get<udt::contact_book>(); - const auto book_name = big_json["name"].get<udt::name>(); - const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>(); - const auto contact_json = big_json["contacts"].at(0); - const auto contact = contact_json.get<udt::contact>(); - const auto person = contact_json["person"].get<udt::person>(); - const auto address = contact_json["address"].get<udt::address>(); - const auto age = contact_json["person"]["age"].get<udt::age>(); - const auto country = contact_json["person"]["country"].get<udt::country>(); - const auto name = contact_json["person"]["name"].get<udt::name>(); + SECTION("via explicit calls to get") + { + const auto parsed_book = big_json.get<udt::contact_book>(); + const auto book_name = big_json["name"].get<udt::name>(); + const auto contacts = + big_json["contacts"].get<std::vector<udt::contact>>(); + const auto contact_json = big_json["contacts"].at(0); + const auto contact = contact_json.get<udt::contact>(); + const auto person = contact_json["person"].get<udt::person>(); + const auto address = contact_json["address"].get<udt::address>(); + const auto age = contact_json["person"]["age"].get<udt::age>(); + const auto country = + contact_json["person"]["country"].get<udt::country>(); + const auto name = contact_json["person"]["name"].get<udt::name>(); - CHECK(age == a); - CHECK(name == n); - CHECK(country == c); - CHECK(address == addr); - CHECK(person == sfinae_addict); - CHECK(contact == cpp_programmer); - CHECK(contacts == book.m_contacts); - CHECK(book_name == udt::name{"C++"}); - CHECK(book == parsed_book); + CHECK(age == a); + CHECK(name == n); + CHECK(country == c); + CHECK(address == addr); + CHECK(person == sfinae_addict); + CHECK(contact == cpp_programmer); + CHECK(contacts == book.m_contacts); + CHECK(book_name == udt::name{"C++"}); + CHECK(book == parsed_book); + } + + SECTION("implicit conversions") + { + const udt::contact_book parsed_book = big_json; + const udt::name book_name = big_json["name"]; + const std::vector<udt::contact> contacts = big_json["contacts"]; + const auto contact_json = big_json["contacts"].at(0); + const udt::contact contact = contact_json; + const udt::person person = contact_json["person"]; + const udt::address address = contact_json["address"]; + const udt::age age = contact_json["person"]["age"]; + const udt::country country = contact_json["person"]["country"]; + const udt::name name = contact_json["person"]["name"]; + + CHECK(age == a); + CHECK(name == n); + CHECK(country == c); + CHECK(address == addr); + CHECK(person == sfinae_addict); + CHECK(contact == cpp_programmer); + CHECK(contacts == book.m_contacts); + CHECK(book_name == udt::name{"C++"}); + CHECK(book == parsed_book); + } } } From 3857e55290fa735a5910b678be2f7186d3ff97c9 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Tue, 24 Jan 2017 12:43:43 +0100 Subject: [PATCH 110/130] :lipstick: ran "make pretty" --- test/src/unit-udt.cpp | 80 +++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 07f85b378..4231e6870 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -263,52 +263,52 @@ TEST_CASE("basic usage", "[udt]") u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json; SECTION("via explicit calls to get") { - const auto parsed_book = big_json.get<udt::contact_book>(); - const auto book_name = big_json["name"].get<udt::name>(); - const auto contacts = - big_json["contacts"].get<std::vector<udt::contact>>(); - const auto contact_json = big_json["contacts"].at(0); - const auto contact = contact_json.get<udt::contact>(); - const auto person = contact_json["person"].get<udt::person>(); - const auto address = contact_json["address"].get<udt::address>(); - const auto age = contact_json["person"]["age"].get<udt::age>(); - const auto country = - contact_json["person"]["country"].get<udt::country>(); - const auto name = contact_json["person"]["name"].get<udt::name>(); + const auto parsed_book = big_json.get<udt::contact_book>(); + const auto book_name = big_json["name"].get<udt::name>(); + const auto contacts = + big_json["contacts"].get<std::vector<udt::contact>>(); + const auto contact_json = big_json["contacts"].at(0); + const auto contact = contact_json.get<udt::contact>(); + const auto person = contact_json["person"].get<udt::person>(); + const auto address = contact_json["address"].get<udt::address>(); + const auto age = contact_json["person"]["age"].get<udt::age>(); + const auto country = + contact_json["person"]["country"].get<udt::country>(); + const auto name = contact_json["person"]["name"].get<udt::name>(); - CHECK(age == a); - CHECK(name == n); - CHECK(country == c); - CHECK(address == addr); - CHECK(person == sfinae_addict); - CHECK(contact == cpp_programmer); - CHECK(contacts == book.m_contacts); - CHECK(book_name == udt::name{"C++"}); - CHECK(book == parsed_book); + CHECK(age == a); + CHECK(name == n); + CHECK(country == c); + CHECK(address == addr); + CHECK(person == sfinae_addict); + CHECK(contact == cpp_programmer); + CHECK(contacts == book.m_contacts); + CHECK(book_name == udt::name{"C++"}); + CHECK(book == parsed_book); } SECTION("implicit conversions") { - const udt::contact_book parsed_book = big_json; - const udt::name book_name = big_json["name"]; - const std::vector<udt::contact> contacts = big_json["contacts"]; - const auto contact_json = big_json["contacts"].at(0); - const udt::contact contact = contact_json; - const udt::person person = contact_json["person"]; - const udt::address address = contact_json["address"]; - const udt::age age = contact_json["person"]["age"]; - const udt::country country = contact_json["person"]["country"]; - const udt::name name = contact_json["person"]["name"]; + const udt::contact_book parsed_book = big_json; + const udt::name book_name = big_json["name"]; + const std::vector<udt::contact> contacts = big_json["contacts"]; + const auto contact_json = big_json["contacts"].at(0); + const udt::contact contact = contact_json; + const udt::person person = contact_json["person"]; + const udt::address address = contact_json["address"]; + const udt::age age = contact_json["person"]["age"]; + const udt::country country = contact_json["person"]["country"]; + const udt::name name = contact_json["person"]["name"]; - CHECK(age == a); - CHECK(name == n); - CHECK(country == c); - CHECK(address == addr); - CHECK(person == sfinae_addict); - CHECK(contact == cpp_programmer); - CHECK(contacts == book.m_contacts); - CHECK(book_name == udt::name{"C++"}); - CHECK(book == parsed_book); + CHECK(age == a); + CHECK(name == n); + CHECK(country == c); + CHECK(address == addr); + CHECK(person == sfinae_addict); + CHECK(contact == cpp_programmer); + CHECK(contacts == book.m_contacts); + CHECK(book_name == udt::name{"C++"}); + CHECK(book == parsed_book); } } } From 030cf674ef93992a789e513be82908af56e3005e Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Tue, 24 Jan 2017 12:49:38 +0100 Subject: [PATCH 111/130] :construction: fixed a warning --- test/src/unit-udt.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 4231e6870..241336f39 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -668,7 +668,7 @@ TEST_CASE("custom serializer that does adl by default", "[udt]") { using json = nlohmann::json; - auto me = udt::person{23, "theo", udt::country::france}; + auto me = udt::person{{23}, {"theo"}, udt::country::france}; json j = me; custom_json cj = me; From 250e5bf43d58eabe17b970ae15b8c37218b628b4 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Tue, 24 Jan 2017 13:47:33 +0100 Subject: [PATCH 112/130] :lipstick: overworked documentation and indentation --- src/json.hpp | 461 ++++++++++++++++++++++++---------------------- src/json.hpp.re2c | 461 ++++++++++++++++++++++++---------------------- 2 files changed, 486 insertions(+), 436 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 7f17a5554..5987b3853 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -107,12 +107,15 @@ SOFTWARE. */ namespace nlohmann { -// TODO update this doc + /*! @brief unnamed namespace with internal helper functions -@since version 1.0.0 -*/ +This namespace collects some functions that could not be defined inside the +@ref basic_json class. + +@since version 2.1.0 +*/ namespace detail { /////////////////////////// @@ -122,22 +125,24 @@ namespace detail /*! @brief the JSON type enumeration -This enumeration collects the different JSON types. It is internally used -to distinguish the stored values, and the functions @ref basic_json::is_null(), @ref -basic_json::is_object(), @ref basic_json::is_array(), @ref basic_json::is_string(), @ref basic_json::is_boolean(), @ref -basic_json::is_number() (with @ref basic_json::is_number_integer(), @ref basic_json::is_number_unsigned(), and -@ref basic_json::is_number_float()), @ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +This enumeration collects the different JSON types. It is internally used to +distinguish the stored values, and the functions @ref basic_json::is_null(), +@ref basic_json::is_object(), @ref basic_json::is_array(), +@ref basic_json::is_string(), @ref basic_json::is_boolean(), +@ref basic_json::is_number() (with @ref basic_json::is_number_integer(), +@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), +@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and @ref basic_json::is_structured() rely on it. -@note There are three enumeration entries (number_integer, -number_unsigned, and number_float), because the library distinguishes -these three types for numbers: @ref basic_json::number_unsigned_t is used for unsigned -integers, @ref basic_json::number_integer_t is used for signed integers, and @ref -basic_json::number_float_t is used for floating-point numbers or to approximate -integers which do not fit in the limits of their respective type. +@note There are three enumeration entries (number_integer, number_unsigned, and +number_float), because the library distinguishes these three types for numbers: +@ref basic_json::number_unsigned_t is used for unsigned integers, +@ref basic_json::number_integer_t is used for signed integers, and +@ref basic_json::number_float_t is used for floating-point numbers or to +approximate integers which do not fit in the limits of their respective type. -@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON value with -the default value for a given type +@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON +value with the default value for a given type @since version 1.0.0 */ @@ -154,12 +159,6 @@ enum class value_t : uint8_t discarded ///< discarded by the the parser callback function }; -////////////////////////////////////////// -// lexicographical comparison operators // -////////////////////////////////////////// - -/// @name lexicographical comparison operators -/// @{ /*! @brief comparison operator for JSON types @@ -193,51 +192,62 @@ inline bool operator<(const value_t lhs, const value_t rhs) noexcept order[static_cast<std::size_t>(rhs)]; } + +///////////// +// helpers // +///////////// + // alias templates to reduce boilerplate -template <bool B, typename T = void> +template<bool B, typename T = void> using enable_if_t = typename std::enable_if<B, T>::type; -template <typename T> +template<typename T> using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type; // Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait -template <typename T> +template<typename T> using is_unscoped_enum = std::integral_constant<bool, std::is_convertible<T, int>::value and std::is_enum<T>::value>; -// Implementation of 2 C++17 constructs: conjunction, negation. -// This is needed to avoid evaluating all the traits in a condition -// -// For example: not std::is_same<void, T>::value and has_value_type<T>::value -// will not compile when T = void (on MSVC at least) -// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value -// will stop evaluating if negation<...>::value == false -// -// Please note that those constructs must be used with caution, since symbols can -// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors) -// Only use it when you have too (see example ahead) -template <class...> struct conjunction : std::true_type {}; -template <class B1> struct conjunction<B1> : B1 {}; -template <class B1, class... Bn> -struct conjunction<B1, Bn...> -: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; +/* +Implementation of 2 C++17 constructs: conjunction, negation. This is needed +to avoid evaluating all the traits in a condition -template <class B> struct negation : std::integral_constant < bool, !B::value > {}; +For example: not std::is_same<void, T>::value and has_value_type<T>::value +will not compile when T = void (on MSVC at least). Whereas +conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value will +stop evaluating if negation<...>::value == false + +Please note that those constructs must be used with caution, since symbols can +become very long quickly (which can slow down compilation and cause MSVC +internal compiler errors). Only use it when you have to (see example ahead). +*/ +template<class...> struct conjunction : std::true_type {}; +template<class B1> struct conjunction<B1> : B1 {}; +template<class B1, class... Bn> +struct conjunction<B1, Bn...> : std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; + +template<class B> struct negation : std::integral_constant < bool, !B::value > {}; // dispatch utility (taken from ranges-v3) -template <unsigned N> struct priority_tag : priority_tag < N - 1 > {}; +template<unsigned N> struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; -template <> struct priority_tag<0> {}; + +////////////////// +// constructors // +////////////////// // This is an experiment. I need this to move constructors out of basic_json. -// I'm sure there is a better way, but this might need a big basic_json refactoring -template <value_t> struct external_constructor; +// I'm sure there is a better way, but this might need a big basic_json +// refactoring +template<value_t> struct external_constructor; -template <> +template<> struct external_constructor<value_t::boolean> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { j.m_type = value_t::boolean; @@ -246,10 +256,10 @@ struct external_constructor<value_t::boolean> } }; -template <> +template<> struct external_constructor<value_t::string> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s) { j.m_type = value_t::string; @@ -258,15 +268,17 @@ struct external_constructor<value_t::string> } }; -template <> +template<> struct external_constructor<value_t::number_float> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept { // replace infinity and NAN by null if (not std::isfinite(val)) + { j = BasicJsonType{}; + } else { j.m_type = value_t::number_float; @@ -276,10 +288,10 @@ struct external_constructor<value_t::number_float> } }; -template <> +template<> struct external_constructor<value_t::number_unsigned> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept { j.m_type = value_t::number_unsigned; @@ -288,10 +300,10 @@ struct external_constructor<value_t::number_unsigned> } }; -template <> +template<> struct external_constructor<value_t::number_integer> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept { j.m_type = value_t::number_integer; @@ -300,10 +312,10 @@ struct external_constructor<value_t::number_integer> } }; -template <> +template<> struct external_constructor<value_t::array> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr) { j.m_type = value_t::array; @@ -311,25 +323,24 @@ struct external_constructor<value_t::array> j.assert_invariant(); } - template <typename BasicJsonType, typename CompatibleArrayType, - enable_if_t<not std::is_same<CompatibleArrayType, - typename BasicJsonType::array_t>::value, - int> = 0> + template<typename BasicJsonType, typename CompatibleArrayType, + enable_if_t<not std::is_same<CompatibleArrayType, + typename BasicJsonType::array_t>::value, + int> = 0> static void construct(BasicJsonType& j, const CompatibleArrayType& arr) { using std::begin; using std::end; j.m_type = value_t::array; - j.m_value.array = - j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr)); + j.m_value.array = j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr)); j.assert_invariant(); } }; -template <> +template<> struct external_constructor<value_t::object> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj) { j.m_type = value_t::object; @@ -337,22 +348,26 @@ struct external_constructor<value_t::object> j.assert_invariant(); } - template <typename BasicJsonType, typename CompatibleObjectType, - enable_if_t<not std::is_same<CompatibleObjectType, - typename BasicJsonType::object_t>::value, - int> = 0> + template<typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<not std::is_same<CompatibleObjectType, + typename BasicJsonType::object_t>::value, + int> = 0> static void construct(BasicJsonType& j, const CompatibleObjectType& obj) { using std::begin; using std::end; j.m_type = value_t::object; - j.m_value.object = - j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj)); + j.m_value.object = j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj)); j.assert_invariant(); } }; + +//////////////////////// +// has_/is_ functions // +//////////////////////// + /*! @brief Helper to determine whether there's a key_type for T. @@ -364,9 +379,9 @@ contains a `mapped_type`, whereas `std::vector` fails the test. @since version 1.0.0, overworked in version 2.0.6 */ #define NLOHMANN_JSON_HAS_HELPER(type) \ - template <typename T> struct has_##type { \ + template<typename T> struct has_##type { \ private: \ - template <typename U, typename = typename U::type> \ + template<typename U, typename = typename U::type> \ static int detect(U &&); \ static void detect(...); \ public: \ @@ -381,10 +396,10 @@ NLOHMANN_JSON_HAS_HELPER(iterator); #undef NLOHMANN_JSON_HAS_HELPER -template <bool B, class RealType, class CompatibleObjectType> +template<bool B, class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl : std::false_type {}; -template <class RealType, class CompatibleObjectType> +template<class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> { static constexpr auto value = @@ -404,7 +419,7 @@ struct is_compatible_object_type typename BasicJsonType::object_t, CompatibleObjectType >::value; }; -template <typename BasicJsonType, typename T> +template<typename BasicJsonType, typename T> struct is_basic_json_nested_type { static auto constexpr value = std::is_same<T, typename BasicJsonType::iterator>::value or @@ -414,11 +429,9 @@ struct is_basic_json_nested_type std::is_same<T, typename BasicJsonType::json_pointer>::value; }; -template <class BasicJsonType, class CompatibleArrayType> +template<class BasicJsonType, class CompatibleArrayType> struct is_compatible_array_type { - // TODO concept Container? - // this might not make VS happy static auto constexpr value = conjunction<negation<std::is_same<void, CompatibleArrayType>>, negation<is_compatible_object_type< @@ -430,10 +443,10 @@ struct is_compatible_array_type has_iterator<CompatibleArrayType>>::value; }; -template <bool, typename, typename> +template<bool, typename, typename> struct is_compatible_integer_type_impl : std::false_type {}; -template <typename RealIntegerType, typename CompatibleNumberIntegerType> +template<typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> { // is there an assert somewhere on overflows? @@ -447,24 +460,25 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn RealLimits::is_signed == CompatibleLimits::is_signed; }; -template <typename RealIntegerType, typename CompatibleNumberIntegerType> +template<typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { - static constexpr auto - value = is_compatible_integer_type_impl < - std::is_integral<CompatibleNumberIntegerType>::value and - not std::is_same<bool, CompatibleNumberIntegerType>::value, - RealIntegerType, CompatibleNumberIntegerType > ::value; + static constexpr auto value = + is_compatible_integer_type_impl < + std::is_integral<CompatibleNumberIntegerType>::value and + not std::is_same<bool, CompatibleNumberIntegerType>::value, + RealIntegerType, CompatibleNumberIntegerType > ::value; }; + // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists -template <typename BasicJsonType, typename T> +template<typename BasicJsonType, typename T> struct has_from_json { private: // also check the return type of from_json - template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( - std::declval<BasicJsonType>(), std::declval<T&>()))>::value>> + template<typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( + std::declval<BasicJsonType>(), std::declval<T&>()))>::value>> static int detect(U&&); static void detect(...); @@ -475,7 +489,7 @@ struct has_from_json // This trait checks if JSONSerializer<T>::from_json(json const&) exists // this overload is used for non-default-constructible user-defined-types -template <typename BasicJsonType, typename T> +template<typename BasicJsonType, typename T> struct has_non_default_from_json { private: @@ -492,12 +506,12 @@ struct has_non_default_from_json }; // This trait checks if BasicJsonType::json_serializer<T>::to_json exists -template <typename BasicJsonType, typename T> +template<typename BasicJsonType, typename T> struct has_to_json { private: - template <typename U, typename = decltype(uncvref_t<U>::to_json( - std::declval<BasicJsonType&>(), std::declval<T>()))> + template<typename U, typename = decltype(uncvref_t<U>::to_json( + std::declval<BasicJsonType&>(), std::declval<T>()))> static int detect(U&&); static void detect(...); @@ -506,58 +520,33 @@ struct has_to_json std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value; }; -// overloads for basic_json template parameters -template <typename BasicJsonType, typename ArithmeticType, - enable_if_t<std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, - typename BasicJsonType::boolean_t>::value, - int> = 0> -void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) -{ - switch (static_cast<value_t>(j)) - { - case value_t::number_unsigned: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); - break; - case value_t::number_integer: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); - break; - case value_t::number_float: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); - break; - default: - JSON_THROW( - std::domain_error("type must be number, but is " + j.type_name())); - } -} +///////////// +// to_json // +///////////// -template <typename BasicJsonType> +template<typename BasicJsonType> void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { external_constructor<value_t::boolean>::construct(j, b); } -template <typename BasicJsonType, typename CompatibleString, - enable_if_t<std::is_constructible<typename BasicJsonType::string_t, - CompatibleString>::value, - int> = 0> +template<typename BasicJsonType, typename CompatibleString, + enable_if_t<std::is_constructible<typename BasicJsonType::string_t, + CompatibleString>::value, + int> = 0> void to_json(BasicJsonType& j, const CompatibleString& s) { external_constructor<value_t::string>::construct(j, s); } -template <typename BasicJsonType, typename FloatType, - enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> +template<typename BasicJsonType, typename FloatType, + enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> void to_json(BasicJsonType& j, FloatType val) noexcept { external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val)); } - template < typename BasicJsonType, typename CompatibleNumberUnsignedType, enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t, @@ -578,8 +567,8 @@ void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val)); } -template <typename BasicJsonType, typename UnscopedEnumType, - enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> +template<typename BasicJsonType, typename UnscopedEnumType, + enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> void to_json(BasicJsonType& j, UnscopedEnumType e) noexcept { external_constructor<value_t::number_integer>::construct(j, e); @@ -605,7 +594,48 @@ void to_json(BasicJsonType& j, const CompatibleObjectType& arr) external_constructor<value_t::object>::construct(j, arr); } -template <typename BasicJsonType> + +/////////////// +// from_json // +/////////////// + +// overloads for basic_json template parameters +template<typename BasicJsonType, typename ArithmeticType, + enable_if_t<std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, + typename BasicJsonType::boolean_t>::value, + int> = 0> +void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) +{ + switch (static_cast<value_t>(j)) + { + case value_t::number_unsigned: + { + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); + break; + } + case value_t::number_integer: + { + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); + break; + } + case value_t::number_float: + { + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); + break; + } + default: + { + JSON_THROW( + std::domain_error("type must be number, but is " + j.type_name())); + } + } +} + +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) { if (!j.is_boolean()) @@ -615,7 +645,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>(); } -template <typename BasicJsonType> +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) { if (!j.is_string()) @@ -625,35 +655,35 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) s = *j.template get_ptr<const typename BasicJsonType::string_t*>(); } -template <typename BasicJsonType> +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val) { get_arithmetic_value(j, val); } -template <typename BasicJsonType> +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val) { get_arithmetic_value(j, val); } -template <typename BasicJsonType> +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val) { get_arithmetic_value(j, val); } -template <typename BasicJsonType, typename UnscopedEnumType, - enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void from_json(const BasicJsonType& j, UnscopedEnumType& e) +template<typename BasicJsonType, typename UnscopedEnumType, + enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> +void from_json(const BasicJsonType& j, UnscopedEnumType& e) { typename std::underlying_type<UnscopedEnumType>::type val = e; get_arithmetic_value(j, val); e = static_cast<UnscopedEnumType>(val); } -template <typename BasicJsonType> -void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) +template<typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) { if (!j.is_array()) { @@ -662,8 +692,9 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) arr = *j.template get_ptr<const typename BasicJsonType::array_t*>(); } -// forward_list doesn't have an insert method, TODO find a way to avoid including forward_list -template <typename BasicJsonType, typename T, typename Allocator> +// forward_list doesn't have an insert method +// TODO find a way to avoid including forward_list +template<typename BasicJsonType, typename T, typename Allocator> void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) { // do not perform the check when user wants to retrieve jsons @@ -685,23 +716,23 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) } } -template <typename BasicJsonType, typename CompatibleArrayType> -void from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>) +template<typename BasicJsonType, typename CompatibleArrayType> +void from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>) { using std::begin; using std::end; - std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) + std::transform(j.begin(), j.end(), + std::inserter(arr, end(arr)), [](const BasicJsonType & i) { - // get<BasicJsonType>() returns *this, this won't call a from_json method when - // value_type is BasicJsonType + // get<BasicJsonType>() returns *this, this won't call a from_json + // method when value_type is BasicJsonType return i.template get<typename CompatibleArrayType::value_type>(); }); } -template <typename BasicJsonType, typename CompatibleArrayType> -auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>) +template<typename BasicJsonType, typename CompatibleArrayType> +auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>) -> decltype( arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), void()) @@ -711,26 +742,24 @@ auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, pri arr.reserve(j.size()); std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) { - // get<BasicJsonType>() returns *this, this won't call a from_json method when - // value_type is BasicJsonType + // get<BasicJsonType>() returns *this, this won't call a from_json + // method when value_type is BasicJsonType return i.template get<typename CompatibleArrayType::value_type>(); }); } -template < - typename BasicJsonType, typename CompatibleArrayType, - enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and - not std::is_same<typename BasicJsonType::array_t, - CompatibleArrayType>::value, - int> = 0 > -void from_json(const BasicJsonType& j, CompatibleArrayType& arr) +template<typename BasicJsonType, typename CompatibleArrayType, + enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and + not std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value, int> = 0> +void from_json(const BasicJsonType& j, CompatibleArrayType& arr) { if (j.is_null()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } + // when T == BasicJsonType, do not check if value_t is correct if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value) { @@ -742,12 +771,9 @@ void from_json(const BasicJsonType& j, CompatibleArrayType& arr) from_json_array_impl(j, arr, priority_tag<1> {}); } - -template < - typename BasicJsonType, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, - int> = 0 > -void from_json(const BasicJsonType& j, CompatibleObjectType& obj) +template<typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0> +void from_json(const BasicJsonType& j, CompatibleObjectType& obj) { if (!j.is_object()) { @@ -766,63 +792,52 @@ void from_json(const BasicJsonType& j, CompatibleObjectType& obj) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. // in case of a custom BooleanType which is not an arithmetic type? -template < - typename BasicJsonType, typename ArithmeticType, - enable_if_t < - std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, - typename BasicJsonType::number_unsigned_t>::value and - not std::is_same<ArithmeticType, - typename BasicJsonType::number_integer_t>::value and - not std::is_same<ArithmeticType, - typename BasicJsonType::number_float_t>::value and - not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value, - int > = 0 > +template<typename BasicJsonType, typename ArithmeticType, + enable_if_t < + std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::number_unsigned_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::number_integer_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::number_float_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value, + int> = 0> void from_json(const BasicJsonType& j, ArithmeticType& val) { switch (static_cast<value_t>(j)) { case value_t::number_unsigned: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); break; case value_t::number_integer: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); break; case value_t::number_float: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>()); break; case value_t::boolean: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::boolean_t*>()); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>()); break; default: - JSON_THROW( - std::domain_error("type must be number, but is " + j.type_name())); + JSON_THROW(std::domain_error("type must be number, but is " + j.type_name())); } } struct to_json_fn { - template <typename BasicJsonType, typename T> - auto call(BasicJsonType& j, T&& val, priority_tag<1>) const - noexcept(noexcept(to_json(j, std::forward<T>(val)))) - -> decltype(to_json(j, std::forward<T>(val)), - void()) + template<typename BasicJsonType, typename T> + auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val)))) + -> decltype(to_json(j, std::forward<T>(val)), void()) { return to_json(j, std::forward<T>(val)); } - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept { static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called"); } public: - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> void operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {}))) { @@ -833,23 +848,23 @@ struct to_json_fn struct from_json_fn { private: - template <typename BasicJsonType, typename T> - auto call(const BasicJsonType& j, T& val, priority_tag<1>) const + template<typename BasicJsonType, typename T> + auto call(const BasicJsonType& j, T& val, priority_tag<1>) const noexcept(noexcept(from_json(j, val))) -> decltype(from_json(j, val), void()) { return from_json(j, val); } - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept { static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called"); } public: - template <typename BasicJsonType, typename T> - void operator()(const BasicJsonType& j, T& val) const + template<typename BasicJsonType, typename T> + void operator()(const BasicJsonType& j, T& val) const noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {}))) { return call(j, val, priority_tag<1> {}); @@ -857,15 +872,16 @@ struct from_json_fn }; // taken from ranges-v3 -template <typename T> +template<typename T> struct static_const { static constexpr T value{}; }; -template <typename T> +template<typename T> constexpr T static_const<T>::value; + /*! @brief helper class to create locales with decimal point @@ -885,7 +901,8 @@ struct DecimalSeparator : std::numpunct<char> return '.'; } }; -} +} // namespace detail + namespace { @@ -895,16 +912,16 @@ constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::va // default JSONSerializer template argument, doesn't care about template argument // will use ADL for serialization -template <typename = void, typename = void> +template<typename = void, typename = void> struct adl_serializer { - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val))) { ::nlohmann::from_json(std::forward<BasicJsonType>(j), val); } - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> static void to_json(BasicJsonType& j, T&& val) noexcept( noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) { @@ -912,6 +929,7 @@ struct adl_serializer } }; + /*! @brief a class to store JSON values @@ -1005,7 +1023,7 @@ template < class basic_json { private: - template <detail::value_t> friend struct detail::external_constructor; + template<detail::value_t> friend struct detail::external_constructor; /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -1017,7 +1035,7 @@ class basic_json template<typename U> class iter_impl; template<typename Base> class json_reverse_iterator; class json_pointer; - template <typename T, typename SFINAE> + template<typename T, typename SFINAE> using json_serializer = JSONSerializer<T, SFINAE>; ///////////////////// @@ -1904,13 +1922,13 @@ class basic_json @since version 2.1.0 */ - template <typename T, typename U = detail::uncvref_t<T>, - detail::enable_if_t<not std::is_base_of<std::istream, U>::value and - not std::is_same<U, basic_json_t>::value and - not detail::is_basic_json_nested_type< - basic_json_t, U>::value and - detail::has_to_json<basic_json, U>::value, - int> = 0> + template<typename T, typename U = detail::uncvref_t<T>, + detail::enable_if_t<not std::is_base_of<std::istream, U>::value and + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type< + basic_json_t, U>::value and + detail::has_to_json<basic_json, U>::value, + int> = 0> basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json( std::declval<basic_json_t&>(), std::forward<T>(val)))) { @@ -5714,6 +5732,13 @@ class basic_json /// @} public: + ////////////////////////////////////////// + // lexicographical comparison operators // + ////////////////////////////////////////// + + /// @name lexicographical comparison operators + /// @{ + /*! @brief comparison: equal @@ -10795,7 +10820,7 @@ basic_json_parser_66: for (; curptr < m_cursor; curptr++) { // quickly skip tests if a digit - if (*curptr < '0' || *curptr > '9') + if (*curptr < '0' or* curptr > '9') { if (*curptr == '.') { diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 8c670c909..0a7f207d7 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -107,12 +107,15 @@ SOFTWARE. */ namespace nlohmann { -// TODO update this doc + /*! @brief unnamed namespace with internal helper functions -@since version 1.0.0 -*/ +This namespace collects some functions that could not be defined inside the +@ref basic_json class. + +@since version 2.1.0 +*/ namespace detail { /////////////////////////// @@ -122,22 +125,24 @@ namespace detail /*! @brief the JSON type enumeration -This enumeration collects the different JSON types. It is internally used -to distinguish the stored values, and the functions @ref basic_json::is_null(), @ref -basic_json::is_object(), @ref basic_json::is_array(), @ref basic_json::is_string(), @ref basic_json::is_boolean(), @ref -basic_json::is_number() (with @ref basic_json::is_number_integer(), @ref basic_json::is_number_unsigned(), and -@ref basic_json::is_number_float()), @ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +This enumeration collects the different JSON types. It is internally used to +distinguish the stored values, and the functions @ref basic_json::is_null(), +@ref basic_json::is_object(), @ref basic_json::is_array(), +@ref basic_json::is_string(), @ref basic_json::is_boolean(), +@ref basic_json::is_number() (with @ref basic_json::is_number_integer(), +@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), +@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and @ref basic_json::is_structured() rely on it. -@note There are three enumeration entries (number_integer, -number_unsigned, and number_float), because the library distinguishes -these three types for numbers: @ref basic_json::number_unsigned_t is used for unsigned -integers, @ref basic_json::number_integer_t is used for signed integers, and @ref -basic_json::number_float_t is used for floating-point numbers or to approximate -integers which do not fit in the limits of their respective type. +@note There are three enumeration entries (number_integer, number_unsigned, and +number_float), because the library distinguishes these three types for numbers: +@ref basic_json::number_unsigned_t is used for unsigned integers, +@ref basic_json::number_integer_t is used for signed integers, and +@ref basic_json::number_float_t is used for floating-point numbers or to +approximate integers which do not fit in the limits of their respective type. -@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON value with -the default value for a given type +@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON +value with the default value for a given type @since version 1.0.0 */ @@ -154,12 +159,6 @@ enum class value_t : uint8_t discarded ///< discarded by the the parser callback function }; -////////////////////////////////////////// -// lexicographical comparison operators // -////////////////////////////////////////// - -/// @name lexicographical comparison operators -/// @{ /*! @brief comparison operator for JSON types @@ -193,51 +192,62 @@ inline bool operator<(const value_t lhs, const value_t rhs) noexcept order[static_cast<std::size_t>(rhs)]; } + +///////////// +// helpers // +///////////// + // alias templates to reduce boilerplate -template <bool B, typename T = void> +template<bool B, typename T = void> using enable_if_t = typename std::enable_if<B, T>::type; -template <typename T> +template<typename T> using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type; // Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait -template <typename T> +template<typename T> using is_unscoped_enum = std::integral_constant<bool, std::is_convertible<T, int>::value and std::is_enum<T>::value>; -// Implementation of 2 C++17 constructs: conjunction, negation. -// This is needed to avoid evaluating all the traits in a condition -// -// For example: not std::is_same<void, T>::value and has_value_type<T>::value -// will not compile when T = void (on MSVC at least) -// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value -// will stop evaluating if negation<...>::value == false -// -// Please note that those constructs must be used with caution, since symbols can -// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors) -// Only use it when you have too (see example ahead) -template <class...> struct conjunction : std::true_type {}; -template <class B1> struct conjunction<B1> : B1 {}; -template <class B1, class... Bn> -struct conjunction<B1, Bn...> -: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; +/* +Implementation of 2 C++17 constructs: conjunction, negation. This is needed +to avoid evaluating all the traits in a condition -template <class B> struct negation : std::integral_constant < bool, !B::value > {}; +For example: not std::is_same<void, T>::value and has_value_type<T>::value +will not compile when T = void (on MSVC at least). Whereas +conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value will +stop evaluating if negation<...>::value == false + +Please note that those constructs must be used with caution, since symbols can +become very long quickly (which can slow down compilation and cause MSVC +internal compiler errors). Only use it when you have to (see example ahead). +*/ +template<class...> struct conjunction : std::true_type {}; +template<class B1> struct conjunction<B1> : B1 {}; +template<class B1, class... Bn> +struct conjunction<B1, Bn...> : std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {}; + +template<class B> struct negation : std::integral_constant < bool, !B::value > {}; // dispatch utility (taken from ranges-v3) -template <unsigned N> struct priority_tag : priority_tag < N - 1 > {}; +template<unsigned N> struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; -template <> struct priority_tag<0> {}; + +////////////////// +// constructors // +////////////////// // This is an experiment. I need this to move constructors out of basic_json. -// I'm sure there is a better way, but this might need a big basic_json refactoring -template <value_t> struct external_constructor; +// I'm sure there is a better way, but this might need a big basic_json +// refactoring +template<value_t> struct external_constructor; -template <> +template<> struct external_constructor<value_t::boolean> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { j.m_type = value_t::boolean; @@ -246,10 +256,10 @@ struct external_constructor<value_t::boolean> } }; -template <> +template<> struct external_constructor<value_t::string> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s) { j.m_type = value_t::string; @@ -258,15 +268,17 @@ struct external_constructor<value_t::string> } }; -template <> +template<> struct external_constructor<value_t::number_float> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept { // replace infinity and NAN by null if (not std::isfinite(val)) + { j = BasicJsonType{}; + } else { j.m_type = value_t::number_float; @@ -276,10 +288,10 @@ struct external_constructor<value_t::number_float> } }; -template <> +template<> struct external_constructor<value_t::number_unsigned> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept { j.m_type = value_t::number_unsigned; @@ -288,10 +300,10 @@ struct external_constructor<value_t::number_unsigned> } }; -template <> +template<> struct external_constructor<value_t::number_integer> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept { j.m_type = value_t::number_integer; @@ -300,10 +312,10 @@ struct external_constructor<value_t::number_integer> } }; -template <> +template<> struct external_constructor<value_t::array> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr) { j.m_type = value_t::array; @@ -311,25 +323,24 @@ struct external_constructor<value_t::array> j.assert_invariant(); } - template <typename BasicJsonType, typename CompatibleArrayType, - enable_if_t<not std::is_same<CompatibleArrayType, - typename BasicJsonType::array_t>::value, - int> = 0> + template<typename BasicJsonType, typename CompatibleArrayType, + enable_if_t<not std::is_same<CompatibleArrayType, + typename BasicJsonType::array_t>::value, + int> = 0> static void construct(BasicJsonType& j, const CompatibleArrayType& arr) { using std::begin; using std::end; j.m_type = value_t::array; - j.m_value.array = - j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr)); + j.m_value.array = j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr)); j.assert_invariant(); } }; -template <> +template<> struct external_constructor<value_t::object> { - template <typename BasicJsonType> + template<typename BasicJsonType> static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj) { j.m_type = value_t::object; @@ -337,22 +348,26 @@ struct external_constructor<value_t::object> j.assert_invariant(); } - template <typename BasicJsonType, typename CompatibleObjectType, - enable_if_t<not std::is_same<CompatibleObjectType, - typename BasicJsonType::object_t>::value, - int> = 0> + template<typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<not std::is_same<CompatibleObjectType, + typename BasicJsonType::object_t>::value, + int> = 0> static void construct(BasicJsonType& j, const CompatibleObjectType& obj) { using std::begin; using std::end; j.m_type = value_t::object; - j.m_value.object = - j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj)); + j.m_value.object = j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj)); j.assert_invariant(); } }; + +//////////////////////// +// has_/is_ functions // +//////////////////////// + /*! @brief Helper to determine whether there's a key_type for T. @@ -364,9 +379,9 @@ contains a `mapped_type`, whereas `std::vector` fails the test. @since version 1.0.0, overworked in version 2.0.6 */ #define NLOHMANN_JSON_HAS_HELPER(type) \ - template <typename T> struct has_##type { \ + template<typename T> struct has_##type { \ private: \ - template <typename U, typename = typename U::type> \ + template<typename U, typename = typename U::type> \ static int detect(U &&); \ static void detect(...); \ public: \ @@ -381,10 +396,10 @@ NLOHMANN_JSON_HAS_HELPER(iterator); #undef NLOHMANN_JSON_HAS_HELPER -template <bool B, class RealType, class CompatibleObjectType> +template<bool B, class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl : std::false_type {}; -template <class RealType, class CompatibleObjectType> +template<class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType> { static constexpr auto value = @@ -404,7 +419,7 @@ struct is_compatible_object_type typename BasicJsonType::object_t, CompatibleObjectType >::value; }; -template <typename BasicJsonType, typename T> +template<typename BasicJsonType, typename T> struct is_basic_json_nested_type { static auto constexpr value = std::is_same<T, typename BasicJsonType::iterator>::value or @@ -414,11 +429,9 @@ struct is_basic_json_nested_type std::is_same<T, typename BasicJsonType::json_pointer>::value; }; -template <class BasicJsonType, class CompatibleArrayType> +template<class BasicJsonType, class CompatibleArrayType> struct is_compatible_array_type { - // TODO concept Container? - // this might not make VS happy static auto constexpr value = conjunction<negation<std::is_same<void, CompatibleArrayType>>, negation<is_compatible_object_type< @@ -430,10 +443,10 @@ struct is_compatible_array_type has_iterator<CompatibleArrayType>>::value; }; -template <bool, typename, typename> +template<bool, typename, typename> struct is_compatible_integer_type_impl : std::false_type {}; -template <typename RealIntegerType, typename CompatibleNumberIntegerType> +template<typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType> { // is there an assert somewhere on overflows? @@ -447,24 +460,25 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn RealLimits::is_signed == CompatibleLimits::is_signed; }; -template <typename RealIntegerType, typename CompatibleNumberIntegerType> +template<typename RealIntegerType, typename CompatibleNumberIntegerType> struct is_compatible_integer_type { - static constexpr auto - value = is_compatible_integer_type_impl < - std::is_integral<CompatibleNumberIntegerType>::value and - not std::is_same<bool, CompatibleNumberIntegerType>::value, - RealIntegerType, CompatibleNumberIntegerType > ::value; + static constexpr auto value = + is_compatible_integer_type_impl < + std::is_integral<CompatibleNumberIntegerType>::value and + not std::is_same<bool, CompatibleNumberIntegerType>::value, + RealIntegerType, CompatibleNumberIntegerType > ::value; }; + // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists -template <typename BasicJsonType, typename T> +template<typename BasicJsonType, typename T> struct has_from_json { private: // also check the return type of from_json - template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( - std::declval<BasicJsonType>(), std::declval<T&>()))>::value>> + template<typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json( + std::declval<BasicJsonType>(), std::declval<T&>()))>::value>> static int detect(U&&); static void detect(...); @@ -475,7 +489,7 @@ struct has_from_json // This trait checks if JSONSerializer<T>::from_json(json const&) exists // this overload is used for non-default-constructible user-defined-types -template <typename BasicJsonType, typename T> +template<typename BasicJsonType, typename T> struct has_non_default_from_json { private: @@ -492,12 +506,12 @@ struct has_non_default_from_json }; // This trait checks if BasicJsonType::json_serializer<T>::to_json exists -template <typename BasicJsonType, typename T> +template<typename BasicJsonType, typename T> struct has_to_json { private: - template <typename U, typename = decltype(uncvref_t<U>::to_json( - std::declval<BasicJsonType&>(), std::declval<T>()))> + template<typename U, typename = decltype(uncvref_t<U>::to_json( + std::declval<BasicJsonType&>(), std::declval<T>()))> static int detect(U&&); static void detect(...); @@ -506,58 +520,33 @@ struct has_to_json std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value; }; -// overloads for basic_json template parameters -template <typename BasicJsonType, typename ArithmeticType, - enable_if_t<std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, - typename BasicJsonType::boolean_t>::value, - int> = 0> -void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) -{ - switch (static_cast<value_t>(j)) - { - case value_t::number_unsigned: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); - break; - case value_t::number_integer: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); - break; - case value_t::number_float: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); - break; - default: - JSON_THROW( - std::domain_error("type must be number, but is " + j.type_name())); - } -} +///////////// +// to_json // +///////////// -template <typename BasicJsonType> +template<typename BasicJsonType> void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { external_constructor<value_t::boolean>::construct(j, b); } -template <typename BasicJsonType, typename CompatibleString, - enable_if_t<std::is_constructible<typename BasicJsonType::string_t, - CompatibleString>::value, - int> = 0> +template<typename BasicJsonType, typename CompatibleString, + enable_if_t<std::is_constructible<typename BasicJsonType::string_t, + CompatibleString>::value, + int> = 0> void to_json(BasicJsonType& j, const CompatibleString& s) { external_constructor<value_t::string>::construct(j, s); } -template <typename BasicJsonType, typename FloatType, - enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> +template<typename BasicJsonType, typename FloatType, + enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> void to_json(BasicJsonType& j, FloatType val) noexcept { external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val)); } - template < typename BasicJsonType, typename CompatibleNumberUnsignedType, enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t, @@ -578,8 +567,8 @@ void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val)); } -template <typename BasicJsonType, typename UnscopedEnumType, - enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> +template<typename BasicJsonType, typename UnscopedEnumType, + enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> void to_json(BasicJsonType& j, UnscopedEnumType e) noexcept { external_constructor<value_t::number_integer>::construct(j, e); @@ -605,7 +594,48 @@ void to_json(BasicJsonType& j, const CompatibleObjectType& arr) external_constructor<value_t::object>::construct(j, arr); } -template <typename BasicJsonType> + +/////////////// +// from_json // +/////////////// + +// overloads for basic_json template parameters +template<typename BasicJsonType, typename ArithmeticType, + enable_if_t<std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, + typename BasicJsonType::boolean_t>::value, + int> = 0> +void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) +{ + switch (static_cast<value_t>(j)) + { + case value_t::number_unsigned: + { + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); + break; + } + case value_t::number_integer: + { + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); + break; + } + case value_t::number_float: + { + val = static_cast<ArithmeticType>( + *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); + break; + } + default: + { + JSON_THROW( + std::domain_error("type must be number, but is " + j.type_name())); + } + } +} + +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) { if (!j.is_boolean()) @@ -615,7 +645,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>(); } -template <typename BasicJsonType> +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) { if (!j.is_string()) @@ -625,35 +655,35 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) s = *j.template get_ptr<const typename BasicJsonType::string_t*>(); } -template <typename BasicJsonType> +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val) { get_arithmetic_value(j, val); } -template <typename BasicJsonType> +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val) { get_arithmetic_value(j, val); } -template <typename BasicJsonType> +template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val) { get_arithmetic_value(j, val); } -template <typename BasicJsonType, typename UnscopedEnumType, - enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> -void from_json(const BasicJsonType& j, UnscopedEnumType& e) +template<typename BasicJsonType, typename UnscopedEnumType, + enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0> +void from_json(const BasicJsonType& j, UnscopedEnumType& e) { typename std::underlying_type<UnscopedEnumType>::type val = e; get_arithmetic_value(j, val); e = static_cast<UnscopedEnumType>(val); } -template <typename BasicJsonType> -void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) +template<typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) { if (!j.is_array()) { @@ -662,8 +692,9 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) arr = *j.template get_ptr<const typename BasicJsonType::array_t*>(); } -// forward_list doesn't have an insert method, TODO find a way to avoid including forward_list -template <typename BasicJsonType, typename T, typename Allocator> +// forward_list doesn't have an insert method +// TODO find a way to avoid including forward_list +template<typename BasicJsonType, typename T, typename Allocator> void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) { // do not perform the check when user wants to retrieve jsons @@ -685,23 +716,23 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) } } -template <typename BasicJsonType, typename CompatibleArrayType> -void from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>) +template<typename BasicJsonType, typename CompatibleArrayType> +void from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>) { using std::begin; using std::end; - std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) + std::transform(j.begin(), j.end(), + std::inserter(arr, end(arr)), [](const BasicJsonType & i) { - // get<BasicJsonType>() returns *this, this won't call a from_json method when - // value_type is BasicJsonType + // get<BasicJsonType>() returns *this, this won't call a from_json + // method when value_type is BasicJsonType return i.template get<typename CompatibleArrayType::value_type>(); }); } -template <typename BasicJsonType, typename CompatibleArrayType> -auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>) +template<typename BasicJsonType, typename CompatibleArrayType> +auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>) -> decltype( arr.reserve(std::declval<typename CompatibleArrayType::size_type>()), void()) @@ -711,26 +742,24 @@ auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, pri arr.reserve(j.size()); std::transform( - j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) + j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) { - // get<BasicJsonType>() returns *this, this won't call a from_json method when - // value_type is BasicJsonType + // get<BasicJsonType>() returns *this, this won't call a from_json + // method when value_type is BasicJsonType return i.template get<typename CompatibleArrayType::value_type>(); }); } -template < - typename BasicJsonType, typename CompatibleArrayType, - enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and - not std::is_same<typename BasicJsonType::array_t, - CompatibleArrayType>::value, - int> = 0 > -void from_json(const BasicJsonType& j, CompatibleArrayType& arr) +template<typename BasicJsonType, typename CompatibleArrayType, + enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and + not std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value, int> = 0> +void from_json(const BasicJsonType& j, CompatibleArrayType& arr) { if (j.is_null()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } + // when T == BasicJsonType, do not check if value_t is correct if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value) { @@ -742,12 +771,9 @@ void from_json(const BasicJsonType& j, CompatibleArrayType& arr) from_json_array_impl(j, arr, priority_tag<1> {}); } - -template < - typename BasicJsonType, typename CompatibleObjectType, - enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, - int> = 0 > -void from_json(const BasicJsonType& j, CompatibleObjectType& obj) +template<typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0> +void from_json(const BasicJsonType& j, CompatibleObjectType& obj) { if (!j.is_object()) { @@ -766,63 +792,52 @@ void from_json(const BasicJsonType& j, CompatibleObjectType& obj) // // note: Is it really necessary to provide explicit overloads for boolean_t etc.. // in case of a custom BooleanType which is not an arithmetic type? -template < - typename BasicJsonType, typename ArithmeticType, - enable_if_t < - std::is_arithmetic<ArithmeticType>::value and - not std::is_same<ArithmeticType, - typename BasicJsonType::number_unsigned_t>::value and - not std::is_same<ArithmeticType, - typename BasicJsonType::number_integer_t>::value and - not std::is_same<ArithmeticType, - typename BasicJsonType::number_float_t>::value and - not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value, - int > = 0 > +template<typename BasicJsonType, typename ArithmeticType, + enable_if_t < + std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::number_unsigned_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::number_integer_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::number_float_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value, + int> = 0> void from_json(const BasicJsonType& j, ArithmeticType& val) { switch (static_cast<value_t>(j)) { case value_t::number_unsigned: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); break; case value_t::number_integer: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); break; case value_t::number_float: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::number_float_t*>()); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>()); break; case value_t::boolean: - val = static_cast<ArithmeticType>( - *j.template get_ptr<const typename BasicJsonType::boolean_t*>()); + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>()); break; default: - JSON_THROW( - std::domain_error("type must be number, but is " + j.type_name())); + JSON_THROW(std::domain_error("type must be number, but is " + j.type_name())); } } struct to_json_fn { - template <typename BasicJsonType, typename T> - auto call(BasicJsonType& j, T&& val, priority_tag<1>) const - noexcept(noexcept(to_json(j, std::forward<T>(val)))) - -> decltype(to_json(j, std::forward<T>(val)), - void()) + template<typename BasicJsonType, typename T> + auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val)))) + -> decltype(to_json(j, std::forward<T>(val)), void()) { return to_json(j, std::forward<T>(val)); } - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept { static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called"); } public: - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> void operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {}))) { @@ -833,23 +848,23 @@ struct to_json_fn struct from_json_fn { private: - template <typename BasicJsonType, typename T> - auto call(const BasicJsonType& j, T& val, priority_tag<1>) const + template<typename BasicJsonType, typename T> + auto call(const BasicJsonType& j, T& val, priority_tag<1>) const noexcept(noexcept(from_json(j, val))) -> decltype(from_json(j, val), void()) { return from_json(j, val); } - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept { static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called"); } public: - template <typename BasicJsonType, typename T> - void operator()(const BasicJsonType& j, T& val) const + template<typename BasicJsonType, typename T> + void operator()(const BasicJsonType& j, T& val) const noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {}))) { return call(j, val, priority_tag<1> {}); @@ -857,15 +872,16 @@ struct from_json_fn }; // taken from ranges-v3 -template <typename T> +template<typename T> struct static_const { static constexpr T value{}; }; -template <typename T> +template<typename T> constexpr T static_const<T>::value; + /*! @brief helper class to create locales with decimal point @@ -885,7 +901,8 @@ struct DecimalSeparator : std::numpunct<char> return '.'; } }; -} +} // namespace detail + namespace { @@ -895,16 +912,16 @@ constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::va // default JSONSerializer template argument, doesn't care about template argument // will use ADL for serialization -template <typename = void, typename = void> +template<typename = void, typename = void> struct adl_serializer { - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val))) { ::nlohmann::from_json(std::forward<BasicJsonType>(j), val); } - template <typename BasicJsonType, typename T> + template<typename BasicJsonType, typename T> static void to_json(BasicJsonType& j, T&& val) noexcept( noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) { @@ -912,6 +929,7 @@ struct adl_serializer } }; + /*! @brief a class to store JSON values @@ -1005,7 +1023,7 @@ template < class basic_json { private: - template <detail::value_t> friend struct detail::external_constructor; + template<detail::value_t> friend struct detail::external_constructor; /// workaround type for MSVC using basic_json_t = basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, @@ -1017,7 +1035,7 @@ class basic_json template<typename U> class iter_impl; template<typename Base> class json_reverse_iterator; class json_pointer; - template <typename T, typename SFINAE> + template<typename T, typename SFINAE> using json_serializer = JSONSerializer<T, SFINAE>; ///////////////////// @@ -1904,13 +1922,13 @@ class basic_json @since version 2.1.0 */ - template <typename T, typename U = detail::uncvref_t<T>, - detail::enable_if_t<not std::is_base_of<std::istream, U>::value and - not std::is_same<U, basic_json_t>::value and - not detail::is_basic_json_nested_type< - basic_json_t, U>::value and - detail::has_to_json<basic_json, U>::value, - int> = 0> + template<typename T, typename U = detail::uncvref_t<T>, + detail::enable_if_t<not std::is_base_of<std::istream, U>::value and + not std::is_same<U, basic_json_t>::value and + not detail::is_basic_json_nested_type< + basic_json_t, U>::value and + detail::has_to_json<basic_json, U>::value, + int> = 0> basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json( std::declval<basic_json_t&>(), std::forward<T>(val)))) { @@ -5714,6 +5732,13 @@ class basic_json /// @} public: + ////////////////////////////////////////// + // lexicographical comparison operators // + ////////////////////////////////////////// + + /// @name lexicographical comparison operators + /// @{ + /*! @brief comparison: equal @@ -9945,7 +9970,7 @@ class basic_json for (; curptr < m_cursor; curptr++) { // quickly skip tests if a digit - if (*curptr < '0' || *curptr > '9') + if (*curptr < '0' or* curptr > '9') { if (*curptr == '.') { From daf8dcdb32a3c1e121ed12232e7c00557277aa4b Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Tue, 24 Jan 2017 14:37:25 +0100 Subject: [PATCH 113/130] :memo: overworked README --- README.md | 227 +++++++++++++++++++++++++++--------------------------- 1 file changed, 114 insertions(+), 113 deletions(-) diff --git a/README.md b/README.md index b64c14171..30c76f074 100644 --- a/README.md +++ b/README.md @@ -442,15 +442,20 @@ int vi = jn.get<int>(); // etc. ``` + ### Arbitrary types conversions -Every type can be serialized in JSON, not just STL-containers and scalar types. -Usually, you would do something along those lines: +Every type can be serialized in JSON, not just STL-containers and scalar types. Usually, you would do something along those lines: ```cpp namespace ns { -struct person { std::string name; std::string address; int age; }; + struct person { + std::string name; + std::string address; + int age; + }; } + // convert to JSON json j; ns::person p = createSomeone(); @@ -461,10 +466,14 @@ j["age"] = p.age; // ... // convert from JSON -ns::person p {j["name"].get<std::string>(), j["address"].get<std::string>(), j["age"].get<int>()}; +ns::person p { + j["name"].get<std::string>(), + j["address"].get<std::string>(), + j["age"].get<int>() +}; ``` -It works, but that's quite a lot of boilerplate.. Hopefully, there's a better way: +It works, but that's quite a lot of boilerplate... Hopefully, there's a better way: ```cpp ns::person p = createPerson(); @@ -482,27 +491,25 @@ To make this work with one of your types, you only need to provide two methods: using nlohmann::json; namespace ns { -void to_json(json& j, person const& p) -{ - j = json{{"name", p.name}, {"address", p.address}, {"age", p.age}}; -} + void to_json(json& j, person const& p) { + j = json{{"name", p.name}, {"address", p.address}, {"age", p.age}}; + } -void from_json(json const& j, person& p) -{ - p.name = j["name"].get<std::string>(); - p.address = j["address"].get<std::string>(); - p.age = j["age"].get<int>(); -} + void from_json(json const& j, person& p) { + p.name = j["name"].get<std::string>(); + p.address = j["address"].get<std::string>(); + p.age = j["age"].get<int>(); + } } // namespace ns ``` -That's all. When calling the json constructor with your type, your custom `to_json` method will be automatically called. +That's all! When calling the `json` constructor with your type, your custom `to_json` method will be automatically called. Likewise, when calling `get<your_type>()`, the `from_json` method will be called. Some important things: * Those methods **MUST** be in your type's namespace, or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined). -* When using `get<your_type>()`, `your_type` **MUST** be DefaultConstructible and CopyConstructible (There is a way to bypass those requirements described later) +* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible) and [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible). (There is a way to bypass those requirements described later.) #### How do I convert third-party types? @@ -510,124 +517,117 @@ This requires a bit more advanced technique. But first, let's see how this conversion mechanism works: The library uses **JSON Serializers** to convert types to json. -The default serializer for `nlohmann::json` is `nlohmann::adl_serializer` (ADL means [Argument-Dependent Lookup](http://en.cppreference.com/w/cpp/language/adl)) +The default serializer for `nlohmann::json` is `nlohmann::adl_serializer` (ADL means [Argument-Dependent Lookup](http://en.cppreference.com/w/cpp/language/adl)). It is implemented like this (simplified): ```cpp template <typename T> -struct adl_serializer -{ - static void to_json(json& j, const T& value) - { - // calls the "to_json" method in T's namespace - } - - static void from_json(const json& j, T& value) - { - // same thing, but with the "from_json" method - } +struct adl_serializer { + static void to_json(json& j, const T& value) { + // calls the "to_json" method in T's namespace + } + + static void from_json(const json& j, T& value) { + // same thing, but with the "from_json" method + } }; ``` -This serializer works fine when you have control over the type's namespace. -However, what about `boost::optional`, or `std::filesystem::path` (C++17)? - -Hijacking the `boost` namespace is pretty bad, and it's illegal to add something other than template specializations to `std`... +This serializer works fine when you have control over the type's namespace. However, what about `boost::optional`, or `std::filesystem::path` (C++17)? Hijacking the `boost` namespace is pretty bad, and it's illegal to add something other than template specializations to `std`... To solve this, you need to add a specialization of `adl_serializer` to the `nlohmann` namespace, here's an example: ```cpp // partial specialization (full specialization works too) namespace nlohmann { -template <typename T> -struct adl_serializer<boost::optional<T>> -{ - static void to_json(json& j, const boost::optional<T>& opt) - { - if (opt == boost::none) - j = nullptr; - else - j = *opt; // this will call adl_serializer<T>::to_json, which will find the free function to_json in T's namespace! - } - - static void from_json(const json& j, boost::optional<T>& opt) - { - if (!j.is_null()) - opt = j.get<T>(); // same as above, but with adl_serializer<T>::from_json - } -}; + template <typename T> + struct adl_serializer<boost::optional<T>> { + static void to_json(json& j, const boost::optional<T>& opt) { + if (opt == boost::none) { + j = nullptr; + } else { + j = *opt; // this will call adl_serializer<T>::to_json + // which will find the free function to_json + // in T's namespace! + } + } + + static void from_json(const json& j, boost::optional<T>& opt) { + if (!j.is_null()) { + opt = j.get<T>(); // same as above, but with + // adl_serializer<T>::from_json + } + } + }; } ``` #### How can I use `get()` for non-default constructible/non-copyable types? -There is a way, if your type is **MoveConstructible**. -You will need to specialize the `adl_serializer` as well, but with a special `from_json` overload: +There is a way, if your type is [MoveConstructible](http://en.cppreference.com/w/cpp/concept/MoveConstructible). You will need to specialize the `adl_serializer` as well, but with a special `from_json` overload: ```cpp struct move_only_type { - move_only_type() = delete; - move_only_type(int ii): i(ii) {} - move_only_type(const move_only_type&) = delete; - move_only_type(move_only_type&&) = default; - : - int i; + move_only_type() = delete; + move_only_type(int ii): i(ii) {} + move_only_type(const move_only_type&) = delete; + move_only_type(move_only_type&&) = default; + + private: + int i; }; namespace nlohmann { -template <> -struct adl_serializer<move_only_type> -{ - // note: the return type is no longer 'void', and the method only takes one argument - static move_only_type from_json(const json& j) - { - return {j.get<int>()}; - } - - // Here's the catch! You must provide a to_json method! - // Otherwise you will not be able to convert move_only_type to json, - // since you fully specialized adl_serializer on that type - static void to_json(json& j, move_only_type t) - { - j = t.i; - } -}; + template <> + struct adl_serializer<move_only_type> { + // note: the return type is no longer 'void', + // and the method only takes one argument + static move_only_type from_json(const json& j) { + return {j.get<int>()}; + } + + // Here's the catch! You must provide a to_json method! + // Otherwise you will not be able to convert move_only_type to json, + // since you fully specialized adl_serializer on that type + static void to_json(json& j, move_only_type t) { + j = t.i; + } + }; } ``` #### Can I write my own serializer? (Advanced use) -Yes. You might want to take a look at `unit-udt.cpp` in the test suite, to see a few examples. +Yes. You might want to take a look at `[unit-udt.cpp](https://github.com/nlohmann/json/blob/develop/test/src/unit-udt.cpp)` in the test suite, to see a few examples. If you write your own serializer, you'll need to do a few things: -* use a different `basic_json` alias than nlohmann::json (the last template parameter of basic_json is the JSONSerializer) +* use a different `basic_json` alias than `nlohmann::json` (the last template parameter of `basic_json` is the `JSONSerializer`) * use your `basic_json` alias (or a template parameter) in all your `to_json`/`from_json` methods * use `nlohmann::to_json` and `nlohmann::from_json` when you need ADL Here is an example, without simplifications, that only accepts types with a size <= 32, and uses ADL. ```cpp -// You should use void as a second template argument if you don't need compile-time checks on T -template <typename T, typename SFINAE = typename std::enable_if<sizeof(T) <= 32>::type> -struct less_than_32_serializer // if someone tries to use a type bigger than 32, the compiler will complain -{ - template <typename Json> - static void to_json(Json& j, T value) - { - // we want to use ADL, and call the correct to_json overload - using nlohmann::to_json; // this method is called by adl_serializer, this is where the magic happens - to_json(j, value); - } - - template <typename Json> - static void from_json(const Json& j, T& value) - { - // same thing here - using nlohmann::from_json; - from_json(j, value); - } +// You should use void as a second template argument +// if you don't need compile-time checks on T +template<typename T, typename SFINAE = typename std::enable_if<sizeof(T) <= 32>::type> +struct less_than_32_serializer { + template <typename BasicJsonType> + static void to_json(BasicJsonType& j, T value) { + // we want to use ADL, and call the correct to_json overload + using nlohmann::to_json; // this method is called by adl_serializer, + // this is where the magic happens + to_json(j, value); + } + + template <typename BasicJsonType> + static void from_json(const BasicJsonType& j, T& value) { + // same thing here + using nlohmann::from_json; + from_json(j, value); + } }; ``` @@ -637,21 +637,19 @@ Be **very** careful when reimplementing your serializer, you can stack overflow template <typename T, void> struct bad_serializer { - template <typename Json> - static void to_json(Json& j, const T& value) - { - // this calls Json::json_serializer<T>::to_json(j, value); - // if Json::json_serializer == bad_serializer ... oops! - j = value; - } - - template <typename Json> - static void to_json(const Json& j, T& value) - { - // this calls Json::json_serializer<T>::from_json(j, value); - // if Json::json_serializer == bad_serializer ... oops! - value = j.template get<T>(); // oops! - } + template <typename BasicJsonType> + static void to_json(BasicJsonType& j, const T& value) { + // this calls BasicJsonType::json_serializer<T>::to_json(j, value); + // if BasicJsonType::json_serializer == bad_serializer ... oops! + j = value; + } + + template <typename BasicJsonType> + static void to_json(const BasicJsonType& j, T& value) { + // this calls BasicJsonType::json_serializer<T>::from_json(j, value); + // if BasicJsonType::json_serializer == bad_serializer ... oops! + value = j.template get<T>(); // oops! + } }; ``` @@ -759,7 +757,7 @@ I deeply appreciate the help of the following people. - [Eric Cornelius](https://github.com/EricMCornelius) pointed out a bug in the handling with NaN and infinity values. He also improved the performance of the string escaping. - [易思龙](https://github.com/likebeta) implemented a conversion from anonymous enums. - [kepkin](https://github.com/kepkin) patiently pushed forward the support for Microsoft Visual studio. -- [gregmarr](https://github.com/gregmarr) simplified the implementation of reverse iterators and helped with numerous hints and improvements. +- [gregmarr](https://github.com/gregmarr) simplified the implementation of reverse iterators and helped with numerous hints and improvements. In particular, he pushed forward the implementation of user-defined types. - [Caio Luppi](https://github.com/caiovlp) fixed a bug in the Unicode handling. - [dariomt](https://github.com/dariomt) fixed some typos in the examples. - [Daniel Frey](https://github.com/d-frey) cleaned up some pointers and implemented exception-safe memory allocation. @@ -787,7 +785,7 @@ I deeply appreciate the help of the following people. - [duncanwerner](https://github.com/duncanwerner) found a really embarrassing performance regression in the 2.0.0 release. - [Damien](https://github.com/dtoma) fixed one of the last conversion warnings. - [Thomas Braun](https://github.com/t-b) fixed a warning in a test case. -- [Théo DELRIEU](https://github.com/theodelrieu) patiently and constructively oversaw the long way toward [iterator-range parsing](https://github.com/nlohmann/json/issues/290). +- [Théo DELRIEU](https://github.com/theodelrieu) patiently and constructively oversaw the long way toward [iterator-range parsing](https://github.com/nlohmann/json/issues/290). He also implemented the magic behind the serialization/deserialization of user-defined types. - [Stefan](https://github.com/5tefan) fixed a minor issue in the documentation. - [Vasil Dimov](https://github.com/vasild) fixed the documentation regarding conversions from `std::multiset`. - [ChristophJud](https://github.com/ChristophJud) overworked the CMake files to ease project inclusion. @@ -801,6 +799,9 @@ I deeply appreciate the help of the following people. - [Bosswestfalen](https://github.com/Bosswestfalen) merged two iterator classes into a smaller one. - [Daniel599](https://github.com/Daniel599) helped to get Travis execute the tests with Clang's sanitizers. - [Jonathan Lee](https://github.com/vjon) fixed an example in the README file. +- [gnzlbg](https://github.com/gnzlbg) supported the implementation of user-defined types. +- [Alexej Harm](https://github.com/qis) helped to get the user-defined types working with Visual Studio. +- [Jared Grubb](https://github.com/jaredgrubb) supported the implementation of user-defined types. Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone. From 781fd09f2de382f0aeadf89a1dd527ff335c9eb2 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Tue, 24 Jan 2017 14:45:32 +0100 Subject: [PATCH 114/130] :memo: cleanup --- README.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 30c76f074..dd54fe712 100644 --- a/README.md +++ b/README.md @@ -449,6 +449,7 @@ Every type can be serialized in JSON, not just STL-containers and scalar types. ```cpp namespace ns { + // a simple struct to model a person struct person { std::string name; std::string address; @@ -456,7 +457,7 @@ namespace ns { }; } -// convert to JSON +// convert to JSON: copy each value into the JSON object json j; ns::person p = createSomeone(); j["name"] = p.name; @@ -465,7 +466,7 @@ j["age"] = p.age; // ... -// convert from JSON +// convert from JSON: copy each value from the JSON object ns::person p { j["name"].get<std::string>(), j["address"].get<std::string>(), @@ -476,9 +477,11 @@ ns::person p { It works, but that's quite a lot of boilerplate... Hopefully, there's a better way: ```cpp +// person -> json ns::person p = createPerson(); json j = p; +// json -> person auto p2 = j.get<ns::person>(); assert(p == p2); ``` @@ -547,9 +550,8 @@ namespace nlohmann { if (opt == boost::none) { j = nullptr; } else { - j = *opt; // this will call adl_serializer<T>::to_json - // which will find the free function to_json - // in T's namespace! + j = *opt; // this will call adl_serializer<T>::to_json which will + // find the free function to_json in T's namespace! } } @@ -581,15 +583,15 @@ struct move_only_type { namespace nlohmann { template <> struct adl_serializer<move_only_type> { - // note: the return type is no longer 'void', - // and the method only takes one argument + // note: the return type is no longer 'void', and the method only takes + // one argument static move_only_type from_json(const json& j) { return {j.get<int>()}; } - // Here's the catch! You must provide a to_json method! - // Otherwise you will not be able to convert move_only_type to json, - // since you fully specialized adl_serializer on that type + // Here's the catch! You must provide a to_json method! Otherwise you + // will not be able to convert move_only_type to json, since you fully + // specialized adl_serializer on that type static void to_json(json& j, move_only_type t) { j = t.i; } @@ -599,7 +601,7 @@ namespace nlohmann { #### Can I write my own serializer? (Advanced use) -Yes. You might want to take a look at `[unit-udt.cpp](https://github.com/nlohmann/json/blob/develop/test/src/unit-udt.cpp)` in the test suite, to see a few examples. +Yes. You might want to take a look at [`unit-udt.cpp`](https://github.com/nlohmann/json/blob/develop/test/src/unit-udt.cpp) in the test suite, to see a few examples. If you write your own serializer, you'll need to do a few things: From 50a3f3b301467d69c86d98d977c5db82764bda89 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Tue, 24 Jan 2017 14:55:51 +0100 Subject: [PATCH 115/130] :memo: added nicer example --- README.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index dd54fe712..3d05dc338 100644 --- a/README.md +++ b/README.md @@ -457,9 +457,10 @@ namespace ns { }; } +ns::person p = {"Ned Flanders", "744 Evergreen Terrace", 60}; + // convert to JSON: copy each value into the JSON object json j; -ns::person p = createSomeone(); j["name"] = p.name; j["address"] = p.address; j["age"] = p.age; @@ -477,12 +478,19 @@ ns::person p { It works, but that's quite a lot of boilerplate... Hopefully, there's a better way: ```cpp -// person -> json -ns::person p = createPerson(); +// create a person +ns::person p {"Ned Flanders", "744 Evergreen Terrace", 60}; + +// conversion: person -> json json j = p; -// json -> person -auto p2 = j.get<ns::person>(); +std::cout << j << std::endl; +// {"address":"744 Evergreen Terrace","age":60,"name":"Ned Flanders"} + +// conversion: json -> person +ns::person p2 = j; + +// that's it assert(p == p2); ``` From c154f3133d300ba53be90a052bbd996be458b7a4 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Tue, 24 Jan 2017 15:02:35 +0100 Subject: [PATCH 116/130] :construction: rephrased assertions --- src/json.hpp | 6 ++++-- src/json.hpp.re2c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 5987b3853..f7af945aa 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -833,7 +833,8 @@ struct to_json_fn template<typename BasicJsonType, typename T> void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept { - static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called"); + static_assert(sizeof(BasicJsonType) == 0, + "could not find to_json() method in T's namespace"); } public: @@ -859,7 +860,8 @@ struct from_json_fn template<typename BasicJsonType, typename T> void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept { - static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called"); + static_assert(sizeof(BasicJsonType) == 0, + "could not find from_json() method in T's namespace"); } public: diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 0a7f207d7..039fc9fb8 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -833,7 +833,8 @@ struct to_json_fn template<typename BasicJsonType, typename T> void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept { - static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called"); + static_assert(sizeof(BasicJsonType) == 0, + "could not find to_json() method in T's namespace"); } public: @@ -859,7 +860,8 @@ struct from_json_fn template<typename BasicJsonType, typename T> void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept { - static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called"); + static_assert(sizeof(BasicJsonType) == 0, + "could not find from_json() method in T's namespace"); } public: From 4139bb65728cef0737804111891583fa6351ec9b Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Tue, 24 Jan 2017 15:20:20 +0100 Subject: [PATCH 117/130] :memo: adjusted test count --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3d05dc338..33d7518de 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ - [Conversion from STL containers](#conversion-from-stl-containers) - [JSON Pointer and JSON Patch](#json-pointer-and-json-patch) - [Implicit conversions](#implicit-conversions) - - [Conversions to arbitrary types](#arbitrary-types-conversions) + - [Conversions to/from arbitrary types](#arbitrary-types-conversions) - [Binary formats (CBOR and MessagePack)](#binary-formats-cbor-and-messagepack) - [Supported compilers](#supported-compilers) - [License](#license) @@ -835,10 +835,11 @@ Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I To compile and run the tests, you need to execute ```sh -$ make check +$ make json_unit -Ctest +$ ./test/json_unit "*"" =============================================================================== -All tests passed (11202040 assertions in 44 test cases) +All tests passed (11202052 assertions in 47 test cases) ``` Alternatively, you can use [CMake](https://cmake.org) and run From ec03c9c53ef7a0112fd6b065555129d8ec070452 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Wed, 25 Jan 2017 19:01:31 +0100 Subject: [PATCH 118/130] :memo: overworked docs #435 --- README.md | 15 +++++++-------- src/json.hpp | 3 --- src/json.hpp.re2c | 3 --- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 33d7518de..8cf4865b3 100644 --- a/README.md +++ b/README.md @@ -475,7 +475,7 @@ ns::person p { }; ``` -It works, but that's quite a lot of boilerplate... Hopefully, there's a better way: +It works, but that's quite a lot of boilerplate... Fortunately, there's a better way: ```cpp // create a person @@ -496,17 +496,17 @@ assert(p == p2); #### Basic usage -To make this work with one of your types, you only need to provide two methods: +To make this work with one of your types, you only need to provide two functions: ```cpp using nlohmann::json; namespace ns { - void to_json(json& j, person const& p) { + void to_json(json& j, const person& p) { j = json{{"name", p.name}, {"address", p.address}, {"age", p.age}}; } - void from_json(json const& j, person& p) { + void from_json(const json& j, person& p) { p.name = j["name"].get<std::string>(); p.address = j["address"].get<std::string>(); p.age = j["age"].get<int>(); @@ -519,13 +519,12 @@ Likewise, when calling `get<your_type>()`, the `from_json` method will be called Some important things: -* Those methods **MUST** be in your type's namespace, or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined). -* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible) and [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible). (There is a way to bypass those requirements described later.) +* Those methods **MUST** be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined). +* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). (There is a way to bypass those requirements described later.) #### How do I convert third-party types? -This requires a bit more advanced technique. -But first, let's see how this conversion mechanism works: +This requires a bit more advanced technique. But first, let's see how this conversion mechanism works: The library uses **JSON Serializers** to convert types to json. The default serializer for `nlohmann::json` is `nlohmann::adl_serializer` (ADL means [Argument-Dependent Lookup](http://en.cppreference.com/w/cpp/language/adl)). diff --git a/src/json.hpp b/src/json.hpp index f7af945aa..13e7b07d0 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -239,9 +239,6 @@ template<> struct priority_tag<0> {}; // constructors // ////////////////// -// This is an experiment. I need this to move constructors out of basic_json. -// I'm sure there is a better way, but this might need a big basic_json -// refactoring template<value_t> struct external_constructor; template<> diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 039fc9fb8..45e1ba58f 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -239,9 +239,6 @@ template<> struct priority_tag<0> {}; // constructors // ////////////////// -// This is an experiment. I need this to move constructors out of basic_json. -// I'm sure there is a better way, but this might need a big basic_json -// refactoring template<value_t> struct external_constructor; template<> From 94d9b7bc8602b30c2220a74b8a74368c495a0d05 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Wed, 25 Jan 2017 21:59:54 +0100 Subject: [PATCH 119/130] :memo: overworked documentation (re-added constructor examples) --- .../basic_json__CompatibleArrayType.cpp | 58 ----- .../basic_json__CompatibleArrayType.link | 1 - .../basic_json__CompatibleArrayType.output | 9 - ...asic_json__CompatibleIntegerNumberType.cpp | 27 --- ...sic_json__CompatibleIntegerNumberType.link | 1 - ...c_json__CompatibleIntegerNumberType.output | 5 - .../basic_json__CompatibleNumberFloatType.cpp | 21 -- ...basic_json__CompatibleNumberFloatType.link | 1 - ...sic_json__CompatibleNumberFloatType.output | 3 - .../basic_json__CompatibleObjectType.cpp | 41 ---- .../basic_json__CompatibleObjectType.link | 1 - .../basic_json__CompatibleObjectType.output | 4 - .../basic_json__CompatibleStringType.cpp | 15 -- .../basic_json__CompatibleStringType.link | 1 - .../basic_json__CompatibleStringType.output | 1 - doc/examples/basic_json__CompatibleType.cpp | 211 ++++++++++++++++++ doc/examples/basic_json__CompatibleType.link | 1 + .../basic_json__CompatibleType.output | 38 ++++ doc/examples/basic_json__array_t.cpp | 15 -- doc/examples/basic_json__array_t.link | 1 - doc/examples/basic_json__array_t.output | 1 - doc/examples/basic_json__boolean_t.cpp | 14 -- doc/examples/basic_json__boolean_t.link | 1 - doc/examples/basic_json__boolean_t.output | 2 - doc/examples/basic_json__const_int.cpp | 15 -- doc/examples/basic_json__const_int.link | 1 - doc/examples/basic_json__const_int.output | 1 - doc/examples/basic_json__number_float_t.cpp | 21 -- doc/examples/basic_json__number_float_t.link | 1 - .../basic_json__number_float_t.output | 3 - doc/examples/basic_json__number_integer_t.cpp | 14 -- .../basic_json__number_integer_t.link | 1 - .../basic_json__number_integer_t.output | 1 - doc/examples/basic_json__object_t.cpp | 15 -- doc/examples/basic_json__object_t.link | 1 - doc/examples/basic_json__object_t.output | 1 - doc/examples/basic_json__string_t.cpp | 15 -- doc/examples/basic_json__string_t.link | 1 - doc/examples/basic_json__string_t.output | 1 - .../basic_json__string_t_value_type.cpp | 12 - .../basic_json__string_t_value_type.link | 1 - .../basic_json__string_t_value_type.output | 1 - src/json.hpp | 64 ++++-- src/json.hpp.re2c | 64 ++++-- 44 files changed, 352 insertions(+), 355 deletions(-) delete mode 100644 doc/examples/basic_json__CompatibleArrayType.cpp delete mode 100644 doc/examples/basic_json__CompatibleArrayType.link delete mode 100644 doc/examples/basic_json__CompatibleArrayType.output delete mode 100644 doc/examples/basic_json__CompatibleIntegerNumberType.cpp delete mode 100644 doc/examples/basic_json__CompatibleIntegerNumberType.link delete mode 100644 doc/examples/basic_json__CompatibleIntegerNumberType.output delete mode 100644 doc/examples/basic_json__CompatibleNumberFloatType.cpp delete mode 100644 doc/examples/basic_json__CompatibleNumberFloatType.link delete mode 100644 doc/examples/basic_json__CompatibleNumberFloatType.output delete mode 100644 doc/examples/basic_json__CompatibleObjectType.cpp delete mode 100644 doc/examples/basic_json__CompatibleObjectType.link delete mode 100644 doc/examples/basic_json__CompatibleObjectType.output delete mode 100644 doc/examples/basic_json__CompatibleStringType.cpp delete mode 100644 doc/examples/basic_json__CompatibleStringType.link delete mode 100644 doc/examples/basic_json__CompatibleStringType.output create mode 100644 doc/examples/basic_json__CompatibleType.cpp create mode 100644 doc/examples/basic_json__CompatibleType.link create mode 100644 doc/examples/basic_json__CompatibleType.output delete mode 100644 doc/examples/basic_json__array_t.cpp delete mode 100644 doc/examples/basic_json__array_t.link delete mode 100644 doc/examples/basic_json__array_t.output delete mode 100644 doc/examples/basic_json__boolean_t.cpp delete mode 100644 doc/examples/basic_json__boolean_t.link delete mode 100644 doc/examples/basic_json__boolean_t.output delete mode 100644 doc/examples/basic_json__const_int.cpp delete mode 100644 doc/examples/basic_json__const_int.link delete mode 100644 doc/examples/basic_json__const_int.output delete mode 100644 doc/examples/basic_json__number_float_t.cpp delete mode 100644 doc/examples/basic_json__number_float_t.link delete mode 100644 doc/examples/basic_json__number_float_t.output delete mode 100644 doc/examples/basic_json__number_integer_t.cpp delete mode 100644 doc/examples/basic_json__number_integer_t.link delete mode 100644 doc/examples/basic_json__number_integer_t.output delete mode 100644 doc/examples/basic_json__object_t.cpp delete mode 100644 doc/examples/basic_json__object_t.link delete mode 100644 doc/examples/basic_json__object_t.output delete mode 100644 doc/examples/basic_json__string_t.cpp delete mode 100644 doc/examples/basic_json__string_t.link delete mode 100644 doc/examples/basic_json__string_t.output delete mode 100644 doc/examples/basic_json__string_t_value_type.cpp delete mode 100644 doc/examples/basic_json__string_t_value_type.link delete mode 100644 doc/examples/basic_json__string_t_value_type.output diff --git a/doc/examples/basic_json__CompatibleArrayType.cpp b/doc/examples/basic_json__CompatibleArrayType.cpp deleted file mode 100644 index 26a1a1014..000000000 --- a/doc/examples/basic_json__CompatibleArrayType.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include <json.hpp> -#include <deque> -#include <list> -#include <forward_list> -#include <set> -#include <unordered_set> - -using json = nlohmann::json; - -int main() -{ - // create an array from std::vector - std::vector<int> c_vector {1, 2, 3, 4}; - json j_vec(c_vector); - - // create an array from std::deque - std::deque<double> c_deque {1.2, 2.3, 3.4, 5.6}; - json j_deque(c_deque); - - // create an array from std::list - std::list<bool> c_list {true, true, false, true}; - json j_list(c_list); - - // create an array from std::forward_list - std::forward_list<int64_t> c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543}; - json j_flist(c_flist); - - // create an array from std::array - std::array<unsigned long, 4> c_array {{1, 2, 3, 4}}; - json j_array(c_array); - - // create an array from std::set - std::set<std::string> c_set {"one", "two", "three", "four", "one"}; - json j_set(c_set); // only one entry for "one" is used - - // create an array from std::unordered_set - std::unordered_set<std::string> c_uset {"one", "two", "three", "four", "one"}; - json j_uset(c_uset); // only one entry for "one" is used - - // create an array from std::multiset - std::multiset<std::string> c_mset {"one", "two", "one", "four"}; - json j_mset(c_mset); // both entries for "one" are used - - // create an array from std::unordered_multiset - std::unordered_multiset<std::string> c_umset {"one", "two", "one", "four"}; - json j_umset(c_umset); // both entries for "one" are used - - // serialize the JSON arrays - std::cout << j_vec << '\n'; - std::cout << j_deque << '\n'; - std::cout << j_list << '\n'; - std::cout << j_flist << '\n'; - std::cout << j_array << '\n'; - std::cout << j_set << '\n'; - std::cout << j_uset << '\n'; - std::cout << j_mset << '\n'; - std::cout << j_umset << '\n'; -} diff --git a/doc/examples/basic_json__CompatibleArrayType.link b/doc/examples/basic_json__CompatibleArrayType.link deleted file mode 100644 index 95ecb0508..000000000 --- a/doc/examples/basic_json__CompatibleArrayType.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/3BIhBw91FUVuHE1D"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__CompatibleArrayType.output b/doc/examples/basic_json__CompatibleArrayType.output deleted file mode 100644 index 428505a17..000000000 --- a/doc/examples/basic_json__CompatibleArrayType.output +++ /dev/null @@ -1,9 +0,0 @@ -[1,2,3,4] -[1.2,2.3,3.4,5.6] -[true,true,false,true] -[12345678909876,23456789098765,34567890987654,45678909876543] -[1,2,3,4] -["four","one","three","two"] -["four","three","two","one"] -["four","one","one","two"] -["four","two","one","one"] diff --git a/doc/examples/basic_json__CompatibleIntegerNumberType.cpp b/doc/examples/basic_json__CompatibleIntegerNumberType.cpp deleted file mode 100644 index 50e751d11..000000000 --- a/doc/examples/basic_json__CompatibleIntegerNumberType.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create values of different integer types - short n42 = 42; - int n23 = 23; - long n1024 = 1024; - int_least32_t n17 = 17; - uint8_t n8 = 8; - - // create JSON numbers - json j42(n42); - json j23(n23); - json j1024(n1024); - json j17(n17); - json j8(n8); - - // serialize the JSON numbers - std::cout << j42 << '\n'; - std::cout << j23 << '\n'; - std::cout << j1024 << '\n'; - std::cout << j17 << '\n'; - std::cout << j8 << '\n'; -} diff --git a/doc/examples/basic_json__CompatibleIntegerNumberType.link b/doc/examples/basic_json__CompatibleIntegerNumberType.link deleted file mode 100644 index 7a37e9eb2..000000000 --- a/doc/examples/basic_json__CompatibleIntegerNumberType.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/PcMzhcu2RpD7KSwr"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__CompatibleIntegerNumberType.output b/doc/examples/basic_json__CompatibleIntegerNumberType.output deleted file mode 100644 index c7f24d63d..000000000 --- a/doc/examples/basic_json__CompatibleIntegerNumberType.output +++ /dev/null @@ -1,5 +0,0 @@ -42 -23 -1024 -17 -8 diff --git a/doc/examples/basic_json__CompatibleNumberFloatType.cpp b/doc/examples/basic_json__CompatibleNumberFloatType.cpp deleted file mode 100644 index 6f8d3f67a..000000000 --- a/doc/examples/basic_json__CompatibleNumberFloatType.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create values of different floating-point types - float f42 = 42.23; - float f_nan = 1.0f / 0.0f; - double f23 = 23.42; - - // create JSON numbers - json j42(f42); - json j_nan(f_nan); - json j23(f23); - - // serialize the JSON numbers - std::cout << j42 << '\n'; - std::cout << j_nan << '\n'; - std::cout << j23 << '\n'; -} diff --git a/doc/examples/basic_json__CompatibleNumberFloatType.link b/doc/examples/basic_json__CompatibleNumberFloatType.link deleted file mode 100644 index 9fbc73177..000000000 --- a/doc/examples/basic_json__CompatibleNumberFloatType.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/2TCYWSrOxnR05AZI"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__CompatibleNumberFloatType.output b/doc/examples/basic_json__CompatibleNumberFloatType.output deleted file mode 100644 index 64bb796c3..000000000 --- a/doc/examples/basic_json__CompatibleNumberFloatType.output +++ /dev/null @@ -1,3 +0,0 @@ -42.2299995422363 -null -23.42 diff --git a/doc/examples/basic_json__CompatibleObjectType.cpp b/doc/examples/basic_json__CompatibleObjectType.cpp deleted file mode 100644 index d284b697b..000000000 --- a/doc/examples/basic_json__CompatibleObjectType.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include <json.hpp> -#include <unordered_map> - -using json = nlohmann::json; - -int main() -{ - // create an object from std::map - std::map<std::string, int> c_map - { - {"one", 1}, {"two", 2}, {"three", 3} - }; - json j_map(c_map); - - // create an object from std::unordered_map - std::unordered_map<const char*, double> c_umap - { - {"one", 1.2}, {"two", 2.3}, {"three", 3.4} - }; - json j_umap(c_umap); - - // create an object from std::multimap - std::multimap<std::string, bool> c_mmap - { - {"one", true}, {"two", true}, {"three", false}, {"three", true} - }; - json j_mmap(c_mmap); // only one entry for key "three" is used - - // create an object from std::unordered_multimap - std::unordered_multimap<std::string, bool> c_ummap - { - {"one", true}, {"two", true}, {"three", false}, {"three", true} - }; - json j_ummap(c_ummap); // only one entry for key "three" is used - - // serialize the JSON objects - std::cout << j_map << '\n'; - std::cout << j_umap << '\n'; - std::cout << j_mmap << '\n'; - std::cout << j_ummap << '\n'; -} diff --git a/doc/examples/basic_json__CompatibleObjectType.link b/doc/examples/basic_json__CompatibleObjectType.link deleted file mode 100644 index 7512fb35a..000000000 --- a/doc/examples/basic_json__CompatibleObjectType.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/JzLCMcSXNsh4uVWa"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__CompatibleObjectType.output b/doc/examples/basic_json__CompatibleObjectType.output deleted file mode 100644 index c70f71848..000000000 --- a/doc/examples/basic_json__CompatibleObjectType.output +++ /dev/null @@ -1,4 +0,0 @@ -{"one":1,"three":3,"two":2} -{"one":1.2,"three":3.4,"two":2.3} -{"one":true,"three":false,"two":true} -{"one":true,"three":false,"two":true} diff --git a/doc/examples/basic_json__CompatibleStringType.cpp b/doc/examples/basic_json__CompatibleStringType.cpp deleted file mode 100644 index a0f3b4f67..000000000 --- a/doc/examples/basic_json__CompatibleStringType.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create a string value - std::string s = "The quick brown fox jumps over the lazy dog."; - - // create a JSON string value - json j = s; - - // serialize the JSON string - std::cout << j << '\n'; -} diff --git a/doc/examples/basic_json__CompatibleStringType.link b/doc/examples/basic_json__CompatibleStringType.link deleted file mode 100644 index 351d6c0ce..000000000 --- a/doc/examples/basic_json__CompatibleStringType.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/b9hbCY8zfOiTOuoK"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__CompatibleStringType.output b/doc/examples/basic_json__CompatibleStringType.output deleted file mode 100644 index 1316dd98a..000000000 --- a/doc/examples/basic_json__CompatibleStringType.output +++ /dev/null @@ -1 +0,0 @@ -"The quick brown fox jumps over the lazy dog." diff --git a/doc/examples/basic_json__CompatibleType.cpp b/doc/examples/basic_json__CompatibleType.cpp new file mode 100644 index 000000000..ff564a72f --- /dev/null +++ b/doc/examples/basic_json__CompatibleType.cpp @@ -0,0 +1,211 @@ +#include <json.hpp> +#include <deque> +#include <list> +#include <forward_list> +#include <set> +#include <unordered_map> +#include <unordered_set> + +using json = nlohmann::json; + +int main() +{ + // ============ + // object types + // ============ + + // create an object from an object_t value + json::object_t object_value = { {"one", 1}, {"two", 2} }; + json j_object_t(object_value); + + // create an object from std::map + std::map<std::string, int> c_map + { + {"one", 1}, {"two", 2}, {"three", 3} + }; + json j_map(c_map); + + // create an object from std::unordered_map + std::unordered_map<const char*, double> c_umap + { + {"one", 1.2}, {"two", 2.3}, {"three", 3.4} + }; + json j_umap(c_umap); + + // create an object from std::multimap + std::multimap<std::string, bool> c_mmap + { + {"one", true}, {"two", true}, {"three", false}, {"three", true} + }; + json j_mmap(c_mmap); // only one entry for key "three" is used + + // create an object from std::unordered_multimap + std::unordered_multimap<std::string, bool> c_ummap + { + {"one", true}, {"two", true}, {"three", false}, {"three", true} + }; + json j_ummap(c_ummap); // only one entry for key "three" is used + + // serialize the JSON objects + std::cout << j_object_t << '\n'; + std::cout << j_map << '\n'; + std::cout << j_umap << '\n'; + std::cout << j_mmap << '\n'; + std::cout << j_ummap << "\n\n"; + + + // =========== + // array types + // =========== + + // create an array from an array_t value + json::array_t array_value = {"one", "two", 3, 4.5, false}; + json j_array_t(array_value); + + // create an array from std::vector + std::vector<int> c_vector {1, 2, 3, 4}; + json j_vec(c_vector); + + // create an array from std::deque + std::deque<double> c_deque {1.2, 2.3, 3.4, 5.6}; + json j_deque(c_deque); + + // create an array from std::list + std::list<bool> c_list {true, true, false, true}; + json j_list(c_list); + + // create an array from std::forward_list + std::forward_list<int64_t> c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543}; + json j_flist(c_flist); + + // create an array from std::array + std::array<unsigned long, 4> c_array {{1, 2, 3, 4}}; + json j_array(c_array); + + // create an array from std::set + std::set<std::string> c_set {"one", "two", "three", "four", "one"}; + json j_set(c_set); // only one entry for "one" is used + + // create an array from std::unordered_set + std::unordered_set<std::string> c_uset {"one", "two", "three", "four", "one"}; + json j_uset(c_uset); // only one entry for "one" is used + + // create an array from std::multiset + std::multiset<std::string> c_mset {"one", "two", "one", "four"}; + json j_mset(c_mset); // both entries for "one" are used + + // create an array from std::unordered_multiset + std::unordered_multiset<std::string> c_umset {"one", "two", "one", "four"}; + json j_umset(c_umset); // both entries for "one" are used + + // serialize the JSON arrays + std::cout << j_array_t << '\n'; + std::cout << j_vec << '\n'; + std::cout << j_deque << '\n'; + std::cout << j_list << '\n'; + std::cout << j_flist << '\n'; + std::cout << j_array << '\n'; + std::cout << j_set << '\n'; + std::cout << j_uset << '\n'; + std::cout << j_mset << '\n'; + std::cout << j_umset << "\n\n"; + + + // ============ + // string types + // ============ + + // create string from a string_t value + json::string_t string_value = "The quick brown fox jumps over the lazy dog."; + json j_string_t(string_value); + + // create a JSON string directly from a string literal + json j_string_literal("The quick brown fox jumps over the lazy dog."); + + // create string from std::string + std::string s_stdstring = "The quick brown fox jumps over the lazy dog."; + json j_stdstring(s_stdstring); + + // serialize the JSON strings + std::cout << j_string_t << '\n'; + std::cout << j_string_literal << '\n'; + std::cout << j_stdstring << "\n\n"; + + + // ============ + // number types + // ============ + + // create a JSON number from number_integer_t + json::number_integer_t value_integer_t = -42; + json j_integer_t(value_integer_t); + + // create a JSON number from number_unsigned_t + json::number_integer_t value_unsigned_t = 17; + json j_unsigned_t(value_unsigned_t); + + // create a JSON number from an anonymous enum + enum { enum_value = 17 }; + json j_enum(enum_value); + + // create values of different integer types + short n_short = 42; + int n_int = -23; + long n_long = 1024; + int_least32_t n_int_least32_t = -17; + uint8_t n_uint8_t = 8; + + // create (integer) JSON numbers + json j_short(n_short); + json j_int(n_int); + json j_long(n_long); + json j_int_least32_t(n_int_least32_t); + json j_uint8_t(n_uint8_t); + + // create values of different floating-point types + json::number_float_t v_ok = 3.141592653589793; + json::number_float_t v_nan = NAN; + json::number_float_t v_infinity = INFINITY; + + // create values of different floating-point types + float n_float = 42.23; + float n_float_nan = 1.0f / 0.0f; + double n_double = 23.42; + + // create (floating point) JSON numbers + json j_ok(v_ok); + json j_nan(v_nan); + json j_infinity(v_infinity); + json j_float(n_float); + json j_float_nan(n_float_nan); + json j_double(n_double); + + // serialize the JSON numbers + std::cout << j_integer_t << '\n'; + std::cout << j_unsigned_t << '\n'; + std::cout << j_enum << '\n'; + std::cout << j_short << '\n'; + std::cout << j_int << '\n'; + std::cout << j_long << '\n'; + std::cout << j_int_least32_t << '\n'; + std::cout << j_uint8_t << '\n'; + std::cout << j_ok << '\n'; + std::cout << j_nan << '\n'; + std::cout << j_infinity << '\n'; + std::cout << j_float << '\n'; + std::cout << j_float_nan << '\n'; + std::cout << j_double << "\n\n"; + + + // ============= + // boolean types + // ============= + + // create boolean values + json j_truth = true; + json j_falsity = false; + + // serialize the JSON booleans + std::cout << j_truth << '\n'; + std::cout << j_falsity << '\n'; +} diff --git a/doc/examples/basic_json__CompatibleType.link b/doc/examples/basic_json__CompatibleType.link new file mode 100644 index 000000000..a78f01bb8 --- /dev/null +++ b/doc/examples/basic_json__CompatibleType.link @@ -0,0 +1 @@ +<a target="_blank" href="http://melpon.org/wandbox/permlink/VM7W2kpE7sIYJ5DW"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__CompatibleType.output b/doc/examples/basic_json__CompatibleType.output new file mode 100644 index 000000000..d69ff44f7 --- /dev/null +++ b/doc/examples/basic_json__CompatibleType.output @@ -0,0 +1,38 @@ +{"one":1,"two":2} +{"one":1,"three":3,"two":2} +{"one":1.2,"three":3.4,"two":2.3} +{"one":true,"three":false,"two":true} +{"one":true,"three":false,"two":true} + +["one","two",3,4.5,false] +[1,2,3,4] +[1.2,2.3,3.4,5.6] +[true,true,false,true] +[12345678909876,23456789098765,34567890987654,45678909876543] +[1,2,3,4] +["four","one","three","two"] +["four","three","two","one"] +["four","one","one","two"] +["four","two","one","one"] + +"The quick brown fox jumps over the lazy dog." +"The quick brown fox jumps over the lazy dog." +"The quick brown fox jumps over the lazy dog." + +-42 +17 +17 +42 +-23 +1024 +-17 +8 +3.14159265358979 +null +null +42.2299995422363 +null +23.42 + +true +false diff --git a/doc/examples/basic_json__array_t.cpp b/doc/examples/basic_json__array_t.cpp deleted file mode 100644 index 1bb6931b2..000000000 --- a/doc/examples/basic_json__array_t.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create an array_t value - json::array_t value = {"one", "two", 3, 4.5, false}; - - // create a JSON array from the value - json j(value); - - // serialize the JSON array - std::cout << j << '\n'; -} diff --git a/doc/examples/basic_json__array_t.link b/doc/examples/basic_json__array_t.link deleted file mode 100644 index 70c9cb8cd..000000000 --- a/doc/examples/basic_json__array_t.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/dTbSNAvl6TqrMEAn"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__array_t.output b/doc/examples/basic_json__array_t.output deleted file mode 100644 index d379a756e..000000000 --- a/doc/examples/basic_json__array_t.output +++ /dev/null @@ -1 +0,0 @@ -["one","two",3,4.5,false] diff --git a/doc/examples/basic_json__boolean_t.cpp b/doc/examples/basic_json__boolean_t.cpp deleted file mode 100644 index 38f014e01..000000000 --- a/doc/examples/basic_json__boolean_t.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create boolean values - json j_truth = true; - json j_falsity = false; - - // serialize the JSON booleans - std::cout << j_truth << '\n'; - std::cout << j_falsity << '\n'; -} diff --git a/doc/examples/basic_json__boolean_t.link b/doc/examples/basic_json__boolean_t.link deleted file mode 100644 index c64e1fc47..000000000 --- a/doc/examples/basic_json__boolean_t.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/VmVl9pyrQp8LyOnU"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__boolean_t.output b/doc/examples/basic_json__boolean_t.output deleted file mode 100644 index da29283aa..000000000 --- a/doc/examples/basic_json__boolean_t.output +++ /dev/null @@ -1,2 +0,0 @@ -true -false diff --git a/doc/examples/basic_json__const_int.cpp b/doc/examples/basic_json__const_int.cpp deleted file mode 100644 index 7e38544bf..000000000 --- a/doc/examples/basic_json__const_int.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // an anonymous enum - enum { t = 17 }; - - // create a JSON number from the enum - json j(t); - - // serialize the JSON numbers - std::cout << j << '\n'; -} diff --git a/doc/examples/basic_json__const_int.link b/doc/examples/basic_json__const_int.link deleted file mode 100644 index 68a9e235d..000000000 --- a/doc/examples/basic_json__const_int.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/3xQ1qy7BT9OrSSCo"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__const_int.output b/doc/examples/basic_json__const_int.output deleted file mode 100644 index 98d9bcb75..000000000 --- a/doc/examples/basic_json__const_int.output +++ /dev/null @@ -1 +0,0 @@ -17 diff --git a/doc/examples/basic_json__number_float_t.cpp b/doc/examples/basic_json__number_float_t.cpp deleted file mode 100644 index 92533b7d0..000000000 --- a/doc/examples/basic_json__number_float_t.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create values of different floating-point types - json::number_float_t v_ok = 3.141592653589793; - json::number_float_t v_nan = NAN; - json::number_float_t v_infinity = INFINITY; - - // create JSON numbers - json j_ok(v_ok); - json j_nan(v_nan); - json j_infinity(v_infinity); - - // serialize the JSON numbers - std::cout << j_ok << '\n'; - std::cout << j_nan << '\n'; - std::cout << j_infinity << '\n'; -} diff --git a/doc/examples/basic_json__number_float_t.link b/doc/examples/basic_json__number_float_t.link deleted file mode 100644 index 47aa2553a..000000000 --- a/doc/examples/basic_json__number_float_t.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/OTgOxjIAKFvxpFdm"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__number_float_t.output b/doc/examples/basic_json__number_float_t.output deleted file mode 100644 index 964a7b1f2..000000000 --- a/doc/examples/basic_json__number_float_t.output +++ /dev/null @@ -1,3 +0,0 @@ -3.14159265358979 -null -null diff --git a/doc/examples/basic_json__number_integer_t.cpp b/doc/examples/basic_json__number_integer_t.cpp deleted file mode 100644 index 1078f360e..000000000 --- a/doc/examples/basic_json__number_integer_t.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create a JSON number from number_integer_t - json::number_integer_t value = 42; - - json j(value); - - // serialize the JSON numbers - std::cout << j << '\n'; -} diff --git a/doc/examples/basic_json__number_integer_t.link b/doc/examples/basic_json__number_integer_t.link deleted file mode 100644 index 5d4499b59..000000000 --- a/doc/examples/basic_json__number_integer_t.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/cCQRCvjXdRM9YpT5"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__number_integer_t.output b/doc/examples/basic_json__number_integer_t.output deleted file mode 100644 index d81cc0710..000000000 --- a/doc/examples/basic_json__number_integer_t.output +++ /dev/null @@ -1 +0,0 @@ -42 diff --git a/doc/examples/basic_json__object_t.cpp b/doc/examples/basic_json__object_t.cpp deleted file mode 100644 index 39e2fcc0c..000000000 --- a/doc/examples/basic_json__object_t.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create an object_t value - json::object_t value = { {"one", 1}, {"two", 2} }; - - // create a JSON object from the value - json j(value); - - // serialize the JSON object - std::cout << j << '\n'; -} diff --git a/doc/examples/basic_json__object_t.link b/doc/examples/basic_json__object_t.link deleted file mode 100644 index 2e07a3efb..000000000 --- a/doc/examples/basic_json__object_t.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/DgtHcz5L6JphTOGJ"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__object_t.output b/doc/examples/basic_json__object_t.output deleted file mode 100644 index 62376d83e..000000000 --- a/doc/examples/basic_json__object_t.output +++ /dev/null @@ -1 +0,0 @@ -{"one":1,"two":2} diff --git a/doc/examples/basic_json__string_t.cpp b/doc/examples/basic_json__string_t.cpp deleted file mode 100644 index 3205f623d..000000000 --- a/doc/examples/basic_json__string_t.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create an string_t value - json::string_t value = "The quick brown fox jumps over the lazy doc"; - - // create a JSON string from the value - json j(value); - - // serialize the JSON array - std::cout << j << '\n'; -} diff --git a/doc/examples/basic_json__string_t.link b/doc/examples/basic_json__string_t.link deleted file mode 100644 index d7d02f2fb..000000000 --- a/doc/examples/basic_json__string_t.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/cwNYP1q2mT8CFLTk"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__string_t.output b/doc/examples/basic_json__string_t.output deleted file mode 100644 index 89990044c..000000000 --- a/doc/examples/basic_json__string_t.output +++ /dev/null @@ -1 +0,0 @@ -"The quick brown fox jumps over the lazy doc" diff --git a/doc/examples/basic_json__string_t_value_type.cpp b/doc/examples/basic_json__string_t_value_type.cpp deleted file mode 100644 index 5379ca064..000000000 --- a/doc/examples/basic_json__string_t_value_type.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include <json.hpp> - -using json = nlohmann::json; - -int main() -{ - // create a JSON string directly from a string literal - json j("The quick brown fox jumps over the lazy doc"); - - // serialize the JSON array - std::cout << j << '\n'; -} diff --git a/doc/examples/basic_json__string_t_value_type.link b/doc/examples/basic_json__string_t_value_type.link deleted file mode 100644 index 569087684..000000000 --- a/doc/examples/basic_json__string_t_value_type.link +++ /dev/null @@ -1 +0,0 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/AtV4zVErfLwkileg"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/basic_json__string_t_value_type.output b/doc/examples/basic_json__string_t_value_type.output deleted file mode 100644 index 89990044c..000000000 --- a/doc/examples/basic_json__string_t_value_type.output +++ /dev/null @@ -1 +0,0 @@ -"The quick brown fox jumps over the lazy doc" diff --git a/src/json.hpp b/src/json.hpp index 13e7b07d0..29c1a7ab4 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -1907,31 +1907,70 @@ class basic_json } /*! - @brief forwards the parameter to json_serializer<U>::to_json method (U = uncvref_t<T>) + @brief create a JSON value - this constructor is chosen if: - - T is not derived from std::istream - - T is not @ref basic_json (to avoid hijacking copy/move constructors) - - T is not a @ref basic_json nested type (@ref json_pointer, @ref iterator, etc ...) - - @ref json_serializer<U> has a to_json(basic_json_t&, T&&) method + This is a "catch all" constructor for all compatible JSON types; that is, + types for which a `to_json()` method exsits. The constructor forwards the + parameter @a val to that method (to `json_serializer<U>::to_json` method + with `U = uncvref_t<CompatibleType>`, to be exact). + + Template type @a CompatibleType includes, but is not limited to, the + following types: + - **arrays**: @ref array_t and all kinds of compatible containers such as + `std::vector`, `std::deque`, `std::list`, `std::forward_list`, + `std::array`, `std::set`, `std::unordered_set`, `std::multiset`, and + `unordered_multiset` with a `value_type` from which a @ref basic_json + value can be constructed. + - **objects**: @ref object_t and all kinds of compatible associative + containers such as `std::map`, `std::unordered_map`, `std::multimap`, + and `std::unordered_multimap` with a `key_type` compatible to + @ref string_t and a `value_type` from which a @ref basic_json value can + be constructed. + - **strings**: @ref string_t, string literals, and all compatible string + containers can be used. + - **numbers**: @ref number_integer_t, @ref number_unsigned_t, + @ref number_float_t, and all convertible number types such as `int`, + `size_t`, `int64_t`, `float` or `double` can be used. + - **boolean**: @ref boolean_t / `bool` can be used. + + See the examples below. + + @tparam CompatibleType a type such that: + - @a CompatibleType is not derived from `std::istream`, + - @a CompatibleType is not @ref basic_json (to avoid hijacking copy/move + constructors), + - @a CompatibleType is not a @ref basic_json nested type (e.g., + @ref json_pointer, @ref iterator, etc ...) + - @ref @ref json_serializer<U> has a + `to_json(basic_json_t&, CompatibleType&&)` method + + @tparam U = `uncvref_t<CompatibleType>` @param[in] val the value to be forwarded - @throw what json_serializer<U>::to_json throws + @complexity Usually linear in the size of the passed @a val, also + depending on the implementation of the called `to_json()` + method. + + @throw what `json_serializer<U>::to_json()` throws + + @liveexample{The following code shows the constructor with several + compatible types.,basic_json__CompatibleType} @since version 2.1.0 */ - template<typename T, typename U = detail::uncvref_t<T>, + template<typename CompatibleType, typename U = detail::uncvref_t<CompatibleType>, detail::enable_if_t<not std::is_base_of<std::istream, U>::value and not std::is_same<U, basic_json_t>::value and not detail::is_basic_json_nested_type< basic_json_t, U>::value and detail::has_to_json<basic_json, U>::value, int> = 0> - basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json( - std::declval<basic_json_t&>(), std::forward<T>(val)))) + basic_json(CompatibleType && val) noexcept(noexcept(JSONSerializer<U>::to_json( + std::declval<basic_json_t&>(), std::forward<CompatibleType>(val)))) { - JSONSerializer<U>::to_json(*this, std::forward<T>(val)); + JSONSerializer<U>::to_json(*this, std::forward<CompatibleType>(val)); + assert_invariant(); } /*! @@ -7950,7 +7989,7 @@ class basic_json @complexity Constant. @liveexample{The following code exemplifies `type_name()` for all JSON - types.,typename} + types.,type_name} @since version 1.0.0 */ @@ -7975,7 +8014,6 @@ class basic_json return "number"; } } - } private: diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 45e1ba58f..ab180d9ff 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -1907,31 +1907,70 @@ class basic_json } /*! - @brief forwards the parameter to json_serializer<U>::to_json method (U = uncvref_t<T>) + @brief create a JSON value - this constructor is chosen if: - - T is not derived from std::istream - - T is not @ref basic_json (to avoid hijacking copy/move constructors) - - T is not a @ref basic_json nested type (@ref json_pointer, @ref iterator, etc ...) - - @ref json_serializer<U> has a to_json(basic_json_t&, T&&) method + This is a "catch all" constructor for all compatible JSON types; that is, + types for which a `to_json()` method exsits. The constructor forwards the + parameter @a val to that method (to `json_serializer<U>::to_json` method + with `U = uncvref_t<CompatibleType>`, to be exact). + + Template type @a CompatibleType includes, but is not limited to, the + following types: + - **arrays**: @ref array_t and all kinds of compatible containers such as + `std::vector`, `std::deque`, `std::list`, `std::forward_list`, + `std::array`, `std::set`, `std::unordered_set`, `std::multiset`, and + `unordered_multiset` with a `value_type` from which a @ref basic_json + value can be constructed. + - **objects**: @ref object_t and all kinds of compatible associative + containers such as `std::map`, `std::unordered_map`, `std::multimap`, + and `std::unordered_multimap` with a `key_type` compatible to + @ref string_t and a `value_type` from which a @ref basic_json value can + be constructed. + - **strings**: @ref string_t, string literals, and all compatible string + containers can be used. + - **numbers**: @ref number_integer_t, @ref number_unsigned_t, + @ref number_float_t, and all convertible number types such as `int`, + `size_t`, `int64_t`, `float` or `double` can be used. + - **boolean**: @ref boolean_t / `bool` can be used. + + See the examples below. + + @tparam CompatibleType a type such that: + - @a CompatibleType is not derived from `std::istream`, + - @a CompatibleType is not @ref basic_json (to avoid hijacking copy/move + constructors), + - @a CompatibleType is not a @ref basic_json nested type (e.g., + @ref json_pointer, @ref iterator, etc ...) + - @ref @ref json_serializer<U> has a + `to_json(basic_json_t&, CompatibleType&&)` method + + @tparam U = `uncvref_t<CompatibleType>` @param[in] val the value to be forwarded - @throw what json_serializer<U>::to_json throws + @complexity Usually linear in the size of the passed @a val, also + depending on the implementation of the called `to_json()` + method. + + @throw what `json_serializer<U>::to_json()` throws + + @liveexample{The following code shows the constructor with several + compatible types.,basic_json__CompatibleType} @since version 2.1.0 */ - template<typename T, typename U = detail::uncvref_t<T>, + template<typename CompatibleType, typename U = detail::uncvref_t<CompatibleType>, detail::enable_if_t<not std::is_base_of<std::istream, U>::value and not std::is_same<U, basic_json_t>::value and not detail::is_basic_json_nested_type< basic_json_t, U>::value and detail::has_to_json<basic_json, U>::value, int> = 0> - basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json( - std::declval<basic_json_t&>(), std::forward<T>(val)))) + basic_json(CompatibleType && val) noexcept(noexcept(JSONSerializer<U>::to_json( + std::declval<basic_json_t&>(), std::forward<CompatibleType>(val)))) { - JSONSerializer<U>::to_json(*this, std::forward<T>(val)); + JSONSerializer<U>::to_json(*this, std::forward<CompatibleType>(val)); + assert_invariant(); } /*! @@ -7950,7 +7989,7 @@ class basic_json @complexity Constant. @liveexample{The following code exemplifies `type_name()` for all JSON - types.,typename} + types.,type_name} @since version 1.0.0 */ @@ -7975,7 +8014,6 @@ class basic_json return "number"; } } - } private: From 4d3053cd42c41dd4bcf6cf45f996a0d1af655fb3 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Wed, 25 Jan 2017 22:21:07 +0100 Subject: [PATCH 120/130] :lipstick: some cleanup --- src/json.hpp | 44 +++++++++++++++++++++++++------------------- src/json.hpp.re2c | 44 +++++++++++++++++++++++++------------------- 2 files changed, 50 insertions(+), 38 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 29c1a7ab4..2bc35c4ab 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -204,14 +204,14 @@ using enable_if_t = typename std::enable_if<B, T>::type; template<typename T> using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type; -// Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait +// taken from http://stackoverflow.com/a/26936864/266378 template<typename T> using is_unscoped_enum = std::integral_constant<bool, std::is_convertible<T, int>::value and std::is_enum<T>::value>; /* -Implementation of 2 C++17 constructs: conjunction, negation. This is needed +Implementation of two C++17 constructs: conjunction, negation. This is needed to avoid evaluating all the traits in a condition For example: not std::is_same<void, T>::value and has_value_type<T>::value @@ -393,6 +393,7 @@ NLOHMANN_JSON_HAS_HELPER(iterator); #undef NLOHMANN_JSON_HAS_HELPER + template<bool B, class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl : std::false_type {}; @@ -468,7 +469,7 @@ struct is_compatible_integer_type }; -// This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists +// trait checking if JSONSerializer<T>::from_json(json const&, udt&) exists template<typename BasicJsonType, typename T> struct has_from_json { @@ -530,8 +531,7 @@ void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept template<typename BasicJsonType, typename CompatibleString, enable_if_t<std::is_constructible<typename BasicJsonType::string_t, - CompatibleString>::value, - int> = 0> + CompatibleString>::value, int> = 0> void to_json(BasicJsonType& j, const CompatibleString& s) { external_constructor<value_t::string>::construct(j, s); @@ -547,8 +547,7 @@ void to_json(BasicJsonType& j, FloatType val) noexcept template < typename BasicJsonType, typename CompatibleNumberUnsignedType, enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t, - CompatibleNumberUnsignedType>::value, - int> = 0 > + CompatibleNumberUnsignedType>::value, int> = 0 > void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept { external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val)); @@ -557,8 +556,7 @@ void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept template < typename BasicJsonType, typename CompatibleNumberIntegerType, enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t, - CompatibleNumberIntegerType>::value, - int> = 0 > + CompatibleNumberIntegerType>::value, int> = 0 > void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept { external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val)); @@ -690,7 +688,6 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) } // forward_list doesn't have an insert method -// TODO find a way to avoid including forward_list template<typename BasicJsonType, typename T, typename Allocator> void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) { @@ -781,14 +778,15 @@ void from_json(const BasicJsonType& j, CompatibleObjectType& obj) using std::begin; using std::end; // we could avoid the assignment, but this might require a for loop, which - // might be less efficient than the container constructor for some containers (would it?) + // might be less efficient than the container constructor for some + // containers (would it?) obj = CompatibleObjectType(begin(*inner_object), end(*inner_object)); } -// overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) -// -// note: Is it really necessary to provide explicit overloads for boolean_t etc.. -// in case of a custom BooleanType which is not an arithmetic type? +// overload for arithmetic types, not chosen for basic_json template arguments +// (BooleanType, etc..); note: Is it really necessary to provide explicit +// overloads for boolean_t etc. in case of a custom BooleanType which is not +// an arithmetic type? template<typename BasicJsonType, typename ArithmeticType, enable_if_t < std::is_arithmetic<ArithmeticType>::value and @@ -802,19 +800,29 @@ void from_json(const BasicJsonType& j, ArithmeticType& val) switch (static_cast<value_t>(j)) { case value_t::number_unsigned: + { val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); break; + } case value_t::number_integer: + { val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); break; + } case value_t::number_float: + { val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>()); break; + } case value_t::boolean: + { val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>()); break; + } default: + { JSON_THROW(std::domain_error("type must be number, but is " + j.type_name())); + } } } @@ -3160,8 +3168,7 @@ class basic_json detail::enable_if_t < not std::is_same<basic_json_t, U>::value and detail::has_from_json<basic_json_t, U>::value and - not detail::has_non_default_from_json<basic_json_t, - U>::value, + not detail::has_non_default_from_json<basic_json_t, U>::value, int > = 0 > U get() const noexcept(noexcept(JSONSerializer<U>::from_json( std::declval<const basic_json_t&>(), std::declval<U&>()))) @@ -3196,8 +3203,7 @@ class basic_json typename U = detail::uncvref_t<T>, detail::enable_if_t<not std::is_same<basic_json_t, U>::value and detail::has_non_default_from_json<basic_json_t, - U>::value, - int> = 0 > + U>::value, int> = 0 > U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index ab180d9ff..5a9d2f88c 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -204,14 +204,14 @@ using enable_if_t = typename std::enable_if<B, T>::type; template<typename T> using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type; -// Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait +// taken from http://stackoverflow.com/a/26936864/266378 template<typename T> using is_unscoped_enum = std::integral_constant<bool, std::is_convertible<T, int>::value and std::is_enum<T>::value>; /* -Implementation of 2 C++17 constructs: conjunction, negation. This is needed +Implementation of two C++17 constructs: conjunction, negation. This is needed to avoid evaluating all the traits in a condition For example: not std::is_same<void, T>::value and has_value_type<T>::value @@ -393,6 +393,7 @@ NLOHMANN_JSON_HAS_HELPER(iterator); #undef NLOHMANN_JSON_HAS_HELPER + template<bool B, class RealType, class CompatibleObjectType> struct is_compatible_object_type_impl : std::false_type {}; @@ -468,7 +469,7 @@ struct is_compatible_integer_type }; -// This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists +// trait checking if JSONSerializer<T>::from_json(json const&, udt&) exists template<typename BasicJsonType, typename T> struct has_from_json { @@ -530,8 +531,7 @@ void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept template<typename BasicJsonType, typename CompatibleString, enable_if_t<std::is_constructible<typename BasicJsonType::string_t, - CompatibleString>::value, - int> = 0> + CompatibleString>::value, int> = 0> void to_json(BasicJsonType& j, const CompatibleString& s) { external_constructor<value_t::string>::construct(j, s); @@ -547,8 +547,7 @@ void to_json(BasicJsonType& j, FloatType val) noexcept template < typename BasicJsonType, typename CompatibleNumberUnsignedType, enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t, - CompatibleNumberUnsignedType>::value, - int> = 0 > + CompatibleNumberUnsignedType>::value, int> = 0 > void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept { external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val)); @@ -557,8 +556,7 @@ void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept template < typename BasicJsonType, typename CompatibleNumberIntegerType, enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t, - CompatibleNumberIntegerType>::value, - int> = 0 > + CompatibleNumberIntegerType>::value, int> = 0 > void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept { external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val)); @@ -690,7 +688,6 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) } // forward_list doesn't have an insert method -// TODO find a way to avoid including forward_list template<typename BasicJsonType, typename T, typename Allocator> void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) { @@ -781,14 +778,15 @@ void from_json(const BasicJsonType& j, CompatibleObjectType& obj) using std::begin; using std::end; // we could avoid the assignment, but this might require a for loop, which - // might be less efficient than the container constructor for some containers (would it?) + // might be less efficient than the container constructor for some + // containers (would it?) obj = CompatibleObjectType(begin(*inner_object), end(*inner_object)); } -// overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..) -// -// note: Is it really necessary to provide explicit overloads for boolean_t etc.. -// in case of a custom BooleanType which is not an arithmetic type? +// overload for arithmetic types, not chosen for basic_json template arguments +// (BooleanType, etc..); note: Is it really necessary to provide explicit +// overloads for boolean_t etc. in case of a custom BooleanType which is not +// an arithmetic type? template<typename BasicJsonType, typename ArithmeticType, enable_if_t < std::is_arithmetic<ArithmeticType>::value and @@ -802,19 +800,29 @@ void from_json(const BasicJsonType& j, ArithmeticType& val) switch (static_cast<value_t>(j)) { case value_t::number_unsigned: + { val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); break; + } case value_t::number_integer: + { val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); break; + } case value_t::number_float: + { val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>()); break; + } case value_t::boolean: + { val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>()); break; + } default: + { JSON_THROW(std::domain_error("type must be number, but is " + j.type_name())); + } } } @@ -3160,8 +3168,7 @@ class basic_json detail::enable_if_t < not std::is_same<basic_json_t, U>::value and detail::has_from_json<basic_json_t, U>::value and - not detail::has_non_default_from_json<basic_json_t, - U>::value, + not detail::has_non_default_from_json<basic_json_t, U>::value, int > = 0 > U get() const noexcept(noexcept(JSONSerializer<U>::from_json( std::declval<const basic_json_t&>(), std::declval<U&>()))) @@ -3196,8 +3203,7 @@ class basic_json typename U = detail::uncvref_t<T>, detail::enable_if_t<not std::is_same<basic_json_t, U>::value and detail::has_non_default_from_json<basic_json_t, - U>::value, - int> = 0 > + U>::value, int> = 0 > U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) { static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); From 77bb7af5d91606d90c0894ed61459d327c64dda9 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Thu, 26 Jan 2017 07:29:37 +0100 Subject: [PATCH 121/130] :memo: added more documentation --- src/json.hpp | 132 +++++++++++++++++++++++++++++++++------------- src/json.hpp.re2c | 132 +++++++++++++++++++++++++++++++++------------- 2 files changed, 188 insertions(+), 76 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 2bc35c4ab..06c5683b0 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -956,6 +956,8 @@ default; will be used in @ref number_integer_t) default; will be used in @ref number_float_t) @tparam AllocatorType type of the allocator to use (`std::allocator` by default) +@tparam JSONSerializer the serializer to resolve internal calls to `to_json()` +and `from_json()` @requirement The class satisfies the following concept requirements: - Basic @@ -2997,6 +2999,10 @@ class basic_json /// @} private: + ////////////////// + // value access // + ////////////////// + /// get a boolean (explicit) boolean_t get_impl(boolean_t* /*unused*/) const { @@ -3124,12 +3130,17 @@ class basic_json } public: + /// @name value access + /// Direct access to the stored value of a JSON value. + /// @{ + /*! @brief get special-case overload - This overloads avoids a lot of template boilerplate, it can be seen as the identity method + This overloads avoids a lot of template boilerplate, it can be seen as the + identity method - @tparam T type; T == @ref basic_json + @tparam BasicJsonType == @ref basic_json @return a copy of *this @@ -3138,8 +3149,8 @@ class basic_json @since version 2.1.0 */ template < - typename T, - detail::enable_if_t<std::is_same<typename std::remove_const<T>::type, + typename BasicJsonType, + detail::enable_if_t<std::is_same<typename std::remove_const<BasicJsonType>::type, basic_json_t>::value, int> = 0 > basic_json get() const @@ -3148,66 +3159,111 @@ class basic_json } /*! - @brief get overload for CopyConstructible and DefaultConstructible types - construct a default U value, and call @ref json_serializer<U> from_json method with it + @brief get a value (explicit) + + Explicit type conversion between the JSON value and a compatible value + which is [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible) + and [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). + The value is converted by calling the @ref json_serializer<ValueType> + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + ValueType ret; + JSONSerializer<ValueType>::from_json(*this, ret); + return ret; + @endcode This overloads is chosen if: - - U is not @ref basic_json - - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&) - - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&); + - @a ValueType is not @ref basic_json, + - @ref json_serializer<ValueType> has a `from_json()` method of the form + `void from_json(const @ref basic_json&, ValueType&)`, and + - @ref json_serializer<ValueType> does not have a `from_json()` method of + the form `ValueType from_json(const @ref basic_json&)` - @return a value of type U + @tparam ValueTypeCV the provided value type + @tparam ValueType the returned value type - @throw what json_serializer<U> from_json method throws + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer<ValueType> `from_json()` method throws + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector<short>`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map<std::string\, + json>`.,get__ValueType_const} @since version 2.1.0 */ template < - typename T, - typename U = detail::uncvref_t<T>, + typename ValueTypeCV, + typename ValueType = detail::uncvref_t<ValueTypeCV>, detail::enable_if_t < - not std::is_same<basic_json_t, U>::value and - detail::has_from_json<basic_json_t, U>::value and - not detail::has_non_default_from_json<basic_json_t, U>::value, + not std::is_same<basic_json_t, ValueType>::value and + detail::has_from_json<basic_json_t, ValueType>::value and + not detail::has_non_default_from_json<basic_json_t, ValueType>::value, int > = 0 > - U get() const noexcept(noexcept(JSONSerializer<U>::from_json( - std::declval<const basic_json_t&>(), std::declval<U&>()))) + ValueType get() const noexcept(noexcept( + JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>(), std::declval<ValueType&>()))) { - // we cannot static_assert on T being non-const, because there is support - // for get<const basic_json_t>(), which is why we still need the uncvref - static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); - static_assert(std::is_default_constructible<U>::value, - "Types must be DefaultConstructible when used with get"); - U ret; - JSONSerializer<U>::from_json(*this, ret); + // we cannot static_assert on ValueTypeCV being non-const, because + // there is support for get<const basic_json_t>(), which is why we + // still need the uncvref + static_assert(not std::is_reference<ValueTypeCV>::value, + "get() cannot be used with reference types, you might want to use get_ref()"); + static_assert(std::is_default_constructible<ValueType>::value, + "types must be DefaultConstructible when used with get()"); + + ValueType ret; + JSONSerializer<ValueType>::from_json(*this, ret); return ret; } /*! - @brief get overload for types than cannot be default constructed or copy constructed + @brief get a value (explicit); special case - If @ref json_serializer<U> has both overloads of from_json, this one is chosen + Explicit type conversion between the JSON value and a compatible value + which is **not** [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible) + and **not** [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). + The value is converted by calling the @ref json_serializer<ValueType> + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + return JSONSerializer<ValueTypeCV>::from_json(*this); + @endcode This overloads is chosen if: - - U is not @ref basic_json - - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&); + - @a ValueType is not @ref basic_json and + - @ref json_serializer<ValueType> has a `from_json()` method of the form + `ValueType from_json(const @ref basic_json&)` - @return a value of type U + @note If @ref json_serializer<ValueType> has both overloads of + `from_json()`, this one is chosen. - @throw what json_serializer<U> from_json method throws + @tparam ValueTypeCV the provided value type + @tparam ValueType the returned value type + + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer<ValueType> `from_json()` method throws @since version 2.1.0 */ template < - typename T, - typename U = detail::uncvref_t<T>, - detail::enable_if_t<not std::is_same<basic_json_t, U>::value and + typename ValueTypeCV, + typename ValueType = detail::uncvref_t<ValueTypeCV>, + detail::enable_if_t<not std::is_same<basic_json_t, ValueType>::value and detail::has_non_default_from_json<basic_json_t, - U>::value, int> = 0 > - U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) + ValueType>::value, int> = 0 > + ValueType get() const noexcept(noexcept( + JSONSerializer<ValueTypeCV>::from_json(std::declval<const basic_json_t&>()))) { - static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); - return JSONSerializer<T>::from_json(*this); + static_assert(not std::is_reference<ValueTypeCV>::value, + "get() cannot be used with reference types, you might want to use get_ref()"); + return JSONSerializer<ValueTypeCV>::from_json(*this); } /*! diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 5a9d2f88c..0bf3db1d7 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -956,6 +956,8 @@ default; will be used in @ref number_integer_t) default; will be used in @ref number_float_t) @tparam AllocatorType type of the allocator to use (`std::allocator` by default) +@tparam JSONSerializer the serializer to resolve internal calls to `to_json()` +and `from_json()` @requirement The class satisfies the following concept requirements: - Basic @@ -2997,6 +2999,10 @@ class basic_json /// @} private: + ////////////////// + // value access // + ////////////////// + /// get a boolean (explicit) boolean_t get_impl(boolean_t* /*unused*/) const { @@ -3124,12 +3130,17 @@ class basic_json } public: + /// @name value access + /// Direct access to the stored value of a JSON value. + /// @{ + /*! @brief get special-case overload - This overloads avoids a lot of template boilerplate, it can be seen as the identity method + This overloads avoids a lot of template boilerplate, it can be seen as the + identity method - @tparam T type; T == @ref basic_json + @tparam BasicJsonType == @ref basic_json @return a copy of *this @@ -3138,8 +3149,8 @@ class basic_json @since version 2.1.0 */ template < - typename T, - detail::enable_if_t<std::is_same<typename std::remove_const<T>::type, + typename BasicJsonType, + detail::enable_if_t<std::is_same<typename std::remove_const<BasicJsonType>::type, basic_json_t>::value, int> = 0 > basic_json get() const @@ -3148,66 +3159,111 @@ class basic_json } /*! - @brief get overload for CopyConstructible and DefaultConstructible types - construct a default U value, and call @ref json_serializer<U> from_json method with it + @brief get a value (explicit) + + Explicit type conversion between the JSON value and a compatible value + which is [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible) + and [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). + The value is converted by calling the @ref json_serializer<ValueType> + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + ValueType ret; + JSONSerializer<ValueType>::from_json(*this, ret); + return ret; + @endcode This overloads is chosen if: - - U is not @ref basic_json - - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&) - - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&); + - @a ValueType is not @ref basic_json, + - @ref json_serializer<ValueType> has a `from_json()` method of the form + `void from_json(const @ref basic_json&, ValueType&)`, and + - @ref json_serializer<ValueType> does not have a `from_json()` method of + the form `ValueType from_json(const @ref basic_json&)` - @return a value of type U + @tparam ValueTypeCV the provided value type + @tparam ValueType the returned value type - @throw what json_serializer<U> from_json method throws + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer<ValueType> `from_json()` method throws + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector<short>`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map<std::string\, + json>`.,get__ValueType_const} @since version 2.1.0 */ template < - typename T, - typename U = detail::uncvref_t<T>, + typename ValueTypeCV, + typename ValueType = detail::uncvref_t<ValueTypeCV>, detail::enable_if_t < - not std::is_same<basic_json_t, U>::value and - detail::has_from_json<basic_json_t, U>::value and - not detail::has_non_default_from_json<basic_json_t, U>::value, + not std::is_same<basic_json_t, ValueType>::value and + detail::has_from_json<basic_json_t, ValueType>::value and + not detail::has_non_default_from_json<basic_json_t, ValueType>::value, int > = 0 > - U get() const noexcept(noexcept(JSONSerializer<U>::from_json( - std::declval<const basic_json_t&>(), std::declval<U&>()))) + ValueType get() const noexcept(noexcept( + JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>(), std::declval<ValueType&>()))) { - // we cannot static_assert on T being non-const, because there is support - // for get<const basic_json_t>(), which is why we still need the uncvref - static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); - static_assert(std::is_default_constructible<U>::value, - "Types must be DefaultConstructible when used with get"); - U ret; - JSONSerializer<U>::from_json(*this, ret); + // we cannot static_assert on ValueTypeCV being non-const, because + // there is support for get<const basic_json_t>(), which is why we + // still need the uncvref + static_assert(not std::is_reference<ValueTypeCV>::value, + "get() cannot be used with reference types, you might want to use get_ref()"); + static_assert(std::is_default_constructible<ValueType>::value, + "types must be DefaultConstructible when used with get()"); + + ValueType ret; + JSONSerializer<ValueType>::from_json(*this, ret); return ret; } /*! - @brief get overload for types than cannot be default constructed or copy constructed + @brief get a value (explicit); special case - If @ref json_serializer<U> has both overloads of from_json, this one is chosen + Explicit type conversion between the JSON value and a compatible value + which is **not** [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible) + and **not** [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). + The value is converted by calling the @ref json_serializer<ValueType> + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + return JSONSerializer<ValueTypeCV>::from_json(*this); + @endcode This overloads is chosen if: - - U is not @ref basic_json - - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&); + - @a ValueType is not @ref basic_json and + - @ref json_serializer<ValueType> has a `from_json()` method of the form + `ValueType from_json(const @ref basic_json&)` - @return a value of type U + @note If @ref json_serializer<ValueType> has both overloads of + `from_json()`, this one is chosen. - @throw what json_serializer<U> from_json method throws + @tparam ValueTypeCV the provided value type + @tparam ValueType the returned value type + + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer<ValueType> `from_json()` method throws @since version 2.1.0 */ template < - typename T, - typename U = detail::uncvref_t<T>, - detail::enable_if_t<not std::is_same<basic_json_t, U>::value and + typename ValueTypeCV, + typename ValueType = detail::uncvref_t<ValueTypeCV>, + detail::enable_if_t<not std::is_same<basic_json_t, ValueType>::value and detail::has_non_default_from_json<basic_json_t, - U>::value, int> = 0 > - U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>()))) + ValueType>::value, int> = 0 > + ValueType get() const noexcept(noexcept( + JSONSerializer<ValueTypeCV>::from_json(std::declval<const basic_json_t&>()))) { - static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref"); - return JSONSerializer<T>::from_json(*this); + static_assert(not std::is_reference<ValueTypeCV>::value, + "get() cannot be used with reference types, you might want to use get_ref()"); + return JSONSerializer<ValueTypeCV>::from_json(*this); } /*! From 1305e0355795e41521a1de9b3137b7c0ff4ea01e Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Thu, 26 Jan 2017 19:39:34 +0100 Subject: [PATCH 122/130] :memo: fixed documentation --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8cf4865b3..e2e36fd13 100644 --- a/README.md +++ b/README.md @@ -520,7 +520,7 @@ Likewise, when calling `get<your_type>()`, the `from_json` method will be called Some important things: * Those methods **MUST** be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined). -* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). (There is a way to bypass those requirements described later.) +* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). (There is a way to bypass this requirement described later.) #### How do I convert third-party types? @@ -583,8 +583,7 @@ struct move_only_type { move_only_type(const move_only_type&) = delete; move_only_type(move_only_type&&) = default; - private: - int i; + int i; }; namespace nlohmann { From cd9701b123df0bc470c3ec15d71b35b3c5410088 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Thu, 26 Jan 2017 20:51:30 +0100 Subject: [PATCH 123/130] :lipstick: cleanup --- src/json.hpp | 78 +++++++++++++++++++++++++---------------------- src/json.hpp.re2c | 78 +++++++++++++++++++++++++---------------------- 2 files changed, 84 insertions(+), 72 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 06c5683b0..6909553a1 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -633,7 +633,7 @@ void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) { - if (!j.is_boolean()) + if (not j.is_boolean()) { JSON_THROW(std::domain_error("type must be boolean, but is " + j.type_name())); } @@ -643,7 +643,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) { - if (!j.is_string()) + if (not j.is_string()) { JSON_THROW(std::domain_error("type must be string, but is " + j.type_name())); } @@ -680,7 +680,7 @@ void from_json(const BasicJsonType& j, UnscopedEnumType& e) template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) { - if (!j.is_array()) + if (not j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } @@ -699,7 +699,7 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) } if (not std::is_same<T, BasicJsonType>::value) { - if (!j.is_array()) + if (not j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } @@ -757,7 +757,7 @@ void from_json(const BasicJsonType& j, CompatibleArrayType& arr) // when T == BasicJsonType, do not check if value_t is correct if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value) { - if (!j.is_array()) + if (not j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } @@ -769,7 +769,7 @@ template<typename BasicJsonType, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0> void from_json(const BasicJsonType& j, CompatibleObjectType& obj) { - if (!j.is_object()) + if (not j.is_object()) { JSON_THROW(std::domain_error("type must be object, but is " + j.type_name())); } @@ -828,6 +828,7 @@ void from_json(const BasicJsonType& j, ArithmeticType& val) struct to_json_fn { + private: template<typename BasicJsonType, typename T> auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val)))) -> decltype(to_json(j, std::forward<T>(val)), void()) @@ -887,52 +888,57 @@ struct static_const template<typename T> constexpr T static_const<T>::value; - - -/*! -@brief helper class to create locales with decimal point - -This struct is used a default locale during the JSON serialization. JSON -requires the decimal point to be `.`, so this function overloads the -`do_decimal_point()` function to return `.`. This function is called by -float-to-string conversions to retrieve the decimal separator between integer -and fractional parts. - -@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315 -@since version 2.0.0 -*/ -struct DecimalSeparator : std::numpunct<char> -{ - char do_decimal_point() const - { - return '.'; - } -}; } // namespace detail +/// namespace to hold default `to_json` / `from_json` functions namespace { constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value; constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value; } -// default JSONSerializer template argument, doesn't care about template argument -// will use ADL for serialization + +/*! +@brief default JSONSerializer template argument + +This serializer ignores the template arguments and uses ADL +([argument-dependent lookup](http://en.cppreference.com/w/cpp/language/adl)) +for serialization. +*/ template<typename = void, typename = void> struct adl_serializer { - template<typename BasicJsonType, typename T> - static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val))) + /*! + @brief convert a JSON value to any value type + + This function is usually called by the `get()` function of the + @ref basic_json class (either explicit or via conversion operators). + + @param[in] j JSON value to read from + @param[in, out] val value to write to + */ + template<typename BasicJsonType, typename ValueType> + static void from_json(BasicJsonType&& j, ValueType& val) noexcept( + noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val))) { ::nlohmann::from_json(std::forward<BasicJsonType>(j), val); } - template<typename BasicJsonType, typename T> - static void to_json(BasicJsonType& j, T&& val) noexcept( - noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) + /*! + @brief convert any value type to a JSON value + + This function is usually called by the constructors of the @ref basic_json + class. + + @param[in, out] j JSON value to write to + @param[in] val value to read from + */ + template<typename BasicJsonType, typename ValueType> + static void to_json(BasicJsonType& j, ValueType&& val) noexcept( + noexcept(::nlohmann::to_json(j, std::forward<ValueType>(val)))) { - ::nlohmann::to_json(j, std::forward<T>(val)); + ::nlohmann::to_json(j, std::forward<ValueType>(val)); } }; @@ -957,7 +963,7 @@ default; will be used in @ref number_float_t) @tparam AllocatorType type of the allocator to use (`std::allocator` by default) @tparam JSONSerializer the serializer to resolve internal calls to `to_json()` -and `from_json()` +and `from_json()` (@ref adl_serializer by default) @requirement The class satisfies the following concept requirements: - Basic diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 0bf3db1d7..b1df2bf78 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -633,7 +633,7 @@ void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) { - if (!j.is_boolean()) + if (not j.is_boolean()) { JSON_THROW(std::domain_error("type must be boolean, but is " + j.type_name())); } @@ -643,7 +643,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) { - if (!j.is_string()) + if (not j.is_string()) { JSON_THROW(std::domain_error("type must be string, but is " + j.type_name())); } @@ -680,7 +680,7 @@ void from_json(const BasicJsonType& j, UnscopedEnumType& e) template<typename BasicJsonType> void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) { - if (!j.is_array()) + if (not j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } @@ -699,7 +699,7 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) } if (not std::is_same<T, BasicJsonType>::value) { - if (!j.is_array()) + if (not j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } @@ -757,7 +757,7 @@ void from_json(const BasicJsonType& j, CompatibleArrayType& arr) // when T == BasicJsonType, do not check if value_t is correct if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value) { - if (!j.is_array()) + if (not j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } @@ -769,7 +769,7 @@ template<typename BasicJsonType, typename CompatibleObjectType, enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0> void from_json(const BasicJsonType& j, CompatibleObjectType& obj) { - if (!j.is_object()) + if (not j.is_object()) { JSON_THROW(std::domain_error("type must be object, but is " + j.type_name())); } @@ -828,6 +828,7 @@ void from_json(const BasicJsonType& j, ArithmeticType& val) struct to_json_fn { + private: template<typename BasicJsonType, typename T> auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val)))) -> decltype(to_json(j, std::forward<T>(val)), void()) @@ -887,52 +888,57 @@ struct static_const template<typename T> constexpr T static_const<T>::value; - - -/*! -@brief helper class to create locales with decimal point - -This struct is used a default locale during the JSON serialization. JSON -requires the decimal point to be `.`, so this function overloads the -`do_decimal_point()` function to return `.`. This function is called by -float-to-string conversions to retrieve the decimal separator between integer -and fractional parts. - -@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315 -@since version 2.0.0 -*/ -struct DecimalSeparator : std::numpunct<char> -{ - char do_decimal_point() const - { - return '.'; - } -}; } // namespace detail +/// namespace to hold default `to_json` / `from_json` functions namespace { constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value; constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value; } -// default JSONSerializer template argument, doesn't care about template argument -// will use ADL for serialization + +/*! +@brief default JSONSerializer template argument + +This serializer ignores the template arguments and uses ADL +([argument-dependent lookup](http://en.cppreference.com/w/cpp/language/adl)) +for serialization. +*/ template<typename = void, typename = void> struct adl_serializer { - template<typename BasicJsonType, typename T> - static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val))) + /*! + @brief convert a JSON value to any value type + + This function is usually called by the `get()` function of the + @ref basic_json class (either explicit or via conversion operators). + + @param[in] j JSON value to read from + @param[in, out] val value to write to + */ + template<typename BasicJsonType, typename ValueType> + static void from_json(BasicJsonType&& j, ValueType& val) noexcept( + noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val))) { ::nlohmann::from_json(std::forward<BasicJsonType>(j), val); } - template<typename BasicJsonType, typename T> - static void to_json(BasicJsonType& j, T&& val) noexcept( - noexcept(::nlohmann::to_json(j, std::forward<T>(val)))) + /*! + @brief convert any value type to a JSON value + + This function is usually called by the constructors of the @ref basic_json + class. + + @param[in, out] j JSON value to write to + @param[in] val value to read from + */ + template<typename BasicJsonType, typename ValueType> + static void to_json(BasicJsonType& j, ValueType&& val) noexcept( + noexcept(::nlohmann::to_json(j, std::forward<ValueType>(val)))) { - ::nlohmann::to_json(j, std::forward<T>(val)); + ::nlohmann::to_json(j, std::forward<ValueType>(val)); } }; @@ -957,7 +963,7 @@ default; will be used in @ref number_float_t) @tparam AllocatorType type of the allocator to use (`std::allocator` by default) @tparam JSONSerializer the serializer to resolve internal calls to `to_json()` -and `from_json()` +and `from_json()` (@ref adl_serializer by default) @requirement The class satisfies the following concept requirements: - Basic From 2f6260751c15780c9217613cce69d3eb98570d2f Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Fri, 27 Jan 2017 18:50:52 +0100 Subject: [PATCH 124/130] :memo: fixed #434 --- README.md | 1 + doc/examples/at__object_t_key_type.cpp | 2 +- doc/examples/at__object_t_key_type.link | 2 +- doc/examples/at__object_t_key_type_const.cpp | 2 +- doc/examples/at__object_t_key_type_const.link | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e2e36fd13..0f5fb760d 100644 --- a/README.md +++ b/README.md @@ -810,6 +810,7 @@ I deeply appreciate the help of the following people. - [gnzlbg](https://github.com/gnzlbg) supported the implementation of user-defined types. - [Alexej Harm](https://github.com/qis) helped to get the user-defined types working with Visual Studio. - [Jared Grubb](https://github.com/jaredgrubb) supported the implementation of user-defined types. +- [EnricoBilla](https://github.com/EnricoBilla) noted a typo in an example. Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone. diff --git a/doc/examples/at__object_t_key_type.cpp b/doc/examples/at__object_t_key_type.cpp index a8fc9998c..83646f155 100644 --- a/doc/examples/at__object_t_key_type.cpp +++ b/doc/examples/at__object_t_key_type.cpp @@ -8,7 +8,7 @@ int main() json object = { {"the good", "il buono"}, - {"the bad", "il cativo"}, + {"the bad", "il cattivo"}, {"the ugly", "il brutto"} }; diff --git a/doc/examples/at__object_t_key_type.link b/doc/examples/at__object_t_key_type.link index e01197e69..4a050ecfd 100644 --- a/doc/examples/at__object_t_key_type.link +++ b/doc/examples/at__object_t_key_type.link @@ -1 +1 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/rsnwWxpDjmtRRSzb"><b>online</b></a> \ No newline at end of file +<a target="_blank" href="http://melpon.org/wandbox/permlink/tb5CaFfsMWpAvi7m"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/at__object_t_key_type_const.cpp b/doc/examples/at__object_t_key_type_const.cpp index 0686db45e..0e8d9d728 100644 --- a/doc/examples/at__object_t_key_type_const.cpp +++ b/doc/examples/at__object_t_key_type_const.cpp @@ -8,7 +8,7 @@ int main() json object = { {"the good", "il buono"}, - {"the bad", "il cativo"}, + {"the bad", "il cattivo"}, {"the ugly", "il brutto"} }; diff --git a/doc/examples/at__object_t_key_type_const.link b/doc/examples/at__object_t_key_type_const.link index 2588529b8..1ad9c07d9 100644 --- a/doc/examples/at__object_t_key_type_const.link +++ b/doc/examples/at__object_t_key_type_const.link @@ -1 +1 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/aeoZrnhnb3HKClCY"><b>online</b></a> \ No newline at end of file +<a target="_blank" href="http://melpon.org/wandbox/permlink/NFG86H5khRUePc1s"><b>online</b></a> \ No newline at end of file From d870826811039034e517c4e64e35a833bddf666c Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Sat, 28 Jan 2017 16:03:35 +0100 Subject: [PATCH 125/130] :bookmark: set version to 2.1.0 --- CMakeLists.txt | 2 +- ChangeLog.md | 37 ++++++++++++++++++++++++++ doc/Doxyfile | 2 +- doc/index.md | 2 +- src/json.hpp | 6 ++--- src/json.hpp.re2c | 6 ++--- test/src/fuzzer-driver_afl.cpp | 2 +- test/src/fuzzer-parse_cbor.cpp | 2 +- test/src/fuzzer-parse_json.cpp | 2 +- test/src/fuzzer-parse_msgpack.cpp | 2 +- test/src/unit-algorithms.cpp | 2 +- test/src/unit-allocator.cpp | 2 +- test/src/unit-capacity.cpp | 2 +- test/src/unit-cbor.cpp | 2 +- test/src/unit-class_const_iterator.cpp | 2 +- test/src/unit-class_iterator.cpp | 2 +- test/src/unit-class_lexer.cpp | 2 +- test/src/unit-class_parser.cpp | 2 +- test/src/unit-comparison.cpp | 2 +- test/src/unit-concepts.cpp | 2 +- test/src/unit-constructor1.cpp | 2 +- test/src/unit-constructor2.cpp | 2 +- test/src/unit-convenience.cpp | 2 +- test/src/unit-conversions.cpp | 2 +- test/src/unit-deserialization.cpp | 2 +- test/src/unit-element_access1.cpp | 2 +- test/src/unit-element_access2.cpp | 2 +- test/src/unit-inspection.cpp | 2 +- test/src/unit-iterator_wrapper.cpp | 2 +- test/src/unit-iterators1.cpp | 2 +- test/src/unit-iterators2.cpp | 2 +- test/src/unit-json_patch.cpp | 2 +- test/src/unit-json_pointer.cpp | 2 +- test/src/unit-meta.cpp | 2 +- test/src/unit-modifiers.cpp | 2 +- test/src/unit-msgpack.cpp | 2 +- test/src/unit-noexcept.cpp | 29 +++++++++++++++++++- test/src/unit-pointer_access.cpp | 2 +- test/src/unit-readme.cpp | 2 +- test/src/unit-reference_access.cpp | 2 +- test/src/unit-regression.cpp | 2 +- test/src/unit-serialization.cpp | 2 +- test/src/unit-testsuites.cpp | 2 +- test/src/unit-udt.cpp | 2 +- test/src/unit-unicode.cpp | 2 +- test/src/unit.cpp | 2 +- 46 files changed, 113 insertions(+), 49 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f9931c45..f1ccf47e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.0) # define the project -project(nlohmann_json VERSION 2.0.10 LANGUAGES CXX) +project(nlohmann_json VERSION 2.1.0 LANGUAGES CXX) enable_testing() diff --git a/ChangeLog.md b/ChangeLog.md index ce82d14bc..0e2f8daeb 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,6 +1,43 @@ # Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [v2.1.0](https://github.com/nlohmann/json/releases/tag/v2.1.0) (2017-01-28) +[Full Changelog](https://github.com/nlohmann/json/compare/v2.0.10...v2.1.0) + +- Parsing multiple JSON objects from a string or stream [\#438](https://github.com/nlohmann/json/issues/438) +- Use-of-uninitialized-value \(OSS-Fuzz issue 477\) [\#437](https://github.com/nlohmann/json/issues/437) +- add `reserve` function for array to reserve memory before adding json values into it [\#436](https://github.com/nlohmann/json/issues/436) +- Typo in examples page [\#434](https://github.com/nlohmann/json/issues/434) +- avoid malformed json [\#433](https://github.com/nlohmann/json/issues/433) +- How to add json objects to a map? [\#432](https://github.com/nlohmann/json/issues/432) +- create json instance from raw json \(unsigned char\*\) [\#431](https://github.com/nlohmann/json/issues/431) +- Getting std::invalid\_argument: stream error when following example [\#429](https://github.com/nlohmann/json/issues/429) +- Forward declare-only header? [\#427](https://github.com/nlohmann/json/issues/427) +- Implicit conversion from array to object [\#425](https://github.com/nlohmann/json/issues/425) +- Automatic ordered JSON [\#424](https://github.com/nlohmann/json/issues/424) +- error C4996: 'strerror' when reading file [\#422](https://github.com/nlohmann/json/issues/422) +- Get an error - JSON pointer must be empty or begin with '/' [\#421](https://github.com/nlohmann/json/issues/421) +- size parameter for parse\(\) [\#419](https://github.com/nlohmann/json/issues/419) +- json.hpp forcibly defines GCC\_VERSION [\#417](https://github.com/nlohmann/json/issues/417) +- Use-of-uninitialized-value \(OSS-Fuzz issue 377\) [\#416](https://github.com/nlohmann/json/issues/416) +- Single char converted to ASCII code instead of string [\#413](https://github.com/nlohmann/json/issues/413) +- How to know if a string was parsed as utf-8? [\#406](https://github.com/nlohmann/json/issues/406) +- Overloaded += to add objects to an array makes no sense? [\#404](https://github.com/nlohmann/json/issues/404) +- Finding a value in an array [\#399](https://github.com/nlohmann/json/issues/399) +- add release information in static function [\#397](https://github.com/nlohmann/json/issues/397) +- Optimize memory usage of json objects in combination with binary serialization [\#373](https://github.com/nlohmann/json/issues/373) +- Conversion operators not considered [\#369](https://github.com/nlohmann/json/issues/369) +- Append ".0" to serialized floating\_point values that are digits-only. [\#362](https://github.com/nlohmann/json/issues/362) +- Add a customization point for user-defined types [\#328](https://github.com/nlohmann/json/issues/328) +- Conformance report for reference [\#307](https://github.com/nlohmann/json/issues/307) +- Document the best way to serialize/deserialize user defined types to json [\#298](https://github.com/nlohmann/json/issues/298) +- Add StringView template typename to basic\_json [\#297](https://github.com/nlohmann/json/issues/297) +- \[Improvement\] Add option to remove exceptions [\#296](https://github.com/nlohmann/json/issues/296) +- Performance in miloyip/nativejson-benchmark [\#202](https://github.com/nlohmann/json/issues/202) + +- conversion from/to user-defined types [\#435](https://github.com/nlohmann/json/pull/435) ([nlohmann](https://github.com/nlohmann)) +- Fix documentation error [\#430](https://github.com/nlohmann/json/pull/430) ([vjon](https://github.com/vjon)) + ## [v2.0.10](https://github.com/nlohmann/json/releases/tag/v2.0.10) (2017-01-02) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.9...v2.0.10) diff --git a/doc/Doxyfile b/doc/Doxyfile index 4d511af31..b4f578636 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -5,7 +5,7 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = "JSON for Modern C++" -PROJECT_NUMBER = 2.0.10 +PROJECT_NUMBER = 2.1.0 PROJECT_BRIEF = PROJECT_LOGO = OUTPUT_DIRECTORY = . diff --git a/doc/index.md b/doc/index.md index f7ef3554d..2f12767ff 100644 --- a/doc/index.md +++ b/doc/index.md @@ -277,4 +277,4 @@ The container functions known from STL have been extended to support the differe @author [Niels Lohmann](http://nlohmann.me) @see https://github.com/nlohmann/json to download the source code -@version 2.0.10 +@version 2.1.0 diff --git a/src/json.hpp b/src/json.hpp index 6909553a1..3b010cd1b 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. @@ -1115,7 +1115,7 @@ class basic_json result["url"] = "https://github.com/nlohmann/json"; result["version"] = { - {"string", "2.0.10"}, + {"string", "2.1.0"}, {"major", 2}, {"minor", 0}, {"patch", 10}, @@ -1726,7 +1726,7 @@ class basic_json { if (t == value_t::null) { - JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10")); // LCOV_EXCL_LINE + JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.1.0")); // LCOV_EXCL_LINE } break; } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index b1df2bf78..4932bfcf4 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. @@ -1115,7 +1115,7 @@ class basic_json result["url"] = "https://github.com/nlohmann/json"; result["version"] = { - {"string", "2.0.10"}, + {"string", "2.1.0"}, {"major", 2}, {"minor", 0}, {"patch", 10}, @@ -1726,7 +1726,7 @@ class basic_json { if (t == value_t::null) { - JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10")); // LCOV_EXCL_LINE + JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.1.0")); // LCOV_EXCL_LINE } break; } diff --git a/test/src/fuzzer-driver_afl.cpp b/test/src/fuzzer-driver_afl.cpp index 0c173b457..b1699f364 100644 --- a/test/src/fuzzer-driver_afl.cpp +++ b/test/src/fuzzer-driver_afl.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (fuzz test support) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json This file implements a driver for American Fuzzy Lop (afl-fuzz). It relies on diff --git a/test/src/fuzzer-parse_cbor.cpp b/test/src/fuzzer-parse_cbor.cpp index bba56747c..1b6664f8f 100644 --- a/test/src/fuzzer-parse_cbor.cpp +++ b/test/src/fuzzer-parse_cbor.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (fuzz test support) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json This file implements a parser test suitable for fuzz testing. Given a byte diff --git a/test/src/fuzzer-parse_json.cpp b/test/src/fuzzer-parse_json.cpp index f61df56d3..40ccf587d 100644 --- a/test/src/fuzzer-parse_json.cpp +++ b/test/src/fuzzer-parse_json.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (fuzz test support) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json This file implements a parser test suitable for fuzz testing. Given a byte diff --git a/test/src/fuzzer-parse_msgpack.cpp b/test/src/fuzzer-parse_msgpack.cpp index 0355db3b8..381dc75f2 100644 --- a/test/src/fuzzer-parse_msgpack.cpp +++ b/test/src/fuzzer-parse_msgpack.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (fuzz test support) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json This file implements a parser test suitable for fuzz testing. Given a byte diff --git a/test/src/unit-algorithms.cpp b/test/src/unit-algorithms.cpp index 0905d05eb..3a73c104e 100644 --- a/test/src/unit-algorithms.cpp +++ b/test/src/unit-algorithms.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp index 76f9a16b2..ae45ac266 100644 --- a/test/src/unit-allocator.cpp +++ b/test/src/unit-allocator.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-capacity.cpp b/test/src/unit-capacity.cpp index d3ee33d2c..44a35b90f 100644 --- a/test/src/unit-capacity.cpp +++ b/test/src/unit-capacity.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-cbor.cpp b/test/src/unit-cbor.cpp index 43f9f4338..539d408bb 100644 --- a/test/src/unit-cbor.cpp +++ b/test/src/unit-cbor.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-class_const_iterator.cpp b/test/src/unit-class_const_iterator.cpp index dba96e1f3..1a05becbe 100644 --- a/test/src/unit-class_const_iterator.cpp +++ b/test/src/unit-class_const_iterator.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-class_iterator.cpp b/test/src/unit-class_iterator.cpp index 16833cd9d..e3ef6a0e4 100644 --- a/test/src/unit-class_iterator.cpp +++ b/test/src/unit-class_iterator.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp index 71e75df43..ac43de8ad 100644 --- a/test/src/unit-class_lexer.cpp +++ b/test/src/unit-class_lexer.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-class_parser.cpp b/test/src/unit-class_parser.cpp index 095150428..3dfad5bd3 100644 --- a/test/src/unit-class_parser.cpp +++ b/test/src/unit-class_parser.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-comparison.cpp b/test/src/unit-comparison.cpp index 7f89729e3..f1e1aeb36 100644 --- a/test/src/unit-comparison.cpp +++ b/test/src/unit-comparison.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-concepts.cpp b/test/src/unit-concepts.cpp index 1c04b62be..d65f7401b 100644 --- a/test/src/unit-concepts.cpp +++ b/test/src/unit-concepts.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-constructor1.cpp b/test/src/unit-constructor1.cpp index d03a5f408..93546c5f4 100644 --- a/test/src/unit-constructor1.cpp +++ b/test/src/unit-constructor1.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-constructor2.cpp b/test/src/unit-constructor2.cpp index ab1e43cc4..95cb87dae 100644 --- a/test/src/unit-constructor2.cpp +++ b/test/src/unit-constructor2.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-convenience.cpp b/test/src/unit-convenience.cpp index cd78f83a9..a9355da0b 100644 --- a/test/src/unit-convenience.cpp +++ b/test/src/unit-convenience.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp index 994f882dd..fca807a0c 100644 --- a/test/src/unit-conversions.cpp +++ b/test/src/unit-conversions.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-deserialization.cpp b/test/src/unit-deserialization.cpp index 21e3bb444..aaf4627b1 100644 --- a/test/src/unit-deserialization.cpp +++ b/test/src/unit-deserialization.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-element_access1.cpp b/test/src/unit-element_access1.cpp index a596ac214..5f264ac73 100644 --- a/test/src/unit-element_access1.cpp +++ b/test/src/unit-element_access1.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-element_access2.cpp b/test/src/unit-element_access2.cpp index f12da1e43..353d66d9b 100644 --- a/test/src/unit-element_access2.cpp +++ b/test/src/unit-element_access2.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-inspection.cpp b/test/src/unit-inspection.cpp index 9e1147187..2e3d075df 100644 --- a/test/src/unit-inspection.cpp +++ b/test/src/unit-inspection.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-iterator_wrapper.cpp b/test/src/unit-iterator_wrapper.cpp index f4255f99e..79def908e 100644 --- a/test/src/unit-iterator_wrapper.cpp +++ b/test/src/unit-iterator_wrapper.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-iterators1.cpp b/test/src/unit-iterators1.cpp index a6fd2df9c..78ea3db4d 100644 --- a/test/src/unit-iterators1.cpp +++ b/test/src/unit-iterators1.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-iterators2.cpp b/test/src/unit-iterators2.cpp index 6f1b6251e..ef806ad75 100644 --- a/test/src/unit-iterators2.cpp +++ b/test/src/unit-iterators2.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-json_patch.cpp b/test/src/unit-json_patch.cpp index b7987509a..837691de5 100644 --- a/test/src/unit-json_patch.cpp +++ b/test/src/unit-json_patch.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-json_pointer.cpp b/test/src/unit-json_pointer.cpp index 672579439..24aa4a7d0 100644 --- a/test/src/unit-json_pointer.cpp +++ b/test/src/unit-json_pointer.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-meta.cpp b/test/src/unit-meta.cpp index 7040042ed..28c1a9d80 100644 --- a/test/src/unit-meta.cpp +++ b/test/src/unit-meta.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-modifiers.cpp b/test/src/unit-modifiers.cpp index 3e8d96007..80b1a7115 100644 --- a/test/src/unit-modifiers.cpp +++ b/test/src/unit-modifiers.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-msgpack.cpp b/test/src/unit-msgpack.cpp index 89fa450d8..cad78ae83 100644 --- a/test/src/unit-msgpack.cpp +++ b/test/src/unit-msgpack.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-noexcept.cpp b/test/src/unit-noexcept.cpp index b939db4e8..ddd8102d4 100644 --- a/test/src/unit-noexcept.cpp +++ b/test/src/unit-noexcept.cpp @@ -1,5 +1,32 @@ -#include "catch.hpp" +/* + __ _____ _____ _____ + __| | __| | | | JSON for Modern C++ (test suite) +| | |__ | | | | | | version 2.1.0 +|_____|_____|_____|_|___| https://github.com/nlohmann/json +Licensed under the MIT License <http://opensource.org/licenses/MIT>. +Copyright (c) 2013-2017 Niels Lohmann <http://nlohmann.me>. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#include "catch.hpp" #include "json.hpp" using nlohmann::json; diff --git a/test/src/unit-pointer_access.cpp b/test/src/unit-pointer_access.cpp index 4771c5089..5611a7502 100644 --- a/test/src/unit-pointer_access.cpp +++ b/test/src/unit-pointer_access.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-readme.cpp b/test/src/unit-readme.cpp index 5c62e850c..061aadb4a 100644 --- a/test/src/unit-readme.cpp +++ b/test/src/unit-readme.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-reference_access.cpp b/test/src/unit-reference_access.cpp index 54db1a865..6281572ad 100644 --- a/test/src/unit-reference_access.cpp +++ b/test/src/unit-reference_access.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp index 6a5e0c64c..17edbd5ea 100644 --- a/test/src/unit-regression.cpp +++ b/test/src/unit-regression.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-serialization.cpp b/test/src/unit-serialization.cpp index 72d9ae6c9..b8bb6455c 100644 --- a/test/src/unit-serialization.cpp +++ b/test/src/unit-serialization.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-testsuites.cpp b/test/src/unit-testsuites.cpp index b939bb620..9a9de1273 100644 --- a/test/src/unit-testsuites.cpp +++ b/test/src/unit-testsuites.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp index 241336f39..347ea3774 100644 --- a/test/src/unit-udt.cpp +++ b/test/src/unit-udt.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.7 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit-unicode.cpp b/test/src/unit-unicode.cpp index 0b1c0e5e5..89e828f48 100644 --- a/test/src/unit-unicode.cpp +++ b/test/src/unit-unicode.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. diff --git a/test/src/unit.cpp b/test/src/unit.cpp index 096a29732..c89a0e83d 100644 --- a/test/src/unit.cpp +++ b/test/src/unit.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.10 +| | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. From cdde1a9436be11592e850a6eabc38bcbb3423146 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Sat, 28 Jan 2017 16:46:03 +0100 Subject: [PATCH 126/130] :bookmark: set version to 2.1.0 --- src/json.hpp | 4 ++-- src/json.hpp.re2c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 3b010cd1b..da700f644 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -1117,8 +1117,8 @@ class basic_json { {"string", "2.1.0"}, {"major", 2}, - {"minor", 0}, - {"patch", 10}, + {"minor", 1}, + {"patch", 0}, }; #ifdef _WIN32 diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 4932bfcf4..3f9c04f3a 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -1117,8 +1117,8 @@ class basic_json { {"string", "2.1.0"}, {"major", 2}, - {"minor", 0}, - {"patch", 10}, + {"minor", 1}, + {"patch", 0}, }; #ifdef _WIN32 From 38e4935db04b04b2eb0508bdebdf63a48ba279fb Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Sat, 28 Jan 2017 17:12:29 +0100 Subject: [PATCH 127/130] :memo: added example and documentation for the meta function --- doc/examples/meta.cpp | 9 +++++++++ doc/examples/meta.link | 1 + doc/examples/meta.output | 17 +++++++++++++++++ src/json.hpp | 22 +++++++++++++++++++++- src/json.hpp.re2c | 22 +++++++++++++++++++++- 5 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 doc/examples/meta.cpp create mode 100644 doc/examples/meta.link create mode 100644 doc/examples/meta.output diff --git a/doc/examples/meta.cpp b/doc/examples/meta.cpp new file mode 100644 index 000000000..3a31ca24b --- /dev/null +++ b/doc/examples/meta.cpp @@ -0,0 +1,9 @@ +#include <json.hpp> + +using json = nlohmann::json; + +int main() +{ + // call meta() + std::cout << std::setw(4) << json::meta() << '\n'; +} diff --git a/doc/examples/meta.link b/doc/examples/meta.link new file mode 100644 index 000000000..6a5ad0c19 --- /dev/null +++ b/doc/examples/meta.link @@ -0,0 +1 @@ +<a target="_blank" href="http://melpon.org/wandbox/permlink/3hERJociqLo3vdod"><b>online</b></a> \ No newline at end of file diff --git a/doc/examples/meta.output b/doc/examples/meta.output new file mode 100644 index 000000000..f361bb60e --- /dev/null +++ b/doc/examples/meta.output @@ -0,0 +1,17 @@ +{ + "compiler": { + "c++": "201103", + "family": "clang", + "version": "8.0.0 (clang-800.0.42.1)" + }, + "copyright": "(C) 2013-2017 Niels Lohmann", + "name": "JSON for Modern C++", + "platform": "apple", + "url": "https://github.com/nlohmann/json", + "version": { + "major": 2, + "minor": 1, + "patch": 0, + "string": "2.1.0" + } +} diff --git a/src/json.hpp b/src/json.hpp index da700f644..5fdd83d6e 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -1105,6 +1105,26 @@ class basic_json /*! @brief returns version information on the library + + This function returns a JSON object with infiormation about the library, + including the version number and information on the platform and compiler. + + @return JSON object holding version information + key | description + ----------- | --------------- + `compiler` | Information on the used compiler. It is an object with the following keys: `c++` (the used C++ standard), `family` (the compiler family; possible values are `clang`, `icc`, `gcc`, `ilecpp`, `msvc`, `pgcpp`, `sunpro`, and `unknown`), and `version` (the compiler version). + `copyright` | The copyright line for the library as string. + `name` | The name of the library as string. + `platform` | The used platform as string. Possible values are `win32`, `linux`, `apple`, `unix`, and `unknown`. + `url` | The URL of the project as string. + `version` | The version of the library. It is an object with the following keys: `major`, `minor`, and `patch` as defined by [Semantic Versioning](http://semver.org), and `string` (the version string). + + @liveexample{The following code shows an example output of the `meta()` + function.,meta} + + @complexity Constant. + + @since 2.1.0 */ static basic_json meta() { @@ -8059,7 +8079,7 @@ class basic_json @liveexample{The following code exemplifies `type_name()` for all JSON types.,type_name} - @since version 1.0.0 + @since version 1.0.0, public since 2.1.0 */ std::string type_name() const { diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 3f9c04f3a..068b87630 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -1105,6 +1105,26 @@ class basic_json /*! @brief returns version information on the library + + This function returns a JSON object with infiormation about the library, + including the version number and information on the platform and compiler. + + @return JSON object holding version information + key | description + ----------- | --------------- + `compiler` | Information on the used compiler. It is an object with the following keys: `c++` (the used C++ standard), `family` (the compiler family; possible values are `clang`, `icc`, `gcc`, `ilecpp`, `msvc`, `pgcpp`, `sunpro`, and `unknown`), and `version` (the compiler version). + `copyright` | The copyright line for the library as string. + `name` | The name of the library as string. + `platform` | The used platform as string. Possible values are `win32`, `linux`, `apple`, `unix`, and `unknown`. + `url` | The URL of the project as string. + `version` | The version of the library. It is an object with the following keys: `major`, `minor`, and `patch` as defined by [Semantic Versioning](http://semver.org), and `string` (the version string). + + @liveexample{The following code shows an example output of the `meta()` + function.,meta} + + @complexity Constant. + + @since 2.1.0 */ static basic_json meta() { @@ -8059,7 +8079,7 @@ class basic_json @liveexample{The following code exemplifies `type_name()` for all JSON types.,type_name} - @since version 1.0.0 + @since version 1.0.0, public since 2.1.0 */ std::string type_name() const { From 4b5c61075f788a5e5eff10a3b2bc5cf6b1e0f22e Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Sat, 28 Jan 2017 18:17:57 +0100 Subject: [PATCH 128/130] :page_facing_up: changes to let Github detect the license --- LICENSE.MIT | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/LICENSE.MIT b/LICENSE.MIT index c4ce40d19..00599afe6 100644 --- a/LICENSE.MIT +++ b/LICENSE.MIT @@ -1,14 +1,13 @@ -JSON for Modern C++ is licensed under the MIT License -<http://opensource.org/licenses/MIT>: +MIT License Copyright (c) 2013-2017 Niels Lohmann -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. From eb08e8b09b6793cc2143a2f9d812b6ddf18d288e Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Sat, 28 Jan 2017 18:20:12 +0100 Subject: [PATCH 129/130] :memo: updated documentation --- README.md | 2 +- doc/examples/README.link | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0f5fb760d..1ee358e5b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Build status](https://doozer.io/badge/nlohmann/json/buildstatus/develop)](https://doozer.io/user/nlohmann/json) [![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json) [![Coverity Scan Build Status](https://scan.coverity.com/projects/5550/badge.svg)](https://scan.coverity.com/projects/nlohmann-json) -[![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/IoZNMHqubixQx2dN) +[![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/4NEU6ZZMoM9lpIex) [![Documentation](https://img.shields.io/badge/docs-doxygen-blue.svg)](http://nlohmann.github.io/json) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/nlohmann/json/master/LICENSE.MIT) [![Github Releases](https://img.shields.io/github/release/nlohmann/json.svg)](https://github.com/nlohmann/json/releases) diff --git a/doc/examples/README.link b/doc/examples/README.link index 58daac889..d0168aab3 100644 --- a/doc/examples/README.link +++ b/doc/examples/README.link @@ -1 +1 @@ -<a target="_blank" href="http://melpon.org/wandbox/permlink/IoZNMHqubixQx2dN"><b>online</b></a> \ No newline at end of file +<a target="_blank" href="http://melpon.org/wandbox/permlink/4NEU6ZZMoM9lpIex"><b>online</b></a> \ No newline at end of file From 6746a5752477f61ce5a65ba632f2017485e8d7a7 Mon Sep 17 00:00:00 2001 From: Niels Lohmann <niels.lohmann@gmail.com> Date: Sat, 28 Jan 2017 18:41:30 +0100 Subject: [PATCH 130/130] :memo: updated slides --- doc/json.gif | Bin 1331326 -> 1457913 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/json.gif b/doc/json.gif index efd2ee634a0704653811c31714f7cc1757c02966..9d05cfd691010a4cb1d930995334f72411c62bb6 100644 GIT binary patch delta 1357391 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�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�}yp;bk!V@-~%>s|g_ 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≤t_kzH&0U*{!TCNHcCF4 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�W4? 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%0DhL(*j9!}yY(f@KJlaB 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 ^tzw_iu2tCm5{ajKA*8 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�o% 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Ü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�?@B&I1{xCPJ0C`K=XsxjV0W~?Ok?4HwZkS4!MsDKsGEHSa|TSx!QSJ{ zS9(G!NEe2hkfM+CW2EW7LBg<SHj;e3J6*3g;{Xi)$M^Kr+04;k7z37en%O#ckg*?J z)CB+Vt8yml<y0(8j`*~9H^bwB`Cav*PH8wkGHoM@=if=tH;E7vrYns_oez{L!h<Am zAf$f)l?ACPkzMAtn6*K-@4iBY@;D{(R0V?YOo$9K@ERf%FAMWQ(Mt`<RGT!Otuk<t z)8j4W5Jo*`l7?q|XB2nr7S{Mced%<Obb4I!bXl{tIy23Ynbv+?DXoZJVoo(lfjAZM z7&Z5Q8k;^C0dw~s7CB-!vNN5A`UL)X2p*kwRvebMD<x6nzOP+O8&F~-x~fgQ@(TwU zA9_PYL0vRJMvgkZOfp?1Te@dSXVq=A<`Gy0Q3_6^EU3R7)b@oqGa!K<+yU+nQEoqy zGCB)^N~o69`!W)p__6mgQ&eZ|VEST5d|`)eyI>R_e=0Cl8LUb(W}>4$UP_&%ro2n* z))#YSzIvniCjM$V&J(~f>6S<0%06D6c#?(wm=4Pd3u2NNXJ<?FTxdYlA>X9}$0%*i zhe(6x8OxeQg{P&9q#@Tg73>*I6iUa$|Fy#?(GwV<CI;zfGp)~u__n_KECy@XEv)y1 zx&(%2PerHDi;odutBTY%2D4fl<-AfT!Ay&)9&+do@b#Y&y=i#+^wDd^Fu^@3sZkeS z3PfyTfh_yDB?C6DaD-`XxIk}xCC(D3*i)%GOf{1hBn#{~N_1yFvpyeAgN?66!Th1o z^xz&F+<!c30Pm(~=!2^R+QF`eg3W!eK-vGP?DKeZf3`jYFYspaxiQfXNX&gPMP=r* z-NjDtrtJMY-0n#UYRpxh8JKo_>J94b-@_^7H#q-Vc#|BHdK%^iTKk#g!g1#;(IoI$ zDNC5Yt8GW3sNMR)<CSzb=FeZA`0TYj6Zlab)a}#E{F?H7$LI{l_Z5NEWA4nI!}DoC z1aj0xv&`P>ASg!%Wi|tQtO9yw#B_9gR1@V|82<V4%2A{l6$$&o9R1ADb3~HXsbtg( z>Rvgr;xmn<KpvRR9ktK&U-88%TrLW~Wy##vM)@6NO2#ON=}}4XOow_~Q@su9ieZ*D zEN^*jE64(u2$t6bprKi=5iMr+6^8(lm*F?Z`{3s<+pet9FKcC7@BGl|%<OsOcUkRf z-{S{(UcbpD*bB{7I{KCfguq?4hoK`E6Q8bDe>mP*o8b`6XtC$O460(&{O?h*iq3m_ zwbig+(Q9vfnC}^}N*6yu{1OW({=O6;!NRAV{Tq3(@whWgEge*qHr&Q%`EqD<A$UCv z7yeF|SmYU}d9gt<A&y!Rc4G@R+y^@?AAgw(H$z8f_|Kd-8MQQK8n2Me5%gkNUFQ3n z-WxYydeJeA#28h+@Bcmis%8qiXAGKXVaj_D>8%@*QV+LdfdYHV`R#_#s9=)6&G#cl znyqr9@LKnkFIPh+_Oom6(yoGv5*dh&plo*S#}is#U{VWjskno5*ejF|OsP8KZq+K^ zr?r31?*cYN&m1<lQ*9-W1Z{$kZe4~Als}%T+}jirf0@pyh`N8~NOQVNu+-M=E2k}_ zGUluuGuYd-b1}L8H;{AN>7ysfKi@MpW6AGP<I8c>RxcVl3909*_%QC;=%fTfIWsgV zqkc}wI+<RS^fp~O!Gvi}DSqku`E`Fx;jg3$!*ZJRclt`l^bsa`UGZ2NVnNgXl>0PO zo*Zwk5D{);Z4WQxPnA=6@A!8ea>(CiH>lHT3S#1a3z7n8`d2)806QMFON?e*4yQeN z;CH#=-9Jg@#4a--+$(Jp=NWx(AwDtG!!tx`mXWfG5b@7wIDFZ$yAX0(>?||5WtUO$ zuE75s`oU>>eMSe_ntAvr6yA5-@852k<F5j<ld-aAIG6u1`SzwxKm0*?oH3Zqj45=x ztTr>|4*OSp2BW}CILoEDZL7S1eQhe1NC8LDnWwHXU)641jycQF8;#S24N5VSRjDUU zm>%Qtxl>>DKL23W@7+7Wl#VGE<4%sG{+0&y(-VWN-C<5-W||?3rpg4NMkg6}Hqupp zSI^ww4+O#%Mm>QY`>alfmvr+`3Iq+#!2E=sZs!&)PA{5U5fnZkw!u$}uY$9B@6wuw znTIOug=L}|t>POW8CF&IGj|E~>~xx%5KlK}_YP;GCe{bF+xG9yk^W!aHq1Z)N<zfH zwU9bx9x?#{nC?xyNUazIK%kQa4dSL+ahyRqSRR(VGT}S~l@zg0Zhsj{VN$FOGK%ID z2Uu{pxstdj&Mv?HNH+1<ca`U*7H7BDzkFAns32V4w!$y0h~3P~mS@;{*LhZ3M(Jr& zJ9sB0WPSA9oLOrxX)f0utDzXTOY0zQ2Jz(copv%lCW?2<Iu5zdbXtGvyxyDRHDfA_ zd83W0Yer{z6qS%-w_Im#>J&Yn_)^<ke?$L6(sEOHgg|Zi>7-Pzs*V{46Of_A`o8h{ zRQu7%miXT$8y|X3-6HtZJE!s8Al-Fl92cu|8#9%_E(VKYaBgzm82a%a*O|}+8KysZ zNwE^7E6N+w>a@JSv#N+}-A7kZuW{VoDh>^jC}&HBuqLhD6l;p;`*#x>x`%&=x+xVW z=Q+dP3?b}6yeojMe_#HgG{9>AP|BC<XFt06L?%zV_|4_drwehH?7)KdLteI$_Vh}} z-uEer+2*VJf#~?#U6TP0Wr-2qN-5;)lhI1~6>r?K4h#?4Yw7ve;zM)hq%<RPNRoJb zZbf0li3-ZJrzVkxJnZ_uW-`pxX<IDBHS7x_*5SUs|B-Y|t-nuKrKq%ro}O}ARM9L^ zqPXnpGAYJkpyH5Bo$}c0YYK0iXooD1_o&yErT$W{uN->|mvr@h>7-d-+8#{Cj2nLr zPNo1!3^8sD|G@bVc9Br$8_Ar{VO-9_>kK+bc<v)jcHH3;1$v!1c^<y|nFSsO$5h$! zR_(kZ$X?H%a5AY}VTrwcH3HaTo%6*&#{5fbsRPs1Is}>b`4w64n$d|&_}!FmS&Q~c zIQNAwni_*}&AvpuA@gk>oa}0MGJ^lGo3Wa^doEC8=j-J}8V(b!R<1l;B@v`~YJyZ9 zq<UrBv%~?K<QJ0o_K#ms+}!Qjo37*Qh#(~+-<fh(C;Na(*Qn@2xw5_Uys{n+e~n&y z9388#CN0wag0yityxhKaTl%#|=wrR<V~r0?X5wR=kBj;5)Rw9|8z4K6DzvY<!4CKY z&u3f}#demtJ;d&mxr%TiVG2wkiSUio5exD72iu^jb=;8s>t?r4SfhAb7_LRWOXyfu zMX%&JVO+Ob6im_fX*LJh!}~-Sciv1|82F5@+y*Xvk)G(b+X07u>k^en3SSl8&6;@l z<j&&6>ixCU)|vOQ56KtZZ#g;>WUTI<dtGc|?=zTVW`4mt%2c9x(f-pd&ze$2!{H^| zkrs1V)kK`A!J*EsoT8jivYGU!>v6s|rTR<mLKt+B{}!_}Akx60%{d+&(TT%otH$Z& zyH&9BB_TDQN-TnVW<G6Og07cuFatgO=z;XB)^wA;`C5~cP_hcZ9l940G3)kBx8y1W zWuFI`qo%3pUB?mcc4qEcw_6^Wg-E#SO}Ri??@;3wl=*M~Sa@?-mv-_>6eI$5YXmWN z;G3c!36T3w%>l|zKpTo8+;8#$6Z%S^bxZ_`C&S*bO8?3O&Cvs5Sgou?7yKOe{3w^y z3zUkosN~LS)W9fxN=Qo;F(B{R#2jV{hGs$aZ_1c%=Pu#BY_sV{G}ruDGfo>SU%|@4 zr*1zbUEHMU&SX@K(QjdEzNxG!;(x~>>uzaX#gxW8ed8ad-1gyxmg=Lcyq~}wgDdn{ zhvG^1f?^!+^b-ukXija~K>xD%v6#*$D)7JoF|t5zMWosNE3Xn>xgZ7MYCGa{!PDD@ zX*(+nj@tcvL2hW6VbEF0uT7UIMGUzi7JO{AhPWqMrg<nR!ykZ1Ht6v!%&J(zF>=ne z-C~+@p;i!oCA?7~!WYT7I;uG4QXeD6w>g4+;|ycmtje6copkC><Y7&>V^;aR!zloH z)M*p@Q$}-L7^6GO+)4<1U2Gsys1Yuj0e*|9BiubFd{8qmtOHzYbzJph#F$JXgdJ|s zoMw_k43Zl~T##RK3ke7<XgJn>i#TC&RRhGUU8Rg1qDE7eGRy{^Am|(GYP^xdKZ4&P z%sQ3ZI?gG;vmaZRG4qh7qQoFGkT_YaWm4sW@_?=oc-lE94+3}7OgPmzGrP(wLE+TX zB#Z)IViLdt0%~k<3tP@67$opq=(dCrCSbbgb%W{8#rf0)dOda#^xk0gP~2*fpfO1G zUrvD?O0TM}npS_sNYmE$UC*^EjTjo&w7^UX0ocin{5j)iLKbEhntv!}kclw2!+arW zO*+>l&&}F>$g;Sz-8Co~4FlcE$TRX*?&>vHIP6JNi(IbOR%bP704o8<5)#o$9V%gO z7I>v5P`r~hs&G?UW>-b)4bwHJNbT$I#x6ZUt0;klP*{Fo@LG(`bNIo$b7E2^ODfed zPe)J&49UcE{1rJU_n{{QGVKcON$1^B!=O|1#vS*^6QW@noH@Fte=?IE${7T~Dvt74 z0f>_QM-ok;P-{pkLcYuGG>HBBYNB7A<@+J+`(rFY^FXz@rrAUG_aUWB;RnL=#|Vgu z0-o=Fsa`&Z+r?eysiTfLw#STVC$N);9`U}?%~?_xu$uQ*-BnB_C%4+7<!%+SUSm7X zEZxYv8l<~>N;UStS3T|8ya;D$<wG$7f>u`isk!W@P!PJHlWya?;-Os+?Z9KV9=r{t zM=|U&Oh@30s-}xxscxpGa2gKTghuGz8j^9{e4sMP+j$VKlF|FFK<vsn#SyNIQV9Ee zMn-z}Y<!l$@(`SykT>^Cc%ZT5y7qQXp4{c(c)~{j|G`v}0)!jkI8Q|;Aj_fn3BP)< zBv5#R=<pI-Z6E9b%c*oTjLcsWy3=yG-O}2*t?v0`c7&4PXZuvmH#-uVwg7&;(kfv< z=w!ybaxk+}%nTEF@lN%y#2(eitZDMMML!9==Tq3X@qw&~>^(_fQ%gLiH)~7aK{(@v zc%p<?_!#_VYr3%&HA)MpyFREr_2=++b*)&C%rctWUBZOBIz4lc@7I@pU9n>nlTuKx zGRQ0ZQRq_qDEjy&<bC1InHt@{>yP|cMui<1Z=H6$*`<Ld$atAY4$sC3^5WvtBS(47 zAFZDV;UNPJb9*m;bmMOx9F+cWllQVbOx=nsF4Z(In#3B+;oLaPGVPl`roqY=2=v&Z zwYoxM5^ZIU>uugjxgg$IcX5(M5wODVT)#Pc01Z}|tHp_rExDbtqJX+f!4L-?H8!X- zILQrMF&mudRv5Qg>Xv+%037ycdj7tRP<Og8kjyL$EcILZFr=n`82>?Ppq}wspZLL3 z#Q*kz**1bOc-STMxjkFv+v{|A!K^@u44^diW_J$vCs3>M@Wl^93V$lVM=+1j6H1#y zt6O>5h)K7YPt`kqc)`JHl=xrfGaThZ0UNb>kbzzgIjTP_JvF4(DtI(lQj>kC>cb6u zCwV}+harH1$W9lSFFEzhhaFFz&lG~jKo`1&hH{`)90h|Rh;rs}W61l`d3YSgc65GI z|FM0dWN|+G{+5ERcsP1YR<f%~vwy*(g6ojPi<vo`!~h_10BnR43m%XQ9!OTg-ISp4 z{J|%G_@F=`BzVvFR6s<1r`=;_os7wldJLpi2r6LBkk>A;OU{`ze=hV3aytj(pfrRT zE_@SDyl70U1_4IDh?d9$&P~GY<Bvb6%OJZ%+0|tYFQ@%}X3bzAEuuuLkC1~UNG+A> zY;<t;7rMrkC!Q%mod=+}i*%GqCLfZh<XRQf39PnFnTkSWvu_mk-5?E7$@{16;fu5O z5Zd*`$GuyaVs9)yZb5?|jS(*XwluQ==af%OF$#^UNEINpT&KHjU<Y@8HyMa*b#;)D znC%cK@8n~CbE0S0Gl!InpnQt#I!Y#U(ape4Lrp25peCT5c49n06*0&&R0`I@O8{U| z&wL3z5Dyyn6oV7%%p^;w`6Yb#?@;B?*KS1;E6_IIh430_qEbd$mlETDW?J&RWh#`& zy4BHiKy%bj+=8y4JY)<W_P`8*J`i2PRNTjzwvj$KoiM+jiWcBSYyN7xWG+0kR^p~| z!drWb0SOOQc*w=dPXUV>(UJJh0lV!W*<{zOHo`Mj<kIb7HFD{Iw}z8YWVm}bNU#Zz zU#)blO8;&=WZk@g-ni)=j>2+G=(0GxKt3DJ9@d2}#ab;$%SU<bRl3y=N=McmA}HI| z6U6%>i?x<;X3ED=<+fHdQ~^b>G(#ib%{^UNbGer8Uf(_-g!TvNNaDa|xMp!$tK7&5 zZ7Os*Jc$e{IX(Bd?LCn{T8b1Z<r;Yyfh~J){<!VHti#0e=Q!fAK`%ANe^Dj>d5#xa zq?gIRsUS^6xT0oKN)_X}V{(_LuRK<X-J7<@VMNAig?&|0Kd3Oyd?5h~(12z8iOH0} zqW^=3p3EHke|V_>XOH^95)*NuNV|mFWLl94U4zJFM&gy$Z%6DLLlXyooKvq-IZlut zk+8yX1(+O=92=}fl|T&UMZ04{sbWSrFmVoKgli6Nh+|FTB<Zm1P*P}44%d`^X}J}q zp}F!B&O5vTJ7!xkxG)-uU-1Ok4fT6<*N~7mmD7rcj~z6Cg!U`iip#e5lOgch<rH*v zAkpU%KDJF`KEfIm9eB(JjJw@VXs@ClI?z~Epy?6w$#a^nmS1<jE7l_>B=>$}-*e3e zB}*st*dP=Ryt$x&$a&%UTG$u>qX2FbJZV6~GjdcVo@iWkTx)Qo?ljU_4FKf}w-dkc z9~pI6e<vS5bQ`(s;LjxUtRFjn>`P0|S}c~{%sVrE_rE4dqACmrzOaVtULUfLjhEy2 zUoe9-ebwsfQW-Ot64t<sXXiE=5MwOD9*nJh+#;G3<H~fJ>0NBNcYJ~Lkg~j8lC$=^ zGtKXMiiHod!FoVVV1rxopbA}$ht=G?$eY~~hi6{SvTpqPM}v&li$KaiKDO7}!GysR zaVD9wE>rck>-BX3^sMaK?Acr(h5iD%h7*h}XwbUu?oNaN9g_4^%+P2c@lkloNG)I9 zDnxAk%g6rpgL|do?zh{VW1ED(K6$nNIeG&pKDYq+`mQ8a4lyU@9qC>%u&#b&Lqj9x z4d!j26TI)^CRs=KyU7Wmns{OW{vlSYHvM&Jv35d}I}o{s^UkV1L$_-h1#y__*<*^f zs1{&KTjR>B!9bnI4a1qWC*CVJw-C4=dmUS&rqu#P0!*V2NspG%98Vymv$Y#%OYAPJ zKdnM<tY@!P4P~N$pZ4^hGDB@Ab+OIJiJpWR_@+HM<-gy1qJSWU$MO!mytOZh;LOdj zb%JDFK_eGc`CsS>y=$%AXEi2+cL(Dd#c9HyACLTM!mslI-UG{62nR`DXUe>AZuyw{ z@{YXz2J_gQwOthm0JAD5=AVCkeFEPd1HdqN#|VO2V{1thd0q#2w87Gde+0&n1_Bx{ zk?8{1tw|7@2erYY=~5ps^s%8$#D0iUrp4<a6MaVS<t5@PFph(?!4S0Y@R?R64+AZ0 zF!hXmpI5ue2?JFTyAyz2!v{ypGfnuNET94`s!04TIi#S9YYPCKJrIwdtFMC3t4tWo z$`B=N?0oLG<3sVAT6n2jLlQh}B%3TQ7Rg+&){(ihvC^`2*Q7EwQ12{=0@lMwb}FtU z3`ri^lo`*Tw>EU{OlmufPuJ4ZoM@LW*SB#tL_gGtJEJ*HTT5v&2=sEttejN+W@ytJ zptK+98{=;yVuY76nrVGGM>@{^A9LxE8nT8*`-y-aMPf8l?6p2H`i<`zl1xD1c(kZ& zootZUkd7GRtFsZ08UAo>=r3VIXDcHDj19J8^N=`klH=daG%$R1x4Qag?Zpk(%-BdR zoR5CH+sey1E__zYNb(p_=?6sno2MPmpq)$Stng6xB@G_Lt;nuZvL4@C+P7Ap8(PJV z@aX067#V9?-NoO#8}vDstmKG4b2FWv4TwMc6!iJ-k#EKcO?T+7S@J^d_zHsOq=O=N zt*>Qdzl!K21`X$BW^@}lH>pt|6tj*~|1{>K6x%JoZH0oFp=3x@;|KtwTW3Xt-5Cj! zB^o;ny*!?{<lbU@qBh3G@mR;;vF~>izL}i((RJeAnZUpJ@JAz5a+AB<BWe3a2Vm;E z{U4A+qXQ_|*r|6f?!sQm>+DF`DeRrg!v-CVoU--k??z8Gw2k<fQlD01bid%}hNM!O z_??lY%cH5K=(u|=cQSU*{_M=IF@4i!ocPa_!q-g^F{6IwMR%Sdz`C|Z4e<U0rylVI z1SNWhBtTCPBW$2rWX-d`qwj?Z-y4%O_}9PkWFy&#ylW{1L0{Q+5yzeVG<3dWByDle z!_4d=3P%^Co7atuy*+y`*X-Jup?lxH(?KR#syj!)JXiI8u1L4UT}6-@TfWy5oG6uK zuH%6q1ctPL%qYogj(Hs;#+P%&P&ylG6jb>e2`yYYjB<p-CAsPWcemdQ{~nT1!lk3w z;HEu$U=XRq1|R?zZ2ZjF8>59QwPACxcNM?tnBOw(xn*NfeXI4v4&tiC<v`TSs>_+D zp51p(rj6Y#*7CCOOtD~&q-%ZLA3c}4oFrA}(9`(PqG_b3>4in}+3lsb7A>E9TE1D_ z`O$NyaEbbr{Oyj2Wt&uQn}TJ#>hC&=9-!6HepKZ4AADm+045lpZ_}&f@Vhg@^4{6r zdozfpt2_5DJ4@8lfzorc_vgaTf5C=Qcw+$G?%%yHda>)fm}i##|NT~Na=SmW6Lrm! z&DY0n9Ip}T8$`4Ysh|(uJR2YnhFDn*IaopD29I2$l7~X96zhdLj&=^5?HeIqs9(>% znP!!psMXN%9xJd##|{p=SPie;9lpo08q%dr7g;^|WcB>Bl}BVMKJL$xwLfux^nuMk zHy)UZJ%vabf$H3kOXOP!=?`Lw7u66%4dTVu*Ou&Ct%gEyeNQcUU-!DH5l}G$d>3$1 zl!2#fyyVvo7axBgnszwoK_|R69mIzIwWrYDe17op^FiloF!lmfD2^>ep<<{0I>-_F z9`*JH;fC%#u)9EeV`;6q`1kdHyrP+A6G!`(*Di>`fR`PE5!W`Czm0AHK~Hk@37sjn z$^EHXl*tn>Ah<pu1o4@T74`!Ct&P=zO$auU@{AnIM$Or)UBC_bQDz*hVC!_0BMyT5 zvq7c{jb3=_z;=kie-G({q~JX`udN}DmuwOL9?Aa0(FsGb)P#J_O5MX>B7HrMt*)Jl zkM8`dx1eyV1^oyNT8)z4(2qyZGOzLBw8D&8q4+dDQ5ElQR+uea3{C9B>$wgwnJ7n% zb{I9=HVti(-r0@0?vMw6g!|w>uY{MCl`8x58oyYSu0UMAg2Go~g)FqgNw0H#?6R() z7OspYh1OpUWZD}u$EZ{ua82RE0T70)32cJZNX*K#zLcMDC9H}P!ya80y=><*cjCXt zzDTkUJZu4XOG;XPdTMJ?vI1jMT2`F*<q1htE8PTcPjG)Oz%jib{6wtM{=H?yO}P%y zFN7L|b6u)Tamva6MsigB`b*E9`uw8Oq41IkJ_6(;ZV=NKntJxzrvclLO+Pl0ti@>6 zlioDN&293i`bFQJ!9HemDfXXnR8?Z?XUV`7yRP=DWf_<0pjXqcrYF_sf=;z(R0?Rd z<I)85`sM}&jfra4`G5VUW$RwbQcEk)Nkf}5E(s)b{|LR}`B?f`)62)QC!cvb3|WLV zwSk_^&?UTKVKiWk{=xH!a`AdLne|X`C9+|4`#9n8KCDWlgMoOzUM;AVImhA(=2nPp z_A{ekel3mhTcp6O7@lkWOhYwY>2SlUkAZ;`SRr3IM^O$!dtsqk{HJTZ9j&w-)}Vs9 z>ix<|z4`Sk7k%i7yj{7q&NfX0A)nWt9ZA?bdx%vfN}qW5E9}osI=i2Ib2Hh|EQ_C5 zKa@MDAxe|=0-d^D&^Z<JEWPK$3fOMH!*P&d!q2GpFe$-Jr)jhuqWQXJ8haj|QCfM+ zlvm!>)IvFi!qvy)-_4$#zv}n#-2G{~vxnu~+>aOY)`l|3AYoJ}!L?_B3KiDFf%r<z z;1XITp>q_7d_5SE-bw~g0yNl39F<2r1@P|RAf^_{Qm=&XK*R}XU2yPqwWn93-5d?G zb|TbrVm!l1O_JAk(ZP9M#p}<~H`77|5+cTba?m7`%+;)`Y!XwT{2(D8!%C0mH%@xG z{UeeJ-y5BS3X+P#E@KLc!n5?>7DZgc9|0TW$?wMkKlZ<pXTCiIi3BIEl=@42>f_yy z*c|?nx}Dfpl(@prW2OB9qiJ?p5Y#W!QyAqfzOn;6AJ|?y2~645XYl!dGOOI$G(bm> zsa2UPM!0!J3TStZN>r9z`(<9G!;kEVz1DK(?X5`Tn8@fQslXvDf7OCTm4|rl$0|M7 zSJU_S;TlWB<Tk+k0B}*deb8Zql3btpOxA^xObdS8=rdtC`vIdRXGz)m$E}z_!Yqmq z-cC&IvpToZI1Nok`;VRN8P%u5>;B8;5G+pWdO$;Id|PrF$SHO2t2LnI*idi6ltybZ z?X-6Cyg=BBMO)}GbX!9}{PCshw*w-z6ee(KuyC@~Tq)55;W)94Cbh^cBQU0h;ofK? zQ2K?hezOa1Ug?kdx6B)~$a)ID#JvVa^g}Uwsd9W`+XK7iDu7d<BmBUrLB8iX*{3`I zJ8+uF)X>5l7EHm3>7+a0yOe0x)<OyUb*2#R3&tPM<P|x4@A(oV{912?zv~Y(^P59i z=g89U{p61JKenQ1+2wm=CZuo=d3;*8_nnB|Vv-h{4Jnf5RkmkPq8sNH#hx2FPNI^E z&4uWqVJl#%mBeQHgc26%KibVfBc7&LtC8j`K1vSQ7ZBuyufUuZpGv-WWZ;k?<yxZ; zB%`0C)1T`{$u3&XOM9Gqo_BNCRZxRNAv0{&50(G?<6<f@=-3Cr<<@r-mU&q$jVnk* z{mPKU>g7Vv=++T1^RU?Vd&oWr%?eY8*x-L%?pun=lgAL3Bc%#RnFhMmasonGG-HNY zj$()tW7oS=GEC^Dq9pLiH+;8=zGwhxawLkTdAZS2R8rsp%3s^h41YU(>Oweq;Hb^_ zCojkb#0mhdh9^<Yht!kvGtbBPf%E|H6g^!@C>x|#a`S4BA;x7T|KL`M--C_ocP{R( z;W<f;bd)fVtu$(4$>I0iSAUL991@Tg8hqY|Dv&6H&HtQgC*_tv5Pq9lVoHrtrnKCe zTS@}1@hO(2QOe@UiQ1?h5_t&5qG}_OCJAGaISryi?juPsJt;4(jFfr9bPLDK{1{eY zqJD#0l&7TZ_3^H_(-?B4mZn99RF5!3B4Jk}LSVrkFrqY5jUBIXUbPyeO6ltST{}N7 z8}jpcVSly39fGgM6WXGffIsRht{)EYp&=45?Qdg<B*sI*6zvl7u#1zz``aKZU@%af zTk4jEajjyH-t9Vbxyroy&sN2-!fgg+V?(w}N??V}8ut#f$}iIN%>H<ov<cRmt|bNb zhBzk$3~-oNiF3oybI08dA~kDd77-ZUG*X#hI`$5u2Oe<S9RBJPXUucpT-c_!pp}!e zO3HxHPuu0uAaaQDo#OHMGv9CIoccshUeMLB%0MZUvQ+*o(Pbca@T;W();E-@{{1;o zdvmpOV`-5GN8j3#L^c{sOkqu;VTt9vqFe!vz_V9iFGW&D8WT6!t29d0T6kt>>1Xa^ zKdQn>a>|>N24d}C&GBvzA1ZaBsb@wNn)GbUL~cwClTG&8a+(q5s`LkZtptWpRePs~ z5}O>&;FU;H>f66FkhbSoDH{QV9m=dNIMU{>7P{KGzS9LirwmcSJ*Dov&6KSCN;tz0 z;_zQ+6jxql;|WynISNhygMMv~tB}2|Gx7#@tV<$k7IEy6U=F#>q)V*o>phhl{~h?T zKZ5^AUQSn_zdff8@RTOTq$OXUxs$N}09nFnsrA+twl8y{#4`>W0GB}Q_L|(<m?PQL zm5>!eKL$;^JJp35&(%4hdH5UiLl6d4goCKGexvWd#;VD~4y-5NP}UqeFL(zDwLHC@ zZ>U6vksL9vG@}8M90n72ZglJB*$3aszVVQQ&&Y@z1qLJ|FP^dHHnK12_V5|$o^{9? zuY7>;p1RvC%GZ;5m%!KJKpcq*J8O$p0-Y17e(ZG_cykx2d8(rd>3D4vnyBG+nUnwE z&C#Q<?ngo-nz($L(6tzl_~3TGNcsM-DQ8P__Xk~%+IsBM2F|M<G4$E4HPg=##<lHA zj-H6BPWicAgFH}RPkISHE*jn|wC%lcfc{Z_pzT2~@-S?FquYdygDA~`bRbr5rVg1k z=0z+fH2;))1l+tPk)n&K718Z^@(Ve*!O{gQCxX>m!Q;Y7R$z$+G-%4@gq8>>!0s3F zTNF)KxBc5zpPOa{L~HJO<5Wb2JCw{Tps7EotCcwR@A<;_T4!uZ9pAa5ig6W!T>ep_ z9wr>R+X=3ft0G=m`><DS4q>rPSU|`!kC>j%k!*-U>y}olz=KVJ0X@NC4whf43Q-yg zvY2=PTR7t0ir#kFkUX)}-8y3utJ&iWu)}MdU4#T~@eW|``NOr7NtoboWD~F_CVN7& z9yThDEkxsZs%U%Qi9L71wTX#NL2T7DD}qCK*fPH8oH#R-DDKoI?xrtz{e@Efg6@as zXajXXyz1#D?VTI~6YV~+x{2mg04Z&NcQ$%LL&RlGcb}#Arxjy`v(*W`mwsIFwGf6d zz-v&!vvNn7S06(kMUYLgqB`-4tO+y<!()WzF{t<sBaBwmVLJIts|JHASjY^p#86gL za9gwZg3fk$@9`}(nuXzTEoBq{lKalR4K1{d7Ttc}wWY){(h&|ASZ=zC9$I6|AyJ=O zm%TRo7TiJbr(0bFk$?sipW-p!6UFx7n1n<O3Uu2Zr$H_f{?zHIMBg}9n~hmt{DdTQ zw~Y7-3xid(kzor5q!Tp_Mlf#5y09d4wGbe@@T27$RwDcbXMsnoU88whqwN({G6`KY z2lVC2ixB=}Z?|#=6$2`vTj2dUJ#o`);qP$*%BxbtYrngz#0utgzHNgxlXQ2JbPLf~ zzW-3t<U!H$9CU7aD%W?!KZ$7(#XLq2^#cY2XaifVbJzu5bO-Ffq^vZp*i3|r+sdpS z#U%2pQjx%ag7PBa@V=yQgM?>-*j}JQLI}*!-lbvRztXyORidNa^x}6@>Zy>?O-%C| zI#LuMwojnY3qaV_)(Gu+Bw*5})uoH+A$#aX#-J_meZbsjH9NgqM@RcZcLssmNOw%d z6YTR2<>x0fE28h_UNMv!6jhv4?SR}a61`_a13P0hKjfIFPcFBtnH_XBFFy1iFlYV( zE`IBfslY-z(ZEbOnV{ZDI1#C-sriAJj%cX>mFTMLuIs{pC0wI^%qjd<6_$@c-v6+@ zEWX*k6AqHE0CDAWlY%exUK}UTz}6L9of%Im(yZ?}dhrF;)eu7j{wd*{9tne$=9~(R zz*x4N*up`PHnb$(scpmQqN}qi2XI!Ni{S+murvp9KEWis2o)|m*rIep6Z^QuEIse} zSdy(}CpS++45<Z`gu=xu$Uh%@z4O{px68ql=vrzUc}kr2l->n{LN^7$3LXwWx?f$G zRvYB?S$0K8eKNq9RPt;M<5i(nZKDWfv^$(ImmeJ){z}?y&^hNBTBgz`jppcMtg3`F zJh(WU8>6YDZ+tlk6StB0dhM;2&(emScD$&D=%5J?MMKs&u;z3i`L>U?UNX9RI}w|Y z7G6z6&Po076c&(BJf+W_Ni<tAKv)qk$KB#Ti-rd1>j<pfPQ0TH&G+;ZrA3dI(Gnq; zmuSiVq3ArLn)sS9z9~QwT0-xJ-g|EnLPvTpQl*5Zpn&uQNFX3xIs&07)juL2h$tWm zh#(>&O*)8*bQKlj%e&{E{j#5S&$)MIXXg1m$rd+iA(2rd(}mL1r0*JOtnSt$&k@+x zgDrQ~AxU19#F&R}ifUI>qpvjh`gFYmVN?O0RnB|0AT@J&ybemML^XPDUE&bz#<-4{ zZJazOtz9n^ya>9dhJ`dnHm*Z$c(8$85sIwf3g0gD?;@vv-_b7tOM_Z)+$?$sV;-Lc z-eou9kkjNq0-0S|0%$*zS;5A2KSs2_?TMOnwBY?4?wZ|UAAf}Let%`<%Sxpn?yNGK zIvoKuh!ni6)?;R7%UaeiKR~4eh+qyAy;K~t5Ie^?1{6a-ghAcs2tv#nV{68`0R}do zlSwc#YTZ4@;Hu?%-7d$qI&k%A^wR60H>=%I9zUZb9jH&3oE@}44G4*#>)42u*Qgud z$m}bUj_NupOdLLsVzPh63?g+;;7F};_&~P9Z+u8Ku*Q7f8@_5X3*H%JyS)+PERyg@ z8mNI&jS?y`2@^LH#?=!aWFdcN#QrxB%L_5tVH?bQl=SUq(x03orgS+)8hu^=XqtO0 z=k)w@=Lq;IL4V+F);A;rS280PRIKDrTEu0#buC>|*mDCleh$25PpWR|gv^{`p`(Kp z2cA`r%N{$Iz$Z`o=SvI`ao7Ap^p8mk>iN%Qu4Sm$;mp~vuRBe2D~&mjbZF#v{6n`s zJ0?*hqbMfh6Ar>D>BBORJA3Zk41lV*{CEbgmQrKvv^qggPH*uNKm##ZyqNapflPPh z%nJkXSyi27=Y)yqTU#+XpL=q?o#q^B;B&vn<o@c({d<}V(#)fY&4c&mG5*R!Y38%X z=HGxme<B3{J=ZP=ID#?yE5e47y@F8ma{wJ9Yoo0cno8#j*Wixl{#9tJS+v!ns8i-O z)to-~T&=7?@Zf~a=UzV-77rRIbnGoj{8h5iR1DfF@;5BzO(_a1<GL~bfzVrqul!Zk zbtLZ=>qXWy&MGVZCsZJPP@I3G%m7(FsCnnb{I$F?!GoZ3`G#_z&GHuM3gLr0{3#WR zE+vfD?tJ@Ib@<DU_)CCM9JJ75H}k7tgR_Eq46f9jL@Xgd6w9jq`J|&?HG*2TH|y`T zwJM^&dQ814c%E8WG*OvtT^!qs#`m}uy6Tr0xYgQfH8{FSfDFR;g+0M>b##v_j}K3= zTmi1hHJm9`&X4aU{=T<0Q|C3Jn5j|u4_kL7_AYzvFNX4sV!J*L>^=6Bd&!TR+kQ8% zq|~B>h}^!cyWNQ90qvV2cW?ie&v7je``u9IR(4Zsw*7b8n%4b6Yzs5C_!?eCFz1F= z6tVSLY8|U@b;dQ;^8MQMxDFm3;EU^h_V@?fyn=xC;8L)rVgQXW>A(Kx|M9yw-eRWL z@CSu!-J6eVF6(_@*4MdJexJ1#c`+V+<VLlV>C;x=ZCCkI_rbCGYjCHf_M@o9d$#V< zU<-!`k-A&1P5<J$UrcqQhU#zP<9o|^8!p64yY+RbU$4y2en_uX#@N^PthcwfukU&9 zqlZERCt4<+@mju%=yK}{No21x>!bcZ{cF5MgYHtbymqhLwI=&MWN9<ZFQN;zpMrD- zSby~<_Q`m}Kc-n|g+FeveDI7urI|)&Nc1fCleW~CJ~QHCd5e2@$m79V_V_;jxFMs2 z;r-Hq=M^2YPcq@&0FyU}Ye(8<5Y96I?EOY-CBvrz02s#S?wrV8A6l&j&O!m81OVv` zTJMpj4uH}w1Bli0BMsryhd!!6Pg5%-sFd?RSb#0S<F#n3NWcq5091^Y>>BcB!JttD z5O6HbcLz;f6jlS_I~gz|v1iq0I&Z!w*jio|V#R={chI1<H>_yTlsN$7pJD~<7_oI~ zrXE{5Z})kSDsm6#)|p2?%Zn@uCq1!~rc2EjGCkPRGQRozZTvI#T10@_tj;_f!9T_Q zcaYr!H2fG{dKm=p+w!K2!F6YyS*JjicG9;%jZ@I~73}!?tM6GUA@rc1-EEEV^;!D< z3HbVi$$UTSI`bV}c^>aqKhG8i`8A~ZpvOY~kk=_3LaA2iKqvR?%V6|n4ta}McI&`% zdh7@s<Wc#b^wGxznSNKQrN^`X7KN)G+e0a{Yy2-BPPB3I0gbwX!{a1Qa8h0zx*2eo zhZVC5E#u`E5SjgLGk-dyJnIeqbU$+c-Sf`=huD(q(=GAHCDh5MNsmgMsC4zw*Yv(2 z8P3+nDeclB?+;19tm^Z_uN(XZKo0+Zms(!hYp=p<-`o%|?hO*`4l0iSkHlU3iWO_8 z-Ic{-u!W$8NAe5yc#?p@ot7y<Iq5Mv-+Jah^>lb&*3e~p1n|a#x_7utUsJVoDCD1e z97(NY_f`Rr1GmP`HKOs9@0IQPjd+d$Q1FZ*_!)YS*O(osyALEM4KJdwYKP#r&$)I+ zo~l(Qp?^I6W^_tDWL@<$!K3frS>S`*>rHyXexSHyV)#hwJdpa)cz5N#`({%k$O`y0 z;`8ud@3V3bEnMPRgb#J7m}D^%5Q!J}o1Xn13}5=N^9fNy;`5die@)^;=Tygmj6+zl zAti6L<W=(6KWJ!QI<M6Sx`5CH8Otu#FZOk#1!r-<9rXHv$r>o7XdoF(57LOqqYNd3 zkYIFYxFBmf0J|(m{sMXdst`h`thPI6nj~M601qe?6d4m4>~f$P?a7yt8Tq;$Ov&rX zdI%7TGU_MBkxu8LsDaC0y$fZ7y!LY(s9`Um=erp0%2Jb3D2>wEF>TKn!&;A*>)ujp zTj&a1q?RC`K+*X17g-Q{k%}Ynp(aU?ri#rE<`*;qAzDP84#6QS3lKxk&LM!!N5L7x zN9P-YiB`rOEQ!ePSZTWdx@knp0UU{y|HvX}YRw`OX&*i0fojDrtC_^@Rd#efrwDgJ z8Y{b{f!E4D0`;v5(u6sB+gMHod*$=2frp7p4(aHC-`Fy+>&j#gl`Bj4v<7R4*k3`& zje4gtU4;1%S*%QbNF1JIpERDUqdw^wil3&FdVBrm6Z{2Nk)Xyb5g`Dc6N$z?;wMg< zRw9vvt0>!>$b=3}sHfozej>))X^FbYag8>zpwfV;r;rajp155Q16no7i=*?A%wuH| z&BITJu!X4>_|d7R7bn2lN?D}X6uE63<&97H@I@YKwg7G&`tdfz{QCv$C1_*Or3wZl zCR@O9Z3+;$hzP1Lurd#7DE7<@x?6trRnR?wiyXBETE-6R`kTEfg$D6^#;6K`7cqG* zz-ii@TK@&j=}<bFUS#I&@BTD*gqvJZg?Kj0jHzbC`wV0os>W9gFkPS7F|9yDr9o-} zEl!EGwQ;WItqq%m+ah;Q-!&pU)IIUf?m9R=BnlV?m=pOp?-~$dUR`@erP7BFfSE1A z2Wc;4DR@xs&eT5EMSU*>Z&SO?@}EO8f}{YWms_IPr7gs!DVJVnX)FNawJn6>d!g&5 z{1?~=Ew{8b3r(hKEReZdIoqfQMr~V_4^cs%#oa#$bsm~(+By&}=?D;yv9cUo;snVc z*Z<rNl1joqc;XqO=X`T5qvr#v6Me>Iz;X97l=UC|cZp@BP~IrwdBagB>N8@Xhd!dE zH0I_#hEr4e_)Y$J;n+WW*n~xMyp6MSY2braI`+!hS-sp%>FjG|pBwwd5_fIIqyP1~ zQRY0p*~~t(%!=Oacw-g+t$QUWe(y2f)ZcHVJ8^1T*du@4K1*okr0vD{mKb(upTA>* z$;hL0D^b|F$0Ya>UF8cZ;zfMkdBZ#b`57AZbSw(X9O>{SM7BS`yywLk2Y%(eFsC%5 zY()PHEB41jRevHxH$ssgJJ8t&l?qR02&F(Szy@J=+ir%0+%YkKFIUn|e`B_`Y~P!c za|tIcny^uXwNUGMt`la{J?3fHeGj>=xtSyo%MB!S=56pBUV~)h*LfDJkPfmh1#r9m zqfHt7)JBsaV$WlQBtJej#G?QQcNpu3lB(IU7lLEADV)z>FBLK)vixMO%zI08tz<(} z?}53o2QNCfrS`KU6<L|=S^I&P!HQhN>zJeTR@rR75RXXs*~z0kgYLszQpyTHJf*_q zE-6DMi~L<`p5urLLX!|<7sND6OmaJ61gFjg({?e=tn8_**3bsLv=@Bb<<<4#7|lB- zwOhK$?T2AZ`8k))ag9P9zJ4_ox9$gTzx1e_76en4y&crV&w9fJr)+02r4ko^X>O8R zOT7#uNBNh$&HVKpZZVFVA;pIBW!>GyyUvtv_ZD5tbUdq))U9m@?RcT{qP{`zAAE{{ zh@?POd3o5Cx^8IV-`Ko+B6^>LMK*HQT2q85-XxI%1k#FKo2$c_GyO&(AN%=j^O}At z*SJWWF?Fs_D8DdqU8OXGL2z`YoCp4Bg8WfgNUSALi~nehL{XC4ZVJ-R&77&1ifXb5 zliK%VlOk?X3)uTCG8mYr-&}CD5qvux=xUQpl2RE2(VG(RuE|Y~{yBzKF5e|R5y>>- zGBqHCDFC*5Wsm|W<=7Ne0pq?MPdc!-9cS1pMo09E+S_DhuZv6jA^?eU8l)3$2*Ty< z1XXFROLXK1QsS_;;x;oOkss}~4%4L+l3UBZ-?jImUz~dt-QDTfEGt}Kv+5r%V$Di` zB>f?*An@uvLs6K{as?AWBwDO7e8|jl-BxE>Of=7^iWO&Cg5~0TEQSizKX;_g>qrq2 zvluh$Z+`A-dyMwj%x9VZGTznRQr{ZGlc;;0L<8LJ14g$z1F>U`<|t2X_GXS}3q%Me zo!V#I)|PsKVGVXEW{9?dB5^J5E$QxX+S#`Qygo)6Sy1}|E_|#2Outf%h`0$@4D7jU zy}ih~pZ8GuPh+#r^piH0Q-XkPnV&02?}uU2ASHF&QJ5DM?RrBHzgm%TBX*QkkJKso zt2)rjya4j19{%TBc&a4Bw!*F0*M4%!q+#j2rTdDPCFjetdjCx0@|8qG6O}VRwdUzX z;(JZDqUh1)p}zkmsXtzL*ls7WJ~xTkb%c$58P8iZATr2}m?qITJPQ>tb32;g+7pRk zA96x655Ll;9so4D$e-bEcLT0=wRkapbr~<0J=eJ2yRhBuf4{tMoE`S>X>bQb$s10! zY{#CDx+<~#j1{c#7Bb>mUGMbv8B}*TM|Bk2kghCF^|hW}!(GjKH#uo|>6XsQ3G901 zU{JdAFpH|&X))HkB3f|0><w68fEaq=^K6#LiD~0m!Hb;k0auyA8*ao-TAcy-%kC8N zQ=PBmO9|_2|Ml31WZNVON4$N!_tt|s+!;!^yeaapXH1Yk-%C&QrKu}6fo5n{y8_>U zWTgCvQ9-<85vNoYZg)STuawDkD7h{C)~}aNNI+v~xY47m_<K(ohiuJdbd#O*wTdC2 z_TGnQ)zqdZTw>w6%_UK^UeZRe0qB<~rge^MeTyqhKYR3$6RqT8_o%V$e3$*5t5oiJ z2bu!U?6>nPScWZon?We%#venrL1nx&1J^~KOY<++#bBEz4jf|U4rptG*c{H-_t*~l zPl1BPUpqx!kAQCr%hCVQZm56vjCLvUpIA&WbS6&L#85l5q;DV3e6~vO<;^8N8W1)9 zGkGq&==$K6y_?~MW0oqk=<YdXb%etgwE7gB-1?^PqG$Lsn@+jI$tQhY{7)|6MaoO= zUBs6DD>juf)OPhCi$O3a$u7BH-^p)%2-NfL5|2NvkEd5uqC<wYhFd%zAu#R`m|@90 z*qg!8`mvu-*2=LHCH8XqG7wDMn3L_hE)G1vPb%b);k3*k#_Q51y*~*PxWYjdOAT(n zE>&z`&Xp?PlN=m0=oFvAdy5WlVIz)QAH=uQd1F+Ka>S8<3Bmsn($N`JA1Kz(ne2!o zIg?4QFwPh1$dN|@z1t|87^SGrWXZwndmO%h#gXqvIQWY3)*ycQdq^8{upTE$ZpX&c zhvRLE|C5o6MI(r#VScISiNQX)`qxd(WBkU{k-K33)kj2AShQAvHU8fRV!nE~!s#WI z22$ltMl~#xGD>>79oG{eB^MDpXqaZF%4)!7$_>-)e8eH%6{;LzYF=pYc_bxR0(p7V z=@y+?139w);e~QFkp~fe8QmOG&jn^vZ`g5K^Lz-)<05yf2XB7Dx4ff90O3hC5mysv z00*wj4bz-0T+RcvWc;+LBgZICsw;Eur@m^phQ~<Su83U#h&0fn8U;&Q7Zu2AbjC&d z+2>zjaf}kK7lk)+aM@d|UP+-Jl*9I<4Qb$vcU*CE_MEP63MsP6AlLPn96`wfVY33x zKwOYv2GrJZ`d<2twS-j{Jbi>;`;JDMco@@zSmk_A7up+-@myDrV3C2>qxw(SW({s5 zK(5ZVQ7)0O7DCp{zc?(Q903I>l)LhBgBqouP`1Ufvs`wPv6h}=h+lph`}b}OI1~gm z6^D!!|5M3~x|d_7!dlLDJ8bQyORtXPpq$BhG_t?t4|26}Ei9lmTEYf%pUhdVkA!Z1 zXIoCbg-BNP#w&?%2n$L0hz*o-d=_QNQ*}&u=m$}}Z3HU}P$%>l<>%uv4D1OIRH@16 zITWShfn>$QdCX^6@t1VA!(^PbV7jDpntxEffUWPVZI1MrY&jnTZHcs%^iteQ^^vj* zY>H9jE5%1M6{`=Sg=&@I5wWs|Du`G+`>v8)a%p1|K3hOP7#vg8{FzvsUMvZ+K$}$@ zn^k`gss@gWJ$r8H9<dEL6q!l_h`hL<og6t3e-o#Ff+jMdj%Xd>*RRHEefu^zBJnl% zoees&&tcVb15|%(e25Tt)EJ`pHZXjYmgQf(d0guG$b@>>SftlPDZ&Lire!PrcD+Y? zhdhH<wv4FO{Zglgs4v0ZlsAj5EAxA87<Y66z)kDfPipBS*rxRFXgHBw#cl;A>kBo< zt>H=wer8txa>*Ji7~G)Py{(d($Eihfme0Vq2XCj6(8fazkAl+6da5M23DH{7i*wn+ zby@Ev8uX<aQ_UMm3+P`>=fF`5e2HFTS~6Y$Q9{#P!Z#u%CuA~K==&{M2>A-pc>Xw; zq84O#SI~OI^&Ue1ri?i7mZSXMchQCn)PHfA(Gh;1Me|$3{XkO{72)XJ>o@O}XUAt& z-5Wz#j8>i0Ruyre_@B$AeQCu#hbN=qoviR=1uEiAW*h5KakM(CEVvRpcwOCG954L5 zDgSppO7Zr072$h_+0*_}PMUQnK>-LQFZBa%&XJGFrr8sb(`@Q7^&plASV#vGrbLN@ z-AOm|i|k`!-iUb&*Ag#t#~*67I`g#Zm=!DE2vNoY*0<Y&6zQa=z_RV&cjX*7Oo!|$ z_`)Cbxf#9uSMY~8wSsoAygN7$KhUAsg6@vJkA$-c^m@}Hy_^-4CRFS)ULnL-0iYAE z@D{LvH8I4s_UjvbpQRvFFP!?&)at`lm1_pHkdbuvG%_wYw|h~{kx|h|cuxskL|5qH zWkWlT@3VkXDx#`Jw&$?Kd%Sl2OT7cNKHo3B^?aVj!5;SK5HNB2PYXYeP&nui82|^@ zAjA%OtOt4!>$JIlI&27Pa+F>X0A3>fn3UZ3ND>Km0~iMYx`Qi_<m9zd;6pb6i|>+3 z@1mQ5HbwC}V`ZA0bInn*ck_FG4neJq+x;JufTjQ^0*&RArV+~(==h^G&d4?#3!)ur zwF+2mKeAp60MPhS2r32}%js5|VU2o1(++hBr@2H>>`LY(Y4mSPw(2<6CEj|_VuoB8 z$?kQh>Fa}=&^DE5Bg$_*3_7G0J?O~?xat(($*Z&>?X;l>wBZBrx^aYDORsdEWUdWF z<zP@1JtSlSxl_S`Xzis2q16N}AZUvrq0kO4nUID>{6p$<FHP5L0!|H3L@tlW6`^E( z@!x$=!S)t4N;(}*Y%RGpoIgvW-}g_9*=vs#t@MxnrecECA<6m$X}L<qVqB^I$L_5} z*9Wmu(Z3cO8fJa$K_rvbhe4FyS_((ipANoV&H@{V#96OM_&}{RO?6*K=@D&wYp*zk zL;Ro@e-)|Lj2SKGg(>NT7-V+7d+Cu?`aIl;!*W3^;t~pe-4v@a97k%OisFe#ril*_ z->hqRcPm}l7FM_9aqDZ<^w_1sV9q}cK`G-NGy`G*LruP~opdzKoxAfV2m9I9#Pu1* z5VjBH=^?>`@bX0}Z4!zu`>aQ5DWlG2ki8XwCkny~|MW!UNv4KQq}|~Nr1VOnANmWz z!)*rFpGanfPKcmk<5@Z4Wf6C88OGD%ttDRUMzuhE`iz2ZK#(FOH*eOoBALB!$mqx6 z-ok?~iQsAl`hN~*YO;onTU`5E;hf?7s(~|V_VFR=iRYTsc5*Pw*K)RyXLotMA6vYz zz}rl1)GFai9_CVduTeN~2R)+glW~Fwvd){iR?-bhFX!%r$`n}PV07a$*!u5Gb;xAU zAg#g_*!tj|b@HTq$oWQoZ}YeJd*~aA3(SH7XkdZ!ROmd+Apm{|0l>R*lG>pNf&>i( zke%ghq)tI;74+y1I&VhMFjBlB_;7&1`(3&%j2ZcaF5JWG`G<$@s0UwPf(>BIc>viL zpr?GeQpsX{&|{y?A$8EBw92XTw?_d9zh8@J`<7w+x5rf0nDV!y_9LgeCD`MyyvE-i z-*5BB^YC+EX@`zvB>*e>D^CJokh8_DMg-OpESANQOzFM8%Bg(N6CH}rnc-jbgVNOS zbM>?>Qim4hzb;N>FMn=Z?lqW{A0G&+85HqejC=d~Eq_7#-;NG`<4)O?wZA<ZALX|! z!Kv-bG*?&Ytkfbczzc~S&6E+`0p}Fs+9&dg2xZ0l<YU*j6_JA(KzP+MdsR?wU3gEP zdWSL+Lg6S2d8io5dFKERlc%mvc|a7bHgeG;5Jkk*16u9-8`??B5tJG6bH<&*gzzCO z6iuT5Kx|iOYqVJ+C>vL&CJF!=IR(hmHbf9*6PNcsd=RcZx#7LH30|YszqqNT%aT7p zi&KE85NNL*oY(9SKGb)$0A0lSl0*6=t=&Mu0&O62Q((Lzng(}~B@eR^&Nrz_UH4$x z_IbJiMZq1Dz~b#-RSHs5VC(9@XImyZ<@}9n1D`*>Ml`R|ssa!>G|kniEz}@9f<UXZ zx_w0eu6y-k!r;m=KPtEVbM543?fahuY&Xt4z$!UA@>XAj&s$0Dw2oF(NT7F{q#(SO zx-)PQiEo>tRh|N4_rQ<jc1<rrR1dagJUPHg%OW{@pYQMGrY!I+e^Gu5&Rqn@p;nI1 zdJQKKxs;LekcC#v!+5??dKCQ7YE%}v3(;TLyT4yPPFv}A{_Vk=RF3eeQ85NM{J&n6 zRa7!%wVEEn@&+-*_y%0FBXaOs<9_dLZ_XQd%t8DeaN-l>RM>uQ%P8XQs3;oQO!%n# zw*xWwk?-n5HTu<|$u)!pycJ2O^yYoq9t!_tL^gboo9Qr7@cZMZNR@%(YUz&xs0sCz zQ95hn^*k`~GT2A}6*e_W#|Pv3*JHPeikLd8z643EV%dJWcaxg?GgeQKOAit(2rtLG zAII44EC1^_y$H(=U8oxX6ZsCHC>rGpG^pf5{lC4U6ogItz6j;;hV2CLb?+U@iG1HL z#M`~u*C*h$9+EZkoU;P8UDoj8#9iAj6+qQo+fUX*X16XXPK}ODB9ildm202$-R~`= ztY_=2(GS9<k!M{KaJ&D&iTPix74fHT`z*DX(`x!3tqO>yYZG$e8wkNa@mUXV1C!NX zf6&|hjX#402(Ci!|2&lcckIQLvO22$cV)Pr<LkBkQ@PbMCS<E`9@-_3Lhl4;uT`9D z7vv!!9N8>3@}T9c9F9htb8oMhXmFV6_-tWCvUAvZi>cvcEZc}AO^sow4<1=Gq)y|W zusLtPhAyVD9|%Vk)|#*i6+Qke(E*iKGuNcGGan*aJLNK5G;i)49?wx|E+_>xP!O#_ z@5)7EguZ1pE5~Q@geXp%^w3(iV%{QsM%07^tvV$dgxyn(Ny`>3UEb)fd{OJWm*<cC zUze#~+g_SK4xFkn$`$iiz@G%oG&%kk@NwaL$lL?}H+MZ2qu=mgW$#J2JU<au8%(_^ zx`sWCP`jy@DJpTLaGh1Afa)k=7Ljez?4bL~qn#*{Lo_S&79Pu9XHOM+s{r$iv`n!P zQO&Ai^B?}S{MOHzJwtPlOQXCF{l&$07e$(skU&tUEQCg(nrwEWNc=L)d{9_D#~=$T zIX8Ns@$(`gi*j#OIG>bdx{6~nbqhU24c|W+Q=~V;fU-4(l2dh46E;lq(j2@uP-g3+ zZO}Rw%(sk`r6KbI)62w7)FIcd8T%$x*oSd5h4)3B#uImaO(zk>e5gi(`JoWcVnL2U zj>KDOMpKvh$-&bZd@$?a;_s7VYYc=v(gsVfdSYY9>KJKj%o}y`_JfTgLg*FkImKai zRwSq+x%^fpR6^jFQjP7Y!;ZyWjqA@TU{}<ec4DcFsitFAiiOHKK#~01)Y#vMO^NkY z6GctydOK8{U1+QI3y-fs&7NrtM5QisOM+VPBcY>^;{E<NK2pbu2|;9qe;P0sZD|j_ zP2?D`!!f2#t?yWHbJ<HEU&!fLI<XW~hSHRY88{ntIk?^+WeeHSykTXbnm$o3RRLw2 z?ve_GY3R-EeF*S{CdJgNq)5MlOKQLT3hkX@{fphBfBBbQ*~7h0k!WhQXW8_yw0{+D ze4WNVmgfZ;&sD5E>g;^MUZTERXh<1*nO>=e$bsGcoUgtVe&tF|nkX#DY1TpFb<(i~ z%(_Lr;y?5a?YPY_+b-3{#m=W)4~Pzu2F@>ASTAYU<cx$go3*oMnmtOa=#&YU79KA} zrw203*XhQyT+_P#03q^Kow5!4c#lV!DupY%r2aQ@25;}27&YsD^KaA~NcDkZ*OBl} z)@;nS$^$cu966FCRnmw~7nf|rk&wrHoywNs>dK}J&B{XDh*vsSVs6<tVxMaBKBjOh z)df4f+7%mIc=f~S(MWEzsKhaGR*XEIW21<pnW?pT(lM}geTg#qT_pbRx*5szK&Fa( z&+Er42K@Z;C+!rnOf+k~H;rtJK0|;_D(|K@-9}(ukZk}#giswkyZLN%H4B=3obi#1 zd?6LBAh<5+sqcqG{YCl3R%^2EX|VQR^05eNZ4`iu3|9D|BveAAa`-&C%EIyqS6#RT zsd9A}$M|0eN7Fm8_0FOWcg9uDs7ED!T<T>bc$AFn+3!-5gW;hZt~_Y$yDW$qOrOPc zDm8xd%7wqDCKy_~ywpz0A9Ez8s}vSnCN+9jq;81i2UO92bF|z=qKeGLjM4C0#2pxd z4V#Tvu4|;SRUsi<&>Uzz?+OSMDD1Skb?GSeeV}pUZSkIDwt|dxHg_CS>x*UZSLsna z6Z`ZyIXqunUV_YSsXX?A#zHBGp@ElV2MG;$NNe4g9K-P$b!elcR1ou=yVfR^yI#qC zScHs*{j!RAX<v0*AE^5+_DvPnRDQu*5&fsQA>$vfwevHIm34<wmJNw%h|hrpwgLkd zu7}EE)2@DohtL;fsJ(&+b(D<-n^%j^hAFjWrQ$j_^Eg`dWk>I1eY_jUJ@r62_kvFl z*7#JN#Fh{Bm0{$r3+n!dlFyGiymYZhgWK#ix{hP8X_2ABHo@4j*}fszu`SNAb^2~m zODlt6-y@zxJ2Cm)OonHL!>mLWziQgoe)@dnNV0jMa?I}lx9N6=d>~h0?fER;r~{j) z((X&hKe6CFXuf^dxc+WFx6hhL>Win04}@(Kn!G=JMr{`o?$swZYP_3%z(P@wopBf! z&sZ=Hr*%-WLrdwi@aC)aDz`jr2n!2~cVF68%e$i5=x23WzOu(u?=L&*dg1N@H%EP2 zMFLJyH)E-DbWq;f6hh@)Mv_r@6f`Dweysg<1EQ-Vr3)&OEwze<i183<-s@~Hy;8S% zjVTrno4yi1_ERqPWD>{WHcgdyr>DXrq9hiqpVoO-m08dw<hteFH<2qBIWaYlKSWid z4kg?_2Dm)u-40LJJ@e6<&w*aNlNGsNp}o^g6S!u7OE6wZl5|eqWZV+L>o0Kdux8AP z51WBL{x(N8N*Rhuc)z%BOw(Q&*?hmgW|%j4V3=hp_wHU;6W&MbwTyB2EAaplKR2Jo z#*dj-0fhlJg7<uRgN=2P+bV6Hyp=)R#P-5?De||3K%GynZ{lemeB`@T^zVeDRnlra zQ+Pv_MMqv}ZQ3P^`bOu<BmAsJZJi>DFJ9<bS+rlvK;2u3;euA-2jGi##+K4jPc}6; z>pPZt9x7ZAdG}jvIH&0EAz9C^WxbZR{LI~k;Gf0*6JD-F>vzMAFzip7+D&fXzVWc~ zZz#^heSwF8ula$HZxQ&>>wIqMTkldndyD<)FcTiVZg$}0H2l36^8$gd<*#^&79UPp zTAyGH`?5e;icwvMKQvL3#h!Yi#`E8Im~hZ9KO|l!R`5^U|JN7R2ey$V2mI&8V7h+e zyobgc7k0pqvKEwnc~e+CcFdBgG0Cc2X<l})+P1FGB*j{Z)(j-%?lUmO_}>zP<&7Ir zra|PN#Gs`wqY|4`n2r-ZGRx$}UP$L<0WVHN{*Ng5o&H!MaoLM8tIlGmhl3)zIiqi< zXBEwj%r*}2G#|yqX79TNdtA!VsiC=H;uQ?yE!!1)EPQ9@lD<||o(UJtrnq>*8Y4bt zSbSNy^6%%~E38gy1x8Bg5XoudL$h2ho<f~Kxy#zzs?mR-@8rmQcySBfeWGE@YII5t zF3l>%cV!&S^^a_8MTo0rIB2<V<$S)AU8Ock98*iTJW^*??jFYJXmKPyp(d&ApWSAU zHF-SgbD``C>+s^CeFLfge#}9-*V%^nv$Rz0GPe;P%3AhbGCaW>>LuA0)&%06J=l!t z53kAFOL$!Qm0H${e_P%ub&d$tQ-{^$de^d*g4In^d0eEH`b259ZZ~~pF!MPlpF+)$ zPzi-hmZ|@$6x!IypsQH%p%fzI7RM7sjL|Ka=IC7(m3)>tvCwrfZt#;a#hz7r@}6-1 z#xLfF8w}#{DJ%&o17-R=OJe8vPRYi>P%SR5VKL+hEHwyE=AeK=Ym@)%z`iQLxVZ{6 z$Y4hnwNv-oTnYmPzsa`foICmubqxr6hk%?6HguYWi(;@Xt*5(WaB<f_uNAFbj$Jpu zI7iT|-qFu*?9s=`_S?x#3WHjXpH&}cJ>|Xi@fJ+`I+?}AkVXHon{ppxM*o|beu_(T z_%Y0k>Ww!@r|^=^8PccJa~c(D7oI*VXmt>N+@#TZSW2{#Ohzv;Bn8P{x-DF5r}xJ$ zGq}Jg-xQ=_UpmX8wsy>vib;0*&2%qVHU-_Gw`6>E*ZA6*altR<nanJyU5R;x;VO(_ z_Q5$IlC`j0$Rf@#GPO}<m%))O<5FQ~Q8<JcB950*A<J68{DqST|1hXcy*Q-wSH+~B zEa<-xmU790`Sa1c)&D2^+$g6MdNY(B%H85MljSYa>@#f4`#e*5%IL@S)U+qn0g=YF zDaItOmNbQA%>k_sUtm_lFB709Rl8=@XJ!-zMpWOR0k8T8j7gP^NqVCO375Jjoy^|Y zN5vnUs`4CbvXDn#V@BKlkWFkFSn`tlN*{F}!&vjpE#e<faM7qV8t#+9ohM{fQ&EY! z3dSZxs|8GD>Q!3fDBmtj`>4UeJCz3qnz){<=FO1Hke%0hD_>-+?{dC!crv^9a~2$_ zii;$U8|7#m$=Mlsu%n)OY|aBPSDaj&!wZ=mA<W-jwww*M{NP736<gbR%DkY@?<m2d zfix`roXZz`Nnes(BPO-yEyFkOS0#hD7ZSL?l`=SxiIW-7jkB!n*ZDgMmS3M(?Y_36 zFx){{&>IVr?Pn(Q+*x~At&erAPb{pzi`1XAWZh24`*Qis0v5%FNj|#FgDkNAyM(7& zQ+KWZC6sBb-W4A;@MfI~{qu%_-niC}gmGbIJ+Opk+rTSr5N$T}-^bj>%Or5As(Ij> ze(m&(wkUpE7Fk=?kID&x&3|-kIl^o?6K%P&-(nENa*b9F1!L|BTmFx>0^e*eBo>}? zT*uD1xd>q7Ut1ANJ5diiu`oOFM7*6uww+|9om88hbibX<gq`e1JGpOm@_+3V80{7L z?UiKhm38e^EbUc2?A5~T)f4SCvh6i1?X}wMwfpULChVKOKxIxL^Scym4;VXTkCk;W z(4D#3ngX0(NI>R5n8w=y&>-m1Jg_?@FrW8MPQixX9IXF3*!YtyT^#UcRCdBeU$B|~ z3@xtv++fC;L@<Xrx>h>6k?f^S9gX>CbTelhWPyv2RA&+(+vw;k>vV<jo!)>WFbBQp z3tToLjO{?N02GTRT7{Qc0?^=w+4F_X%W`mmMtBe%Y{)iTAB^%CjPnT2U4-kpPBGce zvDtPIQ%9N|VLWEwy>uyqr@uo$SQ(9t(`8Wt6bEj_5xw~#BxJI45iqtxAXYkORJvq- zv~>svAQ}YG#u)}Ml;&J79OE#CCOUW!O5iTZj!xh?=PDZ_*%HQ!n;Z2ediN7D`(5v_ z7wWmpocn%&(DpJrt^f=GkIqkG<}d5c7h2BK;c@fS5`UVsD93ciTa8hU3JPwm6AN>u zvvxEK4u4(S`m?a@&ZYVbW=24#5dcQc>7Bw#5*<k-*D}jnHe^Ct;)nK$#TF^3G%khC z<^LrM43Lc-0E@=}V#v!mG<x^_9ooYRtpKR>x%LW|BF(k*emLd7_lvJ^1cw)wOYn+| zAzNfAE`oz7FrVP=obBFN>E61U;@uCLtn^?KBI@;g)H`(=+ac1qxF_=iwBD|-C5W_W zM}J1w*X<t{X^4w$S=a#&43|gC^kuWe%SKHpaqKQ2Zy^8g*h?DVYlBBMm!p{_q4cve zkT+q8Bsj1ylQAwm9xflg!^w$wM<XQF>#U0cmT(=50X96`01V*Kz<@OcfZ`c&J9vC_ z+2PyrD8`Fso5A5U6)(#j#-6>e`rc5VB&zTcLJNR#?$!04BZ(7M;b6At6e&|5j_4H7 z%S`DQ0?j#_*an~r2ajQBWN<088U$!KK??Yot8kfZ&l4LC&}iTRni$|GW40d7N5Xh* zG=@N%!~O8Dy}0Rn(F54~^AWOa*Ct2$zNq)GQ7`2x%HJY~+m^R1y;qq79K<LL(x)rT zSKVHPUolqoN(%Fu#DVQR2rpFGFb5vs7@tY>nz3b}l?FlG%8`z1Z6azS;qR(Onvag$ zd)b!==>u<nBLM&LI}AddyyAqRIVqZfocc|L6V!{Bt9GCpx<DD~V=kAwS^tNe9pBlu zg{JRtL)a{%#ue}AN|gWyTGLzD)lK8H4XWj~gCzm8O}<16I9Socmb3P00PQ5U6@Le> zzghc?EBYX)pH%=PX8Xv%FP!O>*~L}!J-CDJsw$O?w}NdoFcPA-VR6yhxPTd;bbIn( zi8;W($_0G!BI9x*K(xY<JaMGx)rlV8svSqUBsYaLg2x_wF7dq&V?d5or4KD3W*hEs zii3IrVh4*flq<$B);a;)WkvwvLJ-9PP;W1PlK&Vw$T-n&46`EE&G682)1(*dABCI1 zkFFZ@Zd1Ql5@<_5L)(KccWqrW{PaP@)%*wCkk$+8?RR;?&*thT?B%DU248?F=#9-5 z;U&U>@a5{cIcq?G@kGF6o`3ER(SbCZLs)rVw4(4bGxNuK4pZp6U$}=q$doDv11qxh zT);uwYE>gRISfb+Ac+xz%{<<Zk^>m=NvjTwA+Irjzv?GU5ZJ#Bd@aWh>$*~*7VHoX zt}G6@dba)H&g#X#sSA7W9Qp%uSHILShB)+qt(HTlU%aOSpbo3{%d{(Fd(IUX31aPG zVqBkwm$QcYKQ2-s9RV|Ad*qt|4)2V!AEkxN%`%XGz-o(Ud?!OPtGueXlD&=a(7~K* zrGnJZYL~#I*{~c84S@*|+=gQ*SHK5>q|!kD@1fOGLHm23CzlxljlLOc?mMurP3C>W z4sHOaSF11~W~xAVeelWauxbU*|D0fd_V#VNL*dS_5?aDZ4lFKU1{FxM3cr$S$v9d( z^KBbuCFe#$<7{cO4+6FiC-DrA_sF>cK{*5dq{f|F+Zl{7C*!<pl7Za6_ux}j?*;eC z1l2FO=pb<TZf?xsdDdAq7kI~szPfw+zCc;-_QAV7H>~Sn&DK#)PXr)A;M+G~*0V<b z+^5-xExrWHpl=v%e?Hsx3r~vB-G;&F00TWnZ90OEHCd+EK_rlb-}Q`qBSEa9ev7oe z;AYMIolAV*A+gpHvl1CVvH>7Ybg9-hWCPrH1=CyfFejVR>z7T+a<4|@&JmNd8MOAv z=JJk8KVc50SAl`h*114HA)?Ckc*16;Qj8lrx(t!{@fzc|Mq7xcBe4C1JG{72wRGdy z;yq7EU`Hjx^vgqhuFK7D93f_Zqe%*$mg?E2)saqf+hK36KC$9{=#e6(5hR8K6zK?; zn6u%q*~?z11x-h}T+zlwHz&M9fr0Q=ioY2n5SqT-uoYF^xIHNWeXCYzId}S+60R?~ zW&1OOZs6uck(-CRH>%oqA?@H2XEH6FR~2US8a|?GZd)0je&SGhV*245)xxXH?&7Km zCnEyp^u#}=(W}s7KZEmA#2fO7S!LF))BDcw4R&VWMp|?WHdr5i1m=pR5M#d;{>t6i z^YjPA6=I!Mza{O%ydFiyeE5~??X7N-9lsB!<sfh#MF5RAZ)@%rvIA#KjEwEy8}SK7 z5iz-#fF}GNLqXME6^0ZM{VVq+*v~T|7x?wy=7ApSM#hL$q5MrV-J4Ysrw*#XR3ORc z{@GbTyb~p`WgoW86c>LXt_pWz`{`$qeu6(cp<*RV9RFS-Jz-m(ZEPR5PR&ApO6;18 zOZECeE0%yXKGv)DoZi3Pw-P?zm_qc7o7Gq%3K)oVy|G%n7GJbSegC;CF~2);=@Wc; zFTN)5XYT4Zpmev+nVaAOc%#o5wM?FZ7$m^q#B>3hB@rQHlrD_+CWbc(mGFVU7x3$^ zo8AQ^ljx;t-C&eg<D%Hg!X*)vWD^MegGfaC!7CFQ`<uQKQb%vFAU6Xw&EMZ^98<2i z3Zl7IW!y_#IGAwKH|0JS(U%bn9YvFY8Yms5U?-9SrrZ=3Lz`08K`C^RPOftqLKG6T zSSFUhePbgTT1x1i?#Nq6wgcV4drCNdDJTKMX_L6-6|H!=1+$u3;??(;pW-3RatRuT z>rwG6em42k6D&qvyCTO@>4Dp4wtVK$(>Sz!u0Nffs$A8&dx~e`J=JR-UvC0|O?3j# z`pyP=j`lY=d)wh-SSyZ`t|<u1U?9ebC}YTGcpz(xilp6ES;XA7j3nW`I6cXjOEBNL zH4Nl&CqKY;QDwkhJvPFf^Vfs9+FSBNTy<H>(>=V=z?q?~IF>XrokJhxZ0ACs@$#+r z`~$mrY(<QTU-m%6_mXRREDl`m-ztkd6RfulF91IxxW%remk~1|^g%kDb*3F;Hk zce$=~8cA>)ImPVwluP3kOFog%-80K^7L?d`LXZ5>cWZAcEi~5UVtFJ@)VEFZZQ8m- z)-W;DvSFX={QP5i1~p(e+j!kcQYI@S-?{J}t}{??=F+ZpuBsJjHxyKh>L7w?7{W0S zQ+>8A%%^NaX)tuD8DQ;rTrUX>SCO_{-0q7yv(wAOhkz~f@GurMqX^InLdbx=ne|h7 zcH2?hfBel{6sEp`Cex&wo+9&O3$RsYo5NVV&F}yg`pWEWK61T2=qdBs=fE^x^Rs&) z(O9DS`K(1KE6t;Zj{io5Z(r^h6R+cAY2XWEAQZ{8ndRLO?|R)nB;Fy^9&5?sP;X8z zLcxIHyRY8jAqI4epA6tWbATC<C^Z98cAkMw!)?Bzq!{Z1Tyqao;03Jeh%UlosucGV zo44-;bT|^`tG;8#{q=P6*=^<P2Nr~DhA<y8RX6iWeDIsY&p68~kLvzf4G)8I>9|qR z@fYhiF}Y?l;s6brp*<BkAA0*a8~ZfzvsLLb^b5Ypz+~Wa<K3BzfQq+Pe|9_RmJ7&V zANaEA7rr?e42zWTd~!G<T>a$eN!w*q0-!QFeH>n)qT8qua>v``+pjxz;|}&G3AsTx zOM!iM#lxSZQoES}EEAy<KA$xB1~DgCBP5gtiG0EmdDQ*F&1-PhRV`Wl84P`sEyFb( zJk^gsov@Zb^YBqmZVFOm_sz0ylkd(w>LkS+2)cm*NGpWQD~Z#GSHL0_s2>!viiinv zh52NGw9Nb8uZem0Fv65}o?ieflCgZg#}e4azn#N|&^11D0d!&ixygE~_bP+<`S?_) zOgbwnKP90=d@Er%h5x$S;PTIWO9@45Q+x(zhgM1^%u@nD7@B<$Qs)2#lL%gd!%I5# zM&vVjYr$Pp!QU~0wKfOBm4rI4O$|d%!3RPPJY<kSI1To4a>zuPso-N{fL0?Jj%eI4 z<Wdng$I_;W%rhN$clKo{Oyww=k)T&0nI`K>C6AXx<$W9stq?{)p!97UH_ZaPFbg#L zyluFrLI*V1Ze~gk`k0K;0o38Im!CbJx**D;_(Ed<fp1I^6PBc+exmA=_~Dx+EUN?> zJ~@EkEo^E`=JCn@dJWvTXnLo~s=Mq(Sn#h`ynnF(jRZRT``SHK-G{)r-B-;j9Ij2b zY8BH=gUmP~>w*Xb+D+xsGyLw>HMO0I%)=2f3q8Qb@B8YFhg=bqyUE1QrH;qSkJSTG zZP6LdE1Rd%h~<~Ez2$bBH~E3kPV2O}jC!7VnW0-MaWtFl^hv$jImP&wr%5pa5Tjr- z;-rfWYqavMBve4ZzCaTY12)Rh!?&QWDN)Vn*=(LL$@s5CXAt@lzMv-qE!l6kNULG< z1J(dEN<o$S%9LvuR+BI7lml*BsNUMN`^X2<K6{@~RB>?7e~EuvY`^;2WiX5xG;~xL ze&>10ZeCAPs+=+lH5a~PHC$dFWhNn%he8yp^$hXLMcn#5{%~?4LGsr&W;CW?fC<`S zD?$d>@Dh$S4a=qQW4<O_J;eF5_e}uq%2iI5$LW+>MF`inLF=zK8A~=2%#o&og`<~; zKo4z7*fXyfq`c0cZEug&k#Twg1t2pM2#||xoO|~&0>0&6aJHD>I%qPp^g+0ahpZSs zva(+8)SelMxd530ewYtiw5ei97mn;WQmn+acwy1cP4D5k`<3otleaBGZ|BPsG)A!k zO8J)2OBwai8O4kl4)#Kx56!JInKYN2EgRl{qh3||?}p_qQ2QS*;G~3orXD7R9N4%q z#GY89g}nKA9fe}_uK#yC+zfLmPxJ~+u4`<C6ZO%X%mX%|Qe9=kg0t5>2$DUk?ey`1 zbpDUwUxh@x<dKV7t3^(z?;WdCNajZvS;__U=J^BVSV_hLn*;`7)}DqY_itaEpFh?x z{R>+LQ*Z@bS|MhxnfdjvGyf?mw&-3Nv(okre3q1P7g5=4u+AQOyXTRxY`mJx-*p_B zd^6{O#r&S$v~&3v!#6H(H>?<RT=M;L(UbjF%UZQI_~1J34*q$CQcd60t0N1do}!UQ zQ#>09@ta5;sKy}u)q~WL&C!Ez5+`;N=jP>9F1+1W)hJ;WcCXu8Qttd*wWK4@402;8 zvh2aQ-TM1n&Px(ZdMy|GzOv?aT6_==!e!qS+N;cS7oU|;H7(Vy%{fh|r_JdxkYg&j zFK76e6`!FwWNSxGJp&;LJt?fa89I$7f0><KQm{2kkxrp&YP`R+=Etu_6W{QNd~+QI zowoU>5V=J>wB-#;B~c;Mnj2%ozQxiht^oP>1G`%CWp15g73<Bp4~aJvKDI^Vtn!P7 zRF6+Y6&&B`wD^oh*)EGutCs0)&gszgKGCe5!e25OF89>yTlwpEdfS%U;OaFk&Q9+? zOYIkbK3++TVE07PB1oXqG*d6gKa`ZoHL8$f5jkdlT-W!;9bqqyUPCpDe)1^$mQY5t z5w;;VW0;;$81c}AqWwFrIqe9%tekv<C21zUK1BMOSKqZClDS-`3rrDTehIEOP>%(q z`S6P*Hq1o6MM#?~Ahils@`fPt_dz_`{NrauZwnfSvv)2?&v}Hx$>(<M#bXvG3EVqI zM7!1thL{gmlZVG5h%PwG4aeaJZB>Ra66pHyzsoE9mFUT?3s$4=*Ygce881jHI5S-& z(m%HSY)fQFGPIE)GJaVGnqOv!TJO5j;^A7}9KmZG*Vk$>Xp`_+60W*@x77Rz?+ZaV zUA~v0&dSTdN?5TEi<@`SdlU2UYHE(`@UGGDKR<8Ym(>e*h~Gzzwzh`1J{rb1qD@3x zk9-zb->zY}RvP&#k1xBLL{1>Lmp#z~8>{Eg8=yzVx?g8<L*g7W2Re)Lk!oJYOLYiE z)bpEBh9Hf(<6P)~AYL;V%}3qgBUum8fD-vC!v|(wj7f%kR)*kmD1FWf)AY)!EwqSc zLD|^L%%aNTY%rK&tmb<K@V+7(R2P&WtPURFLNEn~)@i2IsaI_T-w}S8F`V5aJdH9G z!Wxb{l*W*Vs{ZJr&w_?Fu1okXUkqXs!{Vo3`*FN-Sd5HHVXXT>A+l1Lcrwk`AAGFS zt@>#pyw<RC{wllktZyButm{V5NPqN?HlIv5O^@#IKZ>vE#Tr#73yV0IW(PQOY|}D{ zY@SeMmNoTL(u=ODP&sK<WXRb(1$v3c&rWK~PRZZCc$PC|_(Er~H6Bq#*7P8nZOV3} zz@Nf-Jw?pJ9SxYEPizfMI$RHYd<`Ww4D<MerPj@ip%<GgHS?hd4O^yUPODd&k1dJG zpZzVKdYXoBVF-Rk5)R(x!?0M7g3m$)DAD7vO%okv4lRFww{3slfB-dw!%ODnlae=r z+a|;nhG6u|&mK2o@muY^YZyae!!u4@Euw-GC0GHYw_It8a5MU`bj6rhB2x+h0>csa z!iP4@7<eqGqE^)DdM~kiUmKwPAV1eCCl%0Gl97lhE|dCeJN&wML`q&jN?=Upr<j6I z;o$+Et^BT9L`%CZlT$v;tE+~?^hoOZvZeh>6Pta6pTKpzp*UaOc;~iZtN)V-6Vo%V z3YB}0D~UDicg@&_-lGTJn@UVeI1tYVK&>QZBcW(NTso8GIHoaOh>_+hNw}E!YOC(* zUC+OXP){S`o4=x7#h<dKaoGzy*|o#5+eW*J70OXnrg=-MmYG3&LLR>bjh_mdjIxJj zawpjlxgtjJ$mJTN<rS0AQmWawSGTwc(Mu<dSDC|?d4ZVR<Y$|-wHRh4De7UW!Cowe zi(JFqdG(okXIe7*3(jGP@~NrOY|hu|=@yIraDGa|ZS&!f6rv4uXVldv5!fW`30`#? z_Wn{`6ZH8pbOoIvX?0L$HCJzDVb`BLjPDhdK4ZpPVu|%m6BPwEl^ww?kH56gZc29; zdTBZ}W;L58R8)hFK5XVh3rda*)Fe@ToP9sx3vluJ%?2larnt#p`IiCofSB=DkVQzB zophH~ONrKUHfRRpmr*)POxCY4OlWp;`{ZIZ3>({VofS0FY3Ur2?)D5hzk_kot?MCA z@n60^eY#MY0`2dwq82vQXFHo5)Y=J(NS}V8h&7eNTSSjOIkoZ!lNSo_Zr87Uo?L=o zTc;9rvqLPAwRcmbEs0(t0(Ay)6|qf{`gz;kaDPMGtG1)Buct#N7DAtig<guB_>$;) z={nT#W#Rpfub9zH$}~ew`KHb*{^_{k3;1ErbWLI%mPp2&OQEER*`by|b#GD-hMS{e z2ih+xb-wL-qoD7v<|p-vk0ja5E{B@7V*f|cx&Jf$zHxk;u^DEY^LZQQe9T#jne+L4 zteiq}KIB-NnPYN3CuYu)Q_3L~l4A!Xr;p015)u)T*4OtBxZgkA@B4mS_v5-=ujflx zOb^MbhX4;C`+`1h1{uvf_;B+5)2d$R%D^Y40R#YunE8$frHJ$HAfQ0he4_ZeK;ff6 z6AJ8Fa%H0<;W*hh!Ep$hI6BBg^fpw3-^R<f53cUB8W=ds?#WT&I>g=UmduLof*DKZ z;Jou+DCd658g!cb<A<P86;7(S0D60n=Jd|T46w*C0KTjX*HC~%6Mxz&{KAJEc(v}& z>V+=o9eRbpH~Lp^{n+PDl<Ie#Xudzz*c?fBGx2a-irpE8S4@==oVAF7i93GKBId&H zMKc#D?u9<V&twUccgLO$Eq!R|f)(tnf+t&AKFbqMEC~(GGJsSHqa6Y0q+skn2zOUF zwEV$zdpBfh09g{c{Idccqj0zgJZcF&NC`3U8Dv@eem_>w+}g%q<LxEe!fn%`fwGGH zwBWyaEd<$b)3jid7)N4kEeE+*jt{Q*oO91&BRgo3F#3^#Sp*k;C^HVdY%IyS!R2Wj z<G^%l9vU%(OlX5201#jx9ThqxKDsAf(yCuRD0qcjvb-mCo+7o}9_BwNcpVfLLq=aD z$ZUs|_=9ln<TIX-v^xkV`*Wm&5w{EEk{m!T>4~s*gdXn^1@#H&i7=rN3PK|UKGRks z)}f!!A;^*n({5!)>>$<$jF*+9)(A4rgTmH8Bzge1_S3>0B(elVo#`#s6EPI9@Ila- zdXT+;cNIQ>I0ncXg$Q>o)_>eGM$<Srz`NsLYcE^9jHS3=gZ?d|{QV*^90#V=5#~IK z|7n4r5?z!UPeOB>zE~cYgTI2g|D$lv4eg&c7^MZAmWL50&lyupnLZjP1&8iy{eT}2 z7<GbJE`o(U=phnwX;K~`a@vF=Lj@6*5h+37;SL~-Rqr50QN|y1xH(|ttSqvtCz1w1 zxVNItQ^Y+KEErP70YEm$xsWB`VauStt_qyUIbc*mHlK*JAyT9+hDht1npOTZ(<TUc zgvfwXRqcSL?s!w9R{Q@5BB%XF_z<|5p7jU?CpqxzmLmL^WRwr)BJ3OGL>fIQI~TQQ zIvPOG2nC!AyAUms>$;T17G{#^vZW)tV7P5^n(h6lg_C3Ga-~B>o!o@4L4t!(S1)k{ z6q0VKn1g)WkbZ;G=}~N5B4@x_cO1LiL<=)WXmgIB7-)kHD?1F|L5+-B-Mym@v{XZn z2W;rtA?yf<{a4be7T7_%)ghXIBK%-aGjh>Zu+*kl8Yx&EF_}DnbhHV8{Yeo@Xmiva zvXOXXbTA;bMv@?b?bk?w>KPK<!~^|<$NL#aA<p}UWng3P*7y;MR9p1n7hTd3Kx76S z^L#hr{*m$Iul?a&qyFfF$D#N6oPT5y=Fq<Sng{y4AKt^hFBmFn<x{kZTc*D#Twh!% z)gt)Z&RGm6<oGTVr|K;a-mAT(T$}^zzN5Sid*EsQ^`$WHfa7=l?rvuq6H$EYL9q4@ zAriqr|JcAN1ipNjiPnUVKDxEmAL7@=AFmL`4v804H}h_dj-W(nD?|#UMvDH@f3-`G z`e%p~j5(CvkM?_HV-yk_JrrvcLXHQ=|EF1V{y2Q%sGMQsX7P|XIPr+4Y<YT=4>`{F zjxgUHNPPYaF{5t$DmsZcM1)hKuKfj0#!xOj14o8a&H+<+s?{DKA5WAq*|y*sK8B2O zd3)a_#CPAz&<6W1EH7R~KULl6PZ_EQeKdBrrTPSLUko$XP`ns1v=5FAyj5?={lrXa zg|OR;mHHu0i8Y>7lUX0gH|ohWk1gc*6>^Yx);};c`cW*S4p%%XAzqBOxYByht!v-w zD41}PFQF&mPR1-HhW;VBzI|!^=TM&-Tj>O@&{pU-1IO<l(PGGM=Z+Gt{B|^=E8I#w zyO+O@)cVYz352=Cvy~$AK$VN?MO_qJPTxKZC^8x*QlN4;*lsMVahx$^W7lO}h3D{q zbbm<mujT<|1`&vvId4T}tTS*vdY-4IH3@t7=+CtB$Lma%po40AliU=6M@u>KY6)zl z(jM@x&6OG^5@6=sTglzITaPWzXTQ2Z$l<3ZzOIN#tnoDpWA}b65Os6m$!715fxM6> zLE1mMMn)^`e(O8;jJ->i>N}PCLt=MVsAGV{w;uFP{3^LZY%S#(vC?ks`w<yJ#g8BL zS8Ic%SqC6S-PSBxGC4;^=<{$7?29dy6{CdBKTK7rV4VN0-jT-^{(}(uKiz`6gH=YY zC0$_D`Pe5;N07?SS97Yyoab$>MTnNQlwFu#wEQPp=V=s)-?lll%8OWugeJ4gv`Jr! zDmt$EU~+Mq`1IA{NkMzJx23j06XP>E2ZrO`!+&?aXc7GEXHDldEC7VFHVi|Xaty)~ zpUlE1AE}J+Doo+fW+XvLV+2Q-Jolu=G8S~lTplh+-5YobxT~T}+MwnemY%yd+ZoH@ zXL(OM_OLIO*~nTjJ^=R8^DA1oN>k-`<Vk0hRCO#7KC9H*R3{>4u;Y=usF-deXk^KS z>|MLQn2e{uH5<knDoRbl!GEi`Tk&Xop<t&^r`2mS`+}Lh0(DP1t~!CcY!j)HiWsu| z?yj?;zmZ#dGgIx}m|DY^vFggW47d0G_seeP2!1ows)AQV1=1CJ*WmYsN=^0~1ytS* znms3mp$D#O8^PCDWLTd1ybG`vdh~nn@hu$*qck8)HPYJF>je{n`80PSUDrhS-1GY? zR_(ebpay^b?zCE*G*BGl8rv&E`-Q_YV;TKBBz05T03M_repjs6o_x4&HO};Bc2x#o zG8he1nMPo9`A@3F@YJ}58m2e;%QT?ZCNW(f(B_tAK=wTk?T3H!_Rp8$4albQ@VM?` zSp_=UMpINW_rx*~g2sdt<G#@$fd_r430b06P@Q8Yew<D{uXWdi<HEM27gTI#bVw$} ze8oFk=XgG>P$vh0PZK*(ti_ohH!!@_I*zf#HBxBf)Gy=!J5jOBlf<`E8>VlFkc+I+ zt6kqZJDEELmz1Fm`aG`U9A@T^2+UOpijQXO<gV?bbdD!Q6)CbSN!b@H^%~4I_`F9^ zIt~5#89K66-%>wiXpClm3U6@0eWGj*Af|Up9%Cj$H$2~^w{SIC{6}`ZfpN5O;DlUw z6{KoQ>Eyb@WwqV??$Pp6IhUm-@pJPb^+Fae4I+{<`T%2fqH)ebN7m+n)rAx;GVFq4 z=@^F}@~U{R!L@LEN%Uf}#bc`feddQ$%5I>#U?hpoqa=NcfmVg4!0>YVNm`HHtJ9j& zGad#?^QAuP72;RIVw81_DRoQ1Bgr{^8;R*{fNwN#K!=sMC>IvI^}UH$-gq6bd!KnU zFCkLe2=Fm}7t7!mha$BW8ioRjxItmmOy2Ns;&%?77z29P@t;YFEdckr0(sjojQwho ze_|*1atQDV4|Y8)t@%*OQ0_XIik7JqhJH(i@#&K4kc(p98SF1^9Ax>N2w;JN=4rc$ znZAm9oP6P@w9$0o3gYqV^FhK_8U>Wkb-w(UY?Ekc!|fAl+_9=(RoUj6QhQ7B7)Mb4 z+Sb}|ofh<xp+JD6Y`DZ-&UCfc9UqSaG4wwLT-}sBv#RGqC;y0(-k%Oo9mQ0SY_3m( zz*i@Jx}%+pejH)cN#~X4-}J6yvyivhXX?4Xl{RDeUg$y6Q;6~@?KB_F&@1>}h%V30 zt4n<@FOg~Io{kp0Mc)d=^eC?AjvD*gN4ktp;BXukX$n3Xk{~#T7ysxkyLaP)Ia@@( z^0Zi(&*&nzFe0x*I?osSyd8_b&@K1q?1gyErve|C!oWH%=I!5@-W>`UI{Ba^@eNo$ ztEGo-un@Z;PDJW5tf#<qGmUb(@|m}ey-Dq7lTGn3vc=%xXelT8BEuBF)ijQpa*PDr z&1YUZADd%Ya|ckX0{!AMmtzbf(ea{EV*uH)4EzlAnq1kXMYS4Z$5Xv*MEjDRHS%#W zYd#k#E!QOPasHdDCTO(|lr&j02Nd`d2FR$zqa%sA49DRCzIRR3G0LPzd_Ek>3?!gh z)dc&VEpWN{i|MYjRs6?%uJQ#Di@wgjn#@K_ynhu-azBA(RhJ_!v}&}ku%njubG(h_ z6`HIl2Y-e*q{f8Iz8!@ypJK0Up5&$<@D$v}fMZ#rJfAEcw?lk$xr~orha<3rLY$sx zBr)=n-ltJSGF^cjJ2fP(7{<IIRg<~YTMaUb;j3zHyDfdzwP*j?;=t-zrPE)9xiJc} zo1BuoK`_SkpF9`rkHpZU=k?g0&e>5krfM3H<IEDahNGiXTF%XP5O9w7lQ~~di7&w% zY&5wtm-PE@60_cZnQzaza05dk2@qg8L;!<1H=ywy6cf`U#2|)_IMsBsXd^8oBKkY( z7y)Yms72Rtv9i@j*wULGgms3kXedXy-e{wy#A)IgMWEm3%54Mz?sJ#J#_xTJM>0-v z*~D=Jyz0}T{aVw5nMDx?C?gf)?d`-1p9bO>sN?q#AeL`(@;3m9$rrnM%<_nz-vUtm zB(OCb_KB)-Aj<(j;=D)C&HL;`)a24v?#6qc%hRJEd4O$Yk0&3Jw<%KRMY9-R+Fm-D zzW8V^C#i{(_?WJ2iW7wO3m!ONZt{xw+ybZw2&-a(`bwZC4TvDV<TmTrLi`uM;T$hj zNwItWcw1?Qb}DZ&KHZ}sPn75w6o$lL-TmRS4aN1s1SNdfeSC>DC)kVG-%IZDNx7Cz zgRl?PP&nhxxp(IZvy|HZZJ9N_lJ;#a;)PrQfZVD|ydKl3&E`_PVbqd#!5IyVF1K0M zd)i#H?9grR&S@z@>1*=`$8D-goff2WL0+fh3Ww441~zpLJgIm_oS3_70Z9C0UrY!o z=zD7cAE~t1smbq<olKPXx}4Pa^F07jAtMnv_QqE^{GG$DxgpPX!{=I#N|qa%b1VU? z>2Zr?r*xqv6QNqOrpIEe9tLC!e7^7VlZ9EwquzUikaqM#%wJa6e)-%=awpd1+&)94 zVpu9a-est1u}J7-nJDpuyFN_!#T_Th6<<W}wNam<u^Mz-t?=5fip36Zld#FJNhNsp zSVXLFXKhk$<$3m|>WE(WYH-!kXLO`2wqb}&ae6R_;wgMn&%WA!59Eu}Iu)tvsNs}b zn}QEr%V#h6{4RguK;1;QXY}F&xw<tEk6XJhgxt#+XbKdl6;U<$;p1OPBl9j$8AE)H z>i{J6(8CF)X#k5LK~l8)vKZHFIlpQZ|N9Nl&iZ14lG71IGX2upSPX|I)1=BMwQ`xh z>hvj2_3tLrV6Lkyj{%0a^CNu)BJVw4Yz`p@Os)0K^$Mr`XIL7SLQ;Ou8gmbSxpXPL z^W^<LUzfJuAQ2pTg|JkuxzouG_%X)b3VWV9`Z<=<!&brLkbmH2Q<PQk$0_h(4V=E$ z^XX=CGl)I9?L|c~{#~hT^2ebSO&QKd%E|7uWLJyP)FjgS7o7kM&oFTH2QhL#eH`td zX&y&SfqpTJGjH6zR`b#82M+Wz!CaIxEjF)(=Ikl8K{WNHkegTsH^|MHpBCwG?3<-D z9H*RSnuneIK$S;uWBJu@=(She_)4<Z7nRlF(0%~hDyO+3gbTYp{MohO1<Dz=r$HCh zY}o#r#!%0R|95PaSdolbZdzNHmfUE<s8kJY%J2HVkidVr-8qCx6CFZ$b9KI9e+6!i z3&klDhxdFz^h{dDj)z5Gb`0I)i75>ba2*FoeBSx?IGD!VZ6VIvUu?*ZZTg-c`2C_h zo}FX$ag5w^9QnF!5Wq47lk)Zu=f$xT`s*@bL2C#H&_h^Fp!Ps4CyMz@9?TnUx17^w zpa3L0e%}-eaQu#gC7vaF7&Nz<_=6Dm+r*1dDyK^>uZ%hD&fuvpp54cQJx#vqP?!CX zI;<S(wknS)*_?onZ*dQ%p0Vh7$ys@OXjf0ZHE^6F#&T6m#<pR+jR8m(nP8{cuq$VB zSz|0|VSiDpK#ou>C0MqpNxm22S3YWopxxPSZcBT?&p~6Sg|Q#My#MnmyVwt+9OnaS z=Q?Ks6uTwi=v(_%tfLy|#S}(ml2{#<gklUsnfdT;H*_H+(m!rmW<o!VZFLY}g&_@3 z4;g6kdU4T^mT#so>Y-Rx;JLhNAtU|W8|2;2p|j*@$TPT-JSKfm8n@E07mVc~QKkPi z@um(l!%4*;UErX;gjN+ZarnL%>oO3QE75`m4tD^GsHM+r%>ao&Ym+mu+sVu-48Ck~ zmVOa@N1{y^xa<pnqi0*H5&R?o&J2L^;Qg*_#v0LqBGG^QdT|s1`dIs!Pdae)pC(Km ziq8j?-3UrjcB*%#&O#L|ej*jpM5SCjxdfZW;nGYC>{PfH7m<{uxj3j5+QKdwt}Gv{ zdOf3EWtH<512K?6olGX8?o0d~lr%+6WUflT2XUO}N<XOK8XT>(j}Uv1FCLwrOaWoo z$<Xqv0)F@@$8dTP{^qcy<c1O^PhN94hgHr~Bg984YLJD6T}`<IDB-O!9{}Bchg*_` zEau?sSFD1G=DOMMv{=8v096Rxa}rv>r)?yJ%8Z0H@F{(nT}s6a3Pk8~Dyabxn?Gd; zDh5xka(vv<x0s3X=p<aDApjVoD6+vNPH7Liy+Kfc@go8(8g0QDsjLya$H~?NH)VSP z)?Rz}k#q1fI!F1=J3>%~hy>m}v_rl94Y6pqewLW|Ld6$j=_zHIq3k68!_n>~g?xSv ztI36*QfAxE1YJ-ayiJ?ApNW@d5BS^CY4&aRVgy#VeZ47ggT<3UGR^zt4G%R5GF#Xx z=NoV{uG3h(&`$fk-9;{YeFuA^_voy>Tihrm!wzkBTBh?Px<gj-v8-i1WN$oDHjAnn zs!DVU$<&beA=K4rxdl^h^D=j<8UtCk!&e7kT$o-X$l-y^_W)=>2k%Hej&<S|8Dw>H zQgZtTtQZe<)prm31>N492y}27D|DyF{*qzml0f}3oz9AzKBr(=#U5_J4q${QlUxM` zR|M^G2Y|PIdG;)`9_-wn9FCqmMV|3ABA4<CYt+t);hHJ33F9Lz8JefHm5(t*?G5>i z&yRaK>^n&nm|a_Sd%RcA>#YzPeoIllu3^N13oGbk_wN?K;rq0A>#tiKQHi)!NV~nL zMsS?)W+Gr0t;-EJm_5%{$P!PJdLZ_F5j54jhT{A#$*m%Def7nyWq2oCO~5gbI8qci zF&p@nJ7|lU!&El#zXxsutLiGV=$H)5Y1ls${@Qz4$;HFt&KaL`$+%Mqh%DpJvO$}0 zk`*bC^`a!iR}EupEa);-7Yd-;n$NgiWYFOA`utcGLoSMV{@y?PkT~Btk!e1eF?A^f z8{k(n($*5tx+Ya$>-4)tFK7@-%*3j{bBvBIj*g#;Ci28I=76OhU&}q`&GACAU<U2` zD;S9l`QgD=?G(3<UOzzlrB8)q@B8?9aorMCpT{?z%0bB0@rU+b1$i(5v+`^Y!sWWO zVrLm9&Pnp7VaVL#soZ?`o#KwV_&8_`VF32y;<(~4(v|2BwsW{;F6{%N0@QcTHP7kY z<04#x4WvaqMu9i!oO6<TNm6!**aD{lTw0q)ak<VYcK@0w(o0OP+t|!8p2*-UE-4ub zJ4cdajaY`ys5o-a;2!iCtj|07sh5yGhx4C!BG!s6A949(^zCBbsfTza>u@Dr_lkP3 z28^I4rjC$9HORGVeuBjNNiUo;M@lj$<}>S+V-1roR6WFuvagu(LM&sLA^>|D^4cL_ zc8UiyuRrk}HvZZm$1MO9{2OA)n|;`hgLhFkv9~ut%o(i1(nW10oNA{4i!2XI<cm-C z$sv4RQ0Q+6?pM~fT0RGv!sGRML*0t`25w{2YR}0s9hZI7P0W6>do7kW9g1fM1mz_5 zlh{E&7S$z4q!J+8GVdxhjSo7RVOnog5bI2K>(P2sQg(l#td;Mss)jw8EV+kG4!7fQ zY=*FJQoa}cqeFxIgI__kT;%96=Y*Sz)L*VBXW)j!AS5)$Cdjod0D919-BtRT8_S;N z?eNYkALC8jo55d;@VFOEix=6L*cmHd;n_+!jCh}~9)NcXcM_fKahoYkLwaXi!%l~i zy*KfNs-R00J_$fvs47;AchRkAFo%n*2b?vl*Ss5DRv*7uPb{+o_TGK(6>u#S<Lab0 z*5hr*ixJ#_7&ow|ctFXz7vIyoB#NTiKjR$B28m2sMSiOad27|yuWW9R-XJ<uuZMGy zQYwlI9xTJvYQ()+v_i832LUIA7Mc<H$9@8<)%Z4CON@h#UQ=VQ_P32j9x{7P9CU+A zIxvbJC-`J4I94M3H?ED_m5<!$%r9a1b5g~N)bUt}Dd2`op-&`#gPq$Wr@N2b1hN5( zYs8;}h_k&wfqootIIeXEm!6;}e?`dy{jutDaLcPFQ7TI=I9I3ct+C)#YW{WOV41^a z?p5H{hPV03aEXf?THu9oQtS_I8CSi&5x2gp*pR8CinMA7e%kN;BKrKC*ts%XO0~B~ zAjIJ+hJFN{fpjN(^;FTKZr@<xYmzV}p5V}`RqW)(I9-mxyJ{kWgPx0$O9B{2PwFN$ z;j}+hG66#`)FQ9my5u%wR6b<3G!#W%%ZgQoXUQC(nG+gxR-Ci$iR0R5A<xt}w&}W1 z)9tLvRi-3tMbIET(gTvQB)<1*G`(-s;XI~an)bsasmKdD^M1OGTO1e{!$I`o(#@&L zMW5z)P*L$Jrs|N2QyE`@>Y5Cg3a$5_Kz9E_?+mn4Hg)r`?Ddy9)9PaWR8m}3Zk)r3 z8g>}9ONF+)Db@LH6Y4(V)Eq0p@a7IVS>kTLnKh(fX>_G+`rOm${ak-3+m>J45Y<78 zN7^s@AYR+c(1xkFjoug4E<_wDrP|7U*6-fz^?UXINwz-s+L<wb(&d~L`$x`^)%GQb zvPVmO33~dR=2voK{IaGwMs!p?`N{oM7w>=<r?Am2N1ug&1W(Z}Owzq5&?Wjo(F{B2 z`s<~Nw#lKqq<@yb--MAO@{<>CKW<!QYv%nR31gqQ&Hc$+K*6190U}6*jDHX?m`iS` zm;V_irs?jYC!`#HFDu+bRKjcN_g^B)9kV)$OMCG;=)>AY;dT9w(dqgf&j&fvo~XWd zZ{+c!B{SSFxd|ybuRs%2o)nVah0k2Q6}-njgER2Cf0O-;eZTA;%mv~gdwfiy7Q9<! z(*7tR{c#jp!Nnw9^CO*|=x#2%_|)%nSL-{ckUMUWU+g5@L4ZROBwR?^pH2c_-eehF zxo?k|6n|KX_;knoD;tO_c&(Ui6)v1~ZEF>xcwz0*O)TJ~)IfNT<H{b-MY{brW5^D5 z^Zg(q1@QJ3fY~|bvzd_cPE7HqML717oIHjhy8qLA(DEmG;Y6esQSUWp!*YJ~ntIdI z(NJoFV9WXs(rNi;$j-CN6Ozn_6%y3TP0)(9JfX^dD=5i>8s4w<;Zkd1_t<mcW+0Pt zL+YEYg*){x;WQly!bP;%l^Q8GTmp1vf69XK%JzHNR`!gQ1xe<-w8ycPw#*kT<OaY4 zm3#YF{vB2Rd(zq~K@>zgGYcBGQ3sNskhq^OMy8u62vJkPn8vrlW_7rLB@OF$;#p|@ z6mxR5Pu2yjUDJAZ)93M=2l9L0_V+%I+rfi2IltBWn22d7JquhgZJ44{SbiN(6?AyL z$TU(7802)I!7H6DKo0_TA+vU8e{&!}q84{CdfT0%g*2IkHEW?=<J`g_|Fz}sG4c?d z*BgaHB3Q4P_b6Y%T!>hD^s49FXKm--F~SzTkwf<*!`A1^c(`WANG2z*4(5V31;aSr z+;Jc2{PC$jiABV+uX}H8H2=?Iic1vyJ-)!qh_z=u``dgWPweIJh{GSt$em^3Qq_+i z#2dlFUbZ9p&x0d!-j)ks;wp8vIoaMmCqDo855OdO7NW$hks}^Ap9n@7EqN{{@t2Yv zPzXn8iBl8Mb0wu(Zet~tC8Mrb*qQzt=^T{@93CMXkv1@dvd%PuQ1royP^!k4hPABo zhZ}3zx=h#XMVza|)^m{$@D;JfYK`TA;)%bCC44lmeJ*tNZTwv1e&bthDD`*bg|%WW zSA0d9Pu-Yvghu}%PwoX5+L!Xk*=t|##e8Y}8hLYOr9LU%H730>YF^2gnzreaDs+qg zcd<BSw*3mNn0k>zG~XX$O7v_vO*D|8Zw<@*=sTFb9@0^nFgftdlk;fg{{|-##}Rkn z?f_JxS+Pz;cexFmiGYOm19>`jU-J4j?+puHJWdD0^{E4)$=2p!TtfBDKgVUewtsrM zQ&<Ps1d|6xv3FGP*5bDhPSda4D-qn~Qs4<Xm@<}l(5cHaD%fsFR7x!$KTAVh8o0t* z;@&^)9{v5-oX1_3lviqjoR41EvDiO)Ap#g40y1d;Lgpjqf{s4KK<<u%F=hzZjB@>J zQ$|d7&e2MmM9cB&+Z&jDZc^%L*CM9t_3`Htzn0%$nr>mwG3HiVM6Hw;2cLXvsK4OH zWN8(t1}3+%C9cGxh^x9FxO4LfeW&keCw?R=^)z`aF?&bxyMt!c>CaaR|3(Z+vI77R zqu8V_N5u7mR1P?rq|0D=o*jvvsFt0?naPF%cD`J<PaXpz{{A^Vm<xH{6FC|fOK7!v zld=8hcE%(VZyTdI7y(67``2-~7kPCP836>mu&xpaIs_zw#YkZB4rU-U2++`72{kev zM5*29th{T?mtoYimTZuS_a+hA0Qwn1XbSU~E87|KiDIqj!Qhb$3P@v2?+YOrs8pef zM~86J8KJiMqp<3EJk<S;j5cctE5;VeZfg#J=;{I}btGnAB@cFuQFfprNpvvuI?@FM zWd1@N(puchido{MZ{Z!8)B7w#IUC%amwu(<y#{i?)Dj?O8j!E#iT)mkeyJ9Qz(a$8 zMBTIV(gvtP4x+EKk|50e6q&$Q0RFlNzD2j6?aN+aTV}0n&kV3sYA{<_=A|wbnh5x5 zkO!Fe!joKv$&p@}K)W*;4l_UtRl`igX#*q`(qAO9=6VeZ)=eT5CxYYl?=G(+pgx9> zbXgGV2ADx_IOk0`ow3k0Gi|IW6rt;}Qqe0qiZdU6og|jywZJjT4?IiCE6DWvyS@sP zEFzIo_Nx$g8VI)|7)pO_srS44;QOE?kiDI#N=?ZzD{7h~9)@O!^3~(!C$^DI!3c-r zbpqYb^j+Cvq!Jg~g27FOw;qP;m2y!aaaE872`lE$c^$9Ev^h?8xARcH(_~+7>M)pj z&Sz)65i4qIn~(GWTI5`VKZhc-4s*`FyrIj_*9Nfv^&s@leRn6@iJWh&)$;{VCQoA$ zq`?7wFHnkr;<M^3+pZ>pr!e+k$LEK&ZnW^{EWEw-?p+{m2qq}L3|M!{=|@Gjxv9#& zL_BfK*E#HLu=q}3Ffn+*eFN*{+&{#`OG<zbJ(SmhdIG67iNf5NjHvqosb)*7i&GJp z`?{gZ{CO76Rlp}~&LGx~xtG`>pKF{!{l+qg$F6hT%WSPNH`R$urRivm!b>JL40IeI zsT&D+EIz82-*aXIYeEkcLZzYoSLjWVeE@hHDc_gjHch=%#)LE`7+{j|HyUlJSn7OJ z+m#aI)Q$L^G+Cy#439s4!FM}w6lb<Di5-GLjQ4;koAw!u?dS$YJ}4VG<CW#ZLC9DL zVU~q-NIo7R>cW+u@?##dKp`bXa>hw4{s=sp1MpJTI0{Gta6k0oICBg!1ovHHv15JV zeYGKH#QckLk{MW8;A7&I+c_I&JaR`gm|Hl<<tohQ`5Ds9xwMV+3PtK<VB3#I4o;JF zreCF5cGB)~Wk4yJAo2^D{E?$|eq1d2k~oc@7*EV$F{_#8xZK%bWI^A&^wg5&g^7Zb zj79&)*@yMuOe(u(5JE`8=b4WDqn7B`TTX@KM~L13LT|)h<3ES#<+Rgn;1~oucO6VV z9B$V;&xVvK3G99P=JDgM?~NdqYz?cruZC(ssEh`XWiR<M*D7mCqIBVZyIEa*djuan zc<Knzardnqux&f`&!0~KqiJD`F7V&VRSpa5%Y!`6LM2p|R>oyUac~#oc*lW<z%BI~ zH@4PD@uzF(ktvBz-Eg@j2Zh-S)sy|NG79Dp|DC3Xb?95}m;JY7Den~P#*!BSV(K4X zo(i=Mu{@v&d@$8<(wxW-R=)aAVvy79=xpYX`PC!<MX-(b&UU?tqPOs@voq_GGLZcw zh@#%6Ug~kugW@0wn0|4)1dOjZ8qSp2mAK3D2uS41U2@3RNSAUz045y~<_N%zqI|rj zgghj&+1ef$ny=qe;FcF5A&#&v4l~y*ygVJjG3*W4b+Yd%H2Qh@(@QWu-_2dK2yg3+ zr$;zC4F~9$6a_MiY4Tjz;sUrX6h)?sHZhqzEW8xeQ>?XWc=2og6_w%y%@S~jo0}ox z9<kr%x=Bf<33^K$0DolYwNO&Pe0IXzuJ<roaTgRWlr95{<dU5~UIkRRl>PNAI;gd> zIxMJLD4PbB2^n01elF{j5^7)uG&h!VR);-WxceM<msu6@{&T=Hm-1&}cdP2|g1ifc z7s@MucWqK^IU`EmxZJB&a@&hC4|-WXyFk2`fh-)7GV)))w{F6x!*%6>qEfg^#dayL zcybZKP-%6x;=qI#cIHuLwlZ<4JToTmGgg8ykpRWYzb@2xOvSFl^&s&QrbVhA#^lzN zCW3>33U{r-V<G_ko=$2e+>2F)Vb;?G+x#z8VgVeGmo8vTB)=<77KUN~7^!fZ0R|Rm zD&t6}{xYx)ql|0y`NirBC)K+AHF&KWf@_UoT#a#AjcIR<`C^UbNsTpst*utAy=$#w zT&;6it!r<s`(o|olUfh{Iy!Gxm^6bms2Ki&jj0QN#PW-gc*#~R^}3OLdUu#eTBu<$ z;?@q(#9nDb(p+Uh*_cnX35mW8)0q}eR!C5~j_^K`|5Wq;+G=UDdG!s_W-t0H;8h?J zt?MlSV5k;3F#0Yiyo3A^mX(mZDi0Hxe$!U@-~P2+kr=hjNh5{72PzJEowv*JH7A2m zm1joJ^wmO%He9Wu(xhBghn>|H0Tbq?FWeT$uWOj755EEZPk6hpk=#Z48)jIj0Elsa z2IquX#P!kT^IhPRJ6>1MV!8~<QstO56fw21>`t}t^exOT_Tv8ZSK~a&x@IHLUQw7! znOAtBG$r|&43*W-_yr&Kt=YC4^!M@SDhfj3JiVEC+nBjM3UI7RxVf=t{PHr_i}cPr zCU0d-=vXFEoO>vm#lx1vXzc==u|36uwVL-gcP~!IC+)WAoZdKu1TgoBZ-w=93#|@7 zgVs~ZOsND#o_b9(fjw%-5!5`7P-SB_IAvL%8y+1s)XMXT)8)kSbr1qEw=uaswl9Qj z$B0fs{V_;SOpID=ZYR*}4pK=RZeyFQ8xWA=WNs|ME=GEHs(79urba$`%*-u4T>qBX z=!^OHBxjV^ZS%!X_#EbDM!+s6H1o{q*dQhP7;YtS-h`_z?W{p=hjEU`Rn^ni<N4fC zykTCi^^#z5NshqTMVJ8$r{|c)G#0_>#8_G#NKq+cwADnj916bjc`z-MqeKRoeBtSk zhPA1Wi$3g&Z}VJDV9P#@_qBiIt%a&&cXG8${1?5Fv6>K=SUDA|t1B^Gk246uO5SuZ z=-m*{Pa$yHF58w9V7cMJ{^2w!(Pb6W85%#A`oE!kf{c>2^&SUS?w9QjD$ky1jp?sr zTM^CY*36CZybs`v<*q2`LFHuaVwH3dE}9QT6@b4Q{$E<n-p%0BJ5i9UXKDbD?UdYE zHk&EHN_0?Dfz1&!1%59k8s7hEV5nYxwaI}03FbD85y4n%3VnJo-4l2CkXpz}*yA)v znqhNWh#&QLD$Tjrrc_$9Or)ntt`goh_f9{MEfh09<*x5?t!Y^SZduDu0jSK>5=WN? z4gHCwFIq>6hyP95v(QZIX?d8G%zOck@brz7Z=zj{x)(+8wjOu7FnjBhm+fpnV&t;1 z$wGOdN%$uv-}a>bzT1g7n)pQj$k<`tv90TS?b)I{rNhl4O_Frmjkv3(fsFyr#`D>} z$K4DQFFlyPp#<_^gBdi-_lDRt-8KJLc044hW_DwbU`npxvSM(S(qDwhP;#(O&3o?# zu653*=I}a~UNye_LiAjTVvPRvLTDBcy?n3pNSDdbR9nA%Rod<MxMS>I&YNpFQt^!d zz2Tjls?40BLp8C(Q(_05;2)@+KG|u~cy;V<shC$fAx6LUyNP}3%z8~GpZ4+kn6Pjt z2_)+==zLaNA8b1iqHb`CgJvD1yuM%<d(nKe_Ic;Rzp~wXk6~J#OAwmY;}y9f#(Bps zTbaBp#aKHHY1+4$+z{XUUW0-bZP3mt>tvqS8*|r3dReS5i5WgxmRj7SzN%3qJ15HP zqO8$?_Ch~XY|~2_<YrESz^sO6yoA}XWp;jE!1o&p<MLHx$iKO*8&9-5WwPwb8S&Q% zmyR(Lv+@A94`LvXM_8^KQz<OJ{S;oiVO)RZ`8a{T;~uDEtv*gZzq)#9TjP%e(r+W` zl5L3E(?4ryb)s||-7Fx7a{o0JoU*Ui7x*nTgfJmMHXgYnzLj(uW2|h*+^(IG>+NJJ zx$^SOaF8uCL>2%vw$cK@bpb%I&UFqRli`OC^UbygK4aeY&howYKfln6UimmVh*{mo zG506-efS!wM|0O)`SYmEH6G6|e4(VjTwgzR^i6wyAhCkeeNK6-mAO>#S9Xn{pGM;l zLx4J|HRSJJj>5ZFrR$S$$nh#<;mHUa?K|$~e_COi5A{6$HW81w0DeT1IlghVT;{8r zE3usxb@%$h>L~}yVSVPDn|l35^rQYt%f*p^oRt?Eui#ZT4cKX?xNn!m%0&L?jlXV5 zRH*qam`Btxh0}k~`m}4d1@q{ZpdH%Vxte$P&RsN-B~qU~0V9k)M(%#KA}*WXGQOUw zlREht@%r{i6*@(-`mtusXT;KxbY-0f7X-l2joOf~kbg+}Sj<sY9HAN(aZi+pL0$_B zzbprI*0&A%rA`)W5TNZw&bNoMZ(xNRT&X|(J&8s>-1ErD5zO0Y1a3rr)d?Y*8m*X^ z_#qXkG*7x{lLP^ICP!<sbSu)L?HD0|@DUVRLk!|Xc8p1G3nNZAAWpuX=UpL6jV72= zP_DefJ0r=8qU1Wp=;ih#+(5WjD)Mv~llFz<9z^&k1+hD4=+|)0YE*tv9YNcL*tZeE zCwh$ZQ9n{yctBEGENURpe30m@kzT;de}5#7G1vD?J_QWC1>*4`LIM2qNL_yo)^>8M zZ8GE34M9}0R=w1@QG`x6<}9qDunlZD5(&uxuu^XcV_=?SCw*HVSb@|te*}>VhEg#= z4}ke{T6KT?S1f?B|2BIY*j$l#hDijQlJ2x<z>539yd{8<w6h>wPnJCh;vM<QhPb<9 z`Yvxa%_c>FY}(z0`P_|wbYrk;w*{2}<<3Z!n9N%L%dC1g&GS+v!=eSklMn+r5Y%lD zQ0#f6`=liD%zw|QD_Gp`k?4%5{Fy~ePLzJ{U`_%AN=ooZAvSp>h|rugD3YEuKM*uX z@Yr@n9zX#iQrYJh@^d^BN}Lf=%)-^92s8iq;tglX+@#|pr!?D8j_&MLV7?eK#Fr;0 zr&_AX7(tv&o^Q{^PB{a01$PN%zcpYAjuD_Lh#5B^uLMC_E}X9_dLUjLv>wj@Ocn6* zu-(=2{w90!C7(#vEXm8wUkSTn=zLzMUMl`&hCDw18(A`mE6IQ?@ks+_p01<lSu&qk z3<c(Pt2h^W6wj{|p{K%b7brm50A{*{42e0GGz1Zm1R_PjJPU!d4z`UK-#F$dcx7qK zQc$`1+9oB#vE?^`1%GcKo}{Pp0m~Ai5qnnyq^HU)hz-Td1K=Zin$V~9!ogWoTd5@X zKxstmP5m*^$34FGzDQk3Z!;2^rePN*fs8|BKy33^s?vvw(<69=)vsA&JM%_0so-($ zb*anOYouDn5dV#lperSU_+k;If*egmJ;d>n|4pWLKL`WIYpF<146LT-T5)J<j4c2p zeNT;e4gkuy2`x*1wvfS5RjyCVVFp&kU;)M7vQLc>miv*PVv&NI*a{cw*)z{Sx4=A) zRMIG=21DZbg&###0G3nGxh3s&i1n{n5!4NHQ-l%>aHY4P%&Qi<XCuXB_T+_*l<6gN z+f?CSu3Bo0_GhcQ5p0WwEYgT{4rP!BF|i&Z?D-Qy|H~)MKTr)N*JSiI1cy<-KB{$Z zLSAY}nPe75eM2Vm3(J2crp-9fQfpVjiZIApq$W~zUz({75;ZOs&5xva7s7z?wT1Ot zq8gIU<qYkqiu?7<?G$rI$wX7JJX5z!*XChUZqweYSA8!Cgk=w%U5euxbS|+uxELWH zhZfDxyL%&U&;(WCpL8Y-n@UI60V>063t)Q><`Y})HH40H*DVY>TQNI4TTC%)11}BT zuTzbIfa=+&oQh+cLE3HBVboh<`EX6-wt5Q_uu;CFUNG_ARuh8pDC)A2L)vPqII;nV zh$11Hm&5AkGUS;5Lwxw$LPWJkOWHDX@zHN=$7NL?Anej4AvxNLMwC)!?dgn5Ek<n@ z{yenSd+@IW;c;Bau5?dOxo#H*5SNKc3r`Vc@gGQ&Xc}!)1U9vQZThk)_LlM})REad zREMJkQ8VuIf=_~F7jlUMV3_xCV*{}pPzM60r%e+cYIvTWJm#7zCw^n@y!EF`JF#H} zY5w(hQRsaWKbSOP0-1al!8j+YxMjp5AY3esO4O=@R6#sqDxFjwCaNM>7;`u<-2o+t zl?D040)XhldnIlN{c$m%cJ41}z?u&Y+ug$wajh;x(wVvY*`Fs;dbP4;h_dM?jET3R zrMu^+Ix#D4odt+|;%y<n&yOm*NVW8M6zaCnZz#01_v+SX*V7J@*7&E;+^1~;2(t-{ z)ysN4iLPpNzBWr%l`{YyMK;G%rsB_Whq=ah_4WUG4p>5t-xh~eNeSCrW9MnUxrMxX zTPU_9BuyJ(!vf&IbpzY_F~Ahx-ZLqhnKIMBaEHtZpD;ghqEOPgX2DHr``uH3byZ1< z<lDHrXck{cdmBIho$d+w4`m33%mLu(3*A@9XIg#CiR7R-#6|n6V1ZN_n}G94h~L+3 zehXNuz*-bm`fAHszR5^v&h=l$p1+sUQn-BITN`l(U*V>;q{eou&LS?$KJ{d><>4gZ z)(2TIF)_Bpp0g2A0;`=uH-c{F-)$5x2}awly9^6g^<hmAEE<<mzUgYXmeJ#pR{qs8 zLki&C&_bBM-Z_NfMww7!H@i|llrc{;E+9Y<Q(yEPiSl)31%#HqST(E_7tE)kp4=>- z=nX6=!w>ONByX@@IYfEGkPWvJP-f85-)=!{uEYeZ=x1U|XQp-oJ3vPv%Ixypc*AZJ z#iL69@j#;|O||K!h2wo7Og<`Oq^T&v`^GEsF-39JB3H1(Eve~A!rS9h#9dYZskr{x z5|U)icwW`*OzG0fDs1B%rX-8_aQ{iQ;#<9OlvRT_O_7lW{bohN7VRF$UQ@~{ME>FP znmBnn)vpY=9^EU5rRO#Z-koRc(C2xoecZcha|ccZgX9p9J3<U?-K{-MkILWbei$Kc zykX286#a{odi9P!tj9W`y_`paVPmNLm$OxmaF=9$%+H$6UgOv5CYO?WKFN-=0Ux?2 zoNauUvdds64B(e`*D({p=j7*TYr(ZQOjHt>i4mG<UMfunS9WhBMS5Qdw@;r-M-U%R zf~K7E-c$d{PR*(L&o+BLGoJT4(ctU6q<pEYPG(}=4B;$<i7y<?GoG(DUf3%|u(_sc zno)k<mohYKQ7NA5xbs&3wMp4(hzu~rU>xcE)Ru#_^d^^v?FX?|In*>O;Fsw`XQC0z z<G9$}<raI86NKIl8T;<UmOHqt2he*wB|qKdks*oVYrgZL<)je7cNA-O{f(dNhtu=_ z?R*#+`Ac(Ql!hpd8QrJyGQBCSzvN^erZ+=<a2?f=aPEtF1y(JhNZAKo3wGP;XU|<? zXuG`5_oVbGMqA)h)W)o!ZLer^7nrD5v2%TPemeEXrPW(cdVrS^vaG_49-r89Uz0x| zo&N?w9%M+B>PX&1(_kpgOBxK;S@?MLYO$Wi+0?h~<uV4qVmjU+;ceFJ2%qXt3vzwt z+94BsYw0M6OI`xV_X$G#h!g(ulK&HGvpTBjgM>|^(Q9PE>%}sjDe%;A^(2wnd=Hgt zVE|taERP+aFL5n+{;d9rUu95QTKt@0cDKR`E<7Ok!QoDOjB*_XE({v}u=!_>NpGZe zdco`2x7)ovQ7wqe!PB_Cs<c<gfs=;tXRSh`^=Y=71^HcGUH!Qi#6<YUsmibi<SCP# zKpD7jRLN_(ZG>!j+;8T}raMG($M8*#*)8pzy056!a^de!Z!nu#`-9QaBFIm#<q_9k z&xs)$<SP=MW+HAfekG53EoE6Kg?-)rxt5QA2;<Dyeu^Pq=<+_E&<wB>vfN_ZtCASJ z<Y7FcseR)tHA(fApM>;x*uR*iyDHr<>h9&aM6MmCc2ebq2Sg1c)DwH6)%mT+m`82$ zPnAJPVFh}1vd>)4R$%4#!T3AHnKzxqE2o*;I|sm&HOjXm8R}*NI#M8r<=?(YeK2Aa z8E-MbgIr+PeTUMU3`0E^)Vu%XqZ2_Vw`gob@(;?G?r=32G5%yjp8Myo3$T9r4_G@z zO8AbIUnfI(+l>Xk%f9i%%iBww7*n~2Bwgas)8UMdI>=|R@6)lv01rKp+>LpgrD6u@ zn_ZumtFC8c3y~1}wlEILTOHF7M7_~ABKKFn*Uld~tKrVEtAQnc>~EcX=2~KWfQ;J) z(lGg%q~xWk{iLIg?5ntdUAFeOWWkAHEWqs_;?9p_sl@j}GOJi3#Uus`OZj$0Ej|z4 z1;o*twHbww`66=m{D*sYg3UIbF~oi-n~r`_Q#fgs3_&);|0^3^H?LNl%hiI_ADuq@ zM-OvI`LBi4+KIe+O%}TRLaU%!YHAG-8VUeH`*q1@EN8w#>y<%@1M3B`7!v>?EuQ!C zP>Ic&VRE75EwB@FZhz86K?~_XL>?7jBf+O-ea#w>$Y?7co2i*oYX;JU;8sS5BuIG@ zwd=CW;fYp2-utY)uw{~=4F?A9KW6R!23YLw*sc{iCdnYeCrQY8m|^xfsQ4Q@D~@<$ zOVMZci3trfeOEa^4|4gtEq$z%+SX8Uf!Sw9P`S}$Qku~@OR9G->9sUO(%6<WWIl)e zqvM@MYTnmm#hcP$Jw6-uS+(9;9`Wd}oW;Nd;r=BhRl5&7T>>?4c2V|^<d2*cN=Rxi zTVNdKse)JN2`9h4e;TR0^6wV?@85q!h@viVUqC?&{4>wL;o+fei`u>6rmcn&e#vd^ z!iN3^)BzrrT`lFsPg2k6wKE^e<_^{Ey^k^`XPBM@SkwY8N8TS`Q9@nSpOgF#+FcGB zwG?I66U!3S$qAPl-s1Mqec1qNldRUckoR4@l3Rrt@e?+^R|Pk6k;XwGVh@St=iU;| zS*XtWJhV{%L^)?UGzg|&Gk=o#CwKU1e|RVrG+Q<?oI~O_ADdSuTc{Ra*xtu53UYAP z0MZzI*mVx(^{x76?U;MJ%JU11k_&h<n2U{nrBB|`Wn;$FhKIiwW8(iH3(#rsDnz3d zP?8eBjHQjIRl=9j-h5mqsJRfY7GHhr;#Zlh=6bC@h^0P<+`N_Dkg&gn^88~D_>VuL zWB&|YzxWF)qObg3(v=OR-tI1C>(Jiml`$uFhC<G(ij{JGT@&R1b3RLi^V+E~%Za=; z5$z395j`)`<W!aJ7WHkk3OpHE;Nm@KTW!{WD0I!YGSs|U=;YgTwfGA0vg}kg)9BWJ zB{x8s>GJB=sXo!(^pl?ocfD5+X~qlQ*GHpyLd})uNCts^X{g})0Ox!BuowB(ucgNC zH1Cu>sFunotWFkT+H<^9SCa;?ol(ujHfe_c3`n`)m_GmLfdJLJ<R8=d&;f`<U+4>V zqgS38CC?_Vg+mx>b{3f?iM<b!^lSy%+VuvdtBGv*H?<Fh-yA7=>oxHz-EojU64Sp} z##vpZS9Z6lTZ)!bJ$G^Xk64?&mYhlF@8rc#+0s}1BMXgZjQ^`TF_2Qp+F=C54YiJ3 zi2vU8^;!H6NMAW^_VbBO9huP%zv+2%c61NP@JIje+BujAw%p40nGJE6Pdk2OxEr4S z$sDWs(4&T^G$v?7_u<aFQtER<#Pj1~_;gFYEJ6$xY7H3n6VIRoV!%T}Zh&KzOy@K# zWO{Uy2{rKJ(PXj$#gp}_#*6KHSy<VGi7#LLcy+Dc>Omwc3c|7deQ6*HdQ8YL;TUO^ z4iBn5m&y3;GcU&lFflo3LCB!*F+xadT%3VrjETqVLEj_B5HxdznPLft4PZ5~%^Lvc zqT!Pe{eFQD+5Qx06m)P&NIY^I<!8nk@^eq;q!N6vTs@;F1=(0&w;4IX>!}R@&u(7= z;yT!c=!_>bcj=o-jFjZ}&m&^Cw;YUpXNpcW{fU{s-Su{eUA%S|YO*CXSM>p!8SWRr z8LZ!EdT;2(NK3g^xt}snjKcH;SuBv974TV?iAq5$*Pt?Fpe%2l>%C9b3k3-!hPEa- zG^OeCuLM7>_dS+T!#>3!NFU2y1}I}gD}XhJEP3ByqWmCBbV?8^_Ak7>Brq4_pkj== zMC-ipH;<^e^T&9D{~;j*VI%57fim(azsZRSb-18cVc6Ew{TO@>8<c)k@4RG&w3r?c zf+hjr)U#m>CXwMZjW^dMN2P+mY2Jv_`&@@)QO&()WDsCm*lS-`_9_<h+t*#u6j@zi zR>&4A$!%1YpA$eSW%$ja@13WWybiq*+<3*FMl36dx#d%IJFLd|Bg*OU*gS)CEC4@r zLeG^62Gc~wuH#=d<vpwLsR#FbzVx`Xg4421PLR>WiHB_M>AQ~7mhtP9w_()T*uP4m zlJ)LtxlR|&c5aqS>xoJ8*aQ~p7%a*d3og4<+7{iAcabGDneb@!Mu_4V`(1SoTKYl0 z#I_`I=5=PQ`<*2&tbn<c9;c~#W!htkrl-6irOc-5n2=Rb?xK3n4N>-pG28kx^rFoD zOKITmF1EVa0IZ>gmJsQ2kQbievMY(f`e)}q#!w_n|0f1nDlm_27yB*%0q%PFn0;zP zk`6n+HGGvl(jncThnItGf)N3@nFhE;{Otg+j}dKjFuB3P;a0jmtC;F=1{v4Rp;u%n zOC)}mE97?+E<W!dF8?geN{h94|ANo639&M_40orjPKOa5m!G;Be{jkms#LPTN@Tuj zvip0Dfh$b=ZgArqh7yfe=X}ESf=`N=_qjyHQbI3hjJ?l4J{I-OG80#1MIFhD5l0*; zW_LqQOVs(r9%kC?=<dEkND#%^tDW2QPJ58Q_<g3TkN5Ta`j8p6L(c_(O3uH+EpUha zX~BF7di>iJ<^C?5k#en_gGZN&9z~Ue_cpsDi$Ry`msw>P3|j3blmD<*%{g0da#5ac zbIyBS^u~=ocx(Q`5$`j;nIT^cCh|UCJYZFbGw#&GHs@|!aFs6{Roj?mQNq%<ekffm zMCPzO^donQzutNptamAIOaGqF8xf4m-vqDV++hMWriUQU!t(jnLj!%~X^C>DyE)&P z%3TmbKgS>UglgWD05H%GB)O}gdER&o6|Fg@hj{=coN--w|3}fe$20Z+ar|tC&2^Yd zl7@}B%O#i4Hgmt<@7G2M$t_WBW|;f^n%w1@5am|Q{hGT{sgO!iNl4PZKfk}vf1h(6 zpU>m-I<NQhi8HV&+s&7PkocrMskeEvcg-*;K50j)0dh4AdIF#njMjwcBEu_Q-bAQd zcHbty`$Z-Cd`690vgBCA)kxi4j{kFGkzYA1#}ZFu#n6Es!cM?5_%JZmWgznpes0Tq zq^B<`^OHrE?!(_s(I7$(dzFuk$iZEaxNWQ5cZIRs8?$NNpYExUY?7_GH^$DUC2yQl z#%H<3Anqm_tw?*iKgKe8gKsnt6uvd}7MZQYMZJNR{yqG>Y~2)+%i@;p`0d_qo4XjF zQ4buUoY*2r`DiSKGnks)$6;z9#-rHVN^_Bl7zn%j^&>oXF0%R!>lZ~&Ed!3ZePs** z>N=B&>1kn3h^Qoe^?RK8qF0xs05{<H;RuE1i2lkoo2m{jtTdCQ{Z%fhU+qeOt7gH; zPg7GzTq_@7s(Yb*&o%m}(HB@YXfmfyY=WxsPPK>i9c*sU*?8zDih6!@UmEmr98@#0 zs7*kmzcTBw&l($b5)B6017m4wf90<#Cr7*ym;X|c+fAY(G|4C=J?|CM{|Ucc+C*3? z(-3quR&&jiK~wg6`XN@6(F?sWHb9MjT9~SPT=cYtkLl~6uE^TczpdmN_GhU=&uV0! zQLR9GgPGq<wGK?7zfH9cn=(1F$b}!Yjvih-HiiC+)#UR^Z6)J?y|STLTGyqnN~1!) zuY4>;r2hMH8jp+`WSiK<(%3{)lUWz~ayR*0B+^3vUL1kmGZ0CzlXws~kChLrYSm1} zTzOzyN$3zxF`7X0ED-X$6hr=IKYm5)UEqs|MHxpB1hsI0l1xSg9@;u!jf_{M3RInp zw+zxgn)ZBR8m#FBzI^RbF{6Do?b()XQtQYhorgS2qYW0`8MLm~!%cB(-_+C*Vb;B= znfoErjIr5sbUN+t*TG{`E&T|X6i>h3M%iVETo<y_#<^bi6u=RYde`QhmkmrbEo~wf zZI`C-^6S0lq5AzwI-VumZYY{Pk@omQZ@SeuCF{J$PuR*NlobNpxR6;{G|utUsH=&c zBtbbd6F+Q2gjP<Kq-z+vZ_#v8&m~gDlui1jIdl`~16LREMUzm)p@~q0Uf7<Ns+nOL zeYEO=miiP8kGz;rZwRd*$GSZ`_^L%(;kJa1;mx#q2!#6)u&rdZ`ZTeaSo&jRKiow4 z-}sOhELo~1g^)V(n5<80&DYB1@gwy?`(>dsd>n{}#v`F)NzqfOhfJAvZIFn*Tq^^{ z4c^o5m0?XeWt%j%3}Pyk2{tkW&2<^0ZqnH)<E6+v)8&UNkSPHzWNI%hpn0U}rl#JQ zNys)nh(ix5H24=YSg0~;jU6qtHB9gtJvy--!9me(rdk~*k4$fEfb~etlf5Ei-Kt|J z?18I)Cf6b=zsW#ThiFf(NS^P#@b{-q=@ISZh+{dTcEJ<g<{@Sl`unR>@!=|CWc}x= z9Q!`w)DxC^_&L@N^Mo#H`)1vvLv`A$a%7weOJp+Zubl3~cqie<>9mfxO|wMkToGMt z6%0%rGR5fWA03yi6G`kFB2U*RO%#aGt2Z@6MG`hkE&kS9K)a@8jRsROjLGl6rfZl$ zKh3mMye4-$GJoYw_HA>M&3Zhq%uvi|+{@1nQM5l1U93iAmMkmLV1Wfyi!`iNcIy=N zFrL3AN5dU@yPEcPFq^<<oV(04<pz6xQ|ThJRC$*9P^-Lj5QziFuDMDm)OVewY${n} zrjnNDsMtBYJ8fmXaHBq*?IX==z%o(E+-^xWR7~c5378moqN;^R(wE$pmfZf?$^4)D zOfC)sB)b#~TqrD?imX{+?Iwy_deOxb;<FO40=Mf~j&~n+a0?btZd^zxG7xVy30kD# z;7npj5Q%>k+=F5|=k$`WO2fnBWsz|_LSRK9>bFIxl@L{d0jKadf#i_!72(PHNTwU+ zAo;Ow>a4+MIh#$YZtKnN2ZPfXUz)T%^uh^-OammZ#MF2JrUz$|n{|?dGhL5NHpVRT z8iC}zrm2V1>O@*Jm3$*;@^Rl_*NWcnAt*`N$?=^3tGoR16>83DV-S^Pa5|cD&I)Sg z^|E5vF|l>BhR-NnDZY%K$#U#v1*Z$j9jZ9{%6i#UJh)vgfxXvMQq#BiLlsTv3GKqk zfquA{S`Xo7F6^?0?#mcE_#*xKAc)TLu5Wg0i!`&l!hh;JID^w>Zb<2zPO-mbZB439 zu~4J+ok=*Q27UB!CCh1S^i~Z@gxT6k5fr_cb~wdIBIBlSolS#JmAB5s30eELsieS{ z5-KPX!sL*Ij{7D6=15?!i)x@p9=<SFWHhC+=J2SV+}MY|_JpPnjr$X;8G0rGJ7t(2 z>aoeM*Rn)Y4mI3FgL?A1f5pE;keoDw5pPoYZ64%V&?0Tx7N^sk2KC{f&3r&v33egc zV;c>MdrRBi?%}1sE*!SGv0@WD#JxW`sQAtB(7Z=%40`VVySsNsYMOw{wieJGy>!~^ z!aJ|icHV#OgHk#y(%{}4w=JRAvD`xeOM-MB!8JeNZQPEWP3SDPmfgCZw6<LDkTAAl za+Cdy7H~-wCVgnU+wR)myz~f;rD0bFLm5_};53DaLY*@y4U4X;))TyEXmd}X)A3MB zs#%Tq6Wu>E2^w~)ydHjy*is10ghDW9PlmvKE+>!UlwpeJY1_L3_A-m_^i9SQ9=Wu& zILy08Ruoq32Ek!N-+{DISHnKq|CS2OQ;|<wR-CtnJ*o$Zw}{aHhCQH2&-9b6=9mcE z^h%^dRR3*kxH^3dUw(kn+Y0xD(qBpsQ#bx?AeL!jhZ`*q->1<be48I-`MrLgwu~{; zf{`a7)6ObSXf5Gh?L)5;;0cJ$kHt?`Ii_ixiDcWSQ2k9UQlc-E*Qf_de+_56Znd|i z7!8PoZwPt_bly_Pt%r=Owf8bwtygc5=T1gMO?=8t8X%h}>nyN*OLbpr?PE%6t(@B* z%oOQ%nwwS!dUIwqOk;poiom}@U3IfI?<C|($Yh;`^I2F&14OWR_n4dP8>sdRe%6R5 z`3#8}_gs>eDD73gQoIlVK_XKp*WxxGzDr+AOJhgK6CbVG#xMJKVI*k>4j<1Xu)la$ zn-2sJy;G(WiM`O<eSU$9(6H};;1Q_J)4*SECmcQAJDneNJ}8#vfA7JvmM{z6?A$86 z1MIld9y5rFm`|xj)Jq|zzPhUcp91?nO|ukq2ap_AEgzAuMEG%j*HV5<`*TaPzre=q zo=qag`-!&EBaLc%cN*geW*%K2P*`y9Z3#u3i!2$EDx!Y}sAxbJQDm|xC?@~{oU1bE zBS?^SWABL<sFr-Mox9Ec4+6|8q`kG<%!9z#8r?g?QVDO+cVBUAe41UQXPaChLrN#6 zNcMma1m?(}fCeyeWvR}pG^t~E`yT#c7IHgiQTN={0G<TXZp8FF)3gk<G%5$!gj*L; z<h^Y(&O=$3nXHA1djhx(T$AJe?<t_jSb>MV7v;Ktu)mD=(b_swjioCgo|kUa`*|d^ ze)<m`uMfQXGfaf867RVF<U>L%0a5}UN%?ap@Ji`Ld9P`+)_9&xE%xPUT+uW3O$y!$ zqTKq4UyyNmuXAHl#IRFzExg7l@Ouw74UlV%*KcK#bGn9n28B)=o^VU8lpw9QyZPzR zP{vOMA&5RE9`&PVN7YYL&g-$;C+NG;2fk4McYed731&rJFnXB$OA1zmG*r0YSLHjC zzD&8~0hKsGxITqGU|vu$x3zUomNxBEmJId{kbf>Os-xr&6iq!5+E@b#l?a%_tCLZ! z-<W`qo?Ld;&Nm0+uxc|78)iT@BlAUmLx^k$OOET~rOxgY^+Z}})=r*>%g(tltC2Og zbruLK&}Jn1=KNErjFBn{v{O=EcHg?f+~tOQ-m9w_%UO$>igUt6YHzqQg-cRk*V~-h zD2(NuT%)aj#4Nq2nm*2J4I?!DqGw$!%uf=5`yNo0B(i)Ljoo9O3M70_CpWZQt9O8& zwd~>3xSSBWZAzM!BspQOdP<))mA-qCef2%niTZ;Ij62YH9imBzW1i4fAWb8#<uoYM z9NN+`4@v~&(Uwf-EeBrwN>~jK@cZOELZ+TMX)r${JcEWDd`k7V;iuE+FKEwo*M1H2 z$79JTE6RUCvKO}Y^8U0owKwP#fmyM3!c9B5^^{J-J0R$Wy<ucNlKki_^Ix~EOdD98 z0mqpM+u_+rR+3oAvmPGyeb?_4_613rOarz5SwKSlrN#ybEB0QP);^>H{GcAf=(tK= z%1?2bp)E5%FX*C5JG})dVKn0ZCeZ_OrGJ0wwoDuQ0sVa%4SQ}`crUf}l!;Bwwa@Ie z4ZqKFkk_U5*9~uPT)e&UKK7yWo1qRD)LqDZex}lwhb^Q9UupXr@s3clf?uhapM|zZ zR3x?K10(nAyW;o1?muKuq5lO#{I-5OU6_4+W7}ryvuE^@OXV-$w64`D7MgW6OR}_) z0TLhQgH)nsNmtU@IVH>}m{21<=vg_oDZ5srBo)FLCKs@an#hA)OfjZf@t9hnRk);! zrK<&K5+vo<YyMIa)D(=4uXc5q)F7LPtg4xJn6(+zSGUAEd1nR$xI6}97!@{ol>4j< zC;2M}a<4lAU$zH-J&<4Ng6~6C1Ai;L>$}eHmg8!Z3_PK*a_d@+|2PY#3Mx7v8-w|u zm~6<1Y16N|VQ=tzeJ@p#`_K<6XnroEfsJQQA?dw;((GX8H2{Wlv^KM@^Ukpg6}^xp zrwp?;JF|POKW_IO$&mNh(zzK8YA>s^H5||H7&mp(EZ1+@KR3GK`d8A7zJK1Z1=gsS zH;}LW_fS&*8b2L7F8Zgsm1t)-&u#&i&#^v*=3KUlgGFY~>50fMXGy`l@wUb(L{-Xd z(y6D+CI*5<RGgl8g_@B;Ja)+279Eh2O%v|v5=aoK9J8{3InP=_8IlQE*;Z0KOK?FM z`NgbcSoX4&<tc}3h`$Su)r+&X8^6W#?Okr53$B=3zYI@HzxN)^6`|<|-Wf-;F<nYD zpd(IX<b}moi=~!{&S4uX4x6t6_`!js5dJf+F^2(;B{$Ih0(|jd3D{Dwd_}!C+W6<a zDwm&2&gCgAUZuvIb~4LMu_-aUj*%sZI}WU7bM?jv;8kJ6?2oXyQkUWmVStsm`7XLT z>fRYgRykzCZ7CvgKAXcE#B)l!1cB3=l&rz)i53uyk`4S&iN>e0SDWst;CD#D#v{t8 ze%dQZqPL!Fkt$9PNxpJ9O(5B|8oS=;Wy3bjm2aIT?F+uoXovs2-jY~_sl<ZZbTk!* zcucjgxsp_m16pnUpkviSpFd(F?JBmeT?<R@7W6Azjd284<9bKkdu%weF;bbZc2{F; zjO%C=GriHdrBNDayU&$=mt-94#vvVAmYma2!Y-0HUn6>T7(l9|y2zNkyJmj^`7jH% zxe6_^gE^Lp+sQTy>`Okp*%!#%@xt??J@&=+w=p=2q`8nh!A0bX4GZU8VD8<AqbJ`? zw!$JL^n_mAFUOqX@t)`BDC;mf<>Hn-0Fxju!^PnLs1+Gv7G+}naMI$?oH^&(g^4(h zZdYDG#u2pD{u4e6L=aa+QFA2z>(<&Gm%Um$o6;V@_=x5f`mX^zZ!h?1FOVgRIvHw@ zZ*VaG%WQN2P=(v-0%S9n!eN_V3PLXlAa#+eOyqD^o$If#ze(RLug5yPcq%hgccT(V z9<kw-{Hq@vG#NV=NwTq#?GvHf2{;R1*T9$GcM3&x#w_0*YH#|jJu72hK|$;lHZdYu zAe^sgDK1j-RAPo0pT>y^G$D&yXd1P?h5sPzL*rH>B%$|AKML<^Wk6fRI4Mv`8ziX0 ziU+KZANwL?lb?gK@G#sqdt!m8DBNj5ar+o$n(ay?LgYwj-?1@qxN>q@o`r6{P%$8) z#4Ll_Nxgk6fwXRC<&R1R0tb2db~frDdyH(IDkFUGF@ekqWXWrVFGt9n!`+9_<5qc@ zTd?(g1O-XJX)p~jQCA4*fQh%iP64#L1tgVrRJpQhjTx=R?=_HD{lw5$WHu)cPxN7Z z9c9iWU=6TWU;&xc6OsQ0I`c4<1uoK93B$QN94^FomoKZV<C6G)W1PS&g!r!uPv1gu zC5kvpK>XBGgz<oT!zCJzVZUCYNDJyBhqzv%Q_dU?8#Wh|+Ew769e-{k85-cj-{52@ z=SNHxITyFZwN;=bx#96uCdGJK2oaZmj)blt3!df)OH6b^>Uqf0HPvJmieH!)Pfeu) z!dd2W_C7GH*lCbx>%t+8!hpeAKfR?+l))Z_Y1zM-5EFBNEi^x*lC1_n_YBF*+TmJk zsWo0)Sr9iiB3nKFwW|VXd{_tzI~R#&nh+#2+wH5_`C~!tf@CHQEE_R>20;?2FafK2 zvB?ok`Gs0l2ZADDq}m2I@k4%T5j91Kml(@umFJzo`g!mhZ=kUsi<d$hI!d+Wfi3Xk zFVUR$%Zx>Kf^xD?u~EwqbZ<QqAo~`+qFi|b3g?+`PDD^>htwdKoD)tDi$yr>#wCLj zYm|IM9EUIb3xPRDAL_J75;vNIhAj+OQ={|Ju*$~Yg>y!7=nEK!N{0>j?ps-+5$OlJ z;_Y9uZ5QRdK@6|qNdS>W?ZI#J+C~H5kfTQLCu+L(Co^Dy(&Q5i4{VIcjbaLY`c+;G z#D;7gY7AXdOaa4V4hJt?_{EA=0zk}2I_Uoqw%uB*00_cF;zjB{+w}In@sT&})Ukk$ z5e~*>G=SL4TJLll7>Wg`=}jF;(sFAcE-MP6es;B;R>fv!h36HalbNH7K*nB_f_>M! z&kLAOh7OwDcSc{?eaw;7zoP<Z-+|BO<WkH2T=jSOT6`h&qt%jhKf%n0c1|4igd^M7 z7|9B%Ls3Z(4P{ubP!2K<>$o6UiPht1{FF;eofqN38z9r+c_(fu@RC3_l5#&W^h$*y zL!{G08LypjoNfS1KBE_PEAVYYTaC1Fft~><2#RpL$Ty_cQT?RO<QT_oJGLvzX#Hqy zKk(Y~Hc-&inuNaGFcgce6it-=7WwdR?zh|OeI(=I{?5f9Yk@Xrzzoma;-*oGUJGA2 zUO9zTF_^vEMyPzH2k~K2Eo+}1YZ_k8TAgndQ<pQY6I(q?MS*KXoUQ9WR71d7rGQ7J z(}|1NI<Z4lEY%>#auYh7HhW$2u^%^|iN$X4Gw346T=0}HE005}ixdZ`uFY2bOFV}l z34Ci3{$?=@xO-LOox?M&7Y|$Z?}tD6>X9jQX94V>Q~2vC)cE~%|0U;Z^W8I5XBg3i z9A)iPN5h&aeWP_G_Ko%4>ot+_Lw@G@2q-~YjQz3^1SRU3!J%7TR$TE)Qc?j%9TG1p zT3_c;u1Qp$y9WKK32`B2r}gG);V=9dBC(BTExSM@@RmmJ+<me$&b}4j392^PyrJ=a zJiNg*z}1<|y!3$Y+2P1V-QC;=#~&x{+DXah5=<#g`&fwI2P(}kqb^FSO~<kF?wg2$ zEGkOd>v%)`;?c}SMm;0t`y%cUzkEA$#r7?PSzDzZ4}O*?MLj6C920q4nhvKuAsLmd zw~mrdl?>5LuU;cO<KTXXE!8JdKz@bT9RY}y8-CmKi+NJGDt!tmJcT3NWBhsDL2#r- z*u6_%e5Oi`bx!!t7{GXmLWX!2|9QCd<v3)W{<UAh%|OCgD&bsWy9w^GU1#yzZyfB- z;Exx<5t+lw#rlV?&`x*y6ZdG6*op%N8QHwbkD_3r2aq&mwb;<{nvw7g@F@#n!<&MT zlPn>fBEJ0|haFlID`OF+Y$dowM&~+^mrt}BFl`=;_A0c*absu=bz+TxK?ubaSUC#2 zFM%~C(Oorvs7qAO4LkHI4s>)zJVg8y6(X6{FV(*Ky|mC7%B?3v@<AV!IRNGMG}hld zmGbYz6+Trdd>2=2$>5Qs?$o9*S@oY?;jbmyYDGFQ(L8hgnHl@Ro@J5cE1LQA1V<(1 z%FA?5{`-qxaYLxrR&1d-L1-Mv1<Qa9p=K)<U~xi0{jmD#57MWbUd=+A$pkDG+Ulac zE9BV0F-$Yn#gnj*6E@9F>{k)N=PPF?z2k&R<HRObl5hGz(&(_X3@B#f<Vxedvyysv zHUo;&U*~Ju7j3k*{%Qy4Rr)-w$Fg<QnEFAWHDop@&a@HBRxl*dQ;}-rJsZl*v?p%G zQftM9wic+h79UcS96~51UO`h|Zt4T|cd$Dfm)$){H}m)mb>WU=ubX*9LISyKQG|dR zz!@MQK_&XMJZB5+$MJG!WvaN5%UmRje9ZfcTMS`!13O5N2!U8?JT0uJT7~bc<-c{w zU}D%N@cooFir>1dW?xit<q{#X|5HOvJC7fKC)yB#wDP}q6DW1o7`=N29Z+yDpiDCG zo+Rlu+84iw_V5=nu>$osusU0REOSQ3dexRxPN+sD3e{h#_oZ|#mSZuL(>6RTP(M!- zKmL63WjsMJ4}CwK;?~ak8UzR$q=n(ga2n+YFwBgp!>)+&C&zU;ReS=~&7P8s9m;eF z{W#@6pbk!e><wL-7`wj9MXnbl$es2hDG!B<b6HK*N<0}?2|HE0QxT|ui9cT-uZy7? zyl_xO8xpvg)PU|}JQKXMv6Qg*?{o;m!LTYwKW{uQe9tC%WLVt4ALfRIc+p`f;~V)@ zAsYR}i~Qry0$iyMdmC`^c@3TV07WI&e5-cTU`0|=yS7~fl|C~sqf9u!EF?S@#=)bV z{2610hhb2<lF(QOLlvL(DKF6G&)n^|QX`!GP%HY$M*@fH`?eI47?;WCMIehMH{B=- ze^4&R{Vxfa3YNwSE}2Ta|3N~gbHp8lQd|!DrD#R5T}wvnr#mI?^X{9)xA)GJl~Kj> zK&LQxkpgB6iV}Ih(B6zhIm0oaxixynYKzHy09oJYOs0tC#WgoFOD@NWEe70dHgj-E z##G3hf>R{Nh9wdMFBjn$1_W$dyP?u+{hTs_=09SkLsO@R>?1$fU$E!28*kBM`>WG= zm?_D76QfbyUwY5T00fW9BeAW{J3nZmk=iw_``#X{P0n3X0FBh}=%DEtLzd3cY;PYY zy4f#UdYbPT0Ytd-!?*jlK>W>14st-tzqkPd3BTojNKg<nLKN@hqF00Im9BIk)>W`g zIMAhtwRDIbmU&~$k5blPK02ue@$}&KPy%MmXCJUN&oJa>S?<r?OL%(Q>?I8D5g~h9 zCy=*>g=wsq<Ti_B856xR#|LS~zI2uWirgzQFja|;BemFi6CeE>29g_FaH#Z0IpEEC zpg_OTp1jn{#gKpd;{Mxr^6%IPbMJ;%{N4tMugM4cY<S@WgFu>oRLv;&+^)b%kIOR_ zTo|EMNDWya8YIvRSS>brX4MTB%M3%RCqCWZ%upbGDNv~R{>`Bxkz#UsK1$&4Tk%U< z=$?VoEvvGX6v;4iaOUmWu@>gfY#ZBnj)_3#XC*B^MHP1?uPT^;z(`;Z4KQibd9_1s zcNYB`DFUlvdAEfW1N*gYtl4%Nmz;~4I6ibHI{y(+H222e1}8B4dtHWp?}~1I0Sxde z_4DH7a6e=e|2uf_A43uND|@OG3soA1km)e5xX&!D&wMBXSy&dcZ00mFTLh@xX9TDN z^yU?r7}r}_NlMV9R%qs9s47Pnh;%*`e^wQb5$V9F;w82fZ7e(gI{<O6kU3Yds2XNr zuYJx9Ec7LaqZMGMW6vTY&ZeocchN<xI$e_(O59m$>{D15>Hzy#Cm%Ufs*CLQkj}2! ziA|!o<aV-047i?+0<Pmdn{X~eIQFr933BM!JvC>;N1W<-IDqr}>_dV_oQHSdE)U`S zG9UR}kAgR!?80E*hji!gyXffiL3hr>f%85u56(8=Jg?$iHpp%Z*hm66lt~>$0HZj5 zhcZ1z*HF>3xYHUqZjHFpdvV@{`lx0c-yS{u0SHw=2-O>qDy5<!zawVy0&Szh-h_(m zsRdu0l^BW>2Ku>46*v(M%3baA&cCpivHgL+)ozy$OEy39z4}&S`?_c5<KVN0Omk$n zA6OSByl4FR$T1+!_JEVD4u?mxGb-Z7T-4$guvfyVw;qzYO9^hdY9dI%tCNx3T}C2f zajE5xOA;ullQ<Ef!;Pu_w5y#aHILmMT;J6Ob8TN|pT(Xbc^T7wKlaq_r#=MYtB1Mw z)VR9FL^`@eHV>yb4s+f_zZ~yMeW^hqbx7<*x>oB8k43WkcY7Kg=Hy1^6;g$%8gYa4 zqQaqs2b%Cah^O8o<2()aQVn7PUifCG@S#R574P{B)S}ttwh*_wp~<dvknuYbw)7|G zGf;VXEc-L*I(yL3rNJAy<q4R29M=jU>=qNLp;hCl$sQV0C)o8<TFY7RPvP|lzA-fp zqe%P|Iptvz2UVj~?}qVMKcnPMcfKBho8yA>gD!n~H`jKzn}n8v@X<r57|%(q-HIOj z9S!FXJr62C?GNd99gXjej&hEv<-Fv4q?mcSE9PfEN$bjtmf;&UkGf%^qE_q*onxc- z>DS(3$1Z&%O7%l5M?FqN6)#eOqt5{B&q2PA0WR%+zE%1I*9-XLqa-~@`QJbCCKsIb zdP}-53|m_C)KMQj1RkfFJeiDy&*D(p10vgiZ*N@Jo!*;y7o162J(H1*QZqf1Y9&|i zqW08C)q}kTg*VA}m}^Jr`73I7!U^!bNci52)F#%m`aA*C<@TN&cb)P)xAUsr(1X9d z`a9jDZ>lhRog-fb$J7};)0bmC%a6+<Zn4j*6Z&wTsZUbVF2q9qJok)!({!Piue{e& zd(Jf?<sq39<w(=(pTDeQ==IO7kRUZgZ#n4^i0pONx)LxVx7mk41c<it%ndy8rb5}j zj?CAjH?g~E+9rA0E0<xT56M&EL%F$;?0rvNH*ZBo=uBVX{3>BNle<52<!&$ctu@z( z*~$Iw^5Kt@k!{b$ydK}c58d`Cr1C9m5jK0=)bYluc+Z7Me2|teNoQm-^7Y{G=^@+^ zY2hE{5F||hEo^k%S#{vFMnBgMAWZL{W4$1<_w2t(5SGr<6<~*pXJwyA=40hT#iy6; z(0OXiC8(?tYV-AsY<)uktMiFz5kGxUngKBzWbkL6@%T`ofjsHYtJRX4e)Nj9Az#aK zW|ffA581;dS*Kw~97}cSd}nkPhfe(=<!)J;ik<1+S>C9xHn8O$5tC{3s@JfHImW7d zwq2rRu3}%!F{Rr*zOHz1>MJkTTmkFpaq75|g;f0A*`12Yg(P%g_BwWrhrqckAbMkU z>4fa@sWFm8QAExv=aW&e`0LfR8grXMM?H`4o5X6zbT9P}39`kk!kS%gd&B~Ta95?Y z0?DghZ!vZ=TGTtPF*zR$&%{@*>@0(ZBWDb*mTm52`(<1z2cIfAyEF>R6fs}Xi1>r4 z5velBJa1Eehr}qH^<)zxkxT|pV#$SVmdp_P4l`UahFY&0^O~B$AE0c6sKRfLvs9I+ z7@Zd|*oJ1LM(_BKf|J+Bd4)r^#}YK^cQ3J2(I!9|RIjdP=2tbu{+{xJZKHH+tuJZD z0wu_=;>f3Rxy-M~I}N#Krxv|0Qm0W{%7PQSl~dqICEFRP>3CAV8B$Ai2d49UYE8UN zTU?gwVsTm}ccb{9)+ywW_70EQyiqmh4_eGaLrKNIrs?7rV)n$PCLmSar&X?4*$70{ zr?99f{%w;nrBrk#t8)tH%_?%*E7@r3R3Q}Cv>9x9jjA0-VJxXeF={!6CExthDIUI{ z#Ail<#1ZAnodBM}GZMx7rkFqiCMm;cNyUw$z?%(0QlHF8I2)Eqtyd@PL6cIo0>V`I zbY8bhsnG`Rzpm6Oi8IWEv&>6K$$3Z2ml4MEX9cVxj5m}Y>>01B%4Op$g^k32IZDE! z0<7`wt^Cu<u9&gu3oy6eepQF40KV#dDrlVPmQIhv87_1nB4vN2qfRviWzS+O9dv0h zeX@hJ$*Iz>;LjI6IhAJ5>KVK*CBDD+sxFIk7x#)%RiNbrne#8KfA9nUsQQU}7&SPm z*i2X~K=5KNA1C8u-f1zrWONEk2<gSo?EK>6zsP&Fw*^-htS#O5mz=M@-GAww>3+br zzl-_SJG(QMU?Mw}osgjD(*2=#``2c`-Q=ndq>9rL=ejXeU0?4*P<+I@sW03o%*}01 z@Ll7NZAA6-&F6grVs~mqmun45(@UABIjbV`9zHiyr)w`<?!Pu&ljuo*nrWa$MK(%o zODwX()t@QOVZ97Yknx0{@&Yxm7{3^5|EvQJzqA(Il4IUnk5^ZD^&DO0RLUMkXPSLQ zBBNgaa;0q6X%_PgGjkJYYffHzg3o6qw8Zj<xON-W^1i^%VQjCn;k!BI6OENyJ&!dC z?kjitNBsHA7~5_w(w7g(PIcc~7wi`@xT&ega(vFmkOC;a2XTu9iBE7JzswbTJuTJw z@Wrk+Z?gFq3(G;O=x=~9m~l+!ycHc!+V9vOvKE?^u#6^P2y;oIv+!$~Cn6C==_KjM z8ebirWeyTN$#4(Hxim1x_ZLV~Z?*{%{n9Vv-97Q<6g61hD!xcJt}|n(UMi8@<&m3G zyomJt#YkGMf-{`zG%(MD>aS#fp_F63hohV{=YBvoXuj_-tdnlOQtWuFz!-^x<tc26 ztBBYWA5`UH(PS-Eg3VJkF+yx!>Ca`u3vfhj@K}4<SSaM4H#m7M8MGmhWunQXG$zEp z4aJZ=<83IAm4!M-jN_AGPOjwN5r3bIwvJeRu1*feZtsn;uOshSI6Z*%pR%xT{>}7q z3P+U3`aF6KoO<v4kUKL}jMTvaPCnfa+^lXLLg`RgayVKf%(Dh1w%{67{v2W>RJ3yb zm*;*d*-h^ITaNw04s99v%`o2K^t_%^$>1ft_=k^L=EdivhT<Fxn~E$CZp_8oT|rr! zI^$*=B$(p1qSBp;|8TWy<cO<WzPJXlHj2q+c?6V3{~B{JH9{b5Na*XL(v7&3mpoWu zRO0V#Bd(*0G9#HWUP2|tSnHhK>Z0vKj>Z>^o8lG%n^@<&Z_&nCG54hY6fhT=TS+mF zvR2fw{nr&}at5?{Xz_EbOnwaEdfy_?S?xAOg0nxx1C4#&H)d#`eA&<`n&(mNlGKuo zRD9L-nbgAtiEDjO5?5r`7}9-+cPUWr(W80UDzZ6olquBEt5yATC)v@A0&+DJTjUhu z5xb!l>U^%$oAYYX;F*J+B>Ba+8F_vxAsv2wFE)8o6|6W>Pigy@n^`Xe*fY<ZGL|Z_ z*NZ>C)=HQY#uHX3|7D0j_|-SoL@~%8joIjC4M4_nE01Qlk%YuHo>aSfpnKwpzk6BR z{PPSZU0(L+mtNF0k|K<ZK;9Ni5pYQ3XrsE+lXkZ+>fgo`F~|I^uTl?)mqIjd59 zdPr__H!ftSf5quWRXd)~7}dseQ=IyoyGq3vFV_C-XoypNLh+XKD&>(IA=&u+Skosj z_=QJE_kOid(xA4_r$M{a*f8*h<qrddOnlMHCkOiv;?4wlUpm+85@i}Bk?51KU&DQQ z(UvPZL04dL37M01Io(-_A6=pl^I)HwQ|Aj$$r-}T;z&_?eyMh&D*O&}aa+O7fz9WP z4TA^iV)pJ7J%KK7{2ifi`<v|XQG!E{dtI$+8^kTN*-0AC{0FI~9WR+!zPysaZvMhG zn<J8Khu@1P4_xYFSDy(=oO`D`#&uZqzP#%<?ndX28%u`#$2RB~#7R`gCC<QE2-SRe zc7euw>-_B9TvSZg8D?v*)~BRr1}_Jrjut9KBO5I5ZXJ&|jmIX3tL4;7-8G8;>mTj? zwYv!Q!$Okus7^dZ<Q1az<Nk6$Y`e9sl=XF;@n}QcuQ}-Ou(zVdKlJf&9ntSc<^7Uc z8w2tppV^LWJE<FmrUz$*TmD^54|;gnecmMEEO8gM`0+hojcd&h;SXU|=kdq05jjdn zvn(<EQ1yoq<yg>{U=1C6r|%WxtS%ED7~@l<^=<RBB<fs1tbJ09f|mQyRH06?@OI^L zw%%v{wk(HROKs)1zFjT<`}VhZy*qrfTvgR0Aj%)nZYnqJ{Nun+eHU{W2xmNh9D&f5 zgjavD<b54mbD@7<XZ6Zt8?xz#md^*HDwk*q5u7EnMaJAjLXk>fv8<bt!HCeYpYWQ` z!uMq$q)-3gU>}p(U9Ex5EU8SBR*8*4WL5(VWd$z2$IOy}J@3u+iOf|X>*|68xvzhh z+}zceKtt~Bvu*5$N$jkAmojU#zU{@S@Ewq!!L>FrOJqeff)8T`px4J?HE{6Np{b0_ z&)WDu8KH=dQRYW*u%|wY0)9s+eJ5sM+h~ULcO#VRODos69WG7+ahF>W8HcIIcx&OG z*ZWA90uhXv1es6-)`~RyU5ns{+Rnr-XQ8qhE>ubFa#Xn_W}*%l8O*yGD2U(K!PX@f z#aE3Ku4WoDS7wK32wr$bo{$K6n~t$D$HBi#4JB`DWMXWxzBl_XB5Qbr>&JHkN$+Ct zL+|ROmJOgVRBy!(h1O6eK8sK-JWHw9X6TH>mK-h*b8Bb@*{t-i+5aI5`e$J0^9cM? zjlnb*1@kD|bS3Lc8Y}mgHqmcCMSogzy_8X}x|g{ze0*L40YK|jGnxIqAW<prmFFOw z_@SE>42^rEewVJ$z^BD{zsFR$kOaPqYyIR?q$CA>7l&sNH=fH|&84KVi^-XM<l5kG z5*K)%C7_?h(}XXrH!qF3hUl>lB=g`!*9>;PiAV2nhd1#vjD1e&TO0|PAKYH&p|>O{ z?Fa}`yJ|k2W)~OnmgQIf%D&|H%1-IbecGAoA1MxsqLbf`cF)N#g~`8amnS_7tY&Zv z>l?7HF(bnVV-o8?qdVeqGQsPLZCkRu4WD7gRj1{ZTW_{Vg%J5P!vGQ(rILeq5DFr# zqdE!s5OJ0FNEQ1paXv<J5<}<)uq19;BJdn8gdor~A`!vU@ty5VI#os8_PokNyjQd8 zpK;b)9;jgkZtQAbQH~6fv@Y#T=WcJ4c=r=)lCGkbd%kIQ;r2S;M)LWF-0-e2M9vRn z!4IUD0!vA*7PAj$r?tofGg0PA`8gGxrEr~BDxO*Q8QMPwl&`CJbTwQQn7g){a*mVI z6&im7zP=Jg4j5>@NE1i#R9%f8y|Flp_PQ^Dn3vLO8|M&5NQ8?^krogQ13VrNFX}$T z6MjiOtz{Oq`J(N^4;#8}7f$Z@F22Wc+r-rKD2z3IS4#2+lD*2M=o*%mwL$r{d<1aT zU=#{dlum8vGecw**PF%X^@Lkw&&><gT1)AOV}1^taTgbE%6vB4uG8IN`ee_vUsXM; zL#B##PXJ{Tf;87@C*k(D!lG8q_a7pc_a0PboA6MQoanb1%5ATinbepJV#H%|z9ZR` zX9ea6GgIf>@2w+pjX-ccQq>`2Fciy&*Ikq<Wf&Tr4pT&+)FN|F8s{1|GZG<+xG*wH z2$^NwDo!aA<u)xZVEuwiVndiZSrDceUd?T0oK$0jGw38qm~@7E1RjfY%1rQZl<x(O zSj`*`nmnABXh(>xDw)lNbJt*DqF7iFnN6k=OYr8d2V5WX!|OZUo_B8D=2JWvlMwB| z9mpz9wIe$&e_!pi=Wdp;_;nG~$-{%MDu}=enU4Z9_m3j!Zs6kGCW!{Hvbzszcvxax zH5#d=PV(`$`uojm1z#vMg{EA=@ejQ^XvG*Wq4(sZUfJRKP+es_Vj;iezD~*uaq?xK zGh`+j#_>6Z$9I*4Dx9U72S=!k<oPmm@O|IcwH_`Y$={JjJHD5$YQKTIgn#p#S^7f2 zai5^$TMu|uFL5KV0I+(c|KJMuDrju~Vm$yN4V({RqJt(1F18*7@2_%)F@^m03jB5u z^39hgd0t*MQx8d?xUCwu`xflUSr}iwh)Q9Rvk4aX9Cgr<Qbfew*>~rmbaB`*sqOQ< zZjcd=@IKY)oyspp*-_XrbcNUP%<r*;Vvn^t@F7D?#rLtsc)eJ@K7j|4jwf@64n8DO zQ<cqi0;~q9W5aW`CM`5v*U;A5o#^X-9$Wg;VP-)}RE#wO$r^^t$dYEUO#doE{Pu2Q z(&i<gnU2xL#j=Bo({jB-k&MV!TTXZLn1_^N48?@G%{grf71#%yPf2=wmZR@DEHjY7 z4XX-(7-;^0-2VbJ^-`*a48RY`{G^KDpI|swG$2rfnt#-Mu*$7)NYZf{Jj%YfY=96P zO7I7Qw7jd$3MEoeY^?!&HReXfpZkGJzG=@dDpI0i_byH+T<;q3N+@u@O}>s2bA8?U zHLp<p!T{EA4$qWNa>pyyK9EXhla8&5l&&c`?kIUT$s-K4W*v&rRam1{k<|Dog2tQy zWn-<#7g+H%12;Nnng3<om%iZ(@^1Caulae!>u!Kh?mwzFSlV2|R+F{*-CVG?GoJ~~ zVOZK%*bAqH#!#mvMvaRfQcACX==fSJH>>lS;Q8tZ#Nsu+zpDm;&jWH1DWGuCi_0%D z8bPdGGWGN;XNBTevD_o6Bv9a~IOYnr^B?jT9N5n51&;=DiwFTwY>4ZPVjVML&Vp3L zGExHaT!cgFDY1i1d2w-ovx3fQG)xj`lklL&ycs5m{zg(vJ5b8mg#?zxbynfc+*5wO zCz<`b3Qh_=@2R7OvlW>An~sZB`<4?59quFStBiz0clVKOoGhe8GM8{AXEZ%e_nZ<0 zd@CkVGd>av__M&ZpyXBLU@?mWp0lqQgBQSMS-VCc!6Y&@D2F)b^hC9eGe?%wDnxHe z2wTI^&$tP&%>re`8zpcbK4re*d9tSM?o^bCYZ#ri9mN`Irx{;S-sD0gRy2yW!n(j> zcwE!t*D<8fit;-Ew1k{uD0cU<SIfO&PJzo3_VfL^!cd3(ivme3K|S2_NY)VIrN5nx z<65p{dUJP)a;dRJ8Inr`#6<xtuTA>T{FME89YOH+4M9GrME-+3I%9oGY+2QXyCXRU z362BOieEK>g$kPRY*F0>Ocfz-t9ZF8I?qPKR7p%lgD-#)+4w;dM8=;h?5iCKrw1h! zrG9oLNe+2FCzf-Av!VJ9FpI$Ryh(~a0oMwWbOu-*j!d_&?CueshGbmxNB=CHk}x`C z7_hq-K!=5vBwMDaPfi#?iNCP~v6BVqte-c7Oyi6`o2Dt;GxoWDfz57;_!LA)u>54a zLCUqV>8N|QQC9jq^CvzfWF%zSE)WyMx7};z@B%$Q^Nf#J@$`+v!#{pnHxZb=;8s|B zZsdi?-~Mi1{QHk5>~17Mhb@!dq}rSgy7WqF4~S!01%$m|d34b10hzhNwPE0K@F|cm z5+<+;fPuJtFUnb=M?WZ!`%~DsgbKrtNs~_+%~E%!F&mtHqrC!;C)WR(dH_9~KAiR0 z?klA|qmWDQL%jT(%tVHzsM%IwUUk13W%OV6$>vGcJ}xPuK6xwO3K=bM^Lg&fV8J8m zLSiTx&rwh(WvtxVp!7@RP{6#4>NT3Jt3VGHqC9;)purHALPF~sR&v(!c#DgW=9)JL zY8Fy_rg%&5TWKxV+uVfk54l2_SxlZFO^zLvtdS(&-i&7BHkI}n$3XkwK^<|Hc}MN+ zT%7a*I*&TvuiYGVd?j`Tt>6uCb%9=g<IVA!=yw3E;6YiXFoi1Ki0(<)Vcf|-cbaB% z!74f7&l}LY)a5<e+mq4}v6eJJVBxrVx3pqzZj~ax#`?OJnY_9;?L1=UEPknlQy9tu z)XFR(%UtO!X4Bh{Cw+xovp)-8#n4%z8kw<oR{W7IE&!Y8Si*TDJY$2*8sg>aLf;_t z!*=$}tghgX0ca2qvBg1mj?gpq;ao9fc~OzA_O^SjX_=j}bgEQ_gv2G3pl;nT8c2PS zBB#xNNv;(BL?Vjb(fg4#1j&-JQOr!_^rK&SjXln|Yh`gPA4Pw%HimX`E33@g!-F`t z@36eX#$G-~wsx%Ec=!3M*6L&EW02R1@j7V!#J#bCW_UdUtpY}sGI^`yQ`p%5=qrO! zKwhZ~=4=oX_R2$&cF=Ij<U-UhX$ZUq`Ma22hzsH_!m{1=EJl->YdBcKna(j^!{gU@ z){&fSU$*nbd5`Fvv#XporYZ&NoXWLX^`d(3#`Kk|xGTyTL?n)D6Uk#~h=_TMthvY~ z?0pQ9MD$!N7Z&4cx#+Rzi5HLKLR?q?Mg0e=GB44{B#_dzXiAj>2^^;tIu<`$OC=#> zUHWL}E)82`Z_&T-jaQ5$R^rpOyOr!vTGvF(2{0A!I^DAp!+n}Eh#Ji>)cSF9D{8iq zkSeT`qS|0nL;^G-O%i-+0n59LHm77D&Q$QXU1Se^{Vd3n&kM5G*~pvjS=b|QQn3~H zSfJRBWRF$<G0$S3yZMh@qjk0aYCx;THdAfwVA2}=HpeT>C4r0Lu20i6AAWjXdLfp< zq1CZDS7UnT#d1fWU6RRDE&3rVd<5e8)8kmLGccc#>c60c&a$?9vtS6~4~@Z|C-zzf z^ZhsZ`%C=i#U@wJ!+Pcqx|k)UD6!q1=%QTNOwz?n-6u!;+i!YFBo{=3WzE3gvvQ^V zg(XfNyE9&Atvu|}SoA6MPkwOUpM%8^A<iUE{d^(+Q{fiH{N84BnriNeqPOekM9kAR zA!Y$-%Y@U&d+N^IvQMFx(v+u-E~WFNgu#$)?)a4S&-;(c^#<&hysbOzJBN%$?Q4_t zu_Q2(47T@<=Ar5;Tz{F*5ey}Jy4;5O71iWR`4#(>CHs{GwkLfMwYRb!7InLSs^qqn zX3eOht&p!2z+7slPqE-Fx@?bdv9kvvo}S?J0lUQU+QL)|lYm-8r+>h`l8}jjx+^K- zY)Ct+w$XYLWV6BR*6!n3gr~dxB9rHRQlyQW{qrxgx!|-gAe-AEf6LN_=qy>N&ypI{ zE}PR3^l)02J-8#=-DVgOYuBEHuy><0b{O8@vZ@9|I%{k}tBuxI?2WCnTdGxiuH@5W zTwmt-8JJvsdXynxjLISG&OZfnn}zl_Bx(&K$T!6s2Xurv5M7*Nhlo&pdz;fFvqGX- zc5hYIKBAXD+o!faU5hoq6aHW-Y*OJFNBGp8N16$u+8$L&ohuV*uN|9ZItb$znV*E1 zF?9H`kD=Wc*b2k#RcpHC%Wpn-pzWE?h<xF4^?BsW!sHXI5E}_BgS54>PM-gfES>;n z<xrx7*yQ3`49FT;SP)nwi_Ao7W$dGXi&7hb_7j|u8@5ShsHTuJe9=~`qzfojn;6td zC6ftB$L3zNp98><?I&d3z|Z=_Ofdi9?$4(<|1MTb7`FjnCU__vY+9;2k3OMPlWRD> z{iK7c1!sSY>aV5Rpo`8TfnBby?~(g2JTq?{yskSM7qt!g3%j-GLi#)I8;hy{jyS!j z*N<RUmOT7SN+$&6RM#5A^?)<LGgn>}M1A9SGUiw81Q5bYuY+C{i%NNk*&782V!@c$ z&~h*;62_uLBb{@m+@I%V04$65#Z8SokBY2#WGc9CVF*U(J*mP$&@APNas`Z!j!#8_ zhyf>(z38N@i=<VhTceG55U5o*@kHy(AwvhO2dJlS&sypc%E2OevdkNj@+{Ho2T!3R zN-5XUh}zuCjr*)e^*_1ao8IxQx8hHAu1U1`>7z%e#2sns15pvsxjiTu_3<N#{Z-Kt znOCiKm3oQuMB%VX>)?^83Bwp80fZ_WRwNrIzc@zX1;NN5uQ~A>5ffK1;0yYqL^jvG z=fDYL_Znz7kFx=C=8Ge6N{fgc!$F73@TLPlvu?8k>jhY6)udM5JY%_Pm2%i~f0OVM z+A-vGlT|Xqk}7_)ydEMvDOfz9`O#8PS`awu%8~}#5E0U7OlBtnudq=7>hd&;{*uQ` zDkJ7vULjWTwj1MYLOjZw*d(tSUySqE;Qiz#WzdB%OT_NtSzqbNo`O_3iSre4{TY<p z#{lli8^!{IQb__;3Pe$Q5!*Go!QFxBgk#=3sF$?b)s%(Ot%y3M3m*^+x`b6+W9;iN z3H-pNg>o|l5Y|l7yfl$DqJxeOP4OYQ92I8eSwx<c@aTrjhJrU_2u&HnCNg*Djf-Y~ zU9-Hlis^X0n1Hge#<tZsyB#4Qsudt;B%7RKm}+;Z8fXxL1tdSiuNy>&6_lo8bdAUm z2JoZGC}_+X*S#F?hQABOl9`0y%MDx;WYz%xLIjxRz)}ISnT<z??##84(x|2tR2h6h z&*)QmdI!%&!&MUd$|~D+>niAbsw4zzBJ#V79Qtkfk@L!*qWhg>r<O?BYq0ii--eBj zF<WV$`C;&SJm%82BUEX^TCOr5oP{dCX~1KBbMX<T|Euk61CLNjL_n6_7}}-y9TgSk z7O7S*rYNn4r4}@d<ZY2O8m`0sGDe=jtb_E0FQjPmlI<0bP39ASlUX%ZL1xG1G()-d z{xgt7PHZ9N8F&WIux)}x1AMF3Cz+6s0*v0Y>Dx%HuaAEm61z?J<jZ;e0LAFnwY9qJ zlEnUzm|VqXZzR*cM?U{G8PEMDrM)m&yxin?jl0&QsCXvGPm?rmSWoPw{+_*gUL`k> zn^aG@mDj%5rL|FTC?9NJlKlG5{zEZa5web<HHP^qI#fo|%>}`h%X@*jN%)!+0G@jP zNQMX+3WTCTzE+XrQDQl|!M#tz0At3_8vZzc{T*k(+6rA0rjNPD-){FxdO?jdd#@W4 z<~6vxrJm;zNs2vP)el&?NT{S=d$2#0)eIk-@N9WhRFicYv~uJ;lAZDLz={rFW2_rb zR~d`if_cbThzyX92&E1FOKCGVa~fz+@J@!guk$W1U5^@cbZcimX7C;BhV<{heS$W^ zS(vUV7)-sod{eYnjD!Ue-tXrJUvL5zMU$Nb+r0qN-g(KR;biJeaT7y)s3u8w>>|5J z?+1<;u}@R}7hsFK98z2BTAwk|O*Z5T=GC!30lt3M-Uif7=o{UMh{8Vwqt2e)DEMG8 z20m)$VLj1A-Kye$>DnE6B~`~<$X4@-*Rp?cgYA|-Z(Rc{7YZFa1NH%)kKTKIttC!A zQlo}K!fi<`(ghuL!QAg}8l5{EvQArFy94IRZN1;;iJB4WM&IIAw#Akcp4w|_;a&c0 zT<w1>-eqhGdK8?^{A)#=_~fSKbKQMC87dJnoQw{C7(^h|ZZV2)v;9!JU^a7hXbI7_ z0A$2RDnz~%GnIef%ZL6E@4s}PqnO_%VK1PXr21Dp=S8?_ozB6|gYj<;b1(H1{%db{ zMDGzlukEs`P`eEQM5U(eQD;)Mj8_Z5nl)hck&i8zRc0R)`d^*F3L*4A2bgInz>)=+ zda2}G<_Y<Hi=+Q?aso=d&5qTMr}TvgLnVg4k~JYxEXa@ty3e=18*7Pogw0_@oNn=v zAmIl#JemePTrBa;KhNGjxLg<IA-%`1c^%%(;uN?RZ;6Y@MG5Zz3g^!iRN;>TAMm%- zIo~HFtS2R$&+)fxiy7Os_9#?iVsXd~Gp$d8mt;YcE1-;&EO=^bVzLtKoHZ!C5G(*< zi=SmCSb_1g%u%Z_K@i)OuEf3T@FEhD78K3nduZluz-*kQ&QbyS$mgD5cs@b>Y_5Ow ztIn%6tJ=(706TEQARocyXfZwnKgx{~^!Daoi&~V5X}l(|1u=6kf+sjw$$YRZc?2J% zdcLaTDTuhmk8=nNH~k+&XX4NFAII_UW|+;fG51_E%zYP9Hs+dhu7nCvNaZG~&0KSz zmHR#;cdk^!Tu~vFTp<Zbl*+GT{rm~v@8kRVJiedT=lyy<f7ac)6&`x(ZU~7(_k4Ct zW?mQ%G7ylCZ>#fT6O7+Cp~PJSB?#o>@awU*t2fR>NflB#BZD&d*f11n_RpJ?!Vs(X zP}P^G)79VGLXNUwP4?aV_*#Ol@G5&KCn%qakk*Kl1q6Jgv*PTLXEi`z{YX?fd;bL% z6ztCl%?5`mfLf8}(@c%@e1O9fuw<xGIfD+`E`E=VT0FSMWkG>OzE7@kWQXTwHbKMq zE~UULj9f1vhYr%Jq%S*r(Tw(kAIzSPIf&ubwEmLBFaIH|r7jh=>ZzTCP>)RQ#t2Ob zT{%CUDgEa9xF5;9UQbBVv_TJcweB)}8s{{Qa7(Z(O$-q33JY8Hv`a?h91B1N$LLyS z)Mj&v0r_HhE{ggL?uNeXUB>AFZ4C!1z}^Z>k7|>G0M04z*nL7_q*(XtZMX~v*fNXL zD=Q=^3r7HlCV^1dP$?k0@j8fm3y~n5<x52vmuHK%<xXK?6)QHRR)B+L5AbFk1DnGt zvWh^$K?}?%E(@ucDd11tiMg;#Ja4j-ad=)CFAAA%bi$(K=L1yQF@9@2ZA>!{s%ag# z72JO(HKy~n^K|Cpd?drK6y9c;e;tuNLle|=v@Sp}KO#n5T|)D6`32MK{NjaT?F6F` z!t9Bkwov*#s3lkAP+p$-?ckdQG8EDLxL!=UajMXEMRst(t5`3Q>4MOo1y$vRmC5{t z6zMFt6-0RusPU*XmBqzN&JI;5;v^J>90z^TzuVJW^k^%;9YpmBO->%oQ5jc_Zgnqa zi><_!*j1DXiIl79m5a6o$eu>#jNBrU^Y+6-uJ|T$wpl_8ku3Ma2>7Z6Ovc~M?e>Et z{A7KK(XX4=6Oat(9e{c(_QG9gg^>V-6ff9jne{eia04N1T3<Cq`VK`Q=F3_fuCxED z_!3(|ZQzPOBbcb)P!x?aU$3o2x)~NAK>n5N*RycJ9Hm<bQT<54R`!T;s4s#7)-U7^ zt_q3F<{Y?(Xw4SYG&SlydBEWYDF<RSsBy=Op*`0o`kIu8K=d%=O=SaqlM-JuR>Bio zdtn~o(O%B$rLvEr$%3F72dJ}!h>i6W1;VW*xB4wux<#DQ?)AFobmXNE%@yGkPEF6i z(XuVkGzog@WMqv4v~KQh!<?S&f?`Hk+s$aj7S2_c?e+17ZE^$cKTPAX`vQ$^$B~sU zg41^A5pqhA3Sxx_PcSZ<0tz(;^LlZ1x>a4#OA7s12oG*VWK~tQHloUrXOwKp*Dg9B z4A`lF^D!rjr%{vluB9oSbO4+vgjl`n_ql^31v?59Tx$eg#*y}Ggvsnjg5aAeG(8!$ zji)qTFWdJ&j;aW0$<YV~&a#Nv93-kGa)>%e_F3IVtR6l%_FpW;X0BXxnl$}}#J_-0 zNGdT|t>@9aDZ1+E*w^-&+$ILYpbgrb82}ePM+0fv_pJvv-Np=di4boGizabqS0d~i zMKz&c%{h2u*~QNE!N?rox9mJ^eW7<7t61gW&^J}0$Uxp`WF=Lf+w+cEob1jfkX`^# zHKIV>O&q7WC{(=a5zdTv&r!kvRShi<6<70b^O4oGo=*wBS%g|n7V!Cis_*tpBO$ff zf#&X7d}uBSr>nh*Qt@@L)bl)@j~GHFG#=I)Uq?nS)Wyy}s!TvSb{5>9tz#qwyuU6G zJ|5>#h;$1tEBP%@L*?|OLd>WTFDmCY?m;AeFp?6~z)gn91rEZ3p-EJz8aGF511NH3 zQ1{QE!VaP)ixceuF$XxJs6&>)T-JD|_1<yEDF7y&8(`w=RLjZl!XC21bPnP?R)wgv zXP%jaoO5DlXam!-eXlf`EH~>Bvtp#<9>5qn&g0qa;Lc8B05`q?@VmyQX{MAZ=Mc&_ zV7LgOH`WD?u)1c6bhICFn;gxqg79P=FRp^@xRV{I$Mbq2&aXAk+;Dml3X~2*<{Fz# zC#9GjfbKE&j3!QN#5j+}xRJ{k(c{6D%cF$6QQ^FZWhZuzi^ON-3CAYR`-ZUF)RC)0 z0Aeg90WC>I7*v@w>DP5v79ubwC|R{fAL9xB6EKiK`7v315-$?;Hn34BIlI3Rn^=Xs ztx*;o$rTuX9G+#CbeB5je3lBlpnCS|nz7G_i(LKK0|N!?&YAG7jGZ4i5}{6E<fquL zO#KolL&kM$5LoO9zO@>V0TjXAU-$`_!xQ5E<n$IwbhQk$QI=!~+gPVu2Ry9Kds*+! z)?HP|gjP7Sc^-`wy&TGm=%69n*Kunx{5(b7M|xrZ)BzM3c76(^h0aGKI55SCJn5mx zDMXU=P*geMNI&XmGi&`BaUTDQ`X9T+SyV(0))`N$#CEIun!mJgs|w<hi5z(E<-n~~ z(HNFj5!Taq;4I94lad@KTxlO*8w&)c)&f~m<PVRQ*-5by`q94yGq<oZZ^~~*xNx+c zJIS2XAghIDzkaOwhJrX6vqz@gOh?7O!S}wQ-t^;5w7#eW>vYzf*mwYxqwnzmMZK08 zhOlauQe>NZ`%E#id@n1+9D<Sog?6*^X17l-B3hHHI?fbPZbv-eB{WO(Xb!VOv$%@` z!h&|2WG|Rqw9*)@!-(Wvy07s)ApDWrcU+>nZi!{vgZh24oxi`{(ow-9Q1GnR^yW+6 znAZajr()TfIFW8;DTu!Y4t!RO*}m4#smli!n(ynpt)k93vM-5b_drOGjeZCg|9J@` zaG|qa#h!t9P)@=MTW4+l&cX&(C2U{0JVNBHfN;$qNh)+Z9m~Mg9az1FdA+76!_2wb zaTT1V9P0$Nbs4jTv$59K(jWU1dbonQ*0;Tai}bjHxPq^^eupm1U3N=cnhzN`VOeX= zN;E@~@MnC3{W3p4es~x4!5hdlHEOt6Qto8UL-^oNnU{JtV1M9fr*(S;8a)vm7It4% zyf!^v?(BWh)k%fuzJ?eiOg}P_TIin-Ri8j;!a?C<h%wd3;}07jExfb?twgSim#Jz0 zR|j!ms6x6u_N^~A+Fo*IK<0Er<{QHn7c`wDNBl}wMA(~K^-vVm@cT&u_qx-z-;&=R z*4k-OP_n<2J0FMG-$mwh&0wFE|2$E*T$|qJi1aG_1R%Oow)Hq?Hu{UhLGB;Ji;yaJ zS2fyJ)tX;%SIovXticALa-|4`=ex0@9NZw-kBl`51d|wRM{50$8!_B_)tqI?a-)?_ z<J$r@m)?EMuwGj3I^U*$Q!v4HS9}xoVg4LN(CT^ZW0~EuHzq!3=IpgiL5$-Gf|p+; zS-;<m&|wJ*TteNxxdGho5&ymwy3B}rwr@x1(QPpo)DzUa=C;GRsgaom=(O?%Z%zfa z%f>zn`3W*2cML5(>uFpJsp~iy$AISu(VBE;wZ^XqJrdBmXwc5--}1v>o&9@pn+Rx` zvfyq$@EcgQoF97pnVgLJbkhBpdbwznz~)mI=HpB2x8Ctq><DXGS0vR+JeBi&Qg&Yd zQ2ZpL{pU|k+wSXMVxVvUdDGqL`ID8apA(FJReeX5mhEzRv1@rils#Zx(yyp2#a`(C zE>-jkm*$sPu2)>aoL(!xy{HhaKkQHJ{<wBzBFv?S&_SGWmRwPcFJ`Sjlf7NJk4FB> zA#k(XR^@-^Te>Y<|GwiZa9~GE=^EHOpm_c{@MR+1YdJrkpYZ5P5FnX@_J~J(U-R|m zyS_d#kydOP#>sb0e7N^1J#~HIN)D_nEy@0N%V|5|UxKOuYO|nRb(fhaAolmq{SQNt zU(OLC^C&tF17GY>vE>F}qHGuarSiQR4i6kqOLg<3CK0EhPlkmI7{``xq*(B!D-oWx zCGg|N?=9zhXJW`|Y{9Cv_2rw7Yb?+f)Wb~^&&T3dX7@15+wGM5Fh=>;XFbV6Bw9n7 zPyq1Yqz<^+2v^0*3n3{rcFxG~>P*eVp=1V4tW>|W()l%X5#K6Jo-!{q7(O*5cIphM z80XSSij|Xw)qyz}@T^rs-I3g8bNroTRMt>^Q1m80>z6xN$wEf%)6*oJ1Fc~wV=)UO z_4lPR)lw!0NukQg!a~ZeWcsk<v3ERE<kJ&T&rH*O_^%Gb@A6-kUc!Kbq|ZprhnG9Z z+zToP_1)M!0T&1zvxnFH370u7119#z3bk%J*~oYc0bt_GM)y2hcIj89ZR}L8+S-JD zEzUCsbPUHG10kwW7X}YA=K6N8%3N3p@nG`Ur^$*J6dgE^uIjPWa^1CloDDSZ+=9xn zB!_Yyy%ZLt_5K+9$?7nl9IMCHD15D_cOR)VwORip(7<epBi=KHoh()@cpW?VD9ss& zAYOr$$GEsSE7%Cx7^R4P=9?#+SWB;3wRO@O$S6t)ESFH&**yoH5TC%*3V-cTP3ipX z=L*m$4=e@}h!<i!pZ0je0)XYuEu*U}KWcYuu{^I2u=#k?>4Ew~VIcc<#Gl|X*(CnF z6G~6wa#9U|Z}3zdMeVc<5pu50ans+G)<iXoz@+TK;ulOQgf~xfW$(y;@wLeVL%kpM z^KazJO}^U>R(I!fKcyNQSbQW$UHy$Ackzl-DjiKb$F6s)&Rm%HzM>si4$MjLo~~_u z^;?F857?cRc~qN;`w^QcC3g-0`xy@2KY7Pti78`@I+JRTJuO5A>eNC-h9sU}ePcy> zC=~LzrU`dOSoF?sm5`SEhAVzHG9C}?JD{5J_T1%B7NSJD=Cp^WwgN6=Smy%Bt{f{s z!Jvi)%rv3M9FSiBe>{IUJe9}U$#f=iShAX-zDYDUxLZF6hLr<Koq>GL<;KsdHQ4b% z=Kk-to&UpObiPQ`2T6!7AY>f67^dUb0R);z9VuU(;sYf6p^M9d1dvMr0aXb_t6z8! zd+<qy3IPyB;LcrBAE&o*P?_U%lx)HDV8!Qgo<!(z25YKDkBXazq?+_V%&MuZV}x|H zl)sr%?NNvOVeXwYjasdeaZK>cOriaZyvCy~Ewe0vBTY{Y#)2z7pE%EUm%kPN+E%vL zy=DeyY@Q0V=U9`$ruiSU0@R3?>I}q*LSv{_&tSc@U&6s--KcKp$}P&>0iFj2GtXU2 z<8P&<tt+NhsSzAnFbMr~QwB6MjR+qPn^k$y^xnMtHs3H!q;->B-xuUR*QCGydRCvm z)kDY|;boGE>?CdIs0|!=<3W<EE$5^kbF9gE$dt^tPr#a8x=7Lkd^kL*oE8dL$0IIh zy+*>x8-u~mznyX94Wp13oQ$gv`=I4c$!5pQ#xp*-6`A$<7m+PFF2h;V?;KY25lvCg z^ir+1M0LN8wSa*J+}rtY_uMM)kJy-^xa5eqag-0uiqzj55VU8e^nNAX12xGL@D)bA zE$`Bn`q@@lckd}Zir2b5jlRk7naEgiu<8pW-RX>n<Q4N;QwBS&&1+worb3kp5}wLl zF#lm)i{1nramvI*=UKP|@m5{?$Jg}UIl+q8m@0lM|5tzYrS@<c)J^DL<|Smm#2dZ2 zud-o0a~|`ePUrHq_~+N7k?#yN-0NdMN8@HrCoNh5*t4)d^<w(zkFxag?N={$?e%oM ze*NIL?ghDfo|G&j*E)WA8$1Z+2|z^30SJyBdXMq4Oo`<GT!7Uak$t@Q<le<rUVmks zq#iw!wU7ACl(997KjPtM_O6_{Ou|~dGC$?uQ-T{PpM4s`5O<Hil7?PCqpsa8bhAVD zpi%AC;p-B|1`)mZg&^Wy?Rth`!4t>Yc9K;rUE{_8jAE`~jMU+@cD3!2?VJTJs#l)j z35rmx#0iMlha_oDbCLcUY7%GkAJ(@;$Xsa(kr#IONcVA+Wp@PxE~1ex<Y)cx>&+&# zcz2?C>XVPeWS6NbDt7Dz=DM$XBmF;Bn-kcUnMZZi>Xq}x#*k}P!EbyI98TZ-!7VrU z>wXLGJOy<^(i8M>L$^h-{q@0}AIIa_bjG!0VxM_>=@pFOS^mv{zT}TH^CqYS%ez3% zNhfbUK0QXP;M7t0iU%#p>j(lBoMq?s`F<tvlhw7IJ*&*7fX#O%i<ohzqZGbEEyE)9 zBy4&1mzMn%KNr_YR5FLOskiF$wW-V5*9gCk0>`*;A{Ld4)YWKaL)u`Km-~e^Ysvu6 z<JVg*7hCNmKB@%CIX-q?7vZ`-uU)5qdv_&P>jT<4D`9NA6VjLJ+I6RT;)5?~Uq9~# zmvw#|znJ(HrRKHk54r{xeg&u%qa)Xs?e!T?o+ah9lpapw_7CzD)A^mMl0Zq4!~HU1 z6zuFR_@k;jGo7fvxwQnyEse+v^dQ45d6ToRB@|B>v#uSfe$7a-k`aEdP2;vR-5Wd$ z&%_65?Z?hkONW5^qCcAdNH((Y;?lYg245`%I8-W9oPzOS?jT3b9T~>kw?j|su+z<$ zpKpe@E+s5YcsSKAZ4aN3Cmp??6`$KLC>-zJ`_4XqIA|2>rKWbvxi?-Ys3KO%nsP0` zmMx^Z^PAOPJRa8Ns*#Q4^!sDRlUtzmYW0H8pVB(YU$O~T@h6Xeh7|gXXF40xy)`rb zDOCa;8TJOMUVSXQ>_}+m#wVzg?1LIt-QPofMi05=fMP;NU&|+YYHFS9OXWdrUCJAS z6QA9c(xGLk(#74f1OMr(Q^(bC6}owcLIbg7i@B^Pv8|<ZITE!&sjyJ`ph>cexZbd1 zKL<J?hD&q$P-w-m5HXjAK=9hr2L)5mc-SCp(Rk$$a<`IphXiIj0a&x$BOS(D9mXlz z)7XO^f&5zYk})*|*~beybr@cXh}Hc#6S+aJVqEOK51~-~wYD0)EQ8KFC-V#dy<|hQ za{A%pD_p&)W6B8+xqs5Ml3c5Q=04snGRo^wR^L{`=|9;Oxs65f^d}oGA9j0-@u}Sy zR)w&S&H%g`G<9g41|!aJ?8zvsLj%N^!1O)S>T@OaX_4`NHtXu(187Pb9qJ?xU_^Z! z-~kY+%S~lBl?&GNMHMXo9v!h%hL9wylin&|i1fe-Lz=^8A9LUbPIf@Mm4$_?rEXO{ z#8nLRT^~)FdsyRnJD8Xp`-`x*3B7?G9CC;01OW1`w1hy5#2aJNFHebf@+3RdE1!v< zLBy>92}oQze->JY(s#lYZ8`0Uk)MlG!~@_X45+<Dz8E(dFDgr-1-onD=Gm0ycync{ zC+7OL;e40d>Dd<srM-(x&>6ZZMr6IL@4tACgmwr1#2|yL;pDbh9i<egAwKMs<qc)e zx6GUTMpA#6%{q@i4e>eXWb~&P*81tkVry!%WV>W7`-&-A8n|5bDGWVGg%t|@$7YZU zjRz*1w7ekG468h7oR(q&%V?6+9)mE=!{<@Ok{fe|3<kBLRU?0;Pq_n{B<XHM4;jFP z&JN0`3^WpX%z}Y%ee<2C9jS;>de%dc_-8DJkm_XPYO;B(Tl15l<JZxKVQA=d7#$Os z!goNa+sbWQIaIRl=T~v%;s3=$-W+>|i`|MZ?x#KN+p*1!rgFGyoVB7A|AB?*q{{hG zA$kB<1GuYWmt$#r-`Jx5(DHN)-u>IN+SZfnJ~TF0vsAyvH56~Z{|G*YxIh)$fJ}%I z(#iU_tNvs+`oWU4#~Qt+;Gdv2DvGx8Sc=^a^rPq$dFuE$8ar)agn9dDV7lkR43veI zTidY}{oHYWhDG)4gO2u1mzqqb_Dp!{j8s149t|kTK&ZN5?=yh0@Eg#W>b`_}Yo%W6 zNe}3c+?*@iyyPJDY&1K%X&^TgzdB1engEn{wd25%`NEFyBLI(9om`3F?IK~y&Gqay z6j7v@nat$dHs<=-C-srgvTit>1RblPJ{(OW4~aul)9ClP3}<`p_HvuHMx)_#+=9>y zejE?~nC)0{HPsu&Aq|k_sHP?45o1wBPpa;f@yl$GimwbEB9tTOBqRtZ#`W&H4nJ&o zv1VZ#8>-GGcXUO_{Q0{`f<iP*uRmTvq~<h2mhD|q1*(!dpg+M>1ymMsQLn!BDLlPA zkoD@s^UKrhmJJd^_RPXY1Dn!8utIv!Y|>QbgUczMD!g3<uP4To{nDYvzh>zonvQ=@ zzxk!b(@IN~PSDz#AZyH(e4>k~cGTb@v&i(LFrIg6g1%xZ@j3Grh325s=Rz+pJ1m-1 zP!&}ynF+*-j{Z)+pRMO)(n3x?isf~P-(RygIBX&n!HidQ4T4`<8L<7@CfM{^uj7eM zo0B%pbIccHpqf!7RoMxJd{ujsMyFvdo(S-C<D6@IgmqrorvOvRZE=~E&joPl$Q7qC ze`S`BlMuVBk}QRNJqkFwzWD0FOKzPj0OAXLsO%QtmZ`UE^`(-ihHZE7LT)|l#?s?5 zA0Y_zjNxC0sQw`Xe(3#h`uq2%>6=4f*9BcLwfRAn=PQHZ_bz+MPF7Ykf1*lmsTh&{ z7YtxV_J60|q#MxIa!tTeE)cy+T}kf}J(MEv$G0=7J(O;c&BNw!_w}3T7u%+(8V(ze zTs5`;{ckzN+S=!50frB37$R`IgZ}vy|8xJzypw`1dAQaRMz);jNel3gE9ZaQ1b!x* z|7k<BNY7C|>T8^&Qf|=w-@dzbPxl0WbDQ`;0Xw;V%D5%{_Wt#k<hi&%C#m+b=nZ6p zi8giVCV|q?@T}nzU-muSU&v;=Uioadh10oiFMU?X(43D>)$j<Y?RFPi6id%SFyq?z zX=O$CXAEG4uAV?x80A`dXVJK9bM7{O!X1Z#+<Wmk0tt2&WwM2|5B6fDJpAa?gBH`| zWIbx$+8vV;<PW!}zfTrWFFZI!tG5agW_ifs9`sOZ41k43Fk|(3ef82A(WREH{QIq| zWa@Nm>l?>2@5vS?Vk882*Db@A)c88@)y|zVo@}foCSNaE1ftxMf=UG+r)4+Z|2*WO zVRjb7T9*l!n~kM^39m`@o5SEoP9Wwg+*7o+sN{<&4zA0*W6NX)n@j1rbQ^*Jf5LnC z+ZGBx5c8nf54)Ck(}r<Dnw&<Dai><jWgAR*+mJxN_lVvkM*sEfML3HmW5umwDCj+1 z@BKme$l@OI{PR=uHx_wL%?k(L`Eq6>sRv8wgD~}{!<@_WKR*O_ZFEkn>nKrgxCxF` zw;4J=(>hjQjZ6RC&Le|M=N^Ob^Rx4V6X=vXemOGeBPDh_*q5c{y_wI;&|NENh__<6 zlM0k#WwV`5Ui9HVmo#_k$HJ)~`6f<~M;A!tmYS8O>7C`j$`9Pc7|C9FS+sI9o)and zsX?Qm;Y<a&Z11Au5Q0m|E$GRWbO+VbS8j{HeMDy)_tRLK^qYBAv!X1J%x%Br9j#5_ zjrug6A$lrQ|6E4KC&m5glA&SsmEnX3P{?c!FAj{=p#3SDlQK<aotXvrG-$FGJF-(B zlBgY8iZu0}ICWg0`$(qOb^&`3071y=pF7gm0_Pm5qK#mA+-GSdb;kCJ$?rEBydQr^ z!#c*48c!^hdI9p~mdkVR$U&*Przp=-S1u&B@@RsoR>vl8-nqDT75F^GCWlZon>S#$ zr^!KIoib4SRq&8js@5D016cr^L6xIXSaMVqd)8GB&!?By7S5$&&$@rPq2<(ga`){l zRE+DhcW4V>e|5u!%4S(^WO3yu3H<6D&FdE3f`1mbMVo1@n4mwOiQ41L1Srn{MUp<E zXQZ|x@A7b;y93}sUkTzno>3D}kJ-;BgE~K(02>7~wrSRT)N3dh+D6h4{@qW{mW4|F z$F@@XLMAQ`tl{BYL90v-n9iz7ep;s_5)!VpeeG<@DTvfn32OUwAXP9yq5I6lE9mqc z1xD~9d2Wgnced~^sTR0O`E6~;IVGy7hrmbBE$*DzTkRnA9RIz=o6WybE20nblf};& zWWEZ*cjpW~@0G>V`ZJ&oA_rRgz<7XfUOB|&wZ3i~J@J*1MiIXb_=PMtz*;<2uh%S* ziBfqtc$CskS{v7A<N;Y~hmy}V&!#w;2V6{qE$!-|n&Z1145um8pJjdeKfU&Ru~eq; zJuDqq5YI&2(mi9!JFslFDtx-%{}*5G{py?qSR^Z*PB|v391rjxrpLzy1-;`oE=T=p z2tOOVgtz;-y0-<kpvgv4{r6MJT!x`-F6AK&@82J^Z}f3k&^Yh_Lo?El1`{J&S_JRo zT?|1}?>s134=C(!ET+%b*y_sHz0dhGf_wLwGng7_PSF36`I?*h_<o9v(fI}A$eW+1 zQulglHy7Fb01h1WOKLbf^*p<uO^VdzG3SdQu*MOI+2h61kN16F<bhV36SN@e!l}om zPLXxp{ARAp#mY2?R+>pBl$7;LYZV~j@aA>~_oeWu(iHZ-u7m#S9BZjB7K(uSXzl8; z`I9a`$Sn+qOEZd(ekl4yHG4h;MSKUPOR~}t(fU_b`GO<xQ!yYneSH1Taws!QZ9cr~ zTlRPVJ<b1&L_$tg`1qQ;#fV?h6r8r2>uWfNs<m_RG#b2I_Fex`4iT5Gb(nsIFEU8# zr!uGzoJ9FnOo?7H=V6pNq>xPcm^ZM@^=oN|YtZmvS?YtOl4q2xuFS;^N@{P}dyc>9 zGcOLU@P7!(`uM2d7XO9r#5HQvL37Xjcb`LjxMQ_wWKzt0`sJuKgvDbF`(x`A0qWUX zdO-<l|8@V%ITqy{RYWexQxPl1iy>C}J1NGC?NPYXaKWes4Ku^Ap!(QpCOt1BXliT# zT9YAfSGmaMDM#h3QqxB;_!(4=N|wECe;x!B3uuFYBR0MQ`A&2Y#^zp_qGNI8MKw#e zt=P#jkeCxm>FEH_$X;7+&B&ozk~v)^@vu!5DqvX%tDd=iQLqO&+-zNx$F)$#xlNHT znYsG`;5=?aD(D?u&nX~$u2j)*DMyW~ut^{0h9!R}fGk(4C>4HKd#D00-f0wWC}roo z*X}{>cnT^r685`j_)EdB#`$7%Vt*Jkeoc^9ot=C`|J%kSC)a5bd(TqYSk;9W%{Nc{ z++BXc*MA}AV0%PGq8RnS^QW(z)%Qt?@A(z}A69XZd}H^*RDYLo94t7q2mX}+Rvf64 zSinQ+%!8$Cx#@!|S2?FfXIWAupEq(GcqZc|Nw;0^qS&<k=`X`7<*58ge?bUm2cr*( zFHvk6iPYG)a++?*68a2pkS0yII?IIrOm()Ee-0-`j$p<m87Uni5m8N@aZ;ot;d||~ zDU-8BxEO1)X~J|e=0o<StNH?h*3OklDC^DODu>D*{oxCKW=`Xh7u}#(pPPz|S-BYd z0f^u&NxcMA%$lOdB_AG$g<!<|_oT|SV`4r9HqH(>!N_9<7%OWO7m0lWnY|SW@kqou zcvRNhYwDPBQ@*T|BSQ98(WFpwQTu}7)JEJ{+Fie^!QITLN=1zg2WwAUA)sb<+LCQT zNSDfg<DRY~5V6F`qQ+_SXk<yQj*Q%QG)b3d6j~+s<s>P{=;b<mYU`9GIe8Y{P3r-l zo=?^0IYE{i5fTI*EESkLvHjcaqV{z;c(e@*Unp+Fw>DR|j7af`Qq%$VI1eqy==Fe* z`<eF^zYbTn_T>Q2X{R|tlY4GBWK_-Tnm*NMlQ?Lq#38?tAUNsPASbMbCkU>xI4k9G zJqFLFbBWXOiqWgEyr398&jVjB4b5Oj;<XZKuqRjgY@G6K@o9elqX|tgX@MR3>aL8m z>4N;<Y$BKqg2#g?R%80vI0xz09pG|VL-!mTb_J+kcHRfTV5mJ6?BKbSjS73Yj$flx zmG*5ns<Y(0teXC*Hb_SA5O4y}KaiO5N+<I0PK<T*XX{&^PEAW%X~gz_9oHT({Py(8 z3B<&(<G=6L-0}P=ZwE_SJ)rmAJaj0JIH@7v`Kqey7O{c?(EKCs{vm`c#}x0Lm3#E^ z+7n5q&EWqc;~c#BYV6<PmdylmJJrK{0?z-1((?%8Ef!pX1*JgSNltH#II%_EQDCZw z$F1qc&b|or#VlbOu|lgCkV&l<Kvog%#fw%O^9Q)b7u6%wj4fhe4)z?coGTJ_ounNQ zcT7Yvn#mNB$66M*h>5(hW{N{GMo@jjfZrw9LIuSW&<-u#OCPzsz2FT8A&SY?FH!?M zE)ZF3alo-b&5RK1GSK^DqbJrhGoy*;Ioo>7zou^}@%)ipiHM_qOK(e4%ae?UZjBwB zt+dK4#>y!t>xZ1t$}L>PD%AYwu>GY3g6aW^ND70>sS-;sHWUGySw3ag!*fMBN(qX2 zPPngW-R%jpBhEmdo)6gJfBsEMBh}wp|Mh<UQxAFV23*SFu-)xv#kKMvkd3#4cG3Kz z{Benb$*VN&;x)8_{)GSY&`Rx+ZI4QUH(Spm2enJT7Au_m<o_bZ_G{7MqJq)ytrrxq zPB{fEQIB7+oQlKfRKU*SOvJaRk{s;H5G6QM<$&o_Z=EW!zjegp+tZmeoobAPqNNop zg_%*PQ=@cN(aL>$=I$U$4wtTIb2;E;(V9-3fodHga{FZ&ShwC-LWyjbGG2+%Z6KXh zaxB`Owc_7sa41o7ZVY(U*cVpox}<daA@BC97MgQO3_=dfFJ07n7k>_7eb<e`T|n7c z;XHr){1q;|@FQ6&aEJvu!W0?<WzC>*dQ8lnvE&SnQr|04B@E+ry8F%=`&|)0aF;h_ zi>rz6iQcGzP*7UgSc%w+(BTu3TG_uB-U}#?jBF@t<rZ1LlcjKueMPnBHU|2BH-3A< zA>(6u%gzV&)Z-I6wjo(}xi_?{L?2Q#OZPL!4SkO?x91@d&G`$~Vsahv!v{WtMaw!L zjo8G>!<V1mS$+E<#%$(X>^YsPt=@~+cfFI>M=n*Knb~AnU2rRjdu?0s&eAu=C0edP zQnz8KcWWnXzND=AQvI;=c4tH-Uj}rzG4}T+?qR`1(8ciG5%(nVIqA9VRx7bU3b2E| zA;hb8w9tL_=x)D%%+6UpNQtz0;gWlobMoQ<_YQxGul530>1`ss>)92*pDy#$6<r3W zZ+<?P)Ge^#5_fjZbN5o@>*bA$1M<Kh4rz$Yku~y=5x1B4{hqttj_t<^0?)O*=7Gh( ziK)C@Hf$Hn!2H=`JtMlM`|0N1YZP2EL}C^ZFKIZyb5n0kc6J3KdBEVhBJyKQsx8>9 zjL9#a#6<pkopiGU_{d@hPd$@>#K&;VC|d?UynoUzkd=CuV_`Y=tcus}F_Df<)1L!l zG3DQdn+Tf<$wS<ox8lt5v8WB9pO#l!KO1;zppI!o3hbd^`eQP@A)7@06O`D<{%=e7 ziEj+x8O@{S>t}gy_B5b`s8kU53IMe*h8&T8IdSDc=4D`?Bjj?e4hzUWkLSPI8Pt7J z8uX0-n{$%-@2QuzVoVg{Xj+I0#+HMuITvlAQ@xAt4^P~G^9O|T?5*uNp-5%)Zw9yg z-UW=gxDhwOlK6z=v&OKagMs0$l=QP|r&y4o=p+8e*JR{WsE1{jVY7A{)cGgNpod@X z%T69`L)VU^wMP=bpU=W`4GI6+@Nfn&UsKY>;#v_1V=Cmk!z~6aEhIXo2^`5_)FPhO zQ=-&$smn&1|K#AKM}mkvcX(R)^yh2=SG3JpFxvs#&FP#ieUf60V*H0KCaQoK5I~)a zxut*f2n@dE<mkzGrD?PD$@8`=R%8UQpl5n?lmdmFi$qoUNi&eV#IF@hDe1KHL_P<o zE%;D63uo2pnTzU_1}5Pi8nJVWiT^!<h_F0cxZ`nINGm8H5D|}Ktn#s#lD}4l@|go^ zBius5FpAa!{Gb@0C(-epp~<z<^_ObdN%(hLykmeWmk;4J^zN~Nuoa3UI+qp%Uvg-P zFJ701zP`;JShV^fTc({cJdnpi0cp-zFh{_+6T$8`yMkv*lhF*XV#z_kOs=(}Z)fr< z1dn<OZKaQZ5i;6BrX69UnjAS=r4S*^h$w~R;LtijYE8enllahr*w#9FsF8pRd+*0h z6})9kBf`Y_O=pS3#<rwPo_LiXNjA{axPC@g+gZmy#W=B-+z2cW!iS)S>G)el)H9aT z66a|eKp%q8hOs8?44(XP@f~;gI)Ks};Bm#mR~GQ~OOK})iIZm)g<i_%yK_FJ*#Es! zBs=G9+>Vj##i;b<3H(SZEn!McuGvwC)iS`l2cw6@=M37P3H7;|SIfq1N|SWBV}mA| zTcHVo=8n6Gh7l~tF<WA0CqjBHery)w!fy)b!TS&iQsGQF#``wNdGmw9Gp%FpkK-|K z-{b6MW3YJ4<2#Qv7c8_)5rGu<qX^wn$;aGjv5PQ345KY*y2Hm}iSfqV`R=?P=2)V1 z#}?HGEWwu_f1#bK$l_N_yvToZr3+N+F}==JTW)o|hFk32%8{0;-o6J)-B+YeLl{y! zmHa4nunyzEa%L;}1J1st(uOD@$pGt6!7ESyfCk$=5>P$kY#Q$=XDo?wQ&2X>ILh^- zUH*lzet9=WPALB{@)(+g{zx)RXHx-m+};zL#z;NpLl8#DM(q$cGipsi4NMh;LC9az zRauH3fE(}Zrp)`HjF6`rc8k7e?_{6svt0@*En+h5s5RF<FuIngXX!K(wT)xRv|d#o zA_GV&ged5(Q;cBoVp*HuT5N}^q@_>^h(t_Fk;ffzoM==2teUe8n2uNL5*5;1YwM&E z1bAgms&&<|6e9YeoTx!?)?j=rVa9{0V39G&)&v^jqjlg!)GU)<uK|C^9kh~vEqa8> zJ(7w2=o=_9hyW_l7l0`_$6`gd8zR#|>2HHR;3?Ldz)D3h>7#V|rLDIdE<`5EGxcJB zI+#il)TlyZhHs?s)i+5;VTP%Td{$Uc$ljJ+*ed!IzTp%js<NWtPCx;#87tNz9*6VW zS-OMGFA|?iFuS^7Ni&ya5YWt6D_f!z6NF|Aq?IydI|%}t44(2u@tyMyfyU#1@w}8H z4xSG9e8ec-c#Sx<-8Efgd5FKv8*jQDKs=O#uP}b0B-$&g@gYe^jEffILHq$o3;-cI z2c9aL;&f<7Bt6~(ycm<v8$oOt`P3@8(@_}T@@w1j$H2q~yg(-*z>J9185}+~h|XUS z^JtRw43woWwvB+q_87c)0(z37OhT&+4G#R}A<9Asykh|OA{87lDjU`$wW8GVh%kCf zMPY^5^nid^Ver)tpgl2#u3&UE2=NCHI|y_<jD51f;5lRgC`RnuDiJp|AO;yY!Vw~> zL74`oQruT~Ap>Fuv4d+6iRytj%Z!(OJH`DV)FFfYSghC>wvb6Fd{cSlvAlOyJAgYj zEXx3)b^yNeSTte>A4VH^?uY(E<;4%MOb4HUL1<}Hg*-H3g*vHAdrcx@5sfXpOodhu z0#FfS#%{tOPi{56(JbQDp^e@O+{{72y*}!}HbJWpIz7Pr(8qmU5iqRx_pme10+S29 zn#1F3ln9h$QL|`nC@9`G?ZKF(27!i~O6m9A=U{Bnr|P5qzMuPI=jSV~zeMCV0}wBz zRICysm_jG1g-=`Xf$I6ZA4t_>#PUfpYn2)Q<4X}gw{4KpIi|wBWpxkCN6UJ}#h?j$ zKi8ld0;}zc1NCAOuVv4vb<03pM@^%pAs7rUp}-9Xe#C=O@#`iIDup8QaGgrxY^=%r zJ<BY##7Yn`tM*bU#P`%iqMvd{tT<fc6P_yn);p>Hio00apsdeE*8sq81(AU6KK_m$ zvyBJ3T8Vn=180mc(r{&gn=paWXNB={S*`!h?%{BnQ{m#`Ux29rYNX-5d^3pDdBmpw zQY7Gcd6h+dE4Xh-1pDoZbEDA?V*|-TOFWQvOGYf_%L1H9a9|DyoLJ{ZYmw+QvCUxL zd0ciUNOTBjl}}jVRkX!}Su)}hWrqV@*K0kEHQ%wXch#O{7hdAN(N63c0NSbWPCtbw z-fD2--)v3M4u;sZ*=UtLyvN`cC7b*!WANWoMcd*jQBa#t*7H9SN{@H0nj7ws7Pq42 zr-=tw3(S~c?rpqun%gnFs<-($t&*CIZ!XQ(h@RJOz=%$TawPlrzkRnX^<==ash}XM zb7qJ^5x;;*;&D4>%6%rMCDRjqjc8bG=}AAKEoZmuVr+)-Akun$L$ZP>d&;Hp^0ZdV z!&uF0;z!lA376pM1ixB{Cbt~~djsP!sRj4jwS=s6eLgSV0Z7n4;eBdRa8CP1!qKm) zcPUX}Ol`Fn&k@0j2X<9SVZm6u)>J|(@y4FKR*|S3QS#?ITqMN4NL(f2LGQER$SEpG zcu69XDGitA)@hF{rZm2;0NKuk{A+8pyfNq~u-si5>?SP1C;bga9FW!8w~VJ*3Y>$_ zhDVNt{{s=MBAEe7>|#CP+=l~19h&kR&=flX=kp*fB3?kD+;XQKkx5e)l2AO}cG}9r zQq{KRR?ZqXUDt}J-u{-zlpYtcuRf`mJVu21f2HPYYjd_x*5c`BRZ_)sxIzRbLW-DW zmE^CLkXCFr-oDBeMePfla-L0BQk{r^Gvk-HaGou9^5f^|>?Y>Kpox2Ur_O<>)X<wh zx=fGRvdRgp?`;lg2iYOtNs;k#KDyjH4BoI1^Sj~x6L|M8?iN+!*4ldMg+*km%HGdE zaXo(4rOlMyn_w>Ui$v;1;sU#U9l@Kw6vY<tPiEg*cuB~dDBP$uW%HFfaSTokC&vGH zEV^#S-*o1hd-vyXnU`(uY!V(%0wgY<h3o7_Oo4K=i!}J+N5D(4(F0;n#J|to7vOC? zDu<S11hyG~kGlSNDaxGj^@7_KW7s|$EV<~2e@dCdTkPtQ^4lGDb}q~?tcIwA8^_`6 zcrkcz_BHWUa9i;ZJ}vsPc~gWsXW#2-YTjXepwtf%=nJWT+S2oy!KIG^VtdB2reD+~ zShj)FXRKSJpL!y_x`|;^hU%uZ-3i&~OV{imgDM^PKU@Eri9mjO&DB238{bIyZ@k-= zTq!C!mUQc8csx!8ehLmT%$anYgqRf(Z(7BJwtfWjNWu}dXV>+!Aw8Ve+|Qd6?X-)W zGL2;sU&S)RR@s-AzE{bei_Yo~O6G-l9UsVzg!FX)PcjF4YyX2s(rmOB#Q7i@(VX@# zVi5Hn;+;KIc>Hbk{f=Qbw^8b+h$h(}iXl4R-MNe@r|mAl9FU!jy;vkZ$VZguCrmsc zB*7adCJe_;sBt@0!h1l^lW9-B1)VwgIgn{A*bVR$*Q-Y+p~nnSO(l~LZ@{Zqe`FpH zw3>brD0&##(<{*Q8Rv2JX<bQ?w$?k-!IyUb`G47$^?4!tM-%mMx9a@5<*`8lN6LRV zpNpW<tC%W3^H!f;h0i!w@MH(WJI*}&BV+kD!PubJA^wDI;2^^4t5?`yVF!N6lxVwv zmofyee>#*sAQ%S(5p`mF&+b1pX@`66;|vWzU5q0V>F2@NyB&C*6U`G3LFlk>I3reE z<FB}Dgw>Js#XMdwv?{I^5?)56?B6jkk~+~IqvWvOl57(XVvlj`dEOPnIfxH4Cw?IQ z+lm^D>^k0k+&$rK)-TE$^SIpsj@u#{9xvb!U`~X8=VN+SuRb{5x;aUVV#&X;{-|qP z<bFwD+>s5EPG;lcXAXd6GH8%%(mwkaR&iui^hmN^N`{G$KgO(*J~d7;&6c&yK-El- znp%iS%miuGIgU$;UC0QmM)C~U>X`oxI;<_{NeUwgrS~{q;5LVU>Y0LG^1_Mmx~rT$ zBwiS+%+xuh^b5I~Y6h3p5BE!6udOrVG?><ls1Q#ln%4&Fy_bhe-a3Xvy-K>WlHef$ zKDNEDHczXFY7(5hqcKR4MlKmN^-eXL(BZ%R;zQb2U(oIA#nk4;Rp1gxlWD)}NJV3P zq_*2*T++wErz%$sdDBEzH(ojlw3n;~g-jPf-7Qk+wU-C_p|U*OM;kx_Bla44&{eM_ z;We$u0j_{M{XWyaPZzBCcD*X{-M6hb-4rRxt-rtFlE9u6K&F@}0eC=6BP9h4!cnWS zFcei4gj%e^atbz8V##3KUS_2lxiyD=fZGFp{lH}rSZXt^c)TGbxEchTjl+Ur)q^-L z5YxU|4&_u{&xx|mu2zC^Q>&4n_||#|2u;O;;Xar#FrSL$Ku#@A10?w95C5dbFgkZq z>sb>e^F&hdw=4QW7jZ8+H##5UIFnE*P!(OLfOxy%ITKvscg!G6=D+9YO>B}wp9Rky z*S-oKBjI_1EWs44uJB3cmk-MFRL+1y1>&B`@Ei-#j;l122snyoh&dGxhboo1RD>3L z==Sl}56AdN(+qfJeyWA=$hdr(8DkgO&<mrKkGV>}sz0XVb_`?1*j}BmSeX;zwc-j9 zYEB^fRwPWoQUogW!)NNdQ_lr$b|eH{c&<FJbFbMsY5Q-+3o{7%nT)XK`;N>Y=e#@m zmRuwO8QWCworHDL*Bwj)dW~NG9FbE|Zh(xYm7g1OgZ3H!8&11NM{vw8#M+0BCFW2f zwDaB;UU@9~u@dD+uI7Um58}!|SSl6*gUr-J<eTgX@|GcAjWAX@UyUT;{9-_zlz`lX zX2rQI)q9|FGFCJa&6Oo<C+~j=XxJeWSZFH;V}e|YK^r~?-Kw?OY|4Lv`oOeO9A9nu z)xFxtezIVHM1q3;I+kt#tw3*3w4Lp=rhN%Z35FL}pC{1Y-}kLDz5rTJt-Vax(=xHV zR;_P#bmWzsl%P8#k<`cD;-Jw>UF5<bKOWjhLd27~cJZyV@h-~HlkpK!zP>_knb5@+ zZ|AeJ<!1b%GWBV{h_dTswcR=YD-qQ<x@b{0)vL(pj*DMShXnMqf6aMOI3=U}L=8K< zQ2!#NC22m1p|YUV|2W$Dqn_18KQzew<LaqDH+c`+dNkvRi5*C=pE7)je2ot=y&J2y z&JOptZY9nPbTCb2haXz(x@H;YuqLfT^k-LjQ`?UN<V{S9vOPTwbF4C*X#}(vkyQ>% zY6bm3rv4ZJ%@C>rK`DO7>1m3Gj#S6rIuq~0HMXY14iUkz0OVVT)wvleSk4Q3O3a&_ zkLa$fzK_2vGA{T}w!4zCc`a2r1^q9MYP7*)b$xvmBl_0DTx%v_waD(kbxQczz!ywj z<BF+EzM9@*h6}HMoQ2*hL0e8q54#0H=~$c)Vo+msd<G6UC}7EV{!e9iW$h{;rcIY_ z!y+*H5`Uq_1aC9q1?by17LuSlz9|ru69}$D*Q{RuU-z&p1E+~ARO1}!EcThsf)1=+ z&P&y8OkTBbJ~b)JU6mDI_~nN6@mD%!w%%6Q$9Y}^`AVeZfmg|x&$vLTW$jcagId{0 zC%Y-O%{h}O*n1?;k+0@i9-p789K%{DYmSJeTV&;Y2uw9=Hb<aO@z*GxoJEZbA!St+ zHQ=}@q-nb;aM*@b564(SlT1r&l2x_Xr}))!nE%53Pu+mvlbN$!|N1}InVgiRx``oW zK=mos>kBK0<NS&^TpD&j4Csr>RtHNr$>}R2)G3%_)d9)GB#1pZ5F*V{k7~L8>eIQ8 zj#@%J(&d9;bUpQg=Ik44VKWsHJhYWW-Sp}_-f;o~=l=F-0K_@TSPnjAnPX<S8m8iJ zOYrG^zWi5>b-YTN$5<=efMadcNg{phH@Y2R^VJg@5KKR`SZkuK@nJFkmvmp!Y;vX? zDOz_PG^r4-GcuPa&$J}enrMY*`?Rlg|7jyiy+$O+1F@VH-_H^LOr3g11XVuXm%DJ= z{jEsTHs)5%Q=Ve!qzyA456}WgjJPe=+S>hy;3o;cXT?v~*Qpfa((pBU10KFQRcUgh zZxbGBX6FQ{RH;~eR}n=9-3hBsSo=h`r2NS*1xu&1|F=B_en0eY>HuS<4O@;d$Wa7S z>Eu4LIGkwKs5CYz?~=uaPb=&Dkv$5)LWs``*JyfzfE9Xudd*cDC+M3F%v?xh%xkj? z_8PJL&{Hm}FzJTm>PBHNDvj>uef){&bA5D4o8)`^+kCFG69Qb`rnGaXLwG4XFRM0= z<QL1@Jl!3p$YC@sOYEZ{Q(@p`nOT#+Qd0Vw?|RC3&o6hW$#kFN9V%m6lLCV2W1-k= zX7i6z@*bqz_`-fwE;+9I$OJ)1@q&-gZ!~5pl{qDU4U~(k)L1d9ikAN7uyF&2YyA)3 z^g899tDnSewln9~ksSh``M4<??~Y)G6)pF0mg~Q-kom9$yw7g`huaYjeIgbuwi<77 z>c-ILVbOO=OGBtTdjJO(STTRBcpAiXx?gx5d)warj1_HEEOmXvQ_}P<AFJ%484-1i zbvD55ZOH4Ic4t%6UGG@6t1g<U#FaD55RX-tpei3xz#<x%M69g-H?~N@k!}y>gCL`~ zWeu}KRmbIyIY~n_4BuIv{x!27x^%Te?)39S0eRWMOW9K(jtAc3+(d)TYvRAGalPm( z1syg<jvsrrO`HPEWu~*xeEGa>^1eD4HUCtfj<Jz0vnFHy^y=qTAxRH{%?Dc}jb0Ch zKM`#S9~O!VeIaA_f=>cXvGIGP9P{e2%)?nJw$IlT`lS7)46H(?yyiN`Z?7)D*u2aW z#g-X^{lMy~seM27ij^aMakal;^5jpl{ny9eIlezCICo=|>;*DCJ@qx%4I#|N$O>#= z$)*bY^z90|kC%QjhI)_~$*#))tqT7;9BrBHR`VH#k*K+r;7~xOobun{z$q%j?$+<5 z^9_j?zK+}Qma{MZW0iA{2+^_t{691B2FKKd-!A5{8363Dm}XBg#(@#LA1lq8SwlG6 zrl5OI4^JT=MnRzl3L0kS-x)p-KC5<8B_D0&kzXDA)%3z*s{1n4y=$1G+w{$(PY=mP z!yuX68rthx{&Jp|61T%CGdb)%Hq7s#yo(t83B$|^4c;}w?JYLoc2vGufK@zN1|diN z8apia3!V@J?<9h=JK+vuGe3X$%pqf+f%u9r{<_PiHzNm~W$>&~dAC<)cUW>?H!d7U z@4Uq}a`3frr0xl<Q90An&!!CWzh2>R&15hjDmPX*ruQfupMqp~n{a>bv1{#fyvTBg zVU}RtOY(s}ui5o2kjUUYo>HzuqVeODooZu*@G~M`TEKtNnn#GMdX{X;9C+h-lk{T_ z0AlhVfd7qIW2R|hP|d=1*<w6u7#f+ti~o=^m>%5*bnTz2&K4WZ{_v|Mz|328JX`Ex zi!>}qgfhX+CTO!hWhe1TvvK}uni?XIX3Lg)QH+oJH-s$B=}=<;Qu$%2vBAh=`h?E6 zO5adyb4undWqb>om_^gvLh3m`z3=<c(2q9$0;AEIk_3^)K`tCn){XHuhUwl!%*>dt z%zX7(HRD%WIR%Fquk1%(t!JHP?qLFkuwU3>DHeOy%UP-$fmn?%ulG!H-O7s-t-ch? zbwDog%&BSEeuQk99HG{b1J65NQ#m`YD(<s+`+PcO*oGBJM6jF0+qb=OYD*Nt==N*5 zt*0+rJY6QHN&n0-(rcBZ1f%k{Noj){03O8U{fiYRVd;Ipv_5OMUh)-EjB9PgzFO3s z@?896)~R@$Rzt9s`D&9+uCzfex^eQ~IoqtntCDbxre)}V9J%0cNXei3L5Oi&sk*p+ zhI(Y~aj8o}H>+~JH>}TvsLC44VrFoOSr?&T@5)wd$pMb5(kufxJNUD9g~KFH9cyf7 zP=6R)=3<VnS<=Nsc%Iu<@8OWs-WFzrQWN_8sy=*>Pr{qi8LVK^@JeZ8KRTp)&iK`@ zj8lpHmnu_L{l+k&a=uR0WeBhg*WigOA7IH=J;nrM5K`t(ZW%Vr*l1H$1xkp;%WkS@ zsK`7C3^6hohrQtcp*F0PTKQu!#A(H$ieoKo?Stkm?S1s1P;$%h$h`k4y7zdd{yz@j zXS3PGZRRdCm$?&?`(>E>CHG5IGna@;CHW#7hMAK4o!svsB)N`|YazLna>*?!By?Lp zzyJ3*JAa(Vc0TXR^Q92<U7wvm0-cbSWdvjyVf+>I>2O6QjW<fBEB)+g8;n&I79x#( zSIlqhT)aeO=$=_ojYLR_;JY!sMpetGS3-7ypi$Lv_)7nWCx7i7>YUT8-yZxf;Rfh- z5;SF|G={QL1=$iL0qmxm!ZK`MczYlnm8`H5FFqZ*5@Z@!G#`L}T&N_a;To*;6vS45 zX0Z}$p(ae+g#P7ZcH`(&REEykj1Vg`eJdz)$V*I4>9nfTWjqnt+^F|_LbMb0G<09O zT}p`_tq2uAdk~mET`zt88`Q!gjqae|6mRH8Ry2)wLzKwol=|${LH&a5vtt_JM4t~1 z`gqZE8jebO_69xPPf1iBeZd-Ot8(~bmP32xBj*&1PRlLHVMR7>Q*$vFTC?rH49wKG zb-^VScP^#>_C&t<R#<)4ufMMVxo#noHewNN#Q}g6XNa5_uXCAR>W6@ZqIr4+pJy78 zQGEZ?*HWS;ub1{A(QSrk5F(m8_S>wVc(&EoCB(}q(-TCuCUK%{tPO2oB>)rI=c2RE zHC~WpkZ8Y&?c2>OUSn!ZG061K4}h7g4KsQz$@qDq&&ZlB>v<Q`-YlGy*ryW@69>Ch z^n51+s=-X~JtwBN%)EZcyw0WH&y_yNi*{V+s8r};HgxXcN*C+Z$r^Ud4G6r<t?SmO z6>BPfeal^yRN`*LEMIZw+Y+zKx9<i8T#Dk7N`6b?zJ$A*<m<yfOr%Cm9@tx!MEKJT z40-CdQ@>mNHH_-8fw*BNek4osE_b~+!Q$lws+8CYmuSmv(FpQ&|06^&<{IaH1|}JO z_q8+3aLUc`j((gixr7MY48gL16)cH#`Mca7$k(+=+uY);qK;1&tDNReuCRH?-2ON$ zn&XUVbm|Uoz<*q*z^lM5c`;UJiFBmzqji7I+t!oHzlGiaq7Etj5R@QB_?x4WY%fS` z&hp-iWro-2p^@)opowF@u-zN0)pXFmXXI}&{>B<20S=oHs~kxOhWjpYS3)IjK|LPy zWyw2{tm@^sS^Choiky=j-sY>LO<uxGm)WloV8&5##3jp1sn9^e<w#d?99FC)89Gzs zBM*XGy9AyiGG|t^-~WP7NrvWHin{fMd0MuhRJd>X%sWcU%}AmL)xymghAhps7<%8G zyF5rsu^zv>tnW&F#0(q@_-3o>eN8H%?MI}$Mb`{|lT-GN^yoz9v2w1W<B;#=wjo&V zA;rYi#EVupxCRfOMGQknhF?n)^=hxk!iez80(aZJ^yV|6>*JPq10986?x9x!iP0DJ z_r3vsbYz|Jq&nO)SX9fC-lrj}wxN6NAR_vfMEy4NU}_w+=@gHHI?GBw7(Mc;L4pL~ zwJ`1dD{)<wtIa?%lL9Ks>w=)FLIAaF1z7{{EK1>NBcbPJ#)e!`Ac)eoIOWIQ*`G3g z<39~LC1Md_=fA9Sw50<Rnt4*~>ZVeGiP3x1MqizWPjU(9%jPh~&L^>=2h2recClj4 zDMHBCHjKpQh7ugRU@se)5TbFUN0KkzCjc;=Gdad?;sgLbRm4_=kv}KK96xJEAi#of z+eyDz(rg>Y<o=uUk@W`PC3M)>chS&+Ne?jl3;@3hwL=)9ql*w@?TB39M=0)j-(!}$ z`wxHK*`CX7A{X@p-esOHB1{utSIdh8quduD%qs-$Z`%oO(ad2*O=Qy2v-(8!A`JU9 z0Cz9C`F-{F)y@BVrTMsbMQ^bWa$ys6HjUqvd2-xiT+AoD_YClYPOL+Kbwt4ILZa;X zgupKT1UDjVx`<P(7@FcEBQp#o)7eBs(PM|4y%0u-TM=S~+!_NcBpoB9x9eo&&S|yR z#}M?4qRQSCar`1-*vJ|LiM4F=Dy75hOI>fP9%0x;K<s2-q0c&(>%YsUVsEm=VdSN{ zC?G{9cPmi#q!m_^yd%~)DY)V5X$%(ln<a6WBfv9fp{y7;{%O!GQ$eHg3e=0iFjD<e z8uQxG>PM-yQ?}YWf%|yF$`j3&H%yHs48!iK)cR9DbBxpzkZ<bg^6>k9Mxf+_e|4?K zg5mZt=sUM0(6bq2T**Bz_&+OM&8<b(TnsK};yz!N>b0q|FsFa7%7q82f2u7IfGoZ~ zkMS?M|JdtArzJucq`oCjY}%*&lYi;-2`$7(!A4w@_;;TfoT!KK9CE|3V|?wtxwlkB zbA{(mDE>#1D0`pbx71w|KcU6;!=oBX_pl=Gz78VXZP8l5k34Z}fYu#FjBDS^&=jj0 z&nSe&35ktW=17?L?WQga>hA`ydyI$dh%tBeTdw>Z$uXa#DTL_~VJrP&I%1iV;PFp| z&2f5-Dd)Fd%>B;!C)NklWa=}w4?G~gxcAor<gZV1{bOx97vnys7dkoMwfNqkF|GfZ zL}nxUn#rVa-`x;#d(&PHY7F{!9!5`e+HV8jg=hOE1ZQ;@3!Kj&;F1w5I}#T&u|x;Q z-A=w)(R>`Yd>8gsC;Rk!(J;c>;q67n0lMqlk=W`&^Zf{Y_n{Es0ciA(@ryFAoXR-J zJ_jV{DYngs?14{g(tBqC-DiR^=*xuV@|aKV(W$T!wqN;^=ETwGI<B0tD{h9&7ew?K z1rxzb-Kt$PzeYKuMMOOa0i)sEil0}#4(<wOghUYTt{*9G=UtZBi+lZdyh6I)SZtoj zp1|iIL1;5KCH5tX4V;cBn6Hu!wex>T*<2?LsjDPi+4Nc{r|Ikc5j@|zP)zL~y~jQH zxu98hZsWzfd%W+9o!@W2=uLb7#q{6!B_7etLJ6fCn=e1DoQ}O9?e`&kmQA$_8cF!! zc?u@`@B}SA{O-l2W-9Ktba6O$sl$uGCZUL?<zhXG5NaPDzCM=3vaZC`e!>69$j3Aq zl0ZnE2IzIdgVQ^U8aFT>1oh9vDXbL10&(xy3o%PTup5|pn%?MA7*bTIZwO)!B{K^> z3D=IQa06p5?S!h<6!pfyxnw;wWT)79QKBnV4nZb(byk+aVoqgZqH2kXAZzR((UkY> z3RQJ(3wA$E{?>t;<_MabPsy`v3*Ssi;mDTvqZgY8`;>{CIlu3ht}HWAc~+o)In>@H z&ldR?&w6Xu9Ipkt*%aElJIVe;_#Vn*u0s5LtiM*A$8&@QyP$$rpY+JHhL1gDCKeH^ zY*8kF3UYM&52FmovK(nJ+cFaTKrbOG=%6}^U+Qo;KGLR+ybgZJj{JTtKa{lh5t391 z(JRn+`Z=0OsKZ%9@MiQoXqLt$+-=$_Sk>72L^r=poTs1BKNA_T=KXexGoJZXSI5z} zr5A~(&lh^SQx(<^?@2$27__;!bdbQ^_C{Rm<}X)pXSH3V`R5G25%HU4dvT|4?D1Gg z+-XZ;7J3jk<s!{ik`i~y?m5hrBqgkQ6BTn$!gZSbbF#8Hw1hC=B5{09Y$ai_+I3or z@k4Yufn{cSC^6E_-c(4N!Gn~zHMVC)HomiBCUgfc=4F>DFJqd_WwP?}R4^{OEWF@& z_EYBC6S%~~wI5QC5|kvl86#=_ty}APvAvo6w*_Q2_`Q)ARRp+Hom2#FkywWl_`&!m znR6kmKbUd;ax!)WaqL0Nb4*FPsO%E*hfMbXR=Z_afWR#2LF|9*?Lo}(EvxhjmX(kO zSc9^Jfr*4*Sz@(f@I}uSQAub%omp<Du|Lz4hehv?kGZK4&-PC9ME9^KUc@Be%hNgE z+Apo|L$<#>Te=h=4LnvPecCEueenC8MX6+_fKieb?`MNrt+-9YJ+Z+mGbeI|C|3qJ zL=Iqs%$%vEU!%=kNBk5x74#EqTl4rK&G8IzO{}a6XwnP3I>7qH!nMC3Hei2Pn&Y>b zsla}@30`q5Z+}cRo}sRQKR;df{guwq&iB_in1ZSyyeQ9(DQ&r$WLuU1#W_r3qz+zs zKUIM=_6W$dH<*DTom1Ev<FSp)F5;~e!bK_Hty#PbD_KO~LB~0xlA%D`4zxr3)mx*= z5;@oJU07Eh2v1baS;Q+paD8i}{x!7iHbnHlr;+88{cG2B>i=6+Z^r#xFN#<EwON*R z{Z}JWBP7J+y8hrqFDXH$Yhr-fHJbeH2`yb~CP7P0-KYyp2seSF=t_imEc4N2T8G{# zUsYjS`X2JR^<M)Tm>kN)^hXx`f$NHDP<`{!;`^Y>9LWGiZhYj}aJ3;_jkv?rs{OZe z<0SC#&(Y<}@eBq_5dbrzg9Rtt#+%0t%K$RKe@*ndyURC{<XN3q%wzuyPdG-hRCw|@ zNqU1;U^Y@g{)P4CXmTHFqsO6eoo7UCUtA_Iuj|xeeecyV<ugk;G|gfMfg=m}@j;wi z?u4Qj-2W2b3h!JP8oP&w06)<xwQI_Fj#(q>ZPabLV%T0HVa$0$k8e;VckjNR)#@rU zFPT*mLPA~aSXyaP%aKny(ce2C?c$pZ4wTFMnD|{#TqRFS#;yY2Yx@5HO0B%>lCkh8 zVL&4;+2YfBEb~uyBK-CcUU4cMHSJlX=hH_?CORV>&HDRZCLcfUx4AuHh7}5Zao;S} zLm-N=VqqvfkkO9<0urrG7W;-`SnHy%T2-i!vWCa(f~3zBo{Y9tnvY+-@LjDDZ}k=3 zCuj`@(*G;L5}9o+VyJxpbs4L|RbpzQNU^7Lmzjwjb~xKGgNmnCx#gDg0oRng(`7Cp z82{wU7C~`G-eQIaGU)Au{yh6&FSM{Yki)j;72BNslYdGFDBH)B1iAO#($v^9wkC=8 zx?eE>p2!dj&nSy`RajlIaCm7fhEAnIa;}cNDg1R%`8P(&ic^gCN%W=ig9s_;zyC~w z!2sx<e2H1bpizlzJ-S&|@(_HXN*~IJS}n;i%%^1oo!`(sf#Qajcz_^YJa<DMmf_hK zMsA49D1zOrGK-e#<i1o=pzASYOhQOGrFc8kvp%P2a5e)8NhQeZ4szy|F_V2Nl&DCn zAzmr-E{pq?01{f`XKJ}Hm3!DyWqnQ1-GwaS7=<*q<$u)wyuIzF638OE51pFzs_N@a z?0nh^QyC@}CVgLHzf9c!7;MTeQUo&hql0+!)MMYH0hp^H4+95XJ&C<RASRh$EJYW; z>Jgghj@GxOzQ5nJxvNrFSLl^pgR(1fp|RSY<kI36nUaZxIp_RMoSshF+(ZG0ARL+( z<$RZh&!T)O_pG)An0IDFvhR$6vKtp=bO<Tz&X1|4Rx9Yd<9=zIn|X}T{|JM;-jPcM zvUl7)ls?vQ$0-!DijhoH-Xl&1u2;sDVF({1(SQC?CKZ?!8v2vO?>Nb@HF0XJ2YEu) zyAj+fzldZ#BPAs{$e~!R3k%E^(jLcfTJD1!$JW(4evStvHRoTEo#y2uC?bFRc~|_Y zOrFb@_OssK59>@eJd8y~gw!vhzI<Xz|Bgw%rizBW*pxU$APw6^`fXp(0pu=g(!FN( z4cWE*KZI&lcvb{bD(4!1U*E^rXYWOEEzN1Z`!&<{>S_Jm@qi$w-nXD2fQyaiW9%PK z=Ut!WM~Qv!_QYrt6_@HS%kEjSBa2$as`1)VTtMLKqy`~Y`JgI>!lwW}?3*~~QKd-Z zCp&`XG+IqQi*&XG=2D7mKt=^+t`=PLmXd7w^y&$ay09I6>dzAVd|Mx%-e;`*k_yCZ zw-jU)dy@?S9UqRK=2z+ggmAC@7mS#AWylZ1wZzH0*NM{`<b*S2=#4vL1H!hS-%;~F z!9wZ7U1_%tM9840CIUR%jdQrLJlCusjsDy9Z}m0kq-&qUaT5YIC&RLTKfAuxs+W5b zU%<7F4iD1I$AhT#d~w^CzNO8d#~(iJsNQjy&5>p_#)pttP+^T7Ge@tEx_|%uM&{^T zf}IbYxOif$PJ}PpRlv2ah<k#46k#;z=ZHIFKl^p3s@DSsKWJ_bW0iafWO62KO8q*b z>~z;>Qu(v>3FTrCQiFWJz95BF!hlNn)I)WY!SG`}XztM~R0Ky92chI98|EHZun01c z$N-Q*WcQf!e?Pnb`_)y5HTJjPU{Y6X6LVj^ccU&DHpc&USwL@3bOO4=G03_dPe%yy z&6<noio+CvdyB9CF@FF1S7K~L9Y8I<G<ZOAATQ5q(C!dE#iPJf{!N(3X%y)@j2uxM z*{=>dm?d5)N9FrQVfdrPG@`Fedna(-WsZ`mb^#tssaozv$hVp0iJSTu15jLeS_VIu z9!<zZ6&1m8Rq!GLDjP+i*>ZP1i^MO9(30T{TsDF^1z}+J-&_+MmkodEg3>4PQ;b4! z?kJJ~UBLk!3l)uZ2~{nH5%IjbP#iE_9xlNje@i1i_*moCi+f3XlHoWHd$PIGluq7R zxi?4WRA!@KDe!F<X69mWzZA&W6SmC<GIiz7wq^DXO1O9u=hzr|fq=T$82Rw70zWQ- zM*|s?OkGGtcq=hyZ6Zj;BzT<}GY!t4tpwWMfW8AG^ZigBjgf9cXH+)%IAdb&xZWQO zy+1UhkhKIf&Blxj7+)7NW!n_F)2jKsIWA(^`qdCBj!c7!LLLn9h1h~m2Z0@3xpz0h zIZ-rxabo{$0(38-|7Fr-DyZLu0cO5Q>sL>lvxlQlpl%oV$@fD61SpB0KRX$W!GXQ$ z3VFv#g`0_ZgBbs3DEI!W!`Uf<&r^gD3bcL6TdF{x{ey>T))*JJa}wyqwuj81r0%=P ztDuDMLwsL1!*?~1`<vkhaD~Io@NzTw2dcs^{$wVBq+EwIR8X2G0;D~R3iYD0-aOg= zPH}Y0aQ-iYv}TZc4V@~U6aVnGa&JGMz@ZvGiYo7hx__LyX2)DK#K*A}?utq|`=5d? z0wkCG(BMA>hFJu7i|+y<{b5YHg-nWF3rTJ=&^0HU_B{LkmcTyx!PlvbhII}082)!= zTwaI_<|nD$FCY5*CkHT|M<(LZI`|)6lcAMSv#!XbleTBG?(Jn=eXd!akXD(H8YhG9 zyyN@ed0yvyo?~@}e_uu~IN#{Da@KQnjyZQe0`zAywa8o~P&3O|InQ!F{gr)|{_{xR zA_XG^sD7C5GJjr_W?q+BL=V5`BNyMadA_V&U^J_+Tj0^Y=A)Y-2&<q+$NxRDPkwan zF6xf&T{0>8k-P-basoim0n4Dg5^|^$+1NfI)Rnt9!NvS%&LdWF=o2X*3KDPev~XaH z|D_Ci*qm#0D~Fteq6H;nNi)k?FcS$dIb}FS39gFF>o#Rp)hbohf^Q_Crp>cwq6?Ts z)4HD($fY2Bil7XcU65!p_ySOxZpLg81~wv1Ky61JXlubOx1gG`rK$_1MakuqWblKz z^0Qi{Iew^IdWqsf1(9AtY(xjjGXJSU#Q>GWB^nC|Ntu8eDuLz5P;aG#IO9T`py#t3 zPHOedMDCJ<pH<0%)iqE%g~4LMRsMg*++NT5t(3fAO8)7&-fO`Z&#NKBmu@Juk<jF0 zjSK{kbirE~&*eLxlNee8=PcYajgV|aqmyg9+aqsYxU6pxQEHyme>V#{S#YNvMI<D4 zUj=`Bj!MK;bmxLb!%(HiwLM{J&?v-0&ErWeWb?1ukTgoSX&f@;F^T|UwPWVpt;J51 z>S-|Qx}_R+zvCjFRNb2-<jRn$8NV6;ck5!o>!I2FA?lf7WcBxI_n73oOBaYeHxc!j zHDU(&sP6!O-V?!&CxVtiA4JU?+EL?g8cJ<To_-GJrlZ<^)yXZ_eH0|MRiUD{5}?EB zb0zgdS7{45oY{o>1;IKNgR+GhFiUa$8I}~7GQu>kHZB=8x>f66gCbo5>ZaNwjfzk? zIPe)c&=*tn10?9M2E}xn6u-q!Jh}x7Nd<MZ2EJ>(GToR8_PA7C{UpWDXU#R}9g#yj zpwyN`HFzT6`6PG6XXl*A`0A5MuT~#{^jC;9#FM7yf?$P?7RL_M<x{QwVr5WJdM%?G zC53ywK}E&bHh&CzOe!U`SdKm}Eow=(jId5bts<X_r69IlXwTXsivv&>I$A1fV=o63 zAU&ghw4m?AwH<^I2G(0gIy%R;^;v3Qu9VPQK`=?bYImPTW93YC31Di&)AOk{G$q(l zsryWo)~E1p6>;g7!E4v47mY>RYM%H%kQ9+OX@X7aq~lBOlLBgCQ3yAS(skMAVxr8K zZ0VPl@=-xh;so@fEuF=q?mMleMW*0KcJ6R{GfPTRzd9rigY<0g=)MbL;RHW*XSUTq z@WVlZ*(k*YC`$x%TMD8$MrV;{o<t(gcG59pk<9O3Y+glq{_0VxOQJe}84uu+>w<Ce zLZl1H@DfroB4nwV7xfeu@jO>Uz`Nsyq7!#~EdR{APJ+-N(Mqevh>LcsaR+NxGI8&U zoN4<o-)C)E)*_gdBVyMdwd>BmU+cSQfV3!raNwNF+tK7ki1`wLIUIm_Hu(+r2pBv@ zHP%LO7U12u&j#djkEQX}H5VkJOu`>0vw|A(NG;o@V1#EW3RlH4S>Q6lS5+4Z6J_2u z9Y7ciqb5dtH1e325j?mEP9-?P0AkTr>71{@{RyyWgz#u0OK>jcMUcTnlqwu3P#c_y z7@w=tyy^brc4AJN^3Bzi_|m1phDlWr4oJArII$^wUBl|@AI7WQKd;D^{1@xajOvh( z9Q=T2I4Xx+*%MlMV<Fji?|HY>u(9XpvKIY@Eb~ScoJE1T#Y5hwae`7*!6DpAvmH@! zZ+1^crR`3HE%a<lO|U-6>W&}9M~!e=b2V8-$g%Y+%0VpihfC?tgJhb&3HGt>O|bo) zI8%Un6CsV~3`$GsxzpzkA@t05PLr$_r{|i+U&Dc%&*MfsotQ9H>+gJD%BF?eU+JY; zgHFy9_pI0&A<||d5H=9_4|Q981nNC1eG%oN1P&I?iYy*QdQOeGrT4=|nJ1^ZkKR1k z3E!ci{JUmgPtrLr7Djy$i5&y3mrjQ@5+2!eE2h7)VHC{gcFp&J-$IVFNx^yigL&4& z?x;^Yd=2O*Qp!tJBW-<k>Mkz;p8&EIM3Mt1@S-gUVO-Up7xc+m^#aZ?;aR!jsVLAK z3Nu%VX}PX|q>o1;LBsrX)Z*66!6@(zJDs~3^k`uI!{5cFE(IU?XLF|(SYDuJsc(Ip zUM1XY{q}BL*WtDOrw`1eJ#yl{Wb*wvRnO5GU0m``8{8k}5d<|10!!ff`mfAlyCVA) z&{gvMWMR;VE>e>XgzSF5z3~njwS*#!u=KWf!&;U({b0`TDr9?1gg?l3ugDil7B0R8 zFqz-)XeTJYX1=*_PgMGbJb#__*#;~$A~uBqzZvR?3QH?)T_xRocdxkj!@RM{PWT&P z{-Ppi*PkZ7!rA}axChzz9k!?N%Kaz|_@qbOy|Ii?j?x=Onaw|4nY2M*ppHt#Ti<0^ zm7tD<6@|i$u<ng}dn=Q1{C;&hXV$t|qgI2ge4{2;wPQ@re&F+2eJhnZ)7JIz+M+Q= zXpLk5cZzIrDI}p@jL$w`<LA^{9vx2Nv6+HLt)qYlmSx2D%k?D#?Ys9;UT)(Nk=t#B z+mXu~h~mx0na%wl&pt2Wb{-IFmbb~1=dB%_-#a_2u`91G^7Y_9eoXmzFKXgq`V0>) zF^?U@zf`8^!5m`Sd?Lw&T`OzQ9DVti@fB~Eby2$(jUr8oH4Y<|Klj77KZ=?!xpR+; zziMZE14!GQk=1L~Z@2nUEBO2Bg>S1Au2G_PNKamx9PT{xjQ;(8`*2Fq;uW7&_d7;f zA30?PMgGjZ_kJxBwZZ-wwKNM={(QkELfjUmcC`Zz>icyMC9pXBL0M_Ct}5x~4CwTM zA;*VFkv39xZdYfda!uFn_7}dR(%neVUZm)rp~+s&WDVa#)WcVApFP>zbltkv1cN9Y zdcFSPKehIwy|SqB&~c~9<y3EP*HVA{*ZQ%qq^S3zU1$tDs2&d1x`E<v`@-TmieeRE zI=c-oZqU3Q<JI%c=-+WNM<Wxdi_Azmcq-9q{0K#=&0S^J=ePgJ=lICW`7;0DPd<3< zUjN<iVxled_marbeW|H}D~+h{jBxn!<9^e9zWgOI<@zo;w4C-ba(UmlciEf#TQ;B5 zo7}+?MgOF%6dH-5z2-~I_>n^TJNGC%?cvK^g_Epm)M0FcVftRa{!rn^zt4&x=8cT) zf4~muA7l3sM3?l#<qMxUQvA|+?!?AO;YG=DwO=Rd(Go5i$|i!(Zp28!*+g9dpNV86 z_zB=xQniLb&|JBbz{YzcrW7A(v{;Vq{TJ{;d-j7BrGb$+LvEX3jg=)a+UZLSyatqR z3xtu`y>Z-hyC_mRc<zNG<FjLp)8k76S<c2xe57lO-La=!zIv2f+DqEWey&Wf1XrOT z6kIjXg{YNQ05<)=C5R?HTdik1*mCo-eXO9<HDtVGwtbnB-xp9hhlJdx{IguW#(dI5 z71v(RSaXO0XED5Y)pVXsJl(T~Di&w#;BQDp?OmyWvq@2dq%SPPX@==6R_ReI{7r_W z1m~38U_bJx#qcAON0<JF9e!Eti9dar5%KHCmya(Wk!tO+GNN2iWOFfuX^9LK#9_#l z*~gn`XoeOp3M%QbR3wv4Zv;x%>5WFr<-cx7|4phXYuTr&T&+{Iw-tr*G92iHRz7z} zP}|n6(IpDsdFktQuz2vdE-T5Rs%R4TtBDoLdwUHt^LPnVNuna95u?6nc56zM)nZOL z<soisyciW6xJQZELG>968Wown<et*m7f-s?K`t|w;7@`pztSkyjJJ@sq?hz1-mgZ1 zf&%fzd_FC9rl(_7?aigiTkI{*I8l2#koU|dWX!@XPEuelh)tj52GboK&X7PUZ!9ye z;$&she+AT`>-x`?KIH8^>jFm#uq0O^!y8yGhqotTtfVy#S=CN0Sc_VPjlVUCwbD{^ zi@L8nV^P2@_F^Q(Osmv=gCJh(Si(rAJt=1Pb8)cRD1UY-{M&%~WyZauwP%;Z*8alJ z07v#$kvL{so+yh;S8-0jD>;(1Q~dX<cL-LTBA<cke6bNw)Ae&Mvk!+bDlUY9eZ|$E zBUMu_sH;ZQPaZiDhZd<jegZB5JX3w=J)R23zDqv!OHI@^yWA`#Yb0oVmTLkV0HWpe zwc)C3;zlk%ezx8o(9pxI9r)zs^#;X%9@ybGcCwrgrNO_LYS1wD<ZNjY6;TsT1YFN? zf3YwS9s%K~)(I*lkYwU=BThsR{J;!cp2(>uJ+E#whz^y0v(9u9Ab)mFK-6lTJB>B! zYEq_zve_|aEN&-MhD*VOPTz<l^M?7o*0Xpl`Y00YLp^C$h%ycuW$o^Emf}J9t0mlo zk=<elrXy^-;iX>q7t*th?(icGk(wFukM(z$r%<%dLzx;(gsj~H>_imX(si7E1dwEB ze&ImS$VP5ki{!&AaFujXPTV^u0cOy-y4}|#x)CNEXFyk>-<SW2bc(&Sq9mha%wZ8# zcyzKCiO!s$NZ~z^TiBlB#zcu9EEy|fE{%U$tep<f(3$t7!!+G03zBE8J0MbJ$Vr^g zq5U`f5F?TC2?SinQ;6K<8pg8DlQdZfp68$_UUw%7X@yB17*v0<&+{qb$a9%(>qorO z*Ig-xp?9{C$LH+i_h=u^5(gpKXe_%A$V`XEb}^J;YREg49FO-F;~6d-(+s>VkpqsE z&=h5sUm`_aY2o0Ka5J}X-oF%1FhmO~6`L|BNXt+_N}In`1U;aVSXYRa9VWw+JRhD} z_GU`O#2TnTgQjDAlwvilh`evIsgz|0q*8w!;iTFk1myz5$GsTRl<9t7wWrUmuZK9; z4GW!T@`m$X33EvCKOy;Ijk!C@-V}VJT+vx0X}(T36Fu3~$LVq5MzQJ2@@r*RcygA2 z=+?7Ej&%^O%pzNo$aFDBtREix+1Bn)ZwZO8jz8CKmlQHxdK&6)W~^nOnmJu2W$bU^ z)NY^II$eGy*5ArU%OQ7Wx<Y-x-{y`MlCka?T&WMeY8$KNSi<`wDI*m3fw|G5RP8OP z`h4tF$8xQ=f6NSkieJe%K@<Rm;$lt=UYB?kXietZx+}&37v3Vd{cBE6VrHu@H);A! z^>6F%4g_5Kap8?~jm6muPBf1jHKHX-KPtnMqtPObma_M`<al(~m@;i+d%wJG${Gmt zeX^zVOtT2-v?*n<((cfn8Jt*oZPS!-q7&5S)&LxvYmPO^rX9*avc2XP-Xqkztj&<b zT<G<nSnc<w<~MLifyXuoZSEJ>*Eqt5HpMK<(${6n(7<$_kV9UojQm|9V(HqlAr@aD zt=!&kd?V~_$A=cxRNx&{-VPG*W{PnOiYh|mXi5GafFqx%li#(F%DbcK8aNU?Bz)WQ zSerYB(ciff8$`kCc-9jXYT@SBZMxiNA1|E;b~C;@{0T^Q6Q0xgg&oE&_^r4wyn6v@ z+<%oOo`SP;gX)*wIS2(Lv%bz~_W+%?Q?we};?0x@-&}pcPA6lfdqFMt=B{yxA^!+} z1=_uFuGUT?+_g0N>Hn0H21q)-DooEBoPV1=g#BK9EVM4;A>x~o^E*W-js{}uqM*~M zfJdAKz{Wd-oia;@$bA|B+I-PhJbX>m7bbnI1%UO@ReH@DhgCAT!Y)5q##`$Rrh6qW zN~ngD<C9^IZ{L6Cr8gLn3_Rkz06hz4kFZrZi@oM#0gi)HHIO*c2trd82&qd}(qEW+ zX`*JEr(w$KqNUIviDa^me%d41)a~xS3aAJY0E#;8kHWe0zuUHAJWghY_*)HT5QeEj zJ2HY?4K+(vf#qba`J=(R-L+MpTlll3zbjI6N5R+hZQNx(NS57wp_^fWssi4cz-J;A zjGg08%^IbISjdv1cB6w1+hjnHXCS(#kv8ik_De0@PTjXM^K7{vVW2&)i7$Ai@JrsJ z8h{Fev+kzOwCceKcIq1H`fr_B9v65>rPS@@_^T`M=Nh@ERG-9hmCY%<44ZkXsAlKU zS3+)s$k=$jkXm@pnD-n0S;m&CPCbn#Ii0qA{ZN(|#uZDNciqzft`?@s@-1NgJQaP! zW6fQ0V{td$G~(vb?!4^IGCG!zW#0VO_a|kGOF2>HeIM-)o;Ux*7%<b58~Q${F|Cc+ z!wwyAH-e))boUzK@9pqG-DE>23CSER<5Hx<=1&nD$dun=4dc8CcRvile-_yfUCYSd zz9{Py`3rYU(x$0>5EiY^x_9`r=iZ@53DQ2O^H<I8@pCi1@lN%`Z)ZOCjfEE~<oAe8 z#q4v3pDrIUaxt3*{XKFp&h3=w)%(gt2T9;s2!%35VB9eTmmU4?g>HkA{wKqps62X1 zk(#Su_fxo@9GLNp(xyR}qG{P9d%ci$bIsLq+;#J$o)|bC9Nf!C>8)*p^xx94&+e58 z>V)ke7q#_&+Ozx+Phhi>u)EE2JyB0AwI>F}eX_(UppsWTB#z4Kw(~3FXQHPk_R3H9 zDOkbnt01!3(fY>}WpDc6)xO76T=VzdM^zLFTQU>sr1gZ7tkREe?8G?ITEh{zP%?!4 zf&@PC#wLtvP_ZZQBojY?iva$NB6UNXz$h{pM`qsDHuR1*>eL<=hs)rS@m6Gss*?{J z&WD{a!vBY+PuMH486FZ!Ht^QKx&rL}4<%IL>MwL24{6UBQP;&a8FJjt?%mOT28s;T zL9gK6^Qaz6{uk$W^@RRV&X&<g%w_=8mJFc_;;hJ5-<w#t8>Lo7^MoT|1WDP(!D|PK z;JLwTohD60azNdnZmmhEBk;t5s!LYU{gt3cdHJpcER3vdKtZw8(%xg^ZK5eOTU@s) z56?vnc*FFqMj<i}9P+0>#+4k<GFXWN!rq&NOTb|hLl8j1Zntfk)DD56H2e7nW2(Sm zfl9Tv%I#dEZ(9M|MsV4s!Ms06cX{d?uCAKh#u^RXlU-H^PWVFy?b;WH-oYc4)7@uS zUnp}!?T;z?IJyNe+>&h8<$roa9B$VrnwHqT{^ryuV5Tyn50cZ4RT5+D35?nr0R9qG z-6|C)w~^@N<|$I5R=g0@T6MG%Ll$o_3OP${3C@1ZO;tmtT1<!@|1@olNI;*W;iGCR zHy>i_Ua0mBPnLF2Y)d|N&?+0ps%=ZAASQ|CdL@K@B4uQjVqI5T^`jb+EgoxoOtGkn zuJ%r>&woU&#nEwAvtdP&BZ@7m%94&opzr*tyKPQaNfPl}R@Ky&ovSulXE~w(iXM8r zr%co%pZ~IDLjLzrJANC7sMF=AG^2_XVgM<pDD7Qtoe}R!yQPL0JX~xC`AGicUV%%2 z&u+HRg5@<`_7qD4yDILFLwzPx#D)4MtuG<9YlL3-$g{TpVIV#R^WTuyAfyceu1!W( zD*3D=t9Sz&F1c5>GGr*qoZSC9>FlXpRTOl0JW~g`n_rmc0enn<8jTz2*m?DgMYDt- zfcj0^Myb1uo@24HIo{J?PSE0%vFcT|hXO-D<Fm7GvMqrjj^0OGLU2wAnyp02Yl>FV z813_W?TVpN(Oko*wzjDby_0+tt*38(pkqlkRTSN|H+qW>xCthi?C6EMk?iIXi#C)l z0MYkx%nm<YZ(9coB|jH1fF)0x$DVBzf|9oRU#i%6YQuHgruFcwR$Y#}w(^$ufa_j> z(}3f@UOTXvlBBH|h|sTUAFXAS{%(p%c*L^EwnmiE0r`RNqVV$?+%$Gqfw!kVBI(Of zv76!$9{9cvRYJ+hIm6LK7k=sj*bd$Z@*`vYl$^E6mpjjZ{!-7L;;}JqksyHiw7BK| zz<1MU|Ej+E6G7wgrfpKRV~4a|BOD4>TKTMP`#Rpl7|)%&-&xEl=oW#M0_oHYSD}c` ztQX^codyZ9bJTLMZlm-*3(G@Nz-Y{bqpY~<r`6W&16=v$s~Gy}ORD5v{?<1R^DzV$ zEdBnz$M}|iKTMPyoM_`J1jn{R?h24CxZ&SQ-o{V9klhqF8PlBBfqx_FdRPnG(s?s- zaM}(tb067c*P9)GmRbOPtDGv{xb!-jZpYYYrWqJ5WD#b6;Hl&;tCExKVcxPgl(+A? zoNDWh>ag@GOO#e|Eu>Gu!}q?4sr7qhRSy%k4qaF9uDFAtC@p2p*8Dg8<;gh21Igb% z;RZk7mg%;Ig(0KIHRYY)A=cn24KnPiUNKuTxVJ|wb;eGq54QZ?j(!?!uuxU&7UNg8 zFAx7FW))?7apR{G6Bp^yL2vFe;n+J&WRM@$z2MEN1657T^>wg5rAWcDhDLfy+hiRn z#h=>zqBb$+-tF}9N386bvS=wwKsNNz&+?B)34>Y9AK%qk{1!H{Z?x#WGbqzGD8aAK zy68-Hvl+8?nZrVl-RJ#QJ0`ISoj)0i(MxLgc&J96_c@rlM<z%}nIUNb?8%&sQ0nH$ z+P$G(LPga%PXvQ%WFB2BM&1;>9PL+@iKTWOsFyjN7m|cuKTGK9bfNIu_Xb~j7C~G2 z3;%1W+f%J~aL)BGV?`#erv6Qggc%vE0ifzfY*ElNhaYVlEo%Ee*6dua4K(TX8MJhb zW>Px&)r}S!(<MQ!x87j=_~nk_{lp~?M`{7~{=-Jm>Zi-LDb7EvrkZx^@AnDLEPC<1 z8lG~3U;PWO(ak#vGObfGD5;u_Np9AFkheP9?Chu*ZSU}b)z_Am5WqINs!6i!e5-<b znFRdTAN?521=+zh58j$ACWtH}=*0<cj6J5<9Yd76Ka%=?5dT=e&$>ORnq*R@0x%up zN07vrB?CmuYR#ORKXfs@=#$9w>cb+RSgH+x8PhOMRE@q!_SQ|{_K6+xhTFi+o#88s z>3_DAdSs~3S|6L4Cr@{>8#i$e-b`pW_w2OLN&<<>g49ld%d^vK)J(t3sYK|350vU_ z`~D+?bk6tehmTpmKdQ28<AMOfNd|;S{#8Y)YTYXP+YiOKWjhr2X-VphuS?&S#Mkn! zs5&W7Z1jsPsTyG$<|ZfSRJB`bV__kmDAF76b&)@G`k;ya-&!u+&zEcwCK_?Q+-rPK z*;UjmKz{#X)y_ket^2?zw%tl_-hNtGc{FM5Mmk|xg2=J+em?7$vja>9eFkYnK;aU3 zxQ5cg{3-`>1v-e-wxC{@MEr?bJj>MkP^rXzbryKLK`L2&D);$el}csBFzM?67W?_m z^NknF$dIR#&|0mK@zGAs#1^NMKW(cg)(M^S-qnP2rzHb^JC>|55nB(xd^C}<tAgkz zlLnZifp>zj*|#0nOuSNNw$D$*2pa>;jo4&imQ2a{rF0rld+qGh*W6bxUjMxwjhZjG z^f?Cgra0T9c5eQh0$jMs&ROKXZUoZRdwD_xiA}P}&7|drzk?<!{(=NVE7f=WK+eWp z2||*^E3OtkMNZT*2>U*MWoB0^gdCOzNxQ5tndP|m@=W+mnr5QUx^IZdIc7qE1limh ztf`n7V6!waZYy??nE7M<yCOW~@x@gq8oaX4(>y^!FA=kPGioUB<=_qc&xCcK&&Zc9 zladLW-n(;H+6nh%Fz8+qs`V@Q+hcyeiYiKH?fZdDpBlPd>DU)Ljb>m@nL4veQoDOQ zbpM^DsxbuMP<HkmyfgR$>mj2wfJ^u2)g$x``et?0)>QU&)B<Be-AbKlf{JiV-ONwM z%~P;M4AYxV<)HG+4M9GY?{QnaA-9@^ktW_J$xiBwk(-|bf+<R0W?o$_nuzK6<89KQ zUR(95zV)>-;|%<dn}ZtZ`(;?j$q+)jesZ)a<czP07uUBp#`nzqBgxf}1Keq($7#5A z!8_cYCTLqF<T%CX=&SYYK{0u;GvSu^k6`{&I)~qBm)OghZ2`!xkzkL%;cOt+e+g;} z`*v;Lg48!AGpDMLV}^+2YpMfImpA=M36l2O^yhhn5kE?g9iJP+i5J&mNJ=)Wdbe|& zX`rJYgrnn!XCxc)qNUt{`$S)#4F?=R(Vwus8W94$AL4(vWO39t)EVq{)GPqI+fZ>( z%qAZV{#C>mW^`$P(Cp~@A`<6Ej#kaE{J6)@@jc7-^()p(wk~(=jzWSw$Qk`L;DY@u zcoT?Eol$!Chl4K?h&gvm8tFKWERKKuV}zF)g&n*A``P~N_mwbB;tjH~hez*YNQTSL zhGyxZJAe%Nzo$WanKlPz>tRmAzoKk+!Zy4pW;XHvMT9ZnZ{HwW&21_l{xZ4#R8RbO z%-r2Vjyq*DpGxU3KLrOfh`;0XzMU;StlPX*yL2wX_l{XT@|o^&xfzLSq`aHd^Ltr} zA-k`aUtrtQ1EF93xe->s_^SkbiDjqz{RB_!WA^iVAAU;qgdNmJIQbtNL>87d98>0E z2D5Am&;G9N`fTBx^IGJe`0O`M)?|q{c{8wElUI~thMw;q-FgP2+JRwcd5s_rG6i|W z&pm|qWb|R#q--1kP5_0WWhvSVIc*UKqd*wiXTK~E1R_JqQn^-hV4s0?QoPp=*_18P zzi<@vrG4YIh>W9bhUy4FOig3MC@TF|O&_2j1a$~1#x(9W1T;IMs_~0?7vf*=AO0gH zVr+zzY*ZCy%`BF3#Xf=cCK(JfFMIzZFFDE_jH<2D0a83i29XF`E3mQwftqIB?tHBA zV;RgMM3U~+9suDbh1Cr^%Wl!UVt9|h=jv=n#ur+pK0iOkRrph1Xogq;Pe2AIFSwct zHyAp<4nEH|-}uJR{d3IN-+0q-<DcGN3&-@GYTCK&(`47D@gm`ly>Fu&toC64`5Kf_ zE(GR$62?QMJ@XCV(!QzO=)&}ihE>-1d_$NJnM6;J5hJhAq)M{I0=dj#^lMTVRZm%E zz=Q0-4yt%DVCjxTuAyU<1V2z#egNR1wq+L#&)HKXk{)B@?Rog1jbsrvJI?nZ1Jx2p zd?KeRJy>5e3l*#`>hEiSW0v7cK?tKN3?+T4UENBlM~KKMq?UAXtYDaQNrG&<bSde9 z)~`*=5<umon&cdv;micKN4PqLh7ouitln<eUXg(mn+N=TJBj84sc}++)TWCKiv}cf z%+*&Q*aykO3^gt);-|)BZmT_|!qB3G@~Kg}`szlSO9&ooan_=mvk3vU#Ts0emB=^Y zb81SBW8s9rv-OAPE37-g6Fx@sByf<FmAA!j@w-M9+fwGqzkZ*ggIIKwdZDKxl=={F zq%2(RJ<6S&^PHcMLCE`1s>q|T5dk;$Lc!%4?k}z-=1&fxDNo)o7AB2HX1pIav<<dY z8lvqe^@fHb+86v$^Y^DtKsJI;uI#AQyDogdc9X%-y~Hbq{1vLJuS+L#Nw#Ksj}y7Z z18p4Z4a=H7JvQ`@tt~L`oEp6`hwS*P_WtImuKMDgclXpky!dj$v~s{gtI;RX@@*jV z9lK!>M~0Pwah1b?l$vdYq<4tvYw&K3f%l1<{R!$LS8L#MImy0J%tp0oR(&r_!MJ^p zJNT8PsAGU1N+1WFn*In9LTb3*6|zluE2+zwx??l_`OOtMiE|dsqs9}>Opw^`w>9S7 zzvHd;|D+xc8?w>OOQ^7h(1MM7dcU@6d-Q&P>G&7<-qsvCvz%d741l2gC!`>hHHeOG zvWLE64U%P(eH(+zM2+!yYjQrBjMEZpPq*GuefrxqI8L2&FS{PQLgI2TRjq7Jn3gd& z{blo-dxh*LBVl6lB6rtthI0c%J}0>)0?^NuBr0)WABn@M{6k!V;37A*l-WCihW!%l z5)9X(M2BwK4bi;=RHSpK7;kgcfWoaOiI?Q5WfhGOu<&&b4kZA@u9WrvkQul%0OGZU z;&u!S@<EiJVPYgrpvZ!zqH2byg%7IS95TYX3m6M&NWJxM6kS=KvGCh8q=hn{M95P+ zubXNa6_!z)<c2<zVSt$+#8=7z&Lu<C6kcJW$VOeHLT>2-{0&kU&x+baXIQ*;+Qd$~ z7rB?1rReV_UqcM9@}*Ue`KUDKyo!)iO%$W)n?)fmlR$VLRI)xq6(?JG!H@|}Heu3O zl1oVITctLcE?W2BGUPUgXz!0op}nI=n+T>sLs~i6=xEd13GnkOrJQPI6oys!^18iP zWej`SBc4B%QzmzfsMAfNH1BeQPZDMb$sq2Fr}%91D^Q_}c%4TQLn0s7&_Yux*?zxm z!J~Yn@tmoa3big7o7)TBmOBrSS;t0b<Vh7nehHLR+mDTGe+1pV0l=%K%PJ<6A;gJ? z^uQtc0>`0Ho3hkzs%DL5nyAT1F3Dp2u(+4Kd59Xt5Fsj!xt3)}wZWI!c`bjpGE|6C zLx;WFhJU_w-1R_~15i#)a*m4DX&>>nRv;A&DV#}2MT3Ey(qspV9a-I+&n?Y`f93s* z<Q66iVX`y%hG6ECvV{g25eD>2S%}fjV{DKdu5{4;GhonenIn@iJ}mOP%EG3QMJ&Kl zLR8a2+m7ah>4A_X{Z}TE%HGxqmk+_RI?jGu{wmg24wny@OKBEU4G_+$H~yzZ;uIrt z)9UjB0LY5-@K=b&-*)pm7{jU16L|`wn^bEPJ)aI~Rr!Whh~}zWf}U;bE#Qg$D>MOU zh~Plxt|%unEV34l&5zc`1(+JY9hR{zVRmzHTONMv_LsdvoM+9Y_xPP%vbqa3c$mm% z&N;r7O}S-l-nhPI#J%#iv4r&g2L8w`dAIc$M*iA9PIUn-6oR;85|O~ozPlKQ8IHT} zXcpndv!ra-`W!5vWDyh!ywYkLzaDuue^vfUn}I8mO@l!Oxpq)y2SdbAj2Dso7#oNN zLH={+*Pwr{$%&ZnnKB}=>q(ZJA1*!@)!?Sz;8P-7WHmKFs}(cd^GTa?TZtV<^6RW; z&=+H-`JMGmE=)=jKT>wkb$n6#Id)yCe{7PnM`I8eAte>_N5^6oB15N9N~>p2Ms~PT z_!Qp+2BsIe(G#k7@|zVltPhqs7m~~+exVRY34NTAoBhw;u*tw3dO<9%^w@tv2_L7_ z<jn~{XYKCCBFM9TWfHr5D$9!SC?!Ws_28Ci-^pH7qsw{h)$6q~;Hz1|)?wU}oPfO1 z$0+Z83ZLh8>L|tPl4ggfRnoH4%k3?9WNRaUk!RfD*>{ZP$4Hhq$Y5_=<X4r^#%2aQ z&z5VsLEALYDJ^SNvMw<*sr{{Yuc((TFev8cGYFeqj{$q`E0TzG3mGck2x@<tlqwQh z0M&6-doQBQ)bMPHjY#S!4z-YZ*&AXdRPTGkvpy}dlGX;X`}8E`s4n^&N^E_+uoBj% z{g3E!33J151-8;|mQY#3q|63-FX$D;A6%~*EqbRet##;i``yN*DRZjXNpZp)G=Cv9 z{Z1DecHKNyg@gzso<e)~(F~Ok{9#6+1*pUhS5YVsX>dq580RWmkmBs#S^g>_l75d_ z5i!6r@)fd`SIOaX6vok}&v`DQ2kP&7nvF5?;Z99r&);26s7xKY=)Y$Yj4ZUR-OSdv z{MsXoxD0vom@6R%pVZ~?`63<^n7&5H9T~VVraWUoYU2S=mkp)|nfyLLvHdlo>CYqx zMvh<~(bEQaq1qo=A0B|i&f%M#D9pa2nddGal;g2o3zq4H37Yf9tZc?+7ywRQJC{D$ zTWA18Px9bkoc-L8nRWTR?+H`)o<9l;?mMcEvg|jQ{jcCz*St6c#0QQNXEm0loDyn@ zIz=a)@Qt9~))4N9(=44pu__1^v@Ez}&EDuaqiJy(Fc2E_MD2>AiVQ5xL{AO&E(RO& z-C7nsT$aRn@+N@)Xo^`SM~jyfFsyeAoE9<s8OcE1!s*R{*skfaAAFUZl!lBUgrYD= z$r>v!T#vvbwWc0Cha3pgmoKtmG;D|WNcJhA?+NLnpc4_@b_Q8cxFzu3ScvS?MKs_p z0#hFx?i#o1T&fp#wa}Pp80fz}&XNQehGOybJC@g_d%F#clMy)<yK`Wt1d((vK<L9! zBOcVsCSC#inXxF=iWd$OX6qLajyNp}HkQzcVrlf8H;6K?1D*Q1TI5kYzsyELH7;}L zAPv#p^Yb`M3fSPVcQFWT9C=yrmADy_vSzl5YjZGd%m=q+a+@Uqa~$V*`^U#mGCy%3 zRxblc&Pj8INg4;h8B<u>Oe;wPCJcFUi@;POVqqm>Rptn2kgMcDbM!bSf%1nr7xo_5 z&&t!$R#9mAMRXx#_?kT_XVV*e;9aSSF@^|$bO4?m(}FVNf@wk4?oZVMeAfM5gVmg= zEfePbWrlywUlld6Z0f&{A%J(V`1{1=wc!)05G~mciY;>}do=rnZ0Xu}^c1B3OWan~ z&@^+AD;qCGryo6EG|VjUX^O}8M+xP7+G~JMsYT->*JqzoxJVI?3~Tzuhd?)GdV2!F z*P7_27Lwu@R;oNp41&dp{0ZySC7gyYk^WYCsob!w6!#};^5Q#CevwM#1^M=Vtd6e- zEBU4w`x6Ea9&wFu;ljjgY+Mck?;5@K6!h`F(nkZ2yfFlYV0L9^a?N}W0}Pd0N^d-6 zBj28J2wAzpL5f`cKS+5g4^W!cZo-Fyfg;ou2fFY4c$8&X)UVjZydPfk!@cLJ(X5aw zekaT$B#LbpNI)Zv_Hp6#-lN#QfL|vzC!J5v;#4D!<<I8B$VbNQCq*nen+}Lt(SPmp zYLA&`GIO;l(a-Gj<&QEKOfpJ0A4KnVZLt1Yl%|rvnS)bd2B(NZr!A5(@`e~o$EeU~ zfvY-}U-z<{PC)Mik;s$dTOrmy7n0pxS;#96T9Nt>iAS-`ST^QU)Ka3q4urEqFuNE= zBro|+1w|y;pJ;Z~QgzwfTfEhL%U;!BzL#!UCwx4dLk(NhKct+Bc*L%1=teb^?*B|z zB6(k}hdszFcre2~uPkFHFT?U_ot`ht;$8edmd-06slN@t2So)$1;o7oaqm4VK-}ie zU1_Pg_bM$wackn<g`+Yn_s$AUP18!ta#ep<Wwx}`%!)oQzRTam`Q4rOoOeCX4N_fn zPjNXrI9=CP$->*xj+pv>wVV_}!fytg51_~mb;K(W6$9*iIJ(7Og~dH<h(DD$F(rox zA|VJ3!{^o~P~SG@u1b5G#o^9qQfH}rCjwpJ*GE(XB<1vjsu#y-_T)09CJLZPWCfPA zy}8+wdhU50c`zZQU7Bkz_^NGE;KB^;X3TX5Q{ut|p+(*<?`cr};%v(+c_-@a0*+g( zDPoD+?WyM@GCr6pMCtHTHeKwR8*uv-N>Wi!lT`&}fpn?e#+#huwg5VOsN)g(wI}e$ zfwM`$*%8DsJ_%9`v<Kgz1Y3QXxj%whcAG_c-QA;uzp5P18s@ycU=E?qjFF#kT=P>K z8b0H`EGjj_UY_ExlT49mZy_V-n>Do|yp75Zp9u@*jZ2!1{1vJ#^<n11T$AkPAy(J| z--ow>5v*ya7iW+T$CX7^5Y|u0avLBaNq&0_ztEuDn`W@XyV~~@oZZnwhH@WSL9>yV z@HvYO4(K2t29Hm4Ji2q?&G=K-$NV21_nRlV^WI&MdOxPVW1*3{ZGXikvi(fpLU5oh zyftc%EX$&a9lR&AcR>4NG>e20+1oV1&s4r0mLQ8*bY(<-nkN2-z<&tA9S^jerHPFZ z|5dGwdvTz*Sa1pp;QK@P^Oh{zM-<$m3JwxmV7FHE>2gy<@qGfn>5#-{MRO05Y|0i- zu`=%t04a}>eZ3Z2_U#`#a=#=}lG-F`2oiYxO~ND9hMX$dNEA2(L9>Sbs{->2L?N0$ zzqP(POcVdlt7U>R6X?)ZzlB{IloGWK8xh;1L<%2kC+Lz8>r}XC)K`AGTtyu$O=Cai zwsjZ>FE3efa7g4EfIcK?b43e)iQ<S)KM%hBVvlUsgMVGA`^Vq$@8~xIJr(+!Fz&X^ z=D9keuyaVqrSSuYL|h_=;E1gMHYQEuclxmSKETIf!9P=F2<;N4Gy!<D<h-WsIED6~ zmxk&i?I5{w)o*t)JKo4$9pNjH;@_v^euS7!MQAwCWgTVA2UvoC+!Ujv%%1~15+mv^ zhvinVPUnii92q|k5C;IPjb;K(+1y^roJovw_RrxTk!{18p)?Sbt6_UYIKrQ|Z^$}s zSVORpzb(enaL71W3Q<Dd`bwur?x;&V1&$biEy{Ex_Sy*$9MS7P#W;@DW*OcrW#Z1A zgCk13hnU2^??Q_k5<9Wxx3<Z2j;6gI{LG~zbLx(NwymdHOkJ=C$~(rfY?37l6pX^d z?KFvGnrSB>3871_>zakM5=THp%4xy%?_|g=?3}i%Ww%ItewR%=#VV(5wS$Z=xvo+E z<~u)Kv!K<g6U*-tP1GIEe*RumgsdyLt~)17JoUqFe29?XFA4dSD-M=gkF)GyN$S(l zD!M_!U_AJSr^tv~d9Cd1kVo=K!8o$y)~*)MF4=?ROt~8HT-kvU`wNN3h?7aYJ#*RL z2!?Sa7}$<iok)q&SUSIJ4GC3b>6uG+5y`2LV{r<901cjW+iG%1XPuo3**Ldnt}cog zHXPZB74V7i?W|kU8}|68N2I4}xy1cC5>M>={?1D;G4ZD``^h-(1q1Yj|Il~A=Q<C& zh%GjMVt7;ZLcaA7JyQK2Qu#j<PL@j{97lpW>fqCaW0dMZVo;}UXp`w=yj|SzMVEE^ zWYsf2f53h8g9XX4yn9BxWWN{h{RHXwl+!X+`sPPl$1eSs_Gp*f7-p%RurSeNAJpsq zgT=R_<50j6oh)T-5NGN2pW3H5qHmn#fB~`1kk^oOHdzWDXYZYeSAN(lWBJv30|@8- zNroFlOHd4mjXk{cgw#%g+s`;lQd{P^R^mpFu^^t$zwgwe+etV2s~Q|U?ig8dx6Dnj zY)3lh{zkZSb`t5`L_2j}(OpH|;ldB!kNl39PfwNfmthy`>|Ui@#ZzN<XZmRm>8%&u z2uu<2ro$4AGG@XNX3MOfL}FcL+-{}b^#`<@4=6-0ij-uH@vUP&6zQq5BLlL!sj~Y! zYY8J6nYRlph9pggCG9Sl>65?pP{m6|6~^^#uf`K2qwrI-2!*6OtK@IP1ex4n$*uSf zLGY~yLuO^Q;$e4hx)>3&hR=JSZthhL_KFLBWPIn*K!r<-wXOzljUwE&Lw1Cg-N`z4 zI*vlRKP0={hBH&*h5sl@minGR#;3I1HW|KXcHS&*xaV2K63ql`Fw$K1h7a*cc0Y09 zqlURAUK03a@r*EMohU+)fp^h*(@8RrzBwaP^KrHbzR&2%oN4V$$CKErikj>9Tfyg( zYajgpC;#rdkt{VNNcLVbBBl&qeAL%=<uoPjtg1PpFRDnMZ=5KupIYAw-Yb&|konH+ zB%Bf$kw}pV7a(VK0<($q$;|(3w+wkJ`U&gCOEWA>SSYXV$oWn}KChm;2-xm7OX%Sd zUh>`J75WZyLqEfh{LJ}ny}l0*QWe;z9XHT5yHywZ$V6h3@aOAaDbz^#vAxU1dXbc~ ze{8q(rmE?!&A+XqhA$dK5a}ENJ-yZ?^1Jt_j|;-^Dfp|WFDWz*<Xoi>o=toz@?cvb z=l%SL?Mcst@;AD@BX@uAA8))}@aa5J(|_|A2Za4ehqxaCm+WbM{A-qSdhZ(T^&GwJ zeJ?R3)&Ga?uEWUPbHB-5N9<UCf4w*|O);Psm!IV5-Tfc}CM^4EF&-(V@p!}iK@Bg6 znFMr);s)c4d9KKBa*BVu(<6(k>e6(<XqRzDFm8aV^{8<|0T$dPsizQNmQxp~NGBG$ zjEL2#a%X290%GcqaQ9>dm(=s7hg68C7)^7z7>TPrcNLxRw-G*K^Y}KW0)Nd>m~gFP zjbDj9*~+Q>btI=K#qVJzQt%W&)uJk8V=c=}D`NsC%OVx0u)QwBG)JD_R55MK=Mutx zid|Uci1#!Hwz_`K_(6R`mTDFH#1Am++uH{he+a)_%73Wmp=OaSdZQkm9;)7RP5DK} zuyouS864v5OqLRPgGt<|<f_SyoOS+;Mm`?3LMHBCY(*qcPVT@ST9}I!zVlIR@O~b` z+*1u9)d~0LSm~$dbOzn0W#QmT!X;HI-OrY7LYcLBi><@C;|&ceS9f5CbjRZ;MtZM$ z=**~yU!K#LSn%zcF^TBgb|ru~FSSRK26rCEX45|rg)4F=M`)^8yDnN;hZP2*wu;4x zFSku7ey1$<1szG(Z&t%)<UIb^qcf8?jo}nJD6IdCE=t2W;fh}1tZ*UE8#lQJBGe6e zNHg{9uV`Fby)n*s5^IYK0n2`o{C>8dfvd`Db&Oc66ChTKTVs#xrnR>GW0qKt;#Hi} z@R_Dk<4y=6XO}jpXBMi3*AvKB;`3~JtSD_t`GLiYU(v}n6-JMSS_^mCY2jLO^4u1K zZ{B&e7~1|sxSdCwlK=`I;&Xo;twA!wiWsUr*2{)9ymZU4kqGL{5gyFXz`UjEH(t@@ z9sZB<uU5AwYqNO5P8WIoJ4S`aE7UjLQE#Kr2E@IeN%mg-q4F8?PQBhhy~+cNlp?uO zurkW*@)g>S6qlp$sqXQ9+Uk$V*E*3&xXXb7A*JbmDi$M|{_k+zZZ4w@8%O1(PzUS} z4BaxlHmJAZadn?~y^!Yg3gi8^In`T<fv@w9Z@y{5Wy|I(RBicXrg=u`;DtQ#b6@Xn zKlT20?^jELfV4#N?QcU+jlnii^kX%3is_o_=ZOZ5oN}&PDg$DE;?J!T(H4RheZ<@_ z7s$G{iG#;0DWJ=0o%Y#Oap!rYtXRk=!=vqTBpz*noh*L?E8}^I_>Fg(YPhmM)+=)t zo;S&-gw$_%Uk?4$sdAWWUi%R@9usKh<sQO%T|21+Z&)ogdrmvn|Cx3v>r-K=31#k3 zoYY|On*DqG+3A0OZ~Q$ABdE7$;(^OrJj?%qkWCNr6!C#h3*zwgM<O#_%Vxrbui1mD z&OAPK*4$(h$cN_!jAtj-<Hxlhi%&B$(9MqNN^w|TPebE0W{WFUu;LTRu%k>g@+@W3 z!z#*M`p{8?eZX5MOE1^W*_w8~M2Qx!ios;RUr|uE@64TPGB_qD?H{ZPyj1LYq?37@ zH?31UKmAG(wl+>JQx)N6HJ--Z2a&soAy$z#%Lqrl78YFGS(B0Kphxhb01B{<MJnCN zeTh)7W0eZRfApzdCdK^MU?r2<HdK-_gTeS8E<Gb28_<hN8sGtcqnZ#DCE<(=hRYj1 zKIdV@lA@A&yqto{u-UPRcL7LAb3~<OA!;uIZQ=S*@p!PUw>~fbdjDG#TgX|5m4)Ls zoo*yWV0v>7gRYd#v!?sODA}XMxeF#)FGi9WP2DQ-QDUcCmOHvd+MG^Z?>eVu`H`5z zu*?|9w&G3LqU#M3`Qs_`;y=HRcaYUf>iFU}%tB`YlKvP7(Y;|V`=av9Xh2ON{G9sP zfD-%Z6=>9_Iy22{4EFRjdLQ_|eo_aEMh=S|x;r_LAXa|rtvYTfZhX_jktYWbDh1_a zIcj`Q4HB0}MePrn#Ll52+}dknDo>HT3HE7m+qsh=zAhx?I!fa_kiWk4QaoS#n#0?4 z)1!J5g%Q(FoZ_6SJ<khUY*)G8`&!zHHe!)Mjx+c9%i5wmop}w}*z(fCmzueah-<^* zLRUvwIG)KWAFmM625c8DoO+G8m?M(^4y|soTS0m)KH2aVd^XDOHDSQNPy>nAs$;GZ zQZXk!q~{c}DL0!>4#i2wij%LaZrm^noaC@QNO#N2=Y2KXhrQmG%@t5HdG7f4j*;ui zxR1B5c*7)4ZC@@QOqKw!oP_l6E$)Njp*R<P;uR!+V5hp;*BEb-if~j&K&1c2D4rLi zvzO~jt(wONFz3r>Ua32pn%}8Fr@CemdJB>5Ux}yoPEj5X{uquN`1E5cu>6*|UZ3zs z+;pmyQBIifgOuQw{pTAjPOZ_-=iRnJ-PaLfKI_rZDzLxv5^R60K;^jB;-RyhdFV~| z6EIKcFsBVXZ<?(jz5Qz|!uuW}?beHn8y_l<W!OLZ+J~!tsjLtc#i{opy6LWzU9=zb zc(LAP9D-t<V=G%1s27=-aIrr3S&A6B>Us=jL^7Q}uIQ=7h8R!kBD2nn)^}}>i_dUB zCPMA|Q*dVEDQ@oQ$lSf9Z)JTrpKIgc>LxHt$y=kz=eJ*;nJQ5i?#7MghnuG`KY-Hq zhAb9TZ%9Y0s+fSs9rX9w3v0syG)x8sYIp^f5-TXHJ(!BJanLQ5@6yiz?2=8u)wJ=m zX&c$~r6uolsa%3N?JqYkL>iXepoI7xm1q?F<h*Sz{Mn4XRIA_Inio~RB5Po)**^78 zaz(ahs^z|;XIA8Jv{jJ==bb8YQ1O&j6U~H?UG0@z8A3M06lNqQ&TBX{GfmEhm#mJx zR5Yc;(T>g#q`eAKP1E=%PM|x2vnyxIx!a{XY0`0Z0<|0Fk0e?;rb<wov6}Mt+yx^T z2vLle-!$DCy@ANKXaaHTJ;-W)D#T@^JIqIz_Z9Cr{`kwCy0WN>q*JF}Y09iGleRkh z1;;r#b*Jl);ajv`o*19pb#M8KFw%VLG?+5cjtQ8KhG=3<5l|EI15HOWDe?9UX+r$> zomY5x%yOC-9?U~6e}5`<JXNZxPN0y5KktKaXRs~SxsO345LC>V1*6DKQ_)uKj%4Nt zXCC*JXyQCWhW_eTO0IYOq4A-8D6tcOy#0|Yk#X!#`;hN`*4(-80y5z5uK`~_O6*6X zG3cf6@?l9W<X;2sJEx&8j^BR%d%BsE?RPNfs@=Es_8?!rS#FP~<UHxRKdHXk7g(nm z4wv)3g0Pw#a#0*gZ5o%<)u(v0UBSmUH99WAno$-X0$by(CNU}3W1aIgig?Z$hyR-X zRyB?PxRsxfbH)?#-s86IbcWS;e+n-cDbHoOVrZ;@8nbx#J$1$S#*dJ*2h-tb$y;%6 zFApe!6N*|I>~2HXsL<jwg31#b%REWWe8;=kj%!}^xlc#jVR*m8s5~-WY@E3cU(Jq? z<<7IJ)^CfmZ{gUD68P07@Yiv{?fu)l;X?E<NN}y^DIR7)b1$0|00jIrDQftmG<S?s zAInkGnD`)t^r<cP?G;V#!;018w*32R+r~~W-6nCWE4+~nT-0gIYXUDZFwDL{W7Zd* z9B|)ml}~zGe|=L>P#(6V_))!W_DbXj!wt28HVud-eYh?E?N`hd0`JT;Zjr?k?6CJ* z({FhiBOGaGTz^-Y;{$1&vdZ3)oY9hc87=i&u|GmhdAyJ-&|Y(s)fmA%*2MdOJj7?0 zbMgH)MjXVGq6rE50v3EP^mCQ3{;LnW2Gef*<UN1AfbjRLHOqf;GPwhWx&1!8#XS2j zNfW=y;(mLFi|IQL=Rn<_7)D=%a6UvaSv;pPe0Ci;5|J-~%B>5flv9y@bgj&+_FwOt zp?o;>A_hW^;f?|Ld(MjeN)@twv@Kbm?|~7Y5rD-o_s1IL3|Dwslz9HMUZ>uW;KT91 zdcu{;#2Y{1UmBNOXjgmlU2R2M{bu@OFJ_B>eW_Qzrg5FX)T#{jD{=$Ff55_dpAp<> z6~GUvhpr<J02JlIQ@koogQqykCz9>oDu?@l4Aj<yyYR0rBj4w%lZaZo8JT}VBS|Y- zg_Fot%%{W6BI7#b!7}oc3tK(>hkmq<L42&0or}6@@LYn9AyN@N&Z(UK!>~}ts5I6n zO|a?yb3CiX-KyB=W~Y}Vl)LSRlvL`<l}_V(KTL*nOev$CgX_y%RRnO_m}z&c>4J_` z&^0cfDEV<S?vTzSUw$0j);YEtd+b*yNA4{*CX;V*8S1um>);0gsY?`!BZ_qq#Wum+ zQAecWNJ?EKwH=a{uGv|CeqHVyxT_gamuwzKw(cSmyO8L}osxQ<D@>E)JLZ1676EY< z!Ce;N<=`#29;G|Zw!h2v9(%`jNY`#O&Te8>L%j~R<7=$pir%Bbl>Io&>tM~xsK;IQ zUv})bXEBXH6qpIiNrl3e0hq5N&r5*&B~|_`lDy0*+6~8<K}2^s-If__Dj;qK#W7%D zsul+U#(xvVQR*mA>iAdJ;rOnr(}@LT8uieWK$$J^26D9&*I*c?n=D2UV<s5V?bf}_ zfcY}2K7$OpE#K}G09ZG%hb}Jho|WC6k3wOP35FMk+u2fWRbO`pjCPN&JJuHkSfe3O zm;49;i1ocZAx{v&vyu<(%slyK_oNFTSQCHhW4F~Vm67ujU&Qo=bp!C1fd3g3n&RjC zZWqIy;LDCaq5hfb{e>W}IRx*)aM=UABff~QByd7JIAlZ+jYV?5!h#cg?+Iyn=$({l zLqV(s0H`b13D>*kQDa<aem5jx1*5s*D?+o-q<M#zdJ7F{MkM&gzVa2&_xrRPR9I&G zuUYH9xqOolFx!Q*@O3v^#t2hr-uHaf?S0+Vm~z@!uA~Ha9j4!hdPH9-JcJDIix0BI zf}8ZUB$?jan2<s>&;XZ{fEjGZ4c6FA88AONdJW$962YGeP7vaZ(+@kpcaHaLXsA#$ zA5O5Z+r79aM$N!bV+h2*3>0BPes*iEp9u-=4&hr3Nz@BnBgG`{Qebu@xI7`cKb{Q^ z(O0MYx-0l5oFj)P#``brg&)!`^vgltcR|I=0GtKdDDjtA10C*#uwO+8C%8lBFz}zz z!DM$Vl_TUta=#uD{xBK~#8?vJ&+o=OF(8`Pq1c%7pLSvc^wh~B9EZR6cD-(+1oZ)` z_xWC2y+}g89))Y2#F20U5=Kr8ElqsW<8~Zl1yzJr{S5dr2IuZQRC-&16W#CiMynXc z^vCl){h9W|1zqABEM^8&^x9q3kGoiYslS_dodfLFhtpp1y6Fao*CEC+m%fOokNc*E zHfARN#GpJbi6xzv>C*xXeDEF@l;$tc{NV#XlMRwmC<-F<T(UqC9^hd60=EqZcUaEQ zo1n#B?~Pa3)x=AmL^ymz)loF>Z$ELY1b3x5?Ds@>4M2U>9UL)2y?Y`nF`h;%q1w+! z78<5rOhPw{aO{X$srR{wm20xxQ;yW--1V^f+N}j<7V&&4Qg}>r>hpF@io5eFe=QY~ zaDsyp)r(WdoYmk+!Lov+%DnrREvS8N3kg{t<}4-lvx;9b5?`LVnV1vZSct`>VbAAG zh;Y33kXK#-p_ri56UErHVh}a=nrEx}${-L5E!ja;ELRU1)eQAV9$yWf+{ZjkDoKpb zZ&-~F6{2e3DkpkyAz~cwJ>|Qo-hTaZC<+bULIqna!^V9tu+4_yBg;(Mc{FMT=7s?~ z`|^JMh1;)4Jch~mO@fUWHB>TPb5{k5s2~IrxZ(+&?^WERLM4I2Bd82>{5S_<_!mZ< z2tE9yqgbGd<(f5)h6j}myN8@A0;tFrmeDJ>;|mohT#NP!@IC|66|VtNi1IZD)s+{} zdn^!Y84$)m4F_-l==i&mDiMMJtLpYHrpk;1(a5S4U>@GcZ&iFlXA#Q=8hH*oalW99 zSLZn&m4}ux1wB)gNP;6&IQ*`!3Wp&70rRJr|0KX`gW+n!)bZ4{jk25q>aWQB!olyh z&FJINLmd;o6agHiNB~z^zJPD*^R8HCR|%$7=`3__+d#Rk0a0Jr4i!4SVD(G<<Y>3t zYZ1T-bjjT?|Gx^QETg(#<=)6@9J(&O@=R%HH#qMM3RQW|oghd$lLa*tY?1JmSi)|K z(bTFmGK4$@S&c#%w{&-THkHnk4GdJ_z}YT*xIT%q6ySZb##57fDxmukY1R1$?h2bg z^CFIwR2`5?7xP7{gFy1iAe#dW9(Ixk8mYF55^i86E@8VW8AXW?d6b$>4$e;mWQTSm zsti*!&LBkha9Nd1DH1wJFO10Y4xP*PPOUIl!uck-S6AbFD!cfGyNo<8=aSH<K`kqv z9tt$A>dwN%+N!`F;l>ws-~`lnxU|Ga&4+cPG%wq`gzpTBX`;-rgxAI*XJ1#Sq#{lY zD*B|jYu%L_AW;7%a=fp>^?3_wvnVQ<LB7<2$o|1!OT$QlJe&I@FJV$@H5g>us#bp= zgaIt-hC#f6PpX4EjobtYT4Jo>(R~~RBH8A3S5EW~s%)^Q`}K3RK`QAC>}hg62dh{G z_iE_R3x(z;v-;lSuQZyMLDVDj=@;iSYiGW3jA99+X`YXihMy$r)eGRp1n<`S^>WB# zA9?!7XH`B?OXY3T$M=bF0R6bU6tw(#_amY+3XdnRnQHppebcb|z&7atG!r&JkpqlV zCcXdm?h2JWtjS{A_D<z<2;zW=FJ~YXONy(a9Lh|^tY6XBlHFyg;Zmu0Pp~MVrSV4I zl)oNR|At@54$3L7JoMfL5KMo8zc{?qNr^$6+kMz{e8k`S2c8$}xhrv!N8EyIan2VR z^M7%oJ|iI8Hp%+;YLX8>4*2s>m>;zMVhC5X)InY#+c}NYx$09IG524Bm=ixa7C_z= zQY6INL0n@k?!HNw1F-bXu=8S%TwAZ3^)l{2gu}7?bzx<Z_wZY2_QuLzjkou{<qk(= z3sJyVwY=EY=0pMXf483uc<&#<r!GByVYHmM+n0OBoAz2=7yEkcz9ONHvaEAT-jtRR z+RYniAQ&>pcGK&@WmIHXGtYeS<yEG7%VNd_&eWSoFaMQ3E+%u_+VI}*+WJdm0nDJ* z_lqa)%7NbNZiila5Nz_`mJzfG(+m2u{bO|yqyQ?R!peX-o~yXNL9MX^)T-+S?*wj- zu>DZ{J!i^LoeY4WLU*VXSPAP@?m<&I=ASzo*m>};^(_Wi1*kMY(nnlRc@~ulaA%Pq zTC0jmaC59Lgi58-sQ3%?{mi<O0=#We998R@&1HG-DpgLbJlG6jJ3c}vV%R|vtcFWG zt?FxQ5$bVbjZJnr6{v^-$z7f6xN=#48(_C^{HYz@!O)yi5&WU-2G#X)N{;@W#qO{r z_P|A6gO=C*ai13NeR38s110@F_{(e9wmd}VwY**8oV_v{W`JrOHtblRC{ei^&@>-V zloNJq3=WE(d8!_wGmgj3#ZD1}MnC(kJCEDHLf!kUx`qThX`yud`i>V(J+(%djq4(R zt+K#sf(SBY+39eYp;FFRp<-kWodGsg_pey?C37$Tw&y`CtBxGu6xH8SWMBlp!39j^ zMx!oGa)|Dl-6jKOE?sDV_^odD4Z$|amCJ0Qv`dN@0CHrZDFnQYkiZck6mj!S`g0px z2Yt>_dxnmHYG*TE*dMuw76KE^cZTfce1)9ED9F!oLoUM;C0VvD6XY>Vks7vJk-OFk z_?5jEvm3AghXoySwN7ORlzH_uiV!)&pn(-<E?WnZlN;lFD^s=5KxxQ*=((CCzr9&b zcy~ai=!Gf}Qt`qjRKhDA;F%LLxyC4qzIr6y-%f$y?`4-|(->r@oTBS*caG6De)SAx z8S?U~hWd3$V5(AAic{vVlld)?3$8NOPN*GaGL!>Dt%jU*UM6r=JYsOlI3YvH<(l9( zme&qxxwde%dFK?)o0~|%xT;wdAb7xavsLCK5A~v)6WNjWvj61@fpc${0DQgAt1-AS zw1hlWk@Q%Ibbd2?$<la2x0$R}524K13$Cja)}8J~uequPbTl+dv*kKm3h{j3&pl|! zS`B76oU8|kT(ipOCgiW?b(}oOKjQw_EeDs5wj22z^F;q!6{^eNLAogM%@=swwC~a1 zvw`43=gKgx;|O;VlK>#Zwtiy7+m?ygL<(!uEI!&-q^wWalSVu@Z^~^OASj?G^`+{7 zjK%EU077X6W4+7`s1idh@!^vQJu8MZ9(0tktd>pMxdcD)eWo4k<n7$E)HC~*AizLl zFUSW(^!tQAP>b_P>)Uu?uY+qGxA$P6_lD*3+lwEmDM4vq>0qo2*okNF5jvU9pRzUV z-lN^}Q1HDW@sS24U>r<=wi*187Sd?hd3E}~SKVq0){GW*o}SPPMAVSFAQ%6!YntGJ zySf8*A8dDI!FGxF;;fg=wiIgudUZb$I8}!XyBMJud@f`a64Rgc8m28144nI_U3>K+ z-Sk2(<jsI((K?85PR@v#>hrvJ97zU&wGm#r5Mz3cHEHckmKnuV0rmOjwToI%kIM-p z&8E-(aJhEsC!6POH%7Ab5jP7P{If>z%7t2^KbBBy^+dolIw!t=Bp$MLS1IOcnCs`& z?_K9m4SXZX8QC)6x4mVePSh-i?Ya?qTobwp!$q>9Nx3k^Awj8^5X*~}mjsJZj4wuN z!PVtxCSA3RPD$p}vZivANW9vOr=<Pxz_@7nM|PAGPDC;bXGtWkmHHbO|At&zUqf}J z-@+Gw33ziuhI3J462yb578z{&fv*vUXqJFOaRwTs_0xK)QjWM)T}&xi&+d%J=V@(F zB?619U{z@z+W5lswW>q2aRv_-ifkQYa$bpJ4JpqmJ4V94*_Sxw%PeSTWeMr1$>%_^ zSBmWFH;NTUvaPOJIHCxvk&MY`YlRcqKw3?sk9^@P`AEH|Sy|gfNtI7kKAJHc_8d}W zg5}oj>Yo-_-MS!svqr^M)V2#9N#+Q_YJT|MABief7|WaZXi@k~r;KcF`+dfK+5;st z-bk@TOrW_mv!6C9?*=aUgm7!E&NkVzx7|can@_ZY$BOLGH&bt3x3hXtMtm*6A#BV0 zrD_4S^f~s97SuJ`pTn^TqDzV7n3Lx@=UfWGq+_4gSV0d5_zOphW{PvoZDUmO52o<) ze-*7w`-WUm^hQ+hyOVM_qtXsnxuFus2MR2!r7R})dP*vizwp<KTK*GRH!s5Y;&Tws z$iB|*ckYCbx(;f*c~#x}<<3^q=F+md{H?Tr8~#y`&<<Ur2=u)5%jX<gm8Kt+DpLs} z?6{L!NkoUado3}4p>x#7^p=p0P_Jedb@0r3G32AlTeg>@H40BHO<|tow=Ej6@TWB7 zU97RiOcINliaL<N0Vj?WE!;pqV}ooxI0VK2Eb|!j4I%R(A7GPZeZSI^?>!d2z+H6b z)QLXr)^05MOx%l_$4_Oa{O@SbtXe?qeue;oE%}i?71tNt(!Pzh7aZq)EyG)>j(yo2 zE&HO0)?tpEX%zRK6)$e>H<X9C*j}SBWZf%oQ<>M#*vegBrn>RdSv;d#isCBBEaBc% z1o*S1yp8tHR5Z;&>AR(c7pnM_J`S2NL5GQygPeEDIjvWG4hB5)@+!0&<*eglgDmpT zlbJzk&|i&3!gthcGPQ297{~ZFd)9k;2l={hcDveJUAgcwUVgk^IQYNOk_w7iZWAkL zvA()uWLL?hGuWH0^j3EB*%Nj+vI{Lox}A4a|5gY)ORj&j?Bm9s>|YaovNIoWV6*-# zB6OGVCszNA`>UFHZLHUK!3~cGa@Q{s<LW)LuFa*slr=L{BP+@mx2Mp@w6M)OZ_0&J zEYG8DvnO=<VgU}t8UX6w{gBdnV{NhQU<G}8>W;AEc3wehU*ys6XJGsw-Zm~lt)2*P zX9Yp)yZ#EN_IIOG`DkhaCif$uasY0zlV)mV0$&O6{a{;k$1Sc1A1r5S**+Zkp&ZN1 zzg)YbvtU}BT*5ZbRhF6*eoCwk*Ycmc>(a3?k@RvIuT|fQMU~Zk<)>hM=B=+;#{@%e z&&vfy{`xzwSfMEHwU)w8^c-n5-oDTKR(<~H*7C6@+XrVDTFk!x;$Ea?<ISkN5i^gU zzluO1o1`qT00@%s*X`uPn!y0=NbBY(>Z}a&BR_cC^12{(ILC9T!EmD<Y7&>~v&Wnm zX7Juq$Qis+jRD<{ou%X+jW4pA^mdpD04xSGInkKiuHLo*v)|9}yJDdNR;fQ92(Z5; z{`(zxCC^l0>*VaB1Wr!mD!F2+;l_wmll;PPaL`8NFd_o;^4Q=%Xaf%)72v`ETvUK> zIW~AZQKJ*g8wGG4CQB?J`2(sP!v%8$5J><p3+!DkOuIo5c4Yw&0>Ifuvt6cL)Z#h> zUxOVFlYKDzxCrtB6U@svoMj?Jv>$?H0I=ajIDt!P9ILlam6-R8#=>kd)WZ!37z6xH zLG%Ix%<GtHAu2*;rHUm{E$2mud&1>yV0aW@;*Kh3f?-=!FazN8HB4x~DCz<5wt+vt zqac$J89W$(hY6tfDdofz^M?qlhoUcEIs~mqm}r6Psj^J!p%@C)BP@8fLHK1n$K3{q zmW6j656ENB(rYXrIRjzD1Kj&5BX928?Jl$CZw{wL2g`d%St717k_*=4dANY(48$D+ z1cVu0ic#a*Mg!cWM?aAl#*PiG(kQcL$@dkt<*`AeAk^ov<Ao?eyko$gCE7@r4GZrT zlqEoX>L6Yiha>M$TH1+fS_w#k$*r@Zy)khY4U_B`z>g-tg9i&^0#GK<K}Xaxz?<(# zK8Ci*GpG}U0_b#<+7R%oqCk7!gFi|-nV1oz#f9`#=LOQG;uy;vl9YX`f<H|J0D1<_ zC=3HZc$8ETAjo7<QYott?gYebpzN47N=RVTJ>!>QfsCHhYb+xzp3&{hg%bn#Fm!IC z0>}c2%3?qnMSq)eor|a;PSBTbGU59?2ZjaEe&KWD3_T;j_+}}xo5#8m@VDZ6v0Wkq zg1AA8QxuVhyuuRLbk5y+TT#Cf87G+j2a*w_Ai6LKwH;Q-289KKU{#OYe(N5Sc5=`e z5|(GldO32ZF}d)Xmy--&=?mGzd-B&vIb$Dm_%K`)O#1oV5QI}Ps12||WSr+ZB05S5 z)wk$`(E3(OV3<I$ZDc(rkb?!-IHrBjlAEE~_EKDBcv(PSmqGJRC0ALBOtea$vu!^; z7vUER+5(&jY0zcA(Ow=q;EMhS-(~0(ezE+MkB-0gI4Vm3<CiTkA1Y8-$51^EQ!Y^C zIY?aN)ub*#1&rmtiOZ8+4j)8CUj`OXZbpx}6*WYa^9=ClDd8|m$cFcMqpPU%dZp<l zlxk%fzzfr^)&s;YkWSyI4j3;|rkN)Wg`@CXZ0Rx-l&K<Qgacvf<+gbqDB_rkNbyGR za-dFWs8qgP_2@Zk<!IpVPvrco8q|#b)K4Cql2`DMv}&o?><{4xBiv_mTZB_15rz!z z_k?5Uj_HUKzJ<HQWU~q9sBGrbRZ0l8$uw^!6tU&wpasqDce}EO+?&AJX56rUk96mb z)t;*yaJM>lP%l>)r#hPc<a!dP6Ra}{sA)i55<~tr!0CybXA3(eS)j&5)ntbY%Bf9B zAH%-6)k>nSEr4M~HykjSDDB~jv*u_d6Vg>ofglqp7p|%~ozyA><!$Fu!WOUJ5H>%i zggjqLn(y%xG-5n^ftpXq8J&*}a$<9-E91Brh2_At(#OKp#<*|$G7`$TGMG8o2$s=> z3eCQ$f&{FTk#h&}@xiG2CU1`_6wfAd5@$Fu<{a_^ZL^5l8&Fx#L4tg*pxSxnH}AM@ z3hxh~KEG^)v^xXKw<!?6T-g{vX~R#z33{z6g~Do6!WNHihR-@FNLz|laf8s*^K#KQ z1_uN$EK2ky#FTb8pfn><g`w4kO;<Ni$w0^T;S&bpEqcbV%gPmV=RBN5N|T8+f#&w` zz6QJv4zY4mYPTjVyWy)7sx+!xd8pus67J?E>iPKbG$8wcLI+h)W3=k>o6aV1KNRoV zL<WxB8VW((S;ObikX!7K4*qk%(06qGxT<L;lCv$twFxC>lD6T6dY&UJY9owP0_>GC zl>CxVex+yUm2J0*p3NP{E4N6z=$4oVUS}gY5D8%*Pv?>9Q$+wT6`1$Zkoj%e>3uhQ z5yg9VfQK>;9D@PlIXctIK|CygBkN9>abx2JD}E*b+-#T&taBK3Yyi|bFf@p7;R|so zK&)&!)cM(mws26pGO@d%tzM$D?uHReD7l|+nW{u=ea9VlO&jR$x+}U8ThFuswcQh* zNTF2=JA6P23W;gSX9puYwU>fr>aHLi1H!Nr?jQZSUYbM8au+<uDnnKshsMF{IlyHV zq;4e&eh$UvNpDPB2t1pCu*C#|7y#A8K*9$2%8Oin?2Od&b-oee;KU``bSl(Hm4|u< zjz}<9#u=XPx%K#XCBa0C2r>gMe^Nj)m${TN97tc#A;tT@csFUJ?D<b9CpakGiXs~B zG64P@mG%A}5*x$`N1itaB4eSdM)$t)_T#br4#fUUoj(3mdFR{+xs_JV=qi$Td<YgM zunY(Q6QZDr%kT-qKV3Y8?s8W7Lu>y;6b_8AlX;9NY?M5Nebp~V7>G1KOH1V*DUbPs z1bZ7*gsG+|4X6#ZVq=QsKG#$1B#|7Us8$msW{lWm*WoZ!&Oyz!omL6+xEI=<T0F%r z<RVNI+a<pq6A_Frvm<2o<>r-FRU6jaF5Z!P97ZV5L)0~byDLyulVj2|`tL6^%XTm$ zW-2PIMYC@D$FxHN2;6Cy0Be6|)F!gLjmL!rc4f5b8*?>4^Gmd(DEM6-R|40aTTNP> z(@`-{0X~Q;3w*+NCef)~lz7_(49g~P7ys&rs1s-Y6xr?3%NsH}ICy#^VLUAm<)maw zk8R{NkCP|X75<(&I%r!(LmDc<9vFtt=1AeUc_a!SDTIcn(~%M?S*Ud6>Xfi3GNq5h zi#;h{-$v3sP_v|*w7RDa<O<h*PZ3oI8}c}Mn0q~V{5)0y34FXok`_)@V@IplDkB}! z_4UMiyz&tladR?tJY1xPagxX>kBl&FSWt1j+)%mFdP7)I;hDfL|9h>J>R6?nF0#)H zzLB^nWt^_0NLNE|o|dAXyid*A<Vo~Q!;vGQj}wn`gT7LDMC%=6lnq47$b(%+{97kq zr94E0g{wuqaim$dC)YHZ{k{1z1oiZ8xAI57jD&FwU0Y3K5&un8;>|a+Jt6`pQKCq! zl}g7EOJc^@op(+QG)Et|xV<`ByVV-y7dkVE!X2}|Nq_Sw)&fC28`N%_R}%jA-nz~7 z8{y00_b~btEF={5nj1KkgP<<^)qg?iiD5t2y4yt&MRE}jAd_G?gnfd^bD@nVd3i=P zTiE}1F9mtB3MXdcg4TA0BH#P28C@}ax@NMdtazX21coc+<5T?xo@J<?k+h%f<ux(m zrC~m#?3WRP1dxy>NHB_PsNF0zntS_^sHEpJ$4iv6lcW`+sh4XU;Wa<TF2L`|Z~s>! z`^MtEj*n33i<}_LQ3d7S$lS&7)1Um3?h8x5mki8BynF?4rLM#ZzEaoXa-7$<m73&P z`ha(WN?S}%I%6*JAtyOLz8s!c<g#XMIER%HrLTX4MAwI25f=G*+Vf=4qYXJ9J*VVw zl-@^4O2AQA8NFH|U|i$qqD>7dyG3f;vt}Z@X1!K84PzN!GDO#6ga3KDy*dO%ypw-% zYPs%V`8T%{4(jj2J!^XWKjU9}lY|73ZJh_HOXxPsi-ph%0{52D`9eQuS@rjI`c9$u zDa~I|cV^E%+dMYYyeud5Vdk&sw<n17ZdEzH3d)7A$gG|*pT|;he*GzTP}EQ>^A_Pr zj=l`<dU?NCd-9wpZB8%;IeG-f3VXnFx>fGm`%f?LDn)OG3@u-GeF<pJK>}H#G1Bcv zU?;sV8Sn)a)cy#Eeb)3mRL6Dax?fl2S{W|>lHK!V?$Qpwh(m-W_}ny?8MPC!ycF*@ zG(hQjPN^dfAKg7R_Mzh`qVKY>{@ehs$1v#FQ&0pdcTrwFTH1%bpSyZW<n0%$`{)(X z!kL5uq<=x&VD<MxJrTix?~)GF4N))fc@4Gf3v`uP=Wj@4fB(~8nR3zPJJLVP9xOMg zzT^a@8{{uK8Qn89zE^#)1#v14`B!dUAk9aiE(XYmygG_|c@zg_{?z-iQ!TWs9`+k; zFcwyNNVUy3>;9VSWIA-@&v3l7?1PV---OHjzeoI=jFLf8KEL3M{vqub+p&}T{OX73 z3s;Wadu(hVve`YY1S+2-%?H!M+wa{JeV`?s@k!PC1tPj!py0bJ4*~#lFtr~q6Y1Py z6gZfH_alMerKXL2j1^Fhn4Y-*aMaLP8k`FU7(K3Mf#obevXSS5*Fc3_L=@s9V%-{m zyMA3?c=5r3Nlb4pNd<;LjZjfjU+3TrmnNrc_Sd|2u}p5y?ud7f^;WKeEemlT%Y+G; zTfx_CJ}&mC2xf6=HDB|d`+9Ql{4V8rHz&vNX%>w*-(HQ40^_RoaNsU__F1P~Ifv^$ z3*Q6iFww;+QD0wbldb6R%kdZ{z>s?PRg%^Ac#H#n0}){L9c%wQ(Yy?OB#LFvBhp~u zbF!$91r!oPr1uFSLK*z}Zm4Xp0FD)LKkX8zbB@&wu@eQlPqz{$mN_MYC}6yEfsHaQ z-0X{*Bh97|C@Tp&5{0|8aO%vsF{4KUg4huq5YS<BOT=vvA+jY=Bp8unT>y@}9c9LE zvV%}Gql<z#p%@kwjC;)blp{!=PKDbYEs3@e51kD)J?!oT6)e{0JbRFDC%9pnA61ik zY)*gixZFmLtravQZkQ4}kssyN)+ke$+kA|6l=OT;xuIlJAmi1GEaQTNW&wahiA1ei zcO4)%&W%h)G_1wAegtXhgv4Op5m2K#nwi7fHgZFPv-fJ>hS{@7I@$<e+Qz2dQbOlt zoQu85?v9J2nNYl|v#s8)>+z-Eb`5$)5;o%*sgj!ACd5?~m13;48jaydz`ZcY=|Dr& z-iRs(JG<X-*|}+2tD@9HbGC`XkTa`d*%&1qQY`Z|;UFGUt{qb{Sj!aJIF=JNtJPro z1Prwa(L0D>awJvljNf>*gTfbXJqdCr&|DDD)mzUtoq8K$9`BbSk+AQVC0mwsCP$@b z|4e?6_{NbOim-1`K@-5uTFCPa*EyN4H=s9{`Ce%JKb@Q8CKQQFnecGH|7%!REjb(7 z?ETZE$AR&@)1f)E;FV%9ZGbb_n`W30yId<D{}UTODWSNK_sT~En{@j9#F|x_F`5u& zJB$RbsJ|=q1sYYdjbeyif_`~FUL{A~|GoD+l68pcP1(8|MKZwVFZ_Wblq;<2X<*z{ z*RMtA-i%wlDw@iAM%z=nDVOt_&9(~~h`W>(3<NIS3<UTElpSt#FWJd8fEYbDY?`A6 zL0mYQxr6|*qJ!9s#_5fpx5^)u)a&_OQgm1ol-~H17V_X;BX`-e@{mhnI8WK9nd`yf zeb)bFQNGr=4kIInmlFS7++QoFTsrvF`=C)tbbyU%y7gwGfcv%bu>$4%cR3{;dAIFk z7m9N^CHDys3rGBjO_m~f{5qaKseIiwt66`n*!!Y}VlT%+XHKue-|a?}fYobYt-A~Q zogV+*cKlo4b!3fUf$ZYh^7n5?&FGBdn1v2B2ZdIz(FJYv7V~4yClnpa2-?CHJ4;#7 z4Yf;Of4Stnen#ZpzPV<GQ{Gv29_)p3DMArO&kzHR2%Qv_@~q8p3uwsV&{-WbI80XL zCSRPB#+cuXIxKi{0$iE;h{sSl2g9@{&>QI}BR!`An-^tP9J_L~*VC8>-m?4r2?S#t z1@G|i><QQ?m!+QAw!%5tw}j@VLKWxM7&uhGTwdsI9@C*1>M0|3@t3VHw@bxCe4tja zu9BHJxhQXa4R2mFp2^CwN`M8BK3gF_8@d$qnL;pAazy|^P&w6f{3@7ZJpa$-tk$zu z+H&u#7<7T8w;^>pe+_hEoY$*y<neEmQ@_l7ojN1L#R7zBNsP#W2-)CSm!Q7#CR$09 z?1JjNy{Vz<0w29vV1|9|;ApTNBg3^(Rxa53_~zu|of*Q5sd2Q20iLVE9Ohg>nqL*R zq}9Mfo4c+H$b2^m=Z|XO?k97eGCmRqle^l05MCPFb4=hLsXd^7uvqVZ5VS`rJPr#Y zpehJ1<)Gy&JbqR7D`kV14&p8walIoXi#ny*I|P_6WgErs3*vj6F;g{F7m`wqopI}B z%KfYA$mf&A@^0<9*X9+(XR;hM-Odzjm^sTOFWji;^g8;fCjC?u5OK=222%Lm3lueX zg`XY(ty2UbQRoKN9?+)uIE)e=TEe>00uceTfa|c5YgK|k*=S(Zm6%)q$<uSX(n3h; zSOS>*4f|yD1H1XN-d&f0A_e^~r38mt-A$t}??8g<NP0Nc**$vc8xu!sue(q4eb4}^ z7MJMy-09;2ywmX`Ctrkbngp3cF=+oAUyNh9;~x>0zDHZ?ySCGiOiHsr5M-Di{W^Q_ z&<C%2=+-zuthkt`a!Ur%#0e>9uELd>?`}7%eH@Ygw&EIHzNSQKnQ(G#mP6P14ja@O z+J6e6Gg6*35vC7{&71w5pLaJa#VQrqXW+dgh;QW14KoxARugT*VifOjzx|byc*RwY zY58t*TBIYfH8wWJnv&t;pZZ$l?)3nfoWx;H)H6V_E(w%fOZ7$Z7*9vE#nv4|XG=n= z9*W+#RbcxNR)txZjtsVIJ?CGD&AEXLxL@N2;Aoqpi3WTu#(N{Y2u9EQs`TAdNKvc( z%~>RL@u^|kC%=oYRfz-rPpo)<Wv?eRuUFf>%G%Yf|8!c0LhmeTgv<hj^<LQe)!;Yc z4tS$iPQLtjt|yUZCu@3Y=XLLyPTZ=xntxARw(%y@t>xl^Pk8r5*B9a+$;{(_iVeG{ zBNf+k713%zq@{02BE}FQxzcL^20_3ddg(Z)Elf(EUzyvE{MK_GbAyz(`mpr+Z}*~Y zmb$#rUs^0E)8%2pvd&|HM^w$=ZN(xw+sqKq$Q=$=#Im@`{bNhkSKv!Od}W+5BTuv1 zbJ-C-qBr^%aCNQy=kL6ee6TbgzN=46R|vc<y`DIK$?D5kt<AMiGJe{^>Wj^(qBaiJ z<J9=x@5{%}G0u_sXg&K5iuRm$<7!5<fGxg15otV;6g-+iCF5~gADzO6w+b2b(GA3g zp+9*$*U}0P5rA5_HworulHZ9u%g!6YPRBDDvK;p^^5W{ZGJX!O5H)1;cow;IfT;H} z+UH-%`0p0B{k4#G+8zwMw0oz3E@z0&8I@sU`Xc}Q)|U)2ObPl?ax4q)_V1ui$IkzX z$<sp01nfq)0{*t*>1@!w-|^>Kg|S!I2d=()As7L2>sF@G$;?zAzuu(SaC<ci0~}ks z#jLh2rls9Px>0bzV_V%5b?w%t9<GsWuEG3DZ@JAXb$b<PwXrN*_rbw)#o?;X{OS77 zwpqxvHYosR3+d7yHxc@iJ-^nLrUQ||Xbn<sRXmbyA8*K#8P^HuG~oA4BbW_}VcMl3 z_Xx#?&|tc7W0nF{mk#MVR*Y1HbSXd{WC9%Grdbzc+Y3~nIcGsKTiHh$oZ4aFs{jdQ zW_tLn%re8cuPcqE!+&dtKNxJ3#c4z!UB#GbquZEPX@p{sN(rN1ww>T<#ve*~i1e>m z!=PNM^`AEr=pMy0##zr7v)T>@e!4tJ^HnTs$X(pNf5oHO$*QR~s^>bJGY7AO{c@pE z%NEikX5hDCd`@;CZ@QaUQ*t|5A);;oqMK!EZT`NJP<^4lHt5dYCw-5}EDkVqWfj_* zRt++R{7JoQt_yh~+inEF2<wzK;f*7=rcL<0iCS=79bJf#Kj=v35P^3v6T%^_o29ni zrn^6cG0hUiXko@7h7et2#d~roSxWvi;UExw+JHYfRcwLC9}61cgl71IjCTyw*Rvh1 zI5}O?h*OXp7xEQ?8NZ8}ew>*h`H|`lBg<5inWW4AY53})-ZYkj^7#{k1fNJtIx0N> zD3n~P0xQtNwm69%bH7ba(-dPM%8WyARy06-Ui13>8pX#nv-A7v1E#XBFBUOX5Puu8 z7R6M6yxz7n^FqwA__X3UZ2_^6yR}~3PRsgtD_PeUt=!H|)_Q1Ud3E0KLzfbygG)Ml zUG)AgPRL`lL>ZHmJW&$A3P~8R74tb;#Ge)`nJ%4WnbS|?pB&2E0?~aQIWfn}))`g) zph7!4S-jTsYJ?nKYxXP&6-!Io=@jcXxxyMYnkC7M@aFJ7yaIVL12*G7Kb2AZP?%}P zUrFS5nYijZfy%9zhL@zQYu3KDb{Q(%K-TYc+*CEmnxJ?ZG5W}it*#>|lkUOXj+|pO z#d=pWg9~DpZ-+I~+D2Q}4*9&oPNrEZFxDkx#V(!Q>EHrADQJ<l-w__l>NVBLVYCM8 zLP)8P2TI8FpfQkIXTFEN+@|eKTSBN0`Dog4k)20(5thP1c2|<7#%t_S*Qc`E?SxrV zbgCskWo_!b&r`nOv}9e#h(D;n4l<*29A^C_dMZmkY+PY|TA&?-G8w969?$N2k~5Mk zAv$pduogBXqh36Loqu>S_hIp8#F{^7eFyq3&N?IbX&PaqrsSy$O<c)ZvR)T*{_#^M zLan~u<9{oxye%#JS$m%2xu#kUH_3W0owJ2gDH=@HF);lZy-)dDh>LH@v&{qeL;65l zW6w`ropsTX+u4pZVEXXAIH{ZEjh)S8-1x>O=>!Ts+Z&i}4Q*Z*PahhXzPeQR*JniP zoo0UZlY0+&5kfDDSk9uR5W$nq2|E_T=2=<mcF+827hWTjgh+}Pvo5XAKqtmz0*+&k zP#|=FP<jbcR*!fkYdm}K$=!`{o!c``gc0HK8R+&2VaQW8HG9<W=T{&u@8P=2>Grxu zN=I&rG*wzS$WC_29{YA1@3r~#&$vt4R+pg?w1yX!VQ7*W0C^ZzRy5rWK9PN5_OY9) zxFz4?BXW4JDFO03nL>=-9l>meYqQPXlN6cGf&X!I=HXDi?;k%i1~V9D#@M%+F&Luk zTWByCYxX@`gi@AdE6o^7gD`d>*|TR0X&YNnh%8xBh(ZflN|Mjd_xIoV<6P&Q>ulHa zJoo#4y?DZywIp-LN^^6*`WpP{1oGn~OK355hC4|3`7mC|+>BA7DFSfV3_22+slI&U zM|Uyf@oTo|TtU8TFZmbV3a&ap%f?mZ?Qrsz+^0wIT!RUMWd0D#ASqj(bw_@pZLYPg z_VC=3K~RGIyQ~1m2bQE%_jri_u<jF1O2joM8h#YMZX3M{i%BfFveHcK8Cn~DXOmfJ zPOeB)s4|6@`!A2e6lRMCGe9|~$QIDG5GoliPWH*;guqO3b23Wi4LNm(^^;lF_9@Nv zQ7G79P6k}wnZ-S?AQQ@TcS#9(jVNZ?ARao3vHp>BIGC}Er;d$0eEukFESSPFmqlnO z^gCynouJQ>60oXx#(ntWcUVN4{?LtglV4fX0GfCd?XoJ=iW;w3@bT6SsLk3@ym|ml zbPJ?b5WnRBGp~t1-boZnQ(KF_14%XxiI-jk$wbAQ+Kv0@LZwzM5a*^jGT)xnq>DUs zi;s#YUjJwv#Uis9Cmj+$NU?`$2e8Pjfn=QHwE&Z}00=6=OT$a`BHRXZt+#!(nIQjG za$sssm3|iS?pDFaKZz`V(&D9>PRCqtFb+vDCg`6^^pU+OzY`1nFzoixKG~|&=kio4 zGtDpo@17QQ%yI%Bt3oBHG?54k4Judy3Ra`De7f#KxB{sd`J{7`0ySU!6m$)IB5C<Q zUAnQgkF@a$>DkmRdV*BP`7|i&pIpx~Gf>k47PYN7(EytI8jH}h&-J4Llh|Xwhj)#v zqOeO&C(GXL!aH`S|IO}>L-{V11s+!Kww4wv&)QgnANdlD(-yXrXB-Vh%k|IA=-Q(T zm8-)SZbzLov$;T<qP)J%Ty<cnvvVsIY<>STMjWi*5l~Gx_Y$*dEIITVD{M65v~X}> zg{@3Ef4z3PjP*5Bv}fR-acPt-_v5%H0dw3^N;~lB+E}QTwN)=(H$uTTfzDElR>kc5 zCO}yUgVV%IaZ~T<WUu+@+d8mOXqTUDOuGqc-b*CbQB1d&Vnb!2jehx@x}xU1Hf_Q3 z=zYSeph3Q2@B6xR%w<r!8l6~zl+$xhTMLL*T}}uI)aP}(iB>&IKGF~zqbsOG!}q*W z$R?=2Zry_CvqhKF))KrNHdJdq-hw7-0_VwB!7^6#mxrB{`i~fguN0OI3F06vXYI1? zdBP+#;%OiS7hz)*AE!Y`9wX7e=-Anc^Ko1TSdtw$(%K@GsiC!R;ufAy%(&Eiz56pr zh%ir|^IrI7>f)69p|lw*^+|TCf3{>Wdqs^N%(0NLW|r?DnSGuYYv$r#0sAh-YCE-R z88c(4tDd9Q7|Lm^^w-Fgqs@(!9M1CC&hN$KHI-4y-Ov2n-`@NpI*ZL+`sP(iPayui zR4p}sAKp$e{#bwQtCrWhTw|#D7^w4evp|7Y!dAS9!zE#_qm_8UfX?*zy45v>1&1+J zCzad{SHCzt!24lD-0v#76*HhZVogu+;#B*(*smAwc9(>P96J?YA$tKrRZ#YP$FzNq zVE15tN)+h+ui&h_)v60|(u2)eqO41*=fx}ojfy~-qfj05P}Fr$f;ejg-|+@iW-C;m z<)YNTPKjx#+?9>ni<hq7q-(8(p!(uY=bgSP7IZ@4o3#>yKSsNwXlhzdfJNxbw)t7& z!e<*ykz7Dyro&~;*_z*<s<(R7ZB)MV+$hS5qMWg51c#QSxRveLzJF!&-8oy3QE8jT zrkM;4SMNklRr}OFdxej~P?MfQbkr1T@E(`>Jz8$eR33Fh3ZcMm7RO_f!xJu7Gm!PJ z(iP4`e=hikdG+>}?H6;2@ze6>Y5<$3Y%o6fChrtf0}(37h$o)jj4uf6wDL|^OVHb) zgbD#)Z9>}jlH!2KO`F9_zET$rRNsj_4NCw*wW!-|xl54aq@UApGh3v9^|-r+Tf7cb zE(duA+WwLiRwmARGztwdxtIckVx7WLpd-Tn1?SErP#$k}M_KGxnh2hulgU5PU*bxo zBaJFR%|Al1{+F;ksyNTh?rHkKWhcrF6S7z-JxO3YQ3I;1M(-(!l>d#kokAU(ogzds z%mf9(Prh>cd;#%ocz2C&*X3&Us|<XzvXqzD(HG=HR^t8kzkYL?%$Z+Mq7Qf)2ApB< zJ|E!^00%aT-7I{`V6wCv2CW-_n=}wBTt^YJX!$fdQwLltmRkLnMM6Y_a=9=2%4qod z3mC9}kTAm%U;{Xtz5q88uGSye?6XWG0iXJWX)v{Db2~D9_IYKu(<#+w>2alk-!NmG z?wemc)u7Z-`dQ~Seqy{{bAlc@-b6CMM}ign`-K{_-ExiPwntQ59!N`3&y>m{xE6>J zXqVXfXc85Vd_B!y`YVQV*0C`bLH*(b@U-hy#A$>ikQwnOtF~@M#U|fi0r4hk(t~3) z=o$VXF?u|icwX{&<<5%U@nPL&>*yc%Y{LHNHL-rzpfhw6`tff#K}%4VL5EPIB&`>@ z_}K!vETI1Az9jfNK~+Ls*=_n6QJ?-boDWG==nRbu*2?qJgaVHyRbrLdUkZh*r_HUf zvAs+b5(!Nhf8krBr><Ey)Fr!AB!cuuh(%=wq|#4kJ*(YO%BrYykl<6@C*k|ZmhkF7 z`!%0UDrEmM6DBX5?=Qtng>X$N8j~>Yo695hk*7XByZIlOTRuwhqa463$;KdV()y2+ z90j(1L!f?6im?>2fmm7658hG^;aa3-$y$hW5#9al&-a^esUsA;dg9qRpqkuUUn*)| zC9{w|wD~84U$RJZ^Ybx}l;T+7C<G7<`yI??mZwR;xN<Bdfl-^!>cy0PKjucA;{Jn) zWRcBQk<e3=`?UndozUXHcBB|0ZI`v5CkT$hG6X5S*YVZFK=bxrBA7@8?BcnP*lKnU zBu*XURBoL=12(tl@$$JIp64AYDBdx9E?u`KA6+iC2=JQ9H@o{lFfSdbfOVWxC|xQ} zfH!&e-Q7$R+?~p-3i>u5r}&<cEh$a@j}1Yz5h-Pot~wd7uP_XtgcXcvnNq4D{WQEF z<=Qfy%g+Z5u@)NdL2_#;Pr?e3q3aB(z`03lf?lO8J2^}keWB#4<E$77xmv)-sYgYd z6zVN%afpf@J!G01%L}d0qy(d<Y>Y35O&S~1jVm`y&XOi+hF03+1n=<nvZQ>4Yvlq6 zSv5RIMbx$4O#AC`uMD_v^sver@vl<$0!XKrz9$T?8T+CP31Vne2iw9}y<uka0FC=W z*d%*VxKMxJxrB(XPLJF`9WtD|VSfCaa(+3+q?5kdDI%hKn0H-S9f}(!Bf=}zMr^Zw zjs3iK?kxjma|H#c7>BHu0Q!>Vs|+9jYMXouPJJhZzF9oO!ZjW_a|zOM7)k;7&E9#B zBwKp>4wthc-b#pXa#2~x)k)4#+S|9^#n7wRQMZiFI1Um1f*4`seW?i3V0$Oawo4Uw zkUDU*8md;A?B2o!jJlWA2ztl}h~XEuk<}3?Q7wb--WYw&dzY^JK}{LZHz2PJq^gYW zS0fu|-|;YQZ}`>6hN4VFDIrYk4?=7J_e)Vs=p{zC(4Wi;EAXLAx!_Zza6@CuoZZYE zHvQSLPI=PpaT!%3G&?yh=wwWDVKBGprx+vJldT5HO_M6E*lpw!HnFePKSKgiGr5tE zQju0jg(4e5R_o$L;|$FQy4wq<PNBF1X`KEZH!)|l4a+b*x3;7CC?{~UuV2HT+3Gzd zmdB1w6z^^;SCec4eTt}tYdY-RBkP-z4L<r1rQT+K!C`E8DMr-l7SdS=&$fAhdVX-E z{D3*b>4_6^CZRtguAjq8o~Gx1X@8liK~0D)=A0y~5PLLL6>plk<9Lg@1oo-^r|bem z#(F0(Pwot>M3;dnQ)a)~`!GLF<}1D*g$iUT(G&m+O%x{lvtZ`8o-_r{ip;rbTy-Y< zDd%hv(QL=IDF$5W-mL3QV;k6+j@y9wC$l(2oAI>u_sq!g`2gvhg3e_86{$~Vd~`O+ zr1#%R;>&J6KWg$@Z7efmgo-mzhA$b`tz@fWDTPhtGx5jw|5S}K-A!7$f$p2^la(b# z&Z?5Wt;1kdgqkY5Fp#l(82ng2z1<l&bBh!w`KI3Q@B=gRy|=G?{-;#l^sFPKxlw<@ zWVo0H`&IM!eGGiV{rx@2V7~8aSm@oFcu9kq(WJH10-@x7ZjNr2zw3!fY(MYsIq&BS zOrO9#?0!u-IpHszKDH#uJl{h)(|a=gNTm`d7I?V)tKgY^d1ko{Q>>->p*)A}sk;rc zFNDhz`b8~InQ!4^EM!sA7+Y27maMm&lK8m00Y0C){E`hI;~!qm#A<EK?iOH_)CZN= zXABLOt0xW8!3c|~x~c7QTVOZ{&9k_Eepu5K)<XH7B|tmjvFzN&hIy%YNrX$vp+EQ8 zULuG7wcFsV?pOU?YWSq<Qe+>~w=Z9uLiw(z8n}2FCcBJcHrl37!BGiEj2zxD!C5{| zh?z{fdj#5wgOeQKj}Y?ee~7x{LE>U{Nzom}%=eQC0aF6#R-j{Wh0G%sb~^Qg<EhOc z5Cwi?EQ#uHn|Hn2pER2Lem}P!X1-nBMhbh%znv(l{LP$e$F}=M2NtIYbq3%Dq}#>6 zySMM2ij|ROWfR35C;NyjC1x$=cu?j@W}O#FU+6QQ`8*0cfJQ8~919UHn|Al31WWIN zL>EEsPdPEdV;umd)PHY}lTS3{IJQUudU3|G&O*wGhd5~f_W5->UdWLZ(+ZeVf83~Q zuK4GZm0Bp&lA)^(up_SZn|XwhTZQD3P>37+ujRv}9M5_jCE=fzKlLW*iIC3!88Yqo zM^^jiqHPrGd!yS=Icx0LlCAAqv6NjX`GJ}w11V$InyCp9>y>kfBcZ<eUZog*7|IkF zR_PWU^77a+4Y>3$pY<u11$ct$FYyhC9T*v0Szhg>-_Ad^I*?lAGS(+1OnNM&b%k98 z<?5%WJ>6Pz?eN%Zue&uv&Yv;N`Wu#f2Ee_uLJvs%@^W@P`wf+@)nO>ta;x>%YJ)mA z|AWlfOKZ=dN^q~%w*N3ezVQ^dN)ZP&PfSmy(%FX2PdNp?aY9+In$ocn-vf-BhQZ;T zBG<7)3Y=RB8?lL`VmAHAu07k0|6)nDS6`4Nc8#9XcaI)npK~~n)s@yv49j_9iG9W{ z7`YcNIyfOC{y!X7DsQwcKD`l5S{E13v^)>-7>*^>c<<+0$CDN=T_97kt9?(WW6+XE z2U$a@S9U8Tb=O(H2>U$yp5IpOurBdPmQi_SuU;m3>L%zUS831*Id(fAnn$GZVp?X# zaxwPT1=UyVbmR}=%3B|Ib`RQ<_cBCv@EjWVl+GQ^-L`oDiSPM-gW=MasgwNME6>eA zq0y0_XaAiN+5H>z^s9CB9ZH>t#&3sn&i6lLPIBW7{XwM?!3Pr+dV6)xIVX5N?FNVt z_B=^nH!eLm*gTLzi&RB+!#)ynBtKv;L>7<?l_TPt#g2wCagS@owu85lRJLnQsTJSz zV~7DIk|)>n(Q{i#n!9oBNPqHTJ}irIsbi6lQLT61eEaMC%~GqmZxjzf;{!1rZ+I}n z@OXrH?bf3B=Rj62K2MKH{RTmcMI+E!tm&Q-NjcZ!&~)**C6V=Qe(N>MEVA3izu^>@ zMRuB-QR0Hfw{#YDj@)t2ig12%93(_6+i;Duii^jj-L(>wxi;`B;Ga2J^xc&^9<@@g zhMK0_YW<+;f$FDo`;@fa`WEJYF!$WJqGQ|hF9q&{7NBBj;Pk59VIxLU--EPBe5jd_ zHz4K&S-dX<IsUAGjRE7kR*x|5yUFh4W{%ys#Urt0Z}AQ9+;(x`iMS{6+=ddL^mlLU zsFPpM`*S(zaCz<-hhgI-BKdHhQ=KICLxjh>-?$b_4tEWtcpo29fXu*h?k{Go0Ps>A zyxEcba~@vuN+WjpODt(o)?1DBoMFx!)G?W-5(nQB9~fggIlmilURn-KtWdL((d>b5 zQBS1gRPLt#N$6F*0C^s5W<2A$=PbTH>+O;ATKZ_9W_6%`%4}ooobkR#nGxjgtQqev z4k_%T^NR9G2PeX&elBa$c_Z55!T9+zqgl`7i#>v9*<C%$4PG4TDM}6>B{gAE$`GLr zrh;<+Uco)X94n1<1Hz4*d^N~Ut*D{Jk&mqOP_C+x-3`1#t}x$)1QQ=pE5z53oPzq1 ze$vccTYAVi2XARLe3t3SCwI>SZ;n^C!iN`grBLkG!x!H8y@u(Fk{SG*0q4mO@xq@2 zKN^>weoK@r;3fFDkY`fOT8A#0S~#i>fDb;ol>51++e;|BMFuUduk%rAR^3mI^P=26 zh`zX+VtMw%^$(eFUo(QBFehXo)abmS&XRf9>S(le!`MBoYDA8Z_hpyVV*=jAP`la| zCS^I<;N{4K(anC*kOWkDF=tSr<J?N-<b+c}Y2(amMc3QmRlHjNUjOG}{&8WR{HW9_ z&(m1`0`CO~Ue(urdGYlhBjT*6$k9e(rI!&rnIzLnL}?`iox}Q9B`dx4i@5kDLe5m; zXvyP=pYD$VaU*zSp?^ilIZcC9{p#whoD@pT0LUV!SF|)k->bSW?l?3LKEM}B<)m^V z-ivgZh9>v+i9!yc0flsYmZF5iQTBxns)`=%X)`rG-9Uw}(r^;=P1VoXdX1~yRWyV! zt1#r7<?(5a(^<}y<h69peuC%5{Y-0@{Ip5w9COYm`TxW|6LN$%)eK_iqz!X~c_?dD z_F*L9enP(NeU>=yZy^J`y-b~12{^viv&Lohu7BRe^}H0DR3TH$^m&jX)x+9hGIae8 zI7#||^<p9SC(+6QMeha+^COjo@<*W%I1waT6UU>9H}UBwv;sVpAkoquuMbigZ{KjO z32n8%r-{RO57y(uAe~Gi_ZBghlC@k{mCW4$DqF5b-Lxv-26z-NUXQr-?<sy@tFo1B zAp_AzsOs}Rkqh5o*1xK2&<iZ=A|5j*>%l#8j;58Sv*cL`&P4#-1wvZ~a5C>mX~M47 z#+B$*g{CANKO)W*W<47SQF+&Jt4R4fwFBH^VgPEGyNI|=fDhI^Qa^?wb5HhZNs<qx zId_S|{UCHhoqoG(u6<r$+4^&ELquy8+Y9l=SU6xILbd>Tu?F>hNDMGec${7#ua5JS z7O$>0t2M2Bu6nf6*XTs%s(vlxXS{Oa-+N}RxLlTCcEzY|ts1TGPJ^B82RH*;lMcS} zLG~3EpXJWOxwg`;L%BC&Q}R02t+;xKU(WPp9II(EIPu`z6ZQVJYx11^#IND`<lEx^ zhKm(!#7BkJ#zw2j%pgwm`jKYi>uV>n6uob12hDe1#>U9>q>nUY_PRVBj%`o#eER)^ zG9>WNC66_a&kpj*K8}l3rg>W;7dUF)R+}QwfrQeY$rrEQd>*2-iyPtHWnV{_7^ZlW za|<O&z3;;MdGO^WUGKS^!S81q2!dCvbZDcloQWOPjfXC?D7IH|-wi^I2+miATv9LG zl%Eh*xDQ-1J{lJL$0SO+uYa}taCbRTirEkqZU3X&Gq1|DZu`Ynoxr4Havv-9BQ1Ep zx<t3T<h{6YZ|f{Y9C6$>E@*hDZ+*F7zvFVHAHmbPQJ?I)iTu$&*~7a+<z!Of#JJvo zATpt1tpnh`u}RFlSjc4Z5Pq1cf5_L=f8g8HI8&6^!TUTkSvilBa|ZaWO(Hbtzw80f zgNYj{BvA{+b=ICj<`3BC{%x`X56OVR&GzH-kFQ3(%9QE*DUL%T%>(e2%`<Af|5clE zLi8b*cn-RV2xfoo+(|<+jdz6@tL)>U+RO8v`0^nz|4L+Uw2Ta`|D3{u`jYU;aX4+c z`LO%vkx0>dCeBpvt!sytG1vmsBxK9yJLT=pCaTfU&S>;JEV5P}z5O;rz{BFsf)Szl ztc0SH6D1tHrrL`>pFq$tka(~7NmSs`h!cTiATj)-HlVowhY`WhK;)FE&&fBu)kA6? z`GlIVETX{|k9?_JeVEa<Nw|R|eOvxZqCBTD!M+xC87w8x<~1|_5gev+dZ%GPA&V;8 zXmfWK^8$q5QTbi*^xN8w)ijo;5$ASW%FIjc4&~>E?fFq#i?7BI`Aa*eJ%@kLRdgn< z>Sm+=9F+aR1$9|wsvSe<wkmY%r3{l4+78XtdD(FHhje(2d6`T@l^sGzFWq=!<1*uP z-%$%^dTS%Scgv@p7{8l2^AUV2+_Y$SVDM*Vg1>IM!-yhaaBr7=RKG#J=hSB-;jwn@ zzZ8_^glfav@KoVrBLL`F57q~|wlT|T{3^KB-uEzwCfct5s8=rZMYzL`kqnLDaB0tR zr!2qQuZRD=c$D)9fl3SAb1|I$6X1zhlMvpLHHixQzAnnyuO=FdK3#szBRl7*V5`U9 zJ<k&kU<?3;s#{PJShza8WE^{JKoRm(3RsnjBI~<>BmCZENqIF42}ktIt}}Jpf~xQN zrT#+Mxcp526<85*v0j}V40eo^=bC%~F$N2hK*FVQQjZ&@W;!l!ZeRSX?j7EH<)}g* z`Cmk+$nQ`|jmQWC;Vl3@mcZp(F9KW*vx~gu_WRoT$cRh7Bd$h9UjH2#9~qVUJO88_ z+=im^Hvt~9Z~Xf;e1-|fTu#c?bkcCA?+|$_L7`5fx8kGdeVVtj!;>eX(l#{$Wgn6g z3?9w2r~TC=Z(8MB{wB=K_ocnhkc`fHqY+?U=xKc~%TR0j(ME^uqb>s_Q`TrwL6rwu z>z`<JPJDDh#&5!0ScT28X<$>D)O%DYiKgJ2wXVpVKc;ya3~Awsy(SYVLR&Pn_D|tU z5e1i}zLx#W-DrHj+g%fyN69{y`-zgyDEdcYrQKS7MRb*0_ccnDr{>oqkM2G;4^AW3 zt#Op3N`GHFb1*DBIf5sk!>)AVO{vI`&`sKaS=eiv7|+u8jgbdUI|l)t>o!*tCn>$r z53c&lbc}JN9LQ%L5Cj8^CbH`8^{<BV%Cr+7I{mG;v$%ixJ0T&)L&rPluTc~4->&S( zp0D#b4-?~-uRZ$j>wOJU=dGN7iHx}N7zMF+b@#OLZk6;uQDd$qXIq~P?(y*|6>V<& z+avizeKQKQJ&?N*(|hm!<5OmC^doyU$}03}D!M&5wLN?CA4+<l*t?Qd$2f$PaU2cR z(dn;0d=<Z${o81<7V$c`wuSw5bNfVVk+x3t!LzHcJHB2gF=HYRnNICv4R$v?_W66x z=M1aFPCUNcO4?1*gbAM3J!huVIj^I!bQrVD3j2@9JFJ-%a7b9(zpO8RL_55bN_pae z*Y%=bpX!T!Uv&TJ`mPlC>HAAxrbJ?$J`6}QLFn6Z!h@jHH~MQc8In42C9L`)-@f+t zC+=Bt05$=0DY|gu(;76048vMf^FTVm>Py1^L#20*p#=K(Zi9aYr1xm_&${tCY4W^Q ze}k0$F?M}!?z&{(e*^QMVmFWeUeMFMIo7NK2|Ie`>Y@82m4qif@Lw&ggc!-lQ+Oe@ zPux5?*KUy8-HXhIXW9-dov(9x`NKLE`xclrfKz&>-dL#7v%F|SqW|9s9m8)=-?Zwc z$^8=)pd5YukKOFm-Y3>qp#CD8{EPlbi9q^KcFs&yXaq{u7T%|-VAY`mtFSQ;l9>vk zEwxISCSG(+!fD#A@Z2g7X${y`!rslxfNpEn?s!S^%ezdPcJG!}i5MC6Hczh98dk|j zDg{m0di4s(T*Y%~wfer!;i+v6xUOVtu1(IrQpGAtQTP=Ycnw#WeUfDJ>rf~>V7!8t z1$J67=Y3+Zdq*i~cO}&d>R)W}DW`r={j}T7gJ|1;K1-uWXvdALb>jObWJ*?yvUIPu zGkp2;92n}{1^?16|9EU=Xc?N3YH@u_VJGgMYg3%FTV?7j|4zw!b79KOe}Dh{{{5c> z6JQl(P?%s|&SkuiT*^`<hU*5R7b*oAY5#7FO_5GicQLONSl$ZEv1;cX>WN=G52}$^ zj;iEQa}R(ejUrqtq=Zc36uOeGgu&pSYD5OKYq(;p@Wb32+*<Lkcmvrqgp(7vA@|G8 z$cYRzEGsEYvz8SBk10Q@`ZIP~q5l_VyG)8A{-n4@FY`wcVpMarID1t4`xD+bI(sCu zobH(7fT6WtqB&y*|J5^CYkCb$%f!15n=m6*Vg3Diu8Lt8^9Z!5b$pcekg=#lc}tam zIx?smpUZ3dw5F@Sy|jg7mR{Ouwe3A(vr%)x=2nw0$To2?Adox3>yv(2XN*`)cK3VA z^);l2TYwK-gOFBZ$^St$Xa365fBf%52E_8+-y}(;;{596^A{o(t_@~rF48Mz;z-Gc zA2eGnYMNva9DWn3+_Xm4I3Aosr6!67@w~yARpEUGLtCyC(*AdeSMzhC;jo_YhYk$R zW$lxkgH1grn-XXFQNeKH&4oy;jR%?nqsL<cO_vf53-Uc^Kc=Dv=o^|XQUv@f{*}mF zkHYopyElb5YFPT>6jBODtT!4SMrh2Z!orrP%|5lYlm>kPH)Lyz4o#_KdP@<eTwY&U ze-p3RKDL_Y<w2em;6AX&w}Lp0xK%rJh5~~2<_dql5Tl504@$i|<)%pptB|6YOMfiB z3Z?KBW0>#!5SujH(?cJFjiiOjJOih${Y)Tx=9PKIJCGguPj=)cin7i_(!}XjqPWV_ zXT<-k<a(C;sd2f`!`dOXEH?YO@%aZOrVEtz_s8QePgz^8I|W?exBVS4bPV=;iW#=l zTML=n(F+VtBpoe{9nzB8GMd#X8+EBsJWArfpw2`VaYP&}e7HJYIkV_4iJK#55u%Wl z^nS%SM5a#Yxz#cxr12y+^nB0PQCd?1WXS15G<2rG9x)wGSHxM^ALC2eM`Y6}=t-=B zoKm8c4hCjX&?~M7rpqZVfy@MPYY{Uf89f_=xN>MgH%^z}fsEsSLh-VJXq^5iROu-Z z1pAu4TVa!9jqf}G<#<%ld5g|vJ1v{()o>pD1i_h_`8QsCzlNPiUP19-008PjHsGLw z><6KkV|~1#urkP@YfyZz`Ieq71d+G$Nosq>^z6-6%tqZ{wGPzG&h>1n-S~{0(;qfR z*U=-4hdue6*}4J+fx{ms{XB*FTI2IvOcQyuj+Y8;1eDn>*eN!b1Lq^nYWbK9PAZ)s zzBp*&!3#k54ULW%K#)fpU{^B;YN{nC6PS!;JQ}mhB>6w%ElGMLTp`{2Eb4<@*r{SO zBP-RH@j06}7Ems4*}_gfLXx;gbfEB?cM$XXBwP6|N)Hh=m)kq(r?YEA(92~TF)*9J z=3>5RJin8WY|&GQk6mFQDBF^)Aa@g0@0XB}6M$k|h1S%%NyHF1SHE9deP-RdO1f3V zj1<4})yqr!XM)JqqE2Zj#1*yu1j)aGyl~)jZhA^vLwN_^mT7wgwaaI_sCw&&<d<&( zgV|D&03Se3suqP?1|Hp10Tthdy1`wNuL_4%M_*)0Cf7LjiAP{3+g#1xQ=MP7Ub1m0 zqt|E>vZ&iqs3M;@9#UU&o_iifUGdX`vm%Rhc}u&j>XM=0#S)vKSC=TVo(d<FnJ;On z53W3v@Z@x%vJ#eVaguAXp&N+DK05#>nL=YhV1N~~{;H&KrYC2ul`dQWfOmb5m^vV8 z*g(=0_GKf7PS;pkqOrkUJu%lYdK6(uDRl_+z!}jqR>~Ew`}Cr|m*I5l(%G9#_eR69 zK^EKyQ?b3D+_B-{VYu3XRZ?34bwnfNxLO%3TbB$gsUvJ_4>9IPAwMMVb0R4p#Iw2+ zxW3&z89D;d6nwFDL!3+Q?cB%<!Ix2HQk=z%dgGwFE6-uC<ZXWEPdr+An$x1h8Bwa7 z@O1O`$)Pxj3%oG3vCewG1ZBft?7DueE{Yt_=#dX|Kk4g7VXt?6M){~a1JKfDu0Jdh zu&tK~?!84B?N<!TFOg+Qq+Vc#qEgaazc8Sv&yjrcN0(e&fUKhTz=h90s)=72wIwSB zS<~SO0n91&-7=oQg3XHe=Dx3w`6Dv5;sMsLX#!hJnC=X+uv9)p>gqaP+e^|hek{S` z>ZzOZYoOnSi<cDp9uO`<EX)JUk@Hu&t#0@MhKOd{Tk-&qX>|k*hBbRr5*fHRiD+u4 zP?(Q_I54&@IvL98vee%`!&rSAkL3g||Cl?@?f8PyzAtQoljSuOFafr_%5Ka6M?4!# z8iAgaE#mw28p}FMtO6^{l|2g0_i&Q6%>ogx9v-4#6LtCL+NM^S7B)8u55nL~Zz(Qi zeiApk2OsgzdZE=z6{F-31c`&7fX9mEQI${DFNeK!Wq*nS&6uWN4!{59CGzeloJ%+e zF@wK@@%d#g>W-=yKP)(*Is@rPqLSSrrKHPM=`T8=+q4_BXZ|9?S>+qw()9l66HK7P z@Y-7$UR?~z%|VH#z%OCh;d4B&-O?RAN8c&74~g<lM|>&izbR$L9Y1)yAGa!e{PU)L z>6?;spR%9J7LMgJT;;mvP3@%`Tm3Q>-?M`vg(30${TTMkjPZeYd-WaX4>1A)LpCgu z9B1V3lxiL}ec2HoNlXv{<bRWI$;fBoby`1jCN~wqgaCw!?@xAgH+EsDG5UAjA1$MT zDA{H6%tg$<pFET_LMfWv<hH;WhUU~wgPvwB&GJJ6?&go>Qw?(KN4Q8YJaBH6mUZ@M z-*A%~*Ti88(xY|0|BfYjgE`m#c8oCUyjVcgCQ;lNH9Z=a!Ju>h6GxO(rn9P(aq?wS zUdgPN#@LWPcHo**s;{2`lAyCb8aVJ`NG~Y(C`1)U8N)O*N<tqTNH2rL1IN+0?z+VT z4%36MrfzO1D~QMntNn0$E4!6rf&dQDWZ`-<wsHYrn^xpN(Y{*Y{12Ch5EhCz5o|PT zXlD&{d`yKg=D#~ES=Y=cN8s##RB=BzzCg}%+=r7R)E8&B2NSm)89WaHxKk9Mg>c;4 zQp!vrz;gnL4h<r?Vs;KNcec(-YRB;|do_@jUBI7^F^#Y>CVb874*&9r8;!h?N>JQM z^qD>$b}$0^TC)5Ez;BH$-4qn^;V=QsbF2?ETMx8{tPQRnKG_mzvk~cRp^C;iU08(8 zG2z9pq$d3(-5KWLi~NsTLTRDsqYeh;=SiRA8X7JSKnTzt;7vyk%!Jz-70Ge#9nGAe zMb6oA3=aw`a*LbLL<k>~9KFJ3t%U7-A!f3aX^|pX^MGN@z!fwzP-i*LgkZ{3tAv#} z|0_r3P(j>Y05=ho2MCFP5uzB7bL;<*cZyqzM?@HZDd1`gg0^5WnGA{#3cFi+4C@0R zOeu-QpUOTQqKm+oC05QGmSYP*j~$7`Ep;DMOD2w_&%qCX*r-5O{RtUcg?CvB@JgPj z`-Cf)2|ciw8xw|aRVb^*ncQZ`F(hZw7$H}1`zWBs7P}pa+2<ax2oqNG0iiJ<+=Ouf z@c2f$q>RrI52fyV5rVmi@!`SnD(i2L5>-Iq=4i;zOg4;otTYItqAXFXc3uTUQo+`g zzQLHv2>5_-yvmm=QL4NE8xfmRs?4(vy1k9*hN-66sAG4Oi#~y%6AZRe{LWkL2fU~C zKOu{W?Ajx0UL&HqU=Au1Hi_ZhQa*jB8dtW-p++$fQo@aOS^p(%8$eYQkhnutpDtg> zL9;1{k&XHGvq|wS_L=g5aJjGv2yta6v!o3}-)@@Y#R5A;U@tW(hJ=YXPm;MNkB|Ol z9RS(EHvMb@sN%<M)x+O2xff+8CX77M#^)zjDlcOp;Rr4878E5(XgA^nE3tzW;YSn| z?6!&|G&|cmyAlBquQ!oE#7_QR;^}ZKY7#I*uXR{ARid%fou&j7cE7GS%-#eJMx^i- zEe7GpyG@5Eta`gCD@Mc5-s($^)z|R*a$$mSSzvGkhe3lB4PfF!5R)>Y#GjeVIT*7L zNvIwA{UoOVRl157FdN1OsZ#pT$MZL$1&B&43)dE*DgH}Y0DGO_CE7~u@)W6R^3ncs ztOJ4=yDAj`@eot~dXo@tafweozm%iK3w96$0O9CK`zEV)%t<WdO(RH{Y7R>Vw8yL} z99-|`y2{qzOv)TURLfI75@$FhRkIk{dl-&un9>Y&IE}32bB1!HmJR&6UD%Y26fm%4 zp^k7Ea8#;z@Z!w$rx-J}j4W!9d@f@-6D`gJi38rI-@M@J$tVM*H^)+?DTehmchHHm zcc(yki+U^%8Q?`dlQ<5pA$^f@6#q1+U{VvA=Y1vuQ>X?K=Rq7yIM?T1xHNqsSUs$1 z4^^oGO4!3ts)4_XIA8d>du)y#doK}GdiZt^2fZqx#)V}*R21tKJUxLqqAGIQV!3jB z;5Y~fTm57gmOPD3`ied2-NivouFUh}q?y+e5nuN(a^78zR|90Ha5~CPLg0YAJlGPO z>JY~e_WTge$i~AC<DOa*tii<rJ{5^|Q~0t8jDkBdF^RyS9VDSUT>*TiJ5#;lwU<q> zfrbKsXL7M&;V7|uO!;y06{j!c6ZAO45fmAW1Rqp;Rmw-AHGjS5_u)v1!0kF-`q=_2 zlI%{H49Rwi&d-mQTyZtoE(8-{K&yBeLXrz9{6z%`r$t`s#1u^9pc9!}(^tZF&pxE& zGe(`T;KoZZA5UZ^<4K?!kAY=iE@rp`JC@hQ555i?y88Sb17aV0`Q00^VU(D`#l{Xx z)`!s|GjS4vH2qJ}A6s1R?imP_UuRX2bj*qB{Ox?}E5!tK<Ai~2*%SscoxpAo3?jza z>}I;oU_J=Ma+;FhK3(DY81dv7-ggv-%STO&L4k8J@|u4pF=6dVXO^iV;DZalFnOA^ zdx9wy&ME(VXza8Inc<sATm%f3B;(V?c!wFx#aKJK-Ln6pETHc9HiozS`n;19WyVfr z_}29TY$*?&$LEX)&3rXNGxc}yyW7}pLB%Z13&;7gq>jHgB2onIWQqvU>IEre<f%j? z&P_lA7dDwT5QXXH1Ad{;ywQ|wPR-z%V0`|a23t?(S@vEixb&rf5fX*z&<x{QzP9-- zlRjf85t#Kr5D0mMxjjie@g{O_7rQZ?nIUv1`%f}9I$Nkc`zabb*p;tBd*JF6mhmeG zRH_Zy$EWUQ%0I#Yc0iC&5rxku@kqfX$#j+>twrPsHT#r?W%AwT#X<b@<L|U=((a)6 zXt&w-{|q|bVR0>GKe%w`4yF?0!Wme^M>A-f!5V}_J(!J$gWVfl67+>6p;t?gxWG^s z%h^BqVwn||kx7y<n}?d%i_r#f(`!hBY|iBr?`ZU(bF~_cVQ5=MkpQb{6qa6}yHA<Z zhR^xe4V@8azN#Tu)z?)F>(%4&Ns#sFvK7L5>{qVtW4pr3ILmW?K4KhdVGsD_KWd=_ zXy&K7Fr}x$9|#t+gVk7p%FC_=e7yynIR$ZZO`F0Gcx-Dp%TZB}6lb;KP2XWV#_H1| z%Hck#J^Qun*;QDIPuG+7BZue%Ou)OGh5X8?I}GYO4B`(_$e>E8ozcCYp<#;+&;Uef z*=_5MO3T&J^g5frMLVt?{zV<ZArIgNJSf*TlO=B>gyhMNQ~sI>e+7VW)YYedj3sa; zn={E0<qnqJ;f*m#ZZT~#9axAK7BiX816Hgmj93t?K2I5Ka5>#%GRF{&!O*W;Un+V! zKmRoJTL;{rvdOgFME_!&D{eA8&ndE&m#_5S<Dx0PibsWv){N&*9qykxoy7OP>USqr zQ{;&Ps)Ub*LQjKEiuUoS_f?@nWlq=HH7Ucqa<s}Ho{7AxGRFAmHsDk|AaUXu+yH&R z+pYgAGh&{CWp*=9AI(rY9nTJZ?o!dd_n^CvM>H4PYkStsv$2Q?A~v&wdy(P2ygrEz zYH7T*RxJ4CeLEOB8f#Wue#Wgy?8(5(;^Eh#B_5(L2HLCQ9^XDy-f8l_Ia0I@M9rW) z3H-~4YdXZp3B2xc4;Omk!}11OqQj^-B-9pHMio*b;KkUmzeSMJYHaUo!(qk?A>97^ zVU=?e8c&nQL_5!)9A2Nnr3>F*)xpX;ToQ1@QD+~)Ynx%bg(Hs{?`7}mT8~M%4-Iq^ zJ_(LLFdc`(p8t9GU_Rw_cH0x4^0eP|En0VHixy^!UQWPqZbqlOamCoy+`BTJT0}vn zh)NFS=OK3YJ?03i^40|VI@-P4{O%CD?z?mOhbw!T$F*z(@xyxThc8b*eEs)9=q@He zW9DOBCgaj$NuRf{^6Lt&*sz@Ldv}*aJ}ljnp5vsA#Q#fia$8V1w_sR+am}@K(8U$= z<4Q9={@M8G@Tkcz)*=7NP~dxx2lHb*xQAzG5fp)v<Do1J74uxGe35tJ4brD;@o*{L zW9^onJMI|<lb<Hkg*yyCE^Q<R{|Pe^9%T8AEjPbb@%ja4dE@wkiwNz3W69XHb9#KV z5%v<?p_n8I<aGDuR{8>_Ra8qqf9*@jkFPha!&JX0;JOQ<oK1&uS&nt=2J^f$bEUVV z3diri<4sK1<k2zZyp<QMINv!fayTu7`(~)i`X^uTH2Awpug%?uGxu)Zvw7AfLF;-s z|HIC6&*|P7sLEFv+U;o93X^{izZ8ETSqKk~v@znxLG9)PoLb@F{YQGM{(|4;b*nr} z^4N7GFWi)jdHiht=5CtqpomXmM!{a2=ig4td&-9&BvFss&llnLIX<Zzl}(L&x-Kz; z_1Ss!?mMr+O7fZB=OqhnAKKu7w|Hqkb<1}aRH#ED7yv4-SXbH;&&n!SNoy|ak>g-Z z3CpIks(F5oI@ZV^;pO;97S^FD<LnZ9f_~H%V!xbFHi@KYwr-FO%DV{hZO<~KBV{g# zA~H>l+QIBzItUvxV>u+uOSP`UhejvcoTNjiDzoTt<D+EqR=GoBoRYX>O=L~}(gCLc zrP@@z9F?2FYFkB+YcO~uE+ps|mDyy_Aed@=_{m`roejouj1dM117^nGecqq9e=|?- zQaIoz{KI*?x-RK+1M!pis)vI!Kc{Z&$>0Eoh#TqDn65Fz$LZ_GH_xB{_aDGUSfoPu z0~X_;($I-W&#K+Y8{<enH}_bFb}@iS@g_+Ca5OtJR7y(2-57qP=!gU%6&MaAkUbsY z4){9R1Oegx$auj1!gvDUwPH`ALXBrkd*PJ@$pT8=lTw1oK9iR?jAd7I>>UGFbDb~L zuI9N%+_@vpNuXx3_*Fsf8B9A&&Rss~(T)YIwIgzkzroPV#3z|}pO{NVlog`U%0k|F zqK^l=NAR_UT&E}wrRec&p*y+bNgJ8%(tyR&TjxTM9=jC=`Z2N_HI;c6H)?CD>o)2d zJY-W)En3==sRGF~rnu<ReQQ8)T^)bd7)~@ZR=uE^Z-ZRbdRr3eogkUSXCr`Y;^!N> zYoz#!Jf5iTm{5_<*HSe`kr0dyxEH}*3B&rzEbZSXA5H&?@+2iTxp~&_f3DwrcKGY- z=5v5O$m>a_7DVi+z&|x=<*2a3gTg^!w{a;#clCH8%B>RL`T~2a!EH|V-DiD1&dPG5 zxH+wD!=hKU)}83s>+*$yY66+vXiGLKnCmnt(D;GbG{5N$?{-KkrOY-QmJ!PFZFj=j zL}72z-s$qgd~r77Nh4orSDR!olG^rmIo-V626TI2OiJ~0SD2w-FrK4rD8@nv01wVF zMmV0jAwPm`z9KL>jxmm}vCkXU%J}~c$QU0N&7?Chw!1q|k{wik7fa^;^Uf~0XOZ~; z4BPrORdc`TV56av^5fuZvj9XAV8_Q=^XYUrj~|Wm#C+AN7CCnet5X!&y|v{U><fGm zzLplWDyekt;~-^hLB%NZ)VDDyfzPov9V(vlil6v0#m^gyoXDv)?EY}+6p(b<-u;j* zu!^ycKiBol=*fx6UHyN&<Q^XrCRlij3biN&3uqP&F2Q5+DPyyr2w?ihrACn32|D2y zpk8@AB?_;&+Yfl_4P35t7JXz-DwRQ9_`akBZC)VM5j%&YUlM!_2Y=pHX7<5e`7J-j z{vm)h0s0m6iA(b!h!aEX!?5M^Iyz+Oo%CN>h_7U536SiEX16D!9V-zmFUc>I3xD1Y zu#jZ=&8(pO!Yl%p`{&n<ZFJM&4}joy$s-^q7x{iR69~RtK@5sg`W)CF`naWtxXXA3 zD0;!{tPTDWR7~OnY%tI$fH#Xu-rEbcp(~dm`tp$7$LJ+Enc8t%zyzX-fpH<kZ>d5G zQr(v$!BI@~Q7O9=bkiMYg9SL4R5nrSiFnGTPk?Y~f|TlFB*?2=_`d1LMc19enc-?$ zO3h2Qb1OXD-#(A&w6b%i@LGxMV@*n?TC%pFPQk6`Rj*#NdbKuUJ;LFK2!^~$4QHJH zP<P)z+%faD3j~4vc7bi@zKNH3!rg`ba&;NA@f6qHa>0=RbK3~3<mrv9WiCKMt5=s2 z#~oZ5uUu(-Y{tw`e63y1keWMEcC3#I`v$!0`|^kCTrrS|lFWtPH;`9m)yHw(X)j*X z_e*I2wWIMd<Tb@$yaPYq*$U^8I>*jeQ%!Q#JQh{A=c*@6b(Jyq#a(FDF8zQ|iFK9G zo#ihEyZtuq<q6T5pN;dpCYSzv&pt!3c(2Ez-JfD#emTwcq6X{Y`0w!y9M4)ka?>R% zEG#G&3L-h*dSv||=2u%OyfMHeRZdzID1>#@8RMWPzG4{IT`?FRir5LDF|Zt?k<&co z?2xD*fc!3<kcZI$FRH8coufKHLjd-*DeQGGpbZj2Ww(Ee@4MW1mwSv#x$kNQ<0K+6 z*^7?1sL3wJTxVy~qt_pPb^m_4mG&S&uZ3Oi8wk;ddn-|6op{Dw17AM#Ks@YmVg8k1 zo&YgZsa@+2vaC@&kh~$OAFuD2AA0lrm-`?|V|a=C`hFk!8kTNiv5YF(?<ZJ=Iz`qm z^FQ7nP)u*R?LT~qWn%w@CS|lGJ#zSyc(8H59(OC_mc<HA<j$au>t<&D@QU>5KSS2j z1V)9$s+`-OSI(o`Q$Y=@C$Il`?Zw?zfb3sZD*7`VVAWRm?gsD4wm%~w>21Ydo_v;_ z_%j+c+E(&=`26XeKX0hq?WOFxbIQC2V|1(basf+Y4V8m&MtXat%(+jLK%0ZN1*7fN z8h0@!R}UsixgXY;z>m;pvJWOZ8VvZ9Z}<~u1g4tP_sD1}0KsFDT1V9kD!oKNW4mv} z`qz`I7*rpb(jInDLJKd#{oLulvtvhRrJ~wJ4FrDDF-Ls~&ENCSVNcI3a(8x}-jQvq z<v_$RdQpW#5NXIe5GRG+`DC>b*feNNC`cP(t7Rr!I2i}CUHc~f*)lk~-U{6UBho~| zYFV0(n>sVP`u%NX66K4{A1KRw5T?zzR;O3kH4cgE^cyA+?R9GZe);bt%Gki_a8)rw z%L1AxXVdU7Ty*mSkGC?b?7mJ1JMO)vfA2`v8T(?MPBgP>%$bsA-}A+`x%0v(IxL;^ zV_x}9_jG4T=8?JPBJjYH&tp9As_u_NDc+cdIH1fOqB<`%!T$vq_nAB##m55V7^gYA zLb%#L9H<!nj{WR@@6Kyiurs)i6q*bb={NmWXFBI_e*nU@|1-Y^Z*rLy`BdO#S&5eO zde*acy5@(i8p_$H8;$lqJ2i$rsouG<ks>LP5%f$Nw5#*cq{8T-XXWpDo@ZOP9+Zy8 z_q+N>CV#VWQqI4cP!S^l`*8Lwl0<u^GTgndk2E>_as9u)wV4>I_nGX~;77sOrJ4o5 ztiKsIZmPZwlOUf=xOR(-wJ@XW?f-uBpNwbu0sy62uv3W?0TrHRz$+hsZ$-A-u$p;U zz!m}9E%&3&onQ+FmU66~2?02c0g*DO^3scS)$E_`SYs4v(lzX67ZB5}VGosAn=7fN zimd7EP-#utd<0E9fQF6|rXZ+9LFz$1k`fXxQxLBakgykdU9^SWVhcD%cyc#GPG}ku zYK-hDAv9xW*5BbUw=OZ(=0t6%y*&d0?E=h*tZIVP40ex~D}V(tmK8~)tRh|8A!6gE z-0vtiW^SG1r!1_{;7Y6(YQRt=!mc#5%Q3bD&w+Q6*kec8%UD0LJ+b0%o;jcdVn9yp zoZSnLy^l1Gv8PIV+l6U}2eu#`6iruKC>{)d+v~nz%>*QW8H9!hn%FgYdz=PoN2x;N zrV=w~*<K__m3%Ym_8`=cT4O?k62J6cW)Fq=CCY;^bb1b;RCT<dmb{{x+SezW$!;%f zV#>Xg`~{MN#j^4=r+=GC|1pz(3yLZaFsXD#Ro7gt(X<!F9-rVA{AY^v0L5Tc+WJHr zd(lG`NxLigK$!7T27iydAt6Sj6WP#ZHx!jADC_$=z+{AQx+lxT_zPm<csn8u<A)w2 zqq3dPPB|*%*Qjb}+=hFnFDIm9l(N3qClh)y25mF&p&1wQGr(oYsQcF3OKCU4!xq|= zx$yvf^+pAt$@fy}gNhR69~xDX?QM{o={}pQ#ZS|&p~(g)(fEMeBT0^ALFdQ6(1MOI zhmd0vo(mn1V=sl&RYRVC%9aR)nUCeiu49ir2geRkGk#}r_t>y9A^N@fCDrUVXY+Z( zfQ<G0CIOVDkgeQOp3kE@sLFht4eRm9E_*#+HvlpA4zKg}9L2&wbae@l{RnHSSZIzh zq$=KN$&6|pQd`Z`cUaVlakvtM1xy)<w#<}k1ul)p^Yrpq_Mh~JUvkHU?yB-5xlNJ0 zZw;w6$4yM?AcoR^_$W3T$N%hXIc)CAWA($jbdy{nqOR)ly~|`(!Y;0(@@FlzVZ4gV zcVt>*cK+NzQd({*eUgEXn;Ns=CF017+m_IHM1Hdjw*%>jJ>;xtVme>v8H|!?RWd@v z<<8sLGI4DmUsI(0yC9r1tJdmC?v}e3T@ZJD%UF;3K1k#BN9tdr5#>w>KQvq_JBwWj zYyAktfdCA&D-E=DNZOT}GQ66-X(^NUM0yhVml6QV8bULxEb3+Dh>P>%^QCYk@wfdI zj^7!66Iu4cNUJ%d$o3_)js4M1*_DH8DgJV{wo=i!60P$w&~ekRxe_P6?@NFfThZjl zzZo1qE7-E`srKAk&rdNaM~Dg&hh@+FY(Z9Djh$9jr|wjUY^z5_7K{HpTQ^0$2)$qF zS|=h+xzF7r&&>6%%nnwucUnpg<F-*(cR}5hb60zHgrx5lb7Sw>(<BdOD^u$-BtvD( zv^k;#YFX;4=F1WO+8o!HZB~CpiY5l#F++XsE358qeE-UO5*8(D_doFQT&Ea$3V{kN zp|8}<+tlMj>%~BfpIz$d>j1nNfQ10uDHNohnG{`{H-!Ubt<A5v25=ECsfIOx5~|p2 zL}A^MKlMX))UnqHx#*VW1V3f`687R;qxj#JABlC}CM>UModD}wtEbdKFJj~8P|7hk z9;G1c#zKvI>fz%L?7)&-kL5?T8`=eB;TV_rDTLF;&EdKFHqCph9Ug+_NNQ9QMc`r} z=JZ4Rc@NxIM8}LJD-hli*P1w6&EC>FawJDl06h@JKFBm^YZ`cvxbZ*|+^l<|xwQ~4 zUDb>%Yk)2_i!7z>z%<b_?eW>gxRzoEx2~kGE>1<|{n8GQG3oiGhr*SuCi6{-KU=Tg z>4GYmf)Q~oLf5<oJ6;I#-t`rsJUTD)Sef@fIbP6TB#SxH&eX!R6!Ie}GUHX1SXrlV z3tICaIDYo=e@V5r^Hm+@6(*07C0Dx!i=GH4KDyWo;UsGOoX{&JUt7R+aO*!h<=qj+ z+g5>yy1ac;Ag)c(=H8qpFSD>F^mX@Dk(0l(m0p;2^82@+nUVo7U8nFqfl@$SZ84oa z;kmE=kEDD5XZrmgIKDB=v6(p^+Gft@V@TR&*qqNHiRG9>&gq~HQ=3zU<dm~=KA&<Z zThkj!PDzpwqEbku()#+`zW>1Mm)Gld-LBj9d|mg)pT_`iyLWs?%e;l-Nxq4gvi9Hz zcALrL$eH#JqqV(KSzN=7Wzvtr)%unWGIc9DWSn@PQUDuu!VRI<pocQ%mm%cfp50Hv zy?@d<zYDMb=y~!6B3;=e1~htMEo_Shn0<btCpCmMWwDt9`=NAhzcwL1vuC7_L*S&r z#Iy%@Z5Z=a5EWyDVLId*vq}Z?Xpho&saP01{6N}?DLd6C=v34E5WAxWVHDN;$`hXW z)+)KuBYyS?IO+1uBH@jgMnOL_Pg~XzM)j9D@F<V$rVi2Mqn2M*8Mruj%(h$I@1e+m z#c$A6AZ&y?ilL3*BJ7No3y{W+LB^_0TehK3zfG$Ilsr<jZ8R}(HvC{9>J)Y3I=kR7 z-Av^$;ZiJs3!Z)ODWkkSF;@yoPwC-`LR_;Q85<a{)g8jYEVz^8_w@+;jtDK(Gr<yh zb+u8oiou5ALFs7?3(p4WRSV~wzI>{>cS(KY^{1a2N_U+QcO2dSQzg+kvMYY{h|;gx z{M0k7_BDHT;lEIsaWP@zON~rCQ#kL*xWL=VI_AKx^Eubn^O!%+xDc^<48UKp>a&QP zTz<w|^<e{rwsl0?PuDzNNb&hw>P6lV3l#uZ`;xo>Tuw$sCT2+7@2MT4O&{4NFJlax z1bpfSL{&ElxgN1Fmq-tkY<bX^PMc)EAH(x68!M|#GHoWE{qMuu5PIRlxoioRkn9{W z5pHRkeRcL_)lhD5ihK4U3*H1>vK?sMbT7U`c+%(~)A8gmX+qo&Q)*q?ULh=?Vy}Gi z<Vdpo4bwX#&ZKXfkNy78@(i9_&Uo3`rUV4c#VhE_0*y3I&5=qog|9-y{8s8!p8_gn z0Y5_hEf)t70gqj^vkG#2!xJHn-rdOUoQ_R*Qh5}YBd^NL>#B0kt9j#pq8{NwU~Uh` zlI{toytVUrGk;be(KVhP52M{q==62XeHifaSNeZ~6&Ck1AToCr1Q|}OzpppLeHI^R zC59+)iv~=1YZQ{G>VlBE${pKg(fW?T(M$KBQP0blJbbup!{-e6RNgnU+dGmT$1F9p zRkMPnZPtWMnu=S&4}Ak*V1Uegn6Pgw0F-@l5e$C1e^TQwPiLI#Mb+1w8j$ZnFB<2{ z`;%V}6)fpDr+v!QDwYTQI-#&(zGQA0$MAsgKaIWWJARw=fg+L^aTqtr(4o`_qmN_! zD%vnEkymiKl<Mp&I43S!?J0XXD3G<x<!442eMED69~>bpYIXk?)Y2#%{`If_Ki1kM zv1d`X#Cwz%TtI4e@x)@uMi3?9e6xu72DEa>x78)8I#adgL#?UMbMwFy)n1-!L+gzr zL4FT;uA)g?))3=MOMZukAO7{qMoEft@NI^m__EARD|UHq>j2!qY-m`TN=ma<=!BLZ zXc0L5-fC_!`$iBCuZGfno{I4jGGy%Pqt!O*$KW;Es1WR}%crL)InA7Azd7Dl!W5!3 z{U4b@rb`2OR5ly}&E8FXcAc?YT@sNlg2LBLdYVaER8NIBa{iCxW-YS<{R{vn<pR6H zzg$4kmHtQu$}UOoQhy3*r`^~#b$-Ud{A6hv)_)zqI|L|--3gupbaBVa99RpS57_?E z&%R+9zW?fO+ZW@{F@OhG{9l=9GdCKb=-3kYH@Q9i^WSP$X(ykFh)?%QEHarTjK<uZ zU(pCsfDc^g(l>nBel?Qs5fXqAg56n`KFi;yenT9|1guY}eq}GI0?NKuN9|i5|3NHM zsLcL`j^Z5~lTY9W`@B${TT%tCRW7hUT{!<U{*u$hGRw0sRB<E)J<?C|@q?MXpTYY- z8aQ?e{vP+$I>>l;5QsYn>ik&`MT70(q^}30g0f$&oWBB5``3@Zb8SB;I{mx)u}R5! z%hDEAz@=R_;&;uz->t_D9ynNPyi;9w|CR6X)6t#hgfFLIBqx1GIArIKVK%2h8}G$s z(5Xny!DBqeD<IZa&XiZ&k6s*BK>mnwfvq7noRhN_?}V>qgZLZ)FWACvfK(8?*(ST< z8tEt-;0t*B7$AEL+R-9;B8|)mzzb;qGjrmqa|Hkp<p2&Iwwt9auE22xa|$5CA<^o% zic1sKP=s~)Gm?NHh<0`~eN{n)k1y7=oJ>=uiyt=yEtjujot!1$657jvWYo35?&>`_ z5O`bQI@`PU0g$7TS8mg(7qG!u?M7<y87^}B<lcO4uzQVx{VdQ>;Y|%#S^H$6tT9>X z))620peJN)X}I{zSD#0Tf4|&G>i+LMGga`oWr@cw@oA>)X~Pn9GzS;&9T53f<WNqT zjiQovf@2<Mft4`(sP~aHY?G(ZV(CG^Y~0dS@X4{3CI-`8P-^&c+$zU%o*qeFS!iI7 z$vrGmV74t~RGxpw+ojpx$(3`wj|a6fwstw0TQ8B_->u=~ngi^U6)M;5STP5RH5ffm z&0!pzK5fMx=>XWtJ{nLSO`DgYO%QTOTD_{@5c;hUc><~0%+HHJOO$B$*Z(jYI>luw zlbTcqH`lQc<*(w`Y*<bBM4~@lPT+46TQzCS>{0h@vpO!$kHo|04yOJyTl!dqS5S$T zAAys1qJ$7BoBjl~7M8A!2LH38^y1qXupwQFOzUvM{o1QwLn}EHIXY8R0F?UdNGz8~ zedQ@_V5DR9T{$mw<(D560+Pcw&7s0Z_d;cjif?^O<!K=W{iKtmwj5-KjYiQnLPvDE z3V@YWb*NVLO{+yJ`eMs#Oe!vhOgjnBvpXwoOy0%-mKy7G`^u_oMaBiRyuMdBTNM%= zzs{8q_yR)smunYg#xB`}wz!35_87LQ@^l8n)mwXr<tyAq%FuN>eol}JVKaA5Tuo|n z0aI-?4M5(KD<M%+6zFhIaVW`Z3$%=fJ3*K5^|0s5_=VwkwH{Xe(Y_wQEwSokm~<wG za_olxvi-8fLA~5$j-O_#K{wvd9s*TZzLkFc@;NzS<gZ-XjfBu;*i3?24h_Xy@FoRo zY?PBNAJ`Z2plqYznG;^xASs_68;sV~`xa;Ks+A)}$_|R--|uviC3Yhlfy!qq+8B8; z2&d!Lt`+*PBSJ!N<rmkc^~AB&%H69~M;jy3_hV}vQqxXJlYtsVFDmdVL>V%t7gmOR zPOWnF(gJwrN~Mji((Fzdn56ur&^FBb+mf$W#O)4DSzWX?&q!9>#fpu=%U8C##&UWV z4%Bi;J;6H%mGV>3po-jKj#u?oOKDFkt-@-Z)WxU4iHMb{tDK1PDdLsk4wmyLxG{16 z?*p1=Z9;{~(nWUp2T$tKe|AfJ|H^lVRnOZTMO2hKs|CMaNXo$NadcK+g2nj0yFH*F zCbOJDI{C@-_T)}}j)uPv@fQ#)wVQ9!`GTTE!mZ5o#n#`F@dXOuhvwzZ&`~AI(b`)J zn1%i96P`HF*Mu1WG%}an#;}IvagYIK$z)$odz1kvuiT3VV2-dxhJISH5CG&_+JPVp zXeFm1wz&ITK!gy%!2(cGmujl2=jRH5`sH-f7PZ~-QbyNtImRBIYw3l;Xbzbn61jhS z8#xm_0?c#dQcY0Q1CFfN#uto~ISMLr9pzC7cUfP$=x$ZLASiD(S!Y@?GpA^hzi^%j zy{DYoqF*7uq|4J#%diyq^lXoXwV{vSzA|CX@7cHt>g*jtUPAl+h#=e0B3F~y*K7bT zpcHN-DETpE9k=vf3T;z22~6VU-%sm2y@T*iS?frXUdkCr!x58(2fzkXw;&P~7D;AT zgM`$n`7vw)C1}%o>YoQ(pEl`BM3_>KXXn}7G@Px-*qXiz_U)aTypM%CaoCQ<SOT@t zyf$E2{&z8S6E`An&Zkw3X2l8XtV$Q4BXelZyx7dyKRf_8!WmmnatSc-eIPU$BD$qW zm*ybjHdhyLxTvR%zrv2$at*aMGM!I(p<Eih@%O-RH^=Br#PupFJ~x=2YgX-cjWW71 z%lQ&z)RnDrX9OjSlu7*zj4Jy*x{wt|KP?j!)1Evk@F)L2cMji5-nI$(lXclOfg7!0 zPnEY2&!$`MhBkI2G{1mYC|weKQ(M11$mY6A{_o7yGIfZeGZyip)0HB0iJ<5e-TK<b zlpO=(xTBcn@o6YDXRe*+b>N9D9@{APNa3M=kbYA%=W8E-!4C~nr!<%gN**Gmr<g!5 z)dUD(pr(u;m>kV1)k(Xa%>|ZC#ZEah-*vwl{Muz5`1>NsgOOR;=+QKi2pl5+YHxbP zBOEHGl4Fd%UUwh7TW_wJ)K_bbyBr+LYa6LbAD6v@v~??a<I8lTQNL&LC#{+<^L6wm z_Nqo)9|;s@PP=?;P5l?30zek#wbXsg4NjzbVaAoeFWL=dG>M!OZ|4CdiK_4}6Md=@ zib2H%wO2^qFkIku*0_uZvRjRudMw8YQ2X@G4ws%kmN9h2eYiLlo{=?4)L$3;$%e16 z%G~CZ^2P9H5ckNM?8#-SnQ4V(d?DC)c>3|1v{zRBU7Cg(e;ysE_;;!+Z~xtUC6DPK zPxdyY?PlB1@!BV@5!>`EAc@&a*gm`oI$h|83Mv1q>RP9|<1TSRMJ)L$L}OES<?54x zP@fcIy=q=^{+W`(bWI^e0W#4|33*0I3zrq4e=h7JD)lt4X9T4SPu&d^Hs*Wt+C2}P zlNl!*{$8|wOg9?Knu9k|k$NWXV3(@IY&Y5E$2<><yG{zIq`TU`7G04K{g@XasFMCf zlQcIT_&uBK!8xFhr;quFNAm`FO1fSd4+d-|NCh~>BW+Vr7Tx*2w|_3Iu}O7GwM|f; zHdeXzMKS(jjlIq3()ek;*Nh%j?6|8MOZaOHP)}rU5R?95@|4tf&Xzxu%hs&opZiG@ zN7s+PP84xHY@(KJ4R{)$W@c2+`x+1iNwK1XG5uAO`VBhN{F_Ra<z4Pn%<w8FrS^>a z=TldfzTaS4nKUCSB@!Mh$RL3UZ$eE6s4{eQk5rHLXWNC5SjW$hC&$<B({2&gg^~YV zdGpFnoUp^NO0p0=eee#CFfQS<5LRLRt`{;^v-pgklg`y|5@W0mT47$&TJv^&NKrpO z(viO@t(|LeaWfSrB*@HJWxdC@UMt>yeEH+G^?Qb`Y067Hsdq0mC@itnHA-Agid1%x z6RZ>82~f<^PRs@%HJnfC0~c(R4t)hZ9@|XY$bP)3dllK@rf<}5ELzuTbFwerw+UVj z2H?`Ash~-Y{&aZ9ob&M$9e0&>l1Ta<rw7pnZH`?j_>*G6T@+tqz%+bMwf3w?MQZ&c zu~<xKl34UJ0nuxxo<&jDPY%%A!L=NKx5Wdul)LAbb)<4y(`&Wq**&yPEv^o#$*-1i z2Ez%`AjjehPah0;(%pzgzO0kK(V=r_B2&=XOCe+b_*SJtPTYb&YVvJuBlV>l4q#~> z*jvhg^aIS>YuZ4n!5biX>l)*93GEA(|3oVvSf=*N*^aLrLo;lt$N8-aCU1sP@WwX9 z;42rCj-1hhD%>xT^loXc(v(vC_~|wm6N@UU)&IkL!6|p?EF&tX(PlaA|Bbx)q$9D< z@_^<TOgWLjkx0U%7?Dq=XM>D;hvAMXUZH)d2_~y)9d#WVwtslJ{eeCu)TwA7((iP8 zF_m{s<5C_tZcLs1gummgfw1>U5g9HU#}xQ7P#OO8A(hi0^2iY6II+oj_=IZa!3p0< zQd+LTnx_+S;BQO=C<iOmA1_)Vm~3tqf8o>u)m$A%8ju|qpu(8rwdN5iG$bVT`E>V) z3ss&qP*Fr3A8keSS8G-uqu1u%IiyMR0obBvr8ocZ;_3%pKWkawe<IUBl`bktqY`Mn z#qhN>h0i1X=*mDFsxb(lS3xxdku&9=T<8ZoC5W948)>$s{tE#*HBwvpflnsIIwOY- z`AO)yKQzgL0!BIYj~}qm2CR(6q$;DUE}W#dT0(yF|Ls82S}83Z^!+4FbT0UEWrtJ+ zFsu`70=fHn1=#0Jbp#Ce066k@PSeVbBZ)TF9U2Yq|4W6SUsb~6b#XD?;30vgbSlN4 zY4&*JL97ghl3<WO)cBc~<3=Y)iK;=Gt+xyE*XX1IeXjTKnbh{V;9LABHV*k0Jj^L0 zGBLTP3leRN>5Oz`R6@UX!6dt9h0H76I*QyMxivYEvTT}$M$ufre~B+rB27PfQ+ckv zD6H*G!?)@*R=?p_(_+bYFlBTasRy&iGIgzi!|Bo{r&@ZYMN_Qbnme%bo{%n!@Or<N z{lJ<`*;Ic#uK(tD`m^fsFmKii7|mORUtgq)yLwnqH2tF|bzluA2C<=llRt+fJw^@x ztpXd5bVx~NJSm~-A3X1ww@cduJv`JGH#*HgjZ4+t4RoajbsmSh3ELfNUWAqREI&Ou z7fua+JeP;=tZi=NoJk`;>?bXzzXoBxdRd8SH#wxprQoPm63#Cw!AbRWlMWMOSuTpJ z{kdn8XwliGazSvwqZjNWLAaWkp51Uf7koc@Ea6$kH-D8J95{Rizcp@3$G@P}GPo?j zxQ_$&U8)7GQjK`?qr53*1=~2;^2ruldgw48Bg&iT8mad3meI>v5?*&8yCH3#4_DOo zU>r~Hl`h1A--PhKSsBBGV=h_e)E5|t@3305TN+$gT{8UDwN7p1q_jz#em2zrf1kq( zY^Oi;tAQ%iNbg+apWD}<4e1%3(}JG^M^~S5_6DPB&J4JKZ#2<O=EqZ8pW>^gVM$X? zkmqGaE^Qg0u|v`{xDy<SqZ;RWq)qlo(cB;TzUmNR9dK$v$IggNK46ugrAOtkd0>&$ z85yGq*xDr9$@g_;++0!D>og-Ft3n3uxq#z2@Ua>DvTAC-q;;{b+oJr7v`s@4>t$;B z*z=sKe`zA+BiM$?mU96Fz}vLZ+%ctVqgr7q@;Jxu*`%U$NCVf)?%!)^Qk}C+k*3u$ zsRn%N7q;DKlZIt(;D?FSz`@r8pWMYFjT@-IPRAi;udOXivoq3`@a^_?133TOwC(uA z&q>ct7C+@I0rxl3FMa11FDQuAAEq3fZQBGIJ4zW9h=Z`UlzEEjw<JqQs$(SOnSNJl ztA|+d(fXTBx8F>;Oawmn0_R&a{m-Q<NU43M7ZGj3@9!O={y;+ZIVJm~n4?cMb^a2R zR^87&_tF+@j!T#9GTW|vZg`4cPWznefV<evnc!+4ljVH7O%v%Y6f-PIsWt__lVVVQ z-}L>=R!u+UDnD%d4Nz|RLnuwzC6`ummhRh4D*p~U+8GR3fHnEw(0T{Ts!i>~7edVm z51JMz+4s^1sE|2E!{k{&@Jq^M%h%2{X(mBs|L7x=@vYH5n~A>_IZK24QK@RbnEXG- z`T4j3e`QjQGbU169mUMR`8f_M3uifQV7ATqqYOHFB5en$pc5V`N)q;B5Z|thS5Bnf zGRsb|`Pxj%j-t55d(DVu@c@@iQC^!(r#svH3Bx|AU`(7Vc;Vbzl{n#}4+!YpL}d4^ zri^&-*@E9~C+!vD4uqYwHS9iUm>5OSwlMt0t!baumnh{Px`XpHFqfD{$0PKA25&pF z6ZuW<PxVmkG7{3;UBTA}Et3<|#YxKk_QBI^Hw?g%zbJL}ywL3UrdRrifd47#@iqHY zaBI4+>Lb}y*I}<T2$6H7ySj#2b81w&5iC|r9W8z&*_>7PJZ+p8%b$Ao*MV+}hMy#R z87TcG^<Xwq%#7un&ml3_G-(+0h%fvJLnQuQdaGker(>dA>Nq0UH$uzYpY))t)%fv_ z&!x=8^j45jd9cw?jTw2^NCHn+UY8AEI8A!LE?RQ8r#g}?j0*lssU6NJrLoN<yccVT zkEs@Uni@7En@00PZ&Gu{VC!absXvp}QzhOK{XM_D4_Wo5{!B^|yx#TE4QyW?>@l#J zv9u|wv*lsC<&;3l5VB7LkSr#e(q_YWn;$6^PXzC9VZNz4Ki=fb%Sy=<P0h_pNwufm zcfY-&US?k#T+%%5>H}_gGfin-OFlf^6K^{h{|RETIUG1bETx$+Mx`39>z~_az;x*N zmx}Hy@$OXq_}*K+L8<VUa@<cSk){dX!d_kjn>SI9Y$KM67aag1srn|Pg0nzqa{r38 zXFyO>*QxSO-%!QCf=yJo`HBKOwJUPK?@`*Rf@FmR^53CtR5h3+#NMW$Q6=L&g_Ge= z=lVZG({n7+fWI$1(#A=VIgD!O`VTx#-3Qx6SpDwe-~GgYzLE3tclzCP)KA;*A&nnn z4_BRxW`?D9D3dr+l@ApX);S>U-zG6rPyYIZ3^M7JRJhWGowM<3;1i33Q<O0$?t$Y^ z;l3(HQJUKev#Z3+sVBo|0o~Mo8Z!m|Qrr^!*K3R>L1;5@xWDcD-7%kr&xKinXJW`m ztvzn-JroJ>Uv67tEhhQoifvN^_dM$DvUOWp_=Rub0wg(N8hj7M6QljpuV}vdtH-7E z1Z|Hy)m%Fzg6>q~FdF&MMjzK;tY(xpKcl%D?Ag3CsEw0gQ~%TZk{+^dWmlTAk_S9( zM7@k%eD^ytEnA^;^S$$@nAG4T+SdC;oJN}OYqda610QOS$4+iB%kz-8ZK?m*ZI;#9 z^K{=SMUn@#C3N3hZ2x3WoPcahpKMQr=Gl&>wzS@2e@m*X+v<<C&lLQ2-r{T+H(6OA zz6i2FX`NItiE2dqo^Yi~xqch4sCIISqAZ8gCbgt|sN*XW5f6Uck}yA&Pz;C!%sry6 zKjJ&3Ts@7cxzY?aE~7FFX`_ALwbPS{X-ghfB>o3KVvM$TnACA*6ZOsab03Elz9B;n z_Bw6!oqyU;tzhYCJ2Mo(rH?gKYtHWk^`=zcDW?+;*`onTw0|`4tNs~|PoSTn^4lqf zXig;nhulcgPr`wdZ___nE1};%D~`|VvBDbH;)H+1)%-J(E(H_Cd8J!66kHYpdcwjL zNz7ZmrftkoSG&v0Px<aI80Ggx078-2hkFu_+AnDRyzCBc`S&}pB|<Ki3NYGSzOh<A z+46MjgHH?fvwQtTao+#>uT@?;K9~Hxo=oW(@_)Si)+`}KQSkHQ9Yu>C@TGb>wG_R} zt=End&#<DBf6ldax=@Bn3${ODKKn#{o*^Yacx3Go@G0Q0_MZo0)GMZPa_LbiBh{}; z%ZBddgY^s#S1#E<?g8VbN2CU#J~Vtz^Hue`8}${&=0)T$`?svf2K`VTs7RYNtZw|- zayu$L`!eC&hiX!lxHE@JcCrd&^)37R(tWpr*sGxQYd4Pbeu+HhHOdFK<WqD&aRb04 z9-C@N7+@I=P^}Wv4FiK$7&oB`s^kLyRpu?oKi|&>fYp>Nq*ac3$R27ePxVZD*w&uH zxS4ujdoXK{*G{6sw=c{*cUYiQoir)nwKw&m^0p#-AF;3ET5%$H8uEH8NQ&kZ+$T|( zqIitv62u`a`SC&V&8Qoi+xV1?tXfj^2d3*cm%L{uj-I=HEoakK0x4f{?;zN6nx$WC zOTl!6Sq<vT|7r^RrMod+bRy=<q9l@Rqb!1E`@^I8Se(iYXq4j~fTgNPkas0U^RhTl zxoB_4901E&F-g9}*%`nDh=g!Lw4s<#5Dx@jrg^XL`{(JOL;jhQm(86>H3SYmfL9We zMnY%Ja!&oiE7my(9sOv5ilu<+&;NJh?QhbNyF0Bwfb&QJK#{XKu)#XYkqV-%U5?vB z<oQ^A!o*H<h{d_`2E+2#0M|+j6Od^t^=q7N>Zz;qw)Q1PbG8W~a|C|<I=^X8!gt>b z<|V#0NV?#Zhnv-zDN>%BdGO>u6R-aRP8Zbw>+9|(z}U@|M-Cdecw3|y3lsIu6~6Mh zQ2!9(s}7!{qfU1r=*l{W`cICrLpp{3lSv#JNzQ-{?iAp2p5tB@(Nz1Ct1?YKLW9ZW zAZaWjZWfNMzqj@l!<pxb4(q`9pCwq2pMYL^_rI(85I<#-vjzC=tL!U03fj;ZfX7&2 z0{F@T<N*MWf!0<8dJwI?{IbqT<q7d}PHboL(K+*VoIcm7V}e7i$ujeGk+KHGlXxj) ztaBsJIf_$@cqI$aetYcX*CM0oPHvmn>a9YN(^2h(73yKp&V}loJC;_VQ~ErE1>cA6 z;PG3^bO(|?kg!37?xJS|Q~t8F&0`K{Z{brWVD3*!40QKw&Q8y|j}-$kF8s(QTM-%P zcbl0Kk<sinT>L~{3L779C#E+|P#e^rfhHL?5au~rSs@Rb<`y12&B;@%L#^a*4T~gJ zs}iQ<V47{s`TJdcf`uo)<7JWlMM1x0Q7YyaNM)y{yLklFrsa0+Vd~eBndyK;F9+05 zOzheFxF)dE^PKjH`#54We>}_ZAu=SknXtvt`UO`_{?Su=$8gZ(lh(ss7bW#@(_BGi zchi}nqA7{{1kBLV)D!)`p|7P)7k6-<GqJn53cSZ&XWMFBo_%i{Vo;cik2|DnVzWmI zNox)Re_nD6uFp*B4BElCT!yqmEpHt=q0cx~72ZB+YN`3c-^KiVJHYcoFtqmO^#Da3 z2<>Z@yQEV=%XM~iuq;Sk8B>$A;TDiWjWU@&@wSA*2l@39U#(c26S-{&(HV-6iN#RL zH7FP5kKrPQv!hm;<he0afs+?hDcThXQvCaJe6&ShR)S+3vQ7qoR&EZXgY@NDBZ9}0 zjm8tyuo}40H{{@)OTcBC+?AC!Lx1SgOnX%M)<P)g1jE2G+fvzOR59B1)SJJk%LRyW zreo#cH9r(A+8-#Ssn<WWe8~xzg0%`}aVYBG2zsxDEr0Z$rYVp6ehD3!2t<;EKemyB zCF)T8OPk_i&#Spg^X@8pqeb+Ga3uBKwSW?wUXH=ojZ?*7m8e&c)6=Z0&^DF>_ei$w zqxRca_Q||}h(K*IbaLjzbwzzAP?22eT8P`T*_ZpdmXrh?YL)J&kj4q<AP`_GkC<3; zU)Ky)c!0=oL0XQ~4L=7(M36eMcuvb`8aOo^`F=svGTWo~ImSOtyYn{QS;2lBE)1A; z<)uP&9dlq&709GlCMWkEQYjPWvUDjlA=&<%MMt%D?!2vBZ_b-8_!Y&zdqesuxkLLi z>ZIf(8_Ap@WA~?bd@ttd3O;>&vk{?^;Xh&*GY0wBhOWDPP<0?dB+*VE70R^_<VWJK z*oxuqXmMQtqSi%QvE9{)#TXSk|7GPrE3wEM2ZS@Iz5kSaafuuyU|WaR+4`u|8`rO} zWq;VJ&NHB5ib1A?{x9)%>CXEpp6>%c3ME_8BO^+QDO8U6QD$vY6iVV0bz?HbUeII? z_b&Q5_Tv=@zctE(RJDyaBB<v0GG@wbO)Evj-;_M}{Q`gKMIZvn&{Sr4=)HR*mZ>K# zZxc~xewp%$n|sY~)rZ`VxJdgq5sNHX*wrOL?-Mc%J4?h2j&ACVkLOG$7iAIX>gXrV z*eR-a{$4G=-<IHrD&KEzp!~@Lg2+UFHeTDUMzF1!aow22hu1d9%U?n9_vyEA#OEjl zzRXDYSyQ_&7EoJ7PEie+KCc>8Q}~K=2X|lU(Ml#32DS_gpl-oFPWL`F;C{{y1@cJ! z$l`F}Y5N@3W(l>HtuB^TSy_lUDZILofRrC3T3L>HW$cGX|G|MjGQlP<sG8m-BANK> z>Tl@#@#7?5;xWSSAB}XXB*4+-Sg@gs6F|aMA&`^2f!}+r84=U9o)%*ztc#=NU3o4~ zXpRkU+?+V%rK?4Oo;iZ%3-L(39Q8nJ?5>+Q8Ytu#tj$#a_Ku|-XP50h?l5*z<c}tf zt_j9UFF`0xPs{J;gLiF%mqA92M<8qL4$fqk^k8Uhh$n!_DC;v3@9ahoWpOClt!C$# zb(Sw^1~a-y_qM}&(EYKVKEy*uo1#oF?o;!OR?p?+FPb2R1~^%oy|hdzQ{Wodwigg2 zN2bVh`DUx{sGWn=EnA2TEDM7KFXk@VzvXx+-<cRjm**#sGUqP7cU>{|tg%0RcWsQs zGx}NiH+O)E+a&J&82r7!Df+y91PaGJbSc-(Yw=<SYAyB~-nz7q8egyQaBL5cyBid5 z(H!Ho5lq0H*u2>(IgX+=6$)y`J*H+TD!LOC-%*f`%yuot1z?Wr9@zWe+AI0)4E3-3 z%0$Ht?h^m+%B5)^tNle=V*c?8c&L+v-KtEW`x~meOskg8{-M_jw57MtZs<NHPZQsl z()f*bKe1YM=g->N!X8Z&_!bMiv?r?!eZc;hbQs*fe;Jl+$u<+7svAIDv>YuF(agCk zEh%4FWn^je>i11;&yFqIvzE8ir&9Obe{}q36lD0@yF;N55pW~e%JfF|h887~gmT)B zK*;UB&(+ZL4&ya0dlO`O;zuu(pn0nxeQ~C6ZQbegsYAcL@AZMd9qw2;Ihuz{UVDBN zW!n|0cYE`C`+T3IM-{n%xJFhUIA?`R7LpiWTQ9oh2a>(+M%*Vat+;_EK+MB??W0^e zsV}Qw;~N#ARRtesD)gM|sKeqrQe`LM42!{?d<XA%mbixZ5OC(T#-Un$iEBejwhNEl zxI4Kl4`mV1dfw#aB^>PSw9dWZLe>-B<Nox?6L->b2q3nxK_PDO^`u4NuQ*&`6o^hc zUcZw|sFkxV&yCoTDLW^FWi8f_xxZ&}Kwr-NO1defi8CMcvx1xf?0AsOjqdrqT(ll2 zCCq0|z0RHpaix@}|2CG~vpAkS>j(8gS{gz51r`Y-j32dl;dZjXB&O~;mrY`_O)M6Y zeXjZC+W;KXqZd6fo{p+bYU>&j*av9nl;ekhg0^yk)MY${1Lon&zX*^mz@f_DIIICQ z{@&x8=1R4gA1LvCMapFHR>JLUY3C!EpF07IO}qk{6#0W<m2(&5xfm@|=-R}4gF2KW z#_$Y-EcF?*>GrhdinQVv`P1&)$@(%dEQM;zK8lIrK8Kv&*7#5Ks-4*05{d}g?y}y= z#I<T;hyh14AVGj{HQo^eFe1a-S*7Qg-5{iS{CO*?&^XBnRg{T~1ioE`<FT3)%V?A^ z!yBK^vRu!$4x7c%K$2bFR*SEZ%tDDfAjwk*^CMkq*h=BY(O#2M-vzVDkb;X6QtSlI zA66Fb;FL!gQfQ3S0OMuUO@%y#nJ}iqIFf*4%8X!8YyQViVP*D#TXc%TK0`ha8F)zW z9wqVLN|l|7Wy(wVj6njAXW!BNfg$$cl#Q^*U5kSJC6p{{0(>^C;UktD=U=pW!tz<L zK1WfhGvNggEMN^ARv}813}V|=<Ehv+bpTYD_!NP=*Jjfx0NCHfy>rCC-YVWPK-tOR z)<#xvi+%)&p#&;R0fYu*%-U*FW<QhUOg9v5btzDa|2v5w>qsX-x+Jauf#E<;*-4rQ z`~T*Zvca+<>?wZ+j|UPf{{bAWDaf<;@rD=I+bz7VkEI$g&nsKLuiQDZIc-RmHGdb^ zlQe@#NN?y=pn2p3tEMngC@cG6$!da22oYg;4`Ch8DvheZ;U%r-1%b*iQrv>rwJeZJ z<%TuBj1yAmEJTcG;}4So(4&IP;Yx(;TtF=%R+)?}`XFE@l71u5Tms~PT}$hxAQ#r` z6mNZW<A~N)VCR{D$`#I``abaN&cC8&Dd^VDj=r^>%(154<sS(MWF>J;!_WEWc+s|2 z7=U}sAp@c5tBiNNQk$eITPe3O6-BX(IiPBV&xT}_4O;XbVb3nrnpLt=fy1p`w9XG< zd+;GZBMd~;M)fRYE2qm+<~|G0MZRK~_n;j_&zwcavz{5qY^Y--yRB@-E(+B6)7QuD zSW{-R>&H_omZ-t+07IASafPWN=}9-=<33`1-^G;%<>yeQNpxJXhKl)S(iItWm}F?h z+`No_QqQ9*LUmG)VbVWgn({tFx}4ElROgLO>fui63=cj2msjw>O}Sc@e|&x`K*FS% zAf3T(&>jojih?HcH8SK7!H1Ym)R3qXP`nA1S{i65OWF0KfC(}p)|4;bH_hdgg5iMd zSs1Mp^n(--%*wK!N1sbeE(>J)=PhiA8az{&&!lEygR^i`cj&mq>`<zGN8b|EM?eK_ zFUH-#fmRlQ-OH+^6f}h`ku5pBGn9SvLiM+%RK%Slws3esfJ{@>TpAQ|w_8sAb$*lH zpodU7L%I<oawzM#6Tpb_cwV6Kc8|;JZP42d(sm{W1gGRuv>7mE#x*&#eOh6<A*(9u ze5@`g=ag*DjgPmIS9ny&oG5ZMzA`k6^+b+Rq{}Lmr2y22I8DhMkQ%^sgaaGIf4`Dq z%}3^R1d0yT*U#JCFMYjphxLI2&}|PCF&*j|xw+Y?WVsfxX@-WP$Xk_PlzZP<S(6xY zpBd2FH9)MUWv^dw0Yy0j27sZVt_&C|>Gi(j8hHJ;tU~9-CR{M;iXmWG5lFXdng7^y zIH3jFo_*Veehe-7cOCxshZdnXC;4{^pvRt>g>4R2j8bjE!BD|IwRrE()%LYaow)!D zO-r<FFgp0beUKzU*hU%2q4XcA7{e8&iLiFXPFxHGE_1~=e#)9CF$-@FZ02{#(Yis= zP6iEuk5&Fy-3er}p7Cl~j(dVr{_7dvR4#uPUH1X>r!|cA6=2oIhN)RgRiAxr0PHXH zktzp@cYK18c9r*m;#L@=<Tl9@w$+^;$5L(rK5K`>)nb@CR)t|P8fzqcSmXWtT!J_A zTEranX2l8|4AuJpytPyJ2n5bOZf%R<vjQ(w%QVFY5<m@s8xZ4wMx1xDwUlmBSbHEh z8Pb3Yd$=RMvcsoEd95C9X&Sm%uC=zha|yF6`9fFY{7o6w3pd7);2}T?6shq~SDQyq z`@ycVE0*WO(^lPj7AYc)vqM!@ZS7_$ipvJ~bvp{FrM3~hNI;2Cbg`iNy7v`hT+y=C zSvUpnm{)U-Ft^YA@0wxBF@SQq`WaOYHL}r%qjKfOsTMXa8nY?fq+_p3iI&4XuM8^h zdQQM&%y`hx0vfbW>*K6CaSr+xXZEo$ZF5&3$8{Tk%n*WPCG!0~MOhojIrJ1DgXZjQ zE1)KS?!L*P-dupk5O{_Fa5U%8zBg>-p70QdvbIe|=O0lt$MQahJbFqNz<C&EGf?8} z0J6~n)I!i4Mnh(|M-`MA_}y5yv-)Q)cby>_c-%5@g~lj;Wyqz)S$i|(!VC^+%;Sw0 z?Y|~DRFPN;hYat>EM@-uv+oSNes-PzXW+}z?K{Kod92&-<d~(#M?WpY3n#iSoHq2g zk+rlk3@8S>oG}ax>OSH(f-e6E+Gz^9)$PriTVbblhm;v!e9(RI=Xd{>?$F|xsr8Sc zFAT$9b%($E!RR)OcoAQ*-F@kwVWgIw(m@i1>nDLiV#@CW7o{%yNuRiQLW$eBr{qVH zplgrd+9j)M#{ZDg%{#uvjQBU?M-i6tu0P`)%45?*WFs%f{n0(YOpfdK)f%G<`1V8{ zw^Ui#mO8~0+&^(lA9#H#Jmx`9@K3{}<D0K|6|E^8%}Jm1LWq)Qp4v0e_~Qo(UNy-< zPk9yPNd!F8#Ona3?Z%J4ug4{7cQ6$FtS%zOD9HTsM*D#RAMM6{&?`|fTNTAXD$_eE zUIvtOn+FIvOvwILw^Xn2B7ysstRq3+$ClB{R-B;Ru*s&Sd%PAh$_VXFI&XYBTHMCb z<K}IGGL8d<!=k_i3fabm{VaAq>%vv3W7kVb(LK`+<uyg+S5Uoq${EIm()Wu>6bf@+ z%9meB4dw2wkoq^xRcOwX2N0CXjqkP4s@^{=y?e#R--DY-Ia|*-21t?`Pr7!SrF7^7 zE5I2VN(btjpfawQSDO?*=uNxM(Qvn>%!(tcSdP+07C%;7@W9x7-gt5Er{MU|TH@6d zQgV0xWy9G1=F`Wo9X9>4uJ!n*GsY`+Ik^YqHQaz_CB2yzfC>D@I!gRiuujpVC|Mt? za`b=;&U<NESExO$c$P|!ft&A$+U@)*IArsl)4*kR;1~n_oRvjFroRcGjBDx1$2iig zXOm>q2NEwh`)c5{WqoCJK$!_YEB7%nBvz6PtjF5_kooF20Wxz}%~}z|Ykr7(l*>|@ zcL;!fOw+p-poD=YoE)F=aD2E*nCxftnxxsDG{1h&sS!8#`j4^)Q(u)^U>0b@B4`<m zT}~CatIyZ>^S8t1yCO8E3*+lNaLtu<l7I8~BWNN$;}6#Lt*!n54kUW(GH6bT<TKU) z%B1|k$8x}8FF!1z{2Le~c)VKFWM%24sfjudKjTl`dLPx&Z_|qrS_Hs$uG9U`nU^0D z5)vutb$4EwZUo&JpTE=B#d;U@zLGu5I4<Z`3`+d__6}a=aFGFMdvWr4IkL($@wL_8 zhche{ol|);&z8%szU;p-c*6RFASwIxg(7R)1N_e0w{H^(%T8a;-~4BkVC8Xl)ZEl= z^KVgaj_mfMs%1b$BS^{Op&o`kIzy={1T}A$5BNOVXgU2yjW4C@k#%ii)xjZFV0t7M z_wZ~Eez}3a8Y7G2K<^V~k}WV|hL#Ghz1bC5Np6yUo)MjBkuK^d5nCCVMZ$<>Y2Jhx zx337L7{e_04sQC}+(llJSli9nP`n)ptK5}H3w&``OFw%5U?e~}nXAn4`Wl@p+bCOV zuyCb~%PGfEpc}HDixNyB5X?r|eUtJY%|RN>-Cly<c(U@;(=ICKs*Tf$^^KQmPGJ}c z|HoMwev|+CJh>%&3)GshODbdCMp)&W7Dfj=yQ>p4H&7T8^rB4XKgr)vDnp`NWo{R& zyK*c=-=|0&e64cq)jf&$qKlD2qh@k{%1aB{mY-5&1-(QcY2U)g@M$!8`?OtQ6y}6W z`4?(GpV;D0LW&kG)&%c~gaa;ZvM%`LuslJ9pSu!l8gBs8|CKs6VMsRN4hy#{K6+3` zY8-Z;liELaTxuKX@fR4UxKvQIwqZb>;}b#S&y!D%VFa95!d9pq?*1$ykdKd~N9}S- z&<^IlTd7won6@}#{V+9Om#xf~b6tB=i*H3Q0=CAtFjZ+)x`Pm0RFvO&NC{I5J}LN? z2y7l{@6c8H3Q~7Qkc=%uM{#K;yTKN;%?lXr99O-O+rK#EX&5mt4`quEO{j(7@seOl zJDZQFR-xYGn%$gCPT<9)L?YX2PM#aN&1I&M7KtUO4M4~O#)59MP6UmYvo20{-z%l~ z`=%7Io>U6ci2v$TS8`w&A+xbOua*W-y1IEZ5GUve6914q<iWDZ!Bw{%R2M*5M=)w^ zp5u~7K9BP9<{hNY?Xz~M6V4ROD9eAw89{)C)gHU}zBZ-ua-HDOnfy{@GLO>YX550& zYWDX^>8u3?5)WYCcVDJ$;5~$Beg2GvF9NHCp&bwHobhj##54U@PVL1b?g>C2R>Gs~ zLKp4;*`!zgHw{B@frY6WksF1wNtDWy=UZVeX-LWOas$Pbmy=HIvzY4I()pyD;qT@z zR+}v(RNhjYEqEVHGkN%szR$P72rWEsI~sbsQsNCgRs3VsLjH<d0^#C=b<lIldk8Gp zczOrHbK_6zJhD{doL)6p&{eb(1VNK`tzoyl_ei5EEsJ~4G~RWUi}}dSmy3A9PE<$) z#f03fx>{TNyi62%FV)-p>Jxba?&1@!`-hb&NE6d!v8*?R$(YL-$$YPdvylX0hXrJ= zuEG}TBk+Y7yWmo7pBVZQILEL9``&9)V{FePO=?ti_oh+EG2#wE6TkCS+Ym|+o9L=d z6epP+w}=tDnKv@vW#O!zQp-TPGS0n5wVz(pSyz5}0e{}hQH4kJMT~7-nV;|XGIL-9 zGJlf6;knFF>4}0xP$6#Rlg1uN+6jUWMfrEv=-*T*Xiv#<i{O{Z7wkapQ3YTnABllm zf)nsl#pO4Iltjig=rp_7Rgnq_3zal*6iKTN%HNEFdnMu!TCvL(WB(PW;W(fH<HzS` zxkQBGwQb-a<{ucdKdlK!0Y!1{e!MV%O05>;_diPncPiW#WqAqEeYO<aYxQ+0-s-Vf z<sr7!Jp=A%a7}U*);}nFMF*9b?F=4Xd{BOn$wNlb9IGZ>E%Ap@h(vYI?KzS&TEfQ> z!ADsMRh|}Si)x~T^+tpcoNE2ykshLLZ#BXr38@q;9Zq4)!P=Q;zvLh=C4tvb&gP4m zklX49#82&&<L}-^^Zb%d)yyo&=Aogmt;MS+S0o*-Oyrh+4<n}YA+_!<I$Y#qDv4Vu zRpo;)_@FjcDK6ULcuw{;(qR>FN4XbbELJT%_C!{o+(3qJ;#iW%!(%R=xg<Y0spRk* zuYFR6j@<MXrrc28!m%#XZ@0s%1)|QG7>}B1Z}XT179Q77*n3ely_O=#$15f1&ZhT| zPa|UoHZ~p=Le6av5LO{cbk%A3`y)!amYj|{O3<ev(Qe4C<dr-L67u=k9}WoRYZsGH z&aRN?T;yZj5p78#EG0V*K^zRIoO79!_qm7)pDjNnT<kHdnctQfr%nWWWuF+t1<yB5 zp8jr_mfP3iprY&T@CBwu-<-}7Kgzm`%~6Y{S`Z?Mvj1isZ&|Szaa_Agky*&oQ=V%i zL~e#P;dk5SiY}d0{7la16qI6&L#p~DDT|q7wLf`-pgO29a~!==(H2EK!=b>RM=Nqt z^uKUTh7jWXRP-@N3_)%y(;{*MY&C?iK+6uxFJ-?wWPafO{rxNC7jm9Wf$t-;S@#-} zx9Crh)^Tzb7}>}Ryav7*T*clahyKglo;0G+q8jSXAxZ7dD~i!${_tYyMF7u<-gfvY zbQJZLb&ci7-KUV6P>)l|%c)^HPb-a91b>r@t!gn>j{AU35)E@EmxfAi$L-}-$ONc3 zc)Gnd7zsa{>?!#7n?=NWn3pMYEI%yjx_Huyc#Ry>lxocrcPv6>3UfH=iQ=vNNwpEi z?sUfz?F%HQ=!tKXH`%$Caj-N{<9W~W7XhWSHk>EZrZurCRkrzvZ|PCkzCWY)n3t;h z2S=1LhDG1*Sfef{V@_LDy3NH8!)s+mU2|n}3j26p(h#ovSsVFc>{(BQaSpGHEFJkM z-pNY)iA0ftq@mUNyb?rV*#Zd)xrxg!62PRyOOy7%RAzY$MOyunB9WJ`2M!L6d{R<d z5)s!@{B}G3a)7VGMtVY&c}e-%9@wfOdGHKMew(JS{4M#(>g0^bD5{iO?)j1qt4nj} z6ZYa$_nVU%LR#&hrJ@q3{-Y?}h->CDSk*KN1F^zqjQZ|uLJ(`fBP+?rV%2&_(u`gX zkoYl|x}>3e0~%r7JC%-$c`>_`0GV9A4eRiZ+Mvj;>b@&Ngko=v9IL};tSS#lna>Rn zr$rjK=iPKvy_*K(CF1j4d#dMf*u{TSO;uG1D^clZAtAZ!H7BlzQ8vplmuWbJT9+J` zKo--4@W-N1-(eqjzqB=V==mqUU2}7OlJ4ir4yAi{dJflT!Z+`NTj4L77vTyUxlZX$ zC?%zR?B}uM6I%Xtu%^x;Md-rLmv!M7<zJU=9fY4(E%iV{j`M#>5azg3h!nnX34683 zgZmF<0V*}>aK7^6Q#H`X;x<ZHkX8v;_&nnFJmcqO!1L@*hgGQ4+M<>7WwFgf6v@!C z^qS-<HTl@VP3TnU2Nm;M`UP%#1wa4&18M`fBBPr}MzG9Re5*fTA8xe2K;ry%vNw@N zm;P3&RZ4J}nT>bVM<8H$U}5m2vrr>68LiyZWr{ptvj2lmYJoffUk>ZHmkAZuSAPZ$ zeN|@0L6E=4{89DC+5{TmSq_?L60Kf!_0VUPN2OJ1@#~gXCIY?n%yK0S)`V#Hcaf_S zVXsksUjjUA<saPPXF&AL>N~xW_cb2`c59=s6`9kH$OX6sRmdzD4&H1PDkcl*Y;;&M zx_oz*J%%{%f<f<vu1O%V2^zgp&yiqMohI{G&qh_bcB$D%E~&^3QzD6*bsK3?2X|~$ zsBTfXI$6rMqmK3Ko?hln9=fEO4vur++D59)JD`@Id{a*zj=Tt4K!L3)25_Os&87x* z)jejU1g%XXb64Ww>bOtk79You@`tj?Z3Xs4>K}Cujyfk~@@{^%2EzMO@*xDGqx4ge zqgRFrmx!wIu}0=tl2DBqBI1>Ht&OGm6AF-Q(poq&I4dT2Rm3yX32IY&y;8U{B*{bP zi-#|lIrcA62bI5rL@HK$)QBrJ|GZw4gp{Ax)am}cEJtsXKeZ>1fqv^8SBT~1R-JP7 zQHGjVc1JIx`d`SaHzG?v6}4VGb~zjIX!jn=N%jHHmx~)xq$+J$X(rg_g$(eh!sVRS z4dy;l*T%VEpNPjV<?#L$Zexe=ovrNlt%Y}tiXLOhi|rw`71aw<l0DRUq$_)Lbr8-D z3g0S!HEN^QqcykMHLE_0pCigC1+h6o=qQOM1tp6iO^(W|0HG!L=lXT+Ctn10)1@Cc zuN;~y(ViWW6jc_;mdZT-IjS6lP9)+7kH)9bCi@m-!W7qiEyUs2XKeEEE3Lf3&sq*N zwADh+E-b(Qy?n$VDG#<Qcxmy5AT55kBZa=`TSf*eR`%@OT3B?}Twrm9O=?!?nbgFX z+zsX!bw-xIh?b%2o33(uM;GQCz06&O_6|gJbQ*|6x64RJwBr>1)rqJeZ6<b+&i+)` zmPy%&$$4VBce#!Q^1Jn<f`^OgxtUU=<$spUmV_byn>$Eqy8>)lX)gk`K<~QR5yL*x zyFWm_Be9mbCK!F3MJ(<V8w5PNykg10qw}A@S>$)2RpS#g^0D`o`H44imC}L}oA4B& z>!fAwWVp)dCr#10Y+NKPLTF$|SWi6J!aR9FO2H1<@jlqs`a!J5<0m*;7J^;Jb?739 zuokyUmORsB&;Zp_XYfXp^B6{+29L9`D|XV%oiNDU2Jys}ka{9fJ!$RcSi1QMI@g>l z!d~gN+)*Sl11D_YBpT;*nlqE!j#Pw@%oIMP5o0<{ncVHO_swph7Cx9Oa9AlIQ{eA^ zdZ7)5weuH;<pH1iA^M0PwuF!o<p=l6!CYV97vP2u4q?@HLIxO@YOYE;>MB3J<D*VP z)N|eU!g&uAAIsaYIb0EJo>%oDE?1&sC|_TsG3AqUQTwqd#gDj%34kbvS@#Yp4fRr6 z;EvPFxO1<&&aGo#mPDcUbX=^~tL&Q;ZrtYHbVKNdqpsGj$1ih(3>7giP2*rXu6FIp z{_FeN2zcZxiAsIXkhvV8`~Gg)0+q+?kBYrjJkBUhF5F8ZGy`7m8nSA8orpFkcIa~M z^~D-z={xeSrPtb>>Dfm*-xeU9CH~o)HBy0@vBG0~V__GAEe&46ed4w1N6r;?hur%S z@`9lKXX=-xm6qKz`QGPlSD3`*Jmg+faGQ;X7l6BO-+tezG9wN)A)+Jj0-o{XWOrw_ zdPSyJE5g2(%{7a5?+b*#czIRR9c4Cl;XF;(zLv;^+s3a7`%K*Gb`K?4`31{6d%I|a zs}S$Yjp|;ngG<F5vu3%7&UZbs5bn)df0oy8cHZ#^hdoPs9b9?V3i%yeeJ152^bROC z{JXY3*TuNYm#>K9p3I26d=kxP7{4?IU%m4i{6xV!ovR2SB!dttTBi8FQoJXmE3%^# z`20JJ@*)@jE<*SDl4Vv%0+;jt+fj8F+}sh`f|&WD6F+H(h+u8E^>wehAXQlF0>l^< zj^(twT+MVK0SQfB7UG?6I(&7s)Ot!1)3H>~O$gY?T?^_ip@Qn{1PLxK^V*MaS=+Ns zIe2E-0HGhZuQRAg(d9x(09*0Z{zVGU<_=HZvoqWY<geNm*GYN*$I*EPvh}`w{DdHh zB8k0;y+=_L6?<=L)+lP%EJ`IYDt7Fx_AEbCYt-JO_N>v`r8;O!bx0r2|J`|a-kj^) z_jP~o>+`{Wozv3>&BI(=S$B2p`YBcb>QZckE!KLTL`C&gXnsdR@g=3hiEp-nmw>kB z&o&IHtgNG&2pT_O(EOOz#g`_A@zw)JshDIjJ!+;{IO`xbAfDoPi0;FQddRVLzFHuS z`f_l{okNO*^P|S5meyBNykVC)ex|6+JRzT8jD&_Wzq1iqqpa0wJYIW1Ga#P4T$Wcf zPgwp3yR**M-=PMwlRUu;hWAqAUY$#tY2co9WIO!Iem@=J*WNFw6=%+8W`|0z5i-es zA%MT}G_apMK9pPITxxFol}zO?V%}hcQz+`)+*8;fg&KEi-^a%5%#TSY<b05(B2~@) z0p?uXC8{KmMOzyE=O=-+oOT};$`CH$Ghu$Gf;PA_<M)N_(F&I<7gFAwidk&NiZ(?Q zmi1?~_i~1ZoY~NxhxJ#D8Lhg3IdcxTVmaUAmeMxMd(n(nVHVb(e6(FkoR7lPcl4hO zBEz<`t{9`@JCDj`q!b52qFmKKs%F^vhhaV?rts||7D_7}N+Zsn79>m*h@ntdtI}#y z{(VC=Lkd}S>Fe9!-1hZhKjk-~xhRY}slM;#z67)7R!~<a372r~ZEhbp^+WydKclUO z`a79q>+pUo)i%z*ul}|dxk9wqIv{s9BQM#$-Kj>$QI^saUJkn5Ojej6XIrSRb`!%# zL9)Rt{aC+2y_~kBof?Jy&$NP;1J}COiBJ`<kWgE0Hp|}mPa3k1zqRiz!SgzGx9nDh zx5ysCq)i>Q<G`}>QmowjH-MD1s|zeVe`I%4bjN|Mtlh4ha2ETD;!j8V?N0M5!<;n~ z>hM29&E+E&sp0nQxP%soGim&N9|a6Aok#`8v~}l3N{6pa_w=9c`9ifU+53(z7+cj2 z&3&U1OKFs}$*L^16Ib7}36~U@lp-$T^ri%=wUA6BNg_sf@z1|7Ch{eqm-g=fx6<Hu zm+N|?w)u69WFIUnEwLn$!9LFQa#zs!uMK=gE~&&nvX*EQFA`A$wJvWv7h@KsiO{Y) zF@qFgBed#t?(&fByMr5sNEtTRCYE||V=U$Gc)HR=k`&$+OR=y`HJ3Z+fgOGj8l?7G z`bOG|?8vFk?x~)?Qv-h~HE~Id_!z|Avnc4zdwBVw?&+<+(>qEt2b(RW*g>YF23pc- z&+RaQA*#9US#;zK*^@bF4`z<)YEG7yZhM=;kBi4?n;ff36)Z1~0zskxSP|L0?2|=> zo<-%WMYQsgCcD(N+6yRMV&@4Y-(J#xLZfxH?5w=v_GIPBrn#zS0C-#N2bXw#Kgi>1 z6{oxw_hjv0VTH&iu*!UYwbKPg?Icx?T`N;wuX?gxS3If2w;XVVQM2C?$k<k+E?pl` z-W++dIZ+&#tQ=^d{I;_kxv=$i>S}98`Q5>jccy#mX$~8+<)H53cfWexUtPTi_43Uq zZ!q8AcoMxOvHzAdYKOUZhh1fp;-2L?JCIc@@}pR)_i9HrYEPkePkHMd55-%?p>3LX z=C%EMrYZ-PQ3vfxyBKrLeGqp4$?h&ADae|57@+bYB&r;JFM$8vVMIAnX{0%{_b7#U zl+K~(z+vgsyE|L{mRTKk9gEfVer)7m&LvtD+!N2*Rzq%o98mc*67^}T@dF>n`#rTI ziGAdF@8>Nd@$-&K$s6Lqyoz{flvJh4m-DEvzk0vw^PL#FonQ{iH<<TMu860IJ7@G5 z1)$F&N<{(~Fkg#06YBdW_V3%d%a{CntLNo_IPX`fJ3llrKXe_rS)N%qaU69<pEBMD z>HRx*zH{+MWmgjoW$FjO+W><T6n_tO(f>ahJ{EvuLG`6S?fjq&+rTyTo>~=D>GVy& zWw)3^to}L)b-VNDCFW0E?}r+vW#xmV%x%6bEHL;?3XFw%>>^p5c9lm!B{$E-%3(;= z|Hs}Vw?U%2NTs+xSJyp)OIB{lFd2KUlQ@`6hA3S*p3cijA|H+<^pgqNz0&YM-g!nU z?p<QR6+i<j6o>v*5G+05h|7*Hzfl^vW0a+?pIfFx$BRh}t}}xg=Td0MRwAAJrpe(A z`^!mYs%Fs`<Bz8J{)4QiP+RE$N`=<_i7XMj-eiRrhtoy3BZxN?+m7ZdSqB>zTKh>T zps))2eiLIu5R^q!&?)nJl3JEhP{)bx092|*%O7yuzY~xZsec<ot=#qFc&WjzFID;V z#plh}L6}Dh-+4h>q?!t~LT=oC*YtojvH!45L+68qu+7EoN~c{x8qTb(1%D#7DWWu# zoCEI^4HF-CilJ74IL9K5bh2G`Ed%F}%3^I}j^G<s1bZ>d0m4%;J}klhn0>$C3D}`^ zNte{A!%iP$g1?`t_+|WlnhFu(N>HQzRivMQxrV_+i8bcU(OqX?JZdRrS(|F4mDPkK zGBOG*hHPXtBbPeh7j3$GNrHQUSJQ-hp<gfbfvX%}89~q<R!g9h5(1ZoQRd^33A6!q z2Z9D2m9ZKLWg7R2QdMA{l^I5Qo>e*bV77+0#M{{PxU4j2^&(JoA9cg@_6zbV{_bE{ zjF2s{3-|M8^t>Biy-W0N>iVMRYS`p{yntj@hP$ifa@iuvzzJ%cL;&2)n4Td3o$`LU zaxcmE)w<u5Z#!SvDm+)v1uO^{umpSPKU1sxq`E)?SItKvk`_qcy-Rx7`}@n(!#?6i z>&04_)LaI@tdM{#h75dspjk&9D~Zwjpk?6~^zUABz$nYZHvwZDcP}&45zn&bIm9f( zO<oAn*lr4TOFc-Z6C1b)n3j8=95kc&^-Y8Rg<SCSE+)`I#t3=mE9=&gRI`tnj0pTf zhmx^j$g-8=^`O!^nYY;#gXIE}6oTlH(G*Kn`!CAWY^i3^wvQ@wGjP^0bju7QbV2Y= zkpn~M4S47KA3|jeU!ZGW@=8oyy`;jHGF;)Rwla*3!VhvBRfsS3>xJoffF*G-p0s$@ zG7QZ_%GIo4Zx-M-$c#%tg7RjKB0j%*pZce2TY0H%5Ni2N+zH4sBD@iE*tb0q(0zi~ z7o;ad{8%tHesaFTdbF@kX^08Wm?ys~>pm4g+%f4Sw;Qg~r@gy$QMcMhgZcYy))-?g zjvkf-`dGdcL^ben#{t#ekwRVxpXPE4qN`F-CU*C(I3NQMJ^yGrSG<1d2>c5b4Y!0k zlqACnZu;gq_7nOYelQ-J%#?<u_bH=vgbXp6QHytr6l5*s!V$gX7;aKtW|BWa@>#qe zQS_N*h&22#uke{mK?Hu17$bT=<&>*tsPto^dUFLY(GOKj(m$I68I?>7NOq0Q(!X%8 z%DGJCvQbJ{quW(tV5!6jwTusG%y*JlOWBGsyD<NQjH|)|2{!^0o*TU2jajSXTfezU zN97{@pU@XxL+7HO7}SCmz?MNM`cx@!2dei*Bb{6EQyO~QUHIv9IPlP7pBbYwfh(%v z^N1ZUH!_<t`52hn{i#Z#Y!~^BJ2rsw21-Q#hfYlJmn7QoJk`@$)kMN^?$YyW+5Zv@ z<2qc;Z|JfD<o*OpX<BZlj0&{OQ7^vjL`B^Bow`#f($75zQ}W|^jq*S1Ona6}n?E9s z`lA!&t_+n)fXBXiN2Tz?$401NgAdA_uz9>*Ffl5^8KPv|I)VFPk_VPLBu5~}JQWNw zNIY%3Q41qhM!{90zIFN{cWM2JLJ<}>^3~iEkl8G}kzZWzz9mO42z)l>K3Lk<PfJ{? z6t;ZOX`{1<VN*=hnbhIVh3GlU3&V>>12X`@B|!}hK78;@gT7dU&1|BTcPFn3DO0`b zBpCqbn3jU-z5yoR&PLlW`9j_f9fEfaVq_WvsD-L%78BQog&(z~EAD;MIpbVqBNWZc z;PGrGGbIeXVFm1Qj-_2Q(Euu(GIsYnQ_}iU{Ugjv<u1n)x>DutZAor3+2tD41;x`U zg5cF{Y<=EoZZeFwjSS~~k7n2KdF!K2B1xwP{f})c@OjGfH;rFpzh3XzWw6&^+(D=F zF?i!(1IVm)5b2jcD5sXq6`brq!h{9Hp-woQ^0=7PB%vC*+BKCu=m_5KAj_r&%^yg_ zV15v=U;(av2qJD9xvfpwejH^$`ySA{?q|>T2P+5+Ke~i^!x$1f%0s9!kkONwPS%6T zjj`TflkLygml2|=b9`Apo#8j@M}5luDZ;;T#~*P&k@bWbxlIz7XZe5|9AAuS7Sww= zTt{CYoOu~jV8u9UYk~2zXpNS5VM#Ows&7p~TUpAdD(D3AasOVx*nCJ&qf3W5-9U~< zx{EoKPe(?*AX#y%E+?LI%@LQ<iW)!hz|u(IKV=un&L`byCL5Ay>Y|?>m%H_6{NQ2% z_fNvg9X0;T2_SPb;Rl%<#NpLw3_SWHvQ^1qq7G?lUU8$nylHJHp>V1rPCd-;&Q;WZ zo)vIrn|jSHettGCd5~&<DYIG}IU5&1Di4tUP)HZz>K~>goS0wy_HfO8={Y6~Z)$N+ zLOmM>NsT6Ji#+!3KVsp{hL_T<Pv=t~ldWOP#C60G{lL>d5g<oLTL$LYYs*;7JBC|@ z!Y%RP4-b$LmodZIW=;2RD`8r4{rf@G1aPGH0~(lMe>5`*{%e;8K=uAj3TUrK{&&}s z2{Usk+We^VbVE!0jQCS~{lX`%(y+uk|BUaxd1*@DY40D)u0^V)=X~$kZr+qrrPtzv znJRVJGk%4z*L=yhWWd6#R~6N@4ujI##6FKJ!(0a`E@EZGj*QbdJ1{4yp`@O&08Ob{ zG3Pdma+H>>Zxv*<!sYvi8xA{UHg46LBtH^vY>72|5><cf@vFPfxPfK0`$LWS21z6g zUVKyDUC;8%Q#KA^M~soeYQ%+M8t*scG2Q%P;Cp_?9R1{fk)OqJGVdudiZ?I3HdGp! ze+!0I3mz+KBfl2exkq8RJ<?#Gd8ET%F<o51CtRl(&B(}kxu89q#F;i&#P`|nNCS_) zKkvU1$2enQG}isZG5T%br;-NUq1*K?Ya8$&kNWaK9)q<ZF9me5ete`Ds<kNCfaFP) zQn3It)`V>K++M2H>9IeKZ5$VH3)b)xj_n82lmeIS;4W=Ah9eB;U~y0M(td^!VYVIR zstNmA!<T&;^_3f@-+YZ~z2+r?yR4v0<G89_J4TOKOD+tYCjth7n3-UJ4lpH?JBPKn zJ`lsUrXyNQabw7pV?0`F6r;C|fy$G8AC3CL$Y%yPQgFp`3BpG;aMbha+5*91Qb1sB z)NRs8G0fSMC-TPV5n4nJ+@dt_eVdkHpr-&1=o(cP41}gX^@@~7?2gciXmKiP!rNnA zb8y7#(Ytssck~T(pi%&^R_*tAKA6$jyU9X=Y+g=SicEt6FsyOi&3sJSqUR$3?<8}@ z$tw=NzzZ?Bpl^|-Fab|>;M^fh&ntx9guxv!yeT|P3e;zQ#{&4<dxq;BDa*0mN@oht z^d#9b``kIt`7rgVYaS^?B4=EC@P!Menc}>|MQ06>dkXv+PrEuwBi2UKBNDN=NOIFe z7{W~sWKzK3a(RHbw%ehDkbABMSm3V8%@nF%-YsKvq$s5#LHH1aX{0v&DGq)F!7xz( z9y541=S)Xqe#B0N|3HPyd%P^B<Gx(D@s0=WvOJta7J!^OB<aA9$7#hF6G(}j>YQa+ zVy02xbe9SpL@bjFr6<C0g4XPpRq_&C%#*gOJuyfsmDQ9f%)>fqO)jd8Q9uiR0AZTC z1zR42dkHC#3uHV-XYlD-9b037o)9><CYf`mB^05;REF-Ahh?qBDtg{@*iT7*tKU#f zk@?G>V@=yAgpP|BHeszM8zQZ48f!S@?1*Hl&WN@w1+zTOgM%P0*7=s(hQ<o;{I)!# zb261@_9t`q*9rGu9~au<4W?J&J41juoVKkx-sG?_e;??xaet|Rz+9(RUKa4tV7|y( zWD#6s_F5_tr-f2#fa_rqB~z|3#7nFU813|kU^MEjv%Ilgq+iNMR6Z(Xp?ju&l)t;f z7cnP#LTk3lj9m}+T71C6l&-t400)O4Q55-XFTnb^QmO*O+&Xw1I_ssSAml+t;Xwx3 zyk}Av)bM5wPm3O=)ux1FA7LS+(piW2A@u|nK%g+S+t1XEmy-@2LoC>E{NqguJ`*~S zwh0tqqvy^w@h}JP7$&`y!{x;batE>qhkdByw4$?6nGYi?P@f1#*e)lMn_4mnm08{- z^JlK671r<v<NuY#rf6uB3Be|VR5Zg;-)kyRrsZ@}w%Qo(7#=3z2~6S%tQIF+3sTKu z-zld@RJ?x?Ly$o&QDkzP<_JtwurCJ*1u0Pm=%+Co9V!svyhl-#!KT%>;J&nFWIKka z2L_#4Ib;Znu2mV49G3zwHacNfsq$>M#D>mwTS2Mv#m;nu)O|lo@wy6hj9iUzKn>Cq zT0B&li$QaSFck^3)MQLHP@=UPjuR!-J(fD7j}qYT=tA@LDvQ=-X(zbbhBd{w1K(=q zEw3kQ+uEm18VNo|C|eL<XxL*(veVjztB=<nnFdIJz{g{_?~jD#U#=`!a4A#+Q~Gmw z0CYOAAt#{r=~y<Sv$cv4JUF(3)wHI9EB#(9rnxDTdtbPT&a{$2st(#xnNib3cDu5& zyiqko8X_fqt=*mb2tODs|M&659T8s8Z8ten;0CcDjJzux5@yOgqD-L=zr;T`Vn%#E zYAiQxp-rzf(IL~_25yuBYC>(~>8(6xEf3yS2%bH;m6%_rf#_jETrY)sb1xk?WPU1Q z>W>s9BsSpW{Tz{p?X=_dV)G3Zs`Y(ADfIK2F_djdQysUFuRc^VQfz1bNPo<HQr5y# z>2pFyvjMlz|Idn57XP@Vav!*POAj*8VvMMxK(x{&w7ZD>M;g%jR;%eC9UR^1M`_ye zaur#%4gZ2q#IcGD{pf0zw`4pMFJJG#OiguDqdKU{z||2*vTe)S+^Pq{HB>=xlh>VQ zcGgG3rP%>5k?Ak1d3tIJpE;b<xlJ{O7G@Hgz4h>j7i}Bqb5CElj0<=cv<sqPm*m}Y zJ1X4E!D5B*xPd2#^gC7S-IQ<o*Uma(`N{f0t`QoYs}abj<H~5^Dl;u)QPO{yBiC|j zv>XOKc;-5I8i<UWMC|EHRTRRXXRuJ70($)pJQW=zWv`3|dN2QEj_AV`?C*XTLEMkH zUPbu8rNGTM4#7(=UMD?yJO%#|0L)B)U)zjq@^w>t!i^%~JG8w;R<Ef<NAHWW&$1#g zTx664mGLp<6M8e+%z^x=0bb0<o*U_RDBy$CW#xm5FPH`f;ikQ$rox~(|C|PRUBi%q ztel7l-2U%SiwOLM2*U5Ra<J^(&O&0}S4xBfZ(zDSg2bTPqXEuBN1)ze2{#z6dp?<S z)?YjoPL4CDP=W=wX$FYCD6m6vB*XJ#$M{;tu=8V#XJa&o@d~F`<d^`{TS`;TN(Sv^ zK$Q|aZr&!i4PWQ=g8!N+gdQeGuxUTAHhkV^{Hc-}XU_6`ET?;9N2yIo3Gs5d`LQZ+ zW&kX`o;>%N^_icfE>k+}){D6iCp7d#XHN%<3g0*rC&Nyn>@z<7MGSSn5ErdbNgn#u z{RX%2%D#f5CItRf8e^3DDfUcc>|XWsK1+SITT?%3vfFNsszuMSTlgsQRY&YXhe59_ z<v3&TtU}}B{q$Mg(*O!p91C&0mbAwsUIhNCyGMf^*<}y6wFDNu5V-`fx#2R6>aw}- z@?GU+c5eiA<72q;lI`C%x?&d=Z_z7S09k{6NoUd2FmatiEI_y?cpUnk>bK@j&E4}_ z41R)~Q-Z$?`S0Q`z?D0q<+c#;5>EbUfz;FjrUVP^UQ8EzYv(+=8o5e3Fnl3<lj#RV z6~){PYK$rZVW13u#|toJgj{(ume2K-?kvyi1<_A(c)xgX6akmpT@7-jby#<PEXY5% z)|(<aPs_fFDKK0dv3l(fLzVk`J-Q8lv+^9letXWw8F}9(<#*Fi#M-p2#iYJvB0Iv6 z_D!bYyMrynFSb_Wg-{~Kgsg`@BAn&+X&u;pC0s{rZp^nPByx*yVk7hHIq7cuMSMw= zeilDpth<h@yTjIOCg6MVfHIu`IIZk>_`;g$&PL`iD@DD*V?AB0+lGtVkxwHv>49%s zK<>(zy%xYt{XnIrta@-4CTW4r25be%sOCfuZ%oGbU`Kh^Nu=&`<*%*zzSH#E=S0sp zR5B)><ZQT_T=WdwxreA!hG{{W-hF;w_Gg(T->A<=e6r$=L?dIccDB5&x11Sta&JYt zxK{-es*fs$>xnBJ-gqBpEj%Lz7q4cV|D3%S3AYyFIceQHE?R)ii`qND{X<6+AMK}n zITB9lk(?Y`StsI6dAv<jRxW#%ey6OmBphU%t^3+!P=};T((=GmU}o?f`AIj4kJ6^0 zbX{di%SxL9U1jL!$K>1}u+B4eeqGI`!ULEan{tRP51yX+m*8m6s`sReTfbKdyRycw z8Wz6b)BHZKQX{er>1dpisOCb-{dYGk0E5Ki=;upZ^Xl_%2hWd~%f1-ftH`B10(2{s zYW?1PSkBF^_wua-U=(4Wm*~7W7J*V@RngTCQB^E&Pm)$VDVkBCMELcth>W0usK=yH zr~+3!4|4kf4Y{upo1eZ!AV=OQEL|A{wf6}ne-@ej_J;ULql^MnNnzsqCZgZr?{9if z+L{-w6y`+9?`-KIj@@3yZ*LixkjWS`V<gG6X@1x|K%i+_o*#aPDkD^=5oi^}$oe<C z*>7K6zO9}GcFvr$m03QcZjD1!A<8gHtx6ZZeUl9G`R7NsQrx-NYbl~$zAS!`<o66w zC0#%Xdg^!w&fV}L^5G@ra}zn-hoykrH<6dG!k0Y-U^b0dANBdPv|mYum*Sug>!!!y z#lL*6wM!hos~oEfIgQ^%aitgoSH8bp=e2zP{eIzCZ3e{Nxw=Q=-v%XdR13$zs7!vf zePwv`bYw7BtDQ>B)R=hikVyQHMpQ+@QsyAV0C(XWB#l7)Zv3xki9*KzfAm#Jga_f@ zEdZ{dMa649w~da4QmSMOM8_q`!}yFUt><?&lbN;a0>-1C@}=Z{odb(tOe=M>5BKK- zw8l*&6ct+(DtM9@xN?!c!Pz6Jjm{&fe0D3JY}!1Ro7^^5KHGH!9L!YNtu{>?-Cd4N zUM%0MD9Gt<B?PteY5!M#L&AM??d<+|I-ha1{o8MDZ}Mdy&fwQ}stF2;3(d@4{+u&( z@55385N1U(D$%uN6|(2Pn9a_RuZLS3KOYje2jXZ1{L;0wn_0+0eS&U|FS8Eb9+<Oh zK~VL@#9+nWZT$&7-5E&}aD4YS{D%g+Louzi;TS`)|Eq}r(!|J}!lKPJL_oP97y0+e zxWk2;r>bCD3x6~@Yw#%=ayPKNf>8}RAsqi0PpIYu)4^X-snZ2$V37JUXBu?o7N%9T zijPsecbdxYk7Vw5)RPGu;VaYRYEK~Ke?8~|bx=t%-*k90Edm?ln@9{QsM)=IClb{H zcC>YFAl>2{7D~VAOAgTm8Awmb&??WfB^vRVw%!LN-lX&zHvD(vqlR#N7(U2Y<<F1r z#;T<BKdN<_0(p4lo36uVetDKSo>VPvVzx}GR`3gr1)aVAAJ=MHuRZO!f<VYqw7%@Q zg@w6gh$a2|Ai-XO-;sx5o?qKCcYUBYQsf?mciBR0NsvxyY-z`&npLLdBOCX^kPDkJ zN!Oit0_^h<Rld>>VSFx1S3O0hm+CH+|IpQ|%>YLBTAH9KKFq3pz@8x~)riHqrCmH$ zQwOQ@`{idYXB#eh+h|I;OQ%>`E2b)yCK4$g8O6Y|ceZCE=T!=#E00ET1#@dd##UX7 zj!!fb%XnNEt-{@M>>m9(P$rEMuFPcLwW`))n^*Xt#nIVR!GEuO?>^{+Yy5sWtz8{$ zaiQPi{R~;##tO`!)2rWJ&tI%OKKV{u{{%@PuzV5xSm+ue=#l&MV$Kkxz~QELnW1IH z@BN)!C_{uj1LxiQ=i<-9e$sZ4`P8LpLA|uc(uHJgcJ)JX4E6-JZ{s4lO5Y|NBp;Uw z*m{7-XGO-8g2n}&-R9S6LT#W-Q(5i&*Y4*&d9?1G2BpZtsDB)u?g?vkuHX6S?i`Y+ zF<+*?k$E>N{IHP5{!&pYaIYQ{WUI8gjS9%TOwb6?q4+Swh>83*WxQe?Z!dpUK5}l+ zT~QdLe|4Tr;=c3re0mjwA^!R4sL3fM&ig$`XE~ChZwKxl#*8bxraIL9(=>^ut#l%L z%_H~Pb02yKGs$Tb6)Lskkru^(CURQ218B->lQ<DqXUea;G4rZ?*tNZh-Q6*yVi>hZ z8RZsr$oSC3jbW(rewky~k$PWnGvDCeJGA`)f!Tj7&b-ovzA;R*>{AnuHzZ-5?OWwf zTr=N2g97#F%U9AIN&E(F<19_6n2*k;sX>+Z**|+=(vL&Har9>;R9F}FvZ@xILRPW` zaOW6beG@8t$&T&orH+o4S%#30qmJB8wffb5jA-eO-gsUcL(x3Jv(nmNO&&3rqKC|M zbrW&;rT0NOTABOTQUg4JR<(;4>1`du5_UXwkC>4=z*fEUdt2WLWu7<n*UiwVj*vdk z@8686beC-mH_Y>$<CcIY5KpS<vkV_C+?v(Up)QtzQC0<Um6@RAwtg9fjRqNmBGa{2 z7SrQ@xdx<=rk?&SB`8!Oe7^B|ps604aHj_pFnVtH6CrKeLekvE1}sJJ$EL~d78T^* zI2t99i2(JFGM7&^8VEJha+}}^5jRhLheQmkm?Cc`bBpOt?5<(Jg;oy66ry*hdLftG zvR0k%qy47G6v2OjTb?PgutTsY`M9Olyvob6agymF2{-Rl0E8`8S~k9eO5SsD(sKH- zRa>>JXqvydio|Yy!a*f%)X`g>NI43wX5X@+vwWUUzws&^&H+Eoy`8BdtcMp|sSRD7 ze2hdg$VcVMRORbpMv0rbtizsD*n|V02g-kJUPlH>s;(Q-h-!(=Ra?DmaQkc}+#tsF zNme%h9Cl-6Zf51ss{QrBXFZO2QjUGq4kd^h%e(FIjpsOu+i*YX$ZfFfIH<iRcf5yc z22*1*?d={^xb@dve(Y^(d94QDe&hqCq)-^hBwDQ+3jp8(;K@u-8Pzpd3(NvMT3H~W zqXI}E005B>t`cip*AVG~k^dqE(K%q1lXsC6fGVl@6E6!!D_9zNKPSvA0VK!*qO&_M zH-F-7&-ijBky;h4f&Qq<S(=4`{J<aspZK^ww4lp~Y9od19;q^JBgt*lN;wHWJ`XlZ z^QmRHAZBFu;@7#L5Sg-<PyB-Kz5o)h>p^4Z*oD)TCb2}V>+_R`x?dE5cN};mT`>>~ zyk5QJ4;wgu5FY~ag<LJ<{h(@JIDhlTHf@bOWdpkhNGX!e0wO~yV??-v0jth8HHA$W zez{{R$p+|3Li%U|q1lDM_ixtxy8O$21hNOu&5OHDKOqLa6|<W+YlgIe;6Mhc!?FIq zjcJexHW5E~1eB62Hb$L4hbqq%R*x^Gq=YobKXKC~glN*8dITjoeD=oVtk_*WE2bzo z@TrN|$_xnrM4eFC*6o<`MZeH~3KbJ!V@0)#(r<u;!)elkza@{h{Ni-b`|=Wzdt#Vy z;d6FCd=*K`@!9`P{JkIAyJ2Ir-zcU@u^?s6CnpY$s6dK>dGhq`ax&E)s~_(D<R*zN zcO!m0SquHU_gWz84Dkcd42q)D&r_=G^ou;w{-;C^X(NG=K%6jk5i|z={Up~{S$LHk zfA0zWd#F+75s-%3PfL|)pual*Hs(mIJAN`mY4-T%2TtJl8Rp-WME-AcrDz>xD;_M^ z1IueoBE;1D&s&wEEeV8Gi~(+G-o}zUkq{$PsWw$#my&=)A<EVy!cMBxqG(zrG@SvO z-X6{1gJz6GGv&(dQEPz*-$EfZef?CVpw;&NAu1LcjMKgRXRZ4}xL=V)FOW@Z6=VS= zrDvHIdGN@`hL#?p^OsJ<cNsYbbCp^bE;MCD`Z>OH;5gcyXTCS1;@S&s!8JDvD!jYu ziXJm>J`lCmh0}LbBGHvBws85nFrk4crEhW1I-&_&mH!F)DnV%v*SLW-xc{D*GYoov zUFvDAV8Y0S7j41AU0ry!qI^#Q94DDColse?P+P3nxb&DYSTUJ^t;maR%*8EIF=N!~ zxSi|f84=I+#E8*w&vtzEF?`!5kAk})P!=46eOQ?Y&-tk7#~&}WfU4I+;1A1|e>cPR z870@bXPFC{&8jKWjsJSWKTH&g%(w7f)X&9pzRlBp45J-6mP3>^m0A-$+5fOo_!A`l zunc_6jD{gZ|FBSCIm4@quj*ymF~`i$p|N-vmlrDXOJaRV;B&-An^6P9Y9bsZ!pFv4 zN4%&}j;^C0sAtcx;W-jo<16n&M|Fc~Gdo+T2FTG3Zf_Es^{efR`33pgUjf^xP(;%s z9e52m->;B^jKJl5&?JDApe6_ohL%xs*ZnupX1vjnYKLWG$s+W(P9<W(Bs`t%hmZkp zi^Kk~v7S7=CsKcWU_ZKB3U<a)+;1A^Rfi3|OzeUO{NZH&1sAfb0G}ls>cN9;D`V^H zPL5uIRPU1fW=p;exBkPz^rvI;b+-k&sn5BoJ~xj}O7~}5_!+St$zF)v$qmFmts!i8 z118;^^DTe%;2Lx7B~qB|w2z|jG052hJX5Hr)it}iI=a&qZuMJiDX4_{#O@smXpxDl z{u5e~(S6+$K#J(1E)7X|i`fJ6J`ObL>$;8Zs(qX^d8Qph`Il2J5lK{RF#cK9k^!II z5hKlc&Mw_df_NQB<`R>n8ju)tgZtIPR!frk&RJ08_Ai$4Kse^_;R`6Jcc-vl!+zL| zd)ToKK7WGn3+?&pE=qlZVE)ZIDL5!fZ`D~4ocjyO?%hr*1wos%_013b)zP)P80Z_w z$xNtbIueZ_5B~eO;j^VSYY~UVWBVU^4)0iWtLO;o-or#J+xV^YdTJg``5TWp(XpK$ zdL_q@&lIs{@?97*oDTVX)kBhD{($lR9k0c^&s{R$M15U_m#>Y+206aN%|-RN_PS>0 z8-h<dYiV<TvJTxAa8A5E1!)-q;3LtSQ@uB6b&6i6ALr``WBgD()i-KI23qZs>ru~D zk~fvr5`?0DBI#?3aR5Oh^L1AdFD$+4;CBAr-PdSs!?&2Vfu0jFiss3!vFPm&qQG+> zA-+DcvI)B1Q<p`vvgq-Q=sV}+$Yg?A0;RH;Deh52)9S76e`st@vcIJBY>Kcxdi(h= z245Mr@Qq_p>cmm}pAnR3?r$3d*x7tvKsi}@>N`6kobih7Rdolz^#)vqnQ5*1ZNDhT zj#T)wK!urac{6eSeH3!0zv+{5N;|DG5`_o;W&MydiMT>?`uZ5o0lW@okK12=lY3cW zIt`V|zsRe4aO>sMr^6<m@O=ZF8@SQ`&|$EYdFu2k_a}?~?5imBLRkSkB4G;EGDg~k z3})5b2`hEo!s$+gdI%%oz5uE&+jlR?+HLUY2qUVPFshoe0!ZHMI*905oZF3qSFGEa zr%XvhT(Y(v20E-)7bD=GnI#>RE!w@BQJp-dD}aCBv(-1?vjN@VrH~#Zz5Mb&rH6)z z6NJ<8H>2<-j|~`i{0qv=X6Y$|;!#LTE(=kshOA$S)4ucV#|`Vy_06p<I!HZyp!Qb* z1}Q=X9El?T`+E=7P<*k;_3QSMByRbIIv{#E8L|QYCiccnY?A~xY%|vS6hD|O6fzpU zN;rL|JUHPa*H749`A@3o9sAB^@jB4I{rt0N!!#mTq%p?2uuNyVXRn)+Nn29tMa&Q& z_j9wv`R%CT?HetH$~|z}+mUTBO=x-*#@wcv!RB54)ih($d-kArNR|BnsxqWh^>H0y zYYh1xTO6lB*rP{dkT1--e-IU0a^zgzYV5)4q1}BgRrjcY<GS4w+puON#`z1gO47=p z*!FBdnTO9dh4^R*_Xmxr50|3vWxf9+@*B-I@??r|Z@i|0rq(Sle)1FViIhUmW9)bU z58=gTwMCMap?gYjY5XhRH@#7cS&*~Izhkp`ntEifH_h6^_iLw)=jX$EKelv|i>qDR zS*G4^jnkeD>eatw2s-RmeolTiKsZ`>dGi3^I_7CP5TGu)n0~*ct6O?_sQeDDbgv~y z*BRpcDba7Wy9w^uw3uy$3ruYf#Y}$OeOIn=s^08?pfmbJ!JUxR_91YoNtk;Wo#2tz zv~Vl{H)#CG>-=8h1<-A<^P3u~M7={OEsB}htZIP26?CT0lgu|dq1?$P{WHk`9SFAx zExY}Nr7t6<|K7)@5?=PxZ=n)$e~E|$YJglc4P+CtUzDRdW>moLjm7^5!ps39xA%@s z|GV5PdI$YV)sp+SegX%bCz%UWGFp88mvbMiF8K!Tz$Ayd)-%m!`1d=t&cGF>cdnGp zE#Ix&tVZto9{n8k)e;swNl!s>BB?nfNZ?@dH+$y^lcOmAx7NKR=*^~@&v|C%oMPcK zGr4p3wl8d(&x!2d^f;MEm=d8o=gFL*g7kbNkzKqgTVatBu;xo>S^lG5#Kt|0uHic6 zSr#??yB-a#uCWZL6wp^q-01zqFw2u2^)r&<k=o|`<103OSns!!?CT|@ze*y;>3!Ty z$o8VD`A^Ql-9*gh<(r4W1R|015e*`^>+iP@6Cjf{>Xui`y$A^r;|r3q0wF^<o&l_@ z{Yzg*rLONc<5{cXouLw_-$#~H36bLmZ>>ZAK6QtQsHt?0BEt-^&A<+@(2p|&1F8@w z2oEXrn)Rj%A5c$(7Q%Din^DSO&_>VmPC*7*6q#1Zkj#|D8cRz1V4Ko<b$O*YpDG>K z`&`YC+}I_U6=b>5A)Xp$V&$hsN|hz)rQq81Hr@XM2Gv#l!jc|v!2m!0DYTn{KJ5CO z=hTEnbJM(`GGX51B9A~^pUaN(Hw}SlN~q^<=;AhCXkDMJvfEwwtiQ~i?4Y=T`Lg)K zN=`C<mWubLiR~<ue%Mn%Rs3FYfYy|9|2*1e&SOgYeSPWCYAfiepi`lwssn1|KCI+5 zw$il|tR_96lF@D7f@&8aGpIl>L<sk%uB>_E3FK$bvD|AAS1Jk!xB<Jwm7v}g-_%h1 z630N$AK2F7ZPB1L*0^@R+;zpYXfis+A~fatSpfdl3#13Xma5N88AYvr!cYy#S_1bh z*M`A(rP5zWFNa8Usvt}R7R{x#ZOt<!k1c}Ud6Pj49q4SnZg85%!FAl7;B92(vTzrn zbnn$i;tWsaWUB;kPf273APJQ=7eABSMLe%^(U39KWOQpY)#i+o!I<d^@YTO)EDt=M zmfc9!O%PiBM8n4?Qg2$LFy)2i8S9_CDXAiqktWEuk{nbsbvS8SX*b34gJ)=R(x{U4 zVA8UZU1(57w{!EPHlZgEemryc1IzX-Zn)@;t&S*}$Z{IFbF{hM7+<@6(5&Vyhmcjb zTbdpHX1jbo2hz>e@|eocEx@4B0>P;GP%KG0RV75wg7CYT0V^249?~F;G4okW&*}GZ zPBVG}n@;Ptzu@I-qEy|$5lKaCQcoLUxO9loB{zvEN9|7Q?lgYmR0T<e_1ZY-eDDlI zBv<q(i{~#GQErd6;gdbt@VukKTuaY;T4Kg5pjEV=#)BfkFy!*YI?6KF;@e$l1q%m| zQk4xK6zO<#?(jhO7R_8V637@-GfG1TV81F_23%HFa}I2=i+uxnP8H<)dYdz`EE0-= z69P5efm0G=_FHwjPdrz8JXR7?s-Cf_?#WCgo>!}V-}CsM_)$6Rv=U?6ExH!E&N|y6 zaH7bQ+8+G~Q>of6EXSYG-sMoSJ_UQtGfTmV{E=KluJ3ekP+!1<{XWwj@wJcQPUP8` z0B6;Zh~5)Et=@OSYb8&a&Vw>cn#S!4OL7~&rT|95*mt)cvwlw;#9u1A0{>n>M~H_g z<$-BFU&CD^-L;=tPbPRntw0lG4ds1=8~+KbGpPZbm}u-<s^J(*XD)Q=UHYHC8s?C2 zr(dq}>MSdBPj3x7C!hYzVyf2gvxIJ{G7UWCmvn|2VhMppf_KuNe-WZ-m|%hBWzivr z6Lf{{eL`9dmiSCRLMzx=f+hPp+a@1A=Z5m|n`hFi@P%<G6qISH^>@<6BWUutG)ek_ zFK(`h7#dwittg#z2KW8DDwEDA`c54!xrOvJA6-@vm#)k=9uoYlY8+%H1uE6U=8-T} z0a-O=;4Lp46>Oya^d)`z6W+93naQIPGr3YHUlCu@3F`Ji-n8*n4CKwYaQpTBq`cY| z(YGg6!y3{$%D+=VuQbL1YOdH?x8Xcc13xb>#wK0S;VZXItgHNpf>B`3ViDSISG`pi z>F9T=)<7}^s>dT|PU{Leer?fuOG8#I$z<7a4=f8P20R1O1#&F(O{i^hto&S6gE}8* z(?N3XC4kEUizX;>kc>FgLtflvg*u@#Use<c(Z`ZXN-fOScbf(TIwxbZVyA*umZ~wg zMm&u|eiuIStK|b-p|tMVq?3S6`Mj}*PHHFv(G}ie=I`Ssv@UZihTf%vJGLgf@^8}Z zTdGjHUh#UnqMaQ-_*}{KxfIkUE3@ho<O?P=8_HLb!?J7F5hq6HUBtV+7t8-)EOqa& zn~i5$e~@H3_O$FzKx+AXH$y?|u3Rv!O7`Kd<(73vI$#mT`Y*iCX>hy7GQXDzrRTR% z&fc1%))|pjRb|4UI{SM`>BB0O@$Bg$>+XSX7rFe~bh-J_fk}iJl9i4zO~1fwZ}mD7 zt`328W@}*`!U~CZF`x6$gG@E+)V~+p`5{mf+<E$u)o^VNsL=GOKEjry>J^6CMoec# zjxi=gBgVMwMBCtXc7FFQ?u?fYi54t3XHQ%CPDGMyZhf<e2bhq_{>65=x1C{k*9I9G z);F4jGa94aS{`jp0y9(AldXEZ_lBJehNtR7O43j~?9eO1eLCV8%1m%t6B4F?)WX!a z4OebC*zgwB{dEZC>VA@#s(>k<x;ddS%1UyW$r<?C_bJ2B-O<3Dm)!^Sz6{*d{JJxf zM+oxoaDD^0vxdSTSMzXezAgeQNYUz&C}_?5PP5p%pfJB|?iR1kBWs<N!mM4F{j5OK z7kXhubRwaZqtsHT1*Z9Mg=gSlx`be@ze#ZNZ#3MIhk>=4%3fx<wt|?0ClEtjX$aeG z*De<4*et2r+g0T(1fG_23&(Fql_qA3^m-HJQ)b7-H`ck6Mz)gg1RnLgvBIxc;dLjA z;7kp%GxhBLP3+R!p5~Qv#J5QqQY4>a4Q{FHzHP2s?(us>Y~R=-9r%thU+@jb#3I&J zQi_k?Zfb>A4$*af)(yirq+?khy9+VP|F)0W<yK%77=5H;z~0XI#fx`mUKBbska3jx z_q8eyR0yc=L8QzcEU#SLNLN7y0+sx5=Y#FnZYn_qt3`u%v>5c7inB;+mvoGyZNmn3 z{iBuC>Stx4JiAwPlHQg3pESeM@IAE70=!!aXEGM5-ws!Cu6-CMW(DmV`eM123^Sy? z)!JwhiX3y-68^WHtjdFjDJO=_WbN1Pm)_9cI~f!2m32c#E<dAvx*GGvbyw;fGCKYk z^ZB0!nhh7HSCOhN^ZvSh*Mas|-TT-o-A*Mf@a&{pJ8}JEP;z9O&0xq}>i+leb4cv3 zETzotqPrZpFf|U$=xmKe_w^4p>NM`Xa@U=>JqoYeYCpCRT63&VwBD_W>#L2`&k<)c zjdY?wker8K|I_9nhwUbs{jFbGB}~M#h8M>8q*!q1iPUv@m0=oFpA26aJea5&K<TAL zup$ZXYj<e-LA?DWKbU>ZJJSiM+5X#U%{{UR65AK@42n?9izI%iMVWx7Vm$Irw$AO* zaH?+&_)N;a)>B!XuuhKo-gHxRI{tQTxxfc?{M;V?KYiGPh=B{7m`z1(YM5#~kiwUT z`hK$?B{RsQF~}G`FcTBYuiDq}9YRSbjRHgQ_lbj!4KS8{2tQYQH4BtA5>LwpT~vo4 zEd<$<t1!-ckhdoYvB<7gRmGYJmMm*h>A!8iSRst&J*i<s#`--X!;qL#TG>tf5@odZ zMnA8`u%_#<R#D1YePYxGMBqnqGb@x|^-dxamaBj0Q+=YwkL)|hq3n!-`yx=)AjnNU zC<mR;nu$_xX-lj8f9U@9ny}jzN{wmb-QW7vqcMcRnz_Li0_D^?pS@3W=C<OmQ;Et5 z<wWc&`QTxXtWnQOt-`RImiu^OL?XCfwdH2_sY!H5VvP2QLiW*+v0blHx4f`aLJ$}@ z;YkQ#(|iV~$M$QLNsh*vG|THK!`26>h|#a!Dr#H#^e0=#*cv3>W5W{~svRQ7aQN;E zjIh|h$@I+#9kf?I>Cvdy{&?ySowUf>>t5ZgNXa#}gv0~jHi<?dNhnOP<CNGhdw5O_ z2nC#3i!1t}MPv9TeqJ3Cw+~USge2UAmBo%d3u7(tioPoh#Df8((iq?o9Vyzul7ye6 z#qK7?{84Yu%#+i5d{eMqJ6=$CM;P-0a6+zRmi+OeCR-a%i=FDon&Mf~isc%-JvrQ} zl%N<}B7pABz~710!Djhj!AFA^++8V>ay@j=p+EYiPQvG5Qw7_KCvPXS1}HuB%d{y= zriHcDCuJYzOJJmH`5^{C9*U^ShVP2SJGn>}{MH1l(K=2fS1+``<jYa?W0E5DnM{hN z-h*ehc~uL*SW*Z{mKO<1aHQZlREuk-*FZK;e!BO@=)*c#iIUV-dWz7Q;WMYH_%&XS zAvz)6YQDK9AgrP#SX{kgg2LrC3pa^3GZ^amlEPn9zvwkk&MY5>z0)Q3(;V9k1uxQ- zksq<dDjB?_ogs6ZBd6-c9Q?Qe($UVvl3K+Y30owDMAAdupcbss=i#h3*kNBYbc_AR zzJ-;J{}o4h01~uP$#gvA*4Gc%%pna8b$~=ig;X#V9q}e<;#oU0aC6^KNf%41V-h=; z+o?Y8DFiGB&k1G|7lcNdtz%~5<*~y)Q1R{s;($@6^`yA3B&O8ohC~))YyO+UTJgVh zFo-6eRHtBVv%@OT+^d0KUdPNUycF7{y~J81n$mOZlM2Y|MTgDYtuqp~T+(z~I&kSZ zgaf+W3Ebn0hg`s^cLKV3S|B_%7dsp;XiAtHRr57Zyfk~(ynt?;^lVY7+RFrmy~Z(t zDIGF7GFZ(p=MeWjS`gecnXotkA%Xs_6mi3v_%7YoTyd4Hk&G)L=UU8lBC*{{0v%a; zEbBH8S!6+Y-pBM2!>x)hEdVaPw`&&h)<FHPp6KW2+97!05|M5atycvh?KiOr?9Rr= zc!%IiiL6k$+QnEdEJP^*JvY~A4TxE;#9FS!VSIVD;3T(~DuOH}$j3G0MRfA5Nj)3! zfDRUF2(^m9TRS8;%W7`mdD3NJ;(V-y!2|oZfi!yYST-O>EFtVOf+P&97h${=lrXBN z0ty3SM<8-@Yq4-FxukjqBo-P@55BGxx3${r^*X9&d>#t}sA!qS1bz<yuL%KJUt9km zFgbs$5*0uOw=3+J|Iv`3O30a&v59qBT(yqAb}e7CLgVs!xh^YS7}`eKVlNQ@`Q-)y zOUkW-y@SG%g%Koz6FVJbxl2vS#%*)3G2A-#y=W{2_HBy`HVTX#VJ9i8S|={ZZY}n( z`3GR_?Py+eZ9Q{};kE|;4PrL91UE|{V3Y|~2?mg;0_4^tjeJn~j$~4-nWP&QJZHEC ziRCO#k<ZgZIg!ZeETT=Kx$?GRAXpMrEV=x$yJ>U|T{NFHY3%_-&WVJNDO&wTG&k4# zRZTRX|Gmd9(dzbCunurN<a$w>u<xTwZi4+A0%R+_JO2J&J!@VPd~LOakQ~c8F2!v_ za<-p2$I5e|ercla%O-N`y+8ML{I-SMWCCBmo*x@SQL>%e%}z0fiSvzNB7m$fVluZ$ zn48^LJPzzv4jdTzS><t#ez;8kSh~vtT6vOtT8FMy?xE(fE-D}i`2=ZycjfIJiM4C< z3`olQ(D(3=lSuMFD>kzf=kgT9<Q%JV8WXJbAjIfF$fMXaf3PwasrWdKeLMOlaho*5 zB=)9iG<ye*T{Rjb6ZRq1B=!-JG|fNuQOUuZ7M#lp&hP0F{*^P6pgXHP6zzW~iA|UE zKTQ2{q<jjIb^@gl-B^I*G?Q4ADkwt>#CyadA?QwLeU#!)8km|cEgy4JkQBX^@RWGK zPB<!M@M2gYeV`JPi9L4I0%@*!Wbk`>y~C@Ndel5R(#9M?ZgIKStKjIzAEa!PJc#m0 ztvz;(0x<=EA8^E!JUS|KKY69Hg%UiZXFAGYI(8hzG3^}DT6;ctcjBUQoa`UVIOp|1 zjwID1rZ?3y%?PJ52a!<y)U<+c(ZV@JrN0nAY+HdoQ^7SqI+?ln<Qfu7q!&EAFPBg* zekg-SNMo=#hA<q1)8}PB(EP<o${H^99Zt$4Mh+6geB>d$hOZMpWN7}t=7CEcJxIRv zde93>mHbRA_<=DT+-7y+c=&1d)t8f0Gf#2%asGsL;sHG&tCD!o$B$R>Kcvs|jGp`A z=nhKZBJCBANxpP{pyiwF|0(t9$7Ck&4^PvNdNH4lRY0YqUqAx>+s|<>sklt1*yk!B zUP9I{j)y5sq!owweWF_lKSaCs#PLx~iahB9Bmd;)Q<oA@!7I<BRL?gv(CMZxB%x=F zxmp_j?!IyfKgAD!j6!7~F+BY^)MfNdr;lauue4lWaq=V&N=}mdiAOG}52N9v4|=^* z2^i3ChJXyMm~m>q{B2TcK~ix6h$bWk)sN#5BxU=Fe{w-0bthU<HRj(LsWLW5KGdBT zAEdlSDu3(yI719iDTrwfB+eDXy9!|tfS@l)IGS-NNDOuSnO0~psO_{$1^SM7fSiSD zLt>~x59zi^b}XR~fxr}|4~|BlG@TgCP1Ts2I$wDt+_m20&!Y~71<q;5@K;fOc}xM_ zOabv)T$(y0Z@(PTmj<kJ_@w!rC7;F!33xhxg-nxsX>WrvdT|<IKfKy6x<&jxszC1$ z{2D-hHGVj*e^3*NKpp(WXF2FJ`PbCuPmYJ6KjMd|(*sAMUtsjw*VfboL?{?zC2-8J z?dMAIsOD90%IOyuNAJ{*hm9&<(4ijMCXX_#aQ?j)2{mEn-lPxwNNvRr=}v>gqArKO z937CuOlBWO10l@){XQQarV)JU2%xZk2dM2wPAd;>F;L#T!-3uqzPsUsP<L^zM=^K8 zQZD_|v_3gL@_$<M#o?z1=)cPvO#EZf+dpYbeKOZhL&p-J0w1LE+_dClO8UM%WBL~O zJ|@*2r^*REAVQedPC_^#XW}G55{J(5u~$vM3*QIV|BSZy5M6QyL_Y?Jx&vYnjPWNA zqQ@V{%;4piVn#V*x?g#Z<^D}xg=ioBV)h`dW&n$;ej;XYLZ;nu**Q2#%=l*s$R+LN z&)U0J%M_woN8Y8k5|Sj`XKSF-MxYS^$Q`HC%Ae4{_xQT^VXT)V%FQ2B^TI>_;luyA zakZRw+==RZ6<Qby<yH0J&<WHQyli9$)&U+dd1RK?{7gIj>iE<>o#~8i4)XS&+rlVh znjho+J1oWh>Q~Lbp4KzR8B7pi4(Bo&T67dB4M3zLxe%g|y3vH#TQ{VAj!wBXp58<9 zZ|<4QQzo*|)^DdDI&-FIqtq74Oic$8ph<8gwRwH?EjmZS^J93zC<8V7%Q-<jH;=UI zB;o&vI`5z+`siP83TZ&tgd*J}gx*50VnRYM0;1AXnn;r-T_gbl(z_st5Q_BP1S=pa zVgp1(L8OVGh$t3pc`x^O@7(*}&g{<Y%<g_?chC8p=lS(2jK@rkyg%TtcabMwrUKqz zo`y50ONdA5Pjh9yD$aI#KPXf!UEk(cVxDrSqaDR%mZlt+n|}B+%RI}dEo44D*_Li{ zQf5uRtdL}5nJ?H*MO*oqmWK@bOYVea-`DjKlOOGJmU-NusPHv*b}cPuHCHt7>iT=) z6kAv5a7V~L!ylWkubut8_0MQ`d-*|;dMMX8ekW18gs6P~y>F(<Z}0lXUtZ#pSM-?6 zVRjU<nM{G7I8EtFzBsv8mJO$MUSVByw`7z|P_dt?3q*Y;sgtHS4cRigbbld)>ys<_ zP{z#zm!z{)ukVtwHOBR2a&%tD%H(nlJ`B`mVJZjaLnObx8<X}83x^BnO@nXHJI700 z?Xt70VMP+}JV6#3jdBbS`t@EWnVHQO1I47@G%q-HW@+^uJ=1@bz{p(JxL;s3MOj1N zj+>o6jICsuX9zt6Ci#W#4awB}Unk0Mg}MT3L&d8X(_S1ly_a+G9s2b8i?qx?M`lWs z<mXQp?e}_2A(~ysk<-n~O?{WqR5^WOa{hG8h$YsvvEIC2b9Kz0zkpd#&}h1a_O?6i z?_BL7hyCqPjg|^j?0*$_L-pF5_&=%xOPNMn$ItlJAzh2FbS8I38gzSg8%!eKxt#HA z&Zo87@5Ax=i~Dj~^YusSxCHF@Oi5m!2}8v!Oq`7B{<6$FDZ?i(<k9mCQ9jX&J#vFI zNX#<Ud?<T4L33QO<t9^;E+_k~#YG8zY2Rt|RTgY-$|Br6QK*fobn9|=xg7c5ZCfXd zpkefDYrdtD2`u7HpPy--%HOq4$6u|meO~$D<`NX!St3KEilt%YUvc9LT1xNRmp+w8 z2lU=V&7Id<i2Haeh92UyI_>h*34Z2yK=8Yhv=8_z$C}t#JfWt{{={tW3h{RsKl)Gc zSc<!I6>Imdlj8Rd^IEMs(yL=yHu#25IWHtJAzE;~w|#SoMq7g)ZySBS_49kADd*sK zjmJ@r|IQxa-i~7MX^ahVFVc<uM^W^6@`Z{r&?>Zt_8}VMD4HNL%G1t&v1|YPAldA8 zdgApH`588PzTePI%+KURJHOfktup^kUv$_+ol<y<>trE}2~fetA)cewLEq2uwP>>U z34RJn{F;>YzVS3|MtfDDZ)u;IpC>pR&PV!b2>F9yi(i-sl{*Z3N}qWE%9TAO`1MrL zt&t*f!X1PgrnDQNlWE}b)Fg9b627Q$R93Sq<IGZV!~L&x=F*d^ZVE1vG|O4?Kt+ca zzoUd%;36p3$I8qHYD+|?OwpQTw0IMNHdd;5K{Q0>fNj=$CxWrr;>KA%FNhiEK|Xtl za(2A?;RE}{=I1)xdZKo^EsznbE$`G_SaOprr`7bZu!%R$C*u;~bKxGTkj$@nW6|C7 zyPSK$QZbqdk)-$k>=qJP<!k*dNdF*8;BPiB5h@(RNa33WJ#l&0vLQ>m6Q;j}$ps;v zmb=<cW3QI-$cb*lTD;5Y<yU}`Cql(QTi?U*!k&sXV|l~pgI6pl0XAMZyB3o^oOr^p zWj_5KuTC;lbc~Zn_$Wbu%=XK$hk1?tm(b9o`Ao4$1VZ0`SoKh6N}6Z8a`fZVrfka; z8A-1r65$o?x;3y4DM+;d*{Z2L5+>aliF6D`>3w{_qaj&st<1sfG2M+)ChV`6{8MyD zQJSvCAK_-5w=8|OJ0<J*aPa^-e9B#VX()EGkeHC}-|ab}mb_bS{V*P4Z>48pb$?A2 z&D^0=&2%Qy_7+c<(@SkJ%@<EMI|vzJS5MbD9Z62eE}O0(JHnLroGAUBX>D&FL<b65 zEH<UZI<nmlZ9{25$E6?~oL+P>`KOqCxA?;(N6D|qXA#+%!ci#WN8-ez!h9`muRkzv zz7{nb5<XJd7DNLJ#-6sadJqLi^$&s9n0N8l2JRnFizv!cxFgFh_MBWkyZ-!vu%ws4 zP)eZ3c>d8xWs?cu8v%ZM9-IclR)(_O<{}`3E431-mEX16|IKG1kHN-S44mQxj?FdH z(U4q?#y$SqM!x1Kp+<2Ls{UUoc;{;*Yy3QgEu*r8J{(J#Bp*&5#@`uI7~wy|Ob<B; zPNpSSRtp>z%p(18NNc|++K>A}7rQ;tr^zlctb9}%_=A;Jn`Q={34^7-97z{Uc_$E{ zkRm<ewj`@H_|QI4v-qv)9fxEyh7iPVFY>vfaCUGnwx@aNZt#_9r9zd1kzL_}X+9b~ zgHJ*dwJKKTTS=YMSG<-?abGt*4By3vJc{6IabT+JG{M&c=hd`p1l!ilw60HLoO^0z zR5z>+U!N*jn5kB8+ps%({dpz#TeQ#@<iULL(zBP~=FEOU<Rn|iS9ETHt2=PFEm#%~ z002l8j6HzjA#>iCf_gVsR6hqGYv$KX^g4vYLV;1Q1uj=_=)x`b`O6a6>vAKv_k-K1 zS~r(^Pr!yDVET0)C^pzLW!Oh3J<I*(is)xO7ty5f?49mqDFI%|&AnJ#<lK@P)8Mhr z8P<8GGAkt89~gGet>j@;Eb>?mfq^4w=hdqTd;>ASNFh-3;O2%sGrm@A34lowP=<Q0 zf++Ay%VmqV2lDhGm%xJRw>Q?|2G<9RxI+4yHvk7F*Jyr4?dQP!-;W;Z0?+O&oJ~E* z-dxi)B2Qp}zB$G=fciZz*s*(0tCDCZ%498kwy(T-SprgGF$C$A{-X2k%EsxpKMzB@ zJ_DAwztkT*@L}l*>aM_voi(*vu?hmLJ)9Rh|Bl`xspS{|II+!^w*r5>VNDC(*}aea z2}4z~sEdCWItB7xp8T9oLwUaS4jtP%m-nqf<=;ZZL6hCP>WOdplTm925B`2u6@HmX zS%UCVSP-E_fMi^SvlE5Fu=xN|A&H+HF!JlF1Z`*-MjnDF48c53dK6dv7T$xfv!E(0 zP<!|VPt_org$EfsR{OKZDxVVPZ}B8;#hqB>o~g2Hod29tg=r`7PVvueyt#GD-HtN+ z`1?GN?rEno{K-rbYCBJl+z;%z5XltNZ+jk6*1Y>o&LGcmLFfI${6jx=7+)bQ=tL!A zYi=j$!ltVieH8M<06u#0%48YAitY8Tk04%OEuQ;$Yp*D6&IX4#gQ`>p9112L2W}GS zfEScv%KyUyAb7beEG_9k_?8KDcoG0C2phij;2VK4YRL8^S*IE%(4C4jWz6MpL=#WE ze#Pb~mw4MoR4l1cbh4I6ydrJLCT`6Eo+n0$-t>7QpQbl$dr9bnl+^8eTWA_&%u7gQ zR6NX!7EAzqmt4RaN&LJ*yBQaUuch&g+$I9@+&7|$-gcsus+A<Y=vuwk>Hpe>#e*;F zhs@n>^QKDz%qfVp3}qOL9il5hw0@r?XeSvi%mGvxGEglj%>uJ)!A;KKuPS%Ydyof! zfe=9y1PWF_j8m70wJr)PnhWk)&8eGZIKfQ`n6u31<134=Mx_uddL?yMmA=`V63aC9 z_(Kxy5)lCFXq04XA(<@dW3fdXZd)e&U0Py(Ar0eLws<&d;WE^mtzk_bKeD<oXeMVk zs=nZk@ZOL9U1>M(GhAJFG(`4T?gImJI59+qob4m1og^U6P%gg=(}&wFuc&NY26acx z7v|iqn@LD>Pto+LBd-`vPt7FZfG0xE6I<yi;s*@)x*7ZI6CoPg@Bd9)66aLeF$Wel zqxPI8a(+tpkD0Qy7u=s@m`N^NHo=dAn-bc&tMs8$c=08AWc}cIIV*<m-h&46(avCK zdjg2@G6~#7s$jXhAEF@)`~F0*9OJJXAUTB3UZbN<_;fGdE?AW^Wq*_!3S5}mKEVEX zz}N2EDWv9Ax0zHbUOuj*A+DX7YF)_i|LtK~`Ht>+HOhp&{$|b^4+l+78!kx1U~9s4 z8T1pLOI}OCnpXjij0fZD;Nbf>HH8#i1^T!50wa5WkqR_|La;7ehN=MK0mhKL!-9J# z*IYrjkR5Y7eRJaqKzZ-(DGRh#rQBA?E|h1Ru)$5gQDIh=$msqPOa%vjg)Q3X{w?{v zTYUZlnHAl@8nMKw(OflYGoR*Ur_6BX0og~JE=Ih|Hu>LnHz?u#?RV027X^l|KcD!< zcvNFz;yT_G4%RQyixoU>5-{~|)+ZGKf}ESNtYdfmasQQzTt!Z~Z%H9T5*&ucZkTQP zl$*eb_U}}=>&$Zt?g?K{mzg&YF3B^->OEqKv0JCygNbw$`Qm-EfT>fQN~Pw)WzK8% zw4D!q{ayO_yW8*9(`uRq(Hm}?3u=a=q4r8naseI=<im1GZbDvZ7e9#2@NkLCfz7%t zJ>n<hEAL?=6zF5MKXv5S%M|+z*%w4sOEr}&zRGrv@Gu*qn-vVN20(ctUXwit4NfM? zH}AJRGW$q}4@2gIJapL~-v!Y&D?3C+PcB@Z3sBCt{tz|Qu(uXdHQ^Pv?-AgTQ4?U) zJ{YuAx#zUmxVCW{eMkWc=*-+J9&Z`T4W4gPBD=H<64yK`TbNsOP_n3`Lw&7D^Wd4F z#D(T^X8rN=nj;w)@A}-Jtn~mIWhA7##hsuGY$`oeQ+=*mvG?(nC`XW_&|sTu4$#dI zJk=CI!^H=Wm?~WpZ@p$6_(Y8bi&Pvw)j;DLrqy4`LCASQfi6?-$?Lb91E+Xo2o1@) zs&9Xs87NaB^LdzwY`i||3v9O4%(S*afgWZ(57C6BVeSE}uf#_O9xuNzA;P%zY3{{{ znc70r+qCv|Z;3@y=oEB$UW9ElviLP)z055zLb`SS_tMLyM!K_F><P7n7iZ|A(s%CP zOE~di9jpGuMB<kDC_$f9TJ8=bsHN!wrxu!BrZzvOsXop9G-xdqfu+LMCAT!MZrL-X zC!i|B?-V>l7e+)nez$*a$B|AHG6=0ncyL%;U)?HQ5~q^%OzHj>v1Ux8DHA_I*j!xg z?ttv?Y!|Ejr8~aj<m4u&3bp8j*SbmOuiVps;Qqe9RbA7-HN>@+U!Jt@MCFCmMs2>l zx>W;`DwP~Z5yOuQDSQtoHRnT~3F{Btm>Juu?&SMS5vWq)&pWYm)Ef4ag4_3{DME2= zNf~B51i~q>m`<EUm(Zav(G;kphlZrShH$C7HlG$#eI69rdwBr_UQME2NHHG-F3ln+ zpV@yBDIE-uLs=r)nqJy0!hTN}D#?l4ML>QfoYa(6FGE|*yUd;#{THO5i~y;C@*X(3 zF2d7)`xcs-o_0?lPg>>Btm<iHmty7N>h1_JQ#9XMv?qk?ItI}w1*Bc3Btb1S$CiiL zsR=jk@d}`!^QoFefNtrKAVHi+?$PK$sV>YxEk=<rZ#5g22O{0_S!ORW07QstZvvN| z->ZEND+`Vi=g%HEX(7F>MHFJlY->qtCr5$MgYT1Q+dERLXHTvsY108P-%Oa%D{c%Y zY-<sOMrFWWx^fy3{ARk-LmXg^?d_vo=ArE~rKvz^4cbw@-wuRo(;|BhtPGQiQ$<`N z?X*Wk^l4}o6>XU$KJkstr%jXBv7H+|`1UMS5bpGL$4MSx`nJb(AKT*a1tEs^G5Qd~ z-@<ucBn=#qn%y~a%;M-rExN_1$<B^*DHkcth}2UycYWJKzZP|n&Sbzu0Z8n|=b6#{ z$ZmO=(}ota@9R^kw?ESv+CoAMGn*bqWpjk(4oYZLlJSjv42ibXLI{l#DL+n9d-veO zE-sKmMx#i}vq&Mff6rH8mkR=xJ#bM5;}133A0o2)Lvs!;!ujTE%hI0HrET_V&m~3G z=_;QCf-JrT6{Rv!mODJtqe2Yov7QJNqo3vx9c8mOVb2mw_(r$YRX(Om^Vd@jO^V6} zPM?crSR@?{)l+7EKV$JtN(hd!Jd1F#2%=NZ(vt-lkql#9Wr>*h(LU{GI^No*3>zBF zfyOxa{l98Yw}j5iBK_e}!EW4v&BF=<+IqUQOS-=97nrehD#}II&;5a4Pei2PD2dg7 za`T#?!?yrEcm#bYP;fNSJt?YHQ~6mm%|TC@_h*zPOZ$di=%0R92Wr?pM(Dnu;Wj-H zg6yOlx~>V)7cAg}>D_1>R)H2=YDn*x4K>>Wj&O*kjnNpjF;R_r$}#;W*Yu)nuW7>u zwIAt4Gr^y%IlV-8B!Ln``+H6MPE?A8c2ezwVmgq#A90~aGewY{Vxz?_QutiLlj^>k z;<f7vS6??t&7vo>=s>j0{q!tWhRs>O!xowJp-j4I*2!O47T+#q@uc^BHLL9pRKKSE z^P1A5e%eHwfG@J3CxTmA#3<^~bW@1S*D|=m+;`o3I<}ZTQvK1;#n@2!LOgAP)|q0U ze3(X`PU=4!Rino!%Zq7x9v|QF^YXr5(ep70K@UX0>y<qbiN`Fe-v6$W8Kfr|_FR5Y zec_y!iXnW@mSQ`ca*$`LM9anb`c?UtUR68=A+Zh2->%AOh)Z#CRReytMlE-Lwb-0( zy}-QJN~g9x-)&ooWqgc{8ja3-{-e;xqF>+~L&yk@GIRlAx&`!Z9=m{~8npLlj%S(O z>-magz>#55JbNIz{GowIKSt@var7aiagv}u1k4^nMD~>%jZPKmkvW4+Rp&1ET)Q5G zym78CdeHzb6rb~qd(QTc0nHe4TaSIahiQ3788O6b+()O@S-{7kRMf%L5%s^}QJeg9 zC~+pjj*-A{zu}eryU)kCIVhop_s_{`BW0$sOTzClEq2dOW9Dc5j{jmG3H+LU$$tF& z@8MZvIBM|m%i$t<y`wkIyUfxU7kcOw-;%Z9A}&<M+ufBpBYNX74?`P89i1t?!5m9D z03R?QyBO4VoV#-4+*7*gE3G@;F5LHmaE^o#<MH{VM}6M5i9`F~!!}wrbBwqD-5R*x zyeN3=?&W(+2k*&58g3oC5d}X05BvALD&B5r_?00*9Zk~C_oSsDadIk_P}94-@O?VL zC^Ij!tbM#|1t=~AbwA~(ZnM=ct%iwA7MFGVGEn%=dOu!PXnwu+l-*^FtYuv~?$Ld7 zJ)~2<<ylTiPV~|Cfc!-ofunoCax*Mq<zl(Igwt+DXF+O?JNWt)ig<`-c;s$KD+f#& z#lhbNPk$}m8pq)^sPm#%Lr#_u$RXQCvo($xmPlyGrKEQt4{thn8-@Bb#FRG?b}~>Z z({eDDsEYhC=U*$7TrP|MIsm5z0YU4AVN%q{GjrF%-_P8-925HXP7-pTNk!~uWIJRc zHN{xde991g^c4yvBdy|K9=q;n_GE^g)$TEzd^OmSAY<)ZwsO20kwHW~E%@k&{tDPe zYXx75@#Hcx5;UArFa)XslZa8lxIWBPj#qHVq$6r<N%BI0zPU=)z%Wv!ztEmk0Fs)j zn-F`GBNsDUP^e43;z~s0QNhp_dh<FFPG}$SxoX~<KXPBXe!{yT6IFKCQs!*n7+a=n zdXiH~Chf(3Xrd5|N?NaFV_JGLd^`=j;g4E{d-~|%h?J&L=6JL%K3Q5wv$a}4$gQgy z)kz7eRl<Mplz9OLwp3q36dtM>baGyA|A#X4RcCwh<=w<Q;0?{q#6BFc0Q;XOAIK9* zp;EG1c|T_!LSKhviK>^cVD_7!me8t=H!ST@9|#K0Ts7}iU=^IT8%b*wAIr#*<~|Ir z^+<|eHQm!ihCzAdg=^?eAQ1w;fo)}ctKpH*PQuU;zin$Kl)6iX1j26il0F`Na+X7H zRH%lz8uYFYrU7htUm9?$(d4D)IqUuze;eneRI!lRr3=Jdm*ot_AF8NT(YQ?hwWF{7 z<t>ea8;_=9T_aUcO8NVya-7R+lZ({Dj#cxK@l4|FUuqZzunLIofnUF+ELL-kXRc-P z+NV*W1j4Aca|Q`@#w8cuO?T*9!-zqH`ArYoS=zEWF6muP*EuK;hJWS;p#b`+%Y?A+ zu)+zGGN_`1RO4n{QT>k9<M!DI8QuZ&u_tPw{5>`AV$~KO7d9692j_7^PKgi|Z##`K zC(;zi>naZgH6cCJH_6K647;@#jv2N_mMR&x>1Sn>@FX}&5BYwlV@PevZ7W5sNZ}QG zJxo1-@KtU7XdwL*U+qdP)>O}QmhX1;5^l=vOUd+r_|{iYiAFM%!2P$19kOW5Z}?m{ zHlH?;I{mCpEB_ZKUr|&c^P1ks5I2SSgC|L`!cPW0f(r6@&YmSSc=Jat!ib_Yw0(ZE zun_i}8@)8CuijuEdhtQ8t|l9v8@j^lLR&y4DUBsD<v;E-_19H+w)B`J!N`RsrR}># zZ7|(Yu7*#Y1`T6VL#ZhD_k2#NBDrS#ZpxCh2?nXN%ho$ulPf{neJPvL%CsZBRwDAO zazIl;8ylRUF0{Jb&)IDwoJ^+5P>z|tk!6G(A0P2ki_oZq0NCpp*7VyYBM-gE&f<;f zzr+h=+nrej!h~t6iA8IH<tQ{*@p!fWZs+u;{FCTGH(B~Is^yC|wiB8BS!MYK+vRf( zDsFV4Fbxt&^yQWCs$?)LVsOySN#J_f>)Bjc<5N=i<#JHsZ%Nx4DTG3Mf5TVs?R>EG z;x<|_yNZ_VYA(3?>Ey4EG_gIr(SMN<g#VI<(8|eFtQzPg68ZlBNlM7s(ptMh2*PQ! z)C!SIoicmU<fx=vWGS3|%+&C4tDl~c5Z8SBVV9&KlTFy)iu$t$Ttr=(A}rXHi|Zyc zlItiX_7!A;jQqoNR}DFMnU(3|CdB-e$Iv(<w#6@z8!1DDoM3Xg#7B-fM*B%vzz$wo zb&7QW3S1cY;%0sCKK?^jJIN$Cz>d^p$_7X5#y8hxiCqRL_H(bx6)$T+C{LX@yVyh) zMPOQ@`-<Ye*EF`KE8#}Q*^N;uV(H58KqaFLm-aYm^pG@i(MI=_AT;K9i5=K<pN54O zNTvIrX^YmHq@ANLv#~UZse+WhK~RFKOb0Mf04X_KEE)if5Tfq8+W)+=ukX{D@XPLR zwnX$q;X}`Yz3ISSLe)&d62%q#iuxSRr1G<4N2TWb8&c{V6maXq!qWtvAK|?O4L0iu z<<~?O#jDA$Tmc@dV~?7+NVwKb6^<O0`D`cR>$5@4-DIUUF51_@(8Dg)oK$0vG39}C z%hVdwk>6^q!N*cZZC>;jRJaVGT_>PIH;oE<LwsS!6dn=V!I!DxqeqT(jtDc0^-Yvp zFWoyz_~<B`tc@{-@U}<Dy})ZiYUQvpKCflMuV4lvy3jJEIe;V1bljt#(OSeaitw&5 zw)FT^;C)`>?qf{G3!S<sB>M7cqLpuQdPstcgB`Jvvog)HCZ*ZFGfzAX-qwX5i48l< zbJHxnA!+bdo?SLpgZovvQkF^W;%Lp7D|y>LY9p&jK$4}z!%+stXBv?-GEd}V$ajyi z+W&S+&o>;opuCHY@kGG4%qbVlT-Glqs-+v8jD{#S(x#cVR;JL|Q);@StbJneXK9|D zueM8O@9F;ND!8(VHt&^95lsfA9e_#=mhAnu4yv9?0bX(yn|zsC!6ee0Tuqu%k!kFh zmWqda@wd~%Q+5++^{0ACWPhBCHhBPZgKYGhkbO^sc0wN4DYOde>Bc0#jQn`f+826S z>x0MxDD;PR%?thlpxFc+()AQ4kH>v7n@1%LJS@A5X<9k-vKchr#2ZY{JUJ}b?v&@D z+9UjG?4=u?>pUC4gz&l!K!q5c1$^n-1m|df`s21vm6o5Wh@=Smd@%U&xFj+8(NM#D zqh=O6&^h-aY5+ZA?Hmrs-I7C*WT=tJ(}kCqC$cTZ9`)2Otd)B0KmNlhx8O<0C&Jk@ z0IhOB<eBbB*>P!088|YDYf8!ift}}kCyR3!S6C8a!wpO&Y?6gI<JNWVb8Ekk;!u48 ziZ05q!6H~}#mnE@V*Y*f+JElyuE;sjjJr;dAz;ya)Y-r=qt5<fegmDVjM8YBx%-5{ zt}D2eKat!tqTjJldzcvR854vLi+?kqWW2QbPo>IN=@6adUz}$EFY(A{E16{cH9--^ zuYg>gOH7P=&iZ*!LN3rsxbCNn$yj^Fp#sdvxxb-=`cdbaruE)Wr1{kqm604W@DP=p z-i{(3l{Nk=0D7-t$PUC=>T5S2Nc3mjeioOo%so0XuClxqV%lnL`5X=sE1x-`YCzrm z-=b-M+K1e+6yu=|LjEJd1V54b*m)X@hhJbm1Cu|hjZ_SU5dLlv`uU)wPy*kuoqjt3 zRsAzPkb6B;Hf^!fxg#a)F4vZ4uZ!k<6Km^6T3jF#@#A}z>BoE3yl#xWrnk&M5J59| zd(UBDi-4v-t$;ovv^$XWsl<47$lbP|b$mqAywktaWt~F5`+ml2Xb9?r3%=)OFkiVW z|L~v#qEwWequ#CsTB5pzkCghuVPWWl?kp8;J(;{_izN>CibH=ngqZS?avrx6NXi@e z{J`aqeWyZXxh+`L<uK!soZ_%hLkI0yPqg2cq;(2YiNu<>#+Y&>ZcR#j2_r<>=a_IX z+X6rMyrTKM1Kasz#_ZGVn~2Qo_QYNUl1SUM+}tUdSc&ujFLBVldEP>8vh!ooZ_?LE z%D=HSZG6i|Bf|;pfHvPURuf57aJp$?L-Lnrkf9P$GT1a0B>KM2;~-flbpw43*&`9M zuHCXJGBtspNz_RlEDQ46N^hiIia2~>5td5eBkC&Sj%#A(LOZ!k{4&Yl0m1a1jKFgD zuG$YEZ1Lvf*PBqBSpNPv(>F>T#6*W5PB`T=?HmjV{L@UhkLzU-<h<0K=aqbe!(|gt zH`S8SZ#O^wz_@01Lt_FHD30gcNS7BP#!P(6bV=ed_)@+RMX^c3)2SYe6VduE;c>uU zf>&s43R-j#7-e?qG=Cu}P0G@=w9U?HTlJ9qKMRIG1E5p7B^E>w-B)->MwsM0V=5@& zMdR#+6joshon4&)GTxmv^Ld1{4&f`GBRLT=Ps0hi-g83UxV0fn<q*=E05_(FWfu`H zX(-EjYs`(6=uhU{)aqkr6Owa7OKe*!7O}I>vAqD3OTTZbpgx&13$v?uPQoskR&bD- zb+GxmwY91Cv?gNZw)B^7f|5Pd+LI<$Oxx?t{+@a<Yb!QL(o8B?5+aFBcI^B7lu$p> z(<%>DS`OSQ>YL#sini?MIg@8SC1cW~?WJvgD$@M;Gr?oYxN;V{m<rJq1m-{KZmlzL zHOydYK;3Atijk(^`^EdaYlJC<IOrIJSgkLd{3+l52QVQ`Okx58#BR@jyXGcFYQ5!- z27)y@dbp*d4l2(=pmHoInfhd5YrWSRbEQf2cn5CP`P8%xQE(aaBR5pHqkXk2W^q$3 z6-}erj8G;k`rnf#M%(z3m57jnKtUo?o2&g#Q@~obo6wrBD6mXJzNko?+#)aIkaP&b z4$TdRtCPN|6quiiIvUV-RC!%H)Y~V&R?A?8AY8MY=}gI+B-qMPTm@>a$E=Kc3DCwn zH+kRljaXOVe{?$&2b?j(-*`F-Z3hqg;zx3><A03!4f7>Ky><wzkq@6n3^PT%dUE*$ z?bZrzlU;7{HSE^Q!+IT5N6^OtTxEEBvyZ%z?2{$wsOW5(N-R4GkPh>YXx^zkj2_7p z(sh>j@WPEZ7CWsArERfu`h&mw&~$yx`t=jCuDH?BVRw%SLS2r1v5ZPJ^9>Cp0dN)- zGwQ=jvT;2m{L<7K^=O9>!ZZ`*=C!#AF1y|ElTo0;D_NLPI{yU2R<H*0NN5fV_0S7{ zN&=4H_ySc-?G@Eq#&mZ63jJ7RK-1*?MLKHI1Uk(Z(alujRZrB4qch(NwH?ePUouvC z$az86_;>$Lah=a9HJ-$sDg_&oTt7iuNLQ-g^jRuhwVi|ybmnFDoUDcGEw}545Bd5; z`5yRrmZle(G-4iVdIezdnbBJn1o5V+wN8x~^vKM5-}k3@_>dZAyPxp)sdR&qBJaqB zrxyvN2ujgm(ufXg&yuNIgLIH}=JYoX_y$UN8%$~oDt0oINjrRkc<5O1&{5n~UO}F{ z0>XPoyC{;wJ>~@<lKT;^P5hui{IPbpRX+BZQ_$8YQgT`%ktoIgX%p0=<9Z09EzZxL z^;9^GTUuqA*pc{(E>0I}+3t%9S~fGgmaMv)tUi0q<DzV2)Rhn)%)=KqI`vXJuMrd+ zoQ!JGLL5MZV@C9Q*&Y2W;#h3K4naJ}9ld->D7lM0!&Jwx0M;dd?dc74N);4h_-p>! zW1y8k3H^erkEfw}-o{2gXgmiHWgU}2>?3*x3y&y1)Jg62UlAJltlO=NAf_jYo|0%> zUR+K4z7LN&23gWLxzVpCQ3LRflzC6(Nbl;2E<v!1K(c3wl%J>T$XN3!nQtzkkV}rc zp)yQ`qO1eltgI$c{4}pwKOTyjrK<nb4Q}*gB`0eP6x;nOK6NqjOmevKuC8T(!`pGw z9HEJNCsN@tZ8q!ltiHFcpENTj?Jl1R@nsBp<a6B=VW#84M{hZI*g-M^2sMzANN#25 z2flJ9S}K;`xp<~-Ha2{PTsEErDlVucXEDF;i}|D1>Jc3z>mBvan?Lq`s;pe0(!<Pc zXQTbcDs;Wiqrc}WCuePZ1o58_=guaam&qxp1^CLm{uas(%+9+gB2>Q@==Bn&&z>Uc znoc_+WL-7YkA5iW%PgQ5hb9+0{;G2{yn49Xw<`JKAw9i{hY7H*FiYzq-sOO&F4~uv zVqQm|dvU?0CF}^#)i9N9_2AjhMlgN#j&HiQKd+@<YP?Emzo}L2;1bk*mXI)3Dr|bH zMa1|FtTIlnOUV!C94<Q}aA=2<DkR?$Y*<Kl(@bd9fdk39AF=IgDD?70$4Hsg!t>w1 zAD0s#YIa<_6jk-J8K%#HMULx|x^yI&EN}66*?RL9Vl_DL8!c~06g|pYef^YHJYltW zcYT0J&UaS5MvRatJ{2_Ue7*1ZpFUUh8WC|B54U8am9$jzJh6{)R@Ttq>k0Rv9mo_^ z$#@yjJjghxeBcM60{yJ`eaCMbj)BT~j%UXFEA@ny(#q>h3`Ia%=oVB!21#P>@%kyx z-f{B^Ub`DyHwu-hvF!Fv+vn*5y{7YQ({jE1g~1i%2$n0HD(h3_kuo7Y7N4-*yk~Uc zK2RjGs!sQumx@v7ys&I<-l-^z?`JW)JGBt3Qo=cz&LQmV4t5g|cr7Sk{+9s#@>O&B zhL&-UhE9{uG1XjGUM}YGL>!Z0zYbQ)l|N}pdh4cXTUvK!q|WQc*q)^1UB=a<k*g`H zdfX^@4U49!0==)5Y66_0aNrdHoNH}uBvbm+zjXhaiXH~jzKFgwttVDgPh~xlSPr=9 zF+6DlH}tfrG%wpALGo9+uAQ?7nvkBSGAb2rzn%BHLU4aH*M|EEV~Q5T<sRjfaGwW? zooiZC^G+DM^Cxan&ohI}TJIi*8WN_B2o4e>P)sqUy+fybKFP9~s9CY9@@zDLaQDOR z3-L&rUKZ4Lai(hhq$&X(zX<CmgN~<g@jb9cPi+4XI>9oaKZX+Dt2656-J8Y<cD$|_ zVDy0}=EuaneIoanDRE)1Z-)HfBhG|Er)n{_gm%oNw`@((cZ^>8Wl#Nm4?q1|_#&0; zJSe9-qf;lZhppCYddQJWZXj>I`nTNo!!m21U*`iTY+iwwyWy+EiOIW8kftrlJk8nu ztLV~RricJGSTjrYhsIHGl%!1gKVKnHJW8q~rC6C3*A&nE?X`eB6bJ>mn>qn<$}K3& z@Y!06cV*r)CB5HIy}!uDid97I`+g9c3~C3;*be30aLpkvUjGM${7~qZyI;|I>%*fx z;o^Iyj>J4NS>-_u^tOsB_2YQ_-(Dhc3n|kMp%M&rtG*uiyeBEi@_8EsHGoSl{uia9 zvPkqPIw{WddIwu6G@ySh@PR1Eeff1CIxl#McVzLRIkr5iWlHiNhUg!ff{XR*7e)Y| zhOk`gxk7mXOQ{c7uc!Fqyu$x2-M@UfrGz<hkwTr&*-h|vu?`x9?kH}IC!Dz4TTHn$ zcvkuT$I^u;C#JnPZR2OxM!_zjo$$fze|O2a`O^BQIv3OpXLUpqxn9k0K3r}3b8txd z)*FKE96=niqv(m<-IsX6_s3kerrn>Am>;?#fX|03pCQn~|8FT_PA$U#GQ?BT0Z+}> zC-OIM5Fp96Wg_t^*6F9^;0pQT2QmzHp!w#iyjUlPZb)s7REzV3V)X-}rCX#@0@`^E zWt@-QfEPMsBCZIr=0|G|+fC{y@>AaEn>9#Tvdq`noTYKoDp#Tl%k<mB$5?^)*^ArX zT4=pmI|N^q9VYfU6=iK0dqYD5zF*{p?||}Is3$v;`muGQnj!SyQfZwt>z7RR4HrqZ z4>+1Uf~yF%dn^<VvNx7A<Mxj}Uux%3WOS{TSP4}><JGG2>BLKE2|~z7?Tnl*O!#v= z{`V*lPyfW0^*d@Q>g|`tcJur&|N6*#!PH|DZ{M_mOkqR2sC-W?;qMnfMIKfGOjZMR zf{nMg^hy;uk?xfy9x~>2LE1!!v8N{#LNTzps3Axfqy`}pJ>TnKul0rOAQR)SflR_< zyYD;g*NhyKbhkW;lMbAR)G~5rtIeffnOQQdOaJ*hcxXM5oghZ~dp#)P!_}A<N$D)h zUgTl&jHKoH;p@`u8Ey=e$Pr`5RB?7|+=Qhpf6{47mGR-%Y#Z<4t7f|1OEtOp5r_r1 zN>%E*83!jGXHf>etL702{oyK>$;apgG6f8+1DonAGXtBO+s8lT#b;uM2p~Tm$W%&H zsI_(M9S`b&>Eutv<hm&emfV)+tvs$7z+?rRSzes>@0qf<Inx&;$MObbO-F%Nfa-r{ zU^&+&WN@wWhGY7|I0h$y%#LljFu27Ixz%;cy|6qM&zscsgM0biS<o4>M?5ShQ-?9? zk0~v)nf^oK_|y+)?uwlJABD-yQK&TYuLg{F{m+Cr15W%3rTx|a+%9n^+kx3ezBea- zhdW}dDkWR&X^PH#{b(#mU%)PMQV_kQ0i%J$RtAGz5jj;Q{(l@M+^8AY6Pwx@K4jq( z?CR^ys8^EReGRVyJDx<(h5V1i#3J^B{qbk2YJ$VLZHJ{||7&wBo`BlNE~V|yja|-E zf7)%YrnT@<9BaD;JX8xR<d0j+r_csx%bD2t^_o2U_zkgxg-GeR)h|68Vf(w|Ka^bm zKMs>~Th~ifrLjktpP!}cXeS;2PniP|NFRbLg~f$ivS5N7_E`0*JHv&;qn<v@7Z{cj zdv4}h%{^{2x`Zt&sZxzTls+QVJmHp<F9ytyH0x(8BrCU8^M|J2mHg1D@PT9nBj8cy zT}k|K97(cY_%bcKF~BIeMz9KXPoaL>Gv#c0@>d-YCk3dv+ZROIjdk8?z2<u}}- zut}%xLf5#rRlfp}C^-c16F6d@(;par2+w=u1COz+QN7UVXy>+COBBc$V<<(OlP6`o z7mYA01UvJyTI*!hGalN$wogL|`dXuYncHPX6xXR-Rea^gDrPwlgUJM82yl6%YZ!tK z1Mtj48IL^noFn4FWMFqRpLV@~+yzJDax)(Lk`8-gy<p>OmskkC;aolqR~X1*aS>or z8QKe`SxU*L!o48K#;f?DbWm0$J>zC@gV9^`q1}zW$H4cLwVc>^eryYw*MCghP^V^Z z=&2m(MTans03_1t5jdExZc{js*2{EYK&hvV)iWov1D)foH_7CK2DZQuj{L_~hF<P4 zrLF{b`SaJS(pnR+j0Md$jnfTF2PP{%L^c=;FDOGiCzE<L>%M=pw1RNV*`s@LRNN2* zTr~BTTdnSlC(};our7}@1H%j)|2fP|XJ%Auw#_@#4L5v3p>N&(fMkIAa{DOcc6XJs zT?UAng7*}z6T-kr=nN$th%O+v2#vKshoqpWB($87zxD0R{5Wo=Wwmcx>nZgt*R})M z<YK#Y3XkbS)P_zIax%z~NNXviMib(Bs64!y?Ba>Xor$uqY>zkR&tz)%-2BuQ%DmAz zteHd%vy`KiupXD+X5Q<vJZ@=y)DP6v_PS0cTUuBp18kr-=a`)poqxn?Q<IF{#c!x4 zWi5Pbj=9zBt!Q=BUFp`84w0lnbr49_Eez`+D5#>1PQG(vuj|zFd)>uj9xcF?V~6?L z^UpzmlTI3?y@*$8ko2$<siV4WsKG6DUg+Xe{AkKzU}pyNQ1-IW1HaDksA>OwQzvma zPlzcsjCTEnbLv2TFCf=Qop<*Z=8YR;s728Gm6x3~xG}d6e;3({9r##Aez}2)lg*>W z=OZQJ9(ina=exVVIczsTwDDBRL{L0ZY+Z?Gc{ED+lUG9H;+{sfYlWGioR8$ZBHFqD zmHUMJl17<j<H&%sF*aXOY~a<??2z8t7)*a5_}lsGMN2}-1gmPRpK#mRa&|uZo=V<_ z$vU;ZrtqdC0LAsOY&C_UTd|T{XLuKiR%g@f3K{#!PiZD7859ugdFRLUs9Jy5<=sV; z&A^L&uYxPlBWcBaHwgZ4suv{tshK+YPQ`)#Ys@?RTX@ZVK$7l@Lg8*Utnm-f`-6~# z#%o`4%f-d&qWW?8(?u%qnF#E)JOA--bIshjQ?2pgroYDzr3?+HHl(uEabY&&mJb&~ z)zbTg3q$)62`iGH2Yw@XZ4by-JW*6+!LWO7$V&zzckD9&5emGntPCiDb+#`V2c{M? z_W?2A2c9vpky}^$n||Ia8onWR#AVQpps~;p@mV#Hs!49P!d`#Tk^6n6YqGh?Fy6F0 z{~Jz6^7V>z0i+p=zPw`e-a0C7<}LQ;z|RoSmY-T|bLw3h#T3PqtIrW2!R=ri;J``$ zd+3O8_CQ)?MCi?x{rj&YFC-jMW4F_p6YP1pV)xHsF3I?b6GFft>92L_w>Fk^xBI?k zzFky#Y5QN|@7YI*Kj;$MZ;bF4h#>7J_rdC|&oOznZ>k=)1&MkK7E@dRR-#*nt>~vJ zfq(1nDxd($^n2;sf_wX;Xgrf9t=iJ<u{KA3ud3hqwY2u{)6a8+4FQF=mV2KjtBjc3 zZyo<lyk<@lR;sEx8;<trg)$)uESQUW*aUz~XQ3NeXnk2&7Xr-!KBfVC%y>G$TJqMs zX~8Nj3gID^9wuYA_9lY?h=VeOz<lPP^D<WL>CxEPu^hcIgtg~+Q!3ncJ5hKT6+8r| zJ0z7i9C$sO^LZc%GKvV}als8Ecs>2jd;#|Dg0`K<d6$8|1K?N7ydXk8ik7z%tG|WH z;}2k>j^P7lK>l9t`HOU%H6d1^20+Gv{USj)B8fNP7!zw%xbwaMKM2lMCju1U&pYtf zQ77nxH)g5evn-AnpwH)8Xe4$Xw8ATtflc*^P}cdGzOx^W<!A>e>y_b2uK2mJB1f@v zCTM_~aq?9JFr^L0Zs*w@$(^}a0L`~k@BzFYoCO_=-uwWUuO+f;i=5D<S1m3c-5Xs& z0oF_}Fa?A=>O><n4!_Yj1I3{zO(z8kN}lwU=)3BNik0TPij^M(0mPm|uaF0V^os(_ zkm!QZLn1s#rY>;O3cL^y16E)9ZVI>Nz#qV+vtLn~o5~rSvcY161_9Q;ffO9((G0t+ z&0W0IqF;*9aBLn0Qz!sD>>R8hUWVBKhUMqI(kbYKUVM5ldYwe-DZ{ltq&VIy7>tC; z1C^>2Ty8#eF%D|6eYsh*0zF&?Ot5%y$Tu6oovR?PJn7=Af=<nVX;(aO_DWav6<!~| zH*waPo|W>8Jc5o0<Tz4!8et4n8-dl}ILsrz^281*Bl_&!p32wnj?cbg+6u{*!-vfQ z;L7%fs#X9v|5N?H3^7PEWxmPrWEdx%g46b_q=0Ifi^v17k>@9B6M;ID56Ik3Fqeb$ z9pW)?s6IWx35r8laA0~vFiRG~yc{&f)FpGkT(E9XQB^yh<0B5+m#M?e8$zXksHFVr zd(W#8!zI8_)GI|M$*K%Ib)kyKD+o$CyjTi0#Hod2YM$s8iuw4-l-p1|D|IQj<S@=j zP|b@{Uldq*jsyA(L5t&|TAoe3)hII-v^W!L$+GtVo8?(hW<D5_U;CU?U*25n=ceN? zj@&^Z!-r537~@bka2^4)UBfv)Jc65ylrub`_P&LgjzOygs*`F^fLo)eOs(iuBr+Z$ zxWu!T0eu#zTG-s=(~LwdAv1rsEjGbi;=vGy%6H??LvEl)7{{QqdF>bUIUb<^Ht)ta zFN(Ev2WsbmD7zsS+X;BEwQ;_fD`|=;NGywP22Yi8E6!oiZQm;^XNpzhV^txwJX##4 z*b(^JAXKQJX)zAAyxi7^sr(bqx#9-qZbRS2bJok+m9n~vu0zjzg7xDZ)Nu1(Yc+$3 zW^SN%%0wLE6&$JC*nYPK?s(?+eO%j-a{OfFxGsoyKlAhf$O=?T#<U%3(vUjmnA-_m z3xEqcwyl*RmYopl6VPB@*qJ$~DwEQGF&;Fc)EiL{XYvtV6qt`S0!eFEoP!#5)~QnJ zZ~tmndepcPSh;MVrk~&aPpMZQ)@d8&$+!VuZEU%n(#d*%TnZQPSPUm^US<8tD)E~O ze|6v5a!qJg7ogSlrI)j|(GGfDTNLXCxJ7M|?%??_jxtaWcSQUtzX4}zAds2RQx0GU zrZT_=+{UzLf9zR-_C7Zn)W3_ma;!5O?6iDTO)@Qo4u{&e>?tt%__~hYs&5E+AJ%>K z`o6hVF$sLfA9cs8tykH#GrYL$&USgvYT)io6(jILQ02>baDun8*%0(T#|a4oPls^| zdC@n{akTcf&q2RiGjA1~yH#w2vfxFgY@;r@cV1Rj%Vs4YC;%)Bz)<Xja7Zi%;2{7A z2OHi$I2$9-)QZEeQS~zjloh|-cfUs3wfOOCe9$(aWelK(03~ZbJ{AC{0DI9U0f%B` zr8|zs_l{HmrrQ^@#ZX-O-Vwn7h5&!~3bY;qkW}V9WGB$=ij%4xQOUkfeGGak<Mt4W zXotP?-=}fzJFPaZDIx@E2&DMU(5`D1EST9g&*`By5&RG$9FELv=W!fcY`O^}?p;P0 zng~OFxCu=fnh69CTppHMLY{I!_&Ojk31HshxGxoftpKyb5GNhr`eAUdu&a2;AhS_v z7&$rK?tv(?1<yM?y3z_-#lyApVIE-!kJrNo3vby{a|g$7z2-w&@#2HGsTh_!FU<y9 z2gC(}b`vpw;iCd5WhCdR0pIPD@}!}1T<nh!LC4mT(kf{l^wa)G*l@`QBU~^CSPza% zp>i*2X+4vg0iw~4v!wv~6O~CyekyzgXo&`C6HiCKC59Tn@lpU+5+|*y1l4J@%P$z6 zzRS}Ei2o}^c}}9=lp1+NcO*S9WDm_5;?DC{YO=&~w|UMQ)hiD1EZ)Rj^Z<XIgDP^s z02bo#t+CSJ%7Fy1hqn@K2%ZRQRswtB)#LXPa0y`?<9zT8r_GDW0yA0ge}8WHfVdY~ zP~YPqoUd{w7!*o?irhmc8P!{G9>2^c%G^X$$&U;gq7VodITd1|P8n7s<h?SOJuxAa z`b<398Jl(Pdo~zu*s!*KOa#{;d7ymrh5>J3Ma!dSijXVe+mo`mOT1n1F76dP_C}%0 zIWT47BE+nekNFT~VL*ai0h2iH3QoZII7&cH2}+s6dX;q6fF)8z4t!>+Va<jVTw)j} z;)zf;Fk3thEm9#Ss18AgVMY=-U7-7T{LHhU%3HyePgTI?)?rE9z`Y=Fe^6zH=VSA> zCXv73i*wLuJFqIaQa2t<I4}$Kdhr$m>$8~^DP&eBah`;;>cz%U;bBW>;)(gUs-PwK zGX4ewe&u3*bZHK$+U}X6#%O-$*`#9JqbB^mFNZ19(EvaC;JsI^w;r^sf)8>?6$e1) zcdBF)P<im#Y45p8JCN^JX^rNUC$CmfDUBoi%8W!1ullA+b(LFF^Ui3rx#2b9dO)Qj zhdB){p=yomwa-CiZHTsZ;A3T2O5ninbD+8E^l_=T^HP;OUT>wn7El`9@~i=#Bvfj9 zThZ@3{2GsWo`SLGp_s~^OE(wKU}2ewP?d>AL205)uqSL3HD6JG;R%8i42p|O<R56| zn{=~G^q2JlXw*&y`0mlmO7&hqb3TTtF5POsHK@4MAV@5J#*cFdy6&V0R=oOvT3Q)Z z+Wh2>e-&w`;8Z+l4`7BqLWEBZUI8B*0EGXYhUR;1jfIA_0?G0#_nHE{Hvp&LXn!8Z z-UWDn?qS^UyP87qp<e8bN+3GmjZyIe(*&2AJ7Y`aZcr$Q!KOzs*h+sYk(qJ=^gGW{ z$$yOff<j{6qj9iL2SAhuJU{G){NkJMQZo`=59L{KB<;)MuWJa6?L{ltDbLzW5aD^I zGOHDgJhKS%s6`DgB9?9tc)viCQ1GogmC|@|lMgA2-!g&kDI8SoLYy_LWxjPuvK>yW zsIRT8PZD++92Z)6xjD$xS;j22oE1lQL_WXg25f5YA;*A}1e~GmM0wgW{}+c&F1Qny zgf{}~jEcgWadsDgm#Kgk0=Z*#b_A`lDTF-rU>Um&2vC2KOn;S}{3Uk)q*wvFlBfdq z>TA&x{9!gW`H>ZQ;Et<BtwEJ=P?;n5$kXJ99;p1@nTB6}%o(8k<S&(lN;s=9dmD(j z^IT~Z_2>0ESUs~Q)^6(vTWf-LtAL4}9m)rZ5%wU*ut{&5=SdZqh^-`cfNujT*R6+% z>Zpe6&~?L^{gCPW6B~-W=H~n`atfkx9)zE$=S^B%wA$c-fG6zvjF(VTG`1G1-jWS^ z;gS{pLi9^>;&~)WC$90MnKyUWCppyc#m=R{w47&^cI65InqzB@=GjpGGtkH<&nv?g zN7268a)N*>1YGy0Dg&}&ya{K*G@b$gO7s+YJBmuk3c3wNX=*+7kmHJ%KIWmU)+G-H z*{WTdgRdNKgDPn5Ht&VxitTQbz{03uv!Rn8{UmFS48P9I);!JR2MlXj9raq>W$vE& z_v9esZnoP;#!_0bDoSPNSSt%1*Hv>7;Ntgtu#@WUeA6?m4+UrX?l0*p3>||$Q2fdr zXRZB@pd-&JZ4pf)MS%%lZt;ojCa6piVpELk)ZhPfah_iO`=3y><w}joQzKIu$)|_m z#3aP>5=RF0l?koZMFkGaYCOH1UL%ScA10YEq^RG@JW4=i<VFxsX*u`x1q!mnCC3OC zL=8gs`j=Ko9Lm<t7Yjnl{}*)dZPe>u@=VUrkL4CdSSzkrekf2D8`iYu)WZYi<;puX z<rce@I4vC|L#W&i_(VHNAB^oGkuY~r%xj~Zpo}LSU#C!z+c%Y)`a2qxA0`b>Yq!{C zx+n|Pc0kiNTj2LKsVe3=fdK2Bnm1gh?eF7t!#0umbcZRvJ`^_FfrpBkmb{VP)v?xV zdA(KbmOt3r8}I4Z24y``F>o9a299W%YR~#AV!YeEE*3|-1^PJo6T}%#a2_=CLUtI3 z_u->F&Oen1-wXdu*?DDWV#w=5*)uX@&Xxm&b(&?rlqJvM@1hE+VXjWAH>IWU<QgsW z!r{BQc*%6L98EIHJj+)loy3&CJ+>ssU2OZ|lTR0k^DVT|{pFhz;zmzLuvs!qG(=Ka z!KI>ZR~wbHX$F3k=hEmXB%A4Sx4E=)DpNW4=9E%vR^^Mp{sPerotBdp|MpU;yL?eH zx|aW%fxG6=-lIiIe=-BIK$$ku)uyy>EmkQ{GIO%Yf5z2wI%mc<S~>So)2-jwXWO5c zMntK+rC`X8Isc2IGY@3?|Ks>)2R7&2H@gTqX6{_u%ze$3BWjKuMa`|K%`E0V6QLxb zLarQ9&6y;rkV1_V=|U=9`~Lj?{`~d&<NbcWKCjpF`FQp^8(}&-6}WX%T^rsFp;foX z@7%iaW5<u^A#)}H{m=9kUAP#l!X821w?t95wC6AwLmJmOXs`E{m9P??aTq-%KOlPr z3v*gQnjB2~z|ZVR93Q1e31{C+|MYf`0fC%?{Z3c7v1{=`Y=sBSD~i07z}tE5OF#2t zA=!Go>S78q9il>g+hnis@TGe7t(m_6s%E1Ru8{y(3c;$g0ISpO3?wgh)oJ8TYwb@_ zghN0$vwXyuf&Z|O{rnzmsa*>j^Jv0R$z*UiYyy?|Opsqk;(D*gG0elKPAe{W_O0~| z!|N}{JLZffe2?-mWkEG|k$VJY?JxTiZnDKbY}ZW2u+G(sFA8FOMt>gl$W>^6L7*V4 z3bmV0uLeU^$2s(Km`$XBAx^yai$QC8*?vrpT!!dDTK|9R9Ml&D_5)q!UCC)@J6i$_ z^NP*nQ+txHYnH)O8X8DP#9?x#hvlYwGZd$(_MropWN&8`Z+SGMc`}fzA3Zq`?*{z& z5Q{;<?p-IpG0*bO`lH1szyfH)z3}x&f@Hxnwp}EgLH|1}uOHQ*2EwO<1PBaB*(RP( zM#NlM{?W65*~StF1aP+Bp%SRAsA$sJU-!&GslZl7TjHtCzV@nvtfHY2KPbya8yiM> z=GL+<5*P2-X#YxGGe1QH_{SP)4^t~aG7T`V$OJpu?)k`I7VBI*o4=E3JW1T~UU~_` zK%MAQ0hwiIVl2|J#Gwb0SZ#|Ks@fMBGZoWIgaV~48@blROUB4m>hL4B$du&c)8Zrb zMRHiIROQ_ZrXi*K2unnzbg%rpL2KO>_nb1>cG*!_niMZq*$0I6Y|Hd%4psZ8?Njay zm1BTh5$gKCvaW@MJBFM0Ka`N70#HM4C7qm_ZSth7%W#i;v;&31_^yf<p0#D^J$+?r ziHAvaXET*R%SW77G>!}!>=#UgUFrz2$(b*$No$|wg8#_o2e|J47p)EKMD_Nih+@t^ z^08}x0n;JaxTtLIZ0&AS9<DA!v0Vco`5s(lHj|*0K@NdEVBFY<xY6duDXJ{}QpMB^ zCZ<AbpIF=_g-9qrG&tQRCkJ8Q#y~PnkEI?Sf@CV!7eivz?4bIuH%|Xdz7*|o@V-3) zN5bA;BNF38(x}jVeuJxhaK$nT0ir>L$DHAP<Z-no`<_i|q$7udB)Kl8a(qp??Z{`w zBvPK|NVXJTc3{AKF$T<NqwkN>akvH>x}|dvgPd$}2-siUb$uG;G?P;x4jxYZ(SY$< zP<JxEc7B+bzei?pjxv`ZKlT}^QdcR6u`qp{vnc`)rq&Y-Lk831R=cZ%XjOF9UH7xB z`m@#WJ2FfNmK7`<5edP%Qx3;|h`^rVU_KqD`Q&NOo)TCd`kX09htGbly^Hhz0{0|f zc15AKvaw`m-&%++D_uBk>?^#vNBq-h?R|wmU-NpMiljMN!l6Y*Ek{LEP1XWl^uJGR zJ$W4}faUD{ybK-J(sl`3h;FsW9p)ieH4Fi5)Ci`$;h^@-;$wp1n0*$J4w1(f3lM9! zQx(40%Po%>+nQnMF7LM;0-L2}%*oZ!cCgsqQ;4S*p_koP$4jkqCG@jIFyN&c+rRk> zM3g^fx4y@wu2&pQe~x|~t>LOtAg+JJ9Mf_;?v~{xi8CTldt~KT!s@pg!)kkh({akR z51!kWma<N_TCpz+<rSyjeKbI7aY#P8`uakVVPg^U!^1;o=wRK+#v3(h^EZ5xi(8o< zb}#;=%(k3OY#xq7(10I7;sh1}sn%-poc3}rV+4W+T{P5ehv?-LCr8+Fk!HK*f0p`a z<%-x?ScsKLNlbRtNY$-p(Xl*T=96dM*f(k~d+r#-4P|Dnb{jXqV1LZI7qN@4l(NkM z+%}~pf!s^?N^&?Ju~-snJA)pzY_<DTmN?%yRgBu|yfGMR_1jKXBI#_6a{)3#Zk%f) zBfd$fy(*wM&*e8pT(iZ;L}exTT$6zh=PQA~+1u0!_d@P`J$0#FGT}bjYIM%l>C7>x z_{fh1bNBfDD{HxC^{ZQjXa0Sr)Bmc%ooQ4O;>&3|fMP?0oQ*|3RuZWh0;YSTL;yu) znsWD7wjuL}VH|Tyhh3>pIJ}&BRRN+i^{W0|p=@<vU~+;zejs}xu4O3K!T}g~IMhSU zzS2C7pKroTt#XtDcrD7$g&#l4f$nzPYJ=x;nuWGu=@WQ$ML<0#JGUPufi}pe;`<-b zt+f(h2T9h21lBi1#wOC*%fMP_%L?dZd*0N`+RgYzmCe(*Enjs1TM;O4FIpzfx^AT} zN5kj`JNxw&JqONRNjbAz<n_1L*^L1Qylo8gnz|$@HaQe%N!|SnoH7%4N2{6aJV16) z$|goi>_OikH~<Cf7g~_7ZptB;+R{xO2v90PAJud|(wx(wp65WkL$l4IcJy_&jIpy7 z%(IuC<pkElCLamT3c>Xuxzg1wx2~|C3f;wGEc1~hz>g#r!bGJ2{0=}2bU^AREZwOw zd@?7N2Z8(k;^Y+B9kXFCJiC%_Dszm?9)vIi+D6xb*7R@qp5q-Z1NZ5cO6(7RV5X${ z%}s+F8Bjx0u?vT?Kbsflm^v_Fw<Ow&m^QGiPnaBzjczln!W^Vn3;Wc`F8fnxdOX{6 zA;WW_D3@|8eHxQ*A*MY7GhKi=M&HR<*K%O7>`e;`y4ZR}pv#l@&ImhQQQBjYvaYR@ zAxuc<Mx~d<sA;XBI^B;kpujYOnQzT^q<yl>VK<*V%_#61_(B8P6Bq(=&Ye=uz8~}v zBMqfgaQa@$iWCK=33r5urzG*=QcZ#0rf1$hiW3wrh-C6{^zR`aFqmUGY*V1tf>%g8 zpQ1R_=kOq7UI%RI+^+5XsCwTjR|rI7gt%m@r=i|#u!HFXN_AZaUU;MzYusLj6y{Gl z<amQv32;LTF>KK#e32`27rbUJCRc0oYv`&Z0g^)*ktBehQ&?-ceKooDxslgj=fW$h z%uFX?yYYKpmH$n!D;8nP7T^!D(5eAPhxHrv``s*<kDmv+|A>ClfuB%cCkwPm@RsEp zC*d^}^c<r-UTC}1RuLzyi<3cxsAF=UgpCdDB^aJ_u0S-7y1-2}C@%x@USP6Uz`%q4 zM=3+Fm<?kGKZ_F1KG_Y8{^+vc!0DbxgPeyjfydK(MQaA;k4Gy=weUQKU8>^uT9(?u z5(mpHEsx0})X%@YW|G;Kj2q{Fiz)1J)-KY`wohlT{3_&1y4A0Uowop;C{D+~AbMPo zg#{?>3T)pQIi;fE|K`&@R<7p&))!gXl~}oa_I1f=kfk|O@83`k0^&ou_9XzMqQSKO z_Z)PE{qC=Uk}23&0Y=EtwK+YEqh%O#!TVg(vz0uZ?|QrVs8+$C>M0D$NJ&N11idlM z>AHqbt0Yrx^U2LXyMiVH`>oTnNJawKQqgBxT+O7LoIO?LtT0L}F@0K4)svrF#@>E} zczmU>La2qzmb@{0)E34p^++Xaq~(pt--adJ^tqQp%#vft@v4OQYwZhQt~nGJ*}Lov zuSYJnZNF?D7N+QK1N8~TpjpRp`uP-==tDhj0?ew`^9B>N^ew}_{)X)4rH`F9xeV*A zc=)<7HlM~aw=7hq)m+%~(ex?PZ(HR!u=4I+`1Sm5&W@JU{EI{#|58i;WAaFEqZ~@2 zlh-u~Q$L6r73?D-=4YXQM5I*!IT>h1aiCFRYJ_CS*@wNeGax3p1cMWFKDdNJKrC1z zkFEa_{Ir;}FYzu+UD2MkYir;Sxch+H66+!?VUHfMr~XXj$L&MT2tH&%V+3FIu|0BO z;7fcAF!yN@(pN+WU%06aQ0>c%aMm~7iYQu4Q+M7Lg~dLjOysJh2EmDPUO?0ha^T{( zanRg#7}3;FYTZws-Zb;AgMC)`e&w`V!79v3&QGrnv}H)n;#PqE*yL(t6kG$@?at>$ zX4qW4A<dcM{0riWyjC@vFsiMr<~+F$W7Vu@U*64D^8<sT7j6Ou)n|}}R47Vg`tfOd z7R4o;1cVD7*|Y_=rQd9Qr<7~FDx<PO`+QimX}AbnC6w+lFw>EE0N;CR>=l0K`3?3N zAqF4KLrCF}!>(P_tl;Inr1GGJ=E#K%MaI{B?zZv~c(^*q5@sjIRQlIIZMHYqKM=J8 z+jl2mx#e1sIq3TiJL!9|Udo7cud9O`FJs|UV7UflR_D4?O^|`Btip6_E-d5Aw(CTU z<Jt)96p9{HIc~<3Tj3sHUOTP)n#EeV={K*8BP77Ado_O#i7&Rm^<W`1amWXqV7zXq zflM~RkBNe{yJBZo)n+fJ2sTlfYE($94;;uJmHG!$+nsAcC<WM-V`3>|SonSEuv|n_ zjv{>2@IeM*PUF*&8`5y`yN5Z=Y$AXHaXsiK(cF%p(mw8M*_JuT32yG@f@)c|+U8qO zZ)oCgZV>3%Y*n6t=uO6CaQ^0yF;s%gn6cUwCr3hbEi<g--sVzRmKqrpO!(3xn6*ZR z9_%)LJkU>qWlYPk-W0dzaWn9y5GP@{{bq*2W_V!h(RizfgnI;2KQOvB=dY3v-Bb=N zAP3e+hg|7hyFvxS{)*nOYpDJQLvz}9&k;4uCBD1D4MX?Lh5^NqbJxzi`7L4)puR5g z?8xv(*yto)Ux*QJ$(DQ;kcFd;79ZtPKbl8)aQL6eML)1o{A%Im(+9h2c{J%A*EJn2 zBSR6m4i<)Qi@MB<sukUM9tJh0Bf$b`YmH@>AxK8JXMaUv3GUSE3-X0kOT>?}Bk>dX z^gGn;qA`*RT!8PxRq1yHa>su!O=B+#iR0&PylX6o)EP9B0l(I9w{wA>|KM@(P;2b* z+}-Y^T==-)yVB`HysV1ctZtaZG0Q9Am!B#hC@Ly;J{0}%QuIV?bdX{#ijI)Ho-%RX zp8?+e^yDCbiUi~Q!TbD~SFRj8xC9$RWzU^<Q8$lPec2;w3`dk4V$GW@{(y1fkL08T z6lk<|!0exNMgk7hEW$u<?Q8SFk44?ba}Z5SCtOPJvFBbHcb}jjn51H4G|RL+eJo(0 zGy1z(1{&}_@C~MG`W5X!58gg|a<|~*ufwWt*Cs9(398cos0IKD0Qlxl?)5^a!!y)z zpDSDZyF*V<l1>!P>pZt$2Md2ymAB~l@^mBfVA%KeKH7)N`Rh6C{*kIMaj8#lD4Q9( z-4E(1{$+S&L*C#Pf1QxE{k`(o^~~%Ar=vpl)O?!s=)DIwFP%h+(c@66ap)s2?AZ`C zIokC-i<t%kCZvD{F7lZIyd+@ea0ZyJ?rWUgtN3d1L`(^C2+o4;+lWOv67LwokB+j1 zT;p9)A4KhsNB38WJ$~~vgck8j@b=Cja3<6jMJ*2hmYo@Uw|h=u-wBgsc<gpe(dL(o z%|jf%-~pXDr&|eh=lcmRM{suB18URRe~kfNIN)6)$P2A>(qwckWUEDjp=-5ri|ms& zc1At%`%Au|%<NW0vol^7^l?v2OnkX3VxbveM-|9E^OnY<Nh>AqJ&utq;L4p7v3XUo z^IAKeJl!w3z`%!0csgkzsd_HEb1;8*)I~2j-a0wK{U=>pfn|hbs_#9#$#Hxs0NO7@ zU{S)@4_u!R$6vb!mgQ_xTncs%w(^o%+Ro42h*5p2o@p0(dkiM*B7AZ!v11<Q@I?dh z%0#|vp#Zq@AVE4Ji!}w=QTT70*YcxzJ}Hav0XduFa3Nc+Dk0-CF`wd6Br`_zO|E%! z>eAO!m+AM#+@zU-;P2PH`%QvN)c1}91<<l)oH__L7ZoG__sGa3`+C&w*Vf(qid`<6 z3F$q>qIO&`f!{y6)3UT#I35<+z8m7J?<5`@x|U0}W}lHfx`O1|6eNW#!Vsrv8{I#6 zrT6A&0zZQs;T*+JY8S5rk+suHK3}G%jTfdpq+d>RaCplfxecKJ5g{2j+SrFez_sGt zeB|1Lh42q^?C8(&BNLnI+q4`C0M^*eVQ26o&)asNpyk`$-eeOH8uxFBE8X18F%2;I zFXn|w3v?;v%p`jyXCT8lmW3pOlk8Ux@RSR;?6N1jUA0pdV8+3Wz=+RR&EOKADXd+( zadXd`nYy$eC+R=wbSK{&wMZZ)T3(>6vU_PJO^g{`oqW(FoWa1-kb_KqF_IHNMKPc- zKD+|J*wYq}RY(#;FigFXv@CMR&jbEIO<0_>97%Jq1!8f6QGL)*B@n=qYEtSYG)z=T z3kgrWtXE?Y%-(uS6~!aLbwW-MZ6C9)qrg?Mx6oZSjy;!U(}^EoZxL+OwOkJ>N!+d_ zWs>4LqJF`yGIOBbC4303&Jc>IKXiSa_IdD*uw$I?jOVA}24OM8h5u3nROm(@=UR^p z7wDuK$K<8Y!A>E`4=)lFeXJCuBJxWXZRY<PJuV4mT!4L4nV0{8dI7mF-W?>j8vObk zxLGC7ulS_59aWaJ7fJFfF(YH{jSH{H@ln5){NRyD0&h@#P4+;Wl&7$!wDcJ_P|-{8 z*GJDix5?BWv2)NdTf4+_6`H4aAwpq}0#vtOd>mC`#$*B|2`Cb%2$ahnp)kb6i@j4J z?cSU`zC;)&_q@@xw7symA%hLMGD?xWjjF6KamK%_FLfu$Un}$S^uKoAH>C1fd7VC9 zN%HuJKGrTz82muNwN3m%ejVSzVi3%%ZCZkWub(460x>u?I=WqB^h-L*Nc9>a5#-BS zAtMH*P}+=L6e=u2owE@`oU3r6{S{z<G*R{Bh7Zc;rGkI?)Yk^(HaHZy?+Y$lCgpeB zrbxEF`ZZnmy2ZapLPr`<A*Le`b=hwRZ=>z@1+XZ{|E_6Gx30fa@b$kCJ9^0pf;X%n z(s~7frbA3cUTZJ?ZONh5zO}ll);k|N7FzrBpc3QAzPKG&<@Pg0h3nZe-YuS4#tR<K z@LjEGi6v%&_APr}PV=?nj)$Itss*6}EMbqd>CS=QMj?{?h-(qvioPR+bKo;BWx&38 zR?A_Qk8|1eqHZ_`@>yTPz~-z~*9J*=Qf?pM<XEq4FAz?z@&bLg6n2#SsHSxD(C9%! zSv&Fm@yilR6133ALMTex^QB{l<S(B(eBtKwzV=CS53u>Ebus>VP|s5G+nS!&so$1N z$`2mlH$7IituP|tWC5r;9*49owMp}F7!uKKL~?;muGuuww*MsoA%ZN5dWkbv1HiDN zJCqr*W!`oA_MTAibx9FRU$hSduRpOGperjki>$nt_mT-nT~r2%X{4uYm|Jyq1&QGX z$%xIE2frX%cP%+!5$tp-(NEk601I<odoDt1<l2aS5M;^`GG8qRBBsGjvlUiMFat_% zfds^}Hf*Cy+f}bfaT!noA8ILh9Lyv@1sKhAwSsSoeETB@g+g!{3X4bq^Yy{xQBfkm zm0gyJySquIuyn4^&NB9qK6<|o(F%lt@b*QhURow(+|N7B*alpq=MBxt<4IsG`UxTN z)-&GsphH$r5q_)5j8eh1&XEreF{q9Gus@4g2w<u$3K~3ewcK>@(Qcbsi06tlj~@Je z(Bwuq!qv}4ayjyW`HFtw=|zm{pQaL{)gshM3HFl)(=qhW$z1*@5=<N_^$3SPcOXpO zRc6-)0;6em-l=QAJ4$+pzt6TCnA{ZPgL`y`Svxyk-Qy3F_?xf@sQ25n*O|49YlX*z zx9aLz$A>l-k7Y&-Od_$4SF)f(^a>dBnrhW4dG}KS^r>ofBLN9ElxhG9X;wGs|M2)^ zU8YEP*!W|95<c8244$7LDdvNRg?ZRwD&>bvtwU_~Rz&63{#*+KKV=XkoGukF*M#L& z5<K~%kkQloY@{gmOl>Kmh{M!XyR4!R^mu6zI|HAA)y!D+RQr^=C;y}K8ipXySgXEJ z2M~5d-p&tC3KeXaFosT5kwW}yM>O3n=aqxM8#a-YwLDO0)?Wkxq}w7aiP$aWn@`Z8 z(FmWwR7Q4OI07*_11J=Evdxf*AO}F);i9A+Y!Il#2W5}>OfZFsEzkgh`2{?SujxDh zqY;AO!)z3;mJWdAI3T4>pNwXZjSi9Ee{`6w#+uTFMcz!8nr_(x2wtxGr8*8<0HV+a zv5cH!9*zFkyz|DlPd%>;_xbqh#ZY-hP)LUVqv6bZp6a5}(@o*vr%-iHdQWlR;|m&< zKE^;#xA*Cf#DrA${rX_h{-e*3Cvq#-SIUipHe91`(ogZa>k>=`DxS6^JW4%eD)$qW zSF5DNr73SWMCqg{)Tewr{^rk$$^Az8OJ{aIzWMK-UC9Y3j`3){46MQE;v*_7PCqE( zy(gDsso~D;k6sp%Jl`kx8keOx41=j4VH2M>DI(fKU>7+F;ex8II{d)NV$(7FCH;KO zre%e<rt}8~&bDOx%m+ABmye1SOk`{Hzr|q89y%R<mVe>X>OPykjH4FH=N07{_gd!% z4Fe}$xX8cL%P^Y^IqY2eAo{(*Rr$ce1M4FFwr}`+u_p?dI6J1<q~Tk$C#S#Q=s!QL zSwnss9VNpWv^u<*Vg5*+g8{bB6xZ!-4m>l}>8#&R59;CVDYu_reBIU1+0PZ=&I0_= zpFHKBLOJ(DPi1{6Y}hjK;Zq`<RaJW|L5Kl7%sJyq#a9t>MaR@qF2XNfN+gy~Z+wjn zc)rJ21`8t@AUVRIh9Y=fu!zB*psjU0h5JDXh)!&&JRpsVsguNqC9BUo+c<2}|9yTf zX*iW0)D)eK78qg`NPL|V@Yu&haMwSXvc&P^!mCDCS?5K$51=TLr7ZWM)KCR-Q(pO@ zlX{U+{Rs{@+ote4dc}D;74&5Enfreuh_lk>QvsJ8+}v(%r3_oV$6r>w7IEU6*5fKa zrQoB^2P2A(Pto+|A0EWo&R0**Olf9fVGlCstyDJe=DsNCbyFLvzhq-%AZ$+-laKQx zL2V}tVk=Z%K05KE^VV<t^1Vn~GXGjlOZC*<=I4(;p7_~+^7{LfH|8aARz`Wkg()!h z^?TB1Y=f#&QSjY6UTOC#b3Xc1J}b~<-g{NU7K2)ysQ>*0nf?_-mn9acI^=Cgl4?(= z(|4S`d&Br$BUMoW@4%JuZf<2s_ug9lymKV~b@JCgGq@0u2nn9jxyv#If4f@psNl7M z=9}dfjP83u+)o`9D2VW~3kkOTSs$Vb;uexywE$9@92CyC@;a$cd`27}n>Vn1+(u~5 zRhY!t<F{$V!bm;c*Pl0P44#CN3i2+|k3v=U@!AiEX(RHyN8opZE{_DUj9z{9pz;N9 zClM2T$B@zMi#F8{YPK9-WeY4ylW|v`Psl%JJ9vVf#*lec#Om_-zi+0S6)>ygHMido z2UL^2m6zoX#t91qI!@+oW{=f4n4byCam?KKhY)HVeI-8vo0uS$E!4%5&*m-C`HwBj ze0kj;yDVE`C!jL&0{ObqkSNK1ys2Fyb>Q-{;}T?p9U=V0w`N&B2lfy;iR_)If|ErR zSnmf_<7q)ZrOEQMvn?r42;R_%{NkJ1H7}tAtkVkC6Rqa75Jo^fKQI1EnT(7Mh=Uz! zh$$uh6_C5QqPcPS>y;HPr%XBe9f7OlOx_c=<Hyac&nOl(W$XoR#j{zYN*elBj-@Iy zB8p~VeMUVwSqsu53Y5zGX9_>bkJS3jl$RAFgwu@#LF)*<_QWx__7xK*rvG|~X~|yd z^O8-%Bak*xhBQ>$g(6M{%YX>29D(;i{1|N+$qJvOO%$<O<`L}b2>tFd(ZO?h51M2V z;^@t)7|C1o!0ZDtBoAhql!w{|U@zsrwLMtBUje#b`u|kVlR+x@yGUZ#19MSw@=j<t z?$TL9Kzva$O^U1O!z$(rdvD~8#6um=<dY>>Q+pzE!D|#<WM4v{Yq4EV<f<oLt)iU> zu66@YhIy4^?3wg3L3xhMOWu=5M6lJRtBM`fU`zf;uHxyxa%-Q^&-2N|#d-n)LnP(o z&en%@t%|jWmQhqZ5?rIGD4*Z&j)23dD|_`|3DSh1YY5-d*JPxjEYo^IQ&{B8wGp`s zH><e@D*T5EuKf|ICnjX!<3=`-mz-Q01oJCO%RH3vbPz^9AWFNa5gr~r@jm*Qx`%kU zlos(Pa{RE&$iW*I_6J;vIH4X%z362&>Qwj6Ce8JEml}59DDGfQcgxYRw4er&K?DMn zbT}gE*uDrh)Q_>|#g1@1W~WYKPSMmNs@W2A;i-4lQis-*l~sdB(%%i_Ls}P|4o(JM zT<udP)5FR$|I;8e@HR{TxnL$13&S@A4kR@&zqosA@Y~2??Yat%Db?!5+IfhwPI*J4 zL&jdr9!kquXO~1~&pnQLE%271j@_w~zH*R$qSCKUU{jpR+ifJ4y(VqiC)b8a46fMJ zQvyOpPQf(ExS?WQPg|I8MBw^HZ00G_&<odV^l;%P=@-|}heVYh(=4xzbfXn47EcEA zJ<o$SW^AlQR@;w!a5+tMK$A!X&5i}eBYxG30rQ1b2OdESVDwA;l2g-a-74|D59m^X z;o9Mw(NT3;8+G`N=-Nnx5~04e>5#F;9QD#88aglY9bI%S+>}snCqVLRAmS><wjSot z&o0$C2LA&^@oMaB3yNeu%a81SA8lC@jewF6>&FlloYvo3w|E=BETgW=k#Vk3;RE4U zwLW&>k9VFJOGA%DEy-sr@AFC{r;@$H!=Hwdz>K)eCuHe|k>yy|rwSvYkwj)SKX7z# zP}~3dnr(!4nk!)Fii3Z60eXx-5Yk64t0wm5Ip>YNP^<5hh#pkX?yPGPauVL*5GDV5 z9sm82jsP44(}i6_D<wu8k~06I2na*a9%ZvYY3cXogfl;=Bkz*RwiCq;0je*ujR~;a z8-`AM2Okaf`7R9-XCTN=AaWI1p71h3azS821X-h1Df*e#=VvFPF2r5(`b+owC|463 z{E1M{o30GVoXMGv>{yrZIbuIW@iJPUvm9-0k@TR&l-9NM!E~_WN3Mj7UD?Gxe-^X! z>a*S1cYh`+w@Wr&Y8_Vh(Fse^idfI{f+^cY=L=?64=sAGJdPq3>C{<`Acd7yXBHH2 zQt5dsHsznE`;JAXxi-B1yk0^-@gWn_^=b?<?+F-kO7J8|y(mxrOM~DVlWC`93T*CW zT;(kyahwnGfQbrp7?e{V_JCpAsyCHI^|1Ze>bW6IKr9}emiS0)dr}f$S6un!N8HJu zhq*6cdU)|HiP|e+%@-uJL5o@sX&NALnr|3XRUDW8TZa7mq29mOt$Sby5U)U73H#&^ zPf&UnF%fn8BuH@+^q)TtqyruvixSa>*wCQPZ6%|F@~xnEu&Q)dTB*_m_~fQQ1`YPn zcUh|jhH;$QIfh`}f_Kt{`rD43e@|k65qeG&S=baY_mAq({jow5`?DzqiA{O;o~z9H zjN?F9VTk=(5(crdlIB~IHnCF9TT))J(ucOBLt|x*Z^^`8;P(;Lq`TW;rqdOaNFs02 z6%b$*p>3qs^bsRMr##0#AWS(BfD#x`zjPs4uz)EZx(k$P6ZXKF&B2Nw$?bg^cq~@8 z)(^|?-GNyn@`MUGnl=m>i)_3I=lxlIe=-`N#TbYabp$x|+v3hMai=rmj=^!7Z)#-9 zIQpsvaBMuBZb}T30`IrsNO$4*+VF^hIJ=s5>{5s7!|Rq`ik}P|$6Y8Fh65m~j2(AS znF~_cX(uQR9cVNl4H#Gq@1Z$~7(^y&+JHD6k1~9SZi=@MgCaQwNF*6E9Zz}-va)_C zMfj!}!3ZOC?l0vhHGU(BK~bD|EfYsV=QqM6{o8?1mfijY$6N78RjA`zki8Jpvgca~ z%TNVDR^b>pDY9&<3~js|`P<^8%EmCgh7Mo9*@WRi1Flaq^+6BuCOtt$x7|#04LnA9 zQ-ZQ1nl^(3??Fw)E@Ies8(+MDX}a<%6yY5QMUbK1abkuKr6a!+5(sL^04Xxv*O!jx zO8}&_!KJ2#LB|<kI{^7(SL9@(+VjD^EwfrEp%gKsY2QJx7}OL<BC>%X>jXG*B+NW6 zq`%Y0#8HaygWyL{D+EYQprbaxo~THQ{3GBpo^QS@Qaee_xiggB?Szx-Io*!cNmNbj z^m-fOoh<t)n2e!y6a0vW;&0QVeB)qkhNPm~7-x=uqtS6+yz~9rm{dmKev^bhT_vW5 z0auOo|GXXMJt&X>AO?0K%Z!5+jYIbT(0pQywMbIC^@Gs7on+o|R22&6_5KX^jZ4<c zj(BbonQI*N_9tIcdRZh07D<3d8%2$DV;=NKR^#=g?Y@_^8?O~7yd%?3dP$n9@+m)7 zdRO-4sqvI2B3bRoZGty3#fFn1N%lSY6FLd9v-pXT9ML?2FKtUq>`zpS_(>EtKI=s+ zqZ&i=ewH@(U|tYY&A0gmdZNWf(#+$|2#uV1+jCYCT7KLZt2Cqu=`De!oR{py6#gJ; z|4K43;I~aNbUzhS`kq9;*nZ-TxKgtKDCJ_7yCl2N@zC`C$@an1Qow(@$KCC0V{Mpu z_jidJzo8U>&w=4<Psle<R<r*}=-n;QgUcXIuz@Dfk=sR=J7A{iJV}dmu{?%mXI!xL z!{U8?rS)bvZH9s)lFFQStHex6R5Pf>>05tJ-#UJpxS8A{M9!g`Z|4Z4oV#EKt?naE z4r+#S1RPQYSjL84cld7qVhx+wcNGX6(g(#D@PCNDH?FBi|8{c0$r*vJZ`lww`1}Ic zAjp|Rk^ObUrUx&_G5b4}DCsva-RIxzLLGWAH;rh1W>Gu680+0efj*+}sr}|@eAON0 zCfPUb9}b)J5vJ+CqZST8y+N&|eXS?|1klVJGES8`fU14XI~7yZ=oUo7A?fD7QHOe8 z1K_j_3#ifn0uR07+nzc66y$mPlDXt%Yp90>tyW(S`buX&m3JrSZK~QE^W4kZGK)K{ z&r`3Ncld|?PEbrkZZg0);7%rgqw_xkr2~_7hZsGm=|xW<)}JExoL0Mkx^(1DX}m>g z*dGEVrB!vL^@WAKaO&$+v$_Y*Ab|^alE*4O{_QX^U%VVw{3Zd@|CjHxWsGke_YEa$ z>Q}<O;_72CJH#0S%iA#sKAgbCxi8(F2hO-nrru3HowwFMXWqd#eUFoDIT-K%X;UW> z`?pSLr191nI?>|qf-LL4iIv^Vp!6OplEIOrrn^{^CyxwDQ`5g6xqnY+M5c@&;LYHR z20E-+qc>Sfe*gUn9sJ(-pK_V?k0Yrn7K5+^08UQd>KVZB9{nCm?knj!75eDsI0TAK zFR~-xU{{_J&I!p2YDXf5Id%dla@0I69{?0V!hQ5z@h}Gm4-Ivx$Ym}&_n3yKzhgUe z+%BMD2lmv)soVxB5;Pdcr$Nz<lM0c4dS&RGsE^Ft;I`zACzs>Ny3q-I<1kTGC&G0v zX~gJ$NKIL@U=++Ah@I+A{3CNBurL0@-0f7^lZWr7{=ys9COIA%%vfvn=x>KRppS_o zlK#?nTM=U@h*A=wBU?g^T-J8(uYAJ#-Ac3laBRuLU?7^@lk`s^Df*@G%O<sF<><0> z9}V!a@jtZ}bF;9NnP-UcL6{&$X(#pvW5eij`;H24ewmt;8<2NI>WWgB$|otYa=!#| zv0tCS@chOK;%ah+!i}?(%ZI|)8EB-@X$LwFLL!8GsJ#V!CRX>7j3zgyU&1{yhb^O* zYlZj^u+X_T&;+9=Dwq$*QY7&q^1K3i8rh(GYzp~V;TTy^;$bNuC@x#_)(Yk_5DNKj z<)_i7lo)+eTqCFdE93?tWV5y%dU~_A``HTHh_7Wp;*s|4#f}#6j3@IEPIkNGDjiG; z$h!&|3GBR~Y2t*e=NJ99iG~89l20s9j$G$rx#c1ZWJjrNnl$V^)ZM8v=#JzHZ|9@- zh)!S7sv2Oh*(QI8I8)_@AlV4e&G;nvkq2F&-p%YaU+>K{G>yzCtd)8Oc9M1aYV}#+ zl#k^usYDF?o7~~<AVMTj9@x=OPkMksJy*vG4n_HquIeHkLqxdzZ!uIK@2ZT1uozyZ z{+0JP7+w=w_LQ7SVG%|%7fWle*x(V*kU~juCidq=`+$e%w52<iiWFkq9qOzEKO&<q z&&Xg+K(NW_9G!b|p+meC*koRCZfGcEJsS2ne`cq``JpLO5^E<nPj>*+$sMJb9FKda za2HKBOtGfp7F@&Xb1D}j&mC@+@5xAzY?{eH203^hlAp*x%cfgIg5Qg7dt>9p4lxew z5!#+?oI7aLG<&YeYW!N}#j|2mUXJ>_FDh{Md25!^89w;@T_W1}!L`DrlXFU;r#~PM z@Lw!<J&vMDlnliLvgr#C7k($z+RBMUWmD|`(U!^(?pqj6zt1}LyQ!rHE0Z?ht`-Iw zxXA5vLKZ?0IOIvDg;ku=b_dBq$fH0(L*duz`4@3-^P>-+Z6h$Pyjn`HB)f)`+k}Lz z7AEjB);^Bj>U`1(mJj>8Gwa)yQgG*fB>I{_2Pyg-b_tBlp|2m+aDbIB%$P;MeGpdP zjA0h}(XuZ|$tP}`XY9J7Sf&zCEQ7C9X$XpgJH8H>VZ+BoAX0nY9!0Qr@HwbheC@E3 zx2b@*0-2^tJji$PTe=pntxXV*hpE^Jq(|zv28f)V-$awiy;L{kMa375Bx$Q5#yAq4 zvryzVQ$jBshXwYZdLo^Y0@HR82S@e8V4j|^ZEpZF`m2}(3=YXm1^asoXTLqLX-Fc7 zgWdfq5Ey~>!jWa1Ti_cc+~47xp;%g`u<JvBYH9n!_UOr1kA7bI>G00uSxMzg*b#nx zD9VE2q7=+HWV}!FjcpFvGn6f=^WuIpXd3zCIz0y>iUD?r4F}x%r-&At%^AS5X22dt za6APeDp$ug4|7<S`dKX89qEIqfZ+M!U_RxW$bD&#giwg#+;LH`r{6ewWw%$w*egKb zA^HO2f)3^c?@?g{5sfW_4R>mDaZu_=#HNPrQ=cv5RsdW6=P=?Yg&Vc!T4~&YmC!>r zV5XK8kR`z@_4of7VEYVVOZ-Db*vJO@vr>rE0@MAr6c<F48?rKa>3Kmxu=sqM=3%)H z<CRltsioR)Tw{M&61SzAEcn8j<T%edq3;Bf<s4Lsj+r@-MX&>}G;BUGyw4$}YZlBE z_Pkqa<2WM?w1hgPRkNsb`6I-aM!!KYJ*SyzSO*q}TDP@u8Vq<i%8FZ7@4M$HjsRwm zZZJ*H4-J{MVd<{Ea6vIXPl20fS%)k)2gA~F{*QhGblJ)b_tv6rd!)~GpI{bv0xB@Q zxXfz@|AJGr?-V7&y-|x7KN5<LWn}_iZe<v-q3ELY$h&+rzCU}EMnXFMbUQ_~<+h-w zJ3RXa|ENwL?)tF?S?`aBeGRWv%O!mr8Xu#*&?$y;lD{z>Hv{tAmCV1MRyFgk&?mqe z{t0_qgPS2%>Y~mSZkMLCun2F|6+!<h;@O*s!uRE^s~&!V+X@$YUm0LKI%8~1M=w{t zl09+?Dxy@*^)bFXg^cl{kE8j+i(rO5I!{=f1M*<Eu`#t?9}izz8&m*=BVd%S>!zMs z4DCT~H(K3ua6R`|eCwE)o|R7ArLuvreX@`5s)sTr-&Z+hd5-vB{B$xi!n~;SQX`6I za9H2LTNorUeeLAw^G8^k+u{NwYQEk(nF|rWTO};^9yAS*i3r+_-kUN5j^?Qag=m)~ z+j0aXFFlr!qcSGecOMoXj&o77T;1>qK$^`um+IH3xg{&iWaM-N2-BP&O#eiCo&)T4 zP94;o9~4b)%8<E%i-3wj3)QB-w<hP~@LuGn!cz?wMTTBv0v?C2pVrLWnmy`zZ~rht zL-DWDAE;^>5~`X)$3eC04`qbOkI9L^hm!uJ?<<qWrxWS}l9Y}m-}mk(mUktap9!l$ ze_j%F`Z~3}^cAOH2X~<`!76vfw<Y*zMV33A_aYh65nvzJ0GL!=i^@So(@QbDC|qFg zhsU8ezhS<7c<0jhy-b@*6bj&wWZYWM$@V0ON}D*qbz6(*I%K6I>G!rzeDsVgUJPE? zC}tSiezOEL2ykbIy!(}BE$vjP03U^bu;UNwg`#1CIKqtNG~?O>H3Z3l0D=+#sEfaD zp4<?))`|hyQwrFfdnBR60Ekb|jSB`3L!<~mrvdeTViXA?LD(A|Q#U@#Od>l@?ByRI zLBhNAJAo@)#!%G~=zQ1DhOdTlc8K)PXRQH9Sil80Jg~u*WiGzM!%!N)2A`?<`K^#p zJ}Jfzk>HGX4|V@&cAgD4R}+4Fd+Iws)Jo6zFaac5xYH-hg!QQM0FY=Kqt~P+^6<j= zpC2W(n-ua|Rdk9&j}A!DBk=v#Kv?a^jxBmm^uk*mD;PZaWnI<56L+Vlp7NI+mwvu{ zb0KWJ;<Vc$sSd$$v`nM6?1Du_ZSJ*+fr}&HUCug6oF<JHofYaG@2h~59+rvpre-o; zg&-7axqBCy_9j{m`Tq(fI8ET-H(&;eUCVa}5oCq_icA+@#d-?^zh0Bz8Wg&Y6k%(d z1hGK?f`r!uw5Y>=Z&5DD=re}P<qM*f$)RB<D4@7#j4)U5WYM43OmQWS(D5kf0(0{) z4&>qrpDMyYks`|>2stivmI=gBu>1ugm+fJKJl*k32JG#oF(E`Ks7=W6G2clX=uQM| z9`R*y1%7@Su-HWNr_)6+Cs8U$r~pU8dPT$r2Pgo$=;@G1$Gb|Qg3X`M8w|9z%U`)B zRPVcY(@*HkA;BUo+4wENX0Eu^(A5SJ-Nh$52Xw99>#e4I;NeA^UcZAd0EKieytP(T zhKB4t3MO&j4IIHXf=H3t-`_XLFq+a57*Wqy)EIgR%_yd;aHQUNL=q_QKCQ@=7M%*N zsAZ$hJay?TP58Sg<$W=rLP3G!bf8R;DGDG5mNr>Qk$U?Ki4x_fs(@+{Z$fUCQ2-`R zuL2OYd52m+W3)O#M?P{D&_+B{CZI61uJvqqbtposqqv|Ar6KVQ84R)E<6jODiH=i| zt(Bt7lLo9J-Wa2QLcyYSHtNNBs2orABN7t$?RatseA~l_<cZ}c>d1H^SEz_tl9&yN z|7aXwDxm_u7H_(O78w2`wUSicbZttoU6(Y81cX{|Jl;UdEu5TJ64t$&&w~y@%8FMj ziW?8_*PY6FFE?}*Oi_C0pqutZM<H0WfzE{-T)U@Y6H>6PZC*-AYeRn(h1ik?v^+sK zNPo2AfW7>viySQ*Ti}jB@eLMOfPtDt3ngwolUv>|W&>LcLHzcBn?2XXHlQmduyb6a zSv266A*hE|Ga2F;S9z+>g0<cZ8QqiwLcVDWm+0gfKt+%mdT5=S-@Y{2mqF=uh9K%T z5_RCFfys3*bKeY9{kHa;7d%D~D{6z3BbxeLwba|f>@l${CEdGD>hRfk%0#1-1i++R z+zJDP)FTdu{gwEH{1S%@`GVx==vrt^ZQjr`JMkF!hT(tCQ?Y^lo%%Y7b>BQ`%%y_% z5`5dC`pb26?Y-siL!{C-`rC<EU96WbaHZOCMjxAr6!CU^QEzdx5v0IPwR7x0=8b$E zkAV?DN>q?=9A>Bkr9lH_Qbo!Mu(=qu|JE_rbU|E-HHxSy4v|>hs+R*Bf{<2@;rNFA z0D@NwqUd=~ZlkL^iscxaUnoE%UiTuwsLk8CPYO8u+&#^cuGZ-dN{a&yIO-I|qojP) z{Nt=X#Os2WF~4Tq#jXNlUMQ>)f?LalQ9;`7p2~5mUui%`!Y}VoExo!k1#akXvD@<; zien-oTT&t*PUQ+7vm|chZ3Eo-a!~B8oAnBATEOsU8K3pGiw#)N3=Co+xtW}G(L~4Z z^`O~pefpO*+g{r$sEt{yq`M5;$EvRSuv_4CgRZxW+#9CcLddNGeWEUD6?s*|-P7gM zar@9=r}K%fuWd&b!9BVwkJG$)3`4vSMc1_J3DPFSFFw#*#+dvaS5HBy$6|OhuDiNu zQ8x-uJ&sXEU`_Q!&EkFc?-Y^dhPfO82=@$K1MWRB0?H&5DM$cq67J9I13^^Kja*f+ zP=Jz%T%F;rhap(q#YGg9WEni<`vKXIL&4!X^2=f-XqfR=%xi-~(j>SN7c_UUzat@L z_6G>zgPnT}v!7e%*kOh7h*}yjv?e}R>VyhLV2yyGIFa5mKY=>O<uHC(0xXkWd#CF- zFywj1#mD!JOc_2g#^eR))nh9gv?zBIv|0e~Een@l5r(9Dsrr1GGl=D@b5uQVJb?4H zEO#!LLq9n$jcKZ$e5lWEBXq8k<iUl99Z|heK~XpVPeu$7;K_-h$>(CM*ez8n5P3bY z?KKfRHc|8i)GjzfJVe@ilnxC=)dnwsY3uG+dv&lXPQ6@`gWd|{{fkTmrf66(&Uh~A z=L@HegaN0mNEND~^^oQ*gM{2RK`~59ZeyzKkg0no3X2)fDRD6ad+OD>Wq0$}Bw&tR z5P0JqZ5uN4N=m}XAZ5AkIEbSSA$l75d_AV=$cHwEGor6ZirI$HA&?#&xu{5pPx`mH z1HtdlH19-P57D#Z5nUfGVk!>FrynXT^0`*}C+{0eAOuoHLt4pVJ$rY+gGdM`3PtpJ z{;{#?V1_hPd}`X6uP$h-oIVUqcK6l8@(IBP3ubu?!5`5{N})4hiLRN+$aU(}>lZTS zN8{G1Oz6i`UI}#FAK$gP?pPHq914|cUx2Ij)45^leD9}`u#J(fsmqBS9k$Tn$;>B1 zTlOe}MUCzRQ6~7X8&YEx+4R9-7M=M<?gA<l;nv2M9dfJt5+*-XY8H|oob09x4mSZa z^+I44DafIp^<(kJQCE&%V1!HkK(mYkWSPZEB0!)YjjrYcR2ySP&!_c%*Y%VvlO1w8 zc?#)i8vC?fW6(eIq$#%5PfxgnDoyI&b3X2;VH)}jk9S3w4OOCoD@?$YkClgV?JpD1 zMuLDx|BpOb@MT-Hf9jaYf9p7f3KaId7w?5XiqLyOy3W!0H1Z;~GTz^r)>E-&`VYwg zTXgBsJ>xNp^CV3$<N%}5jF2@0pOjfS{N7z~h9FYQ{g2{;>_%z;0+1p>4VgB<gvZdN zm>dnpi-gC^$U*3hi!V&iK|1b0!7e4GPm$WEa1si6-$(8>i{qQSGG3C)mg??X5d>Q~ z@Mj(&D3lPBbmIVU1J#Jy(Z1R989Z|5KP>$m*r8VN3rDn#ldvsaGQ$k@f7O9`i#u#` z)CZD#KjNAqxVT!r*w75y<fm&)Ir`%iiq%~wz{~;>B8VZr@fWVnt|WRruUQJYWCJb^ z=&wC*h7It%Eie=v+xzVcGb_HIXCxMSg>NPIvmv(36pN3`R;)X2o$7T{K=8a`QVres zibnuS_w=3po0mTS!jzmcubD&sf;P&BB=&s8;63a0s$9=1R!JNF!!a88Fsf_j&Rn1O zSb!v3m$r5ECTjUV7Wuj~7-TRxA99hSA+Xx!`;y-#Bs107^rg{R#Wy2+@r)~1;?4<b z)uUc(56d9d!ra<q_t_t81pnyQn_i&LtXGYF2N&PyN8z8Hs-^{4)7%tSpzn;ag!#+) z=9F%)@!Rs2vvs!xNS^vicNhBA2Rn3415b<!4dj>hO9qr619TeVb2Coq68t9QS5hbb zUKX=C5s@k^zYJ~kM<$);x8|X*2-V^bE9l;{KQXF^?dnD0UIrd|4{e|K==(#*t?s5C z?iss{^-45(rH&L_4A85U0aSh$9u<8W`SPrftED=}K^C2Apv{p}8p;<jxT-V%?86bo zx)Rl^Zk7jJ3>S_5%0B1`Yh9{CxCAzW20eZRyf_CPMWv1M)rph-T4~pEU^Wr&)1Fo> z?TA92h?jH{hp@KbWDsGiqEwgO<*D<xUn?On$rhb)p&H|`K!5NYdEGnmL!T?U<bmcw z7UY_iM$uAk|A5z1-QK&4KWY1In9j$~pmxq+2L9D|mh^o{^Y{+FYh;#nzh=O?&hf?X z*XfE_jka+<Fzaj8<>jT9yqBz02r6%l<f(z)Q`<mXILrV{iD+#{MCc<rr*MBQFec9w zJi7$0r-CFc?CoksLw^sVEM^}mQ1=Jo2o+uJ^)1r%C`rP&^y=IjlAt;atOdX%hCC?# z$g`IAOv{F>Gd7hmqXYN!<Uk)M``<o!trMO)X3Yd!i?iOPyxj^y?Z)e-^uCK9unB({ zgz{XtFx#yMPFAxr`$IpgdvD(>K5((yPpH^^me|$Tk9lYXmA*eq?rv>4q0)1*U{+Qt z#ONL>2mdYR)whpU9t7r-w||x~M|7qw`prn2_jjgknYUlQKJfIg%U=`MXIbL&wI52? z_IzpY)(Ox5wQwtHcn{=)Mdr??2@W;|_fZs3V#3ZsUkJ~(R;<P7uYPnML2b;~j{d`G zdvHO7Uy3WUibKf0g&mYCMhwFJQ1<X)jqkq^ye?^=?GO62#pjv8uVzEvyd<Xtz{q(( z&J+i#&wxpij*$=m=o|v28QF`i8_gBiC*jS|Urx^y#YsfM0JjGjL<Rm{japPyX%WjX zjOKxScmWrWr$_D9zGY@QQSsdDcC|qiPQEyd+0JmX+jsQDKvOJry4tVv*wV!9n=fur zhm(}U%2q+`k<V`gJ?d^*=%Kwu=RHTHFZQQ=+gN(kbITWk6%dqL?P*&cW=rlraY!0) zt#EcYoZri9SoW_FQ!r*%08PG)P@B`rPErk!$I96b^r>uW!{}w`zGS88=`i0ah{&po z<7WHNIMnyO@bolttOlz3dq-Plhk!COknBp0#SVhZV#T^zioSfWcFK8y%?{F0DtZ(u zWP4H{;rK-vB*{Aa)NF6m?&E%6<4o=PD8R3Q^o>pnn`6M#o48Ci%7lUtw$oT<Nj0b) z2{NVoG%aT;CCQbiLr{FB$xxrLrw9?9BFP*tV#2FLN~~>Q_K{*cM4H@P)9G-z5B3yf zf3|G#nd7SoD8M!49R^T(x38Y$yiqR62IP{9Gem2k3k3B{ThEdrBkxPLUEecj^8)Qy zJhjAq!J2AEv0D}8so^1AYCup(7zX%{NFSlt_<g<}a>hMGN`-iml(0?!ao3lx7QOG{ z7boJ{IADa`jSmggL!%1>+a#@xruwteBiBTrL~_%$?v0I`G5#0AJ#YGVMYsn`Bvg|8 z@QxJ+v3tkM(eJ~$-?5SRUD&hY#ZatE%k>vNkWaUx{K=OOX8S}y{iDRoLp?{8=zeQ` zWzR1||0xtVr-k^ukDqU-sHu2sL>>u95H)P-eU_B)(N<e9(}(`k=-ewuj>t$f`Pcg& z+RX@i?X3~1KR)Ma(h<#DV@k=N^g|-i**-1ewu*K2B09~8o)`M(rSB|={0VZKk>Ft) zZJh-fK0^S@+_wX_<f!Va4Z$VY(_j5cE2>SGQ4pV;cxm><_pa5VM<29Z@M*tYXkz_I z_~)1V>_kF^i<5xfNgt#u<rM=A$5Qd7AN+40j+C8k#vSz3Ken0H_vK7+`yNc}>jU<_ z*4-85i3#<$MfSSCR?Dn!l=Yd#)-;lSsBt-KwOJ~^YYy165+^zmM+|_CIQs2~I%RpG zB(k&J8PB5(5-T;b?x*PQ;?Ri1`n7vM?=`-J870Mka<gGw`+Um-J68t@o~6B-bzOS8 z_($D)2Q>P#^(R69(wXN6V@)|HsL({!r!`dz0XpR5FQ+BG1Ak*ohBQM*U@ss%c?KfD zw-2na$$)i@LkNxC&;y(42zp*EwBM%0lsam4-Ff`?`~%|u7&;F}sNXn_fA1Xb%sYEK zD<jD)WZa!|&dLbcdy@zasT&SwpDin!O2{Vajx$psNs<*MR8&gqem{T1^L(E1d4Jxo zcNJREcLRZFzjV6vJ@02<QMbH*EjR(NMqQF7&(v<a|823MwnV6bV}tMP=?l`0a?{su z|L6x}HsUFY`)1IG60WCZ)dHhV?N+fXkWbyK2!y}usQ$Bcnn|T*`LKlv*d%OXC=1GI z@U>f$l_KqgRimm*!OU8z5BM>|#r^E7Q?;&_Elis2VOca4YoRmHvE<HNBzU|EgL3T` zn4i#X`IrlP6Z>d|M?1xTi3>RS8bfWfrYO7R^;F_ovvoOWZXf;N8UC%i2t_kx@s)R% z#wYj;w~>icELoS;Hnhzthg|rtV)OT>h7%Bh>1KpHng5{exEBZQ(P!prbsH_8hP!_& zU6^{Gl2BN9&bzKinkk1}pDxk&!xsAf@;{r|WkgjE%Mk68LemT2e@Qx--Ub`S_n~Pt z&^g<D?D)6NI-52)&t+-9S2IFGdV!T2RXhD5zELpPC*7}?Q-z3NDL6z)#Sb=@6oOg3 za+>g;=LWu4V&?i;cl*pH#4*>okV39IPfHiSH|RgTbM}h+n0K0>g8842aV{dUMg{;` z*xq$04xhW7oe%nrC7zQ5Vd}%oD>TJ@v;^DhY%T}F6=xRFd#Q6ZMF-7Rwh_8r^7xvD z!aEm@)mUIp6}<grN<wX%3>>z2^4tOc@pwY~Cd&6U!tI!jLGX<o$9LP)l+ZD%h&Tj5 z05;bw@3)FF)UZu+&oavSfGpc_akleq<vi<0ROYjx*CrR|`+sz`W!;ZdF0j7YUVsY> zhYG&drXnNTJ7}(X8q#62@ip*}_}4*7f?$nDZQO<Key`l0-&&GAmfG3@=2qyyv=i>@ zQ7RYM0i!#Cui9L7mCf1crgAgz)=P+vuft{L>F<{_=sZBT@px#ls(!O38L9`NbA?#1 zf+Y{>(6epi8Qcst`qS-QLr+h!Typ^a19`73{451FVIg09%XK0s^ve^`KLtN^zU@F6 ztgm<BP03dVT@e~C^t&F6yH`9^2`1x9j_D#MnE6EBTTz(M=GJ4FD`5t>@rvM&j(MS1 zAK(46<3gUs!HyqJx;|?!>Y3Vva99Tpe_Th$l@xo+2?-3kUwE-m_VV3qOF=-K2#wGw zs<tnt?lU}j=sLAD$Z}M_R~v?T#N(ZuI2*z17K)R<RrGB%Z$<=GgfCPNCL~AempGch zpsCjvc29{jz0#79oG&&V%YM%_o$b1NTG7t#4}Y5IEy?J&v%`5)*V?p?N2OlT#gLh< zN<1ESywkg#Tb9zEBf@yv`DZ=Pb<Z8|i)_QxTzGfp$ccO1{S=9KLjZkOTrRQs3;sAu zx?8ap@=ST6$oc7EWX8bU@j-&&*SjBVza+f*vwWDXf^N3y{;bAyUBCH6R&F+Y7t!OT z8{2W_%*3#bvSMIz(UbHSm^P3P#cENeDR;y%`hhnk#MA`(Dwr36#+BdYHTZU3=6YVr z9V0oTvhQeog1}SvJW9^zBGw*uG1$9H_m>M?VSXBd=KQyXx9gwvF`puoH}laP7P%SC zys*m-H=eTfC13+z?U2fsGCp;U=N_IA-TpOje2&`yiz$jR^|?&&TPv**F8La<Gub&5 z6=SBMCSnml$<a22LfK4WFDY!y3N=41n7Y4m*<$0Z_u8#)AIa3-5#G_x6ZvaJ&se{n zU1xoh)}HTQ$?(wEV{U~L*4%Dn{P>zDpZE$uUW>LAFv@^_-M%iL=y8`S(s{${%ge6T zH;nPv2SQmB{ymXVNwtD0$2Ss0S?M{y{`}5ZQr){UWTY6`LZdyEmdB=CZ_JPlvcIn6 zdQWk0q|R6lxGDL4FX!>!5B$Y1AN+^B^Dl&9_qWK`&B)_0KDsLe;Ym=o9KM3+`yOA` z;CF!mT`m?O>k_$g%`aT>A{-Mj76N##!e5zPmJo6&Aw}_wTz!**FXf06MQAU4xLPtA ztQ33Vr$PwDG2!;S&o5>omk2cU(q*BqL8oy9lo$o0PjPpMUMYtEG{0F6N|I(kS?O&S zlg04cBZL-Z61>{kiy*3__Cu&3@TydaNY+e(*=2z&MiLB!64r-*JRS8XMZ~AugZoOt z<q#cBhQ`P#liEgj)7Yge!pRM<<mX?(om`_d#8N*Bc>6<x^jzJ29Il)%I??_!F&f~E z1g!JNIihJk7ZEqTEhv?TX;mte*npV-M8tNIO-re8G!jUH5@gbX5xd&gZY7ha%u+eT z0+qFl#HurF@c?HuL6c<qB~<`4oj#<Od3zJPB2PwW9aXCEwfB*Kv{K0rNPQ6e&&`<6 zLIAprbn}W*_PDGf;_9=l1b0qY`PD%3_sm^flI(|Qj~K&#WshBOCg%*xZ1bB&d#}h9 ze?U?!9S|qbz<0vSL~cOQA`MhT`PFP1QIBIUK506g=Bplx)#q@FRn#YOaVn9t0G<+S znWl7Mr;Kb;0++b93lyg42s|E3Q|(h`pFwEMBWNWe;`nnhaP9lOmKH~_XF)($2~QG* z;?O`7(<0Hr{CXp;lXR^Ae7=|)6|R-;rk_dp0ZL5>x`~*{4=~Swb}No>AYRvK{9X{n zL<1btz%c__<m;j+H($PS%2QYUST--sYq>Od78e65%gEjm(-w+1zJES#zdl0QfvD;v zl>$Rp<P{{S;Onl!Lz9YOsRqLvsYOLs`UP>Ikw{K4L@=vZBom4Edo6bDDtuR4fB>pW z8<f8eP_42^iBLwWG{W^8I{<D|TErPg;HepXx74Aq|B`OOtEpd_3c2<L`%}?wr%D;Q z=`gJ#s6)|3w~F~|6=rzNmt)Sq^KM92C;8U|i-&p~i>17KQ6?0Mu!RF^V>groGtyp5 zE|GC=8^s?u!phCcJ+z>5I)D(NE9}mp8@oM@G+kh%PzFA@b+g^m&mlt2EkfXqeczf> z&8a+=PB=%O;niPR%+o*+Q=Ye~OnT<{V#zH>7{Xiu5GwQ@hQdZaM(tgN8)}DHx0kvH ztMjPlK^#olwR0AJ)uJTo?%@hLmCu4YIF_AUSsM=wGJ$+23;kFN{U!pou1L-WtEnJE zy=p+dow6lHe{c<k_B+CI47*8Xjd1L|s2T0Laz~*-90t1r1~{S{<{5x%UW#$7K+GNY zPzH3T!zHt-V$h(XKM46){{kR%m24s4TMAzkzuK9GxUJVXpnZhGQ-CJGuis4>-m2u< zcLTQ>kN|VP*V!!`gxc}fg*t1PvZC4!VfF03Lf+gQL*=^egnPXS;rCwX@Sz~qaLBV5 z5nWMP5*jF32VgXJc2qT>d$i{v(bEu2wBjW7t|A(MwE<AgaE*;Su^;^|;!>aa0sL(c z>?%-3DWqEpK<N%VsQZBLZFe+FDg0{lgp~kWf_Ygd0WfQWn6=&1ti7P~8k_vifC~vI zl}caG1$Z?fm}%h7OO^OTFRfRt7@D_nK;Gt@PRUo`r`oaUw1Nl;Dc&}SttRAHtVn`F z%A2vK$_{`H9^)>7C_C0Tn4m^_(5$&%lOtN2iMkJ31+4AU%xK<8;l57b%vse-UFo)w zN9HI#prX&P%gLiFRn#2pi(bCdT8srs$2qh|Oh8o)i!d`#wBPc!yyQeha9*aAP+H^} zd~}&`(w@z(4&ZnlZaI#gj%if5TeUN3vb`Nwu6WV;e1PyM`Us{1nn$Z82;^>?md)j& zYED~}SzFJLAG?*DVij~5Fgn77YPUjr2;?_Gqw={l+KEny{EKKv%b)(XKm8f^;F0#K zp|=3uheb3^RbG21-ZnM-w|*}HXyYZIvKI0m6(08Uy33n^XUFSeCQZ(3HJ^XcOIqv8 z3m<$nIlu)XO2=IayO+E7%a3hetZURHwhV3t@BR%Fi2+)7zxAFOeq^%IBc{~`A?zeW z%^oM~^rrmq;zYNS5I{->yjH>-r1>zfuOLsm58#3Qiz!VWLyHSNf}!=LoPZx&H4Ip6 z4L6KLeBgiY278K<NqP<?-R>g7yguF9UPy}1H!jlmNaD`@S1l!$C|fW=x^NV^_h$el z#RR)`pU5|2{l0f6ja$HU7uY4d0ZcRDwySium?qyVHIVUoDcEf*nmdD0SXn=4e2(s! z%RE*4uvc+}AFcrU(<8DFyqnao4C36&Pzf&`Vq4R8okO#=4U4P|zANbw9-%jMJvcWd zZR~W5<lrsB6YE(nZ#TvG9C|<Vs{C#lK=kxo6TSELc&g2l{wRcbdOx8@aV<v-J^F5^ zX$3w0O(==P7{vUYY}-vEtpXS7i(&;Jy8-}v8xWsJdy#$&6b<lJ(PdKsIYEFMIhv>i z<?)qegLnDPK)B)B;Ap^GU4$7S+duWh2juIY2Qa5ZtXBa}H~{tqxap9bB?R8;DL0(; zOcoF4Wpcpi1U(Makf;{)MS3e2eJqRt*-!^wP63m<Q5%uZwmhd9uFw3}fx!V$E8i)G z9{{Nc-~F0%_a4^vjfnaZLO307{t^c&9^N&JM?~5kmPXA=K2d)=3z~pN?@dQ^a1`5| zinM=m-YG3OQ!KytS%OuXNtOtS&Y^unAcoF?zJCOsoPOcW&`>@NJ^fU~%xf-P=cOR{ zrPB>xi`g3Sw-Yb>MQqzRu*&m(gB<OSci-vgnq5)sK5+YD1T_<F%$}8fzYE9EA^DDG zn)And-_PFs_lhXJAl-o_XZf0U3|n9Ct!x$*6}T$8?)?|$bM3WNhGH@2e$zUu&ZrMB z@W*w5Q2Fn5mGmNbNUueG@pQa0>kX~V!>-k1F>+0+K0PDk1*B8jeNDM6)(i#duwvxh z;Y4sE{U;iXmzZ8lqgkS7Z!9(InH;Jk+q}xAI-eyv)o7jzg$U+}$}{p{_b1=JUH<oW z)i&#n^l}1oNqSw1bow*|1u5piL<`-#Y_7>cxTdw?wesV}%0b1_;SJj>>x*oc<m&r- zMhzjmAqu5ScB@vJ(RHW8dsg^Zt8mt&r_M4$10DPBIU9L76=nvZjn34j#Oj}c=s3SS zw|4C2x{65`rDFXub6y&}N}Cxsw@DaOJ^oo|J^A&j`lEM7%kRE5u9%phS)TcGY5Plt z1W<>RZg;82yHB-n$Tz5g%!Z@MrqiQ1l=midPSfHZ5?3i4(+1&fGr1O|E{4v~XWdUu z+6;g6K5{we`11QgK}VU{1)m3ATxjE8!s>To-<RHdchd?WK3a}8*`j!FCB$u}Jkq~D zyY!5=#lt~&y-r%LPf>s9!@7s@?o?IUBf`h><&SwfYn3hfKS(b?;CG_c5Kh`Qr>}=| zweJ1*xe#SMe1AiPv8qf>s;=DWf3zc*v^8*6Yw^LR=ki8n@~!CA0*~{eF0pjSu#b=K zynFp)XV&D?982Y*_a}scZqDpxTZy(3H)jOV-D{)q`dBNb4IpCy(@oay`JL0!XoAwK z%uioUzI@LXt@HZQD)9Q{p-Nmf!uQS0wgFyw>@%m|jx<7BEc*-B<2|0+!mpP1%JNRM z^dpyADz(q<>VZb}Y_6P<*c1cZgUf!EH~s1^e;P^yV0K?&WLhR>8+>WrQVx=T5BQ-1 zk#qu#E%#`?dt-No)c*U1lKqaclOw!i8{;M)`&tS&yU=2Tda23lsG1`J3HWa2bKpWa za9z1lVIYUBo0gdslPo{*H~kUl^W*j4i)tLitm;SP;~!BgM+l*dkqYyL3lJ;htHCI8 z(Bq$pD?bBdInnS#H1OQ-!98eVtmfS7(%Ep6?Vs8I9nxff8FQZ<X9XOpt$j6>8M1IX z`Kx^8SEbKEk*rxEznQL`mUZ6C+qZw;ef;|?A1CkL?>5;#?XrIYIyf%XZbRDueoaWz ze=7OyKjbEU7l$}<dl!GA@X-nJ8|dhDqs-wH#IyO<^DCnj9zUa&2XFkBy@*8vzzCaA z$&F}xINL}DH&i=+0=z!T4UAQK{ki=4?I1z490}|LSQMY*s;4nPvE^t!$wD4WI0V4N zvD-fX-DLgy_g@YSbdYjL&1KtWBNCHJQAdZGkAGd?Zy`t<hWjLwplQZ?dde2{L1vdq z;^5U(p>1z_fR7;%Mnp4FmJdY>CmvF_e}X@QEv6Q|YV8X>Re*m`#W^oY1Ra|f8|p3s zllVchq-HHE)yBGZtK+SSA90+L{%qN)WLLYiWQct$5gjVwIEZ`@*kOBmg`)FJrE6** zsSj0&0#1r2JSQ0Z5^}^Cg9-}nJU`sP>N=Q<26Z~T-13CleNb@<g&lnM*g}~`aLpOm zNVDrXIanxlISn9fsf>dXSCyyhLcUvAV7_U>8SvH9JMVR6v+KN1E=E{RepSb=nte|2 zT(xwCAiW`=!urSgu*Ujs_lSceGnjm5{ekL<j0^majuAv=+uu-D?Q@u=x+k);nBdo! zJzQGrd%UlI8Tl#4lA8+v?)vik*AcbF^E!Kt1^qFDkVrK#0K;v)&?oY(zSlqF<Z`^v zhu;U6>B;M~Jz^?<-hoYWN_-Tk%<8Po%k{Yt{oq?64Q>q<Q8?Ro>-v|s-=u(H%<6+Y zYv@!~1i?RW&_W>NaI^GwiedO2y#z`wYF!MQTW|S79H=b&eY&<<R68N0ZVWdS1o&3= zU+7th`hzg{_ZZeIx7hg|(J=H#CG3ETYl=LYP7gF5Ddq6>?-dOhh)I`)1!gJaWCldc zeEsq2UDn^re0xcnjcMQ3jg)y}x}`0Q<6p)*LkQVQ+ui{%eVa$+D^sQ$_&5N662Hgs zjP-Cc?!59N*41~SycF1L4-ax0N}cn5MB$my3WZKV@Qq_{`DIyGzdYuAJbKsbqCDIj z9EQ1!tNN*ay-n{G{>n1!lIgKuw?3OB{`>jiKhyCS#ZM25>`i{egoB_+I>0lnuxMEa z<Hr+-x5S1xII;F5STucHMu3V`p#yA4I!LIB!f~qZCchs9ArcM1<$Xce5+93FIsoCR z0=TXcA3}$EGCWU4Z~v0!DqLlNcu*9qO0{|Sm0Tr#0F-`Dh>ed%XB*H=5lS0|*Xa`> zMnu?oDT+XO=&%OIQ-$y|(smqj6k$U5H2z;wfYjzzkp<I_NOHaXvV;!N7n;7wj}#<} z(O6iL5efuD)#ZupH?PAlA#Hun=f@q=j)lTZ_<H39;n(magAgFqi7qGDc8sD4ra=Yh zw^2h77^4x?`A!Z^r2!7)h@*5JCHYrLcz5|csI*X!a)uevcGeLTtV@6j^041VJ5qRS zj5ahf?hp;p{-9|^cVyI@dNRcCR&h98m{)+}t>&9Y6C*d52LQYn42(1oh+D9KhUcP} z3<{A^(Qao`nn9&^ZN>%CVfGXrGHAQJ;KYYs`;=4P)pEp`5(V@Wv=eVl<W(>82mz|g zDLn8_n_7gDpr#N$wS@A16;dtik}o(0y~Xj--5Lb1pb%{uIHEVqQ>JHGpoP&8t}p=3 zTXX7`HWH-m{G7p|4aFtIc_ZY)t&{Myl-DV|dk{JxAV9^-Hvv{&_;dL|$N~;jeUiSK zl_2tL3RbxOg-22Bq5+)KGhNO$o{pK{d-_|2c%P4*5b4YQMi9sJ%Zc&D%5c9Kn3QJb zD3RD)o`koM>NwrOmiH0_{N3u_$I6jbBa&!Iw36<E2F^Y;$Bxo-=?hk!9ch~=@^<+h z6UVNRFjR2vZ%tf*P`%m(s)wYL2Pw`ebx7(MW*zyOgPqupdMOoB_6B7wuhJ@l&>%;% zr=<`;J;)-+Jv43SEh&!cj(}8T!pn!tMUfZ6t|VcxocdHF*0Rl`h^DRUa@8yUY69Vp zlp4T~41ig^mqzbj?xMH*W!N<7ATHm}vE16w4UrE3Pv}t;lhqQbK%~C$1T^$jfE_3P zfu&T;PO>DCD9BLj2H!dn#oM0pCc(Bx`v$=^^Mn-Tm?jB2dqLDGVrmVa{iF-%%|?Sc zWQ9AfGEdr4vul&I|2R2-9&O&b&lCNWi?dJu_5J7HoA1cL^VMy*-JW~Cu6hO_tC-R! z_`nNiLJVL1lK)azCNG9wX;vM2o-PLYRz!5oSk6SWcz7!S|2`Q1xpw0(FO0?wIFbm= z>PUeUN_H|GdX=vVWY%;{QN2)OQd_<OLR};OgKSo`usA2dZo_PWybSG$MNs#su3~?> zC7E7*FQ{c4`6vvS<RIrpABGhqyVLZIR_C92Kko<`geWci2Dxh!J3>AYIc8mrA;}Oa z9;M)gP|3yZ+#mOE8`AKGtu}lMgn2YEkr*pc#^8PMl8wVbnq!~<w*5V?2Sfuf_p9qR zitti(Z|6X+9`iHXi<dubSS43wxWRsXN$|F$>CwfPE^}NPH^14@HzIc`(v@w}`58yi zX*A5X>PxL`)+11h+@{)N11ZmdM`KZxCXUsLdLnPY0kk@7Kx0!IhQc!m7w!~P@X-4W zvS030PF?1$z7&)44EmO9wUr0qxqh{0Rd|@6C3lwtNabB0PJ*7j$Pu<MCih^86tHoV zd*+is+<P|)bU>f`++Kpv;^nv=_fODDRYfDkkfb(0rew@tL*bfJR??9D2)2R*F#`P6 z*9s)Us$<;TG~tYFLXMX|;o7$I?F8oh`S;2`*LK(FDaJ!+gu=%r;8Mafa#cmv2wLCf zRel7%YVfO)1PV~OL2Fhv_+}9RRVeEFCE%wwhgj>Zx>PCyiu?Y%-Rm;ubN1l9pI-J_ zfo$MMEi|QdFWXXy-+V8VwkcaK_X5p+k^lm&L564<QFgmzeK4I$Flt1Yb}K-oWBHO% zXZqgseAS_%>34e+2Dv)v2JNMKa4;vFMK<}`QSz>%<Xkhxx|zw<Dag}_g6f_+BA)Fb zvcRw!38U2U)7sUh`@?F_Gw27%lO*51WSYrA$#K%SA(t-I<w^c|1*nI?qqK2DfLfHK zi8wqosi{4Yf+EnDNvNc@!n=ZL`)`^-X*z@M!pYR6gC-1qO9Ir#NYXcpV*^0;LnQj$ z!+a{(rX26UzaAiZRo>)8Za=9__-%)w+yLDSi`B=-UNQtYeUr+rQE-}_mNw0Ia}Dt7 z44aJ(z33VUl&n``mgU=<4ljQXC4$tUkl07R-yF>h!OK-TjSirXl29$;yIs>A&=X-8 zjk=-aX|1k51L}&<6$j`?R{Kb{O8F}6UR>I+y%4l$Xds!0Q!#`pHdj)7H58<vZ)<Si zDOrkU8>NX4yxRQ5qrt%QSYNH0wl(u|oW;9b$x}$Ounv*KmCZ&Go!E)Bp27-l=p6F} z2y7@KhdtS3+aQy!<{NpWN}WleX`GRwHoqC6?wyHO9CFd6p5B!rJLCjJLUA-<su1<R zo$;f!N|u89NkMzgL37p8e&`f=O9^(EL5(0lNarZ-(&Gb^`EQ4uKf_QXn_6-k&R3nz zK7GrL0?C`YTgo&~ZYy+79J^CD*+U>nU8}R;2nAbpHVI5wjHoeC9i>WpNFKHE4=~tc zHX`b;Knw`Oa)Y%>JMo7^LbC=6lT|P&Tc!U3PzN-9&IGIEt-HE^&DEW7Uz1EI0JGR> zf)sjpy~?^P@IEQDL~Ux~vEsn59p#64jTeoek9S5hn26$Bt2dYUrqmUm6P#M;&6D$S zPfKACeI!^}8(?=O|Ltd5?oPJpGMHQxId>#yiApCA%mYR|kZc_DfHGBWDX5msTId1P zmW<N85O_Kertz^8>H)I)TWgu5V)G-y29LxAJsdshB#}ZK4W&$y!l0oW)=5_}-HMY3 zZTK77<<AO?_P+~Jd<m+r^=)p)WgqUSoOGfFSq;B(nr0sq8J{TPx@#*y#wJ3nmzQ*Y zPqJztu2r0_GI_L?!%S-1xk*3l>D1{wnMCN-@Uz>@akB3%*l)`WB5uwTuKRst?|A*b zksP^g6!Em;d%@@d+!9aI*a>v7bEK9_VP@j^ek(#71}y(|5;Rj#8cIUPNGf7mLez#? zM-oj~NQo*RG_9rd;<}#<)V)gXYNb`&;7uXx2NX6r6mgLUY%(j6htiPdnbG!y2E<Vt ztn9OGS}?kj$-Y)m{?LZM1!>dw<%FrdLx_B)14YcP$fj^j0ru8l{DfCduR3)y4qBF3 ztsF^ph|MNcDnjw>fL#`}+R5&~_sPFNMdM`1hP>j#II+~N(vRvdybqkuA*%RT0(iNm z^49MbLQd#YSBY#*^0gUBXOv)!4r*KN6Zd52)KFBWO3CNUkpj1~KO?CJB{qz|&nPsP zt$qw^X*{ZQ4wf$r_I18H@f>NZ8GnLLQyQwGWI~A8aG`|u$JmaZD|Gx}1C4;3B5}(r zVr`!qQ5*jBH+#(a6fUGm7xsmLPiYg`j;h$X8ScbD1EnZ?mtZgA5#o4M4dxj?n=ECA z-*QTAn@gdpC@s+0Fm-}xC%>>6z83?jv_d6g``tL`&cm5FXQ=dBH`4e7u+T{Z%%TZ_ z3+cm7)vA`1w$W;vhHK7L;z4@`-OO7WYQ(guP%Q%Qp3h)2nVnr^U3AWgsV_N2CG}>3 zOiQ2|G}6O*Q2I-cu{#pq5nxqEAW2s@kk>8WT1M5MDCf#nkgQ%=?t(t*-NX_n>X#<( zd!7I}C<&5VFiHb9?s%%z6Jf7O!VSPp&SW?)TO<D2C0qJsuZO_XDU368h0NDeNNwCS z{p5MHSm#B9yzt|O5+|U{TjS*Eie+BsmrmNz@ire81ZPOvkcTFWkFO~9)>ZW-lKP}i zH%MvG6rqJ>L4ER|(#lAm_+w`x&)rrbNU46W#H;8mS8LBxS1WBdsXJW+YKz;9^8E)0 zH>jMiMvgmmTYZt0%%6BdWi0;aIcM{V7q=j6Qfo_{BeQaVXkz%tqpkzH<gnxCuTz8C z%_4-n$;jm#C*M|Q@1!l2=eY&u7nJUpJ@hnt`0wesV1u|hbVYEFoTic_HP6<y3YJ+V zNsIZ*om$szOV@(0OD_=CUZ^C=<H%p{7aRJMIpO5L{ww#i`t+y!G@gmbxq^+XU^SR$ z8*zNwX3$PO-}idU+u?W0Ke@bqyQ*i>k!Jr+B_3*OeqOxee7^rHrtX}E4qx39=#m~Z z6l+P+e7R1f;<fE%4xXf_tc}~=C5<eSiKDUWQrj6?<k`GmBpgB4rRc!^ZN@LM6poTs zMcPXybrDHYDVu_a;Crj2y{B(ppujFg>j~nN43-!90Q7q3U|r*pL7IG3fotH8t4l8^ z4u-++5`{M)p+uw@80i4^BM1EY>xrxla7~0xBtk<YePInwPz|ayyBH@*g?rdn(1ric z$ng|Z8&ye^z{#<U52jk;-nMj6TSxlu3PX!QDr#l{W_=qCUuRxjaBRA^`KgPP2B%2z zC3R6ruFuxo__)mVk8q?(I=zD_O`D$vg9byBvNYIC^wT_-mtB^FB1lcg>^)bO{53AG zytXzdvmR6u(>+v!rFy+T??*jzvqsqvfQW6^1iRD{aNEk-Lz2gd$4#gvQmfB{dTUI= z@5yY}nru5Rd-1bgtaM>aOi;1M94>KSSQqc|8><E)ouQ!vb`CFmFX`=&;C_}j-(M10 zsIplj(}x$;Bpoqt%9EWgQ0#=(&y~(3Ntq<2?UDD)NjYaT#89M(hTRMiE|WdK)CG{o z`wUS6bY));R%ik$iV6#_Ugv|nzO`&{n9Noddtu^MllCaID>9@j=zR|2Ro3{?40AX} zy1bj^nbRAvAx#xMZgTysWxMypYPXTTS$o&b4-bELCqBE7N_|Kf@27}BZ+s4LN`{{2 zJ)Z_U_kq|h=pfK#fRlc>A+bE%s7l_m1*Q8ENP8ooK3~WaKCUUg72{|s&4iTuEF;B) zB##gC(zx*Avb2)@g;%TVucgQuQ7kg_B3Uom;DaTs?0Zz(@CS#Mz%06&g9g=Q^1ahv z&(0^FxkSenzL>UWx*I7FGmQv?Y-*f<<HL*{v&txKU1s%(e)8Ms<kioV)kWv7z*IOP zhP;)3Gf0$rj^8P0D0TI1X$(d9a5oLVyJx=M8x8r(k#0Qh$BLppU0xPn%@Aq&I(=%7 zt+;4jj*Nci&ykbFsZ9h&>%0#8Wb9A=?jT!0cNYG6wu%GeI1ha<q--W0<Mw;W(FW#h z?yDZOzh~sWDMD?r+;|>d0??ODg6|O;5_Zm*yd}3eR199|mYz!%`^sbIy&naY)=@YT z!<_FK7S)7+^s-Y!`)yi_WmtSZ1w~LTQ<88=#tD9(Ob)Jp%ifwH(Em812jJ1u8nBsT z7xaD>j%&R>ecC{AzY0A4LsEcztoPe{2bpvX?CpLq6<&^zfx4;wOry0xl9vb{tlubR z%@ojtb0G0V92EcD!BW}oy$iIg&Y3E9shd1%QS>Ca==HD(#;r5rL)98-TH5JD-k=7x zxvaPWbn2XQxeM5X`NxoXz0}$JW125y@9nZm_eG8WU;!4OKp$w(mtCEcX$sJl&xMzL zNK!|2QS`##ShT$1d13_SC~|N?TfRwh(+{kq|GL1nftdPQ){dHe={GgBWJ0LIENA?= zl3L-Gip7n6dpm0WQV7e`L>1LQEvbi=*c|-^j?TcJ9{#pi*?45m;{7hai%ZX|KF3Vk zdi@9vB%wZ^iTco@>YbjpwI`gEhD?%bc$1G$($oh_sgO_ZZ6#}d)FvGIkyewC^PrQV zY~wE4+Q=krm88*BiVli=WDn4qX0sqt|M2-}x>8Re|IOscSv1|4`T{kXPFjAIq&4n0 z|MQ>m){SXVsE=%zIW$SW2_$n!K6MppG0mo>0+#Sy*VVk41Bc8g|I4{d(W3rU5M%Sc zNVPz*jXx$S?2#w!w5eF+&6U&NK0PJ<{CUF|`5$GKO&dj)B$B?1Chc-U@nAVQ13&mE z3g@4`w7SOrltnK-<IW~e*c`RUSydMwO5v5##|Q~&R?$gtc{3>$ls!O7Qi_<@b!&(4 zDU=8xfF>?q#yHXiq%z&>doL*;)XX<77IF{B#CB`b^+S&nQI1MCyB3`T1bfXiPc1AW z6_%PryWIa-UwZ1orYO$-%(Z8mEz61fqEovbeMHXVL2zJuA(1d@5&gO(Fu&y8!rd!^ zuF_ZsqO(42HPZP~?!L=0N!i$noj<4dR)^{@q5a^=@-!Wu%96D=GsVJFjg71FB{gwL zr;(~PTK{@W(r=s<Gu7hAs}xzW>zp3Wo%w!}CDvzS>hoY~Uog;V$n^`MUsQ0PF2xI$ zUR&WI2U1cJcB%>RQR@&|$h6E62YDz#Tji>UnEK)QxA6iu_GQzcZgqIR|C~SI&Do_D z?PGQr(__(ki&qu04YrSH7RJ916)e-~)yyL?he2WEka|gk+ifx_a9%}UA_xXyK%^qn zXDFVJ4Tvr-9&eL#;U2=ivmP$04I(9?Zo$qTVvJy60)k;2{Tg@ULf0$v1ec%^^IkV$ zdGnwlx4bIA_mpD|V3dbo^Dr-(DGvP9{StI5?M`lp3#lkK)Fam=FD(309ML%hqy3># z@PUhSg>|IT8*}!yu9<RYc93H0;BQuXK$7wnkSBZabOcXOY%i8Fmysw)l4rD}vSkQl zjV*~05~}Q%uc$;nKqO90Tyc0Xb>TdMZ%S_Lb~}q*WroNhy!Do#GVO{;SCp_APC33d zwj>ikD;W}3K4$IDJ(a%jIpL(M6GzHqH>wGxQAwQUV|%!Nd`$ZKU#)Su45P1}NzGbJ ziAZQJ%8ttjg%yn9`3hBtX?s9{bBhH5Y$~S-46KyUL&Y5zTPn6B{A!lVtXqSB9jZ)Z z(9OAA)Yior%#d^G#6h-3ihacN)Z(ysHv0p-H~*xHXO6$n9p`-ixv)ryO)iwH$o(ME z#^4kV(ff*p?#>O@qDJsY7go%vnF=Q}M^zw<bRi7q;Sr=eaVvtaU2>@bByfYH9!0op zl|8<?n(*Ol!CRQV>+bCy!NLfd80Q%(CRsc=V!BtfLL;F|Fy@}2Rku#!&_l$?buh1A zr$>^xVH`Kx&ev{5x!6#r$KG6A7J<L__3d@n_or^Doaxzq-zaS^@_6rJTG<m*(|-qV z2&ODycCZqH*FFu!mO`w*)yFH4L^UG_Qc(qLQX?R&{g8y`yE5D+uVS!dez{^j0=9iJ zT*T7WS+TLl_CeTjsR4Yk4Hz>JL^<X25V`>XDjB-(<x_s=bEzul;e@B<2XfzBa8aR5 zo_H!>y5@nSx)i#2DYBeg#0ytVhI8+LR)byEUSPK_H=G9nAn}PO&DyiQaKii6%;30* zukLVxkfVf{SVYOM(N#{o<~q+Td3?J>@PQ<ynm0gysQdetF@EYZL=3|~j8CU%F0G!? zo*w^fKYb=c|KxR{u;IALwmhB8>imGK6$m3$D-#>V01h`$ivMczsa`prlZR&|RmdDs z47xG+<M0=r8cTx12gq?0h9JJUm+UFA0Tm*>LvP^6wDCK!0&7VsV@GyqY)3wOEtPlf zC0G{;7NEk-4u%vE8PzDm6RttWvwEKBw0Bf|PE<B}r<!}z^MyHT(?J5OfD&Df&sb_) z0UT2&xAYBQaYMny#8^E*b4EdQprBFl95Cfjmm&<Rb;i0P`i~}HqE#r?6`JG{j&gfN zduwOhl#8&s3)4<psLcGh|EbPoMO%tOn&7<}M6Yu_*=|^<zS~j6RxT#W5#o%noYmEi zVkWndrG%97deOYdsLO9ATQvQN9upn+yz3Qu9vvWTw8x4x?|@>R_BhiHNgntrYNvhl zQ_>#VeKd2N&{gsR?1-!5`562D!g@Z!+-59G(15muzan5#z{yS=8ULEDim(XGH@H}# zzT*oYAWc6hE;EMx-6({nQL+u*7T`n9O`jxn78>{ujx$oa5V|%N97*5Jm}h~(n42M- zw^@ZUu{?iXt_k$?jvBXEgZq!-fsi1O)T*fxxwnkKPCDY_iVHgG7c002!Q}e<F8(em z696MYF;}yiG=?PL;RW(ZY{a{o?bC<uOqbk%F#M0peQ%r&l0{-Z@*Ed9mp)Zslb#I0 z`Al{X8{m@G?|W4Jesk_?%Bv=Xd3b^?xHy|Q4LYw-K{43&!b`uDFS^HNo_o*#SFWF7 z#6Kt@+HSS2uYkmJ>izNXr!Sj7db-F5>WwSx|Ca8+QOaAps0xs>+{xbpXQpyLS^v<i z81q(af0p|;?vf_L*haZXF!yT=HBn$!`a`EdcO5p|GeF9su7i1RoN<|+J02A&zoEc- z9^!N55mklkao$_2itWS}`nn!mnT-qbPyB5f;mF4sVUK}(kEY!Emx2)BpaXbO&bROq zio}D9&e|7pQA;Q41PsDv)h=O8PlV4!&wR$M<vHKtI-pDR>D~};EH$>}OBEB}!_p;v z(-L8zbgwPA=)kGWzchua&+F!+O)9Q-l!wBPpcb)Sxj6Q0#VhYR1Dh`q=bG=xH@){K zc<O39-<v9x_lTFMe)sgjrt24l8^LG4MpImW=>O6W%tv2yq0fI5qRQt|E>+FxS!Q(h zHqV!~I~@WsStYZ`_{wpHza}E^E?u6{ZfAwL{_4c>K7~In3OI6dbmoTkxZtm07H=f- z+jZWJ_*moE{LTB{D!vVT7<9x+&C?;}1pD8{N#l-!3-HcWqUe!b;SOq56L7HGsFqv{ z6`e>4KXk!9R%xJebEC}ZzRn6wi<4AkaH{ZPgQ9KYM-=t_(*2VDdcTLfZAy--=}Vds z51#Guowo76=Pj*al0_A`aRbpBFfA{2VXHgeDlg=;OiHvvV&h3ur>tHfKs6gr_+a|w z+YEOj?awc&SVPC6<fk(Be~(Jcf7}3n**t(K+{U+gRz}C5XYbbqWz!W*_A{|RI@rQC zRQaDsy|t!H^l*NPJ8O!th_>#PGPs6YpF+&L-BxJ5zK>1Ul%CCh{P(@7=~)&+6bdHS z&Fu6XScz44JCQt)HYG3C*!>T(2<2Y35j4EicOU0DAMCiSI~*ysPz=wkNMx{sj*`L9 z9My0JSC|LhRl-w~4rxd+-gm#f<W;rdg(ZqE!LZ~Q_O25QF5Wj5nNL^II1BXxp2C7I zbG|uS$U9>(Gqk{JIrf8+hk%z1(D~LJR=slP4Hr9blNW5~oGe-`D@5qWhSd}I!>}5I zuOa&&@o2`8b%$>n*y)w|{L$6iDGxm@C1;ze?*RF_>FK*)iL0Zcrxs8fj)<vbrdDb( zLN=BvXHNC`Y6%&9z{xLEBPZgIfMoDS&c;#Qux)%IB2^-n<XHTxfY`P(u4xGepO2Bc z_47`KxgsOZ$xnz-RHIs1GjKv;yp6$?ECF_XRS%+H`&iK!hLu|4UDG{+5z>1ZBkT4| z*d_K!6_6bag;ZQ7IXGx&qd<TI7VqH<AwGeSz*9cDIAKdjEucRw0AW0gsjyyqg$2Z3 zpC~gg;pOI{@Nl5m)ETyL#{6q!O{Z-VVi^a)sB;kjHYf<~_U=^>rR!hKyTXN5khc)S z9Ha}dZRDG)JBuZ+Zg#y9_439Dkl>oA<9u}98hMK-+1RBui@D{ePt7IaF9=oT*tTbr z<`C^_pzLMkcUy{7|JvvMXOXsJQZR_T&Dh8w3o9c5DRje*R0ke{R<I?C!<x4(DI#T- z1Z>;xJhnh_7_L-q{2EsxgQw-27tF)r>dxO(a!skXzFGk{^nLlVX11UnF<<M>hg6If z>arBoAg^MX0UlsFTOO9Dt3I;V>8%6AU|l+im*czx6KV9ui?7;pZ<-rS)Cp!@S8Bj! z+dKG`t%OoGa+#;Smjzw0$Gb(%k;e$$hED!bBmbo-g?l?HkeQF}1FG#5g{qhP_VuW? z>>_7~b_G!87i2ya$hCELA_%gBqN3`&kzBH|kRWp=H`nxg6d-TQ#Y7f8zg-PEmmn33 z+C(vff9W@32lCL(f#!P+7NJ4rEUJ8LT|+{P^7ZycflhxnRz0g)sd1{F0GA=&XCDgY z@^h(h?TN2&=L!UU#d!$$S;bYtzgp`1V|nTWu+&u)ZS?{?)J<*8QuA1cfvZI`TD_=V zUjlK%k@;@F3N6Et=wjaIK;gOE!0)w;6L{&xM-S@`2_IdkjG-vBJ^RMMj)>>&P#9w6 zXvxm%*l_u%vtv;b-2DVGC7hzTR5&C~L`qT9Er-Fht0Z1>WZJt!;y8S;Jo0+4#l$m7 zC3zo9^3X-u%y<`y{8?<~uUXz`5REIWUyO1EhmE|zlx^~J*`9I9me1n2Tg7+xmy)lC z06lZoKj;z`Iga#%(pjmM0d9P#MT5c*Vc7NLQ0zd6hdiA?XrRE$LpSQ)l5Zk|gz5}t z7pr|K0t=13PuKmqyi*nfEFj>1FPWOllrHB=s(>Qa#KEeKbOYm!-Q5guk@SS$!!?sk zhs?oDrRvJ{L2>M(7|5-U?=RLd;<kX1&gGpG{^nOfXK`4$6P{&$H46}BT(o$s;@D^3 z<1&1*fz^Z^S?w?^(^c`=NY`gS8F9)XmeQ>~#>XR|=qrmOet?a;h3>iDma$OD_UXhm zGtV}s>yf~n{@`(C>ozo-XDJ{>WE*HQr!&|Tk2LioK?HzjLnI-j2@VuUkq)Oeqcq7! z#D9<?3*~+HXk!8`TENqkDFH<~SAFwn9)U+vll~S$e0I}W%D(p1Ml+nQM$-g=n`uY1 z&PK;bRf$G4ycsw55f-|1(KRz7JWTe{as_UlexuI3ExSPeR)2$3Y^cDk8M#Z~O<WzK zcyR|+FrUT3h2F2mM%SR7RMCf@250Y?OHEw}$F>=L{%!!?WaVFTgq**0|9zAO;X}Ki z0v#lYI&L#JRaZEJTxCWlex6_CSEy<czY+EEa*M|*<nKhwb1yl(%?=FS;-u;JNG4Mj zN9k;?L>YmH9D_cwYed+NWuIMH^2Uax*^OLVx2A3^%Zx3mX()Q`L_ETVrhWLKrW(T1 z;_N-k+z*zG{d*7BS<MCIeJFt?oO7SL=z@K}*z#}rB<p=E>+{L~eq78En#D&kEABtJ z2*0ClYq7@%k?i6#zxoL_;P&Yjr#bZ#4F17f|Bme?=5A&-m!`#88Sde5$chWL_$;$f z{&Vakk*h4i()0L$p^}{yR#NRt*YZcyR2}cP`FtF9<XYHMlKemL-T(Ns5CqW&2w5!w z<^8JeV7z`*bhOf!8Z>9)g~!@sh{z(bI{xt!C*$E73Ml1kiP5%|0QXT%K#G4sI3=qA z89!!GUfT~0CZw8f$V*{6<8MhRI=O#bK5ib?Mh`(hz~cAgHZ&Eh8qq@NpL`IO{Dufu zq?Y26+t69&=2`4NHLYWWkoIF2wUw{5E5FOhCPPZZA&>Jmu1wQKBdcX4v0!d&TPKRp zjN*%C@Zq_4yY3H&aq{c|qD%B2yG;s0jHBD;0<R9gN|EB1J<q8P^eR#AGwK{>2>NO# zCNBaRX3<^FK$L5}bN>+MRKz0$5?DY*iDPZJu=L;%wOEGQH-aRt?wjfiU9RXs@4Scr z6(k^Lr~Bl~?S>D^|LLGOJ5l_)XwmOD&j{TJh#)toP6+i?x3*&2GoHT-zqjOy*2;G8 zk8#0wAF6Tpl!%+}ZX^)Dd#VimNVKqjq@`!^VMT_Yo9JWZ86na6El!1XQqev-rKDQU zY^bb-^AH0bQX_CHp67x0@G~WJ9hJKrPwJgJ9pBkq?HEo`*bq4=>fGNdL?ZKJhb}N! zV_cAEiGC3Un-JTK7)(LVwjWb%?9;_g2AE(W$<Ndk4bp486<25H)`Jc0A|V&r`-ms5 zcy?6;$De-3o&PJYDlo3cDSkcutf?gBoJDt_-Kn7S-Gm^?;x(&13(tFQY!-1gV<#Vs zixqHUI~*9fq)*KNAMHD8&YP$Y7Im`YMv~Mnf8U3<VmBIs`7OkkfCG9S(f8uYeEgaS z!}1B>dOh}1!Z}2N4v%Y_dE%)(IZ~)-xA`83e;mbKXZQ2MYaUjC&b2)t;=i_G4z1Xx z^`OQcLPG25>peZ!|BM1`r*N8X@$*pmUbJLYb+ooc{BM$E9VjaQI1wn2ts=>c_gMEb z;^5KQnnUtqva$sriSOu7cR$8;YANi2Bz74|-`tMCt0DOm1*hJ#-Du6MpVu3E(_8g3 zdU`W*C_ipc@MSs^5N?l)l!!0*!1&XypLa3{|LM~>`)K?Ixv^7)KNKzII^^Q@X>ATS zd^U+6paF6p6F$f1`WO_2^c7t+C=OtXLv{FdTXE57M1jE<a%O%K_EX`$r#@M}6C~jD zJS(-{=fsub6@$tTeU)DfZpUV32|kI_{NXvkx5s{XKE;Jq`lGMrq+#vp{#w)DD7<bJ z;ayo4-0<3JjO(Os-9^L3EB%cG!;IJii%yX)m)}<wP?(IMihPTjr2c!44V%aMn?)ZW z|1x9`LFpkB*+a&C1$~=x2H)OSu{y(WLvZUC!~Ey{?I+K4oPOA0dZyFjVW-`huJaGO ze9m--JnX)BrsvAT9>SU4)Q7z}XZngC_T4UiaGy_(aOMmzM({{A|8s^RI>3-M8ft|! z;<C4t28PYZ@p|W3`;$oB^Rd#OhC>EMbrO)ipGHjwIzOq?bmdOn9GJMBSRA4TG;2)y zT!*UzQx>dneE9<6@)UA|3&fN7<crbs)+>+(kLMBB|J&bYw{iujpRE^c&K4LY!$PM` zjptekKZ6B~t6w(@cpA^{EYUm%Nis&Sj)PtfF<;vMvtUjKTCpp{Ez>Us*Wd=<JRS_x z!Q@Gy;9H3?27!yYva_9w4CVBxR_3&i3X~l+eHSaJyJMj!^Lp6$-RVbzKS7HXE6ZmF zR{q1SmQmV37K_F8HgQY^Pl+dI9&P2^eE9Ak;a3)7MKW>o&*<h!j;;SV1ml{Vt9t5M z)IP45d~W^I4?->HFK;L(*7*Ll${e(e7Rq=85j450H+$2ZXK3|<$#)CWzOqNZ{+SH5 zvOGIkcovhk*9g%yi4fE#m{)nc2~ayibHNt|zqgwH;a)_-L4U^{{~aT2SwjQ|{(=rE z1h#mHf-bsXLlC8JKg8jPPU4i)lWT8FL+kSkN!jlaVVDe2Eq}_3K->Id)&K<pr__#R zN2~|xjtAnCAlziQ<*nQqOxdYosmS(KIsjsq@C}^9j*}rgDVl1oFWygO#uOOgqpKJ+ zJ+;)z$RU&>G4GgxnzKPsq+3VGZ9=z=Jpf8VMo$l=N#v4f$C8{l`o*CEQe{?qGM<;d zHMrtqB#=lXkqCYy#(4tPUPUCa^Gj4pGXuYp*fAv#+?j-@wn-$4CVtwtDp(24a(d<E zf4DxHZ_{t6a!2^HYYi`-5Pp>iy^z6)Rnrs;(I!8?^+aN8@%nC6*<7KduKnK9A%jz% zT}5@=d82lQJt>Y?yEG9Gu6bTO<Z~2Cs!PjiQP~Zrwil^X4bdR3In7EO3vd8Z-mU`5 z6(CX&?5B*Xu>WX+4p<H+dCV}c=+&tjG*+sr3Jq`4BxcMbQFuAN9V?@85%>(S4d=q* z#9Pzb9-|~^4j>h|fEY6nbv!hyMXevIn0r?j-_LvfNjrwDAukUg`0?imN^<X;?TO{A z*sA08f1B+=tV0bhCdo)uXcdz=P@ad`)Fubm8jB99jMEAN>L$1l)42^T5X}fo?ocF# z$i><A;*5=Xtd8QhXOia>A=8c+`{OZBonLuf`}Fda4~f@h!7uH^{6avk?Yz9c6fbPz zK}zUlP$7pw%p_2$hcGALjtPG?|LY&=Qdgzf?lKCjVyR=iHz<mp_9uRy9pzl#O1H}> z(vP>|uN5lBIDg{aAdz4i3%*G&UY?}E8-<A0l#RH~7a65U!CD<N$AeL>b9p~)Gr-r* zGc^_7x?<V;hfhw^#KQPrQV?V_A8}saxs?s=udbtPn*BmR!9#-WcMnSRa9^{7nM94h z_^*Q~7V-Mn4%hsQ7+RNDaG@a@AJq4Gai^8R=dt@>LgUSD$Bc~RN7asz(6C$%6lx<^ zTl<wm6R-AZP({q{^AJMVK+}vWY%9vkNp8)f?mll`{A7*U&_kp?oHq=}SLkV4F4I~5 za^V@MN!Jv&%uApXA;Fh(?2}Ax=Y?cQaaP$RKAd&M>iajsgYmnS0=`L_rw1{Ye#O2# zZUNiMSZh(^{|I8BQwuJ~NcXCEvb%`HES`BO_!2X99C9`5rB`J_XOyvYL=-S<_vYWv zwHzPTuaB)OtUvo-N^|wjZkt}7InmX7U5gBR67lLg_A5X*rRlFjkfd)<)wi;_CaXN* zo?w06?V!j-MngYZ@^PXMA1=gishNG8|K_x=CF`aMWPpHoTmrfr>V66sedo<03hjy> zQZth(vZTIl24A#=A~#mIw_o&^f%Z(q*yvy^TdHlcVk)N}B^T=t9NSCgl@Wponw~yG z(cizqPWa_1)vzUVgE5r`MAIe29z1@m^hMtA3=m)Hi{@EWz8))2XDfmWbEkZk*EmBI za3q&b-pEjr62hDp@MZF*&mc3~szmm|sk<P+*Ce0>gc`mz2lCBfpAnxJZ|^qJB0_E8 zLo2|ZVS8_+$>rnq=9y#Fe?R3F4}RY~NfNgq`0?eJ^ln?d(U>)+Fr%(y;-%@VOwrz? z?=4|8F>FssudHhBw)$x82C~TFp3so33pA8`?o=$?;{>0fDY<^*W{K`XJbSXipBKbS zJy_ONb*C}J#1D8)2fJ7*uMRirx4(sD5=~3tcC8cut%9h$WtVfElEQFsY6gpcLM9PP zZmA#SKOtR?iw18!o8n5P#XH8RXW9q5wHM3R#3x_nK)C6(Ub89ewYenbCW-aKLAX>q zX+JaVB;FVl>Fb^>8;RRKS1sXu=WO9!=dN&aoP_Fi#Ds!v=*ow?qS*f_y6<?Z{yz@j zce$>8FBjLo_u4Dh2+6qiwX$dS778I**B!X_wPj^S8Bvs3h)85)wRDN1QfTR$Za=?& z&!6XU&gbzt=ktC&U*HQIrpTu@X_~UOcR7PGCUMRNd;NX;bm^pJr74H|*>K`z{yI<W zMw{gj4A8z8!Ue>A_CqkM*2Wvu4D`XfF$3A7d2E0zQis2hQt*wJr%SE^5=MN*7Wt!Z zaoESFG!ZfcYys$Q{l`}FMoKSA1>G}Y#`Gtq!2&C`S>v5TszSUXKUOJ2R*5?GH!Y#% zOS#8R{dAnS-jxeW-%wxg1Q6wYLANWt_AZtWzWMRx%BbSKb|Yxfhcl4`w>A%>7rc_& zEOs8ik+uI?uT)zq<n(uDAj+MuT%G5i*?i3FHlH7v4NO3}@5m!ferweWzEU!ak)7>s zUs6O_aDw1<=P5lOx}j%8Wq%jz{TALDx^s4}DRAHw{kwo94J5aKO9l`js1KJ|GawCS zBKX3!HEj5&{epo*=4S4^gFeYr#y#WC#Qv#kPi*23i|a*$<O&2OZ=N0Dbvy6$G+MwW zvGk&;>0v;+yPU!Iyl}#J1R{rh6?<#qRc70HdN0>38kFyo1>OgUt0>+Uyyg_Gs>s`5 z1d3@w@_oCLOCOQZk=!5_;f#Vc{q^I63cAm#x!b*7ELSL<`EVe_iMXSxd4B8Cech>- z7qaQw%MoQhW;xF)6@uL7Dpz{%{pg5})Ku^>=}ip^`V*_&mK)*Nag~ovtfSntC%*DR z1kDocL;-Nfc!W^y5nKV0o`nqM_-F1T_eY1*M%~XwcbZk1|0n?vi*hHjnj?^RI2L_p z<6lHhp0*-wQ(BoIYSmlXA}%#|(!+nS(8C5r2BYfIZlV<?j9&Cu>aRN9p@uK99=K2N z6nTD4QI*uEgvUOWl=%3*a!Xq4_Y?ctn9_G4t2*(E%^Y{SBV1!v-;=eBWJ-gNIdxa` z_iAXZdSZ7W*Pbd7^$7Y^($U{5L?W$1#amIn0qo$j7tXK56QHwpF!d@W&2pX{!2Zsk zKov=ebG?QczV<?=kFlq=JKW_wA9ritdzb2*bx@K|@3j~}Bb2OuZ&8*?d2095wT?Fs zx8IccKx`cqMo2-O{s8pzPbfCQwtrxs2LV!f`RoIPXPcYE25{Od-?_n>ZP}aQKgz~p zGfa}WQD0}6Soru40gKB?@t>0^=RW^b6<>KRUPP2I+jE?bekD<hV6S?4IQ=YzfV&8H zyQC{s^((2(Sp2$!Z0(;nznH&9B~pWwAM9BYMxHCL))-jT9u8beCE&hF9R2iMKpNq} zWE@0V3B&k7WWj%)1ido5{oP~?7!gjn&~}fz>z*eMubm3sU)EL%Cv~!7YJSyU8v%}( zOWm?+wF{q0+t~@elq){du0O9d!vdHC6~Xrb=k0*o7xky|haR)svo-^CnZsy!whG^X zwNtdBxzUTZf2!xU8*ZbWawZbn72A1qnVpL79|g7&&mFgRv3KmVcjGuR^WT|0QbGBa z9CPp{Gi8|mH|G9(_P2;@7DW9p1A4$&m!b<FKK}aN$$wc5%ME1QVQ~EN&f7f#?~bQ4 z_XFUS3?Lc01nRi_A3GC{-Nb=-wok<i!!fz$`u|xO=4O6mJbf4|!->H>@4~`V{J(C# zJN!uG{ttbwr}fgIurg$FEC@QYQEkT&)-4cuAP^nBJ#||Ng-Oci;dOx`T#a^auyHB- zJ513HG<d!Qe!>bwa?fo(SHmVrvD!llmBitAK(~9Ry}=4Pt}l?GIoBY*N5o;1w!Y*( zGwR(@I%&sgPYs5PjR4?)_i$`d)Yr>fIm9og#u`%L_e>D5x7=zdL&N|@A`b@uehy_0 zH2h-s4^Fjz>L#PF|3Si;%mzbCs>kqN?v~U$lr&V6dKxS^>wk3z_vJeW`|ymOhdmcC zkny>YH)H_|{qPO_QOVP6aX#{ul7GOnFS@n%_>w7~0eb@{tNP&J_eCaB^e{#$FOk<; zhPP@#NuTvS_N#baw7$R%#n?`CZsx>10&~2F)t|xgU`J>CgBxy-=RQJS=K<t*p_wvJ zF8|1#sF=@t{LY8Eu`)8BVBRKbxL=ao8au$l0=9~;x|?{6I38B!OM<AYN%L`7sKK}y zYRZcZsSA^*Ko1l;4;OJ|5R>mj-|5$>(=uOqC7rAQ51PM8wb+AvL)S(Cq2HKX&SP0q z$_5pZu!LeQuDe>qyIM)=stZ`|Q{U9G*m)%0d*KN0;GhL15D!=6Clh~m!yAgwy0Zj? z|7S%SyiW5QH!pP3{qa}=H+!H$rd`n?Hn~t~Y*%SLy;bwQ;2Sl}-vWN3W0ujK-Al)J zKFS>GR$SKjY$h-JO&~gxxRxflybaVm*$JlsW9}-!!G8g0;8B-SR3;a^<kTO3W1$Yb zp@zwaOey)9PWF!b%nV>Ch0FTJ0RH)Plq%l(y|8?{XwICBGhN1k^*qC0ot*Lgy?l<h z6kJC76vnUdb->*CNozJS{k%ZTjj1Quxw1m_4m}LXF608l*vOCzo5#%r=x>gYU&`Lo zHtF|#tb_48kyw;8cMs0l?CE^IRCH@xp+t#k#wLPrdTHTU#DlSz{o;g;&vkm%V-^do z|As^g@blpo#>l7aOuFX-sho=9X-0dt7LwZ^G@Afp>XNA%Mq$K7PE4GW#c~Qk?Pxw1 z%SdAru8YCJZs+HfQt?0qS*#E8!<aQbCJf-c`3i}zXK<X7NP{)`8@rfeA{5Cm3hYML zs-{#|;&jkq1ltN8W|#Tt<;4<C-?Pc51qvsE#7kgNAuy@ZZ{pH2!hp*-+BtBYa_5f_ z%cvOMu1?rHVi~kPCdv**_SKc`MazB8qSa}jM#!*OdCgv3rYXm4UF5}hRxAEG+G4NK z%$;X)QWr;TfKnHA)vaN|=s0Ly$}tjiDqrbjyYOg6PhbSN-V0C$*}mTjs`}97y_2qc zfWFfb{50PP*X#7?w&zo9Ail-mV8THQ65_mRE~`ll@5&Fkb}wuqNB%{goI3fO>6Y$> z>ghMluzwV5Q>iK>>)D#nxW~noPW~y(u*l7sYvU6bizv&XA8yckL-}z)7qoi3Irw&{ zWv!Gq#!%-P)MLCE0JU;d90%wllh;-hTa0a3aI~$TSuZ8SoVTLgmEg2^m>&|*>U0X| zEKQVa_hl=+A7c^j!fN$5=%{__f`06^uIFK43n7zOCLDF&eP6?Sq|@lFi;X7LipxJr zXE~0fm2f#-s&GFh{MW!r{>O`PeKF4XY!kCe_OdnklZdR(PE4^0+05U36XX{mza?L@ z5IHLY7k9lZf`jX**l*^>1(yRh0T$srd&J}Bcnr|wd;A=#-oYy*j$<!<UL#4M*yzPi zk=;Nz_E%`O3i=&B(J&~*cx6-PKKCHVW>p3jbHR~kCibg~v=c|Nx>4_c&Iu3a0(q~< zYev02<iVnT*>m~F`b?>j(W=lV(sTacJb}an2WnhGW?mLYz%SsE20$2ZC{z#RC9VMu zFJ6tb3<r-Nv-_54+OoOHnWIUG#?GGFv0UOO+BF0X_}O8(BJ;Ik1mIr=O!#GfuL4jh zd!;alZN)ri#y__z1b|`~v-;_#YZo7_Tr%CtAT|MmD*&m#2(Ixir<SlKcpq4ru{wfx zt?mlFuQ?_Qpu3g!P8-PSTXKQu$~Gc9cc)$dACmt`!?<N1*?AnOy8`Soqg1hkeESJm zz{*~AJNDI*T>NEm3MARhXY<#YAY7M{fw$2+LOrDBO-7a#p1H;YNj3bTv4UqS8EM<3 zoKStG@h)zgQ%W#|>Wc(Cd!8{5h0S9(H>{y*Fc|Jq3Jaa8esson@EWnQUML?GNc_p8 zHb;SXT&oegW|cQ75Ax#@FV1_H#>T8<RL)_ma@6Tf?uG-~W!6{a*L>OJrtz^EsedCB zO0WI7a22W8^dY+f#P_X!U@RqU^8@rZpJ`x9>B_j;K(m)l6VAir?m_cYXxb=;%V}3> z@k&ERo1%I{T-bm6nmWXi?zUxap#%j18;SZW?E=qtAj-*Ft<8zI5dNx&5-udD?ECLO z5d;8)L3(*{wsqh}z`&rK(n@@yp>BS8cq3*qaX;ffG?e?)+n=pTLQZQs;ooAEw#u|8 zE<@hxbQS*&mme><3qQ%~rF=PRhloT7pBbW+YAxuX*#hBYh8A%zasAfqZu?W6+vS(O zHXb=u&dE_bh#E<A*js0kdgCgXU3V8HO@l9GFn|JeG0By^l!+UclsgJdLk@-SSIykz z@Q><>*Jqx_0zV}+Qf^dyh;$a|tFH?2I!_~ta9EgoLh1$@&$|96w3_h8tt4Tv(Yg;q z^8F3I%$X<;-8Ci-N*B=XUjd#U+CHl`YkLt_3>5c;xvUDDf9wDr0sc&S5G|e5^JnnE zD>seSdur!L26Kiuk_;HG8o!H-+|~kV{!O!+6++36&WNs}Mm?^t8T$2&oUJwl0lDpT zhacr2?2c2wL*wSoefIo>A7Cr@K07&+m{)%uDYSnw;eSjb>Q1F6Ph|~FNt*P1czJua zA@=)=i-%UyN}{}ru-MGA5AvAD)7`pHdy}8`4_W?`4<T0TCwRsfR2Yrj9Tw~Fd9v9* zI5hj_cy>egS@X+L`9Hc$=g`w+BTLk*{XlD>;!L^`o4^PFng)<Edbq8-z@M@pG`wJ5 zv7?5KYZX=2Bw9RC#>Q#7UQrd~vALk6QLRLGCDctVSPU=O{9UqtGe~fg{(Pfv?$MJ^ z0a4Tgbc3g<LrBj*k9oRM%8#aNj(=B4dTZ$^Yl9g>yFGGm?kYk{ZRDGPzeQ2~i_d|> zMZ9iiQ8jDbdars@UiA;-r_Q?F{i7c&+CN7=_oQQ`Jcc;Q^jvlJFXlwUV3n}PE)#>p z>w9l3kL$RYjCBl&=OrG&JQBPA<W;{o3z(x;pUH1~z2?em9mzFa!r#}JGFdA4!DfdP zmp>lrkA@yIl#cN4PCwvcK0=H$U@^W>HF35ZFA*0R5KnK`kAHc5N4D)pIF!~?`|!|M zan^h^k@KET1vFLmezX3|&<aDZxq^F&FLy83ie{>?OD=K8@w{`I`uo14*3e^p`#eB7 ze`MPh&muZ%@Yt7SX#LY=-&_54pKTc&12xd4RGv=n)CByVtuM<Mei>6kQEUQCT|4{f zb>PF-j-}!=b@9y|k&!xHl5obvy9Wn<jS<u9?}@Wxh^h7MoDqYgv@c%btW7h?G25I8 z=<ip3S&goLzluM6I>y|4%7hNoe6fFf@C3_gd7U*k=*wvz9%0?D#rpPC{Pm>0$KSA% z^~w7@M!os_8?Na=e#GCGw>hT85zjU`r^SE$k^D5A%HoTMI*DW8qddoTJdh3a(a4{_ z00xoE2tH--_b(nkR;z@p=NWp)!;Ss>=%3-#L!KE4-t~Wf&N9)wKqj!EU_?KaojnF3 zf6|r2DWa1MTfh|YAr(EE5QP}-9NC1xW7q=Eb#g9J;ZSm(XR1_5f?Z+Fe1429XQgJs zRxD#!4Pkj{-5T0rnXd6y>OvM$e(t(#G*OLnTD@7~nnjyOdJp+sMH@osz*DYO*10n< zYs@K7E#$GjPd;;NYP6a2x;a<X=FBdupP7ki$PJV8_u5@66EO$PyLN$wBP5ZNzikWM z%cF9mi=u7x98Q#?om&a!OwY~&CkH^AD-Aeh2(ufM>1w(KUj_JI4l?<JHvxB65pkl( zx?jdDo!9W5j6~S(_Dt1TBDdba_uZwo^AGd&218N&kv%>3h{rK=Navj_*l+3)HA^YO zJ%J)=j?^5(U6gx_4fuk*6q-3sOJYwkTxa_whLJE=Uc)~o@<|gAW{SI`2#LnuehWhE z7}N`*n$wn#QL>wpnXx<`=9fjh=H4@(h2%ew$l$*TW6MOUmO!#)>j00qg_)D{f&$(9 z#esotOpTRH1oIco)LX8^$FxFuoRxUkyWeOOu#*7d(4g9*jCGxs$VT~2B_P3n{eFca z?7R42V>O5GQYXgt6{Gkdx9^!ombCz3ljPWy`kD-xAmIxfT~yJ?79wT@>cBI9&&(av z7d&!tOm#dhoSpMSWh8fRM&+f<+UyIrZgoyyXzP5yuIP$%DcLrsxqW8|%XXuhnC*73 zKI!BiZm~=D{BknmY4@>(UWy48WORW&VwW-|9U#UcFQhkw*w+OTjJT9{NnlPLw*<e8 z6@kh(*XQyH;l>PcE25;7XIHBo`_^ddn`+s>uz*^Q?Su}l6miQ8E;S?x7G`d_8)C}K zyzpV`4qR(%V(9P<Zl!Fsv&-2yz`-flD8zwkRP&<Sec>wGsKuRX{>fX22djJT3#0Vo zGsb4Wysg!5W!2u3v*Omy76wzgmH?5_C8i_cm1QsCB0VgdC)53{SugEC^-!+(HU9#e z_!q&~^*j*#9rHzWxwo?J5(1}b-lnP*Qoh}*{v29T_6|KhSN@q=*>|!b+!jbl*Xf{v z_{Frtar}QAU9)@ar?6Qv;#T79KX``%a`+FbY94ApbKh;sh35RU<Z;w+;pES1d-Ejr zLRO$L-G_tXEl&LE6>cPX-A+yF-u1d0@k)+cYEn2pmCL3Il)RSOepwA;Q<70^hAA`u zzW1AX0CJXBgcZ$&2UxZ*-3)gtmSzGRuLmm_e`x%PUzsqB)wp1k#xnw7k4l3m)dA0M z!USs=Fy*U2TA8|Hb{$6Y42);JsTr<&)0c&6X~&VhMbrwG9(SiaTJGV!Pfv@+uzBLg z5EtqEImz>OgJ(%wClCd-?wK*qjOP%l0gr4-qlk+7BQmu|`Ma%1O^@=?OQm$yH=!5@ z2$Cz*4lFc2k5vTJ1AVTLr7SoJ>KvGP-ovvc%Aa8x073Sm^2cIbI5zVUAjf-kWIE^V zgh`^+`t<)z%r{NBzUnK;OOIvK0}HTvIRp`<u>r8AdGc0x7B4hSpOu-`L~JD)yW_Gd zK{GsnALnVjo+nZ1NG`0&eu<P1+f%pcn6jQ^?q_m`!?`B=5DU@SQ_mTSgYsKh{HmTt zoL4~uQYP>)1{oy3S(tu2i=X|7>9I~A_JQO(vFKRpt6-Bys>0bZpV-BC<Tu469Gbk@ z>=|4Jhj)#Q$XVLQetAl)SqkqFas+@Y9}nzthV+*0*Y;-zP68R9u0`Z%4i%tB91%!2 zxx9X=iBRpX`3Bo!0-|O;uIvi=z25Bv6HMUzt<0M9wfGR-r!az~`_spEF=~cHSbn2^ zX(4+4Mu|(k%?&hGzgA((p)HWMaxS1cQ-kE78hOj{I{R`fJF_ce1oULzVWir}!L9=T z<h+qxBHs)5rmMja&(nXt6>9dKtoSjU8|Uy!gyiB%c2%<J5R7fUrp`6qftQ^<TP)@y z{Q7EixzSeeTyj>i^a0Y%=-v_0HnXlCrURp>nFb8R=xAaR-?SJpoDp*Z@LYdShrQ_v zvl)$_?wr4$gD{1U^|T?m?djv<vw?-V`c0g=Yrr?jY*XctJxz-uB5oaxi``0xkUZ*? zRr56e!Oiyyq|g%Ea%ka;zTgy3AxI<~XIU>3=+L^5XaDdg+zkFh147)FihaxR_GtRb zgISD>>G((y#D#jhY2m_~t~kT&aeiL@_NgGjP1x!eJhKu@rGgiP3m@OZ*VQ9jHjqVj z$dw<R+}*diBsMeEq&A>hc(SKx1FKp|J*Pr&w2)jo>{LlOi}DC5l+VF<#0WdC?4l~< z!8wyzJvw<c_7O*z9g&Lr4ji`|k{#>{aEq%=tNFGh?y#8!S{Rm-eB@~R7W6I?RKtD! zzhnYGrJSxwt<N{z9}|)rqHDG%Oy~vYV(C#7!FC4A8M;Mw%IkL$PX(mH_CY+MXt0<R zaFzoY&>OFLR?TI+;Q2VG@ui`6AU|pYk3IU8K+O4KQ>Xh}L_-;_m%=FefJL9GNMLkv z15G1&WB%;Ekuc-<g}^Ufg!dYdi(#~#F4w@t^d2$frgvQc@vS7t>yx=I(y4q}RD?nB zf$cLps_+s6=0DPF<aF!qw&pL)T=Q4UV9T=8X^W?yrw|m2jmxy>p)EXYAB{nVBEJ;2 zT6?pm;G)t*$WUbx1ESJ5TA#hG@^uAk<;_i?a29@lt&Ab<D@f%(rJI|5mwnDDN|m@{ z6`TLQBf92O%IE3XOeBnz%MhZb978b=*Dy2`FlHUyr3>G9j(PsN&{XCN9TYji<FdI- z;={VhKINOPpg=<Z^`3ct$K<w$zG0x?qF%m<x`qYuZN1U-XL`%0cut<OIRwMy5xcZh zz_(~Vo`E35Ar2=QA~(Rv`Z_enuA=TA^Gxf6Z%7en`God!07eY|q8k)0-IIGKSxFeC zbAG#^f#%<hD!k}G@6t1T;!i`$isJ@PS7QPbWK8|%ae<m9Jn^@uICXO{hf4iioXrIG z{Z~Z#mcrsR0vM*kvks3fmWB`ceKbC|TX`HE#MN^%&^X)HfVMvf{9tP1K>8>Lga8Le zzCQT%kSFy{Z<?-7s0G)3^GXe)W6VQ#oaaVBVWUdZPT}VxcU#;MQij0rJmdXDgp*Cq z9FY*@H}wb};F~Dg4eDJCqC?o+WhF+TVMK>jc$ky~URH%)6`E?7B%pe+BE%L{5%hsd z%q%tLs1G9;#<2t45eK@VC)1w(H{5UXdGOe$ZHK6Zm80eB)ai8;em_jnB;rFiSSKcq zV}oT<?MhS26@)RO=d#Uh7Z+K)pKXXWcQnML2SkRS=jk?8V!a@;Y>w#m<UarrOSD`_ zOBd7&uOjTFJr_Yw%52A|vfm1=R9e%r>k@+-G<6QmB4AW_1={K;GK;F$`N3fgnMy|| z2advyp@4?(aBIBCUNFBEUSx?CF>h`OA5CsW08Ga&t^R^Xba{6o09^a}IaApkJK48k zVuKJzp#xR{gxXVkU!-a%f*4}xm2T+6PlRKr3IRmPKpSpSCXy89X`lA5#g9@N!yk(H z(-f`d6o0w`Zc1QY&aPAa^c{W%iV&DWpr+vWc0Aa|&UxLBSVjb$TMf)MMeMNhDz2St zG|u>w>2C8r&R!!A9*sy;mk{iOp9Wwg7xH8o@j6B{u0m+^DoBfn27immVK?+RcjWhv z<iXzTkSmZ+yPqg<kd%8rBLId_MoUPdgiBj8=HFeof0sAkw+JY7MR7mW0RmPiMHfj@ zDG8qSnb^Mj0rVx3=!QEZxKIM6hn>vM+o9RN6E@t3AHEl6!wY=P5T5SNs&crrfA7)` zKVm#nA5fRoMIe?1g_VW;M!cLVQX~Z(3!?NslnG8ck2cU^eg_JLAhfm9#a+qpLaHdq zxxp|7#e}A%5D<~+P!=N^PRQQZUoFqsj->)BWG1dW50b@_7@?G;k!y(~tXpGAhUPLV zSi#5<7RH@~Yb<&1o5c2LZtF0UoQX1obDVi!W%()*_3<dsx4h&w3)}LVw0~D%E*)x` zd4=tuQg(#ZnF>;lGKcjCRLj>S;Zl*^^p0N5!Yx>6m#K3p92iunBO_*mO)tG+GO)&5 z{TNQ+4fDTae`(vE^B`s>J%hh6;*8z3VWI1A1WpkTRl~qS;KdTMrgC(C92}ZR_m3A0 zB<7CT$un3Y_gN!Hl-K>$lSUBcU99;duta)JuB06^#$1jL2_0b#nNRa|qv20F5QR2i zjF|MdlO?-mA~(OoHRFWe$MNelmvZ}Ef*)L}?}0bMcyspw+La=0v@)ydCY%3Ka_jJP z*CPIIUw%!f-w4ZUXxb>m_ko-*2hg5~#1O}&<0ekbR|q28F3G`CU^c-hxY<1@3VK-w zO0bLl=VTglR3p2S8iqcLE*8AL9jPr-C4os>&ms%>iE9B*Rn%8mxw@@<j}0v&D=)b9 z3L%K-LRH#j%lqzEmkYS-9s0C%<+^h4-KNe1wd<G7mF=K^dRW;*q*udajEJjnbb5GL z&z1BGVq3dKnXU+=0Pg7yJZvjCcA6zD1niBxAbL6s(arizEhn$OsQn(ZEHDxDXBUnV z7Vo<OJ52>yIGJ)ZDJ6`#5-kuaIO!C-q+gR(T&k{^O_h%e6rK|*uR?urk|06qJi7?; z+-LExi+Zow7`UL(X)n)B9L<9GcJ+*=u)k`2p3(H<(IwAfL@pfi>Af%*E`RQ0w*<$X zucaPJ_7{r|Vi6NQ!&)K3Td-v_=pU+Vz{ln^BjmCRv^*WEWCndcPzz3kv<jf~%FI*u z0~F$Y^{*D4?Mi)2Kqy!y@Yk1rDd*RPmv<~HZ@z$MWVNybPx0L(y2lVAl{E#D?Rp-T ziiOSl7dF9Se_pp=l{N?5k5;^Ij*||w3gJ)<35vSKZI~q2*g<9%-Vb;cP%C(ga})*^ zc3@KtR4{W%T*^_t3Oe}=Py&KuSP_FueQfo0?Ce@ZyL;)RdkT;5F4y}9*g+d70~B0P zUS{o!2})XM5>bZOlBXHMKLHPc8{cnHRCa;pVg^Iss}P^U^O{@GFq`}Rz04x;<W^e$ zB!bO8$Eh-*N2o;n2|UbIip=m2+~<pA1T>x<VyozT<J#p3WbFZ-JcwQ`2VEAUS(=rl zPJ9T~B;oHa-4^wb>I7jHyI#zvhyOT6LhgFHJ%ztqt0p!c#41HW0&vp#h`We-e2yS0 zi4Ik35hHL^m`6c>MeB<GwmBq}i&r2k`*}gIG0#CwCORaiOX>l<sGqcP@}5A!=f#FB zkdWVf$CktNB#`|euZw?`cyLv>Mmxs>t9IJB7JZx$5wKZ-KD+P#bQBgj57qD#8y)1` zjUFS8pbCyF+`dgZyWHt5NLLB9>*HLY^LGb6xkjX;sf~idG#u1CtxrWaYWpca;bSs; zz1PYl|JzbTwVXFc^n*^4mx%|zNm>(t{s8!Ss(|x}Z)2sYa5GHw$}8xDz=ILEJvx9> zA61Q31Vr104F1ekivymD8se4W<jwq8U_+dQi^~iFmd4opCxK0_KDdxLk4)YP-oFY& zW)X<%7=af>FdV?4fS%id6|!BnXlaQ=26G%v2I1u`+&FplIS_8|C#H|!8Q;SMy5j~Y zDu3A#KlwYCtq=|hv};O=5#O!vTl<`|&}bOVa@vJorwLaE@>^{SAB#R*C`U9AV}z%# zJaj?8z9$RY@;%|&o9Bs?JtzS^&6Ti`6PA4?hK%H|`V8MgR6>xr+9#|jb*v$9=!Z~k zavxZCWKnr`aY{p)rSJ0l$u@*v#d%J)?BDRzUzWW}5))_f@3Ph4V>goRpvvRmGj`xP zwwrW%wJ|5+uCSl1JlK4G@NOVcQVyS|gPoO9TTJO<4Mjs$w4On!v!^`D?^m65h9Dk2 z(iHfa$<u9oVfP80e*R-JD0mQlhp8?6?TPOCmF$3B)OU^(^%36E+GsJ_*jm`NCi@UU z%4)?J(4*#E{7!cs7{EJTRL#DaT_7tV3T+9(s!Abot+(>KGkFTD)%A$@*<9B|xJe4g zEa{#5CDS&E?z6;YUYVIE{L!y;l`YsI;LAEKF$yi?krN$~OG^>6?Deb$6=?3l>buAA z((oD~;G515y-=s|XEh*^o|6KdQ(j!uEK=W>*E%6@_!W=gVV`GNUas(uf-(wM{#(U( zh$7A}DHhMblf{H*bBV;DdFaLYhx?`?fIU<-1dufg|HJ{{%#&;Vjv#aL3X6!)h8jD& zCu?Rm#J+5xfz^kc{k#=LOwq#E1&G|eNQ7OACJ@{+(m$kqRk_wVZFZP9d6L)T&-CgZ zd?W?WPJMo7$!)0`OsUM3<DL0R=zlPKoAn8y<CRXH^qfOyEinfB`gYTL*z`L0#`-he z%qzQn$Wcx4zinLI#&i<MuoM5MW9!+Qq5Ojef$p9+AH1H(3Lj_8aU)(FIr9IPEL?U3 zM=}vP!;F%>(y}~xiO!vzXFKeLIdN~`EVmZ&7iO@v$eVlczXNZ8NE~?3G@{YLZ$BUa z2W|Ae*TijfiI~2A#`QTIleSgSs=E%?zli^WbaoyG6Y4$@Mp#0-a%bHAeQ?kaI&@a) z&B`lYhrftiJE(RY69fl+0!z`PE~*4LZ*LvvvXpF}d;xO4D2VtAzi9K;VGRzF!(}wR zpPPQ0^!I(<L2S$46o*}d28<Vc6h_c_L0Hf?<@atQ7G6T>3-v7QfNl3HXY;n0i1V?p z8i8h)&k0nl!>v22S&_Ko^7w3kgTN3kOW((})IvqSiiKLZ&YO3U+9&t7q&M)9&_V3! zx`WH5C{9=YmAxt@!ya9`q)B=F^T_9%tLZT{8LT~f3cuQU3e7@+U%34$A_88)59-^_ zygjQ-L|d%B-K)JI;P>v$hq+WyVZyCsp6;(Le%%s4Q4tPaG86IX6`(YQpWTbW!t*QI zr!4qCgqQd92-6wCJ;y%<=~4I*R%8!_TilP|JmD;~?=Px3NADvS4qOH$AwzJ?+gEp< z!F$9}xU}CD*MF?q-+YdMl8Kx13+_r7YC;_G=J3sFgPASo4H)p<BhmuvwSwPeOwmcc ztsq!?-`01-uPE;*Q%~IPqUv|<1KHa?=dMHFZq$ysMdwmo(QK+V_^RrQcfMToM&ub_ zV)T8&y8u_Y5mYXKr7$XeW(|S)+M)`$#KXp&Un+FaD6#PY7-c{Rl5Yh*j4Al{yP%Bd zzg(_(u(Jq+C!XWfU4SkcQrY-V1;W@^NBOu|hSMsVHcWF_ui~v2WZ#+7F$MV8B|C(P z0IMUMiR5$GupmRduuX>a$JUaN08c8dsa}%i9ZdcXKA=|BTV!^MCOGasr)b(?$sVN` zURtW>MNwFzA6F4a4)0Q>26PllbasW8_?2#;8l~Sniv%L%jZNfYjmTDX+ehZ%Y-*KB z^M#x=Wtd?6+4wp;x~FXyeGm>c6k+Y=9g@2`VK@$Ul=GLH+A$<S7Br4Qs)#0ih<!;| zMPi-x<BRCc;McEyS(_QL1JL?%@1iyVpuj+C+N?F?Nh#42Ej9u!4=1+sxK%HteU~}) z@VxDV@sH?T*3{b}Z`c1O9UW}XwfMYcrX2tNFe#JpxEVVPWvA%BI!AbPUj*&n%EcUo z8r8RtE#f{>?|nB8l_C=Y<P6DCfV?_>1*=vrA<I|=j9I+nts6I@UbfW(Y_&IA>XMDY zSfoi0ocG2#ZTklg(1*k*bAqM_Y^(sMi($$5PE*Bp-*NbOhZGz^;}E{{y1pKI|GSL^ zdzP*oCoOQ^4#UlAsW`>Q^oPv|B)%JyL$*sTcJrbC(5%Vdt!cTn8jf9<Ck|v2H6fwt z4Gn_t$83z5a3C+QZdka(#CmLwh4nce_VEEU?ms6T7PS*km<Zg2g|U6IoR#A~Tmgi^ zLG66lrUM#>iWGLrDxWQvy3>i-D+;J{3@mnzcMq<L`{^FqXu~^x?MN5MOjm!WxIeNk zjwQfN;0KaiDgviJ=BUW(VqP6*!xS;*)37|W)l<4nrXS{aV<&0IdTN2}(i0|gh4m$y z8TqpltW}?wQdL|hMBh{O|8Ho*enzT^(}I)MXGh=>$W4^8e0an92#a_3*x{sk9Og}s zbl;aulRWx9p$&W={8Z6=BdR(}O7^$TkhP^bTI&|<1ccqF@*a>f6*lqXOn+uaszX9f zLJLMW)0?;&vv<xRF0<+(8$>cp1K0WHn~~Umr``}X9IcycY=OI=w0Bt6c1KVnv`7-a zk{jClrN7|6XI1+-P{VWk$tu(QX<ml@CIBBG?sh#Z0FOSTHdrygxC~lp{f%96bWMp{ z;Rv_eC<qmgc>sDB%o!S&H?W~4wq&YifU_yVWI!>8g1lWY|Ir-H@B5n>;^31Rg^y>> zRS*+D|8Se)5KoY6pnYL6_G9@v%KEQUb;$K0tnvw~&)>cPsu(6i;#<dOzQFfAlM?Tq zU&UdCb|DWR!6b6AU==!vqfZ281R?328kZxjNmAzEWa^Krw+(SS-mF&{2*MT%R&$>$ zay*|wK0^q9ATNF?9-^u9Bn>)oSHcGkB7%ixe4*oxuIZ>pD)~|Dw*BhU;@o3uw3#%H zAO_h9tyb6J)u!%k?9F)@4jyh#i-ct%E%VVCxP5e@KC|5^@}mn1wSFV+Qy4jp6AsHj zDxLuX-WX=!#XoyCv4OkJfyM)B0LLAesEX>Cp8`db_7`QcC3(6~G3J{`-56qI3HRno zf`xUkLvhtsplnEtBsmQ(1$DAX**EFEh=?{i<5tiMYXGT|EHwKmBpMU0hc!a*CfPL~ z2&hrK&%sKEIf5s-u?E7Y+qLkzq@Owy5C4Njp;bmI9-B0D0(t>iT)O_Mw&)%z?rz0v zvdQ$02IiG2)c1^0nNrpc(O8q^GK*s147bdZ!Cy|*3Nu~WgwyUL?6pWtts#s^tI#Kr z@082In*)La9`~yTS4AE+IbV<#14ev7Q{YS^Kzs3I#yF{91%U^1XVFhX@|$k4TcB|t z9#4x&adYnTBZAfXD^ejY4;Dj><gQgiM(i<G`>ovyiB3&2&NqoxK^Kx2A@gBeTk1b7 z5QYh9bqzPIsy_Qswe9;Que`s=GGI-UC@MdTq?eXY=&l>4?aq?wc<m=jgw%u_9_s$M zaf{nhKx3EhbYr_r+6p8~@<P!v|GuG-CuQ8kne7~vre3i{H9_5(M%+=8$&;-^-C67+ zKb2`$JJ4+j?Xx3J-Z}!Z*lvEPVd%g)Qi0{#mSh@4+w`W42~W}9>I+nkaOKS$C_$m| z_0pOM&c693#?RRPO$7j~t#t;3-(wmw_8kr(b%6O<QGn=fkqp6A2a?vAQ2acto)Ih8 zav{*zM79R1L^?@|8^z%+RByj`efVel5>b^6SDxNvNTk=;7Tow*Ifk>-P^mNIz4*A+ zVCXc<wPjm3vF~INQ9n){2ZE5VT@Sw$$t#>I_&nyorLSSJ_I58!3KX|0ta<}~^m<|Z z^K({(n`xZYyl9|-TE^zhI#`ptl9tFP8;~*i{;eh@DP9uw#SH-4XMgK(Sc5^Jygw^6 zp3aqe($hA+R0s2`yOaBSf-G~MaD6yd#t2>y7Vcy~8;0ue{6==jgS2ZndRq<8CQCL0 z20iNnt6jYLO5MX05s*+sWU4k$zXX37MEMzGB_nGva_L->!#y2E4eQr%q!une6O2lv zqj`(Ra$9g*+uMNcaOe9Ms5Nt*Y-7`>6&iSmq7Swt7VV%~B`=n_y1i#SlwlHg&mj^+ zjU~+9E17)W;0#)$bO}*fS!JIhB2g5<z9^`HZjyT{A^uYtS44Q5BTr&oi<S6Brh1x) z`#o`3XC_zHv$#s_)_bCoKg80ipGm=4=e43ixUh05HHJigYb?B$Zn$>;`LzdECX`c& z(YY;^!7`6&e2-!!5S?o8B#8nQFRf!r403`$TVH+p$LbRDcw;jh*Bi$^qFvra8ZHk` zvujhMW`vvqaQg1Hj53Rn7<x+!r#q-6B`&RD(DS2XOXBjL@$@?~#Mh^{KzvP;{=(hs z^Ve&x><N1DJ%g-RjdMw_978^#0tYvVCfaGwOB(^wQ^JxIlu_)HfHbtp8)a*J+M8Yx z$Z^?8!5O_1C@^yAzPa~d@$LVFX0!})`!<r^KL3;SeSS|eS!JX|cGxP>iL%%tt^l3A z{?Y4U`*;2gm^X^@TKySJ6G!5T-Wjrj0$F7=fZW4Gc1gxO_4HA4++%~?Pc{F}C-0d1 z{P*0I9h+<MclT8eT6Qw^*YLlT{Y;<Zce2FaD&AXsJuAn>a}|_l4^odNeVE@`h=2Ep z|9*cWar~K7W41kGj{j}M{S(21l<;6(Jj5E$;)#bw;8~OJL*8+}1QJC@&DSWt=Pg@v zr<pn76jbXpN=_@6LFO&Q=x%{iEr6ZHmffOOOiR8Cmh9#`h?$&6j70dIWUD?;g|q{{ z^7#iO#sgd|MQjJ%9#O)E(P;Li>W6~WU|?0$|Bbi!r!W({c2yWf6+fen*1sPGF^Hn5 z!6}cFC~94GeZ*tyYHBZ^U1xoo&~2QtW^{e}NE?Zu-cWa+6jharr~D(qbi#QI)9$?9 z=z}NU*GJ!f3pr;1J7+++Phn8hPe{Hg;3+g%FTo%q3cNi86w?N&5wxCiKFeiL-VWK! zA3tMhx;8^#e~yL$b9GNF7xgZ^TLFA0R3nZAjJ`}{o2-Pt7@{Gk#pXPj1^Td#^*h>H z75CIfteX7woEx4Nu;n#`0j)-1=Jbx&qohDZ_(&jZ6=2KhJo3_>U4_o|&g88BX8S$G zdyN1#)mEU8Hkro@W>V2{`P!`SOWU_mREC3~Sf6%9|H2Iq^*F<MiZ6tvsu|@rL&Z~t zYlv`Us~uI2E|Bn$W7bYic?4Nm(gYLgx;zZuYwx~ndz4T?>I3Sxa+>=>cBqhh8)O6c zebw}WtRkQmO2Dkn`Y*PUG;e?7<6L;Z!0?oUL^_q9;|7Xx+LYe@l--ITN9WVF9Wv^Y zi*)*PnYwD99T`1ru<X!nWpgA~_1v1B*gMXnBF0tzbYc6DBFGE{Iz|Ffp(KaiMPUcn zWnq{QjH1D~XCOvv^MJV*sc*O2+nH+6+(<f!4(4JmzwcUQTV@;7C@eo+y!USLSKYPV zz!{UO0)wElxsA{Hx*W|VyN5hzn_+g;eahzV8jNKQHHxx{!I?zraY)0=q+N&!$_CFl zXT&YkrUO=bF1!2+r87C$RwU<-_WQbw&)7SkzGyms*v?B6hDlFcPi;ot#LODk(7l~u zetE9BEDx!Aq=m~_u6tI)mJ}5RiT4Fi1+G+FhyDz_N7bf?(MkNFB)18ei8fee9w>a& z@S&Pb3l5f=0*ddG)zA(|qWk^0SK#Nb!Hr%o3+$*&P1Flv1_>7mJ`<Ot38zSokg)q? zb^6+`D2N_RQdFC)M(0Q|h0RD&)a=eb3p_8Rtf6Q3GA<l0uKluk8GL)2(tO%QweNhR z^7AG<b+D#fX#Z85agn+2`QD)OC3;TcC#{=qKoreo%@->=^+J`n_Tr_R=c3&SeE<{% ztg23tgz+G{O?J@vmsjh7kDMQV_dNe4oRV->LqGKVvIeK#h{wEF!}AoL_D?HiH7ir> z^z#$feDnr?I<86ANN@MLU76KYIg!)oBvCv_4e&a5*864-n$>;5hg|U+4|X}7jq39v zL{ao+9fwi825!WDfqq4)J|$GbEAF!nrw^DO)HS6`<Y&031^&?2KNF~`j1HZH^;--I z{?9V_%qvPO@Zaa>)HECC0b4>{z5n64wyv`Ff%bQ#EEYYO>3*NCvr9UhijD-XQmK#y z4lOu!vzxchkn}4#+f`YH_lupI4b2?gZlJtQ#Z#mo5rN0e1(Y}9G{Bmd5m-94D=Tr0 z0;i&WBVOTwH}JsQUP~EKl$Rw6DkI)|e>Zc%*vPmn$7~)`m_7DzVM$Kd<)cEJ&|HDL z8o6tg3Uhcd;`>+m#@%m}+f{I}{mm9!yLYARFF5$0H5l62puvQ($za)`9jiJ(&Q5mM z!y82I8_iG`L0&T&bFW#nPA!MIu*tRoUVOPUh6ew05_FsPQ6O{C0IOF|RFZvJ=Pz#9 z{BDD*4NdS_3us=1jw?A77=ExpNuyyp=h%eYaNfZs#y(`iM()wlEoXL)D)_SJs!BRU z!+S8@j*6re9-MJ7Hl=yQ(b;Y`r%$~j`s$qZ&I5Wjc;1KmUDmJrX{YQ=2J$-3-u-BA zmcMn+9>$Sx|F$*o-hbt<v-ng_XWQuC@fQx@mw_$x+`5a}UT@v-^$3Ee3KF`kkRx}X z_75|~Wsi@%Ab;N=cf6=mbFs$nrn|T<_&ZCDDjsiBWWz`zb)<&+fZ+Arq~hF0;!TIP zY@W&t8g`9R!~kn>Bbd1aK2bo0^i@*ti0ttOa65*ozEj9Ar+!ha?O_x|OWRQ(&$_#| zoF5*3S3HD3*xB${JlG3rvy*E?fIEC48n9D6@f;rSfg1ai*Bv>R@>`?cfJgIR>Gf5* z48ydv!<lEoyC2M|;XYAMfgTg{t-(K6@7}m3Q1SWYAncTHwzi)PlJ=T!EpTLv^HvH( zpRs<@0F-|KJ}_mAvN|DQHQM$mccEDQfCy<8ti5GuQkz8CryKbj6!R#Lny|$`a+~S$ zwMYgTa}icyNXp&m-tM?|a=8CN42D&%%G9BmM^PYU7i+~Y<pfYs(ZtQ%H6^JpT*!B8 z>2P%D%6slzW{%`MMcw_L`=DBPm*UA)!I*au&uDNxEBX-yW&i$^FwCk$_Qk%n3GOo= z`u*6E7ZTuWdURdL3<k?&<b=X6i?OeO8NV5DWSRnfe^G#tClUoV3xWuOiUpo`pbRfk z`$zy%fa?Xj$}_~du{5D@8yeiyz3z9|ByJnx!%NSA;7B1q(P0@lmwODd2K_Ypzuk-| z=@PGZjrBs;M-{Ow4X7*VLG&fHE4{9z{Y|JS^$Z&2V5PX92KQ1%xqaned!J!fl%7G= zsH;`$^OAgWIo+*$K0XU=2y6%{p6-0w8+R__$dT_l2T^lWS5Ev}K`5O218<LAHhhvt zfGK~_v`+@qZ}QhgW`x2OZDBy2evJj`m9u=({jqInLQAjszU8)uBRKoz)Y4zHXU0(# z9`eY#BAo|FpT@tNkHUC+#a?MwMv?;rC1JOF^%MPI!^@NwrOOevr;&dSascq4M4pQ* ztJHlEQKXAhJpnt8wxU;*_bSnE1r@7t**iX?A^iu3byoh{cR2XT1?1I?0JB-yW)p0( zZ5|f1ShA;FkL(B+Do%rS-bHcTxlD!ey4_}%U}byN#hXzG?2O_I-x%;WCh5dT<AXW3 zgJ~*+Z4-Bz__bf@zI;LD3F>)r0p75S&*H0z54Cjd7xPH4hQC|^rn?y<5;EpAChClB zTD?yR3FiLC5%dp+{1c@Wvi4`hPx4cq1~8TYpXD^5rAe^!tj5yd(Z977FNVO{3`p+( zXdsK2^Ox4?Wm{A<t)(U5SKm=V>-9G;niaamjU0J7EbASAIj;@qcm~4^<j83<wBJOQ z(8qJIirW{F=zWb_bg_*1r*g&Wgzwc~kF)<<Dl(^Ceevg1P-5H2_3I%Ez2DF)#30r^ z%9bv9yB!#;cJAtxEH3{P9^tOr9bTvCe?`+g4XSdonA#a>pE@(CT!Kf|vPa#M1r&*F zs^;7BOjtNYC`3iXe&Cp|_0J_Ao}mI$u}}Bv`C9Ah&cJwGX;<xowJ5OKOlCpxLz+3B zf+hGi)<u^lB<D^YeAKL@rU|8KgLfCQ$g;eKmaSd6qZzpDT*IcQa<O4PxpL8C1RF7_ z6X#|Ucs&CYCag-^l;Um{XE~j#u*|5)NxoQDA?#deCdOjlvtQxdwo<S1V+sAKN1BtO zfx8j5lMyga_BLA4^AiZPr-a5Y;^ZWy%DZJDah%Wh5syX5vg^3DkcLq~z9*<54)rKQ z5wWYuHVI9266Wrgq#~01_s3DtD@5Per7neY`dp{4I628=ZjcEw_i%ki@5(bGksno2 zF3kEpavA1yi5o)W1<D8YZ>BTl?5{8D4=Fq<sk*-p-_JGL-cJ2Hsmb+&Ch8THesWr~ zQWon;KW*N6p(WdIA?07ngtOUM6og_f4@WH{R8B85*iPMyA3HDDA2J^;vQ12{GQX;a za`0jK+w2%9TQ_pu+*4z#&>!j-QkdFi7z~$SM{K<gx;8O>EnO_jk8VP0rqelPIa!~$ zVHCDJ47<F>3C6(9p2<k;?+wZ9)51-K$t;*MyBHSb7CWk}(=yyhpl}rJj(a^-TYY)a zy`|>L=CzjEq{A02*NN*}&O}4@>?X3I^|SBWRGC@YBS$VVRj5!=k!o0TS<!~M=>$_g z=n=vv*WOG-NjMN~My|!nnP+U^!<qvKmN%RBdz<9gwa|#isE{7RH)Rq1>Gl~cvlEyC zG>PD3Ed4&vxC>pFXmm|v*v-x?<QC1@uvp&dg-L+upQ3`(u}iPni2E#Y^~t$te>)-M znX8}@0SgP~bMI>z8|L{=3FKJ1+=W}FA*a%-@ALhxuZ}Q!obj0Zs%bBIB+bFIdqOav zy8E%n<=5Sl5{gX(V;@?qnQ`=@)1G0ja1+IxLogOeAfsfAE8c2qM4PtiPuiz@ehzFl z)Y=i<Yfut9BWG42M09F56Wf$7xs$rL^*I%DwXn{dQ|LRZnZ<QRtC4K&NTd;yRTk3e zrKdkw7{*eHIb?fi*l<rIpterFTy`eSehm5~f^S`xuIsQOtS}yC*yD}-+LK^gMZcY{ zI)uQ6Ac3mvH1g~I57#N;13Qhy-UGWYZhFz5i57M!*o12I5X~d<=W7wSP9-5<zr;j) z%|GN5^M*@$)ekRRJM-B|nf;L~)g(vxcVg_fm<9eXnGQL95z9U|*X(;b!!<V9L_D_M zv*8Q$%3l1aomZE#{_r&3a4UXGN>E6A*|n90-=gr_H$O-`bfL;}8V(kkLPOg=y<r2f zvYEXefg-Gp&4><HKrf`FPGugRH`WcniP=+w9o>t~$>xpE>v8D{o*0hv%$+g8v3=PC zBO3zJ52diYb?HGr?8T|rLZOXL$w|H^|LCy@ryAclz60lzEdFo}x)rV3M=M}|%-d)` zkNq3tVOE#X&J|p6L8tpAn*p!xe$W;oW24%LDsVTen)oDQ9_VMpXi+IUI!QbT!Fjx6 z@3td1qV%0$$LG@2vXh@=D+sNyRh;Mo2s_NcS>PeAq4mF$@q!FP5^rOszN-8rHv86V z^O3S9RD)XSEl+91^SjfoD;CMzpJ|)gS;ZMm_>jsTZ_~7+LTuSAHVcmi@vyNq`tka` zzuU}5yu5;dK6r}NMBk8f+-zgok8=%2XFcI9u}*i}hj@<D1PzLq<-^G)$;&-i1<>8$ z%}A5ea`@3%nTBRU(H?!`Zh&>s*uzV~)G%e(j66n_;v}7Sk#B?Ir%ON>EVWDTC32d^ z3svsQrAPD6avUM~$Fq7ylNEi%<?NSC2y(=+<R)tot_ygI2tWhFIxMUde&Ko5rbdg- z8+oONPV)srbwOuTD`#bjXsJTQSoK?h=1gA{%H)s~7-(oZ;0`}IUf?NqsxfO%Bn!(G zV)N(4*j?%tsGPJmCHoh$e49|3g{`!FB#jfho4!sfmdtorb7pi(u<<iBBJuT<5Yb=^ z-+FEwvCvq5O{x)I(O+;KXaAZl7QdLg(}m7Whu}m)3z<ElAFEP!R+a4UEQ`F(<@wtn zVanc54m}sh^LMkFOT>Xvb;c-&+Bj7)5`$>`osZ3RlDo`l>{*M|>Yw&Hb-C)3=YcNP z9WyHUJ3`IH^CN@9hcPPSeiotOMr4mri&}2d@E=2>H#n0}6mIm&3YCU4^hQ$zpKZ<L zj{j2BSOfATbb&QxOwynmhC)B>pyCmwHx)-$FFde=o=VeHP+5q)6@vq76)N9G${Qj6 zd*$~<SPH7kh$3FKv(2f#d_n4^cs4Y=P}B3Hwc?0V^B6muS}mI8EMOTyBwwH-kGXjR zivtcEu1uEp6%sY%4!GCb=<5kIQf4<H^_AdF73SwUttu}z$tNb@z6SKIfE-JX1V*}w zsG-%(fe53tB#^*sJTxKFFxOI{BS#z5Y3Rc1_4Na*9=cvDB;`~+N92yNq|U<Jk6WU8 zo6l=P_YIWYydEy`J|A}>dML8j!nS+HK)~y1vjVF1POr@oe~L_@4d<T7HG(MX@-fn@ z(oeaDJl;?lrFe^GLiVG+O;v|jNrF?hQ+x;9q_sq;htwFrSJe1(k9J!nEYA4#O?X!g zI*0AaXIoibDNu*+oPtnLr#)kf-s@W&Xkpk`(-GX!#8{z68Osq>j9!$oX{|cSS2z6G z`$`1sGC*IeeN8uE-)aVB{zuWh$20Z+aR5J?+2+2@{Ze*wr;yxbW@c`4zh83AHMfM^ zHfw~){gO)Vmr^0gr7v?yLXxED=2oGS<PvH9{QleHJRbYwJa*1`?0i12_w$u7vgK^| zYJHl*UYQc~VH!RixR~uPR+>QByrp)lxKMHVZb+5U6Wc|&j&%TMaz>1Yb3sO&z*_Wh zQ%3JA->|f;{d<QNNK5AH%4>n@OGDwQkJ8>9k{hkzkHRu>XYj(Imua7Sxz#?FC={f} z6mr5ePi5j7?-VhWmIa6r6enNRi6LE2MelxeL?1YsGOpX{Xcg;V6ZtN6$>2xAN4<}K zCIq{LA(y0o-YSdOgdYnlw)7u?4>n+<K1`u!<=^xVDnzH>si(tGW}7p@*bEK7|Gqf% zf;_AvFB<ju^CH~)k%x)pkgG``Xu8pljYkPP<%OIpd3kpyXwQC$#QDGJ`Z6N!pZ87V zT{3(8ZMEf;jFO<CkP%eHCis=$l-?~nX12F=1}-n}w@|RVY!a)(n>zw&!18cwc}9^O zF_b<=k%|`1o-h&m$thx42bbH?`}gO^zkeK+{}ikbi9&Is8&uk1jnDOd@eL4Y7=rBt ziMRK&gCV#TBgw7)C2^1M@l5QBk$A09@H`XdTL~Ry;x<wx%Wi(;B1#m2q|49=k(K9v zg5Y-Zmhtmqk^MZnl_r(*;z_BZkG#LwGO^c<#PIz|s~;@n!P3`_#8*-~Ip>A!e1zQ= zgg-l^B^8-kdN~*=9~EKvh-EE^75IpkFNjzBJh3UIOxy9+FGvpfNR2K?P5B&|!?4AC zsWgz7X(Z^9aO(VfA2jzO8s&?TSj1p`v5JdWbzhwBB97>bH($it`O3I0%J}-qhLrN` z@dwfr|F1R~36w8NsP>}|qz?%p!OA7A?j^keKmA1}3IYHC9nk1k8UTUb-~hPMKebfg zjUS*4y1_C6qy53EsrvO#IPlA0RezFs?LSVU!A=eEs2a3YW6%cr$K`JbWfRaNTsR?u zAwQr)UAETfC+iZ-yO%A%?@(d2w8M@mCG`Qz{iQ0E)Wda6>nwkA3y6AbnZgT}RP9H= z`w_e#q<p`1G)bztABC>7Q%ptW`Ei8#8x7RPE3?R-mz)>@F6yr(=4<UYg>cOvqy_=3 zN=K-sx`yyl75l3USmaoLG6YP$n@VXm0?+#!qClqdMrLdofK_KgQ|%|q(p?y)CSLw} z>Sz4TWtD^d4HfCp3jL;wwH$;q!`duz1>SS+6Iq@`K1!#+jeNkL$-nDDBtDaQS>)k< zQ<jmVQ-Goh$X>DE(`^wE=FeeyCXzc)QSA_NU>)XY&DnSDq@?JfAC_!F#t~>bNR{QI z>+HGXXXWILph?j|k!L6^sV2A1c%LDK=r)|EGErg60V$AJFafAV8P4G%y|B2TGeFGe z$h9viha9ACATTbg+${$L1zN_`1+;<8)CL$K%rjsD0<yxPMoe*o_{=SNb;wbM0}ZFX z$fTSxgo0>UD;eF3m-v@CR6$azsT>({fDk=8owi8dl(p1oFsL{~d56!)8ZzIh0Wq10 z19FOw>kZTivcvskZXmm0r9gcZ4-GIBAuweRHOdBqkUAy)pwt28nRNO1D`zNDjRpl@ zOd+Z1)po_PD>5Z#484L2yH~GyRbPm%Wt-#$7<Twe45xD72^>MIrW*ZjP*B<xX7&Va zh|Kn*;LpTnF)u1A;DOcji3ZtQfrcUql;vQsHsR*LYJK!AOI|RN9@3Z<(ioyhR_*6d zrh~-jU~K>?-=NEH#32RLuh)|`j2cs9@T^o0dDgA!Aj>4hCPgM{WfcrJ5-jp4`_O2@ zs{kl}t&s0;G*?0rzK~f)2vvXv7GhO!gA%+*ZfmO`4HjZ~&1A@^aUy`o%RnfznmcYC zjxJp82sY(i0Vqvmrr+Vgiu&6%DXXOA&+UwmCOe2^bE@{;rHG^7`tL6Fe-0cx+I$^M zN1?w-C@Z)54(0F2n>Mm*9%uQLK?#q&nmPCxC~qZq?tavv(hFCnMW_!T@B|Q?1xT?T zDU#62sm5)JF>RpkaFXEATJtG7>Yb7ag!ov~=)Np{Bx@-<-Bb#0)FA?Z+XG&JWm;u{ zR|QI-iqJ;xTX(Y*ubF&pr$VIszXEUoq)d4FI2EN&KRm_5&j{}z)A=xjJnQiKn@J~m z?chLk(j(fLfCg0fLI*@jyTRb-EwXAVZDJXSX(B5d-JkFWyPPGq%L2->xaL($EbCJR zWN~K+K_E^oE(1khNiIR<b`Wq`?M>|<pJSiNEk<7^`~eO6Lq&+xv^*6>Sfer{cKnD% ztE+7A@&9br4c5X<HX4ItnX41{Q~S58?MTHmw#;e>^Q-K-<&|J!ScI!DbA!A_{{4N| zOaAblz09ryyziL^9jBfm5LJyf!K@p0Lw~~kLDS1MzC#i&E0&ssCwwbA;JfidMrDi3 zVESF+Q0h)a_yfD4+KDEUjN`z&&~H1qU+74~>IOvn3K<LZ+YJHNmVbsoJ{|i(;-wM4 zakE}atn&=2eh>e#=*t`uktJ0}d=@zaOm2|;!@;VIr4Q@i!lA;sCB$^F4>^3c%}6lu zb{ZD2;2q$wi4u1IDSWz>s}urVTK)$91Y7b4b#82Rf1Yz=ULTNix>f(oiBvt|&+dz6 zW`-||$w9a-E=%|an;aac#{MwTrnT(twC;u1KAbxy=}g)yzxQ(em}o?8Zbg*Oa6~*? z<|{t~5#bNCfc`l_aE+}YD8hRxgpFzeUHoZ@qOU`Z6z(-tnyUix(L{$0PSMXBVX81^ zh?I*uRU(?$oVv{ps7ru=2i2C?pH!c0sNv3;h_!}x{4mkDXTT4Dx9-xecrp2VWF`N# z9Erg5-)F8Ut{?qcM?tH9O}~qd@IPpS;FRhQe~C}rED)LnGgLBhXbA<M+eoN8mwtwf z=s&&FLVgo&*t<#6|8@E(P-O?vj_^P6r&Wi8fYxh&s2k30%oyfYmp{Q){mW3(wP*6} z`W@`I-LNC6JYP1t7ECkAYZ*Uvw=pw%QDh^Im$40HH4op#xs#N7WE067eN(^C_7L0& zF!hgy$+9|?oArsGxXBG@AOA^qh_nwR87PIT+n;xogSaI$KR(u66+-%fswJup9Q3YR zJzwU)2WeA(0X9KjQkFq^p@MLuP5u}&<@+Y;zyt1nX%4y-jRxTetA*z>wXU5oz0Gtw z{%v5tLG(0)eF`wU(=S~bBGtY!#SeCi-Q3%0Hv<F9>W2aPb5!uB(;=;Y*mWG-Q5?!3 zDGeh8-2ZZjqGU$RlT#;*-I)%Gb#{!6vtM@*TdU!xcRJTQ?ARsOw+oiW);joM5AC>b zo!(snAyn`*2m?0unTr-<)NsdO?l@lgm%&jbDdkj&%Yk`zOm7|_W;m5UFpk*LA0Ao{ z!ar1tFy(}`5L;6DrGIc=lhsov%091s*0D*jP+l4JhkiW?O2T{W{31h*Ow((YHn&OW z7BEB}r`&&7*PhT;Yl?4mb~}G5v6C2io}3})5JBt2o&bOH)j0f;f#15N=6RXpTMOlF zFJ<Emi5q0zP6Kk3mR`F7s>4#d#n+wmdHwfL)M}nmyvedQ@Ti?QeGa@VckXRXo;%aa z@HcsWSI1&qrXd{t?Wc$J5P9b(dATw7GE<U+kQG5<U*=yUD>j@#(cgsQldMViPti}q zXmnR&S*h_xerZC=U8BocyQJTN6ekE+FzWtV`vqn&$c0o~A4jBI_^W<AXtaxPnxyPU zQVI<NDH}0wEd>O08GwICOMgCbKi=f>mukUthS4WXSGM(Oznc$H@zYH2`)Y%l{Y`<t zWwpKn4orS~9em}5+R|U-58C*VpShtBnv_et1tk`s{AquUd*I&FZhX=ba^Yfhqe<hA zZb=C4Gz7fcG$b2r!pn%))$P^Y0C~ilY(+l|9ipH46MIo7BR8B9q*EPUTOLTd8WDRf zFwzwA)z0nC8HvOj7i;f(bzXG4BVUtPAl()}#g5%}JCoode_QVGzl@(?k>d5!L$m<D zEn48dP2ow(rmAUWw~5P^u`@HXqs1hsjd#~C{~QV3u4nRcf1)Qi+iwWne7H#e?X^>6 z%34d`y%QG7_nU8rPQJafy{=xV-SW)2(QN9c%JaQDfd;4S&$Zl)xqrO>zfh7xZ_jsM zh<{<%bJ|cZ?ARq51bZ)$GXKLIuX&zkC|eTYe@lrJ@0?)h75=&4{^Peb!?~9@c<2)! zo9FBylV9}G{d764cTMIs?w@83p}v99gwOxZeMa@(C9}!x2gUB8A-|GVpS0XL&Ad4C z?UfR<h@<DkuAa$?D%nBd<u#@^EQRRMwBkO5W*<bXJCAn+Lcjtn#G^!Fq%N7(VxWvm z9O>zb`yE(lKNN7;056|ns@!K<+0|DQ!RCHsps7fnPA1!|m%UV26Wo3+#~kt{$-V6* zYJ9z2`Xqpdj*z0Q4yUY*{b||UB2k(jf|)3Q1BCE~aQP6^xFr#g7KAT}$pJr=H!^|| z%tS0{YqTK!Dfu|F5{(O}QbZjmnszKk9$$;N1mRIdqvV%C445V~n&R&RW^f!9rv8qS zy;dWML<p%C<iAek$r5>`t7=5iwt(^5pqW-9Fn%Kubfb5b9U}_AE)(DKolOKmmdvFV z5mzYLkk<0+`jc35S^n3RG4Yyp3#l2_{2}T?AP!D0eu%eJ!6IQ2TT1hP*Gc~|kj}xO zyz%$X!_+$%t^=zu^}Mfj94N>t@1~kjBkGl%qkNwChm036R7pm%cV0mN3`MyhP6y3@ zeR9QPspV(X-mlfy4{6f0l)r!Wc6a|tvw%P6g5dcds=q4L;x|LltYaa^t2mz3ge#U0 zVH*jV{MXOo$Rm<)5QrAAuiBdfF-FiqQf2&D*f`isyHjM5ANYYr@c~oI?#=x<8IhEp zJor{~b&)1+MW?Vxl2V73N?5MNWEtmIB8;;5fUhL509`g5C(i~l#3~ES4>$NWOch~4 z^v7w}@$g!Xe)EhmbYRQ~Iiu5~8V|j18H`Z39k;B-y{4g%FG#|kMK8!lk`L8tnHxn@ z8EA-Eh73{}t)AfvVfANB+N%;7ve}e7I)3Gs+j97MPt*$BpKi5l^Ac?0Qbr2VpNsS} zTSxWkl*Tb`g6`@L8A0v8jCeDL#wimv<<aev70L?yA)G2|SmjxXOpD_(136l1oOL`i zIW3kmw7!$=CJ)<K(JxyDzS3jHt29M#<y2BlH(!oUP1ITFM;?i;oM8%kl`W(nNfBGj zkhvQ}X)mJCO}lv+Bi6CP5+{}Hdu}<)I>E9;tND!W*esl1pznFJPa4HKk18n2O<d3z z&n#DphjLtvbyuD3M`mP9S7WvTRsLD(!S@zlTA>tn8gJY~T74;T#~>R|K7bGaPALQf zE>pHq=$_G1D}g_DQX=jHbGRrc1GCnV2!HgGtb+|HU606temGC@NTVi=I5Hg4YN<(= z{@#64aLV&~ErH98@T2?3hev^#{Kw-LCrzYpY)x4i9@(D$+f!7lo#BG^3o>Sh;0i&s zl?T(C<odq>mk5_ADt9$~U8785)`Gmd-wdyQE(E&{q{cn4T-h+1mdOD5^x#TD_gk)i zc$R3A)m__EV}h#dg4to~w65a0o_xX}B{Uf+Y*-W5rl_5gXU(N^Pa`f%Km?^W9xw>C z!EWx8cUJIsGCHkOkqfW?P>7F&n*7aZ;*3mA(1zx#WCRl<v;a4AAqt+#I$yFUo{_}a zp5gL6I4^H<oh>AC$=@0)&T*4CU3&EE>QL;{!uQnj2GlVO731_(3Qstrt#1ZlQ0zw} zL~H;~p>;foa`>W<CzqL&Va$UmeMyck4g?WW(xNNPI+=roQaO0(ISjF}nAVZzy_(_} zMd8paXk}xV7Iw;JfFl+HmMQ=^DZGLj+k;GxAhe6eNWmM;{<mh#i(c){yJWDbts1y! zcwb1`52a^XPzz+>fhOu3bLU<ZyQH<~lQOPkpwN5Ofsb^W6l<@NHg1D0tjYWy-Gq4C zWvj)nz*2}}=wn1O<!CVOGV_ELliP2su_Z<L7oA_ma-?i8%826ta0{s`GXj%6S*#<- zsEDk7oK%jHGQZoTS47CWD(Q+EK>O;5dvaaFyA}YOT$vCy5|sx5^vvv@6idN@m-ta` z(eeoc^JN2w&rPCGxvA`$d0}_$JO$Nho8g~b#N9eC<>*V(8+{s}P*D5HGT6=j+6SQq zowQ69K@^kYVERg4<O)$p*EA4J$iJ_LPJ<5EmB<SLKS*$rf%%Jo9e;$;<Qhl&+$(hC ztJ_{y1=Lgc7ik&`4Q#_43^5_ohVr|$a&Agg3%6*N$xF0f=3ON>Yv$FKk6_LXA%U3? zg}@v53YuK&oD1yg@uHwYy!mCg$+HC0AoduByV6lACe3EcK?G%_$_mOC&*$JeF4Mi) zm^PIF3}c7xa=mb(+!ryXd2Ns_6v`?2+Nd<PBc^1_+xpAwbB^p8Ks|>7-g7O$aoaV# zC|-|ga`*gdp4~v-IznoeHFQ-Wm`46CH#_%`=HQ?ZUKYdk1wAZo^zUk#YK9IRcl0NG zg?cLk*%U~^px{SNP2w&{KuCRc2#N0}I}ok@x6P+4o`f$qx`q^9gbmopuHDNny)!3a zHD&BnK&pbU<&{bPGEWCV=ti#onscRxAS;2B-+1Kq;Ruud?c~lh4j)$XpRS_UGY|tB ztnwAQ(b1BL&$E}7Y&deV4lq?`RKL9_C1;Ag4Ot1|OVMzO?if%ehh;noS)DhNUz`3~ zA^t4b=~wxzWzjdUH#h-ruvFP3V0Hc&e>s+J&tMs`>n;5)?^Ic4xm9p#1AZ1}!Ni~< z{Y^#XzAq;oIf{TwCm}}8+GNU10*=PStb9AMr~fY8Sh6buOL;kHJeeU#^r=;xw{OeB z;AWPtvDCc{IL`+9YCRe&L<q`cXLu$EZAd;NLKu~sF&w-Zz8U%qc=?zMxZ3l(>2ZAM zH3@c&`{8sN7+%E%5jqFN+{okP0YJmlZJ{HJPS*%A0B_@#1hew?=VK%%8mM!u;ejyy zJ=qoD@&>?%FLTMQRdWXK+}mCGGSU3rAYwc~0!2p1t=n>iiVc8c9<1ar#bgjxe%H*r zq6=?IeUhV{z>8SQG^r<egW(FQIPCZb$Dvo>C*&T(h95GI$Ulas4z}2CX<d>Nh=Zp1 zdRnREqxqMg&^@zygc&qvb+!4(@$R#mJLL$kQvX)Pe8(xXsm(gEu~2_E`u<e<QFZYP zStPmZ7aNj}eFB%8lP~E!jX`DfW8m$1BfnT){F&i}T%bM4aU#@0=H`hM?=usc>?{Op zDN5vMC8R5HROjP`=d`0+G9Eg3iJZInI3|~#yE&L*b#DIW5m{PCB7l?q@p@qMz$5pb zLoIFq+BImJ7l}CG$sHNj{kdcm85}WxyzTyZ$@{aX#fKKc{#YtREPuswC7KI8Cl=|W z?^)&QW$~-RJB)|EJ1}~Pi#C6Njix(Ee|uat`|^xNLKG5ADFV)+g4&HK3Znw}MPRqX zw^K;@p!VLMcRVzdgn&tmH6~+zxBS+-GWjp`2z)bD)5iBJ@i~Vf0%B|f5rht6eGyWG z^*0a|$faYv^lwEWf6*96<)NfX<=7cWFn6Bi-8)Xx#D53|GGqP+f;Di3-8>6N!)t@4 zyA@1{4CHhmNYMtnNKmP`XVPv0NX?^59<!TsK`Q37LDrQ)DmHX20ta0H@za4#?qIRh zfxO6nVnMH=vQS(eh-nNQ!bvIeY~5v$Lj;gce^MWG$eIOmXQu<`wMZgY_3@vSYUHmh zpxx&1?EXQ#chLPITaQ6V2v``4@NVD~*jPfK4}>b=NJjO31WtYQ4;dliXDbqzFG9Pt z*hoR*4=J)DI(&vceLat_$eXMC%Be6|j94mPNhMcpB(r5`iRg<c$cKM!t}7vMz41n* zhVhlDiMIaKpQ+@MxZ)EA>vRAYwWM(kw4PFK<bSIm&OUKPQU)jKcSgQCimM*U-<JP( z{e`3oPV59#I@lL6Lx-23rR}i@S~(!SoiAn2AXD#&;Oww+1z05%DuE(pYPu6STA=zI zyM2+|oaX~qFuanrcgk)OjK<-rFNq*!PNQV~>}1a>@|Ra~&CvPY(77^zf8-#X&(lMp zO@6kLtEBSM-7~U#OO7e6w!8$O0);FL+L{|Ea8Xm}8p5S=QVR-{dT3KheRk&y_>7dP z=d;yHJo3%GxRrBpi0(Dec%-cp5<5e1c50JHkH{28!#fm}j0P~&XcZ27Ral|wzZ$`- z45kn_))=m0J9LcaSN%M}e$fifWP#G}v5yN5G8*~STLXG@1vQNAHB9fz@t*)3Cgtuw zXG)ygw#(NDZsJ1G@{U!b3>!IBPoFzIjL?cJ)JlA*bsP#x83iEgpmg+6GgCD`E`AhR zo2K}F__JEFV9AX4?-B;!g)o#N=p6x$B?~TSnCcGN>pv;fH-z&~2=ZUKumAd7nFIiu zX+a|hAKnz6`ug(J4?)9U_J+HKhJRif{u3l{I1pe(1fJ<qe}sT3tzGLa8tRWW{fm}4 zG_z8QpponWWQvBVAB%F{!Sp#=W{1ub&w}O^nVxkpm;S_)tzmj3)h?W18ccxYRq{G4 z!t;d8E^9#Jz0IEsSzY)ArP8h3(K1pP&No|-D+J1?Y3g?eUMdzjvqiP03rq>waMp4z z$G{W=Y<{$JzM}y$k(JipW1wJRJKT8{;eP6WXqizKb-R)(=}7%GjgO_<|7%x$Plv_Q zVex45z(oh=R}R+aVX<gOgDoDX^SrgU`M$OD@d|V9$8drRY<0FFM;+}h6}$Ls@_Z9Q z+A*NZLeS^|<hLTu7!A|HY5ebbs%<4_Yz*#D!#ZHm+=U0+|I!6eK89jd?tLdQkSYOo zw<BU_5IOKlfPzClI`8S~%NzMXmR@Xi?t#zBNiRVna^Qi$Z)5Kq82ov$KueKb2;IhY z(R0<&2LnP5YzzEe^7up70Bd?U6Jg8KRwhKm@H{+b9-8OPyG6+Be0AD+27k1}9T)4R z6-&dl3qcpBsa^B<JUXS$k#pGrnk5``(FyBApq@p`K>DeJEZ4#gnE@8{0{uxIfoe;@ z#1>nvIvA=tQtcg~%NmsJLAOsre5ghEvIgh3S5)EivSLQ3t?8!|2apq$yvsA*iD2Zn zb|)l*=bMJ_&%rZaG%yn^s>yjnA)j#Cmso^&iPd?!%#?SeAj8_a(si4I9sH??7v&rA zNyyxWh-}`0M2g^rFws9WIF%i-@s(%Y>Cj#c{6LA-OEe~n6=ufZm3k$Eb#_T}ii_Lj z*k)0Sg=8LihkTupt#G6km&nvQQ8PvHMWURInizf2&|k)(v+bTpBD7gEj`p)g;9E=> z5`2DkE6jP(>yyLTz{LyJ^A}z^Q$Lo-DVAFGy$=5=a&9lykR6-A=}hHvHk5Lv-gCwa z?LxTE%N&$iacM=L_BLFfiT>(L{nLRTVo{Z1ag*Mhb0Sa;VeF{W={q9OccNI2*Ju5l zsm_&n$ZtPaaNLE`H21P!{<KmnXMkbG;9M4h#SFyH3SDppJNU6X@!G#H+;*Z~_BIT0 zrYeY`x=XD3G!02EDTBL^VP~1qQmf~pa!C)9Y2XxVAU2tiI=dCUJ(IG%#JHy!DP3yF z`x^pi;~`~qM`8}L%vJOabx;hYUTPH>kN0JTUVC`<nWn2K<KjP>OY&YEhSYf(14=)X z=ThEKBTB7o>6xBo1xkD4QdQX?QJI$C=g%)9zX|cWVWaI`@Yh8Xki>-DnuOQdm?CYL z-I~Nt8u>8SEPEp3zKfjp1?GQm5^0N<t<e!b;<JC%1U?hPY?WH=RvJ#1<rod*xGp;F zibj7ai~jm1^_Lh;#`mg~s}}ZvMU4}N#sXa7^AWS{P&V2(-x}cRq~FM8LDgN8-493C zt}<ua^Uc7y)`VOuY&31A;GcM9O=vOSReZv4h~=9?BiEv)3-}`E<g_<sO|PjS?Zi^C zlJ6S%Rlkeu8Clk>tO#PMk;|cWn|}d|Y<A6-jyKG5r4?d8SO2yfP6DoGi&uHxP>aPe zsIn`P+I6!UGC>z^V)~)q+BtuhBB58U42r`piDRUU;%Uy<7@d64y$aLCrdbU%rursF z`R$&BdWbf3VksiuTQ2%HB-TX+8y78^5Q6Eh`#G2~E0pPZA<+cO8$*ZDOXaS|H$4_T z`z%h5wga3_X4EEMO-XdS>Fh@RC7QEqoWr5Rrc2J$*XcBfC*Vis9lpoQrOaOWrPHXj z7?J6Mt-fk?ntlN}P-V@!`BnTH2K(TtE|&EBtf+XE>A-z=-$s?W+i}+(TC9{7&*2yM zA->zP<8v|2#5+e^leOl~nY`uNM)PLTq0w|6+6285Gr%`W=l!gSVY7JR>D|vOui|`* z72K#_yNx}>IioA(R>UzP7iwe%knae*@c=Bll2@ps#!v!#P|4eghJ^uKBlJoWB6II8 z*IRUVus5u?l8-9svF$CeMG)}X=aEkuQ1B2yC*t<!`ywj+$Gi_W(@QVzb!_9>pVP|P zFx7k=J-i<}1j-#?ooGI^2Ntr>*Ux_Ie=;7YetjU<k@}o4crr<V+Eb4)LiE0cW}$fz zNf?S`z0x(S*SdHqAJ@wravg7mt|s8U%Aa5so%>yS1x{vZ?f%y#g?Z#kjUZtC^)Qv4 zw@emq3A(2xcRc(d_1qqoYs(rorujlAuE~u{+_5LpoAmLPvv(TeaEH|$uS%`rDxaH* zqon#PzYBGUCRYnCj-I}N&vP4(8~6{CTH?OT87~~Wo9M3BVH@iG$Ov0&#dvY#J=K|h z4deTgYwr$*h#<eFMpZsXGVb5II`IovoZHnZ$_P?%i^0uO`&g`Vbo&4n?J1_J%%If% zj?;Z4_8}~Os_O6#oPWI(U(Rljy7?z&GGeh7*LDB<^tc(eOA9+IAc3dHcM5}hclRP@ z^*YqbA1vwPH}_tf`riI^eV)h5cjS7ME%Di`Mp@}jygOr@?|m*#=Y<g%*>S_(8U6Oj zUx?7}nI9TZ?IaBI?W6PVG`z%L$Q!BYL~#r`88^h5>+9mPx$(&M1J&MpDKV+V>|p7S z&^ui9m$yzYM6tZ1SDim;Va+|>82-^#zuM|7H48HM@TUk`8&s?#9D`xhMI|r2kEf)b z=OlSyhCD~D=|x7qYqK#A&SBphdX_nM<K-QxH<EGsyXm6IoSPM#w7gR{wq4d|HNFa5 z{Uq#4{d)wz*~QxH%H^wI|CH==dguMc3Y=??zU{bJD4ilB!iLE1O}^Dl5S7HUujlpY zV><rhyxVL2qvFwtBZ(kS{P<j36!BVD*@Msvm;?0ZA41UZ3#W0!mcA}d^S{(6H+)Lp zuIb{EJsO&QYC)7pr$r^N2oiHFu8lv8#m%uHGe_1l#kY{Yl`_~5!QK;+C-;$HzG%Z; zGigjmMP5&ZjeU>p$Fj!}<x4VNSexFCbH0}!+_ZY@iKk1Usn=~FO_fF$Qy|>>(JfVj z>83&zkz1<SBtrqr&-^#T-pDjX^;1%~{L3SSun760)V8{@QhYyHlE$u~6e@a-wl}?O z(7YfYW?Ps>JW4rY#_MOF&zs468f%-eh~`f7k<Q958{i?6&h{!YjasYBQ|0Zh=l!g+ z62~jyD<%tDvq?tKfa?ZEOESFuaxD_?8xcAE8DRU2Axzm5al^!+cI_%>AJa>@!U;YO zllh{V%AV^BD+SBuv{TT%T9K7upK>+UlSjQ0kA7EN$^tJPu`hk$lBPw%7HAKnMKjM= zRXe0$zl&#fO0ScnI>=&urshgRE0G#=8W7H8hu@2stBYlv(F#Woat9^sZ=4*waF*FR z;0xZ)x0Re1k9p0d`Uq0#{X$%3#8*Dg=LRWvsNFq{$9&7g>c}43YI#x|UjGRZ0KNgu zbO7H01TWVj&%C_Y8r)E-YA7f~!&_&ggQhHb75!^$bHilpC4G}xFM2DY!7tCr6$Ky| zCjPZ>hLU{zBu<rkIn7uTzEf+IF(PB*w{xVVjCkVF)(w(;qpO27s%{~lSZ+YVai<@x zh4V4CXC}`V-=N$GYp<%!NQghWJQ9wq(6~XA=yg~ug5IgKso~F2v^h`Xv{kf;CElW! z7}2<eDvZ_OP$go|jh4YIRPpR&5*QhSlHlvss3PKYL%wjm*q>3x3#8B46``thi_oZI zZZp)Iehv3JtT;KuYNWzuSe(6aC6&}Ne1?R(J(3Q2c@g|{{;{a<_?Gug3z4vmez;uo z#sII@w~axB=|SOHFs)Utkbg_2u9)cYn5pKk8h;rj?Vo2$7Kau4sEcDoi@tIl(Hers z>FCNMGhm(+Co-+s0~*R%R~0ROtYho3uTqO!5mxS6wu@0>QCKutC~h}zg4--1?}ny7 zq=}&I9pYwj{6_-f{?{9j_3q<ca$)4-9>w`Mxtn2X(u&rewB^YFDd#-2%<X375R};r zB4_*L@}=kPA|$`Dz|)tf?#nH2<Vku5Fh?f+dDqDwO8(Oz2P;%23B8vsjf#7}*j;op zTdqmT=BwHR9&s-{p&Tjp7cY@o*he*mO*Q|VhZ-$IBXai+HpjJo9Q>LzJ)UfJLVh}U z1KykIP(10Cbb=;oE@~2<jeT0aVicw5zhflBf2s(3wi6VS@6BIidrdCLpq|*LS-ZyN z5d5^uZ5rhoJcfaDdy;1~drDQSZN&41`|B?icq!Dz@h|Xto!KO?tMGgUdR(8BXAtZ2 z-;&Qx4jz;&!?zn(Fl~B9Uyr6<lvtdHYPDeah2WW}_p~b-rrLwtxl@;pZx9UR5O2)o zM}}l|e`eZbR|_>zOqenxOnu?gf7Ffknn-K(tAwW;)D7^Fr2b^mi+L~7rux6yS`XZ+ zlkh8ePZotl%k!RRdlPH(7LiJ!!xyhmVg<>UR`O%9F9uE2iBOVbE4rtt#<-J?Ms@r9 z-P`x3!A&-se<AOl&SfrO{X~yh|FuD@U1WZzUSQNJ)bW~>IiUigAKA=pmUNES9gBN9 z=7oKlloFPCgX$t=IWV4>r|{l(Q5G?%!?d{_LfHonu@axwtez%UW3P16@EZV3AKsun zc=e)f1u5Upn5%L4DfPC7y+d7$8SdTyHENT_lVjUHFTr!p^g$hlm!i$!4^zEEzX4&c z6;7f~Fls!h_SdTY-HmjA52|)p2qe#QNN+`^tB$A_f8;J970Ksu?Qhn~TQ!+Gk4}}? zy*N9;<kDbsMnmhw1Z!1(8cWX2b3R-hl@Cw!nZVn<)Z$*I^NCmTwmy~1M;B?m_5VZ@ zz{DZy*48m9ggl4-`i}UH+7NePifBWbgpkMaTdPIlqG2+Q7qcK|4bMB-i|dMduC>w* zisbQbjSS&N0w<+i{?gHE*mk9Nvr!cD)Sv@IV<@-wPfU})oW<;@+fG}VL6%liLcwcJ zdwC&)&pGPOLhJBX=mh0k&maYzm*i<DFWbF)<|?pg^}hdPGk8IHTKzogX8NmWtWNDp z<n0E<wR0WNuJ4X7=p?7^lQ?UG)Jj>c*O%ULa#Hv{MN%#vGMF!|<bIwJvzV^B^v(%p z(t0Lal}#xOF4wrfk#jHUi^a$N&(ZO-$z1Mt&e&(t7i6>Od^Qme2-R~ke&V)@H0;gJ zYr9h&H}mbSo(`)naDQw#+yuTuc}Kp;<1VIc*AsH6kj!f<l6XaW1=0)-W@Xpwp<&ai z_yamgY=gz)E6*Vj{>S52xH@iK_^HM(caySiJo2$_W5yfUlS_@4I89nJU=dR`f86#) zT_)N}9wyZSaS^fs?xR*w1D0@c+GDEE*ht)Nd|seg8|K5ZkI;9LKV@9-7R(39tsGnk zswNEaRrUM&nhP#;<GYQ&)t&M~7u?!=hJH0T=9rV|9J&yYjNO~#l6o{Js47vqW&o;0 z%CkpeJlAZv6@D0Nob9U$bMDq|k|_<e`s(&}f2Nati_|SSQltL3Z0`P3T3*gnz3#_7 zi1DL9a_#lXYE=f0dZQ60jcJ&lE$|%5b@unZ^3o+VPnWt{43#!sq{*6p_k|pm7rXQ{ zefoKFE@84Avv5mr>&;Zu+06R>9F?@Ba``LsV7`!fPDdOUSsq?#@#aR*#p&l^GW*Te z7oG{aV)SNSJ$o>$HSzOGA}y(IA75`V5#w8*WZPb|ecra$#^Vz2k7s|c)Ss7`+Nh8p zXt>VKfBcZo3@**o>mSZ^bRP&Sdp<OFHR);71HY&mj^NhZ@QfRCf3>Ac^&g=!_stlV z&g|3!clnzI6kfN38j-~Ss>*CZ2-Hl(?ZMdmm4b|cw9SyVUEMb6=RLF!yA!*;auM}% zHfJqeu83v{1dKb}4Yhrg`62KFFBSFlNBNBpf)Cs?DaS*<8?mxXDV<$C;d!Ym0XDyG z#lFRSI85S4tL~#DNe0X_Jp{LTQ;qD3j|K`2M7n#eca(1W>6@+24?DK9J&?uRDovE5 zLP?dsHy}aBr&?dBpd{*Os~D!U&aJ>tCo?rt<VCa|SsZ01_FemTuwvb}pTF5%UbOee zT&HWzui#FNB@Y+hi;LEJ&+iFNvy#uUjvSm60>{gl6iBrg5$~m+g(5w*R7s2t%(2!p z>>F}N{i7U3o&@r>y4-z@5V{D~o77J6_BUCuFBZXHJ`dJyAqKRZrpX~<I5BbSHSiKS z#4b7HYLz?ZPh}m^a}`cP0rl~wsNigj;O~pzaUVpMx1NDW6rYh+8^qnnHckv?{xvSm zr7X>@Gfn;{yxv4mLp=nDyP#ldMScNu<K!^4fu62Rj9x+<fE5(HIVcDV4{VCg0^BVi zjZ~0)E|o*WM&f{Gm+IFJ_R51MY;bDjf#GduQ*0m$kW3TSaZMmIKi(}=R@rYu&vZUf zWx-elpf0p?2*bHZa6)nw%qx<^EiKs4$5O5`m4Gt)uMMn~2hm5{sQ__#mF!^o7O<%* z)F<y~Uev`@Suxc-j>8D#+K%$Ua8ezo_&HNN4UM#;y+K_At82}>%MmQUt0z=D(|_Pk zSvd(h4yUb@U0LhABDJgjl2h>eYoX0cf@g^r41J;++QEFU%@Shte(eah#elcf@wu!V ztzYWcbojGvW7QSCp<;3IR`Z7(9Puk~Xp=K+0hajNSnju=c|h)|YU|?!+{1G@15eBY z=QW4RX!(*|X3xR4H)fIyU(ghPTcG<ds~qNjxx|&|*3TanR-B2`wZ-ZfrF@GoqFgO9 z=Q{mGOz=#DG}XuQA6!s8Lnr`!C2cVD287GoM8tko@B>L=8ivnch2*nK;qWfP%b~oG zoxEBM$_FT_820*7<S3<pN{P&3<cl8BQA4TGlufY(c`fvesZzg|!rxysldr17HjT@M zFOGeQFfl4fOvf8J3Z|g#@}fAxW0X4|fPcY+_BC=eUKCkeC~v%4eoM!M5*VTJQ@t%n zC?inN(U>F2CgIfKQ2IR8UyY;A1tCx%f0h-Z;C;<33OWknxT}pnjZjvgLz?@o<f5Q7 z)s{=o&7!V$I_{Lg_0d-}(COk)P;E2^I0Gzu0pV|RgV751pkLCr#a>>;RW7Put^;dM zULAf|k{u<XxQDuehH3#EpZ3bc<Gj5Bh0e}XRW_~}E?SN4q1YbuVpY|U=cXdZBRTrz zi*$a%88(KWv{E>`%dxuEc(-c4!7!RU{TlI%fi>uIUOq%E^<>`9%2NyQ_?J+>;K~Ry zxdb}2RYzXO4X?QdHC#h6CZWp4rIadoq75{79ww26%05h7EWn60u*?>rW~W*MY+2*0 z8lzkC!7VV?QNi4KxWgzeg;jToaay+@Hqg%*z=8#@35klAizD+;FD}Z`<{DD=8|eE& zJs_H@ZNw25OFQ9Y6<fpQ`Xeu=!&7w)-hl!r)z;_hi}06{g#7c$cTox5Hu(~_s&#MG zCJ6da1ZOXS&(8@SQ<PIjMp9x#H1>u1U2napF{NK%<A3Q?yDwLa4Cd&t>iMcl>EObS zgyxa*W?BNYB;M^<Kc@)|aYrdrNFQ-$CgHFwK`<*4>Pv?#*4FCT-5%}M{}9uN$@Iob zKxgLiChaeoL_$v6K!3mm$uV~dT<(0+y}RFi?_loU)`Ma;w^~ZZO%vZHP+|-GS_^ki z3zyPe-pi^brsbqI$s7AEB8jbH*IFfd()fE?O|eij7H9M=yw{pet88MM{Ixbki_@7c z^)z&|(pL+{JnXn+y;|aZ?Q8dSd+zJMy?^S@eS%~=QLmlk-cC+zr(A0{?<q}N6~H~L zmlIeA(XJPn=K&x90MP;SmeF<(_87Sh0zyN?kuVql^d5`>EkK9<_|PMq#l~3bJR)>s zwAT_aR)t5}0DvmwvB$HSY@sIyV^)(0OV&6L30(9>n9q+XCOrF`G@+jVtdAE4>xZ(g z1AJ-|K+CfgkLNqef}00pph!e28t9{i0mef>um0Gs$0YPGB76Qh>l*+|1^O(3g(O7O z##mV7q)76Myvhjx0fQPr`t$**WJI<%(EI4QSn|}a^0Qv$ai|*5+YBI+5j-1X-Pu!` zXD9ZgfTv-I$VrHv$`tp;q?W<-j3v-FKB>|_wr}~I^nSWsAJV4`sHxCU#`DjB76|pm zt6SsnW8cS&*mRU7VaoPDsGH|ZgEB-~1(n?b@%=l-tNQB9k=Hk`Pxe_(^0h*FD<}Js zfN#pLQ}{-MzK?NkAoh62!Ih9t2d}gEp2mD1vwV*L^NrgcnY!#bTP*eFFg!1ZgoU<1 zrJlhB=Eq>(v$ZNubNFaLGM^x~)lA*{xoqB7O3$7fvmkQ)@IK48cW=DSc=xLDEW&DI zbXpm;{%y?V&f8&wk-c#Mii96C06KME_FB$9F?gTcJSBM+!Ef;F+TZ8X@82hlL&E=i z*T?&sFaJGY^YX)u53yk%4BtZ-$*3|bAoI?Lt+T^|-^chO5$i|BY1pb4xt<?^iD9FS zv8m*b<$n>6ByM~J_0ESW&v4Hp{?i8p)aL)`f8<SBa0`3e>+yoG^&_9Ep{4hGz#CZ3 zS&(Hv-ZhwGdQQQ;KlD8UL{b*jPd(nvc`NV&a+Yr#=Dl>{!;+Uia4`oJxdHImEEDtQ zPE{;>j6?q2S*Eg=OEZ2#Eg@d6Akf1;7M~-y)Kd#3{P4{&f!9dr={CKaN{G@21c3`u zlm9&kP*_w#Dp@GWg0$zr260-gS9?0g({Q}<56z7P)Ii`G#nNP=Kpv!7&8wjlX)NFi zYA%g27O+2U6RfbzXF@o8k-N3?uM{eH=IS^f@Nsl#uI;6~Pw%Gvb61#qily4V)x_f* zji+Z(jaEfR{=9|%Oc5a~%GY(xR|7858B@c-nA8WYXA!Se40*kL9p9<$A2GB41fj&1 z;z$BAG=i6)u*w@L5Zu|jSnS!MNi$#Y-&pfvkD?kAb&w6Yd=j%R0Vm8b#9jI5oMyc@ z1zxm*Uqr*_A8qx#f<=CsQWVSz#?0?z?s*KRy;G3CFnfoA^WtTpepayS4HzK#$B#r@ zdFMann;_e7sc;~cZhSeD?g6YWSz&XytM~v%yQJy4%~sVjlNZ?#=zpH;mdCXVCiz?6 zyPR^)zcFi6v36vE={WIOR<1w6VpiuCg7CNds884HraF~`|Fm)z<$tcq?JBuG`oOu+ z{$a$Ahb4AXKJ}nf+(ZCJyAzIV%v|HnpC7ZpVm^F<gWlZSLF=VI&uLl-wLmO6cEeJi zF76|QvRBS+XWvT&9{Y_+UqO8Enr%c|ZoPWxVA>@o|L)eQpU<8u=HC^6bxh-WWiKD@ z*uptG<<!>TPv2q3*bQ#_<}Zm2oNB9oXAr|m*1wE#`~s7T@Ch!uG7bD=){Tk`**A|l zpSM?d$)MzeyWM{qPRg8l3c_aJxREa$ZXl^&B?8@T=B7-O4CWi>Z(5QOFZf?0_YTeX zVZkSeE}l=y@5W||Htwb-z3^H;rfs%oCfnQn9!9rwP*@kbxhw8dX(=t}tIW7lrlqBF z<R<tjh4;uko%L4}_O`Ujm3zpKN<TlT+nE&zypBD3m_xvSvqXjn02ku+;;m6#Pvc$Q zGM2lKASw`UhUwh}9ZyGp+~Yt!J~G*e_|9Qt_JV&8vT*%n!PbPfO1CBV_V?NOq5N*% zKdbM`_#<D!&9)!22ku|hQ+f98m;V$sL+{CnT*fMXi&y=7!oR;lwEl9ul<%zMZ!Xo} z@<BnI)IW&STZUi0FO73qqrZk<5PYtp{cUq@^kDa1llI!NHXzk}p1|OQd4ck57KrKG zFo=4_sF86NFBfU3%yx-<(M8co8K3vkG~GsB9o>ZBxdl=XRv&3>s<TMvrikN((K6^O zP~@a#eCwCVR2#aBEU#J2Qeh1@Pf*sI%HRPdbI|JbkeA*?O#p9{!{m9w6vM|%7f38( zJ<Ca#@cv$|YC*nh&y{rYcjaxf9QB4{@-7)?QgdL7)$b{zbc-_cBZlcxuABa&rK&b4 zA=(|y$DwY)6E&{Y_zVkmf>3pOIo3u6b=RT-$|H4zHB<TaeH0gA{J+-lmmJqsB`OpT z{J$}wb~V_Og+KjrWA6zvKg5J@GHT&c$&m>8=?t=GwF!Jn@AutK+_0Rhqe4nKhi0ha zF_~q>B>{Pk>z7v=nh@U<E(0G2DfjA`Q?!hxCP<lpF!iVhB{c`47b26xYm})AfW?ki zD|ch*1{XyRyO<dwepFot@0iSijP{Jn_i}2ZpK@)c<J%~>T#~w(OsRjHnOrHPK$fFI zXoO4fo@FD@meAJrV7dF-kKXz%9HmfR=#e@ITIdm_2noYefJ4ZPt)?l!Q;<iKRgvPU zz5Q7gTXzcIKc0`4vM*Q15`uIImA`^Ql(9UaLn{x9M!sbV>g1xlPu#z<mZN_3J@Z_p zX|8#D!+L!Jw#GV@s9d9~^S+=`-_YE<#@RkZqlOThV?hV;aWe;V`NuQJ4>Y?U^qo8j z89kLfsh_2JMYj5>o8rSy9qtjdK29x<s3$UUxbGez+h%r}kJUS%N9|{1{uStH)x{<2 z-EvOVxPaAHPV;YjqjRF|tfFN@-Ld~zC61$r*i_w0hg9y`CZ|nawT>zq+Y7&OX*^T4 zepwKD)?%*zw{wadc+IXVgG^naMnJ=TyRlSG3GbJMz0#y~R*T&|8knO@<2;Y64){=3 z$>-TET2quNQG!-!tP2OkZKGU11#<b`QJ|~2wJU&>Ws7Plncvq!bIfZM)}lYA>xFlH zsqYEzIUYXxSXS<A+%0gptm0(N^szgivfgQ4$7b+GVZD?ET7FZE*Uo2t$^Kp6^fD); zV(m-nftAAhDs7!tgiKDx9a_`<Ovp}6y)ClrVTRPbl}|NhU}fyDdI|4P`{1d>U!Cep z%;-{5(fGZ3r<oB0s`YVu|5E+a@q5xe<}c7;#;@himq*LVUxsGqer?L8JRI9i)s9mD zwp*2M$S!kX`!EAsAvbDYpUBdYIr0PQ4RC4`z#@}$bGIuN?AlMY`?T#lSnx)^-y73{ z`Fv;$e(z?@<|pP`9|fS=9kpKqGjQ-wm60B!91y1~YC4Zcwi^p=k*A6P2UVS#(Rbx# zl_!9pyXY`n=D?hTS~kh-Ot>TkY=-KDrZAc2tI{_7pT(##sxqAMHwlf<s){mI8DutP zw!Q%=RsAJNA3~t*aHBNKr)}`g6hI=kx;{H^;Iee^3vzYYA?oL!d*<>8L`mHwbv#Qp zZVImO$h6Sq$Yg#l(;qLRV+LmDW2fy4eo2jtD2Mwe7F+O31~Z7M@aV!v-R1cmD}B_E zMdA%1oXxa6YSochlwkRhtYKF8C;v&7@XvQgMA_g|+cfz|v}!FJ`&wRua8eDkzX(TM zn=-5BZ9P}`^rI=%+qll^aoUS-qbhuiaacuooYhm|fAq~>llmd9^p)2Ng5ZG+%1aqB z^K2>M=m+Zj^$y?hnM2>qP@jYGh`weDU}t8Qt~p&LkQPKbQ8U1_E2Ib&2VN2xMKU!Z z*|n~pXr{{KiEKCj6w53bv*F=<PiQa>$l{sj-PW&e*O2+G;bzY`hri|oDSwmiYoscB z9Fl2Acz$)1odPe)^{u^m;l5?8ud#KV_ub@tr3{oOmU?kZC{9Y@jjcp5;`aWJm>K+2 zFwbT?yQl~-J3(3Ge}c4ks?CM01{s49>@IQIQ55cO*aGop<#T4FWA!DIFkj&w7gKPF zY=~!plf{0)=$3GNmzrWV@8<MVbqM3_XtRZX7P3IozajMUm@+5oP`G;K%;W?-_y*>3 zz16kKb<L;Oy7Nvdq{~);gG{Dok;VBx<=-jio-kw#J>eCSPk#@0512J+wJq$BP7R}p zH84Ehbs%m_*c}7P74yPkOE59hlnLIM!p$||t^%3NP+QRHECfoJ9Fv*MiOQI=^Y_Z; zjHGkwdxPzRAM&K$&EG74!KweE6JbH6C`C`9%1g1Jc>2Xmhex5&%iTiaKM1_y4pU&$ z!7ut*DL-Ee4M?pPDu^p7ULVV2-=s~5^<yVg$g1U&Kg^45jayqS9KMRRQ$O96LN3@6 zEfK5LmvNY1*GvYlA?i?&K5E5;u9~_pPh#v-4p&uUlyY9nsokUp&4-9G_P(8KtRC$_ zZJ58ix9;oNiMZikexq*r80l4(j0%f<V)0da_SF;8XDFAs7%TSNhxLk%0W`ZysCT*Y zy10R6N(R?=+cGPeVPurD4f)!2^@ink$m~zz^iJSOm@8)1<Z*@jWw**V9cbEwKtQ+T zwFSkrDQTU}%P#K<*$E<Dko-{NJogZrGqod~c7dfzZFE0@p;upyj24?kuRXF%>uSvN zE4F>1Tp(2GP(Ha6^XpM~ESvW5?R(DN!)+X^TGdjahFmi(ll=p6%M;9mz7jc5Wu*_U zZp+2kXNSuCvU)=L@zkienCZw3C;WprjJ>6{3Gw7~k$eogiu$xMPDLhX@*ze%dt_t@ zd%D`?x^u$LwTni_{I7^5br~yY26&nb-VWdk5qlb6%A@+FbMA4!Cr*vl$n|IS)lnH^ zN?hh!$^zugvE{KJ!wEAFdbfMF^)UYertVwe=^VAXFCcOmOiA$S`27A?=t4A^uX2&@ zNtxU|%dK`ka3@{fKG912JZXAN;WE)+&D3}61kN`)?f2xvJ(-cqhMO-_Ee~)<VQ<Uc zBr3aD4M%Q66Rj6h_IfO6><WBJF8oQce$mj6m(KQFQNp>5giwpOW2Dqz`(96k>knRB zleS6k-$dPECFV|Ji;nT|D3@HNj=RUDl&w0$zmaLXzfCvyGb>p1HbHNILmoJMzyk6? zK33@&jK_&qMH{C)G)|ql)uN{dz>;>&beu<ei|ehmLhyTh3XQaBW4US@y)3x?#ov8t zaLre&zL6*$66#bMy1uT8>y?}6J&f3w`xzCgQs8;ztVz8(dRrC%`BW}mH*zYivM05Z zaCNp($TDO5CA_qdkdtu&_*PNRx^?xwDku`%Va!QCTpv7<p}+w&n{!&An`OTKmqw^| zI24q`;ESqAAzBr?S7~TKd7AhVA?2l>LyTl7Ro2V?5__r&fsKe^r*G7_uqIUh%S8Z^ z3q~+I;BR7qRVX~Fu&Ca~xY$oda=O1NvWK}M^ZsfZTdBa`9$x>Fa0`(k&<<av5CEGK z4Ax*8+~BbMyw@GheIn!C3DyfgxXV{Au0&BP1gN9QpGuz`ygNY1xP6RyE$jBx!CZ8= zq<;oNDnl#gc4}c|Gn(7PgOuaV@OcS0sntJ(_n7flPxlvGdNUAIG#p$@e$r@?qrj(% zEXm1u7*UW-B%BE6_#Z{*{m9na#^I9)l33X`N$gd7(<Twb-kTbww%T-PVm9`!QPiwb zZSB?Z4Movv&6ZA-D%BR<D}BBH!1?Ju=XuWOzVGY07N(wGe~tNj&2$F=a3b!-g2qSi z@M9gl;Z^X)d(~G$OmC3Kcknqu%JdE?Hd)<C39Hczy}GKll3m)Y#7uzzzZD@;i>8k5 zXjpo7xHr?XL+Z|cd+qeltx|I%gDx{?Xql2gu{V>W>{z`!D}L9IgrsD>6F=0R@F+2` zT4U~FIVl+P8|qUTdsNwlQcF+{S1$OE(!i~26V1-kEsF*YfzaNjJTQT7QLLA9PAq46 zNV)}2%OOoakSAsBnWct|BoY8_($uL2a^~`#G(U^1PIKpE^NPkkF%kHKH|mYc_w|fQ zWOu1~gJZZj{ZS9I5{%jTJSOR#1%SApZV3(FR|G}#>n_MjD<QAj-^mgxylKts6N7rk zTQycvPj={MiNaf*`{|k#KK9GGho!g0ctjao$yWIxR#`s|^LE0pAAiBS(e&rV`t1f@ z0n@9PM{A42*S{#wGmd5Iv1V%q8YZu_?an+@=j-~-{5>=#Rw_#CfL?Jj(1Em`3(dVU zXrOVT{5<BdRMk`&e!Kz#{76<l*O0v*V3%2ReWV&*r6_7LXia}6#%uzrFNBsGf-nE< zHE|9xR?Ia|8NQoJv#VfDieavm+`BLCKlyEu313oJZsuKhXew&}cf>%2lxOk3r<UUD zK}?%<=Q(W99MjV1-C|z$!o9uj>1yJk;t{$trn8|%DZ6LS3m%p8r^QL-B)@O4)wrKE zsGFxY&pm#~%5paP7RT0;uA0dh6e(UzLzd;Q&OOSUwW=B98`PZ65W03TEzQtTR^LE8 zx>?;L{o$jIzPhUe_4q+W<Kok~tgO!eg2Eb3q|bMb6&OWAiQ~-C4Gbh15Zi>JjU8vL zXX^YbV`{8NdhTR|bmGPrt(TlH>^Nr9%pNfx44~0J=`3DKPhVqGw#Yay*@x*dKeznD zIa+vZxjp~$B6j9IPs*qRzYnzew(VsjRPJr{RuKH~sc<iw8ye042~eJWti1OyYxWjQ z14rEua^%#0qmHxA*43tF+6FOul+j12-7O{~S5|F9su1!}hz*dzO?z0c*I#48m^h69 zk>~(7EA1_Nak}lQP5KX74$aN^hs%EKVqBo(b3?%N<ziOC@&)k<Hy5bzF0U1({nHfh zny9-KB!{xWoBeVw&2O<iL)2_(yp{w0-Q<$MCe)RaQJN2rcga!6by;FQsTG6X4SZs? zD|MW6F_kfYcmEcH^Gcf9l)lviA!VrROZsxXkA1qDqYxHa8)?+f;gR{nBW>^g-4)sV z5aaII3=#k#g}7af&kM<)Z|HQYX%Wy#Z_Mdz;7Y02Z-Ij4?V01xZ!bNU9rCQ4;eAt6 zDDA^EPRQeGbpJ2!*qk1%HT_n*w`#2VqcrK9$-fW15=JUYq{3~aQ_d_j$h&9#<)t6z zWH==Zu{l=>ls=7mgzh~}RpH(TIgE}yN0n*L2cP_0{xjvA>vL?JeF@ec-G}sCp>;N= zOk_5Ww0`BCGHP!?Jjs0y-At%`TjH8m|4dHE<AUDOouyYFHjf|F`|$Ab`FB?;njUX? z=U6_@4Epo*A=DE<$hl@_H}e6H;!$)d&eshz@{7z`w?$~hSNHDjr8?T9GQAfsD(&RN zp~Y0Gfnu*g8Q15fBV4k^=_FHYk(I*sc`y#z%L%wFHLf^ePl)AQ=L1k0qe{ZLnNp1} zpfeRIUeM>z=oY)l!L$p-$W1u^deD=vn@lAkfCK;HBX*r2yPmSWJiDx=M_0G_C7#1* zW<w#eH(sOi(>MVIEof<=Koj-lsp8dQ|68MrFPJo|FPkFz0neGs<{Ga|cCGW|l7aJ? zd7n6eGK{xotSL=c>v_0hy9@IQWxO!#Rc8INBIn%82+4j?Dw*fmt?`1fKfZ&##+>h@ z<(GUPt5KTE)@H<P>L<ro^r19Pcc5cb`<a>}D4KEOoS&ugy35HRS6lDL%XXbw%xg=l z_d_0dUKFW^uJdK8ETJZ74ie><3LMw*-O6tD(l`1i+m=Lgu9fFPIM?cE;!3abes*kL zmyvIXxTLIk6YO`RK2zJdx&69K6*Ku|=2Z_vPT*9~h{ALC1WvfOE#0Sj9vXaObeDan z*xV)mddk+S`1B0=<l|LpL*-#IYf<9`osHbgJo#>oDwSB52OgXJiE(>1{^r_Z_v2)v z5*tK>iu9<#J86p%+egrfzw^R1Qu>>LY2l77(H=M7!E6pz7iNQ^b}vm9`y*->NXgq7 zPzG0#(33kxQSAf2E$E)l4T3Wn>k5XU+2Mp-#buvYzOg|Uo07ruOt+ISuck%bdrW%X zVd`BK`bgp0yGeu@(qbn=-bFq9U4LS@jY_}y6<#B;Yb4hb_m@LT<lmC``S@?FJGPww z-btOExE-Y)nA9C|?V@wxBj%Izkkr}MqJkj5_t{BC<e49qweP~{!`E%|m`~{CQtTOZ z$ijz0$uG~YboMpgT`!wpT2NP6vJ0LryLHR=5B`ePo@q?k$ZpddvB%x<kS?s--6>pX zJs;JuVJc<X^b8+)r8@cjR#wy+X0a+UZ|cU2MyAtEZ-Ews#Vjp6%kPHb4C1J3&?#Z6 zo-MhpT)kkTMU9X{w~h*X@bcrQc*;!uO91-jAVg3u^Hu3{=o8$7FQpP-8gMDzknhHT z*E(k7SCodWXS3FvrY!WOi*v-?VcZd@iXWgP!r)Mg1f86;{FoPbGQgSk;L%^i-Y%~Q zwJxY^2ObJNUGP!3b^p54*jho}`Ogi{qa=G$=F1XzZ~o2;qH_X;*s1q#{D#cfsEWSG zwDG08$zd<cngYx?|7iA_JJ;6XP0Z@F>ixh4lN%52wZHf7X7@|hFMySqY09L{_sUzC zo!c=klm9irN{k{(iuQlPS4T<M7gp9K{F3i2^hwct%1}tp*Kp@Yd9xYoUT=JVzHOWl zdT5I7n??zX(QocsKaDqfGi#J|`29b+l&{!(=ipf!?CnY8V=?`gIWWU1`-GMI-Tfbj zKV*M8a=-=35#NHIHM7jZXrbZTuRj*b5l>~PbV=CVY+T8+@b)bgQ#zjF=_+I4WheFa zg9S+ydUj$f75{2i+{j^zHv+f+NNp}%!mm8GGmt;AF@%2Svij%D<-|)zKijZdzn@7O zFgx65w5O7M%uKnLF%Lhz9qO3b8)7MLe-|sRi}>PKJAWkjEmdRc$F~U0dse{f4Th_K z*6KlT^3j65aIqKNdKK7->nHzv##9hg3@%PO5%z+%nOx5Z8D8r2$efc-KmBOdr&*|E z_DN^O$6%o^^zRk$o7T=Z&PPR{dcQZj{W3s1JL}48IVygG%*_YVn(lYqTi~@}&8FO& z_o0804ZWkJ>kPYGIU)?#r%dAtzI$w0z8t%XqHEyYLeW2OSakH0xBy9Rk>Nk55~QF% zPyZ~NHEr76B9|pU&)b^QUz5>%a>G3d^mbQvi+6cqpRUFY<a)Y3qKy>B4zb&|phCmD zErNgN?3AOwa;&e7shKq;OKOc$Vp>*j-KQ(?{`HN%^FB3X&CQK(z-rE31}5|P?!C(@ zLN_8t*WH9V0@LGuF|W?wx>NE`rQh<~;|{kYkN=A+QiE34U-@}kGR*C*oYli5*=JeI zr1kMcL(A**lFRUy|DI#eeo|sla(CNiNM6}?taGoKWsOnuTmRUC_+T(puGJo?9I}TW zO>gE0Lf-AInaD#q$Q{dSKx>8w5~ty}-*it-)Vwhkm|x>4Q4|OxMjyNZm+&6f8S5_b z16T7SU+ivwmc`Tp;1^W<mjJVptb!cxZR)%7I=WdQZt&+u$UTxGALkEt$m$l&5gdQu z-3ALEzbX272h!WEGz0Rph>cay+BS1E-$$LZ)Kr{m(`piHW@-a%<@#L*FZD|Ir<FoL zw8g>bSd)P`aXZ`2pPCfqvu;O7;USwGy%3U|)|6I5NNu%_Xn%6G_Qw~)NuNJ{_^rFQ zTH)D=;GzGs{_7YSHKHmYo!96za?<g}T)^v&%#+_=WN}$vu`T&yHDqkDvQ(A%(`IYc z?fAIJ`M}UxFiPo3_OhZUe}^;Fo8r=fGLh6SzZ7VIjYZ=t^}no|k>?=d79VPRpG7q% z$7B3NRa#z?yXH28EjXbqnPioQOrix&g7Xc{<0`!$<;D)-V@XnK&M}2Eho>%-pWK`J z@xoFTp1Ee$Cq6D6{uP$#K#Abf5mZq0jF&v;bLOW^rGJjTY*kS8Y1!(%P)9s%Ak}O- zK#LR6Og2diM7w*2(6EJZA3TbI;e1_TP(DFx-HPWGwccK=uIhEUv_7odvgUT;g1eS_ zG<~7@<Ml61_BmnFEs?hr>KCr)Dr8^03MHRG`Tw1ox)g6PS81PNAWoZ2a{5+fe?@C( zn|Mu8J;$ZPzah!l8fxq6QCM#~(HLbe5p=vFF|7<`5stG$oh|*4b1A`HyVD^}wdI!+ zha~6f$?E-SL)AN9pPf~``*Y{P5gXgp#CCi7Cz-{MY^#4i$EL2i!+=lTPduGBf;}N; z7jG$E4=WxyT7J#xS^(G@T?>op?zpL#@@M|Mu17n%Zk26O+5koJuF&pBtq?BZ$2;aG zLde-g7v+M)-uMg^J6@yzC$WgPdC}Nt`bf2}rs%kV{<OucdnoqF1Jw@^_M-;mTXTu# z^bhi}Pby_ZTQa~&9^WjYykxK2@(yHq)DP(^@0uB>H`h(zVS}n`nWE?Q*0YuF{-|<I zD~nBxnb-P8K3|)0-9yt32aK&0N6f8W_BijpB{C8@Hxy?q+dA(bc7FaTgkUUb(JcGS ziC}suugdcLb9mG<0Zz3`QG!h$7hdtFU86hgaKN$b1Mj1jgF2LF=X(?I4*$i!Cl9?J z`w&!#{I7U}5>r_8sjgs5%e4%RncS-UnfrX3D^35Gg;(6$o^cd-_LtpWQf+6)q+D$* z6a-8Ta%vo+QO@BZQXyA<k;g)h%~AJA^G3_Ff$35(>N4iau_sUjv5135!Pcw`NiPUY zM09!CX@nrZXHK2L5~gVpKS~ZQwQj#0@RW0dghfBDXc2w9&6SHqh{g<EYs{-3t|fP` zv{9M()K|3iVC2vYXF6MxNOAsw<o73^)$(s3FDI373sbTT2o^A@C23gsBmByxhcKST z36%!8?zKz2Un@1oa{%?zs#TZi%!gNvX6@N~G6`BtA(eUMo)C3S)NN^5&9*6<*zVFb zlqZJZY>`{@7_VdqBWjPr<Y#Tn-M_r}z(PTF>!?7;3#bane)`e|Q}&HWDM9k!K|1e& z%z!de*36^0Aacx1OW^@6uND1J+_EZCB>Mwi!}^Ik8jx_dxY=34dPO%b_5BOx!w>%~ zA>pXC3ZWa>lUJ0S1Ifi&G0v24?yUSgYl@mQv}-nioOb&W(H**F(Z7PWEfY}k%P7?3 zag~B8I1q-;!2|_xQ#@boY`aXZh?+c|DlX}5mNizetVo|N#E>wD;6STXT2a11hSg*S z#Y8=wQTP@X^sm>NPR=AU+`<Cc0l0=I!Ob4UC(caeNT!|)`SV>{KwPHKWpPScyW6p2 zSEH(Oq`{1squv;0X4|0kBv7NeD8jY5@n!e3;N|w2!4Qap>RcL6;lZS<>jucc+fnmx z(v!3d0Zqee58Qr^X2+*CYvggloGeOg|A81)(=lSSz0(L1eK{^)YD&SiJB)QhX5YyG zx&4AfnJMe;@4Jzr65#}YoJC5IW(;0cJDmf+b-r1n8Gv9!7+wv$@w()c$*|uioqPT| zOQ|}%vpe~`=u}o)4?sI&{I^24eRGL8E|dNJIPqCJX@=fsDjQn7Xma+z-bjo5!LmIO zb17`&Ca`>iZpS{vYtOgbV)JEFRP8AD{Em)QZ%5K%)h~HW>udyHjaD2#YULs1h}9IW ziBP`$#JrP*Nu`u3#18+Q{q7+s4R2NeFsrY#-hIQzE=@6GHZPChsAo<@#6-k(yb=FA zct05Y!Gw4A1;uDziW`U_?><<~ATH^8Jd;3J#BkoFdtM)Ulvy4n5su`hTRgzdDU)-i z9P;abWa-H=&)LPkN-KLx_dC3h{W15|Q~gfZ8=r9{XxtuJT=CH|W1j#0Z2UFhaW$B= zkSmS?v>b(%_*XxeJFZm7aIgR+iLRq<-NnQKPQvjo!6oB~MP|N`DNYci?at{JSucc- z)=0qV5te_De<T8z%GvDew$dtX*rsl|n_R4Fm?P8S(bWBkqdMKC*LT;9hWz-UGIEVY zJ2~>K#SmAy7I7jV^6liZDuLm}F~>N{)AB6Nq1okF6D-zu!@4SqhOzK}&t3L2IM?*S z@VSyOPr(cpcN9&&seY1kqh$E2k;UDl&rz=QQxi`RYl#%_-_aR)VPH37=06@%tFr*Z zHsGtTlfiCLUv|(G44>&JIjWXyz*so-mYT%3cWN4x_EL5Gk@6cy1E^bI#Y>Lv#-;-| zCAkY*2!H<z!mH8en~0e(o9Sy8!Y;aTvmVeqLbBV=a>gHvT{-^GVEJC%uHA1(5RV=} z?^kMkFCFA1&#TAQ41xQ{0SG^kZS?5M))Dj0ypmyLdR3JryJXg%T;=dnuU=2XyZo`~ zFtAFLlP-91QtHoQ{?Vrqk(R6buJ2{&7t8*hIdI#>naX`IruDX_#9oYd0=nQCuQDg@ zY4jLKnR^`!53d+0H&>{g#=U9?@nE>n3xu)7!JV#(=K&G)AR+GL=bPM}+9tnh^ac6s za3KmMd)1XP`4X%j^8fU@!Hu9NOF!DtwzghtoCw!bOqKB?|9&p~$L_e3^4#Ou*RNZz ziQLTHQ<FabQbYl+3GMx?ln=fYOz(68!x%;?c1JtLq`h%?elptkBvL@ZD0N1KP6|-2 zF~N|)%P;=0|J3#G)9|-_O|HI<Y8K;}D6-Y6vV<&*x8)h=lTQdyFu+Tb!Q(#LKENL@ z?@7GkUi}3X4@H@36ZdLkPQX#z{Xxk6xaH%z1O|s5KK-v`)K4GsA5U;bo@@w+V@!f$ zj|o#;jb-?mU=E=gUO+Ezn+%;tK`+%9OOh8JeZfb<P?2(wG!DN@9MTiH#pPyNuMZvA zXE61DRftkLjZ$xO?>Ri_FMa^P7q*4X2~a{ym1xMMOJ|o^5;CB|`gt5HHwDH(8>NEB zUOA?4ec&4htv*>6YOw9#YZE77ya_h$u2Dkb0CSzD_4;!rmc~0n_h!}6g-Bo_(lh<n z>@C6x8Oj)V%-Y}djflpxlF%A5Q%teFapooWy2qPdPL_-!<mQ|YSd1Z?<+mLo5Puq` za`Y(_=?)mN(8>($>k<^&!xB6RH2F*$2SKF}#rj^_9xBXan<+;&s(?`giSg&#S(O$v zFv34}@{+a=gg!V_LH?WNmXgt@aA9WBu2A{7im}TJ(8fT*qhW`OIwBb`#XPTlE``cD zwO5c?mpr>gY3q$F*`mh5JwdCht0m$h7S8qm&OME4Ypz#-*nji99whCFVGvQyT3ift zuPt<`zM{AJAB0G$d1Dp57G>PLGH9m+Yq4~Gp|9TTMZYWKJrNWg;it)-Y5L0M!gUg- zwSYNsbKJX4j{`IExO>!}SC{f(!TwpG+w<m@P?wX{p55Z<ODEn#@h9b5M4}#Vec%dd zXs}FfNtziq^N_xHo9K#RSw~T&*KJ&7VSey&u$J45KbK2;iAUIi)OA?}_02aV@60cf zis$*{=t3^T+1UfgX(@lcAS4hf0$~R|2aL$?<EQ<<WtddExlFetM#&|`w)R%Jg{@EQ ztH@z8nq%x&!*M6V=Qp-GUPhG_oh^WA!N-9gvWo6+1M#Sr(H^Unf*wIc&p)q!(U<}v z_d&(4>}XCg?PDO9t&@JK7VWOdPppl0?w@I=Kjhexr6~hy5^^ce<RsXZlN<n&Bg_dm zCOyvB^v0xxUb&z7&4zP4mtZ8V2zDSfm~yy_W*n&km2J^(7o<!GdJ!vv6I+WV6iQ^9 z2_&-U^b|-Bz_DJQ^bTeifYcJFxUOuOAXpr<Z5t-G9BTeEBlI?HEz>%LjG<)m)5m-I zCb#MpT3=iNC(9}X%D2l099PVXmo+Dkw6#-h^lwnf3Nqo|Bat^6&|g{t6&P6tW8fd5 z<$nl4;sB<`qt>$m1lf7aIe8K;szPM2{!}L?D5l?N+tVTyPZu;6?^MjL8OH?WGTTkm z7>yTc89HNt9-uaAVe=tN)@X!oiacyFg_Yp0bxB-Xj!9$VNF!(?5{DMU_&5j`D0f^V zY($=fNme*lG|I0L1Tq5pq9&ebLsWOnj_Fg+Rc8~7QY-jaV8r|19m@j~)&z*n*VOSc zj~Sm|V>kPiz($}K{;5bJqfn7sp@^6M$n=u-*qxHG6H8%rMu5Y5I~{C99&CpUD3YED zlQ_InPe*0opidnZ#W5shtIlhtgW+*H*~mxl?I3CBSsOr}H1)(CcYK$o913=KTQVjE zdUCNKZIvP5(kmU{Kg#B_b)DTiW*D$-!o^#Zk@4f8GWNu<4g;(vb;wQxYq8MY3f)=P zmkU%@vN&-@<Og(_LzNf6VKmY!Qh+mJfGXL=fczT{#`R><$n?QPJpgRY@W^2(IPZ}| z_0g0qHCl#ok(Z(IB*J~xYk0y3qXuY>a=wvep~a5uz;5*7M(;~x@Ed?Q0#*LcM~(03 z|7d2;l6-Y!`T_!2XfN@*?RP4gf+MA(n?GzH1u%3!@@~5*j!Nz^V7-%NZ66)M0;5~6 zAPR@&v3g|x2;-Rs15G94nr}=-N3Dh35GNnPRge6s`uKD`OBMsh3sK(7H&hco1OsV% zsGDGEfI|;BSdT!g+^i^~5JE<<)KpyW5%c7m;6HCtvR8k6GsEwxesNXB0i&NTszA)? zoe(=Ulae$7go4vj`@X{?$My#Oc8rb)1>uxGSpwkZc1S0Y#gQJp1{sZnlQ;l1p2uo@ zPdoWutMPAj@_&kkY`u3j1HnFbA_UZtf?Y^Sb(CBesx_OS#|ppu9%bHzu~Wyobzyzg zai5~`m5P6^N8{+~LKnJ(3e|-x=v~4}1+tT2PIc;{16`v3sf*q35__yZxZLJ9r!KM8 zCGkmJ@_U!0XgDS$^d?)KAlOZi)F8@r6MahvMlyja8q((7(smj$Zrw71VNHiDoZ}jD zN!@aE4fzY**wQo+t9<#(8j7vmiZ?ZsM3oqnV5R%r%8xZvo_4GJhr`rJ(iJYgSNYzp z`cFfRyGKpcJX;oEHxKcA<L}W>)zsAO(R|ST=BHKmnFUR^9&KMuo!~e*tGYdCo@`X7 z&V?SmLQVaO9^}HS#{Hb1m70bFJ%;~j8ufG{Cth2Ba58$Wd33Ai=%=2)7J|l~T;J{Y zkOZ{Ig1zLp5)n%u@;liMiC((NF)gZjFEt5<B16WaDcQ9%)KgmKNxkOuc)<kpS8Gkx z^j?e0T9&O^N9~luV8_oux-9SaT0hpZS&02y`;=M|Zu3dY?t8D@{e$Q$7aFcEq_KM) zB()vo5+vh#Oq|OIt`{B6`<(5xT`FQs4Z|o1ZEH7ew?oklUAw#F89*1BcB;^FzpU-q z+UNOSkRD}hTb!+&7x~rmv9{0CKA-<wt0EV)biep~@ALhq?RN@gcEY*vozEzjPJmp0 zfNK9;rbq1d+gBR>fp$7UZr@@NGDrzc1rMFzr2b%f;wgC{YKMo>v|7kzov_w#0Rw#| zftYX;$cOg+h{rmS9Eoc5{7M9zr14be)c5{VzqKB?2(<jsi4h!#G1tyf=jBR+kR=A< zj_JlHX_b?w^wQ$ueRUIqlk`h3UM=cPr0XVMNHW@5g8C#BW$T`49XR8wse1|4U-j+G z{eg3jb>;3CBWs&x=LgPz(xsbdJO&k9Wk=El^il<XNQNWLqSHcgbcVO+VEQq=46FSZ z7^6eQI>T2liyfRS6t3f1)0surV_wkXtBB3Z8O*+{m$RUD!O0<KU@-STz3!cp+4uDF zpAP2VlJP!ay75Y{@cUq)-1BhNg+hTt9>7r7W<0RhSFEaEsyhV9_5isLl-lW+yXoHv zyliUSSbj>sB57z1%GvSc2&uo~eUv~boudaoM&g}h@H&rrcaX2$XYn=<Uw{3}_%#c* zJIwQNT%nnD<1&klSvBYq{H>Qu>AVbxKI9aa{w+P(jo$+Vb{V}^hJBwISfN|}rwl2b z<nB|W-VaHg_W(#XMaF(~$SrNS_13TxScZ3uRzs0Kl%s91_&Y%2_M^7*WGsD`#kb24 zSp?k<<LPOD1D{Sn?0JkKC>M2UcV_V1B#*9;x#+%R7S7eGde=lX@@d4~#lWn*{MB z|KVjAS!93(>Ph#T04y*oB5l|aPL<9x<WRqT|Jd!ZEu$Nc&vh=4JLGOz86)n$KG$uP zW@Zl_NB@PrW3i;D(#?$N*E~i%MuwEz=Q`iB%qo1M1w`rJ*;F3LS$=BK)3djiFEi$( z#uNq__a3KoTBVvn(_WoD2Y>gQ?4Hu;WK0S9d&A@$WD}UVbmvX(FNLe5P60#ry+1de zk|9&6JP}8?{$su6INN#Y4|$Jt?>$KjIx5ae<<+|VSc*E|dWXM*%%69z`{}P$-P_}G zkoC*JQ`Pft{Er>oOFGjd$oAePJ*z02`E=%`C`3lukOz8~%=_;~4?r0scQ=vV3ucIF z-NwH-e=qkgdH3$R3F6HsgB9*$zru$HFCDwcV8fh22ZF|wNpkmz^ArRd#yCr^p*-g{ zBuEdq#|YSh>Gg_wN?k-5SaoW_A~ls`HdT2I>XKg_v_!PDV_+LBzXhdwI+K2Wf+XkW zyRT;}+*n@ERe$9ECf8!+sdLGO)TC2&2%eUCUc6oUzf^pp!*EW)ooie=W>E)s^3F>` zT|XyM!|^x-?@vgg?*W>WBX2t5mx0gp-!}Nh7b~Sm*S#aZiuTM;XfVyUCA?36S6hB7 zf9lBdLluFo*N489sOOE>9KNX%YxsF~Jug^F&}QqP#%oa-)Z)Y;Oma~N(Gu54l)7-C z33Jr>wqfe+boP_{?VT<GOXQIp>XdcCpg84JeWCWRr<Te*-XWn5xc0)&<#x2EA67zd zzWnw)hW^;+`%C)t?+km3on)g%qH2j;ILuJc8f$Ho+@PQ_-=LiF@T@n6<f3M^&~Re7 z4u4e)9CW1g+~X17v;Zg~LB-{=d`YI`HRcYwe(NRs_x@wwe}8{|I`+tld;WG&#|~s4 zZMiYAsUhUk%&)gxaXxyM_#M%FUa;ylOvJn>sDTc)<LDYCXPEU?Z0shXVeatZmSSNb z>{QD&l-Z4M+B<!Z37}gArtS8s|2`C5F#fV8kSataOpL)#TN2FjWM%4V0#LE;_b|!z z>B1z%RKsod^Vf>=`r^xqRDQA;8FK--4ZGmYaav4~+NFU>Zi!V#J|=kvHl;=&q#BuH zbkRj%T=XF+U&Z?c&-MPJZjq71Vkt2JL=}xHay`c+enW~NY+-T8iNb`FhiG6Hnx-O` zrY2G*QdO#y(|kDIf9S+nzoCDUTEIardLu@We-~+&aYWyAaky92(1*&e3Y5Njq+9eQ zD1%|$4js9O8}fbIRx%U+R<l9aCe)T5r$hPdWpVdQkJQ}_%#z1jnCB{bBXzd~vj65T zE3;VYZ--H((WC;t59awu`s7<fns`xsvCWTzOXtU!+kW!2>)Rbgue~Sv+N$g`kCZj= zCA?#s2xv?+6+;}cx3doxV>z^01pau$7@d+`8dH*i`i)vMkPAaDgFfLq<Dqmhik4j! zl#laLwug{XY!2qbeJ!!;>3I8{$GL!35r?HXSv-xTKh_Xs71{1Y5OHa<EpK<}Q+$3~ z7x6S7av36ww*A;yB&N(48wT69fqq*msX>vYsUf(__nTa7sh)4!Hm&eMa&xt$>*>;y zB8uyV4W1cSPo+!phw7OG`q0a}@)LGX5JXpWu|3k#Wf)t7LCIXdFC7Y1X}qNH$3imS z@Wu5be6~s^7six1`KR9YIxiUvx#kd0c~AQIp!DC}xfzBDm9dgTITt)sb;-h3nX)}S zI<w=K%1aVH#x;ogY}+PjD~NQMja@iW`{PJ0#zPKnkXs@~Odzf|GU+nkWNziuV+Q;0 zD4R}uTurQwx$|Ho(yDv>(S9A!DVXZ~KrA*V)4PJ0d7Y{KrfA$D#-cQ(<zqTQ%pYb~ zIf|*mM_9}c;8rp+#_w!VM$e+2uVV-gjZ;x_;5NaC!Le+fkCa8PiPZRkmXGnw?0e4W zPz!KNrB#feg5y{o7hSUjH`jdOf#oDXe?W``uJb-}_gAp1ns({ekVb}}%5rc$YR5kw z*XBW6y=Z|$8#yZFbc-u%@m%iB9J{uiodRC1@J`ft^-qIY^epmJ($FcZhwL{qw60jf z>gmvWW?o><iy%1EAX9^z;u`erDIslH@W+jsP@7ZL3$?DI^k$k^3D0G}3caqkpI+d( zwUagdHIUs2eh3adLE-3qaVGDT)hrzvsD)#NYzp~XEDC+}l-9Fv^2Zx(6DBB?VwlRW z=b3q&qm+262u!@GlKG>XRLoTVO5S@27Nhy+a1>vSm80Z1Oac69gXvh?DlqPB^{cP_ z-|y__%c6hNlckDz<m`?l&(f|dj>+kd_qqgzJTgL9tFp>V@BRdHOzTaf354%q2U8w1 zhOEQilVvW^XtfrZ87OSL<CCMFjOzDG3RgYu`b)%BJ+67%(-mQ13t}72Z&NW6awRfg z*S*q+^|A;4AUPEx^n4nO8-1B6bM6u1#7@;?e&Mh5%U%=~Dl8D?efw+EjKZ;W{+s>0 za!@{7|Me&k)>>JJI<qE`H1xRkqwZALu4RDN`8Q*H(I*cRDdd;x*^&1~tI3fS=LJP> z-zJ`-{V^{(imdRYHo6DH-s4a|bBhAt(TS<=i39q%g(-L$JC8XJR@T(APG+k+M_2Zj ztjH(y+HZXWe?Pn_knbx>kh*KKZ$~0P$+Pd|E+HUdwwl>1aYs<`?i_CNU4P2v8u-GZ z@7+-gJV#+f$u$>2#CKL#i)$KD3HA4+`3ui}y?OcXhyOGz={6<oU4H42j|2by?q8<= z-J&nPe#<;<AMy_p4Zu19zUYM=26wX`$R>b~4`&Y#*ga&gffYKzDitkf1cK-`Y3N=6 zk*w;*OW*;Md8RsfXZCm<*5P0PIGp|IWw~J(d>{aH*ZzbU9<)~knvE9t*(o4wg??hs z&spzQN8(@U1kKCBdDY>6I+5c0$Tk=cZ!sTFs@wW3f(M9%6A&Oa3&8KA$?6z!7(x~a zXr;Od`Js>iMXv!t2R9(RkvQKj#7-yCZw_m>kN1qhg%=ZfS%~}gn9LZVY$W}>13$Lj z4eXCPya`~sFnlopf(6neOF>BdU-$6R4*Vd3G~9t7*(Ed{BQ{kWsW$@RT?J}Z-N0lJ z91nVhpxgjN8q|ThdYrzxsDr=6kh(M%3&GbQ#z~LG!!+QRizTe~0kw6J6?@5nV!m_- zsUO9B=z6@$0a4u%Du)8#0LTahf-}&Y(c&s;=zB4ed|jft>q0AP5}F4x{u;9Wdw3AQ zBM(OK`=O*_i3do6j-!lbfbgaoI;dNooqr&28Z8ysO+>H|cCkbu6d<M{qq{D;Lf-=w zX(;u@D!HVi8&{P^G?YiWQTjxl8b1&}3pkWn2&qfc$UOB75I-IywhB+|CiVi#KHZ0S zN)SH@B;ltJOhk-ztNo`zDVry1jUcey#Ku^~-wskJ7Q&}QN#(PKx|3W6im-x!>wtOS z3<*w#v?iE`jTAxR@hSmy4FwdIwuW+X&_2-!(sSa!woeXmR8vR;AalgV18I7!6jehr zyGJj7K}M%k^D;@QzFr692U4S;-O+>(G1{AIAX=)7l{ygkSw@Vd4_ehZu?~}{H=6lu zH22x)dACgLXJYj{TSuu;uCG`zeI8-FueYyx?5m~}9As31J|yA!p<2}C<chTv0t~{P zbddoD=v7b{+Tg^xVXc#q|GL)5!ckwMx(ZQib5^$tNsvGRi~}O&i^BKMREI@93lL(s z$P~0@YT>~D?=um4n0S)ZEC@Wx@dza%6|@Qhr(y;>%|L#D{1?1mDM0{$_mX((SQG_y zS>6#-x_>W^IOb>&*iy9@?b~Rql!oCg1}qOuwlp==8}&C4N>1@ME6&IGV$ANB@$r4Z z2VjT_X_!NuheDdp)FJ_a0p6COdlxk00;CETWs>8pHape50;F!Th|*<zgfgPUg4{M* zs)o%%!1`?T`<zsqoYWhSZQ7H!doB9#f^=~rX>%5&JWAnSCGm9;6^Ms#j|<NdLZD9u ziU*z)xutw{OD%U3E|<|-B+%9@H}{SpiOQ+-h*6Y_YMR~3o`Z3p=k-4M*BB|i5kzT> zbccqK%DPt}hHSn_2yl_(T@vOi2Gs%ZXJ0`WlGUvQSsV*-Y2R~S+m}bfOORfo-c>Is zPQ<S4xu{TFRyw_rUx+9ykhLT`kJZI~1ppnH9T)yjF23qICoUBGs)B9gx&R?OyuObZ z7LUcEo&P%X!!8DH?j4O;_ZJV83NHo4E*bI_dur<hC-furpBU>e0ITstwtMXHPrbno z{s!ZV#IVJnQ{a>IbXk3Rk47lbDJVYp`nRx|*^qlK(pFu-WGqn+12A=7=HWs^57jSN zx6L_(B#EcH-a_djU*wW(h@(x{x2Szrc;6EuZ4HiLgl`rBlVKscHzPQ{N33-EhmVFH z@|!sJV^$Eck!Ajxi-?2;1g|;}_DzQ3Ecy9c99a<dT}O&{jSk1*?dWC1SEW`e6zA3i z;zQTaxo@srTC%-gC{>9vw=sluorK8I1bvP8%%tSZ=y=^U3^9RUf#}GwN(|BV@c$ki zq#Lu)pQz;QAlPT6l62VRi#r9j)U8M!Pdev|2(lZcls+M(^{|P}SirBGZ=r&CvH#49 z+Bv87#1Tz;l1rmI60DOlAbaL}z*G_gR>_$!h^<>aY>yn#{bHa%)W-^9)sp023j*s& z#J3fR?~`QfSump?>Bc`mN8K~X%djV<GKqqO5+`6cNyZ2VyzOTMC1;uMF?8pnkn5*! zmMA=3@&gkhK&u%7#6*vad|xYMg$8tg2ohWc?dg#LX)8tMp~*Qt2ZE=u0HhK&GeGPw zSC_=|zz^r@1c5S_G}97*@&v~I=B@N2O}x=eDp|IqQupEyJa0droQ@0v6Wlgfcml=j zNrnjs$&AD~DXe?7#RXn)Ka*RT;OiPmNOV@A7;dq(WIyT^{M9SvMin(g7dfnDZX++y zl_=)=njp;S;x)k-@u5(H{>gy>b3O;)KuD&yCr|t5#rwsjm!or4DQF2GL14e^(;}!> z3*coGK6fuy*Ov{6y%;Q&DHq@m!iSt7QiHG+T~%T&`b8e2ST98K&`<?v4c-VKGW4Zf zzrZ`|4TCv6T9zXaS~WeV>j+4u1>Hr4H`Ro@-rJ@#<v&+9y%9>G`w6f?bZu1~(vv4) zMW%OwW-^QL)Ixv>JdO3)FTdM(Vh~^u;vvdX?rX$H_cHXE=AY4*e2MzLf{<b?;Y6j) zUJ~lx&xjj9hQ;ue-?MeTlnd8fTf%z)HovDyv#^Nivn$!2k?_=-rd9Y4x;~dxMa@l8 zm{UN*ts%@O5018e3DMP>Iq9qSoSC`5uFbvmGEU+OJ*ajAw;uYrIdvg7@gUp};B5&= z0)Tt|uohxTt^HCJWx?7-I{uzHG4_iqG&Z8?*>Qgg8oC(%?@X8KXN;IAw)s;c_&JyE ze22?u^NGVVzq(6bRMvEjj^<58pFfi*dyDJAGnv`p9v3fP{Skz;0fJ)K9opI(+S%>! zywlBa;HC?@x~yr&qu=7J59cK>Bz7R-_u%t*3>d`I3p94&5j)QkL(XzV-jZ<?9qKxJ z%#Mui26*5N*e*Pej%d;qFD|?1?BRUFTT8$7EE*7%UTDYEfjejEy-%;)KG8Ysu|E9t z?0>47*ulLa3j&trKV;{kZ7m3b`W>>6LGOM^_pX9a^?+xks+9N0(~??K3VLxF;9>xW z!0bl+Fmm*6;UT`L`<?(k@D!NmqrnK@;ktjX{pS3*u=kh%5g}4Px-<`)I4eyfz{LO% z*DA0R+cV<`qC*(~q8=16B&|m{lIgAT2`K{y9p@tfM(0561bVRdNVu5PBg6j|M6r$a zAbvjpP6E}iCj2Qpi+WSX#M({4h>x8Bq+Uvx^vJI9lqd_ZF8dGU^Y@wIZS7PHZ|%TH z<=x2j3S`Mi74RsQ4G094V$SHE>toPdx~6!ZG}7hfKw;`UDEz#Xk;uN<ywshW0_*On z`Z*WQ$mlhITwgM^Q)FuJPcHY|AfpLb;GQ~o(Zm>J>&`Pc%y;kSg>5A0%pZKLn1GEi z)h$KK3e3~ngHh6#7OIsHBpLOsK1J6z*xXsXV<4?2itPoMn`(fF-^J(87TZn}pLH$r z(GTla5FLDnSm(FgBvjQ`zJgs<;PCfXLLmlyKnLyyLocUkAh-w##9I%*SDQF$+i4?f zhOr<qQr&X_46rt2>c!Ic9|EP$oT8wwh>N`JBqFpVw8>WQ_uAW>ULRhTApJV9)f(iG z&NXoYo3~*Dt+8SP=834S@Cw+frGMT~56F9uT#^fr`ik6^b7*!G5ecu8Vz_GuvzLQC z3_gFaN8Wn(#^GdmPm3w|x{rhi4}Qg`u2XKkzy^l}2=6#ZkCljs<hvNc-HH<{j@hC) zD~LBsg6M0z@TjCJsk;rs$tXVjm6xj6Q8gakHGTXs-lxKY;f;v2qj5i1==8R)cB;d~ zKLa|?Q;4qTtx^oUvD#Y>1jG^FAX7H6<f(r7U1?>yRmCs7nvcFdk$MXow(Y=pP$$7% zO>D1w_<7)l3*GAZd8w2CD7T8g>pSh5q?IO!5V-5_`>;R06gP1oqg{Q0GcU};KR;F> zvf~6s5ra5Ni|{X{^_?Y2`sj~3b)L&agH#Bu9zt71WyoX2BBl8Mo%s6c4G7FrZ`W*F zY%r-XTTZI6*FOhUZyd|UC|OFI0*r}#2udE&>F@?{L<wf(rR`Ww=3^u~AbyP0^g>k* zj}7P5O%N9!KO}jDv0hq1)ir3i8p^T+!9>*b_E4$gZOGc&()4;38Qfwe>iBo3$oWyZ zI5zsF9_t#FOO+?EWk}<}Q)NO6?pNE~2QY`5WEd<v0kl|Q-d3;_GKn}2xCf_s4>8&s z?u&BZqo==bqB{d_DyrRz4V-Q?O;0PYj5&cD7klmaDtYzVgZyF@99*B}f07Mwpp;3S z$xYyPMjD47eaCNPt;qB44e9Jv8IBA56cON-_s8uIFK(Uv$A9$pkNpiLMR(77Qe;kn zh<@zGc0=p;PY<5|S9t6{_RW@e_vp*n^xu3mzf>-XclL}g<VEJ$e}v^)BElM)N<<u= ztWEoByzyF2D62I`;xxveiadRlf>q$ckQgy;=b$I@H0Y0#SIN!H(JA?wqS2`WqgY2M z&K*N>EN&|bU>0SbOFL1hzpgh;HkYVmS#oN9FCw^xLMEvZkzXJRWqh*$#@;$(+>$H) zCqltw%?xF_l)1r>MUwYRYEhsA(q#eXAqUX;U)e3x^vDfT4L>&aD%<Q*cI%WScSyx% zEMP>BetnwY11r8LiWPCdH26C#IcC{^eQNfUFOgv*fDPELsxg`fy~t?%>Jlb`4VaHn zrF_ZAbqZ~F0PL=2!WDWNTCSRoy){)(tc%^Y$EO(Vv3el9zZe{Iu>)c_UpNERIe|Sn zcTt2dxR^kIF{Uqp|Lh>-e6yN^O@|L$KhjNVjCe>9&YbrxsymGlnThe48Onz{Q06Db zP<9ck9>6&-WF{hce^yY$kP<UVG~b{J%T|okW?&lki(nW_wOG^KA8Yp|QpWP)&db=l zr=AmuD~^*A@v78JJ8G{7qKf>s|6<a%fut@vn%h8fe2X>Mt!4|_GYL<R)5o)A=~);Q z4bQ0b(ZL6EmyBaQ8IJafT-fGpoLgYbw`buMwUx4sLY3|9Ge<K_fp=zQ+JK!hFR2k* z91!D)R=+V<#b1a8Cip}5t2vyrEk)gvv*Pur0}{G}NlhF@hZ#0k(XXV`@IcZ%er&-u zH2{23m0HHZx?#$2-#TL5W=F?4Mx5fGJ?s7(Y|r#3a2}Kbb5>u@M&V>yih&4A=VaPN zFD*ms{-!iT)3Sl6*RgKSpTek{+|fs=JK#<U$4`xo&cMD2rnYD{mpDH4piTDRO8&W< zM94xJp!Th^D8%;s)bDCeRcJ%e#$#gJtk8WiFq<ns0h}&<TR`ym1YNx0`YwS)YIr)z z0PzMgIAl5q)I^<zI{h*9F`j3$5$<(OHu9kY9wJYj)ic@@)Wgo`@dYh&kI7rkk&HB` zxNZcryF4=2dqY&NAU?-=@;atb4f1SwP^a6U%#(HXa*BuypvxABY5qOWB~wDme~2Vz zOR>IjApm=ez=S+{Lyo0Rw|2X`wIc2G%#YCp;EzXO(q%;fu}$~l-{hObj2F$O;4Xy< zMEz+2{S7lUFaz*DWv8U@l6q0ImGf1o3`Y(0D_7@qwlseZb|}#F+mE8JFN5_#7-=eL zp!h|QhV)1iRE|=jpKo1+#)Zq8&N~~jb0PLpb(eC+-8tyM34_2(fLgxk#e_D6_PAPP zcA10in~{RhUDR$zE7ex70orVRA~>Xq=hl-9p#VnKw_Oo_LcNLeUJ-?KuL>?l?M+KF zWg_s6CVB3?&Itc(v2lnyzYCC^6W`3g0KwPU%M$mQ7KUd^<Y_U|qN(avjKG<tdLX#X z7kPvoJsLPX#LN!LZu-6;Z*h<)jOD&<?ZViT-bZ29Owti)?hd8`sEC$}&?wk~Sf6G- zD=DhfG&1?hFEgZHzWG9(IIu=Di&a48&V;7%pT5Xa?ykAqfh9hGZ96aPVUuuHZI`^J zqz0rOe!CNRQ^2DDfab#E*%~^^vw4sFrAp}L$-=1atCh9BDgj+{3h2U1jd1;Oi}}TZ zj_c(dRtoFeh(ZTuU3)F@sM4?<{ObbY$R)(X<MQ@tPjmvgZQfDj7H2ElcpLAvKuuM0 z;CXL5piYOV`Y#NaafEZ2Ic?l6s^!kxoTQwDI0~45mGS<xuC1E(<e5^JW+&<Qv^F}z zRMD&<N44NExge3iHGnhttEKcRS<d&5ZuzzI{lwM>J4qkitg`XwYrZkBo!xVVATa^z zPlX@fDfnD_4UE6q<X;(ieDpy!&{5=>DRlg^7B)Q+a^v;SPGzZswY@~SuFcaDK>L}Q z)+3tnrRQL~M~6zTCbENdfz{o+Kj!KFIey7wP96`7@8@m``wMm8QdJZwde4<B_WFOl zcoa+M^m6`!1OLYv5<PC+wEiov;b^lxwdap_ivu%M|6T^lct>l;QbpkPIJQRMgSG@G z5pJ9f!`mV!(jW3+zi3Y?SgsxaQ4)X&csM6dO3l23XMx=CB}v~uS9islmu}LVr+d5= z{BPz2Cr?>N)5MI5*CR8=t}Y8!aQ9vUing=|xgPX5S{Fa14mzn4TynkivG!RR6UfuA z(!{ww?0bKGDnQUlmJhbsci(w7?3LYaB~#NzweN5~o!@i6R8Pim?Eb-9U)n2UB(ElF z?vL#3#gTb3JO#nVcGn^zf6vghHMSBd%5gNFlv}k*$|O*QF@pDmymy8a?UCUw;nAaW z!OB}hOw6y5P(A-wT=hD~>`Oh-QjIxM(F3z0`%M$4B)T)yL_l2b3>;kJ^$<2&I=1vu zexkE)O$m6hQC8bTPgKJ58kbSWas8lHoATgwE2CkqSI)9V9v3#$U!dt^xs~s629B}j zJM({RqxXD@X;*F$eYp3Xm+RIPFKkR8yB0%~D34M~%WbhEhCXehCk}r6Rodv)H~lD> z=)5@AE2m&5QNdTdwOvV+Jo3#13Jb5vtuy?`o>sWcdorEgf)3iFz>M}l=xD-*lLbWh zJdh^vhr!G4y+9M5B+<DvC!Zoo??|w{y&}hG!gn909d!?JPD4u!d&r4|nayTuh}9@w zR!bM8*{4aK1O0q%0TDXC2NGcTeSg$SBfk2_);0&&%w+msD{`@B>*<-uE7RL>AYr{2 zp38!A4ni&Q_M#+4ZYLwJ6WaO>ak-NlO-n@&LJ@1+Rz-A(XeY=*jSI04)7DIt&_JSS zsZDCw+)i$P7Q`CCb+!oRdoKpQ8RN7D^WEc+0?v|HocW#Nwb5KRxX((nIJ5nb0xkrB zRIZ}{_`MsK6a*);z&SK<_Re<%%bZI-9nK_y#r?qeH;BuO^D->XAHm4F*)yx$5cZqk zEGKn(tYBZTp92(!KJ&d8PQh!NkdP{Z+KiLPf%W7jIi_R@yt*^w?^2vQ!nc_bT75F~ zOJAsJIlRWtx7v>r<_AFcfEF$|;;Q7k_@Gw}7S%z>GLtAwmzXOz4jYI>zdenZldlv+ zmZ5{Vh)HLpC91!OC$}b|Vq8YelHQtO=}w7m^)lqp@<88Wa~mBAp$Yfz=o~{FY7!^$ z*y&Wj04hq_!`WZPSKTkiNkW6GKy@NYT{axEpMOr5`TmDhIXCXAuAP$u{CK_kS9h>q z2r_#W^p!@C@XJ6ufH3p0Z2Lk#2E1hzgd`Dgj6!}8*eI?@npKGKW5+tJLFuT&7QR{v zE(Rv4R*ZGYLeIe@ElMo(kiYIz{%K)r7sDXkPz`B&b%j!Oi!^}|sIXe8a6N>-7-oSm z(GxbI0Z3H^dpZf3g0~lrPQ~oQtQn;w1$#?Inzv^9{XTW4IhYR~Bnbn%3L!%~%h50} z-xU5>85HDEh}z?Hrq98+T?!?EOyoX{CmTM%3HofFg05E=pUpxZGI{EY{<woYLy#Dk zlhJyFb7olUtX#-?aJm_?T}|6`l`cxo*=1I7fu-H*v7AMKo1a_&CX|aD+Jbj#Vo2$t z;B9_Tdqy^F4=@=Ge-jh2)|FSBbnGSdv?wU)6`L&FN{1rdzUBy!)qDw&+T4WiO*uDo z@?Vo_se{H!pg^QU(hDwRS_^VZ2l<<r%ikq-$qngb7Wtwps^f&j%+JVo9ult=E-0zj zU5!2#%#Bo1uMybyAJz{i>?d9ALOp0p5S`1t<0@QbQSZ80;Joh%mb3GBMdn9?WKLK7 zqag*{=p`gIB#uP5Oagt?1J#ilFpgm4ei1qVbafUay$y;{KqdnX2ol(7pVL3PF{KKx zGF|A(EV<oM^6U$$qD_*jUrJWA*WO0t;hPQh;bMqpYqc`<&@yyt8Mv<uMc}d*ZWdYP zc7_#;n+IbZ-~yf{sMYetq(;PWF<Sscj}5VJz>&GmSd^ehT&NgtUg65WA&q}3xzNQ> zjp_0zrq-E@mA<L9Oh^1VA;@_svJD^N>{Qk2TwmBOdB}jG#{w{bGciD_ED<q9%(gv{ zYPW~lvf^MYh=)BiAQ1mx&be_Abw>gDIG`4}pO3vSJ`AqCn;f3ncPtHVLq||(7u@`t zKZ_5%OYmEZ8krPR=tf=hL|U6&6X;Scei{j;O5_rfkt2Z#dV)J`$qzTEQ@@f$nxmAu zE)P2w%+Qi?U8+Z)SuGkM|Ap2SDc+QP+l~Ph@>(K8U=6tXMg+M~#~@mu;bx)*!Dsb~ z2paU^0{k%h#*w%XBJ4)`ndw$(i%Jyvu+UmD2aQPe5}kH+ln9chmx6gl-?7ASf}1HK z&D0#YnMku?HiN8KrnB8_E?nvaN2dIbqO)*o>Tl!l+1OwsS9EQ3H_|Xhhcrk_Nhne( z0xBCYVDv~yr5mILb07^WDJY1P3L=UaKTw=6?{%I3;GA=P&-py}=YD+Z80u=3n?TC0 zYR+y+=)sQbuR&N+6`v94FEjE2a}~Pd7JC9YCZa<)B$>NKnX~d<G#7Hr1mvZZ3n?=~ zox%^qGTW2>BF=9qvz)2JhL|~Kp$4BuR4#LKhnJ%f=MR~CH#~%@?O<+H`H~$-11e;H zMATqYtnvU3{{}Ec04yDvDF+%%U8qh=&Qi6Cdsj2h8@9e@Rwz2YHsGFK*PAX8jYYqz zIFA%4T4|?T<(slkz4qUo%LJ?Qvr^MC$SFFps-jV<b!#vkZ9lM)8?#mQuwk&ms2-Wi z{m7{^YkT(E&jEpvVuflJ{mp0hq1wKuVGXKE*{h=xO(;UxM_eyq#BRZZJ902!FnR;V zYXwfTW3HpZcr0)MB|V%!q1kxGn{l9+N?6!#5{G?{$7_%$iSa^Z;ZIl>$3_prjtCB3 z$7Rnzueo<2a-X0#LBUFd+cc>2jrzI+=y^P&h-VM(1nQ$S6aX+Xvmk@c+&T#gy=;%I zQDRj0d}fZd<MVl@qsw?l3aQ+ZUxUr(qk;ISAXSfAb(T5}S!7KI2wwv7M@ZI0L@E#0 z8a}L3YpgtOP{!Kj-#%dA%kLx7QND~nccA(^@R%8zAQov(DZ=|Orr9xu!9l`G$hwYR zZ=aO!jmknZy_Ok_SwNpxD=ck>hO+O$Rt`4Kz`gAn;4OVb%cz9r)>3<{DK!;U#U#K9 zad~F(HE&=^cCtQI%zYh_=nL2&N==qRY^oi7Yv9Q<{W>71yAPZQ+Id9y<s-Wx;QAlu ze~xz%gK$y=RIe9+lK>j%0T-^^G1qMABJv(`a&z#E-8zJo3cL>WT~}`W*=+thmM?3_ z^%^(nZ^%Pj!oyoj4?kK5_}FWlTZgFTKHnC5%rX0XXsT`a;R~l(scSrUS7GgrvyWDM zVeSa1%?!XyeV#=G(;u&0EdOY3#vhqgQ+}ZqfZ84aMW|_x$T;X9L=zLpo&~ESQ;)P~ zX0xujZi$QJLvmQ*L=edTJaQZHPbEq!S(%VRyBFYdwCL$hFFE8tZ5&7diTw*wYldCp z>*VykEnTau_^4*z^&z*z2;aJ(at6o}%c#5n$xte6Bp$#u%eri3koGc0ntKS4cpXZa zQ7H|ik*`WvsYBaGps90Ay-!f~%>0%(mP}@CJ>1{8K$uC<#b#wRZUGTd-)P6k_iWBn z8%K^EMEaxz)pxkO1|5n&5%xg(>Kc=nLFrnY!;}2oyh0YkjR~U@sm)<8lK`6oNR!oU zw>**g8l3@}*a;*9Axev)XP{H1*fS}18i|8|K^?r`TFCLt?D(bYCK4{}z}s2*w{vH0 z7I={52aqfR-{(`n;*E2H%G(Y3w}VyLYgJH|1HM|^ie%sQu+$d~_GOsaYc$Pvr;!(Y zRc+u0$ksoI2LHE9e}POlOfT%z(X_UrO}wrb`1sUBeUuh9!7{_I{2Zw~lQ#?Kn__+r zD6$JZ_Xv`j(p}Lwcb!6BZ6qZ>8pBE6nPZ<_7LrE>nZ{o^gNv0%o(_naTka{ZZT9~} zkSYR+YzqNagQ!Tj<cp!qR^>n?<QbtSjq9&<Uo7x-Z*p$HC53MHG2P_k_b<qOL4-Oi z($7^C7-zmhZ*(aeze4)H;!*mbmjSZEBL#qhvvz8(3bzoxjIKL{Kg#S7v+$qii0Hv; zKH0o%!7gU&9uYAl_vd-kMvq$i2zoBw_Q_6TM2E~9xJ&zzpC|IFcc-L&y~8y{NXKe} zyt?TDqL}o?-rvhHsnMbS?Ktlyu~Q$J+z7SpI1Q3v4vD8XU^PwoOtKv;g(k`3v&xfr z9ZjFA<*%q6{Csh9diVL~)mzpJR><17pKCXsuOMODSNHe4V&;wo9shC)yS#MkYWc}l z`JY}kCsLu|o9~POa?(#=+Gd?2^7GLn<iCBveRi&Q<F1_EVZWX~TJT1e5)XWr*61@| zG0*<6J%TIjoxHjRrUAA}507(~t@jY(2O$1`%j^lgi1j6*m#;Y@pI$z)%eJvM@b1Co zFbk)DbF^;&$#!5=cI6*^<5!$R_}+GG_jRX2>$8L}W}U{zg4Wo4d|9HU=PPSgBtgzD zLLTW{4nh6gmKYG+TG>`3-ufQvUi8Tdsi22brX#Ms`BtXar}E^Zk8p=g*>|qUr(Ee+ zi>USgluOus8x8T0;)7yCEJQI?#^ykdc6`w7MIrrxjNM{BhOQ1)@X)>-CEHE6Y&;`v z`8|AuJg}))YClf2WnPWnpYyhaJmo5VxBtfU_ZJzR*TF6ySh*Neh^=q0sLRqjA9F-L z9B;%o<Z8YTds!5<|I^#G{*T}@*|2>!u7Q`UhsTI@{e%4zE3TSjzU<$3x85Qm%K_TE zq<iky?xSDd5&mHXT2p>v#{L@NLlv{dm1Z$>^e))6dm!w49NFjO!jUT4^Ak&tw>rPO z{d)g4VUY*H=mSDzDiK+S511AW$xMF`!yQt%W)oIbJ>&k=O2%|v^|0;b*{!kEKx`%% zTV*9mWg=2DsVY?>d5A~B!|3j5BQs_6Y-TKTm1Ld}Di1dyUIoj$?OEN0pBr{)w6Aku zbx=1)I-9h*JilW1(&e-ts%LKp(A)rMefx!#SNk6Qk?&s+&%&5z&~o%<hse2wbNN+- zWPnM;x}RDk>!volPl4{c_1Ox^9`NjZyD(ic+x&cdLhb{Et=xFP;kPOP61=AyIAfm> zxLkU#<67PT4a{U`=^uFz^J_uwcHPAX0#bDWJ&-eeapk|a-j4`z=*G|G(zXcFm%`Uv zgMkkKvvEFAK^|xWWeo~<I}^_suI>eQC#}X8T^VJ{;f{F}y5k?;<Gy8{0Vwg~A4yt1 z6k&d)t<6S~a}Z%~14$9Sv>x-!M;Ni|{6I8YtLc#PIrOkiNsT0I8aP`DJCRD3!8T#Y zd^k9nd=tByNycL*60;C#X{_1WgGm_*Bq<Q&6iND&SY2*T|6MJw5cm7Q@^)#zl#Dpf zZ%8c#rXp3742zP&>GQbzojvn9AhF86W4H^$>!0WYMm$<>5*0RU#>((pJdm!DGULPG z)cp7oAg25mdS2!V97{KzMq7;xdD^cV^Nr_rhEm1L1a_sh3<QQ`M6#DZQ92&IVMgZ= zdz3g--&^+nbn(3M*DhbK5=KTl(0{Wi8L3IvDg`hMf?15rbGsjRmsd3F15$hAU1O&? ziANanAlf71>7olh9o64Tk~FUke$ZXMLKy^f+}ArnLyNCg!bbL8GI}eaSb!0j7+3Cz z&$rB&s`X0GpE`oV@qdag*~sna`w{<Z{iGRZ=R>8(8SRm>gdjAM6vk%fVfV}wY-7wi zh1vbmySSPDRAEOg(To3WQ3~kv`5e)+fhH^<Iqgf-nxhx#O5zMc-xaHtUNqaCYi{Xt zH*)A1-%M{zrFS&tno`msdGysr8<@E{EEI-f#w4Pm#Nb(EeW@EY#wpW{M2v!G&-bsA z!l<Y)8UN~U7qy-(qnZ_%hG1d|!wZem2``L;SyNP&ZdS5N5Omv(C63C(;Ffj)qG&S$ zQl=Otxlo^q61?>*_m?rWF_%m*ugwi4z~*z+ZZ#GtF4tEqynL&DP1ecTLMrE+4)gC$ zK!7H~QkuUMf8&dWwRpZak!6F7Hk#y^KA{f+AY+!Fpb2mW-t!BBn%+<`E&4&oajA{v z<(ykh#(<S*OB%NsPlTFWBq6vl_6_Z3H`i~ivog1(`ONvK@@Z8jB!Q;$W(tg?%;e9? zR)5Apv#9RW7*=_Xb=V{TbY&VN<k>Qrd)63kGv&^RO6anH&k%_6n2WVZ0tq|-{dO(~ zxH8dHwh}g5ZIsi90PJHZEE9`*a)IBjEa&B<E^}!#QlHxj7?!<34D~&$s<zW4j9Z!# zG|2eLP~HiC3(60w@ljT^*fGe2@xRfb=jIuivw2(n##FIdF>3~1w29ObHPt8VO1{AO zZARWgtL4i%3B(%nPuK$xegu+Dw@dUQOm>XDe$9RzG4s}tqJpY9QIO`ahrF?aldTj+ zVAEU7CY3>)A0umtQ0jSwtXOOLJJpCfX|7HPL$Q=DmN`KQf;*{%hPEpzmrB*A^v4u^ zHi1%ve0ieRyYRwMwITbTV2@rzjbxgCOL47s0W{ALX-qbCh>={&gc)#h!SvK6z6oI+ zy`k<g<FTZi$iyTeBNOUXHh|5?53MfJQ>GViH)kM-O<2|TzAmg<I9JMCI8T*sJ|k+P zyJ-{<!$k@UAbjn40rMK_>aOgl1eADGZvA%b$8<LE5%~FUi<rWul|_S%gdEK`&*V|s zvf7C{6p8%w`^Ci@xC;7=zk|hkvLbbZHHJdUmvS&Of<}pjK$@MH(-Owy>mqsV5=D6D z##43YqL^~G@uMB7PwCe<NaAun4_~{K#|-8Z%TOkyvB}1sFfrY@3PIthl;Vg4)-otV zke(HzlIvl#*Z{uHC$_*%WE<VrgNHvr5MOnE>TIHzn9Ib66pGT)MckXx5xOEX-B%0x zo{6`o8Y3xEN~bD8RWg@Q1OOJG#U(_Z=jy6VzM#%xr2{2Bt5tcCjm5~XU3lqFd5z=_ zql!RkrID9inro#yMgQ`Da_DCnDUj=^!Wz>4!n8Y+*ds-SS*uKidd_DktBL+4T1he) z{5oF-{#X+kOSenVnLFRpqlS}uZ!QzpH+MILoQi(T1y)C$KZzc`+h_s10jiwY9CaOq z=uDYw1T4-G>R4(|^%7=777f|Ml1$PCP8`*uc#+{|^s@O`$WJONKwT82wCAGQ;sWb% z9u>4N$MKF0JV;E#-I}48OcxN(X<m+%uQP{mw`%9XViHB{h2R;k+~~=?!wI;dEJW;m zo^v0H^HCCBj^ogEL(tg7!Cl58LVC;b=7@~zETy^G50X>NBA@Dfr9tm4(&h-n9Hj*D zO^3py<Y)lY^%@9s0Ff8iyY*@WjQ#Zy_w7#I69v${^zW~^(nbqJWr;3djaK16j01%E zN8UW$>T5Sr`ir*sz=tL$A!B>0r%n<h+dUG<TrjnI1SE|NF?|)wbr={>FFFtFtz$#+ z4}DbLdhzR#hQly6aCqeiu54o7xygMU;yw{?&VIW(gcY})7}T`bAQ(R#{>IfPLt(<y zGV)u7!FEB(oVlcBED_Pe#>*M5sv@%rOVF(WJ0Pf6Oy>~j0x{zprD}6&KX3q<5+;_j z<{_<Hbs^npw`m}12vmDxkK?g=yF$qx>a!(6Ik<MJ@P@erPuEgYL?Ynv?)SqhyD*P8 z>^N_wa#N){-)^tFi6$q~s@S_MVe7uq31==>DUL*vJxO9d#9COP*-xC2QY8RC(DtM& zbr!Y<7|%Wa3>#|r6)|omglkym!~niLMgfB$CMg;S(*ZyQXaJ)t9;1-+w(UYfick~| zwlsI?n!f3BXqw{OU$*tE{^E7`;O^7yp3oj_j3}+`m;2_W4bra_(YD($glPBB^m4y< zdti+@>rCPr%mDHq|8bzHaMVfsS)SC%vG~DwbNWh4kEq<@xao}@<lChmX;vV8Yh+Yd zsFnA>l`H=+dOwnjsSiuP>pV=7nVN(tQPK=_V5hKGo)s+JYM_w6F4c9QNC%d)qU!!& zAoD;BJ3+}}5z3Cy%In8#;gUJ{fR!z3(-g^wk4RDaL$URtD9upB`nA)2=oICMjN4#R z1h^SNCh4fu<=lYvRcVo_as?g_MRZ|$Dr!{MIsqLR;d_OVmAq4jmg#)=(=uVwir#?h z9V`zx_r{%_kVo6g2I@b0oRlDP#r1eiuC5*3Z=^&i5||107>oz@?1euk-qjpHkyVM+ zOWze^J2me6^kv69iGHA;E+yGR>SUL$7JoxAlzU{YI$XDNHzi*vK2a%buVeQHg#+~@ zGY0W>1$Oa|p_8iy4<GfvIf~(e(rwE9Z#o=Q((t<WQ&y`c-op}a&yun6r&&9~O1iM5 zD`^#7MV>9g>NiI{cb|T!VUgsA+f~Dege20u1;vp9X8|5KC<*n^{rDNkq&y=PSS79S zAxTA-qTk(ZfrHC_MzYt!YEeU(9Wr&3u-CkBkR0d5Z^Bx;vaAOJ^`fu_t2EYr3f>x) zNUlv?2NKswPUA2Gb8x0HIH%Fz-MonH5r70N?w`&oD`DaowLGyjqArDa-)(5pvL)5E zD`mTz{eZ;2LsF}L__h<{#s{y{q=aqPWL9=7Y*UX2_t^*9u;!1*nz}7Ki8&Fv!R3=1 zBGByziPln(H6A^P5Adk69=}t_Xijpr0wl*12>?WH25i$f&f(T?M^2|t+=r?v-XHIE zs-^fR>6114{B<c%;?QtER)1rXLJMG#W(JxLZqpa%DgF$kXMV$gRU?GuNrVv#b>}hZ z1|__DDpjibkuGJJ^(i_}W0L%oyfIRKIMN+#9pBwZ);!}lO))&N!X%~FMrN;h7&d=C z%bq*R5!>41+cJZLOVm&VMbkKx25n+g%Z)_IQe9-tfdb-<Zd;VR6F#YZb3oNS_pUC* zp|W52#zbDkLq|<5*p6tn&qHQcyqtvy*R#BFUWyp)MNV-G&k2m(bv(f*u>`}wHZIU= z1Xbmyh|hFcFOyhZ$0e3=-{wU)tkuM2b<$n65I(XdGXuSGlp^Z^vd_cZ=@-QS2yL8f zCDlxxAzGZ<oJc}&!hedvmrX0JZOr!Qh%eeKaVrRCpF1vEFz1e*<{kTNs^vR52meh7 zUg<Hu*yv@x1b$t@VV&hdB$yEoxX3>K>C1Kh2ZGON^6T7i){M0aIlY4UY~$-EnG^#x zfkqDA;h~$b=NRkkow+aR%oocZXHlh8O`sD2#OKdFrF!sB5-%0!R2KQ|>Ake3T)9z| zRXKmPWrT^XX^Q5UMQseKfw4P|*jvMXwOCE9mMA_t#VeTme;7J7=2)paI9FuQYn(>y z2={&`D!6LF%#$8>iZf#q6pz5Doo414m8jO-#zdN6mD&48`5Z?ev}<dgl)V$y5=H@t z=w)ZD(w$s8+jP9yrJHTSN_XJ&h?kFdWneoblurRlDj~X-B{zXpjyD;&KoJYhC*On_ z@U-gn8~$Ep(C2Br^&X}?F2LrKDB+XHMluwrh20dSupyH4eIUyC#Orn1_>p2O5uGhD zkcu6|1k13YCR2{Z!#V)3pJ4ZqS41(4xWoe9Ul7i609FfDMF4KhPP2yjV-LSu45Y!m zpbWwtb=5!Wr;n!Y+fBC2B<U{KwPC?j?40vu_kAs>-Av+aFv;17#25qa*{&yJh2<&r zGpfL@NY?oQ)Ws?LMv`8(E0#+{veIxq6VQC3OYygIBCneR>(5hZ9=D0q#v$42%`)bT zqNcZbjPvJUq_VU0k5^VQE6-S*^x-+31O8B$szz?dnPj<YL|?i;h43`L)!`8^?|UP& zcadUqt>ZkT)5qzI8F_xH<N0SRcyJRtS=FPV&8yE<WB3B=w_3rRTa=5&;+_8Zya<|a zMe~IFYj{7zDUm?lfl!Hm%hV3U%8e)vh^5z6w5*-6*PsUj*e3<jg=$r`bw;qXTCtRM z@58s{$<rjU4(%7bc1{uJzYD_jk6<MJ`F&}q{p%X$h*zCP;+Li=MZ;@53;gLj5Vp6X zAL?G8lc6;aJ-pw&R+d!ox;lgSjP+bahU2=tx8EI~L&}vE#}z^1hHRDYnmM3-l_U#; zwEfhuks^CX(t$2r5;OuV4?us^v9S7U{*iv3gMDJN3WH!tW+s#c*7+%lhZBiw>a>#j z<0<MA@c1vq;kg$X!K)=WHwN1*h_SXYf<C``mb^1x@!E-uRT^g_Dbnkoo~6(oH^)}z z4YxN7BF->BBW6l}89e<g?OD|LdF9^1EsDZrr7Wq%@x|gLXc|j2hZCX{BkF4&&)y@o z%66Riu{WRPJ<P<%Mdus9o0Yr4`Kn{W?Y1t=JQr{ZUVrMlM#d*u3Bh|~TX+A$ga7iw zgIjYB63?yKu@B7Z1sc+~Uyh`WAB$7upTkUN0N+3uk^KmAoNS&xPA0z<U|Tjkv0wcn z4c(v%RImW&LJNG}|9A(oaVxH+Sih-(`MkHU#E^r1q>R<xon1$oBqJMV+2Q8kBfoxg zDEpUn+)P`NyRv0=K;oARay(Oz1ItAQu57A<T;&|Zj>KfgD%a@|w7{<P7DkNSexi$8 z^28EP^k7$TeJCrVU5bgZX%=fe$B(VY#N*!6Nr&8;I|;p@`kp-->p!oTF=|r%>52$+ z3zqg^Wkk=9;l}RQx3Gs5yJS}laqskNy_-o?DRG6jSw|f|J-nP^n#LS8zPl>BTT@oZ z>4NMe`uxX4o4r?867K|N+DL)+I1|?2QWS{?Zm@p9v!22zw{CxC&A}AfLb%{WW1w#o z0LY{5%pEfFpmUWM<MsundjO24bPH2wat<JhM<iyz4L-in50H-#q>LwdwlD^<W!n^< zcS%z3{C<Tx@j%601KD6nnz4aLZLn8QV9Lc4T3HKLLk#YhKTC;$E?uZAT*WsNhtecY zNzOhryzz6Uj}Mm#G$tNq+duX&tTm4Qnk}K20pb7P0Ir8H8rBJPmLnT(ul9I<9hiYQ z-2fzAH@Ln~9I?Xqey}99zH=n+6+h`2SU79PzmgI7SJVV8HBGa0T6e^ags#kQ!-%;T zFG@!=?HDS%U`0`-A*W}eK2gqFdiw*-<GH~8@FF%nHX>Wf#Qt$M0MNsqL!Oz`y(PP9 z_FFH?RC7Q28-a_<q>etHIJ(`(xHU!n<ajw`-{{*7)hH*R|N7oN2KaU+&)(SpwwD*e zWr;AO_Cxk>WMd@;wFt=4D~hQUgBoRkUF$u0y+H9ivssMWR7$!PjmV&4PS(g_?#a)m z;me(rzOqRtTOTkOxI%i?DAqekdajT^KVTO-L*!+kX4LO09N%|rAS&Syi-rudyWh1x zQqS0uzfN;<jdEHmz0sXv&@(@mj({#7y_XID+1L^O3n{GsuH>w_)vs9vx!t?m?uK70 z5Ar8>OdqpCb|kE>SrZ9$lq?y5`@5rv0YywC^2?ip6L7TCOphELQCb)c_tF5og@N-8 zyP?t&M!|Z>500Vnu+cW_^xh}<-W*PW|E9(f=?5N5P8{88A$3n!84&-05Tr17?9aYF zq-DwV@W(*0AIKJVks;j1`OxqrnvBn8+TnX(k{sZfPDgtY&t1R9I+iKn;%pw0mL+^V zK$VJ>j4ild=ve$S<yB^aO>A-a{cpZIjmsI|cz^U`lV33aU{dv^G5hkW=rKKx4HdFj zTz~^b5k#scP;!pEb69GG1ZC=lAS9*;UMWD6|8CSPC0>VvVrC?t>GiZ)1MZ-cSQN|e zP_0<`<=AYZ(AJf6F{;tO?&^P%98zM?jGcMH`d~jM<&Pm9UtE}4Pd(7K1Z)0rgCA7| zegbLyE^vGNc<Cs6e4&NDC6;<f_SyOx5BsG;ZjU`qq8`>Q$0}yUCNe^fPGUsaLg&N( z){UQC%K7_}H@T86>UH?7@+DZ&e^fl6*|a+eSw0>mmRnu$tnAhVPERq0gTEd6Fk%ze zd<OWmWpj3CPBFT3D;yZ)fBO=W10{t+H79|c$f$>`;25CobOmk`JNG8Ncjp!Zh+bh3 zOJ3eU^JRS;Vat7tzlce+jj4j`O^iH!D~KqUewk~__;NO|wm5>uI(BD5Qk=_UXx zu^LEsu*ZQMY`K_c8kOxx*{67@xf0C}SIAD6=L@FM0ER++bySS&PCbFquEXxL>w3c= z69>1Fc<`*9Q=$zw;qPmjAHd|=gE#CzfSRHHH4>i1b<MVnf(#v5vey;fK8XIh`Ml-& z*SAy~9y!-_vf{>2iXq-yZcu4!G@B@Flr8sKp(&MF!v95Utm?-Xr4~@{_4NtP<~z1E zHf?e0dk^fjhg@1_(=I$9`He~NFUoyMcDF-9E1ND(EwjaEfBqXG|88XxB!=a2s!AF< zcgJ9OGk^Z-=Lao(am8I1-={un5sJ~IhPWqR67*rB={6^P1YL~s9RC$}^H~2O@p?g_ z*FFee=<#dOiSsgx*Qir0O9l6$Gc&vqMVAEYrXppSz&>~<;Ds4Cm*B0X(lp8H;_CEb zT>Wyo;t-E$P(q_*O_s)HaZR?);c`vRRWJMUDEr2qN&?%9LTJiMLA<4NY3<Sq14OIA zF46iimq#*F?od_KIi6^Ta7X}=Y<bIsmrE?#m<|z-X3?B*iIEz)U{AI-X_|>MI5pY1 zK898bdL$!Y{Kbs{O?Kt>O~(RdGFdzxSFa<@Ii-`M#Q<z1FWlbQu~WUu%s!-3EGz*5 z5w-}Hzs@Zw$o8wIwR`T(7E_vGhiluz!*us*!1HxW$1{{iYv-7V4mYvtF=t0eZtvpH ziMyR}V8qie+L%<?h&h}IcQ$!LN9O6PmwI%Np@~fdwt}?Do_wx8xiE+(e_?Yc^q{eP zv-4*q;X1uQ66mBGS60@p?m0aED{(>vy#xP84RM~}=LaGF)Fx9o1WDWp@TejFP^fh) zw#Pcby|B^4y%--xMDxSB9dE6PD*=rXW!*1y{w(;l>oN$cMX)3E>SoMDD|+UvRNIol z{6^Os0}|Af(3XsvGwq(qx>!emQSM;4ItIFF3<g8&@L>DkeYCW_wUq-HcZP8U{1ZvV zGkmo9ptf-7WnCH?h~^nt)<^O9;Z(F*zj~51Nu<*}iP%BfiaoxJTu;)jq5+`ozYrSv z0#0jeWis7_;S>^50>G>@`)&;?s$LKG72`K4U$R%%9)5kwApGdy8QRton~<5!E1d$F z`_*0!8Pe#g#U$SJp7MCvGRVc~aG0?W#3A})0<E}dbWn8n$?v`HcTfI&eJ1?$<oo=2 zqM_Q#UE)8lYWJ3>|Nb#3k-(=7PnKXBg9yTO#cCaZO6V~XloC<pSg369Ad8<;Qj<kF z<NJ^IKv$K>A_6$LRqznHS}A#KvywTrAvwQSDMh6m$95_B8UN<#p5W<?IaIWk5LlT) z5D-CT1P_b0rzD#%ye`3PJ{Bh^r#qC3aJB>!M_4z%razh+HiA`}_~wEU?h$L;Q^BLE z)yi2HR;&2vHwuJ5In5&A#s1)030b_W{Q1kPqQZZ6#te$=(nvkIv<TCY?bTEl7msl? z)9$z#LFKf)e+MfWTfH7Ln_h~@OASzONL`-Is}>NKwhFNnay~4$GYcU#Um39xG*ckX zw0L(Eb3ZmU9X-!HSS)j6cj`P?wfH6o@rk_4<KS6^D3>zEaKQl()jl1FTkqzYYd5J@ zR25;MIb`lW4^LDrZ?LY@{OKURd=ioV^b@>6s7op|?gN}@+(K<C<mHV`)w@;!HTwI9 zvKd!fGi#NcfpHD~>s$f3Tc0G2_&*V6Qt7#O5zZyGpR`8EylpbeV46C2-t)9XwOSED zX~YEG!XZiQBMzdvC3*Mti)6WG9brA`vzIQ;mswIlFg#6wJH^q7M}(Qpl?1+1nf$Dz zGmYkF)u7!>En)9Ku$$8uB97-<{M1|A-(EzbUp;NS`l*67-5N7_@l|)}Vgu1yy3A(r z6(Hs6B#H~6+3*8-jgX<%71S!2oeD5{f|?9AatL6WRlCTU&U7z1e`%ib<lnVT|9uY* zSR3ZT_p_eyN|TkD<17R7IEbRbI2pcrYGCJud@f#+5C7hqrJ*x@UC_0bodA_$iGnWb zAiGY<A>lnwWiRAgUgS*`qPtUVk7(*5%=fYS%1466gSm>Zdw|$#V(3ECOw;EpuF-Ua zQSqk|COoi!J)P!RScuoKEd_;N%Dw8K@#L^V@zx#-Z=HKD*7y0oqi78jPeIZ^Uu?o} zbrmLmhI6{x$?!h>iNQxCV&cuepd~Q?E0WeoA|*P25SCexARMu(S24{hbQ4{}!&%}y zPI1ojqKDmA-T&5ZSPFBqf$gSRUR#x3gONyQMnodC%`I6z=d&BBk63!E<d>B%ULFk- z4^oG5O+Q$jP@5g+i#0c8L&4-p$7#LJ=4q^``+aH6VtgSXCC+{nU2$5a%^lT>z0jZ= zLasRB(b>$JF5)=Y^PKooXNo&qB^WqxaM}&^lW0M~<m|q`$h)IfCo4Ze*S)c9=9X=_ z3PV7(gonpw1yq427YkE+im{X)wHA;4Pv>k=layztteFvsVjO4G_cN`@FV>sfEcUV| zNxd`U@@IcD<*=qFv-SJx^-Mi30a-5a1P+nrS8?#y#5Zea?mv7>s7rKDV3}2^9ooy2 zvMQ6#Se@%-dqnlUp|f^)N8>SkXBwZue>QSr2wZ+l1$33)8o1Twt_Xg<zNE9kd|va} z{Mbk`wa@Hqt+Jz9mG;oBAKnN0<3^sxm;UxY>|hhtny?BxELXq1dQ<4S_f1`)B(>W& z<=N^6)rW{xS(nH<kmZ2}+b`emGU)A84F0%t&Ib3ml?O<znI+5}w;<_DC)lC(Nv&{+ zA1(fRd+rS^2}2cM?b&_-eg^o%JoLB3n~0{`i2C4!%U8%|BV(HHwBPQ9UC&p&<!o@V z&sN~(k0cDi{KHuu@R#lS<d~B!=GjT3=FK{>cY24XZtO>W_d_l^&BX<BNaGo>ZOKgJ z|59rKDj;%5hLX=ce--`5Ff98HpS}LCuDiEdA~R7p$0%R*ec{nJ+j5QmtDmvg7+<LA z>bx+oe>{2q$t|753u!@X_w85^-iy5m2DuwYP-(iY`|qd^Nd_mI#4pK0LvFmzWxBQp z|K&zy5xs^$*k{(W^oR{Q`d8`oli%+Q{zazmPW?xriY@2sx?_S3<LSyKI8RXRhLHb( z?LR{wh$Ytiy;tT$dJZSLtG3|JSs$iTptRHh9Rdr4aAJxJ;ie$wQY>@5kDDM_;)EM3 zkaKEPJLC5D#nrL@64u!deK<_>aGHh)ec+I&&UoV|(<5G7D1NQu$clcvjwbkG)*MlO zOeh&M!*AA5a3v<nmpgq<1y{-8P<2aSn8yLe^ea6lxr)2Xm%kc`Rl<L2+hF1%Ff4Bf zZu$y+*f8|r0%r<>DU6uustz)Q`N0NG#E;*%G*-+{RC`mD%Ogr%NX)@c+`T&gGO@s9 z$0z-0gn^pE74y~;&*5<DhGX9pul75&L9&*toYwq7`lfWA2`ow7$1s3BwBJuk1<JL| zYN<<7xJZ_JA%ZRUGh`J-w)?5bi2e%!lR53Ku(1XL!YXlYtLvtKrlEWa-=D`LV4y}h z(8^19)kMx;t5oz~<Tyajq1h1y{G9~VQN{y4OrT2K8w<a1RzUX<7wYL&raSz)!XM8Z z@cCLg5kh_U*DBCj)FZ&}CMylgm-rK8Is4amQ4sExDGC7F_^1H0i-H@PxW8)WG%RXN z?EERxkoTGZMmK@sN44qZ9f^o7D>V{&^=znJt)*)KVba7jtkw*CfoNCiX?7I_Xx$Bb z<nP2Y^g~bBFqrV{Na#-gaB4`Rn1qApXE8vHeqrQqja}UPb0S3&r-D4=)5|R|nBZ3Q z-c1N%&P=_%E#@yL=7=~4GIqyWkD<88A>wyD4cRJv#d{$(=MpdY^3|V(n%PI2`l-~K zU`qdr33{9v_53ABJV)k_QHOg}2AuySw$M{!7;vF}B-vIdFr-w%9Lhw!Hd-Yu;n<iC z48K1?jQeYwI?#=uHEw;WxLe{%o}6$ti|`3<4s@b^2;ut}x#@VZn(@-)$RTD%Erjtx zGbEu$;yjt>(!_{JyhPy-Mm{ddsKlTcX0-nu#w!=8s=K1+iRK?!+=sb7B|i_SOgi%5 zx#I|eWrlZ24yS#LKl~^y{V{|Z#Hi({NB=Ss=TKtuW6KM87xBd`+~Mtq&U3)9nD4Kk zWcMA>zYRgf4Ww%KtEJnvC-Y&G(8!S>XYy^bsmZPCMAd<y_`I#;q2SCf_9^Z4&#ofk z;(}96xt=PesGjzpJ=Lres}s|snJuE~;wOXiWSY2UrGi4G7}<ie)0ZztvHCk<frvoQ z9t>doK3rkgfy!5{2TxWADJk7Ws_zEs?m|tP2=R@Pxzgt`wbYA3c`n-@ki%z^YaK^- zOMXj>_$65Nl~nFxK&<%pnh6w#%(Hy7DiwU_8`C8W5#Mj&491+Q9!OwKAOXC_a4L3y zkvwJtofp<YtN;k8-rz~$y843t!kN87$e1*l_qO;Ga4J%zuzR&i2lyCP2{peD_J8UL z^78$3{+6gW&k%zYt*-fb{Tpa@V9MoYa*lL`?^V|hK1ifVX*zpT1tRD!J)}Re^3-8C zkWHK_lOOJBGRBzKYK%gq3oZ?C@x;|#O5?jdAVVv>3Kw;$Ro91rGn<nU=eP}J-XsY1 z;ypYe;DHzRiOJJJZ!Zkwwa{SrN2Qm-P-NVyXwvxWO(nSz_t0k-$r9$F19Kz4H>?<f zx6rPihXC-2J*@AA3HE5u6(%h?d}$zzl?X206KE^&e9~lz_ovN4ZMLCmAGWpBOC2uP z8QyH@C+st&oI4e|jyBR;3`wRb2zeQd<SA}JP;0ZSEvSr0HCb>pdIG(fz@y<#2AAK( zUFA`Tds}tOtO>9*s1699aW!;cxeUG=)xk;tljIg#O=h+z`olFdvUurFy*^CD(ZdiT ztBfyCuwiIO#;cK{zz|#a;SW(CZ*vXbJE@&dytGiN@DD_(L)ctH4c85)`Z`0Ka*NnT z8RG*lZ8p1`8G8^<<OY72MQjufY>WbA4`_6r1njE^_2s)ymzAD~^{%77Z<?;VlZ(3c zJ!lt02G<NM(*5Q9zW+8h)gRj?HV4f#lU1|Uy~)LIx<*FvLiekO@E68%pX}_u3IB(L zHQ!X+d%$u|fFwwl02c7`_df+)5d;|2@W6FQEnQf~uFB_|{IVtq47*2de)aG*C)Otc zedJ*tmH5=T)#iuDF&Bgom<M~p9-Ee7yS@M8BKfIh$1dPB`hy9;7p)V2S*;2wdBG3( z{4n=n7WHcZX3KkCb}gnCo53{U(e!&!)DEqZd!}lc`;#UTmJ%M7ijK5<zZ4)zdF>Tz z;XE049YA1$-&xGCWSlsDA_5#Kj|*|n0?AqPUoqkFd*f3)3Gj??rSM#=62ydB|86#( z6a4atlMDGKlOgjg&Xwr@HU8W=1z0E_M6j%_OpC_gb9jc0CT;*orlQmoXafPD1-Wxw z(T5B%6Li4mP}+c&+PknSNM;kl2Zw+oL5i-|1PD~O;MiAB`Aip~wD(>K1M=L`<%i<o ztPDOXlHH0QjK3Kc+`Y1&%oZl^=($&s*#3TwY>?Q=bEEqZPMrS8$@PKx%Qn|`WBic8 z+ORx-)Q`X9M$N&>rqBv+2ruZa=-Ad%ll*4$4+dH)kJ87kT?nw8HU?@-)kg!Nah;}O zOrxgT$C{;C4%R<63r(yQ;(QehX>;KhK3q4<nihKfl+%5EBg7dnkK@`=P31d>X?3z> zox9v^8`_z!XG}bO&gSE<*i3n^1{=BuT(yKB8p5p2e+QVbcG%h#lOtXy>`V9ls%gwr zIIBp9=%bAphU-*w!`1fSj?_}Xc(M@p)zSDW_s7%!*UO90(r@g{CaO>z3%4E98&h?> z2?nobxWzeTLU}EFFcMf+RGZypW=6j3>3PL_8GHErDlww6(Q>`VMkjiE<ZQfL)w+b# z0WU@>A~`ta>*#Wi;nj48X-J8td5rzFlQ8Sq%hp@%YL??}4W9dA|H@o_zL@^qF>Jhc zaif=pi43y1>a^a$<zb9G-$4lI$r)hf;<7%API1utcINRf!=s-8=CWrPoYWmxp6;7a z9W*pRBSysjAb*4Cm~gMTMKilgkb3*boyaS@DB&FXuxSNcrEBR5zwun`?f-U1vX7%D z>5XIsz4>cr?^{as_(D=YqJ}TaihHE4hB!m(zlHBallLW9Z^>qu92q7u^x5L~&fA7K zXR3tuU-Am*^bXkczTIOOT96wb`8WM~#wD-0T{mZ<CffT3d_=u70c}h{`WiWWJF}rF zqqbywXP$5=M7(>F(9=k~-e*W&3gd|JJ(@y^#DM+oKNwtd|MuU5Xk(gbV|nzf^dq6o z;}Sb_=?rN(4MzOXi;+>?eoyRv^!c`ZdE=^t`xz?(FD?8$ow0KK!&QrCmSnhNL#;zJ z#Jp39-0FElqX%c9%|{aiHIuBum8%f-QMNyK9LrXcsdk#-=ij;8Zhncq<cxrAg9qp) zYH=^zAm&Rvw=2NKs>wN*<E~nnzW+UJ^lTL9QIm1)`Q7(1`tF0<#pfzcD|k7cQF_WU z6lTt`@aFJTiBXd|q?U}`p5MRWs>^YPQj5OFM3%efOzOHv+WE+{E+&?_+6}VCJu4>H zBmNZp8xH>({9qJXpL<|X_|WM<)_Vul${ZGdIVPazfpDXmqwe63iW^dWmo3i^+*UcV zB>zsoB-UwkG9iA>)T)>8IodFk^_cQC8bzLZ{Cm(W+0#HrszR~k-N-`RgSDUcleC3y zJF5}h_)S+IJtFvM8)C)ohNH)B$7u);8w@sA8!7K8o8)^O6C#>bgJL}Gx~ynhtb6oi z<j|7!sp4KKLAo}vg+cqJ*~zOVkEmq+t6fl%ZvD}j?+N?^8E(d*aqy9)cTO$Fs{%KU zT#k$5A6U8$`+Tj7Vz}PGZ))kq{qS`4)umx#Blo~Dn@iC@;~2O5wkMOl+{UW~eXVAu zr10lfjOl52G`;O)O)PKe?|oc+r*`AY-<>NSb0+F<DsDN!rrlDcz0JOq|AX|VR5^H^ zG^HII4&3x|edt-MKbEUoySHMi8|zzJU;=t#+5hnEzxdB0QWP0Yy^IiVAHD}Q7}gN- zHqnT&Z4Amq3pM?-<BbvXh>kx&J$`mqf4AmoXWc^6%CGPD)xW6p`5)2`FBwZjy&9!E zeK(C=+S!0uT0K-`fXE~;z)=_gz>x@0raViE9g9&KhmZo*TxsSR1Gm;02>E>)10x(E z#&cljIF<=#yDH$ig9EZt`~o8_lmaoj+4e%r{n7^kLlgroiI`%NR5K$7%T?BNB|C>E z?%v@{?ZT?0Vmlo!N?PH@T&j^c*l#k|j{t$H>j?n2ed?fsM8A;?UXADzo~Z3X)5W#c zQY8`t6NlRMU#qV#5hS@+^wkQ~Xhu>3cW*xC%{L5saaYgLwBJRfs0~0+AD3|XCOq%a zdub#8quOZRAc4VWJxYA2$gxIDlm3LiZZdV=YwqSa^24(h0}hFsT~~DM!TukGVvfp# zzuy<QD<cr<a+CO0)<Yxe>OX4!0Hz~d^aLS7s+mK%2V<e2V%sj5_-U`7S^g2?8LRp# z^%=X~31S#wBJiypgzg#_f7{^^d7n{XQ>-3HYYy+paJPaP-u4N|9V3@MpnyKJ(l#aA z;y&k&XZTs}N{Au}xive$PL7n^D;*S$S1~W|VfK&_QHlh<Z7ril7FrK}N^ZQ`r2md4 zg9e!L5~~}s+qW${rciw0?f6Nn;NA=bC2g>u(d&x{1L)|R$O;hAX?WkfykO2!{xN3W zTK#Royp7&pjFZh-weR(6^iEHteu_YWv^0Z|_ID9&w+A7Mj{cL%uQ*wN;X3T)5gW<0 z0;?Tj&pVkYi&^y>e>nk(`_^CU6_J}#8O7!npA5*@LW-n%P=IZ_4oLH!<&r}4Jv-Wu z;cf*^<tu$yNn9z5jSE^Yqvjg4-v!HrW93{YL4}If6WR26HprabM??0Y#!gYUlH`38 zi+pV-k5}30(VJ~_dD)dV@Z;cw>?@nW*8W7a<<Hk{#3-k;j6$T%blDDCzuUfNw1xW( z-l*$uY6VjAaE_;YCRY3D5bW~ZS5VUVv`<^#6-_{u?zCc`3ymw}_Toz+ro7t8>^HR% zuLKZzz03Cd-p2EPq4&SPQ}*S7R#fq7_5(&Ni2-r&C;Tb&A3taalv>=DIu!cTISWlB zG(Rk6)OZv@ll-r22kh%zQj>?~BSlOqDy~M96-?W_m&{$H3=}iQR4ykD6JXvc{U;MT zN?PDIAIl;F2e37Tb&4VVpZJd@)+#0yZNXnR19lbQU3{?}ev^-|2GcLD1@-RJg-#Ae zgzuglJ~wz8W`=w^9_+dAuKuZP_;M)`mj)s|s&T%wG=*Sl|NdK~n*sRsK}C){+%9?u zzO!GsnA;$Tjqft@nyUStf9JjI1%rhAa)qw@8(zkqVMFQtebM=k<-d4xSS+2tlhQkI zB!hDop`5Z_+|qQtR?&1+nX%?K1MjM#8$0MtM4GFys1P#E!fEsDL3I8_UkOE`j);px zQIS~MDhzkD1!MCXHz<bVQy6l&!@fkNvqslyvB*&h^j#6<NNgtbn`hBg7sKpZsfjSR zjYH!kiC2GX_3JY-S~SftlCE;eEPU21-@ER&h#%sk21N+1u0{LM103@Xx5({f3)^^9 zK^5k`l!bJOMEe&UvV5xfffO;f_{2`+*SyH2kcc_Wx+{fMYx~9Ly!2u$LVm1yYgRi? z2Y>;^tdR?Jr8&G}Nd|5dLV|^a2>poJlf;#?yil{ifF9)F9Qmiw{}tTkcR+KpPw{## zOiU+8(V5FpyKbaJSIZk~=)1=YAN7yZ^i$hx?>rrzY7Q+iNQnA+hPWLI`wMI-VNk>I z!Zj>xZ{4UL5FI7U+v5tVA5erjWy=@ka5WafGs|dl%K5!@;qbZof$7|0gM<+NgzBL| zp6B{87SezGsvSCvISL1l;V(=bU&ae@Hd#1-awvJTz+5pWes4GfgWPnyliP#MFMn@x zI*58o^$VHkDfMRmL_|ReX0@!5JaSqh?djE<(bpHeJe-X%Azvb~Lq>d2VzCq1nioAB z{JniX-?w>m^0FCH_37{Wq1rv0m-hy83+yZ0-KM;`x=R*AFDy0;rj}nVbQfjTI(~(0 zqZ`vn32d1)%<1VPPZs0Q##=XLnrAa^Vt~ki@qcT4OD&t7_QamQ@EM^=^`fq(7@ycu z8O1KO6fTHY(uS1z*Djf>)gl2Yh0NB%CC|p0&){4uKL<{Dcz?gc{dl*K-$_TMC&5xd zpCe7uSR*>0!d0*3-S+azd&08-8{=Z!d-0g0GuHbm5j5@rA0-1b3=bF|H>lHIk(W{E zoZup&5h^ZIElcD9{c2apG?pS97Gd~a+{bEX-g6&q@#cQYGpbzlEmMBG5v9X!J)Jz| z$58375jfZLlTC)O%*<2M<bur>squO-?z702Uk@Izi4<3P%WzM*4FqjBHqKlnV@t57 zFCN$VXX2i>)lw&CdYgO%lKloW9qxlcBmZFQTN$p$okZ#g(!O=dg6|*iOaj-BO88mK zufzrkgM@vF8<s7mTg9EEn=qzp0o;F_ZL!&&Y6#-yJCPEtoG`BOIiHLb*&wyNDEZ4~ zMMWPIRy)Q~ee%K|)wyFWoJ9KfCB99*J}-r->=pm}&Sm#-T`*8wqTOZjA1wyWiH6o^ z4_&Kj@*-Zobe@03@~@=*I(e4&)Y2FuZr)ZDS|h<d9RL0U1!(Z1LJ-(x$6Ri8?u?KX zXeB68h{AheFW{rG0#3gwg5cM--1ca(82s-t!4o_WQ?1ovKEK<#Yx$u+*wsv#KB#1< z&02(4TGzZNHa>4Dl`Hr8O`>v@S_qw+^e@l4hgfvnF5Wr+CG?%ZN3Esf7tgK-6PbWM zrD+W_E~|ioS06VZT5a=cUr>&?_4moknuZY{Y{~`8a8+>9W2Q|j;|eX>#NekK^w7Hm zJMw+|vvtjeo`|_<4XvLbRl^@LAsJ&Po@-pN(*5ZT^`r|A@V1psH3g*uR*)b-D&~>c z67hP%x*G8NRkt1Qeg3lV0^duPPCjVmNb{rXQaSAZ+x}Tx=^@`N>S7~jR76Lwvg6;) zw6rwapu!WRWS)Z~L#YNI{nPu}sjcl7J_W_|f}Y&OT6O=$*T&{kO<qrSw9#)^$+B{p z^*Nyb$!aBRgl!ZfJh0`BIm0!_7)H&tT%tYKxHQ3Dc<o2U^(~Rf?zGKu#_K}=j+g$? zkA+JvqfNYp#I=S^wt1fGA_&`SUk>dIi}E%THd*UGWT3xnKOiukKtvw8*kYMCh|^)% z7iUGbO};{^S6HXlhI7I(Caa8K8#|jpjM)c?eUYwpB6~P?Sgx%3>)Gv$5>3$kQsVO| zOGO2r51su}jC;vIdj>{7v^0Jb(<3QS`K6RR{W{RbmHv_b+m_`%mF3|KOWn{%N>~Vh z2a({2VUq(&m_@cfXb9E-koF3)nQuu-MAu<iao?0!gTO$KCMb|f=iqE*1cb1O)!0z) zt-V0mqgV10VbgE<I<cA?c3ecf`x#bFaL2Gy$e^dlHy&)JfHa$q-|xiJiMy>#Oe&Dx zim-l;9C(TH+T8!blmNzkBYaDb-U6zz@oG4hPvW;J;M<5H(8UIBJ<~&nX=bCD!zWbU zvRU4{x!>tIQg<XW1ZZ$B+QRnBN{0yxNF}HmU@6D)o8625Fe9!uNc@X!1(jEV5CDtU zK}BCRaJrwI8OKtN_hkGg(V7{KSqGKlL5Io!*F78_u{orWQ(FV#p#h#sf2t4QJpju| z>Uw4xR>Mw+`w&=<MC*W|oT>j8RtjK+t-eV{*u~SYBILkS4I%8Q_27zv-E)kEg3#wH z^m?%^v1_`c#PB&~O#$2N4pHDVE{n<w_s;#%(Oz7H<SUz#zKfE%Ajc{?>e6TH+?tH( zV$p&4%)94Eg;C6^KeM?RFTe;DF~b<>5SBL_sU^ZMTZ27{)OhjCaPCkZ=@+BzAl^YW zY0dMH$XvSkTmhAHD&G7W?4Zz-XTl0dz3(z(1`x!*Y*sKI=+_am4!<j0N;143Fd{gV zG0s@R5P`p<YBjIc+16bz!qZs;u!Zfb`Lf<mR7tA_H4s>CM#=Kbi}zs9M0TnKjZ2&x zW(W$Fhi_Jwrzq|>VqYBo8TyJ-QyR%b(}#EnidSG7xLhgI+*hRs3g!t9JGOu`ZS`?y z6^IfMDmh5eFDM-Zpm*I&`+AaIXCggMgiHO(3<Sq`sLCh<l3Tzt24EQjNnwl$P@8p# zQzg4@0NRI!w<odLpb4UCGxaF#%tQR#9Dwx0K!y-!%+3y@IUlJ=i{+X?*5M8tl9~xx z$~Bx7?HY?<=|vUf-!^sSY7P6(%yC4=Q%wra{c2WNfwpgivEGj>3UmEZ?0NlY#maR( zReu@n_NV3Rdc7k`g)ayOOxkrr2z<5~49lKsE$t;Dyze*@M#J0EptMbl!@6|?DUA7t zwLM8qBY^S60$$XR@ZHH)nQqI%wNAv3nTdnrVPF>abz3kN)V`<4JO~;kz61m+^~Ux= z!_cb&>l*iWm{;weAOIueGXxN&2LnKNDy!8%P7IZ&HeI+#Z}A;0mI3c{7ppQ@jo|YM zLG(H*k}>i7F6DqR$Oz3>33N~a0jw#y4m76>V6aw$iRf}4SFcpZ{|cmx2W^BgvO6>z zN#8J;K^wLo?0_f{6-{EAEcASSjj0xpd-4;~QRqG>!am*W8B6k<P-kD`JYSZMIn^LH zFQ}sv2h?x~*Pn{!g9z}(xgbBE1{s7xVZpC!zN#iZLD!Vk3|T%Y`-VUfT>wJLMM2Hi zU+~O%`zkj2XAFi`ZNr9P+!=L$>Wl)6JYN5_b_3+re-N#|{&XZHpk#c5V*5}r(LvIN z!Qli91jpVCFvV1|eeyxq5-^)S%vaYLWAJQ{L2>*>kZe_m76H@sD?srAQ@}6lSf6g= z1ombUQ<x9)nh%0dCHml15YZ)Ab`WI)k~L3YZ}efRcVYWP3)86%`q&pF>uY27>Jj5& z1o~VgaWB!3t%s53hyEW$XW|a!+r{z6n4OshLzdJSyX<67Gh?jTLzZZgtx$+8sTm9n zNhA9{)=&v4gc|!2Ldd>_Xc5|IncwUE51#9~ulst=xzG82KA*AZk1{Z80K)441xfmJ zYeCqtsLu_MzmDVxLcsJyuk{6#@>!oSiobpd|Dc193xMWiN(51SE@er~Em?*EXF8sT z_6t!4Gtmi$!!=g1)l1<#S-447D5`-2@d13@@mRC7K6Wf*s3JD^7ucBwEu-;Mg|wdv z-J!H+MIYAY|Ex)@i;aBa5c$3W<wJlzVnyu7qHUK#zMKt1rTes#&;bN!*^>XM_^4;U zz@e6yfajqTEXfrdwOa@}_x$>k49O)*xLQ1Ht1$+JjW8-le{KlV@ZuM340WWTrB<#X zgso0zOM+vp^0FW=vn1*d$J<aT$eG6IRAlf~=iA}VxH5{*atCA>3sd(;4mVu;<U^Z& z7L(&I;6O=OT*5C<65Lrg1K%;il4DWn;U}dTCv+%!dzPp6NLpDm$B0PZsgTD`c(6pA zZq_LtQi5+bBq00tw@Y<oPGicqDb05cR_!a%Z!~YJJY@WMccq#Q@u0FH{QJxcEQn~t zEgK?TDIB>$!F*()UQ7|r(A;=P*aJrB1={7S>@-w55<g}AcnNRebmtT#O<ULj-0pRP zj>YVOT>;o59Lz5Vg5RK{9FXG#R5b;8g^<<ljKhmqg;7vJw9HGmgfHWe%S+J9ET|VP z(`G67M|M$&Gc~Uz$F)Bq?LkL)<JqUseZuI2kT;>X`h}r0ha=y7hYEM(Hy*Y@;1lg| zG)PC%UEx?B{2d$09eqezIF7Q#jythhAm)HZk}`Uq<0jt`zPaEQSTVAVxH28<A!l6F zG+`nFx3UN3STy6bBob|aq&ATvC+}#x-0~bXZyOx-+Skdnhpc?+UUVpq`XLL6cEwYE zfm0%I_;4R3BA)*@7@mv!*?do=q&W4(8CP~OR}ZUG$4IL<=6t3^UlZ+3cC`qov@IKF z%@y;h8P}&%acahTew_YA6Y4rsxHa|oeUwK03_&SMVU=yYsG~~aLRSDVFBY_ng<{Nf zQNdj32paS{8?{ACfq3$-($K3oG~NxpN~^V7#!dk+3Ju~)gZ8=NwrKV8V)e(}o+QQw zOi{8Quu&gbb-Eq-zurmXV;cP3(6uwtA6X5@Z!|=<)E~cbi>E~6PZabz4JDkXHa5*6 zIGRI;HLX-i(7V4HZthvWTf%qcKA`?^NmRLk<LI)!;Q1r+(4zX-X#IR?5O#xtion4t zacBcq1=oF<j=V<Q*q3WK=93$k1qw3hPt*ApWvO<JlV`%YBH4$Iu#K0|Gc=eF;nF8o z(f)w}F;~*#H<)mv<F1IHS-bVwOq|?r%WE`AyzaTts48jv{W!Op3`X8r>RfjYU&$I) zF<0ywL=s!cy8CReL6?NCiM(<6H-4ND5S)pwnMNV;&|K}PtFhQgcCQNy<?t6jC{n5K zNt<<k?B3D)>I7B#1@0qIov~LYa53M8a;u=J=Sd5CvK76X(}QZL3m0XkaeiBl{;kY; z5xe7g&5km-(@I><!zoagW4(o-yMJU?XQiPc5U<&E8+K>0{$O+Kn;#v+2UxH8JXFXL z$T(qOlLUL7A=xL~r>&PM4N5D>!BzgTHk!AdrQryAuh(>+od28Vnm>89?LSqQuDTAl zH=*PINLW>u02fNHZZovu7c{`R&s!)-Qli(r0LR>Sqqa$sh}0=W+gqO40cy$M^odDb z&)40PuOTFCx~q>bWey?<+dZ2>7KYTj;{%)sx+H$7tl>|hX%`}J$iLw0ZTjC1Pe`u} zi4@?boNv6Em&VU$sE{TQg}BLiLQ$Rsnb_PdG{0XmX6Iarz|%R;-a()-D&(dC5l{ZH z+=r5`cxwqNbs_`j$F4~0w00LMGj_#u_Q6_5-`(}A)6)EK!{a|_yY=a4h0K2sc7(mZ zU?D!VoL3W&=)n%E9@M0HQ95?x)d_U1n@{mgT-m&}%0E1rI8)96J9A`3IkFbN-S`X_ zM)$xQdv8-cpz6044wbGrRt>&tdF%O7lF+^i^DLq+Qm(x}Xw;?`zml5mXw5zz_<Z-o z>4_12Pu5k^gehl1{2zW{fpL+rrB?XGhBnjxFLyQ~<yS|VwBZ`n4XtX>f{0BfiV5QX zjjD8{eK;yeDUeK_`Em0WBf$OFjq@LRnjuRaK8FicD3P3i4-NcfIBKv5ZiV)^v-$lS z><Co^Pkj$0`%XfX&wdi0)qu=tv~Xl~T%oJ1OUA{$U$Bh=ZNt<OeyR3<kaPU?i-d_n z32-~->#_eJ#0eYr3+a{L;^H`bv8c0oPhy<x2JgAP+TzaJ7|D->7-o8>4*bwSlfdY5 zS@LDQl7Wag2{iqxZ973ONa6@xk310VOufBAj7P6|<$oW+4eFQJ23Frs?XJqHJcnDA zID;e!@m<5wcbL{D!b)~lyOAJ>bs1%?OGL~UX;$xd{N$=#ddiGdXnF^jN6Vo{G*qOf zzo~zjg}o+HIKVJk9f-3%JY%dQy^@^F+O;UO<TTf>z0TI~Ul?qD`r!@B_cDk8&TZ%( z$&$E^5TJ_P2Suxvc@agPmMk1lIp4=wiYKkyj7{h~bKA!Di{H1dyfpbaTRjWgz}|NF z`@!U4yj-W5$TIGPTXe|xo=jpL!FhMNY9DqX$T#9IeRN9CtKpc@ISD!mebp9!-%&1+ zzKBp(m2x~QKOZx~%lnK^*!Ndp-w5i=NifnJ%|{JqhO767b)c;z(n${Rw(YsN-@4?^ zGu*eFdacchwH@V9iS{g9!A&~mPFh{+s92b$$Zb)``jV}*Nc&+v2K-Co6wyfwe1yce zF0-EPm3e7BCokBZlY7bU`R00FP>=kF{Lslu5AuX1=y-PlQlDt1EM)^Dmx>)oGt$RP zQ4v-mUp5as2SedTUTNM^g=P=>imQ&Kpt0^D>UAHEd4F}eZox|_TxZ^c@oh4tMEF1~ z+99i5iV3z(H9m-Ulg>PXugabx$lB?Q+<mNEwoJ5-S|2B>XoVuL1sF8+SA=HwjxgXi z1wY#>k$Bz{FBF~?H+=}r%8iGMD+t(86(@32vBo~ww_Y+nWnU4x;}R+)2L^ZpF>@u7 z#72(>Ka2|3`n=tVd9O8-n@<kd=@#~Vw9|7WJYTFn#@fWfWTK{Lk|-Cdkd~-UawvGk z=lH?bJJW~b^ckW4=mWk=D@=YGt^DG~=rE=#V$+|?2Qe!1@5>Eao*MP8B_f-8UFwnf zNCh4F@NMz#81dKjo{tE-LtR^m>5gaXEtP1;$DWpw#(m%MwCy;MO`g1dZ%NaG*)9G! zYVPvVI$YZL`B86r5Lvs_HpoPyYbRkf(2Q@MsIt1Tvz{M*^g~y9)yMsfvaBn=H!B|$ zie$X9_R%J#SN}ZG5Kw8bh4^t2OP!xNL`=fGNS{b{8Pk!3G$PB?ou)q{!lW(_V<v#0 zfSZN57e-e#zkFZe-nV#W7TBnbVY!xq<g8y8Vy^ox7cFVbjo3KNi<(uzFO!2z|JW9- zDSvOh_?BZdG;NJ*NHOU1<+baa*SRQFYiAM@Kbv({bc`K`P?W4z7aqX(Q9-j+TX8tv zWy|q~icg8#bUDjn<k`NC5$AT}+&n}zdZlrKx#GlVZWoOxZxP;Ex^2J&VIsF#e@+g_ zgg$hL*d-;I8C*gdG;yJhVo#+qE;~ocPk6oTl1}~p0Aj@Zo@c}8q-&y=KwuNsweJ(q zD(|w(5pGL_`<b!3Cu+T)Qr(XEE}eK9Z@{?Vi=~T=tHz6)@k#x-=4QH-(48<iB=Ikp zD12MEU@pdohP>b3hXM8FZ^y@osNtP=rQsHqp8TnmonnORnB%Htv5uJjA$UbLeCrPM zXaJ{JIXp+r8V7J8fC@yU`Jkuhx9q;IskjYkk;(b46S2&km(B-Sj?-kX<mYo|FL)*} z1MQ&(Fx_0skE%v)Jp|vC5SuqLPZMDis(8pig~@<3-wR6;D(jQQdFcJhxX@h*&EK|h zLZsGox&D}<VzP;PRYtPkYr_C`@!Jh;0YQmNspQ%73{gDyC7-8BMIsa~34D^aNm-HX z)B_)d%3ix$W0H;3fdQHIweF9q<T$=EKlSi|w}rpIKR75QZ5?~N1-64^9N44&NYB^U z?G%ZrbYJbNIHt3!Nd%tnzQY~uwBs^Q?nLTNoH>f*bFvUDdsMZc>dk-q#K-X**;)k- znVqPgAccag8O3Ydz27_X`HBR_fXf3<f+q?MYs=e9aaK2|Ov7i%1UKV8eWMqRk8-hi zxuJ3|vYj~5e4PceyJSR>c1d7XN{(J?w?b$zCeg8xe&W>uzNcqrW_~_z8VWRJWRc54 z;g4#I!G@9>kK@T<&`{w!&RWl^boz<|&=*p4G9s9*CiDyic8ur}2BrruIaPO)ady76 zwG}{l-=W?|^m(z*S?Ojq2LpxvjPO|DVXw;{-QeyjmzBCN3>Beb+{At(MMrv`<ac|U z>1*u9ia+8)hg5b>Vg4ws(vM#e9lB@K)Zy{rWn*(*tcxF6Pav+H&+hKWWF&_z#cytg z=TDnD^O8KvtSq5PeEAe;RIM=;BRuGv6<2fRwk35HFSg%jX1!aWbBC#A0WFujiIRub zL7!F-uKl}E;a#mUU+Z}SAGvaWopIRXcJf(uRcBfEvG7>s*LRbBa?5Y}^4p%mmkql8 z*&TW$hRkE(s^I^48`1nZ#0QkemD%30cI`(Boc6#aq42pYys2hd*Q=lFiXltp^yvl} z5>Kf5efjcdSSf7B*Ofq^h4jHIo0(1YA$fU{?Z5X4OX2kv!_R8Mhdz1y`TY)s_<`^= zJxo{@(R%J$nWI7%+4NX{jnT~sRk-Q<UM*AEm26>Wr^KJxUjbEzYsZUl_zO5;U!mHS zG1?OR1qxb2abq&GRGXlcm~A!5A&?cdOMv<@Q+<^<_f`de{J`_)iNPOI*H*AByEsJ< zksn>YY6Q&p4t2Tp@er$Yz8MFkI5|1UV(N^t-<iijjtG9yZ^zMwb~9W4uBqPBMe0Xk zPRANgPKc+~8XGdFCBCXpR5fO0`3ZNcdv$;NTpjcBqhYP0vt;S>AMF?37WE<%bhW6a z5Q}?yOe@e~!I;3PN5MZvP98Tc+2<txvH-~yUOg^(r-oJf*ysE0THQ93-G<40Wy1_s z@GD;TE5ensXc1*HQ5e>z7_afZ*~yez$-bI%2EFI1O^-~>YF^iV!`UCc!TI*AiZ$!2 zuHV}X#cHr(KCZQ3z80{~7>CubbShD~wN<*N&q_y`Hr?Nkf&ZD}81=mwJ?D`__#m$- zl(=vR{|<QT@iVVEJhpS;Z_JW`?a!fiiCORQ5=EYwHTjKUFjCXsgoJ)~u6QfllOy*} zdQsk|l*Sv!+9w`6E{VJ?O)lI1JMN4>X;yss$~NZ0b<oajk&>X}qz7TYcWv+fqGG<E zaLIb_bK%`Z!}arH{AXB=F-N9ij_$?a7)b0pGYX$LCsR}b#O)P^#2LjFdg4f#D$Ur? zHx)PT#A6IhVd~t`+`&FB4$*iuK6qV7<fta1$Dn>pL@xepRIv(2I9ykoVinu&BS*Mc zod621J(fvx_nMHs^3(0;uE@<X>ao<HSNmjzap9nAvQ(ywz-t(VM*_*M5y<qynN})S z?L?eAEOjUr^uq);m<keqATs#ga3%zK8K=SZ;Iig*WH{^Oe{}oca)lCH1gzcmFr3a) zd|601ws0?zC7e_u=Rk=F(Xb;5XNlr^LH2C<Gz={3Ov1%d!w?K2R24$aigU`Tm!D|o z{*sZz%|#}CHxeOo8%dGhouM_og@#ZdJ6(<_3D_wqG6^d#hl6zP86lh?#PPfK1j+fS zyV*LJ>P(O}jaw%uWg|0XQzr#1p`nd|-M57~1nD~UazuRMLFyRpv4$&8q^z_Fkf2(q zKF#PqI+7CMtBtdx!Y*AuWXF(g61g9NxuIj)qz<{S0pSm$&B-O(+lnizCU<V6?0g65 zsY28NVL3of&k3<D46AauceYM+hMQX#AnP%sQy-{ku%MwVsLzR8dBu1eJMMk3gzkNn zWfSgYALoJy>TeLYHX;36qigO|n7>16X;a3z=?stk3^8h){g#eEP^oJz5&33AQ%%+P zlCzEq!KqT!Z<_8OEbIbLjrJ*5(W7HNGz45vBsj?1T=C6Pfbp$;&{Sfj<)qSf(?LPa zn7s@u7hkQTYnqxYUGxE1|8Qz<Fw!hM5YO4ofp(amt4okG%_eEVr@^q8uzNIVM@3e4 zfgQr1+MtrJb=x`))YdDKN^!PMqgx5PC~s${FXjE-1rf$DG6zedkj&xz{1K6YF?pFD zEs?@R46I4C#MU}qfV+PB+OsMZwe9SXOQ*fp!%|N$@-W%^5=a?-x4;}L*{l%z?x;{{ zN46ZS2O*IgCX$MAw2l+R^TGb~OEV_(rW>f-Y7UB)aK4(}oLs)E!6yVx*y&gjuR$ww z=>1VYg^1rh@yK^kfA&H4O`=EvVt(f3<x4n!Oc-3}^kot6+nbt-Z0I#7glUzE`gV5a zgCpu`C2vK_NP1;t*Rr}E@3ffnoPUX;VazO@&SEJ?<{x!#wsRpLIg2~E$i6&{(L^;- z8Y!uA3cPQUO=~Vj6SK)?_V$D#ou__9qtK)AAj;+Fz}k|J-wGxlKog|7FI7iycVB_0 zUS}2O4rmFmY)=O2ValtDujeHFCz9bP;EeLUx!9zlt{PPpj0~ov`!`$?zktx887T&F zpRN}9ZC(m%PUNG5lx?}sY(p767-|r^P<5#yI5FlBF*wY-taaw$%ij;r<rr4TiaeP- z(in`)z`@@*B9wn)tjMsiTJca2G8P9f|EN}`iWsp#)FDOt2cUtruy@szR2=M(OwD~Y zL<k!?8?RG-1`&=y#7%KTODK0XTt%i|Jf0sAeK7JQ)b7cfAK4G>5TO8!>I9^L?ude4 z*8~z^5y(dvu{wVJx)R~wG>I%8vpUh1x+Al7NB`8}#OlRklFU7ELkjhBdG!h{^@_9g z$}Rq37_vQ$U{(j6>f^5ZU9Z>j)L{0h;h(1ju?CWU1KF*?<VJ&8UV}wTgXL_4^`8b? zv1j)B&m7#IIo){XocGK%D}VEl9rey*8Ve#Q&|J&~cVQtiTblDZv(1HKd^8+T#s}DK zH&?O{2<8h!5aj*^IK)=;kSeJ<4=DG4@%%<h)A2^`S{Z=VTzCU0=L0fMABMAATvP>k zYh_}XEe#Mj7XTa#TDaM*<N8fJL2Wz-Y#m>CD-ZDKc!O(D8?qL7O}(LZs8+^SRb*bQ zMZFzSa#|Ez`((n+l2$7NQhl{I+vtBEP%<U?mq3hoApRk(LT6r;+X3lyE&e5K8hjA{ zdSL(08K|Y`FR^x^Xs@CrnCNF%6~(KpRtC8g!c!{)5Aezlg2+WfI$!Ie&xtw*sX<w- z={w+`Egg8i&hi7H&f(TG0=$4=YbPPujY{JpCv$OfmfCTDLu`To=m?<o$nE5#&ce4H zWkfcn6yhHXWb#4awg4{$9vTBNKho7R-ud=)kDq~?(YY?ub6&^JiAoqW*%|0L@B%7F z)Ve=))EBeMxOy(No<8}vlWNd+@>vgguE+TKE4qGfp(K@EexVzE2JRoyQ%CG9ZwKge zB%l2L{CvxVWUeAwS5Rx8Kfb%*OfPdz6;;cAy8LQnwqF6;S8MRP^?N_V(ksdGS^Nlq zSORV-ia4_Y<TiNsH6}TFz(1t-(6<-mJFn|ffpXr#4$HxYXtnxtLsJGa<x4Qn5wK+~ z#B&5jEgw06w!+q1VU2^B(xBm6m;v584*UQ`zM}{=PUgCWd9$bZX6p!F(Fn}57Hn1v zUT%F;L`2#Jjo2{<P^l2OIHcQBMD{ZnNdcg>z#-NM?@mt{UvDK7f<Ax*1&!M9@|Cd; zz!Ly_6|l2?$rlVk&5u;qzlI%T1qlF^M|JGbw=un&BNd7Qv;$r%y9+S_*wWr&xZrlQ zG58W-JM#7r9~}O8Fc&up8+m<pd*p1b3>UzTOl>VE0x!k*VptGY)#emSQ7iY!%P9Ep zUravp|Ab5!3phlB1U?qE{Q|fr1E_6q_z<RYF3gtwf6=6s`(Q2&Vok-p<5>bbV<rz3 zBlN`~=T2hIs*ZvVa*R+m`^w3FN(>}zeneP_-?~=DdSt?%1eg>I1&0hh`ZrU*gSf!r z`jO8?ZapC8^5xieiPXX{b?_f^FjO7ak8^W9cezB^FuqizCt<c%94gK$I>_6``1umB z?O^diCWl&JOXIxM;=Xv*`F6J!@nQ&gq^&F%h{y2FTB&iXb<Fcj3&kzW-|1K9gGbJ_ zaV-H4Phx1e1*yR?bnwfv;2tz>0fJlND@MH0?>}@G={eYP1jYBkYVrHc8NMAb%46~0 zW08Ddabq6XZNvBm_ErKAF%MB_?E;>-wDAS-kMG_XqQ0uczyUPi%FD-REs9CT3SL<T zC;;dFXs2!pR^M=-Hc&P%f7NnWG>0(P>)vG!@D;IV2mWF1P-e-BbG%$@cDLrvZei{) z!RM{Jj<De@yP12@;}s~;T%eVJ1~xxoL{R{eh4^x^XBfF6H2f0X-rMTW_b_>ZY9*4e zO$8W*8%ZxW?$j*h@O>~)7Enj8!Y~ix(5onbPuUu%WB~+^X{EahEM<Xc4^jNid#1Ih z@D?VX)+uBNl(vbuFh8^&2dM77&bBM9V!+~`@ye71u<A!{wN3sMWInJ_ZnugK-V8wt zy-Hai4U@%=0*AhA&d;ufuFOom{6a0*L3j+$_J~6dr6OEYxGpSU*zR4oMmU&Z_x0|Z zTRe8iMeD9Lk1kQdNM3te7B3%cVUWc&RJFBHS^LT(aQWI626F5J><y*?4de%{w(75B zjCNLei1HMPgk4$wDbAO`TmfyLmcR0WZ}cm3>jQ7yrVDCybb;^ka7&w^05xd1<>9~2 z!7o3GSbf_VS}AH@s(QIgYm+%UvR$e_ww3o0q`KllSp3VgJ%0n>YyS@5wz23<!$U$f zXds@0QTw_u$B~&?_(8cUVrBcrY-G4n6*=U-wU>fyaqrrGiP?O)hN^>IwEcBa_2>7a z(Ce>$Z5m)s+ir=nVW#=*9@IiE3qVxOrXRKQ-ugcg^H(w`0A5Bw(m2dTfVJoTU}EGG za6l$^*#?eYC3T^JR2yXe!F4_c@V~;y+lZD@_5lL$wdHr3+Hb+d&jnoYw1<CMuP*#q z;2RvCPN)8mRO&zU2$FW}W$VLlJjC5mu|GDplXk$8%72)9Z(8iBhxi7q+ws8=+wFh0 zgk69QES=|oR5)A!<WnHrnfCGSe<G9C?RG%Vebk1`DNNYkR`AGpd=SLe<~I;yu|#m- z0gixixFiXOgc4o?oWMm)0tw(8Sn_xp00sdB+hA4<gV#8T7i`9Z%TVN!Aowk<THfK~ z9xa=qTqJSjXQ{=b1*ruHIZg>s>G;^AJJ<1(Q;mDuEr^)YXXkqFqAP4>W~W@zt+9&v zGdpkHc%!YAOJ;Ac7d46q{p-rp>O264-yiwGEoea|2%?PXpbTsb<E(-xc`AFwgezW7 zD3&o|Zae_5bBM;Maak!!pAuqw@(ao<m1SGZ=iKmJeGI{<Q`zRbOXQ?{!=nx7?DpE_ z1P@CZ(4r){XTgHxfRSta?Gr?lxM|-X*{wL2TS7@@gy#h715h!wTDnapDHn`Wv{f50 zflR;*O&Nx<tDQFN7@g_i)||Pt4P7X(?1i&x$gXOL`>TP}07}Fxi~#KS&6c}e8V|_= zHe@wpK^v;ny$6Dv^K>;65#O>p6S1pZYQ58YQ>DF@WYY1+stN;Aag8hdm-r;#j`_>H zT=@O^f$D}Qxy*9oGDyK1AHph;#V2jcf5#xJN|cOC8R>WLmsXyjzYy~qj1$tiq(6!O zy^;6`*p~xN{Rh?@Iko(DpfQeCDqk|HfF$#nz7wFDm1^5~VrZ%`3zP(i9F;s+$m^mU zb2?@KuL&H*R2yT0fAdRdA^21EE00uKmi+^jZA`|2g~M2PFs_1vu6!lTQ3j?wv=pSt zjWht#Uu@xW62|%`SQf@`NAbqB=WbUU15>N7_DVONyY|Ld+db?enWQSiD0^Ka^=;-( z4OQ-j=fSF|l+S?n<D1351!;ff^eFa~bBbT3U>Hi%>!E|$yNnT}Vk7Ckb-l2J8G^Kj zyZ!FpB~LG#7hhQ*)$fVyxa@K>Z@}3^`po*r@q>4y+U-YjGxe&NN+FwX=ABkHW2!3; zKw2;GR>Forj3;dD$9S6Scp46>i%o35M72TgvGQZ=1tfw~$AUhw@@bZG_CR}yFLN<L z|4OKvrR$ZJuRZ!#+kUOzsJgD!x8$CbbdJA233RdELyo$#^jOh`zw}A9x}jg2M(RUk zAU*1b{O7m<th{TA+<jeI&MFx2OO=CBfb?HNA`dJOjM#5EK*RU4*IYO|=e#BpYTtKZ z$A9vi@f_E-ZF!z$UgWQ{h}|Q!R6Dh>sMrMYn-w)r#V#L^++-|#7XHY*ivD(%_gD0f zcfPM~{#v|!8Eeu5mrRz<CXnJ9!LpTojjJb*cw%8qH%95$P`*yfpM)$MGpK>10DKL! z{i58@EMndW{)-&jHn)#Fl}LJPPStx}xoeedtr?tCA+$|@Qb6bOEH&>3Si~5{z1Yf# zWuo#Per2D2TBE<?Ykr7g2^r-BRulYo9Y*{|?g|8N&IsJZclt^j8#(h>JX3|8QocTV zN2hr9aJP<$dgf@d-i*=vjd~OI&Q;vm-;3^<^cb0fRr5>oOO_^lPjbG;P?b-`4hTMu z<1ht4yq@I5qbTza<cGxDGE4i;#(F;uUMlrQ2`(>L!?$T-$h$HX3SKD55F@26%uPN! zacit#2E!mw{=Oa@kta(|%|?b+(xd^nbpIXc)3=T5Y+?8CdQT71BQ*vW)iZP@l{9f& z5Db9}GXi-1l)5R8hhV8fL9~NPnTxln19hV#@wgltm^Yw-N^ry8&)*h&rTaP>7Mp0* zkKP5vNS@mwsmT72z9&0<@rcbzZzHfPPn?@0umv7ffCK!54H$R?{$-&%iheZDyw`QA zaq0({$6>A?5O!te4wXgSA@^B^WS<oNQ7ii}U-V*ry}k=bntEBxxa5HpHkIT4Tpq9U zgVm5^uX@)-O@>@GZne_vP*H+MBFzXOY*2rimqfK~h8!`UQq8R3PhK#Ra44;QT&PN@ zwugMQG+PFkq(>Eo`;}KfY+&}pL```2Cw-Jr7D|rD>nR*}Ot_s(5|Uze4U99!nD%mc zE*0Ssey-G>k=|3T#tHp)(^I_74@>@TOJM_74<H<T+suqC#6;4ul&3RGn?aIX8=H=L zGXnNr7r4%KzwI$_DPClK$0?u+lh0KTV3Nv=C&&X^_)BM8ow_o?{oVnvvAVk`I<ZT{ z;$6y=geltF6JUCJbiX#9L<q>1q%D|(cHHL&gQy0S0`qYb|1l>Hs2tNijsi`YW2{+c zwYdpf5fB3kC`%<I7Gb2Iu&dpPzLJtAh>+a7WJ=|bsifR~;f?ymQomFk*Fl9dI*dLB zr4fG|0wg%OHm;Oe(M!iI6zr!K=7YSS6Gp*8qO|kt2=I-H=qaM5n1=A3vh)t)H5;mz znWICk@?+D~3vxN9ALY<`yDAxdOhl}~H+w0{Stt^g<Bau0OGgougK}Rtwv7LyKTHo* zxEsFf^xlNtZT0zzO_S(Sl3%-vrVMafH^xo$p2N^>lhBg32^C)4vea$!*C*|E5~aN< zW_aBoSAL`E?tOaU>Fj=?h5DF>U_3SAx!T0_oY<C+NDdwQ#ANzF7(6)g!Vh=u<#Mow z>*}Ks;_#O*1pznwv2*h|Vas2}g<u`+Vl~*In@$8SA=bx20v8w5j}YO4cvPgik@@nb zmVKtiVhl4@;K}urI~nWKG1-_VShEIJ%^sWeBU^4sAn7$bIZYA6UgTVPRzig+mwr|L zCDr^{T>*3X16Y&7wRe(Xe<@^W&xAhr?9tZ;1U(v9hsHH4V(p?G0?7JF@YrpLnt}|2 zG8^aCJQ4g*Wq08hW_p4dP95gis=azitC*j^`}r3-xFC1vh4-%~#n<B=+;-~r4mIiS zs>x5fYc{GADb&|-DwKanoJ^g4^nTmk=kKRD@GM6`TgKv@t<T3_`QUId!NnGrsMZsx za(j?-bDib4H2cYnO6-lK+hu(}>3mX`7deM)<nem%3cMmU_v?q3@`_85#?cqI68AL! zgbbH5;u?g^d!Z(LHT+AFU#1yt$4NVBeeZ@udJ#8t&6z*0kY8|*>H$>M^9<?mg<r2= zh7MY_W%*~lEVk66&hzRq^<}QeT#Gynx_SQ+uUQeEhpg)4HA$-xo0D&zYbC&+yw=<? zl{$JqMA`Js`E7d9#nv7RnWJp*5uJ9<uU;zWi^|R;R+|+JU~@C^Jr5ZNuu;urg-tX0 z!${>^Gp)L+hm*62i99M|?RR2je|1V~efb7Q?^iWk$wDoOUGVrgS|K(E-DTjw7XQkl zkf@sUikl|;CsADhDV$DB-N?Pk^HO{+3A>_-8LW=ipuHF<YrS~Vt*+@^se1kfdq<ui zoZJ|*q)_?(<iVol(XI}~agxbvnt}vFt&e75q-Wyau=YMqcZ{l;-=xYr0;qH)+A(x_ zX|*xiaVN%U&=*Nw0sv1lv7AuHEi5>)Asst~fHYz4w=w)u@I!op&eJK_eC55)q%&sm zC8dlr!f;Dop8rbQ7*lLgZ9OUp4&D&4q7mbs7N_Z`=Q2dEa3lY-ILcz-pXep_)8yw$ zOAMuu)~ph0Zijf6e>Z^RBfu-TIR=<*OivQgB+w}SlR9$e0`X$C0V{&=s}oV9uCFxS zQ^7cDoSz6zB@oIIP5&wgdv;5GPdwR)@KCJFVF-Gc!XNWAR1#VP8+vbq>VE75UX>i{ zaFs0k7N?6elJWyd!}*JE+$j`De8tC$wvCmh^--mr4fW1RO2Ok!!nxH4fln<+Cbz+( zCcQd4nrsB{-%O*+@f?uqgMv!a>vUl#EmqbU@a1YFFhFt)5Vo^lZpmD(ucdUP>+mu; z7G41g0`f;=VJy7PQ{y@pTJ||WA=flXSPlADI@gaB@j20g_*i5P4l<)bFsC6)r{<`$ zaPA<QTm&ust$KxDHwWZLlMMox7b`nwGq}wFQruG~16o5gARO9}wA?S3EzG^q-`-VM z1#ih=H>$o?FQz;#>gw(P{Jd9_br<s>s3S3@xhY16WFVj<Z2&hEV4(9Y9Lc?h8Y~CA zh9*}HqN*QAW1gAa(0n2HNOh2gqS6dM<Rw}<8)<e)7PysKa37&gC-IH9y_af9lV@LC zuAh^89V7STC#d?-_}u_{-r5u)2~I!t_AbUKzV0<@)xtP6NGo4hzyI8GCO^_@dss^U z)!MniVtmVUP5e*2*ANN)5hDoW?cM$F%-KJQJ)e(wC9~6la^ymXAO(r&&s58ppd8r0 zM2doGL?`0iX^!cX{=r#mzL|s1Zi>2kjqpj2wz|@nA3l)6#ZPwuWk&Iq45OC=^gd6; z{Ovel$bs|L`hd>}o<-8RRchEE(j5k<vSxz|?M&Cc%wzK(J;h1jm}uv4qsRbPq>W8i z;*7rvH^bVF#PIPa<StPyWb}2Iu^PAhAGYZy$~KKLa%~Fw%L?FXb6jBJ;9ZmaM7jCI zX#s@neBwU2;KzIAVi0mp;!I=b7{8-Kn;RSIZdFRC%lI>R&V0y!+}5O^B`4cBbt*;K zecT2zp&=TtN-#n*U&>4!J4xzm9HGhh;p~@mi_GHHC?K@65mhVtk+!<o>^LBk-S=oi z6v4TPwD$u@k^rAL98Zdul{0y<n+T&dfiSiXwZn7S_RKoWHoZ_5XAc?a_P*<6_I+%z ze!x;Nk@Nemw%{qF7^PAM2u!QEyJ34SY2Y0RkO@m795jmGCzD?Dp7R8JQztRz024_A zGl{3V2dON$T`5NVf>I;J-X@k%cL_BysYz688{eLGj)j+A>w01Haq5SZR1u->^b9(> zZ7Rci`sY6V6oq~sl4QC4f9~IN=OhO?$m#Eh{b_C!wo#h|B(E!$V0+d%IGy`(_W|=T zKT>v^_9Ct&N3Jh6ac#Kb$N1wVFhR%Fx!+ZTYNXAYnvolcwS-$d$;MPao8f38=;gD< zN;o&4uB32Hlj0F;7N)3Dyq6f@0yS1?Gd3w_7hEcE=zQpq>fVvIR}-0GJ)vsT{b{x@ zW3In^F1TIX>+zhIXMrEN*sUuOMt4pH4nc;_DgEuv5q=eQ1o>Fttb^RSO5Jn6EzYG< zou>+eL`L4%8!64tugxzACXt#BE?ECE%44OwUn6V?aUqf5mmV_1xaw`C2wzw!U)Y@Q ze-e1?P^9{dGlJlU6~895S`LTu0nH~7<I~oQYwa*z?YU96qMf;kJOe3SmuYdUajSdZ zYM+kW@c8j#@jnP9m0(@(ugCvIc)p2B;{Rb*f8+d53CQ11w&MqNW(|i8t9=Etoj&|D z6BzEG*q=Dm?vWSiuzymDi5lW9m`_TakDFy&6P$Xswj`W+fnR*-d?^Kba;ZS>e5U)- zdH*Gi`%80ulnTr-;lgE2BQ>)IjDILQ?Hb6}0s!lDC+3|WnZt~N0YibJ@8wi?RlY<S z%N|Lg_i7&FqM1*{JVrLZlQ#l~j%GeRrd0~_>X-0A-p0RQ{3JZ_T3Q^NNRo4^e?Rw5 z5Y9XCG}Rb_A)kiXt{VHS8mHK^E)P@%fy&$7TRit#<fcPMR;|`ot=CtdpR*+}Rsiw= zsud_oo|D~PbzJa*j(GK0$xy8rp7Kz_nOm_K!|Y}0q0>%J=Q+WzQko~t%*nbus|pq4 zzvpd@j{4NkCIZ}aO%x5r^75!yzx;gNzh^yQa{X$6^07bi{uXCMxxHgBt2#zL$)}fz zp6jG*rm`qtcz!)1^Fw6Chp6Wt_yvn7Zs;*V#*r)HkRY0DQ*6arJ=IhB0`=rF$=dgm ztM7HEhtMYb;MNa`2mR*rjXOOXJ7bNz$6a85H6X%OFipQ<_2uIx%YPt8tx`P`F63rj z-^_G!u?~vWlm@hhH}ZNm^Cve8);9x1<}<4@+D>?-R(M_``=vSgrK82KKTSH$w&8r< ztjzpaRq?U<`NxXN^dHm>f{y`Z$G9N)`usno%@N1mkc0gGW6E2;=8w;OK0Uwwsd4?1 z@~pIe1>!sC)3(=Tewocu^!(i=4UB_(r7E}v34DwH)M@g$%jt9X!u$@8^!CW)d=4&u zYOZ9#A7Sv}_qM<3KU|F;-|ofFBSK$BWxkB{OvRaq528Lrb|wl^8v@)qvjr#p%MBmD zo<yR@oZe1;nP301@bgOqe=G6lN)Dx<<)=7Zcyn^O5g-3>$Z&DyOS|3QFPjxxAD?f1 z(mIe0ph1ENWgZ`4@TU-tvrOn#8uMMvw)bbJuRnag{=9xwv|pNBhlv>e5H`nH_3?}$ z6a-1ae;%~stM98>)RJE^+aT?2ZquNOTIS!ra`!EEi!w*$Zx4d5(c#l$VSs44^t1TB z#Wwoa_958LFDTKPklkN_m_r2JAMj6-`)~z&{>V&XWX8pb1X~~oK!uz3qISeT>>T|S z+%u`C$Ub^uLXTJu=Zh(Ox9;mOg;tl2zXzA;`KOEsw20TC7XBO4i{R`ieb`n0wHvii z0NrbWZuOw05!@6^ppq|MKrAp0QJDnqQF<Z|Axa*G7no6GZqKQF_-6R)+o{IYSKlZ_ zG@|~gE!jQ&6WTsPi|~nVUZsuP!}s(I)EeF#t*Uwdo?FY4@Zr1lukSYDRwqxK1qX&U zj%L_UFv=c*RGu#gW_8swJ%$xg#r(~(EFq`CWSyJi0Sq^Td`ClUVLvH{e_r^nt?u<V z<JIKSaS&N$x^Gr%R?GiVBuKF-7N#nQMA#Mq?d~o#n4J0FkG!ck2s`>i2?{K?{p5x8 z&oJL#*Ta8-z70=4zNa;Toy8QeJ;J7H*g*^MKrSLR($~)i4P1T?j-N+}Qh(9U?#25? z?3p(U^CA^lzkoiGEuYX*k1M*|1+D)O_O@ellyjl~o?Q>zyRW^UW*XTh(*D;_r=|-& z%|1Hj{w-$v=}*s+*ege)Y=9qh&@C9E(|VtE_;;~v6tfuw)u92xv`aJIO4HTfooQB2 zjOEmU!GmI`BCG5s>L@qxpyb!@C$K-Yz6u<BRd6Y!pHRD5Zgr#1_s{e2KaIElG-ds1 ze$e<I7=z)0osp^{rkc%X6@3DUQmqBCk_o&b88S8Pq8FhPwVI#Gbb@2!adns9)dzn1 zsWjIV@?q?;|1af*)~MSHsy8~iyUutISx@^%6j!$Uxa8}7-cwucyDxjDCSYHEeK1%1 z4R-ApI4?2O&}QZH_IS#;fz!9Cc2VpYv1ll>#vndS?Cp#2Z(CpfXm2ld+!mmQzh3`V zk*M*vLrz(B{PV`MyY@+it@WM<F~@6PxBltxZLjpE`64^N-c8Ii?3_lQ)Z1imLf79; z&xAmcuXL1;LwTO^-waLHwxzv0SjLV;C^X^XP<m$eQbh>4QPHBr`T{vQzozAYpC`+l z{gevop(u^o(QI$Uy|u;DA<+p`eB^^@nclb)GZB(0x*wY)eeL(Ur^rfs8J!VftEO&b z+^!ij$)_KacIQ^RPGRz`(I%-(m&?u4S?*C)WAX}nj@e|s-;TWz;a#xNRM|(xYZSTK z4f}K-cV~|bANPIfqMN_>Wmz$kI=ScH5*s@2tyXOwmgYNw5Y0bM+Fzkj%Le7-DsnEr zkbh8M@;u)~&61qt>Bv0Wn|tiHAU@M-K({KLdp)wF(A-$v7%dz1;`o!c-<;nMvp(%l z6q3UVmzGUK`|2JY8BjhwB4s}^0^(8KW?|%G+3nmY{ifjF0`x>(4_dRYHcnJPhKzXn zOh^jx^rM28S20f@KjP&cRYAu1<v;xE)TdvD8w2F{99I&sC;Eaqu|ahI`%=LUsoaM) zIe$h=6)imD(b|vfdON|1C6DSaNlTft5B(BL6fD|o2$7Ny3$>66wp5ElAL|qv>l+#% zGDzWjieHIoeMDoFwlnW&U%&>?$!p)lmq^O^e!S1ufqkUE8!{R|{l=^N$ZnCeqkLMu z!C-KS^z5BNS&y%hFkEpyZ1$%1LZ{<K)*z~X>0KH=XJS18R8YbleTKtN?kz2<TT&*4 z<->}2f~6V~5`5$hN3gQ1StO&%-xDW@j?t4c(LR@c*}3c&Uzrp?<QS_HEoV8}Xd3nx zwTQlUBVAmf<nyiHR52JL(~p!^WNcgb<iV}jemH73_B{QS$XF>&f^3oZ@R&pY_R}4< zfKiZ~)-0;*Ehjoue{gosSNn6c?MGH=2ok+5@3roGZT;UV-~bE7HP8*YHQG*A2$oOP zd2<cqvKXKROA@X93f5*95SE;X$8q3mb$VtW20dTJD<aLQ$YK(t^nF_j`>Ix*KU`XL zPehohB4uDEF+#X6ZZE7Frad)>`bT>9^=5))!s!d4B_E#Q3{^PLvQ9WsL{JwIRvW7% zj3+7b#bIC8;uxfo^K;=CyYKNg<>ik4yDZE6yQv~kaR&`W$o1+PLV36jMjs#wptoKL zM7CZOilR!3y^`CJ5H%noFT?MT7XyO95ew^twJdDcQnW0Np9Eh!e0YukeG+#>;b(;| zosLOG$uA>#!<gEWXv5>HW<00jWD*!9x9{Y%qn19rN+H+9Dl$rqj~a8^Rirp_i<G%k z(l9#F&^sWm_rA#f=4loH^~{wpliJDoBtlQ5%1z}<mU45u<r+hTc^8*TN<oXov3EzX zrNlXxc4hvuTa^@_k62Lq=uTY`M{`gRz}W(ycZxWN@a%)<NHY($ItVs0eb#c<>=g?i zEk~J^L#U71TKV!1#2qD7o*mvOC_&%j&mb}o)()1-W_P_98-rtV@nl7`)?K4KA8OFs zg5fdAGzMKNRsj*!ULz4WC6g>8(SI?9>>TGGC$)7rv0SuHGO7QF;8txSv7tCvo|(fO z9LtY0v%kTu+im@R+xTg%#AB_3W5m5*Swvnh0WHcQvw%eVI5}txl&ibco&dup#wN-# z{D_+UlVe_YphbuyMDPw&cM4lX^=XfBdylhnkP|w{A$7@<CE&eRLdrpPiW|?J+YW1* zOPH2d5HI=*SOF`@LqQ#a4HS487SChLi2$(mws7MuITp84Wx!$jNR0CMnYnLwL}g-6 zNR)V$%3*|1TdJ?lVC}K*4BC%>eb8Db)MbB5LR7&s3Y1foo}OmlU44YQE9d=u^`y^c z6=}{TF3upy`Do;0ml1srrlvK-PP$LV@N#u*?ft5?e}l0Co{CM%U74?vKS;%x^Lg3} z3x;%mB@Fmw-Vxsg!+aLP?U+Wfj6JZp&w_8rTZ}z;G6y8ThS+EsG*`g1#;V#r$KsKD z!5YmbP6*k29E~p108p)`l#Fz^7zDs`z_CU>gG+6W3HIc&wB7)LE~F}6+#hg3lW~lP zVv17O=EKEbGV0F3@3N)`&m?fvf${*~<9RLub}lu9yxFR|g=~I-{&tx&y9sZ~00>Ky z5oKeE`Qc$%Q;juyHU7ChS+p!&GXHFzavSrjlcRLu4$nye>TabyPuJzWs1;-AvId4{ zRVVK4vhQ3FCeWf9m$sLz1}Sm26Y%OlZwAv6BP#CU{(v(ts_yQ6%z|rtwHsCH3mwA8 z$Lah4Z^YM~_ZnmdwDd<zpJ900uwt<WQ4;rS%Tw+te!cJ4@%sGBMvzV&Mr-lUYtR7+ zn8o^<?6(Y1|M~240mM}OqXxww9X2R`$@i`BS=N>3aO{>9Ety%e$cv$Li>35}<d(Ru zc_3MW1INb-DOnm<&TwkYNgD!t;Swd$MA8iT)5qjQQo5d*%Bcd3g(-bpnXB8^{w`*M zV?3m0r=qV>B3vv$UsKd!>~^#m?#j?dR16uOXQ_Iv+5TP;f0P(Xje$%bfmu_Zb}6FJ z(3?1^&(ISiVI&{vt@yIp&0l|$7ysjkXxdBhhwc4t6?ns^r0BAW?u{kweTk4!p{xi- zcB~4B#wV&8eB*Xx_n(lAjJ*v0_N(Wbas5&-SIWXS80MP2z4C_DiI#a}YKu#WGC%3s zO$jPP>vR;R#Gt-(3mUE(XhFTgWZhOCHy1tf(9UyFK<*zdA&__^bdleo;{`q`Cg1^A zQS?hevbpyk-W3iH-r_di>+$wyvlkD>1H^dT{=&F|4o>B@0EPS&eWAofgnn*xk+8IY z_?)pK&9cfa{D2zgmLh*Tu_Ry%mY;It22lyzX5<g<6oAm~lkCBj?(r&e$yk&95n|it z&JyVIAPp5(G$g|%&Xag;BKqe*C+NFPfd4iP`x!?TCnxS3^ICF=17~i;jNDKIEAY7u z?;E#Pb$xeSoYB3<vjH4@xv4Elyp||<ApRMrnMI<7tjXu4$uHb38z+#>7mBHMeg{71 zLp+~ZM-&c$Lb|G?X9><u06+b4PW+KAmekENM27INJN>_XRFo8Wtl;cByHt?jilq+W zRcbzmTZfBVc&^Qzi$tby>#@mF>^2CSOO+;|$>!2Lx@O!3^}s<doAkNQt^E)KQOE<* z<Gm1!Y}5h>7ytQ-g>wOoIwO)S>2x*^gCj8o_`mcHvfc&^5?aJB?9J!$-|DeE*;U<4 z#_G|<YVYwl#3WoGOaJwN+$|;>4EzxU7l)x<%fG+NWo;zvX2g&b{vu&&%XDcy_S#O2 zh!GH$N27k8PuA_)&X*)+XSs|Y(bE!;QeHhBgy&`z68t*2StSH2gw`R_wSgjF&$XMF z#F!egrE5wECvjw*_ACgS8*^CRfM#}O!6;w}6uK%H<b^e0gO1S5Ky0vQ&qg~3Z>)+- zgAkTZ&?Sz{DS>Q1>9z|fN}thd2MH5iMV8oo_k6(2D?3S6;WD?t%xELQ>J=FMigez{ zVP3MhrV#xBHQqY<1l`l%f`wP95vJp;9{O=GSulBRlllJJ{sqZlcj8hZ4%wxGmm;wx zjrs)mN8g)__fH_Y#Pz23h;I>l7oWIvNvP9zF{>^pkMlDKqgxdg*bW6DfGk9ppsWxc z<4m-2NI@iShScX1bfM^JF5Wq!AIL%7B|yCkdY_6T`Nbk`O<%F^Ii5s$)r=#1%^~p8 zX{a>;MwyVMH&4{S<VlA&RrD|-eOE{FX;*uFgl|j0B!LMMpQA~05X;1TX=0hQrS36u zbe3C5*Tu;-j%E9~T&Ah;>DP8du`Vw0fMwqeX|h4md2zB{irpBZ>j}!bU6p>}cj5U~ zDiCo?*8ABVYC@Mh_Ts<9i8TkCme3Ek4aJDOhxY8c9x>;Ms_rqObfTUcY3b-hOhs}m zSbn^OYpR0eOo1K+!`10B2Ue<hict{A7{un{l~xEMajA-M;Wi21WsLG=(uP*NvA!mN zblMj=W7<jx#|DY7O0V~^vt6t3GNU$G(WBIsx1@`W%=kTHN{@U7{xUWQl^+O?9Fs|| zG@<#hdhj_5y4*NXFd7?ilb(|_(H(T`(_Z&<xoilI&S5lL9eXi%@Lx9iZl74w^?M{s z|BE}xqLi#^chOa*R+oNKNP(m&b~E9O?oj2!B)YklNQyGO{nF-TbUIU+PL;uK8Y_2k ztGaLvDjXb>(w5X!ne?mA*YC?Xgt{hVc+x|V>7dYs9!Kyq(54;7=98|xJTH*eylTs= zst~5cna~;D)#SQMM(OsbpGC7f-o)<`UP9ovYnO<M%O305rw3(CFc~h<;O4|!Pef&P zcDyID%XR0xjKrJmsX`NKagou|Lgkh7CB>vXzoK*H=WpK{8Dw_IM?4}8A{W%a$E^a0 z7;#cSI`SO-Naz^W@AE?+bA>&y{3Fi|l)U*BPD!>p{iAfc!}E0o^aIlO&jb`Ltpt>= z1;%-8dVenqMvjAU1d@vfd2pSOQ=(MwaZQW-Nt&H)E&D*#eVc0Bh0ld72bRB3r*|cg zsls&632(WE#5R8LOLXOV@Oz7Nr61nllx7Lz@5`r+FK%7nJ<tWv*9$z!q{gr{wjNl$ zfVOzQOWwdj+Doil&nMP`?s;<N#QMCJZdYyd;mV_Q@5ceg!kI{ii-T9p6_~Ly!XP<j z$KXuYlivZR->H>G&bR}tgi+T=g15iXhB6@KPm&5W3aTRP)I5DY{T2jp1JXN&<S$Us z=a&OX;z|l;Uw-h%H+c@kF1#ZHQ&F6{E|a0hM5b8MI>D(ADDWBKZGGZX(sAhJ>Hm&^ z!H}(1tTNe*|3x8v!9s$_+wo_T;DRrP-z2}Ndn=<!MYj)}{U=IJy!-eE@txR_M6e3| z+|5~{<zgP1Ecob&VN_R3JyHJIlLlS$ff|)L6!=a20Fjv&fu<{+_(+OYsTLwjH<<s2 z1aIZkgc|pvpVXu<VkK-{4n%oBOTe-Ll(dDd;a$ZvC9u4$7XW`)bA`35Oy5x_AH-fS zkrJqHJ*t$1NTkRwWX0o0Q%OHcmL|2pqfpUbv5za#@An(hcOR+F9Id_XbWfA-ZMVaA zDj}tgFnqBPfT8GeQjg@VE^^uk^b3wLya`=JGF??`y@v$5n2s{0eS$~Nf{L|N-AZhl z@<Az)c_dsKPi;O_a^qg5JaLtfmtE`mxSndV{f37wh{RR3TF0!AW1oqW@3`+0EJ^SC zma4|i<q4(!y*XZ8U;V<7EPtZ{^ZJpDUyKky5&~jnr0UH7$I)51HTk}McnNIO3Z&h} zh*6Gi7-OSjbclRu2?G=q6<tuHbc6^>j82ghFh{6>sFVtd2nblHU}DYR-uEAPj^nwH z=egr^U)On3+sG~Ij>{kOPb97B%Wqj^fJi}CWcPI2WT=yZdQci)a<@O#vitqls5icl zAFL`EzW#0kk=H2c5~2NoPo%kLNHXq`oa7#Kr_N?i*!>dDt8bV}yh%)&ujC=nyE%Yj zVgdGsHvYVJ-h(XhWoB=)7<>Tz*c~J-1Z>X;-yqpFVDhKA;GtyaT`4mi8m1KU6)R1l zOZN797C)BovQzeD6MBdC;Cmdo6Z>!Q6~^ooH;d);S_9?j#&4M#H693tI90rXOh7|w zCYVy4SyEr!Bffen$*IU>ob%5e4G8VrPQys>Sy(ZUB0u??+(o-U(7RrMG=E5;cOI6} zX*c#hXwfKPZe6|NoVc5v5`RdF=Mg9cxv`^BWn(mHgGgh3Hrg#lgn)!2h68|PA#9oJ z8Q-OR<M(EmnL=oAhOQlnY2lgiIP^o8l<!xqQIYtFXsh=$!1}%E@8mmQ?31_2?qRkG z35uqW;=ej}_w^fj2dE{e-!-FxE>FWckdy5raRDcJk%c^MqL@av`}wXVO174w<Cjd` zZRVohBuP~p^-gY&b(9NB=J6F!AD<It)21F%qJB^vGlXbeQHmT-qKm1WKt)_Mu*amn zYuB=Ee7J5PUGq>RclG$+ukJ>U1NQaL-<-L6wt}r51(d~rG%z69DB$B^>OHj*P}*pM zAw&Vpw@`%8Hd?9mA$^~ZS=x?Ti_aZ;I&BpRp?_R`V|V<c`do$X@udUr?duoyvf7fx zCk92bB0>}y$I_92UD(rke!seap^Z!!8o~)UCshH;uQfGl>Bo16oHA5Q^W3nb4_^TP z7Z{L%_w-gyzO;W2weF^}YlD<{@=ucEJ;5=>Hz$5USIaS`dIJtz(?Clqfux)!=D#r2 zpEXGi@Mkwf?o7RS{hal~2v=BBEn|Rc<h&FkHV-gl4;(eFHZeU1IU<c&J29HShg#5Y zW~X!cgLekOU{Lnofc>1AnWuxC;)y3mhS8P~E&sOSSCS=`kk25dyg1G7-*`<Gf5C?O zsxgDv^sq(PYdO{eCkh=gLjikPS?(Z<L4ZQ#kMZIDOWF`zY>GI~BQ1j3|4o%r!Bz?x zfHLeX92SA*HB6}kwEpcrKgk?2<i@K_K#PWSU3skH96%z_`&T9VT3)fo@r;J!q?f1F z#Q8(hvi{=ZfNQ%)mDd0g{Bunw1@1CfRrna$FxxV%{SP^C_+ve@^~$w^(UUk1h?viA zOCR1GruKo!3D=MH?19j<M!yd0(|VW4jNPNMh7g*RISoJo6NF%FG7w7!V_%n<M+@25 zqc2X<oCx#MfQ8@R$$);E(jXZ?yrNCTM(Ju%uOBcVgAmMT+RRbE4B0X~@Xub56@QmD z1Z&0z5^e!?1P?5zI4d$pjtM~UpFO%}7d50N1sFHCTaTm`5t$pi$RHyIGwJBTqlTmL zU~;|&6=w#R&-<$x!+L!o0JB)X3=Y8<oxb{e+$4AEV^7F+Jd{XfD=DQ^sRj}zvkA#+ z_&PV`=0k4G16~5oFhT4AmU_tNxNYnmh$a<;qyHoG2TwVU5_@f_6~lx-uL+xH+$tz) zb3o<M$>!19U-oDGwv~gBD=t!-9;*9_BGr8dxZ(EM%~W@bZ`=!quLx@_#eHOki)iQ; zpL(O{A$-o<_*oEO4MOLuYw1`Vk03xxn(U!uVB+U7SPLi@$fOL7VcwiC^bo^BEdb&U z?l6?5(=rxE6b(L#8XGR01@#J-I?9gE{%Ni!)4+@qu)ieVgV{k#!Ctwm4P62S@|^2% z!-u6I-OVt&2yie%FG8Pd#w<P?h^R}UAH4$Vf~`dut$jZTY}+Ncf>k@11eg+$tjloF zCTltN(5FRWc_rcgm271YT-zVGQ1z(BaTn|rHAPv;&hLtf<H_TnUJhmNvaR|vLf7oA z=J{5gKK0|%%DoG=)n`uso-qdwqc}dTzD;H@h`22$!4u7>udvMNsMu_cwF971$IL|R zW^|jgnfF^v^8j{mLoR4RN5Asx#RJ+I@baz8Pf0FGR6v!Prb(rQT+WpW7YT@F6X~Rm z#!MQ7N6m8zKS%|7_lV_6piePtHOtbphq7*+)YkyVTo>y^ijvl_s=%<WTAf;quHgcS zGU1#l!DyLufpqtdA;e!Qkh?Q|sb_H>zL4dIzX39biv(XGD;&uW-esCoH2H&b(~c*c z&Sg0gFVD@m>Ob(Eb@#;ILFjan)@;517*f^kG0~pl^`km(heU`LE=`iV6yhDZQ4fgB zrrP0Hhf4V7n*eQKU@^Y+2x=MY{VVPLqg?n9V|=1drQM65$qWYI;(+w;_$VM5P=n2` z=U|XIf4O)O&I9M?Sr6kcIA(!}hFxO%@yvNpJgCPn`%v$ZrR*#y)*~BkH*qBc(Dmao zOS`rI1pq!|*qMFgL0q_pd1JGbO1;=%oiU|!wcxCmM^Ll_t%Yz_amKP{>U><s!Up3~ z(!+%rKo=kbeIe8Ziut?adj5vc)jU%luxA1!&;&|3AX}c>MC@wLRgNg~&qZP3^?rpY zEK5X|XQ<Jj*zMP}Cj|uniXfIt9r7ntc;--b3374x<(qA!t0~?WYDI;H*u}hSB3ewa zTr8HQ2@TuCb*3orSyfkJ$%o_^^6$3dL^}X$a8VOe6P$g#j}l8nj=ZaRSh!8t7FnDm zQb^Yoe6&Fq_wp7l%b%QDZY=zaqKyUY=Wmks%n(v)N1s*vmv`={CcJ*>anSD%gP)d8 z6-GQcl>2FX&&xkwrVks*csZ<Ooc37$_w)35in7`p9}nksA07Bl!kHf{rVO~(A03(L zu8SUoChQeID*8yevOPS;;;a>bIGDf@Jkg^JR=DM;J^}-P!FO^--%>+l3MKb}0GT>o z2x4pk=N6{lSktKu__%xeC0$<!X0gTu@SlYx?jU4~rcy;$AQH|y2=7z`aEOvAmO=q& z)Ut!f=48-?=z2YULL>v2%0|EP8*C<KpfBZ3zCGe6#_$_OxG9j^x;qE=L#5qilazrN z6k#bU2jk>+pT>slYLLN)VzeLL5lTGNhqO)?B(JIBoU6Ag!$b;u*VOdO$DKe<=qybt zmJH+2*#-#alrYo-z`fVcVQQT+)je9EUPVQvEX@p@5sm?`D<?Qze+QeL^s^N9@8qAd zgKrtJFFy^BEtjqFK?*Ea2P?z$arTqr(#mX%ht*v+>}`10Jf{R8CWS+x`QJ9wi<r^U zA*bucGDNuC5wA5enYcpXIy}tSDJ&Fg$p`Rq5DBYYxP54V33~NL)Pp2Fxq8m-k;jO( z!pm9=8ToJzx!hclrFXbt?HCH&!8k*X5)3A5Ql?sp51G`5iD@oVI<nn-*K%<6od~jV zxliTCk|wE~a`=4b{VJ*R%{1fIQ%+uDx=}bpR&%s2El$jPupXo5oY~}Le&6evH#rz_ zp6*y%d*&>p?8%p9J7R=8pgma?8MV=_17dgyt<8EqB^q?Akv4vu&OzBDuf>Db5uN+K zUQvMs4zdMN0VdF-Drun4niAeEO`m$`7gdai;ClI{axY(?J+OZlJ(Hb*q}+=@0ds#o z$`iQaEaKIbStxoYX0z`8XDpyOCszuI?O&Sor|D4LvSW`ma(u<8-;#aT^)3uDv}T8- z8n;9&=B^Gt?)#W>SsblvRRg4JLWum|Hd}(t{maljS`K$yy#MSub8&f81GEhhCF2k^ zfHo(qROag&6F2_)<)A@1PqI(GNf0~PmZj+}X7TnQA)xv4?95NZV2XQvC$tn*UjN^{ z_=Zm9p#8?IZha=O;Zngtr{VnPjKS4uaZShz4$kAN@q$);)wN%mGZvQKy`3hwq6W@; zvt|L}ocE}{6ET1iNLg$0st+5#Bj%oYAZ*j4e8TVQ=kr|^(Yog#r5;Xvph{xXm!fyJ zXk5XG?c<OC?CZO|b`$&o!-tUP`!(Dywu7EOE|K4}c1h#0Sgvz&7+|ay!6>(PJzE`F zlY2m_UmCdUixS@Ie%09#QwbwVeM?!cn4xQj<!6f1CF|@|MES_IqYl^#w4`fOww@d3 zy+u2Mv<{h8c&tvlO098vTG+sSuj`<9?R9!ca=R?cfMPUMf9g>A!h>Vqduo&q#=RG| zd~+yZsW7HUY>oOxgHTWNi-FpbP4pEYGc_m0Z-0wn0YwA%VemD%zq9IzzaJPDaISL& z`D#$YIoWTNGJ>!iIcynn`|@gqj<W49b6mf*v3<x7vQ7UyemEnq;Y9;i;>3Mi{n%8i z<gQWs)?WOX3T-Wr>{?#EuhUYv`MK&;w-?Z3qt3nt^fMpO(&I(18Nu^<OH&4M`4F9z z`w=rz)fEv~e~+%&W4~r=R8m?zE8i)ya{A)-Goi8Jz70E%{HDc?l1}|qs~d>dn)?gW zA@BiWiDb;qml+TFg{2=4b3nPb5P5kJqO>Pxq@4=La@2U5&@gr|;WSqTuZ&ZP`g5QV z^}ayKA18mmU*wAgL$6R9G6mRDqZ#e|%+N$TCO;m(U0pYHPyEW;3kBYn(+LsTf<Uni zXwP*wLj#>0)xk^^a}%w(ckf!It9S003bqUX^K}n=4iuZRkae)5CDr}hOpw}hZSO+$ zO(Gu<IY_~s`Cj43xJVF6gey%ho85ZuGxb4>4-S^D3||po87i2Y_U+Ds^f@z)6P~ea zj_j{Sy12lP+w`Gx8)KugwOjNnxKv4;QS5@ja9_u$rNtGXG`kv+z43kRiHp>gV-G$i z-}y(v&uVQBlurK0cTE@3{TZ?a4JV02CyIEflO68;L;=Lfz?-2U8Merc#&eiw`)@2d zqH6)7yP1qt#va0)`l~Z>+GI6&-4qPNKLEmR>&2(q)WU$vYY5QRR4qV6@W_(%X{&t< z54tPv#R46TfW1G=`m-^^{UEXb$`M%#Q2R=)4&_i(-aj)B)r&%lgDc@8UDD9upDYD{ zbH9@eT2rar@*v?R&jn)0^9qq)j69{xK@(;}>2nOOh@C!$mV|Nc!dSA=zN<hK4}b!| z<sv6PJKp4Moi+={z=vQJhk+GLh7--=SI5WXg99KKz~CG%M)$QI=<XTqgkunRt+1U8 z2|wwCc%CjPnb=dh?L2=4=Y6n@gpVY6s%m=Tbf{fB(%-g7I32>vIi#jep0n>E>4PH- z%d3Src7{OHU0R+3&?h0yCx$uE00pKpP+xJ^aC(%dDldOtATo_n{*1#J;MGv?inPQl z!hjOXfC|1Vv-5cd3FD2!nBg$Kc4%K5Sq1xCb{TeKLXt)~M40kh=7yPwPT$JG64{bK zEb3oJz?jp<e7fYTu5IS3LUaa0N}jzw?1eiSOU!<Vm1g%I*<AmKKqEm!Zr44hd|Wqa zTOr~JYDS$~bn*yj1H%>%e|RqcGgf63spb{lfz@084F9gGZCMNZtG7|&f!pH%kc`6v z4N1_WB-rdVvmr$9GQQ^ltR&+6%m;$;&`tc&pWa1DLcXac?$-@_8lz%Hbs~3cO&x&A z>jf|&`#m(WP%^@#{Qat>o0_nz3y1*#Z%GI=z0r!lhw*_Ab)l^)+QSzue4I@@(@CVr zMoneu+An}*#nVM!dL#6W@C&~l>RozWQo#qtpmpwgzgpCHzuJxaxQ#b>a7Q*`>?EkP z18Z^z1We1n!=&sm^zfd^Gup0Rh=^sINFK_JA{j*%iQpB%4av}CGOX9TR~#<848ZUr z8sl#+i(=G!iW8lMB+Y|703sM<rITTGAx52up9Nr5#1A7a+3OsyDQ*sQ<tPDO1H1^; zP3>O!Zb0lmS}o|pgVfEEFj~@h`_&wrLH!8Vrys+(2h9KKRA}V9FMHc*cHiAZ;4}r8 z*o`w=0fuPkrxxdOBV3Ytbd&|dDR=SCcjlZ<y^+RAYbqG18VvzU9knAqW65(UZ3?ZE zOp7qWhc{Y;FjYNp(9tF`(3lQQq2IH=UKIvZSZ;I5L=$?73B8CzM1)EhP|p{=_R#V> z<0EV@T9u!n@OQh<N<wo_v$+g~hR`P%g+B>h^LR;0Ozv?&uGR*AbJM0*lD2E*v}SYl z(XQtdX$ak~=P+5*#~Lv`OCX?sZ=(u80?5UccxkMCef+ghhvBDjcg)IhSm&eep6i7# zeMz}tes~(rdY-BJ25YU(qCf7#c-AmbA}p!pWl16N?+q4Je-M?5{qF>J-&2|Wp+s?& z<-Cq~CVmbfA?qzbUY)97s_8wp#A*fGj@Tde&<M<f9`3<A`MmKh_C?ojQD@abtZDzp z68rk_$7XTtC|zkvdU6T=t``oH7{K~ujeDq-(h+=OuK(<L3u%Na&cE*29K%2XMBRsy z$$)K8{UI`WSDl6tp~=+G-C^X_xV>D`bFB5TMAaCwWf<QQUjt7L6FI_!zYAO1w8yUT zgmg#vGFgcF^wz17Oy!9@`7TMVu`>BTj_Bc+S8<dYlsYbv$U=d3CBl9rf=v^5WeSOc z@IzrD$HF9cQmlew4l{nps*+cvmib9d0HJ;S5K#@)9wr(C5EX_%_v=t!j~$-<ilv52 z{z(=T9SZXz3pt5GcqCJF8JlnqjM3>wrS_{n^s{^u=H*e7G;&O|os6otPZ2+k5;=|n zm?kv^oRnO}L4XJLlSRj5pBVuWRao&~>0TPM#fYn=aJytiHvltvRl{x0NcEV{+ZdHy z?0>-@RnH=6EfC_dJ%ll;_U2vT)Teia4A}oT-AERfrRJLFs`0BIH{Th(dv!#1H3-Pp zoxbCC;@g=x%zn>v<5jZG26gUGzLEIKGKdUR;KOPG;;Th_yL<N<;v*3SLC<MjoibE8 zcfiH;%zca<yU#`IMrC{6Q<Bac!?e^{#4}Y*aMsIYi+4PzdJc4r@AZZWRfj=a1-z66 zFy^z7^;Ej(Kp+7Rv~E>}e(k}vhZW76S%aX*`bP3Su_Ed}EIn{JZFM2q6ig%e>@2wX zZkd(H3RIm4tqQc7!&*o1PRm4~eR&0*VL6`|_LxLwK?)#wC=&Ij?1XJZYFk|@5Goa6 z8WX|~tyUGmmKUg%<K6-CMzV7&B{99rlzq+=Y1s=lEhSgszEqkO`76tQ)liq+YxY%~ zh2Nu3Da#trSZU=EWC_ojKcUY4lNzveHwp0?qD1+3GAZnYj(`?pS3VS+zUGk~%}7G< zU(A(T&n~=}`B^DVR@J2#F5z_slLF0O<KB!40n_nS8czaA?g4r7g1EKHm2&GB3zd=z z9t!yE3$>n7{2{s3vLKhgHf)c-@g!B8^*g5O6Rb69P@@@p{%Dw&2}{Jg92z4+7YQ%X z7>CZxTT+M4x77&`lLbB}isZ@}R!(*zSb3<2h!vh@sosF^Fl%s^r`sqLC4@COM<8av z1;(I;@?SOtR%6q^*@jnVXX_*>!^NI}k`IvyxS(?fLFbMJTgF_#)nm^eXD)c)(4GA2 za*x9fFBD5$EdhjI>BAzrm*G41Rs&mTTS}Ss@SY(<s5Rw~+<>F`cU{Ki69f?P)6ORo z<c^=>w(HyDRoCTTnaM$&Jy`ZSUB>zon<NWR_{)ws&~2EYP6<?dwOrHhU~CskHAHm7 ztj&Jfmk?7RFd*zvzR3CQso`gWd4A0zkf$0#wscXjD7|JeIe*TR3<uq5I%)y!cxt0L z)UYrQrC3<p+JSVu!ZAuMuFXDc8F__iwm5J3%#wc*dg~HS%kJ7j8I*m&W)*w+-gV0u z3+vHec$13>w*5M*iZ&*|w)d9T8zP(AA}`z3O8xn5qh;PS_^Q3e^78pIT$N%`OW1uY zHN7O*mBZu3wadWehsAE=uiaqhjes|uDYR1avg*M)6$I|qTh1;9#oRL`^3ot~t#P+$ z?cNXO=BC$ide`x?X5B}w;viF(6xr-uwTkzlZf6cU1qr4s0W1#%MfTgM_RZt>Y^B)! zMsGEr;C!RTUOf%AA7<N^;59Ge0ulFGQgqqUq~BjXP4WD;x|^pW=rfTb%VDT@VWJUP zkKU>lzDkvZ)Sw^?JIRn>kq|4Zsb|nuG6K(%47oPg0G6701&x0%`O9#QwofD$JGbwd zjfs%8$&^yJlbW)C!v7Goh8hB{y_!-GStFn9`7!;e4i(`bG9QM5tPJ$k4L8(@%)Gj6 zjKAIY>Q<Yjbzm4=M_EcG$P(adv4*t{#y&9ywg1~|vxH^D9KlM73}36+JLDW8>hQwW z^`@<>^7+RnabN#H=zu9vifF`!RBt|}UDtQ=_^6-{t0u%s=!tp*aY8w$IC=g0=qvSu z!<}|lu7<mWTMbjEEAAmDaZWw4k#|gNd&lHg$NKbp6!DQ<c^6d)Lg;s$)4mP~k5vx( zYnZD9P>mU?w^|tB4fp%CJ(cJAdTi&gL(VCCAJ`3F6ub2Av$w`z^4hOY*bv770;;|5 z7hX(xur9s*ZKWs%|Ge)NbaUiUo2tmiy%@0|ONo6pW&1qs6)^RImS*x6M&@UqrX%8l zXV>j9A-^`;Zdu%Qw3z%0nd9S!_gPxpDD1Lmd>uK=XakF4K*N3MP<*9oM`?m8qrR;! zLHW*h;ohNf8|$yu78{n<V&McM+xGXbFrCi?^U}kgFV|U#;j9l>-~_imA@LtP0bjaw zZ1rYa9IOzCIpIbWAol;D?q2NaXwVAq)CR3~Z=@mtTNOqSXk1vt$LI?DdtTddVTNmw zj5sA@XA=$74%S1q)B6nn;Y(Er0+|U*Xh%jLEPYVjOE@rLY6yA~e>F;({ZDRyeWPa* z2s+Pafsg<*F&=OzQ$o>Xl)Z%|W@8kkIC9PSRtgerHitoyWeXHwRHZ@vHBgbx-fL+v z!^X*Sqo9XoET1elZ(?Fqvv+Ylfl;jyV^l&Z@tA6mdbvZ@Z&{&N`<Dgpdo#R0*F~r# zy_579*V1n0bz|^amgdt=|5?GWsF5v9epBtdK|N(o^S-i8iV3D<PH)zQ8eI|5ob@JX z2&`6<dQDdSWktUH{nRuNjgVDBs^)o};7QabbUcA6oow`}_Ek9heUNBOV<_0{O;!u8 z!%5esMEw@H8=hC!p#z|B-!ZzZs3=^C&JP2!K_ar$w`fiAQlUjJ)<Qx_rUif$7t7*I z{c#n=5fwO^VG)ztNNFzN93uBFSQvCd=a9}`)OtE?7p@-a3dToO+l#AEnXYhZ6w}X> z+FNA53;#8Ptf*4L;MxDdjgo0QEV)qZ)`KV~D$uC6)<Mg_snGdnAH<s)NFP<9sAQ(l zoIX#FI-elK36MN{4NxM@-9#k=rL|jSE-KYOG)Ikg2?5P^JJKu@EJHnbm#bOzp%bBY zWU8wXD^)ohQ=#C8&sMN}!^={N^6pjiIB7h`_GHAoonjEE?kk9c(JYNA;t{I}^*V7H zs!6HK+(_QTJcI@pw>jt%OFOz!&#nhg+m$GZ!@4)>O3W}WZAT<1)5_E?fQxI@Dn^t> z?UQY_Ke+V-L9AjqAS%yIOkc7;pyxUrNc}cZq*)kp>Vu@s5c6PvAyrn#Zts~~qF0U1 z*UgJ53}Yi$eKPYpB9uKr7+17fBxNcs*SstCUNK1a39?5;wRs+N(@OA_%$d<rJ~Rv| z^K2F989}|^dyMovVg>j0BkSeZG|W92)EF8@Z(@QyslYp6xKTC}90&n%WCKII#`w2& z5#F5en&aG)dTNMBdmjU$4;PuzJYDq5k5O+#@tT1c0i?KVRBC{tT;U@bYcX=VBu*Zw zp=%9ePT9E!)!HlJGRSsfH=U+AqJ1CeK%^h60ucQudD$*Yr{tAggb(%V3I^#O;Tn`N zYHA-Au+zh}yLp-mBG4qsi&8hU=`6z<YvVVfP@eO>)+>6&d&@72&n9T>_ysX|W?kgM zt9dBGM2FcvH-u8X7bfQ;^(PTVtE&PWu)lkqZ=uyuy+yMBv%2<)TrQYHXbP-XzJh2^ ztC!gijny{LH<ZvDXz9ZzMP!GB3f@-o-GmMLC+dso8DhepM_EVBM~`V}O1_V}!2SiR z_cUWEYk3sPV60+1A@aLxCm8E!<$<WQd+&Lk+y;x4Z})M?S2A}v_{_|o9Z)HP6U>v( zmMyAB>A%6kOAKyprnq6KgFsrEqb192{n&;*RN88`{lXkVV=8hCPV@#}rXJ2U!qITG ziBNk?gt>^O@N#G?qg*B;&oh<`x>g3zh^j#_h0ioAglqdr0vHz~T_4ZgMfI)}V#_Q! zufrnx(=n?y$P>Z6rM~wrlEdQ&`c7|*P-cMC0(^y~(hBxok&OVvJmMOz_|(G@?oA~W zO2P<B3d4pO+!@oe)IvA)46ZUV%0YCTPE#S{a*cSly5RtIWy<~Z`j1*ibyi(bqD&u) z(F-=UPFgs|T79w5X6D*Wkhvmn-CY6jC57+yP`@ju@@tL##D{ffiiSZ*Q86zqff5)F z9C>m|BQM-ZP17#Nd5muKC8BcMdztG#cJ|bbFE3zoP2gI>l~Wr!_bKJW9@Pi(Q(n17 z+&FXxAtKAgK}TS8rK0rzx@Z;ic}oFKv2=LtY9`}T$QUur(Kfr{uErkbe*0TSk194| zQpzbqHZ<g&?}KwZX=SH7Y2G(8lXEqlqhZQcvvwA10&dD4$ZN{{vOH#So!*bsa*GL` z$;@E4N!Hj~O6NZ4Ey_SMIqW1i2PRl&85jV_z&R8Od*|?oz_4M^MIYt<c$|0^DJB-r zfHCd-^{n?07hh<hoB&a4YC{r=t`!bN`y8UmjK&qRjqolYyY2*dt0!$L=6-IfEUqGC zFSTS45kq;KB$h*=xm}pd)j4t~OC~?2#Rwg;#KHDnR&)M(H#isb16%x<^D;SkjG`xt zyBQ68O?51E5;Wtk(>M{)lxvyEKd=lBdfN$e6VBgp$Y~8HyOi{zCFC^>@!o9BU++GI zNbRzpY2V5=q4`$nfnmc3K9!%2<?5wZ@dep${w%k0K2K*6=E6XOuf5kYivj=gZrVhP zX^K4KXTG_jb0NOOB=Q;e?8A?w+9?g6dEWWcB6+BgcupB7qBI|MM{?J<92ZdrXsC(0 zjw$YhIGdHts&pU9>G_?<PS-?SIgo(M`W$b6_MI2&Km^KUpN6mH7`vszqbgP=i9ST- z3hP8un*&27BD-%~G$7nE>x!*=^BZGX{o}^PF*dq(3Q%Ue3`>CA;d&3j>=$ux!<{yu z)G|OvWEC9%dafP`f{rY0t1&uDf@$2ig$vYU@tC3Ze9C9QQ+!kcrd;)yE+rUP?tg)H z{h(9u-eO`yDb6o}e;CML@V<2wFE~qk7JT`$+xWw^r^OIN0Y@2?AeCVwM!e!sakD>{ z<dLMK|9nFypt$wm(}OtqA8M)*2e({~;tHXoRWAz~+!h?vZyo(Fc9lWK1gj;S7(pl4 zhl^PfUr{A7<_R(o{X&-mo|Susj+Fa3!fWRh$5N~Qvrl9yux^A+NO>hmnk1zko8ZAe z?VB%emh-MInN7D9dC!I!+}v$CaeS{A*e!*>abaMQ*>-gBv@S5Bf_wCt(WCR^SSycQ zvm26Z4lu?yEdAs&Ln(%D)3wb&`nUFbEJmBpXUd^8E9SehD#)OPRkqo6_czO@G?_z~ zr~{*~)|dAcaqRsc#=m6v-N<AM=!uorbI~b9<?r_(zfi{7y<N6`>u#Mf9aBo|em$mx zxTskhIxhCpanCX=STiYgN(9i@7e!{Q^%VviI9^+@c&@v$*szD8y{~BbiLLQU#h^U? zdHRiuxWbD1^q3FabrAoB3~}bNuF+=fkVfLEsN<hs7`ha3*#NN}J$F#h=d51Ty!czy z4@83{x@FYwnNX*5f&YF#C|U!8Ixjoq%3}^RxvREWk9~l#_lDdi+{oCA0(QSl1qRYS zP!sjHDF(Y_N4jGe5TxjTrO6U3ABrjBJ{XMIrXWoa#0&BUH4ze5E#&R#GFMZ*ebsM` zfIb5w#or+QWP$hlDZ1Z531phW|Di~vk{FreRwND_{rz||9R_hg!Z~OXiCtbJvd;v; z=4GTzi5RDX(ES!W8|Yu^h~(wtW;J#aD@TGj@LY-wV++E5ZscjWd?IZX?Ox*F#H5U) zl5M<fXDC|l@tI~d>7bPi)2+k(wfmb%Ve(Hk<z8ni)v+|TQp}_Mz+OpnC@%#ej(Qz2 z3)Yh~^OVzMJ~dK`DFLKkb*Pxyds0R$K!{J{0$^K!C6-#pF2JqVh`A^Rtv60bNC^Ap zq`&~igThW@yu^f-N!{>x1>~7-BlH*she75667kpj5jO*ZAF0b;8%U7Ag$#~ju3g=Y z>xzFoZ`LX!K&AU2Z$Abs-9-dVg*@OOUOFOz$!XP5`4Zu2V!*SKHKrQ1!tp)xY79}& z3<Lo3C8y7d7RJj=<L&B%Y*B_WlFMUYbk&pa4fhb=G@R>t4vB}yJqpZ`k;fd}N!(Mz ziVc+COaVDK!Yu%PR#P5yC&d0^ATONfZyNFgMKp<fT$_gZvyQs7Y^g=hdM}I;aEK!S zKN7P@3dx!r$*%H}A(TWZQ*}Wb^6G;YZvHGhCsIMCSoM2m^On`tS8wNX#x5OwPlH4b z&Zzjf`f<n_OT5eakb#Zw7(yyLQn?;v*lfK&HZ*b_jdTz_@dkAFDCqavk&itb4K77W zfJ+QH0kU#N=$U#!WjOzi#0=C$yOqkzJXK4wBOfj$9u`5%$rm>>!!@wvT7J424qByO zChJVQ2oTeK1qmRZP|Ie-W(iLVI{-Y`F|hmeT{A8ODE4p%(bR<W;^hGlyLGw_isAr^ zPRJ}~phO(Ls|i`rN%-*^RU_k?QfzV=vUglAVF;Ecg)9&)JS&0ZR(?NO`87>yg)7D` zIOmt<x?0hLL4DUm1S0_BEqh-Q5v;`Oug-|#S;WAdc!`=I#_h*xvyFM{8i?x{z&&|$ z$?b%RtjdKqhz?PvG5gTNsQhl3YA~)6sh{6w#{F|oc(Og$oKtJOl9}#ZDX=6eN*$Lg z;<=aCU~ZvpCAwhv*VZ;eM-71N%5q!7YuW$U$68TE_eQ`?fMXf}&$J*I^NokedPbno zW(N>`J{!t#xQ9|WU)<W0bOw(&oaj$tdd{xuP-{f=vYE}yLNg>dPD|96Og8f>ml5)Q z=%P--1hiQDe5VyES@!-&?fW&$Jz?kVn|%Mf3-Un-ft(^f@My_GqS6WX(&gGFX1Xa^ zm=a=wFa8(F-me=LSeJt~<0pRy`Dp_7P*R1}F$<C54Hn(#^D)M@g#ftTuU(qHWf`wg zd(AUk95G%dbwnQK!)PY)nnjMkA(Jjvv4d&>zz@_zS@gi5VFB!?=1IvUs4EEYu^(|o zQ#P2nS8SVy8G`Xl0oP$-9Am(zd84To<hTf6f{1?pgCU6v@!(a~-KpvpF;%F6xiSm@ zLmM??eIZ{o(Q|>w^C=dDaF;+d>N!zmEILGDs9IDX@YMxT&&zwOju_-r^qU<lG~$7i z&fIP80@>|_BML+<5G!%UGQqCn{vEIV&l0r}D~_En;fIV1PXU)ZKs83<TYKSJ2vQz^ zh7kiHYQ^npGwSj{ojqeNeNrn7cMU|TPM3n&N=yEBdDF58T?U*m?XftDh}y99az@(* zR~7|@wfRKP8^T83?IFEGSe~?eU1Dq7;$6%?yk8K63^;Ysr{3K-v7XumMkD(*I!h#m zF5LQZReb1z2ED1E+nPAlCsF7lL<OJBRU^)mlSqy5I`{OGTKz||Ox77kG?-xBufDl8 z$m00W(s$@YGVH%#+4JK~KO@<0G-Okvzb?Pj#*9vH^up+ukX<xGcRUpO!cvm@IOfMr z+~?@q#n|V<r8KPf%YZK&IpTNS;$#Etp#u8E9oVZ=HOGcJ0VF`caz`M!OU$mYnQklu z5dFxz{UZ-BQeLB%)WyKD0N(?})U~SiOy~7-;*EjvqU28L2(jl^U2Z(B{I9NBGO0UG zmCq{%oL=iDtvEl7E||+<ymdaST+_uw+!lN}dG4AM;A@=N_Nglnq%)XQ1qv7I37}T+ zhm996iL#(=(P#gdRY>s+Uo=3CTv5Ap0KYX=26y$)XM2o>av5)v^1ciIn(R&$iwY5v z^K+L_$?ab8m6OWwThRxg!7GCjLs1g<<T}zpJ{Hh?e3Hyc=E>)%^K{VzVNh=#*px({ zxD?|tP}Y954{LJuXv-1IbfZ~P$^KuM@;o??n{ECSp}+y{Q)t_7*1lXHK~{k4rGk$5 zCmJ71LNp>%7|e-eA%S_Tn5(1{Wzt~D*Zh!N_wbe7$nTcZI3GDbqy)9am+IYf)L)NW zTn#(kmWTFuOEHrT^LMt^aK4bSAShe;T$UHml(%;fzj0i{Y<JvVq-*d!>VjsJ-`#a3 ztq#%MqFey)g34VZ$0uTsa9-W_V+({OJ{lvJtE2f_j9^rsI@&`AU{D98hnZfSjl=68 zCUy=^%IOl_9K#{d@ff9<0n97o+YsCpK$sKyUDZ>ONBZd8R|+Q;P{W7(gbN&C(Ivh) zEUpp_4W^3)E(1n_ddw3FB$oZXrsDqnz=6o9Pga1w9H=z8>pN?-dw&6h5Aaw9{8mIk z>5P3)dCdE9KnfK4+#mP)X|EKHA(r%L2I<^9f(XBX*nk045*|ixTBg581&ELN54HB! z+V@W=$V_JsxS(puP@Z7XZvIk?CTyVH{;3M)9%Lmm*bnLR%o~$*x6c*1_Y~;x&4B~T z)+;x39gbbI8ETX08cTSWo@s|nJp~d|XN1+oT~+ECGb;r7H)NswkTtw8PV3!R{|Ou5 z@n-Dx_{Yyw2=^gf)(Up5nj46yCv}nzO;dl`q*%uepH{1P@!`*o%djTTxFcs@J>{LU z(hBp!I_1QDcyW7rWLsxR4ABcAF1;?O(EecdGk*z4pM7K=qLXCgCV{rdUjigvVLXcJ zZRSlajZa~^Zf&I*pDwwh;x>GHut4h6^4sGtMfD#+l7`+W4>>+x{&(%<Yh^(C+`iTT zq`c%KAjxdp;pLyQbAnatPFv+W(-})U@&$HoGcp3MhhibYruwDiEm2Lh++9$d62^XE zS2QQt40ltKRir_FVLkp-Wppvk9L%t)QoHVsdG-L2)QD6{ekOrS$An)9YDE4>A8&oN zs6n5H47HX>MD1??^}Fv^G*+|$mXo~hRTZddUDe$}O%`59)L-m_0DWZiOHwou#VpWm zH(FZd@z7?F!ZxM4M))oI>KWeyd!@(UN8Ep4ai~SV(ZGf&Ad8#_{U^Bok0A?ID12r# z)t7gQWYY2ORt*e)dP&*?@o90{Zr_q#xY*`_Re`h9_D%n3SxgZBww^(d$i$V7wU>(y zs1@C%60{psAVBR7NyBwL7MeAskY`p;PlJKb&4UHv^!GXsKHzEqF9lsve_g|Tj(A8s z@;fp|*dCTVTdk>rd@H^@z_@j2_wWj4arvG56LDM`{pLI3M0$w;^-ukIe%C;VAk1dv zX|jjS<8?VI5bVttAq9zMIU?!5<iDO(8@Pnt_s%llR+nKe`qE8=g61*IiahHkBKG)J zyP>rPc75-9mJI7{`VEBM{?Cw=#D3ie`Art#nj7DG1`5Pe59yJG^S}JP3B-H|a`3W$ zmQvXLk-Kpw>{EIOnWxduFw{_|H=wS8$%AU#7okCUFFJG(`u}0{R|+jX5wY3mJGuz1 zyKjMqf7l7^;PkMM(~V13mhZ(#vDabf`en$F)NU#A$F0){MR%0CRyU~z206f(kT0;g zd{+O==BgtqGwjnifwB9+*)+__71$6;`aLSM^9RCURnkkWBlPTPTlYd46o|AojjDND zc-GIbPqM4(iY)>kTG_wnQO@C|FAs_D4w*g3{HO~QtGw-OY=!uH3-MX2>o_Ac2K4p6 z=zA^5q(h<E)#mB-q$V4?g}{{!TM_o$P3x@iP=%K-!d@PhV!dTZdm@z@k=j>~#vD-W z6$?ELaEAnf<ROvFnpn2WC=}5P2^3u!aglgym1dTSBj(EQE{Yhif91%<(ePA#1Qebv zzd#a{eBGWC&k|2z=67w0IAw~zVlH-dE<5q;GV#3w+<PtgJUI_woZ1Firq*UST=QFG zUZw$JDR69+5viPGf9LE2bA*FhfuU?8z`143$DBfI7}N5`*vqnwWR(ZvHvi+Zpwj9g z^PP8fU?PC9#WHd_C0ots#t||(@-9$<JY=?DNY{~+g2*K@S*4Gvy5#s)0N}g1E{%ks z#KA5A#M4_+axSdv6~w~~`r+@TZ6?HxED2o$uo%M9McEKy`#38JAfg~)TLv)P<Xx=5 z@RfLc_E>jjd>j+Y1kBEfYe>;US!v&Xe*5(L-<JF1t^oz7w!aXCG3|noH*kVLMK<0} zGz<Upjb5d}MMC?z`Y?`2+bA9?A{Pos!Y?dx=&HtYGp?$X(g>&AD{>UqI*u%RTh)$H z`YQpBu$#2INe`_r#HoaMC-M{|tZFhJ8k~F&(Iyv#>t-y!L5gzCx`_lk%I5T*g*gRH zXuZM3Ba;S(F5CPng<s7>V7uCh2j`wytw8w^Z;&EpbH(X3C7Qnu<50S3M{+f~=3=>M z<Jv@Cxl}EPpTD8hJaukvzF6d&hcjc&E9=m&=0;YG*%ydxDL8&6(_g}QyxPD5<yWY_ zfX;IMHJcI;YOPHb*OhpCp5zT5$0I&w`5jx}8rhWw#hPjnxavUFI|4*JbmZ!@SZTZ( zBHS?Ia@W_p!~VsGQq~Dv%9Q($eW_n8{pM;^tXCuj{_&3~IOB;foOj?Bk?|l~pd5QQ zdzDX8^%u>pvG3B0(hOKI!Fj8yd6ACbbc`2G>l8#=SL=*rO^)I)SlRd|=;pC=S$$$Q zV^j;n)(Bm%35y!10*_3)jdY3)E7X@C>=d0Lx39T?>k>-0&V;$=;%GnjiM<R8B0s~r zdU8AWm-O3=Jq*kiS_K0bKC?%#wMg~?;Sdu44dQXQ<0tOaiHEUMtSxKJcdoMr@(1cZ zkFaL41?}`Y6M9E|k;Zd@ScwJ<6Ze26GVZj$k+S+5f?=K&98aEcHT|1B=M!-H+cb=? z6Z9nV!s+kP8YfV*Jeys=4Qs-AZ%X<NpS~#xqBW$~6q<^DJ+9`-5c`U2l4XbgC<NHD zbWeCS4ou`3$IC%)Q;}uZX)k#O?*p>?^yL9*gOk_`_kvIHEI+@uIFX@MBko>6P-*t` z<;P*;RN?k><N?;`I`;c7F9(k#tt**piQ;j*1Doq09!xV)u1#D^;%bjTACi9l8Qp0! zqp9nLbn=HwZj!zXD)LU(2i0F7<zUWJnXaL=Na=-9fd~qok;a9REti%nMiD~U5C=T{ z+>VlTt7Q6(a{|d}#DjVL=8Z%GrDxGjh0}e7H5%C<sNE<3Al1RB(W@XK>XlvRtb^HI zud``(+`tmwp}*u<oF%rb^38YTE#@bzUWn5#*)gu1uPXzCE>WPxa$46bYTb&ca5ekk z3pH<FOW~=3({gOKhk6DMK)r+7+lch(#^#9BjQsTIEIt>Ne-gX>k{lCM<}-jQ6+uGp z&y%dwexAMXS`kMZb*zsMqPT%q=IpV}U=p-|`v(lWe~hT;whD;w$24A4GBwflrZP47 zG87L+xM^{QcZJQ*`>NOF6rGpVP8X)mz$E02z$$C$D&ri)-(y_Mfuh`v<Y;qgQ1;1C zeS&PHlTq}DLE{M|yV7!j97=L-SBfny)f9x&kB|xM)5$nPIT(aNbS!D~ZP1R6bA7~- z2M+i)8h&{4bJesY7)7$Z)cjg}4l7EGN@n1~(>M=3;t^FY=hFAJP?Q$=;N43Puuo38 z_{qSFqN|uC@5bN3>Jg$Q<Shv1^ca!-liQAx!Q~s}VV?2RH!67|Sp9Wj9y5ZzVQAvp zz*1c0r8i3<X=r=Sx3OG=Of6jWK=ZJ~JE9Y300lKJ8&*i2dW@cvCNyz!ENmI7a2ZY~ z{74z-zCjz(1uKo?DF-@GalTUznD7H*ENxGOS5@ax9lY`w@LQc@-HjSaVb$7}ho4*e zmh3?V`MMxsvPI<hU1{cP3+#@N(*MS7wf=X)dm*aFIcrSFu#?o4GM?${eZ1oQC(XyK zKhSg6A7A*@o3D}CE<S%Y0vNY{uODVe*TN<-{M%r4Qkbt(PFH@{*}u;1e*N(egK7{s zkN1~9w_A{RM|chHIt!EC?H&5{L(>H%l_|%m6YSEpN7=SVFCV--0m7c4W<R~IhV{E% zofK>g{YIndO6S2>Tfbq=Z*6HIT_dt2Fof;2i)SE(Q?0+Q)@mdI`z09f_h<(6m8;KP z4h(EG|I3Xyq<+E$Z%i@#Wlg}?U^YLw{f>B48!;Ib6O*Ul-2L(G>rsCi5NA|0$Ljon zefC&qOpY>BQ&#lo9|UGEaQ6;#atxj+ZtU&oV9G;$gJ%n$EGN^Bz<0X@1soasOgZaP zh!$UH*R&_m6!!Zy{@h}m7^i*qu}VWU=un}5Tc{zC2H>v8pB<!!7Gcx^gtt+@5VEKe zx@}t8E*or1y_@GD6e7uvUOv8F4Cb`K!8p|nslx(-_#*x0S&~_+=ZWw3D&`64WYS_Y zFC)<F*iF%=EyCM?|K99?;s0ent@-&ILz~)syb{#aYB67_*~`!#cAr0yzB|0F@NwN% zSu<csG^p{3CJ4UUz*%*o^0?C~J$`D%grHUNzHy)6NZGv`GjP5eIO@#N3%RS#PbG4R zuiC3!76B86%lcZ$f+wT(nf;7?mxrDnax9d5`s;}Z@DsW9YW2};1JIuioTBaz<kCJ1 z)eJ7MBz*bxgNIrSsIkDwH%RW1#f}AZvZ@9td1N*6$}!RR4v$;*fkb!xcUW@0PE7s8 ztyv{<kVu$F&>Cfco96+&sy;NtKPqnV3Di)^`S?g7WD=ydKdL<8=~$Vo9&FX+@GJI& z9J~=L)8KApCn>aRZWe%)o3&J*L>f^-t-0ZCpQe~Cqejw<eaX4>9mtt`C%#nvOM7$t z{yuVxXJj|x^k&oc4=>DpqkbzLuPK&f&-wKA=%cyLViBkVKPEr*O|<ze0;T-uBZ@96 zieG2#B$LY^E4Iag_o!FrT{!8+Jdi0by+2Qq-V8QjrrU+xPM^=P<A9AhU^|j+dl51e zcH5+xZOj$=-sWYzIS^2LdbO+M4fss~BEyuPu9XVzojvcuOE>1E3((>&hzyr4+Y5-A z&=!cfCf|ey7RxW)QoL=<1HS;ni|*TKq){~UDf}^EIt<|fAd|vM#uAENzN{Lumj~bn zyra}?sjjJxNXMHR)N{TBbsE=;X-C{JO%r3NN7kCpapb@BTQ1t$Y})@DrU)@mZ^1AK z-^kW#^zT?p7Y}D(H=4a=;h1cjaLL}$5=dGbiJq~y9c^pbJMuHm+);w&r9^uM%XkL{ zfCQZsE|aYTk@ilz!*2!?xgeDteO_RCPzig<p8BvB>-bewWph}%d%zl^|L}`F!)=&v z+OBp!owh&CA$CnhWQ+nx1<9Ud>liU(7ab1yo(q0<$J!U=d1=HEK4g!vmsuNG9=~DT zTV=TEkecs!f<TSO07R!i$;47k>^U7s#)&_U%uRDitI^PQ61BHjHgQz?+HGU2>gD$% zSwmIK3a8wBM{l`Z@sm!I9Cj{ab1YX0Vk|a(<GH;T!dcsF$T$tGojBwXGU9}AHWqWx zvx1hnb=jAIjRVI=zBpBFI@=O5<K~<Sk^$8^E_GHe^=>W=Auf#vT)Zbin+O*HkPm8V zcWJxf(mv^OdC{d~(<KI%sjW#ZP-2S8QLk9J_PV+Dg}7cl;M$)-bC(=oYs4~z8f;M} zC?M^^937ztnVfWcaA98qSdoEokmmsBF_txSuzc!+$OG<+lkP7T-Iq4qL9^Ine~fl_ z(_ZR$yt49GbMsgaDaGpdb&(p5hdf+b%y4Q>H|3<8alsaW)^9gGKK*(4D)~0vh!g!z zeSwpqHPE5NV_R^YmufQZEezEFGF^C(o%~Ao)Ha0y0gITLzHKDo%1Bk($?qyGgD5Nl zm3N4j+?2g}=|nzDewk&=@fd2(a2}X)?wk_udnEZ_%9)qp95_6l<GJ8g>D0+qE(0o+ zvA-{#_u-^76~!WRAN|VkRFt9rrjExhK+Kj|ip@Y3CK&nGR6%)0w{_ZO=TWFRRP<(t zawi*l+Ee-tUGgu3j%e_Xrb4~Aw}}HlA~W5R?!BetV_@y72Bg(AQ#*?DEy`|yaSq>N zJDyAA_|VOMWXRG}&FbbUk9bXeQ`0K0)^7{1&IEyPscOLg=J8ea>yPrj$lptq&ybH4 zlL?%i@9Zz*%CFmZTfX2or(^V?68*858bNCM$JN<b79-t01(=1&H*YgGqL~<*`C^*c zbX}j22ag-t?O)4_uV42o<PVhb>;5=3=;*dOD|0;jWbMp+s{y_vW{sK5+3YRVwpv#7 zV;OJ$oR>=hZN1YKQ_|#G>3%v_Va%Ve`Ls#%M(|!S-w)@Vcl>>weTM`48gj}s?0_fz zWG8cBj19wlxpmU`HuePVyz`u2hWmW0FDY49Wr6;*DRpdq9ui<N-#tvoB0t?%4%w|` zybJJzH`S5oe(RX>LhRdsy}$F>m$izmIYF?8sWn<{xg~$LYA~tku|<S>U`O!md}VNu ztl5*1tvZ$@%sWip_4KZ**E%Z+5&}80d0Va@!<RQ7>;sJT3v7Q7oD1p8>}=!hU@7PG zgKHH{%Q7sM7eXIYbwJ@1tZ6i@awCqVC70n8mfn2r+Wd}^?5m=(Wgyz<dA4hCH1R5W z3MeQ}*H^tcKEQf*VDWAP>z;B?X@efYrLw1xWm1-5Nx#~7UZSSPzxQ*_UKVhE5navj zlNO6$5fK?qvEYD<vyYq_w%3Ags8v2PXDM;P;160g%6ZC(A@a<{XPBjDQDQBbSUC>Z zxiiC#<hy$=_)S4*RmQ_E1lF`7znx;?WAJFsOyB7nK01=MVgBN8XVp2H7@c`p^IQHm z{Tvhxi$NH?|G5-8Jvg*2P+gro_k&@V!!7H2uco|?_m_$9nQy*^Ce7s2i~N-<fyXqx z%H}#NCH~_4Sjh<PgL5GfVpSuAi;rb;6z!Al_dp}cp{1c{n{e-tMmcV^hP?AgSa&h= z#YX)2&<+pt=7pmLP)Q8xhX3y`-7;mS{MmU4Z>DbIpUQqROZ6(+eN%Qll3{ZSS}A_D zPAa!B6R~(`1<xa1Rke}uIr;R<;IrfA=XV-7UeS$T6nl~}IWUtPR7~lk?PsZVH}?fO z9y1o7o|e~f2)FqdY2!QF#n;xC&GS8~oAoBl7eKM#g3ZkW9b(p6il4BSJ&wPJquz$k zB25a)8r5x}PBCkr1vweCCk&71uXVVqq`efi;gh?ZCdGV)mF;%cei)0<r#u`=?Rg|M z7l%wAT-a>V?Sd~QnLD?rXVyOa;dnjqD9?e!#B4-FzKA&+lS{66+(M;_G-YDx{stRi z=}{It=GyFi76+>s%9U;hs-;hMI(0^y2mTk@9c{r0yH)9*OD{TNvYS!96?uB;wS7J5 zqhjuI&3{9P)_=xglJOC7x;ekzT{KqrR0hINFR-M#@Vot`*Ds9*bogg+iq4%Xy4fJ+ z(`xWwFSzLA>bxb(?xA!|oNqc7de2@A?9g!;P*-CHt@*VieQkeg`6Y)*P7=FJ@!B5l znb?qor*8Xnv&t$3j|Te~($AL93|;yX2kb)DZd>U`=qaBf2B%5!)0ZD#+1r%K-A`QT zPY)9=4PfIPbG7mR&KyeUzk4faa6`9sajtV$PPE$pSUL}{B>(sSBLWI85O8aNsJL=( zD?m`t+<TRoduy)D1aagnT)7Kzo0==rY`D{=n&xOZvb40!tgLtW`T0HP_b1%1bD#Tl zpX>R&9uHS-yyJ{2{nVNKK~>2<M}41E_u8NrMjI#6IPpb(c3l2z>zztu$pqoN=c(e} za;=KeUHDplUKg{14!K+gHDmgMYtVU7-#H~$hZ`b)g3=~@c88>EZ9e^-+?qph7^l?N z%#7#dvVM%!(FG-b0b$kO`er4~^L^5iGt9Whvucq7Xzt3D#KL1Kp`Y3#tpDRojc<L% zhIeUl9S0Y-rF8F%2TZMK(R)3dh$m{iPpqHH%DI~VU2?%C=Kwm%aL1wgp6b>aX6{t} zY29!v`0TH&U)Kq`;3zpB-^6L?^1rpI@{<2l+)5%{y$E2D;pp2Tmvzo8%djr%L*6zr zkw5!$gLM<Ho)0f+>cinlZ;FCm&8Swdy!G%6P8+Oy-<dA`x95X<f#9*~cKb%V!B#uV zsNxjLcc~no8Mi?ag9p?bp%@uM?><FUue#^U@AXBGVD+${5L5eDDSt=aC~Kg-iD$z+ z%lAU$EyT*6i#}_De|xxC{+IaLn{?@g>!>Uqm8k{Co!Vl3nMLzfGqg4uC$)ZItsEMW zGldzWR)73}J^4>-Sq}LIDdm}Lzcu<STI!}{X__S?>({{wqnMtkla^CzN4nKgNK2P! zZ2PosCuTV4ktLCMjGb7gl9k>iT_hPa9vghL<jl7g*6pG%+;+t0E6bw~61y^dLX~Xe z{hw<%@E=~wKI9_;zlxp~b*p%es^&O|KIoNt)ZHTO^Wekk7jMK!;Ag$#p`AF_``plL zqc>E<CnD6*AjbL9G!?_^sD<@Y(XEC&?*wvvdM%+7?yoA2ABjHB4?V))1-tglS?q41 znQ@d$zYDhF*wOOQ8*jl?vK-#xv?zaN8r+!QD$)5@Lssord9!xxWdU^L=bX9jcgKL$ zjqKE8&qdagvW|5Rd|=h9iS%@4b#SuMP2lOqQM_v}J{>UpPbAd^DwE^{mRas21bt^L zxaUo(QbDwIVxiY&1=q||*fI4jHNzK~;BB=3>Q7}7i)Zb>&^cfaawjZpAA|qAnr5e4 zw2*pn{Yw9)qGgaAN<vAb=sluB@nvREW)>+Qa8$t}%h7%RO!?23F8Z=j3wg`#_cRr} z%mXqtA2u-h4Mfd;3f=8=*wq)GYHzcz!7ZLoKew}R;5wY2{V*r~Us;3kQo7c;d;cIN z-@A%#9(5jgku{jc({G!!awJ9Hxa5W$v^3r(?2(%j8+4VFnr(R9G2ntEpg$vMqxm9i z?%%E+T(x;FD_Z;e^X0id_Mft4`H_Hg56{#MS@1u3#5mwFY~nQ}zCyXhqy=>h-@9;7 zhNk4EH6`&dIh0M%5Hi{hdoqh{GlUHNq?=b4g&Rw+b3j$u+pjcankqgb><7qC7Ao30 zc)ft5S}ZlCxDvk$IpaB8H&l9b_cE%Oe_i)=dW_`=QaNI<9N+Xbms^xf&bOR#Ff(Yf z`9`o#N-M4`kxrl#J9K~#O)5Fp2B*!Zq~!=cF5Il{Gce`oPaVznsBz`yl>cSo`Ojj< zSx0ekY7+sqoJ<Ft-rcodv#*h9H7-XdST>6fO7Gl5Vi>Oi>oa2x?tfdVupDs=e=C-U z5I=BUK^oB@^Htq`Ra{ewb@Ge9AlYJHf%v!gq6;JGM>pavs69UKayS)%DR=BqF+-wg zn+p0)COtC<8lfmhwMICl5dse_k}%U^h3rWD8#_2m1w|P<t)h^4g#HfE<3&!D#4l6A zbn%u9nIF~5Kn4D43ncx3C&=vrVJMMhr-Y^1!3s~t!Y(OIU~uGnXwW4q&7o9yCaBZT z(Z3u@o>6|)uQ@>}Ve-GHu=OZrMbNo|MJY0uY-Zzz&ftxwh|Z2@3OWBQI31<yWZ_hf zt~X2c+g)tD&Hzd^aneLRnrbfLDw?>>jAnZ~n2tFZCv;Q&{IDR^TC3JV;lMlRYO*xd z4bDJQl_V_lyZ8u|N@a^|LAei!z_|ap+lx{}-x?waD6t+Ky=E2>Cga@W!A2#sHpscq zgUl&eq58lV@t}S{vn^NGAehcMEaFkeE{`fzOS+4nI%im%KEjaVf}BWKIgD5{*!Qj- zWtz}=!ZkuWcYnBX6rKLY{I-Xy!`Xe~MZ03C^YoO!OWdeG$?p@GlLAu6hM&h3^f=n9 z@ynq7Ur^&LI$}G9cuRgCUFv$QF(T9bMCXN9_fvy4QxE@#fAs7~(_Jse8A=^Kfn<)Z zAC_Lp*<jPvY5VK9Mad_p8CRThv-YOSRh(L3ig8H+^d?_H*`5OjXxA3hJlAdO)bBf1 zQ^V5EuBZV!o|98=Q0o_2_xRBl;Mb$YOMp|2x;<v}1z#2C{QexpZ%bs{@jYQSOD~$< z*^s42UK6bw&lU2|vujE!Dt5j}jyc7C06X?ycUutsgLpQ$bGw|tXc;K${`!FT$laY0 z<mtQL9)671{FJi(l=ZOzaf&U-u3gn3<(9<$ffC-IvcE_wj5Q(Mzx-zETC&SQ^slB- zA2-JNiaq(quwZLD^s)Jm!1D65A?h0`rGA#NP)Vo05>7>It5NM8andlgVPPA5YR{^I zZaA;j1izfbF`{1VU?_2eCD&QdZx!@n3wU@z-5K!jN;2)BvpIc33EW*&o%PbOShnh> z`MDbt6H)8p_B)nVwMMeAkV|*vaa!4yUN~gs#;8(-qDAR9EB~b3ihRBIDTkTRAD>HN z;#IcTO%tBy66bpN(Moop!fOzF`|^+MbX16Z7DBa<*P^_Rp)HUH`)Y%^^~NbDh-gK7 zcP(&)MX*shv1(5rExoGW!Bbe^#XHMim}cNpn9)biJB!I2LuRpY!hhTd++D*L8%hPZ zM>Ei3N5sFwbX#1WMo@~mRj4MAtfoR!Qy!)_W;Zz*w<xH{{C=1X+6C$D2rSyzSxhB6 z<l0p!>fK-jKMnQOsaz@+x`_HN&f?k8JL@zgjGj5T{oB2+kg9x^dR3t@b#4=%Ay|9| zhI^Ww9CH$HRCi{$41TEW#KZnty?L*QkFtrB|1*7rju$U)`WtgadgbHP6pJ;J-FRGi z!&ggsm?qcWiG4flV}_?yJR-DZR>#_!we}%Y|5`A>pemXxFw<&N`F-r2)`^xqWz6Id zpt^~_Qjkv0ZkX0q$&;V3q3TS9ll590@~wFQfJ0{;QJ|Mj1hh*52q&FsHXAA~;_#Q< zAI!^ieoSuqVk$EV{oK_E(61iw8}}6I+SXP1Pbq0XZ(;)>tcyH?kn)O(qgQa6>NF!X zLp$rLaVCBl6=LPl!j>EbK(sVl$uQ&ogF+gqgOwp4`qRHPzx7i!%4n=Bf^$S{|D62A z+4mHJ$28Y11J8oD`MgS$;`$0v2s^KRv&SDi?^PuzVKW3PRC%A_MtkUb*+I};`#JdK z+Trx0DvI{km1p_9r3<`H+pi3>@=y%ySjpT53};x_l-j}C_75?1gMV|N+)-i^c-6r; zvEmt}i=k@N_ZSaQMBVYd>MVSs0Phl4Z&>ucB2R0`oLbo2FaYp5J^DL9sPfhbE<h-2 zKey11Hj#QW8lQS%b4LATHmaogrFjMYzTDW(d48k1%gVcxQC%NOTb#2}fQ&ncmv6<< zCvZ{z+w?+9p0;aOxi_L#E5_yzm>c$Jl3L8~4^4KohzY!VNw%`@t5;&p_>zhnp{9=) z|I}yTughe6&EF{y<i0nJ3=RpD2CiVy8Iujuk>$A=tc9*CrA>BNl3~l~_<%;NN;|^B zzUJ5?9Nx;;CcoI$Cvf;)DFe4^MpBsALh@>(71D_d=B){=;s{FFh^$sy=)F;xr^LuD zIy3XS&*w!$p3w(#`nt~v=o*EIXE)rP1zY1_w|}4~|8t)xQS~Jsm#-_|RG&Ouv%1K= zW8Qbfdg6bWaGN7Zt>>h(ZK=o0S;ziesV!_0sjNqB%>Vs*%`D{dRaJ)eqpq6OJ{RLj zS=X#W+5}cOhGsZ|mb+wl_dshUdN6hf+O<8mQ96#CK2`sN_c$`*4zAIZe#ESr9ebVl zaQWo#(4Kj>;gbGZXijcVcEc81I2l(NBn+$jX~oXIi*>|L#%E<$NM#$LN=T_)s`f`N z{>&eM8P##d+>U^3{TPrR&4*}%s5sxWV_SwJKQeT}&YaGz);rQ0mG$Dw&wSnII)D22 zLw)0nGDcya9e-iTD(3K|kgv|Ze+yuj-3ucAd(YN7Ap~+P)`%)hx?5*O%lBzxOLbz3 zV<+-*DyuMtZlT{b@RJXq+^rXTY)sA7vu37QXRFK;#*Gi&uhughBn{TxXF4XOVZB`m zh0b;5a>fyJNY=-q*^L8G7}E(q`{7T%Va!l-f!95hC=@jv@60vJf;t-&JTz|kekLT# zR`Ml#ByU1l@ppZ`Pp$rI`S&RIq-cg-3M>wI5C5Pzh1!$Ad)1xXSVLqMP_CN3dxiA@ z=42`YfJ#k}MFtPEeHwDpUE-3mPcTUOl{W{-ojslG@U1>mVJ}x|VhFWNKTW^<SxabV z(=woLP|#^e>OJ6^#MSsP5!jQ*J<A+c9Y8qZoq76GsF!#sXoWS(Bi$kTPhnJf<KdK$ zGbN1D=nfI7d!nX}q((_jzh|PGQiY!&B+AnR&s2saGQ@85@yIL>#v492cgne!cvUo_ z>UxQ}zu*~amFoe?XNd!zhV}rUHbXMU9Lb5LMb%#LU@toSGTnLV;cFs#XHYGFg%Z0Y zatHEphbYrWf?or?89UuYv>dAj6#bik-UXm-cvR0wBgHZV?RcaU&)9ExQfEmQdx&AW za_kNUNoHeE?!yu4-{-<laY^NrBdI=Qg17yXK~(DyD#+WOc1U8hI3K>O>rhKoBZ3<s zAj{=2JC1XWw;szJ;^F)%RlYOzMLr39Y4%lE>+7l66=$`_0(BHKyVdm?cM|(5`S0^% zVw7VxqjCp}!CAvH{~ikZ2-Q{(_T8eK+o3XsU!T>mp?ns!hP|&za*__qTV>P%!uuCy zcbv`i4k*WS#<y!In{BnB{6L4Aj1wtY0d9|_ao1yN(pBEd!#Hc^=}uaO=00!E3XY1E z9&;oNTFlM94sT}KJ(WIT&LulpPBcTv!a^|kuz4$nlz4s96cwVE{<b{btQk)lTw#<9 zQj7}yjoPa-cz_{9j?1>k&64`SDg^+0&2y%rSiQbj*P?A9Qzm)+M;#n>{}k&ro~*kN z-pQOSkUr7=enxk6eqy}92_;1E+#EWi(}`EfBAa_W+^hzo_Y@qJ@o<$VVL=T6{1qu| zFtyLa%!L9M{t(#Y7?E*iwL_kt;a%4>hNSvs>vD&`)r=|z*^>Ueq`Y4FxmOm<99BDM z<3<{J7utim5b6D6*8|^P6|Ry~31htzdb&H7+qr$s-lgK@y^NFgqZjh1VX3%Cmr+@Q z(#g6*D!cDRFRb^>$5&8h=48D`$b$YObAt%Ci{=@IAC#CmWhrsjY-edyMwht)=;O~P zfb@(-bLQ!m43TS9OxV`orhkp^DMb}sxs=IFv|E$FU3v1|tJQN=)`cMK1i)dE_-ym^ z5vc6EHRw5ZDP%S^reQG7)IGuhMDD7CM&p8<GQ(m#%`gq2VPxSxLf$F*#o|S!V}iJ= z#ZH3c+>~jZRg2QuaVa+jL7?~u6<*SH>$$~cK2<0r-$9PVWeO2Cj-p4S+A|L@9A(%B za|KIj9vw9&euRcCDMi=Y5??boM6{QZW3ODQic05-5<rHT@}Xk!{2KQf#p{_uy$w26 zZs~ND4d+=Vfg^}+O_iBY9;XgVcaUU@LqZH4vU|ss`GGQa3=(=UHR<I%erl-6W;i;> zUg0&5Oe>G<$>Ew$IX7OLD~t|F*`-QHnSTSVRB|Cry(HB~JUuyC1R6`Gl_Wz0cG`ee zVhNV_Q>C1Sq)+;XJCWNT4YmIPE7QnbGpV;ujs2Fr(d$5xo=Ux4m`%XEmb#mYY5hd0 zQ)+nWA?7v2KvRa$LBpQHfRs}$L9O+5z(E61HL6?4*fnRBe`6ZK2h9tzu0-KV=ot4E z*k1jV&%3Hn;MHr6nQx>d52qdrJX;?<VT41AZrxRHPha^bHtEdcYR^4h@EwdbeN$Oz zo2K9QzTUEVb7;}|zBgP<y$xaWaLFV3nbH)u<cawwhNnK$843{dTYK_ptIk)Q>=m{c z;3!K=MePvXu2CNC07Uv)Uga0i?!SqqZfBLVr?b7`-%c+q!eOA+wu^-Y+%~7+@MrfG zlqH5kC|e6QTPuIIRvg-$o-RU?UPFF1<L=8=Wo*7e3z#WmR?-930~}Y)Ih*7Realv` z@Ai8}OT?CoBkL6BV#YJb?v+Uu4s`L;&9O-cq<xEw{<Pb;bKn5_Og=gW++LK5{H`*M zX(H`qsxD-+_B>MWUS8-k*O*(Xz|(F@y>H8^9{$DJ>X_saZy^;Le?=m`{&4~A+HgF% z>RWdr|1Ev}w;Fly>FYrR<-ZRae`9Jh`@ifmVAB7S+ToFp0;=u+PjmjassZ@b`1h*% zckL*!=MMO66eKk2o8ivC;}L(aRlgV8ffPkSD|eu^JKR$|yfTL_P$mzCiA1r2C5Dk| zL>^`vJ!%+9U><gWcrXCo4uz1|4$lAQ3^I8LOr#+Od1eSGGbo^Oh^%fW6B(M8hgj&n z9T6oWZ=Ju>{zrhgt(Yd0r%w}UGBkXUp=d}t5Ema5zw|8-#p1;Sc;G~!A%Ni!1^e&Y z5#AV#z^+p;kT=%3)?<$6Nr$Z;33#|+h95)|Kqwh)08N`7G^~fy2Ed7^ym4M)m;AfN z3`wT^r5K=EtFmS)u!9kUzfR#b-IagWN*_Jk8jqp-ketK2fL@(JQ9%6dU1SjjTNVS< z9Ha;FXfmRy5@fCaZJB%VfIQp)ro=?QXgZ1o4ATZk5Wf|sGgLHG{&vZq*p<0H3Y^_l zx5`i?bOZNCk%V)?*D06{ZJZKOqc$BI^j&dn=d|v3MfpL7`irj^WGqQ~k0ihMlrlt! z>~{9vr4v&#^@!xH?u=u)RKNkyEb_b7CCDfJ9_Ob~DuzUbfpc^=FeURlMFN-t>z0k* zwh&+%{Ew=@I|z@YP(t0TTq#~x_b4D%CK%vkIB0<!L^5{hK0MZuyS)1#Ls!a(hlJxt z9jgoG4D52Ft&=XmkjHX#UBBp?IsS(QFVo2^Lo7%a_j!q^wCB+s=Q;4ha~{H*bt`jG zm+nR4u^`nx`c8TO!|O0$jO{s{rmIpn?Ct5sQwG8;2iitb#DXMv%F=oG<1POK1Nl4X zL0uVhdQ?L_>fb%x|0n?ld$rtQJy*(8{XHFq>ZpWkx>r$`twgW0BtVu|&&5iU?$&!c z@)n)*Q~$<KieazYfxw{PFD)<WU(xajF{-~Pf_f=pOyGi+Q|JQVHG%AtnyCO#31T_S z$5ILUDZ+r*cTu&4KTap^S!nE9hL+KndoqLokyoOqS-sBaK_DfeHlp{m?rrC2-NU|B zxAV3>otBVrAwK*%<@8!0+yL;&m>8VfMj!ooCifT9vqY(q5@<Ub7wQ%#KWgRaoaTBf z^*Y6cZ{Hkac<}^LEQo~a>&@KOqXzY59=pw}#?<9yW>lstR_Q6dN&sr=@~~MR8o$`c z^99oVP|sVLSf)`e8AH?YSEWRGGSEJOKY*q@sAV1UMqefra9RE^GBYf)prTBP<tG3j z^6m1{{sYa>J+;WuWL|)DB*lfHNA9`pj2P617^T3NRTs?j&UMobLgI@+O3RHWF80n} zOUDx8h^nI}Jkd%rKg>};Ymvd+vqSEIMuG3*$r69kO4I!!w@>5yGZq=W86}3)FoUdW z5v8m<wK$J@+h5dLa>Lrk21iQ7z%MG_Z>$+9`bd8SKUokyp!$1EYLqEB%4~#O=r;MU z`$&P|ftu2WG2rfPdQfVnEI?UimuKII+SBK}ep``<@wt-8c%(~q8Yn#yS=%s>R=aK< z#WF_@-u5&|`FT6A={BReh|-&uKu<Qf7)jxto-@+;S#_Z{SQYdM!Zbd_g9gRkcLjyI z9)LdC^w6vJGGFKi)lyu{j8y#eY8*jIPR=|VdlV-VfT1awn4IjI{$RkMJ+zMpVAAtq zd~;&WPxsQRrR3-T{eAxUiQcKZcVF~WMp6b%S~A7;^w$E<+kzNRJWHk-<}MHZOW_4% zxsEm(T$GXhV;=kCkrL(UYLZjX-a_p#64P~03A7aILxm^Xm8QQGFr`m~@d)k@)B<PU z^?CE&T2caK{%Xy9s^1%G5>$N0x!Ra1Zk)n8Mvh|LE=_;iJwT=;R+XkRfXuR+_nd!! zjO4u+vLT*4UN^+Jn6fDXlNnVPF>Kp3Gf|#Oq9*paRDy=2nTl4&sD8Kl*LpMQcLNVN zCP!7zKk$?=`<#+`M1MN8?8WU1uNdaH9`uo&bj?mM$mtiVk#_-Q6xWXlWcc5v$k7`j z1Uiwkdo#ZA+zIE>bY|fRCz<1~uk>Zs8?W=72;zK+{NJxXjN0K9UgB3<(Eb(q&%7X& zR9>i<ZX$ezsIMe(4NwAK&CArpxb(P1*`Z~1V(gmFA^d2p5`uk;?j~x&F>TeUf2h{F z+8P)9Qn0^S=!%p<!(D_wvT4X#QPuemRJ*WB#VEq=ygb3*u9-xiE@z#ET+u6PutYnf z!l+h0^g;&Sqj=*<d#Ji)S6A9vv9bN)j9O^n?5wnq?d*?GI7&v&AY_O6eJApOX6I)% zZ5sD8$aj+0*8Qp0*-L185!S(DByC(sIc7HpRaYQiVp8RPJN}<kFVzeX#7nf(vI_@* zK!8Mtf}#jOrV4rbm`@w<jXUO9yE>+(Xi4On5+jdW$uq2ahqu_K?_PXD^K7FMo@hc$ zTM`zPniAqa^JNG9eEz<7bZQjf2~uqJi!7Ee)&#%>#irqE-iC~DalD}~$SVJf<)!y8 zrI^v~{HTj**SAr@UD4;|B5jItx~3vi7o5Bb#>BkC5Sf`F9l^-^%Te2x#r8w8z(yX$ z4AxCaVp3X$tn|`Qp?L6;pN72cG7oV9N2<Z1RQiM9l2xXu83x65!3X)Ms=U-2Xxr>g ztiB5Q++*43ebL9_En$QVX?L&MM-m%A7~lQnR$B4#>RD{pf?`cq%~P_}DER);z9Zgn zRCgwW=5r$*qGZqUeV+blYMLgt!7OIXI#{<g9|y40Xv1r2Kn+T+E~1^?E>oBP02HVC zjRWH$;F(KVCbWA?T;hfcz@as(*hjn=Ch$g-NHAOy&br$BpK#38-t_loH;q=>JNV)M zVvZ5amQWoVo=c__m)imt=GszoP#_Gm*<-Af{HBW5<hBGCRPhEhj9K?3FocYW2H{vK zVxPZlb=hi;x(z|}{_&RJnoL+pUXH%xqcc?FeczR}G?g<4-PR`Ra(*-F-hJBo_C)`Q zhdDOE4)4n~#Hf$;?ROlga{JsN9GVjU-Pe@bUi0E5WJMqY-zZv)%~eqDvKD)kzJ1cd z3<sW&J#w!MlTC5y)-#4P-iT%v3ly$ylcw)WN1`R$)gQ5b*0;TdtlbNWObz$8+2KR5 zBmf)mrtsHkFg^@Bt%CX*2Z=3OXmAhpoZ}#a&oM`mMONVe#M%oX<Ie{JS<z!i72@p) z)trkD(hE!GF>Z(dJ#(2q(CzP*4uqn1IIq+Ga-Dd5rZ^$xxA_^ACBx^^|83p+-;J=N zwfCFsGvE5Pt<~3Og(KS~MMt?EdT*l7<|t+NN8I;1U|;Bx+MikB%H~mOQk0^Ge$ncC z>+@myiff1i{x01HXEkAAQ=b3%$iseA15#bTBgbYw62+R<^~^&jgvhw8%5P&r=SM0g zRtKd>peb6CW!4MERr8GPH}Fe(-{zuNN;3OS6vL4}?1%-O62I!tn7Oq#MAJZNC;p&V z{{GTUL2gF6_j}{Hf=BlN98FeTF6mcG38@2Y7#YontGFSQdXzi9gekySkGj4SF1)@Z zxP_S<t|h%+pw7DoB_i)k2wzEHtIa5y5I1YZk*ntKWJVb|cMv!V&b{*UI=ra-$$RDE zaklaT1)l6K6sXuKFEw~ZG;WILuMbi;b7ATL_hzk78geF^b{Cs0NaEqQ9qSTvIs-58 zF?(X8d3=5_RYQYwmc({fP?=IgMfYK52<B#)8%*IMwwd65ArSJXUUby&G?h3cE-{FK ze02I~%s4^sw4AkuM3jxn`ke=I`^_0bD?FZwFU52E3#}aC6#ViOJ(GV^FUD}ufDZ>l zd@9rkGkYZ+U(9QCk|hlB<Jb5{&Jh?U3KhW9r9Qp1N%L#9)FIZZB<NaN-`6d&tFvDJ zBVYCM2U~ye@YPUTERh}V#P~bCBvJU7e1}fwyfC#a8RtN@(uR3s7q-Bu@W%-2b&lbc z+Wc*PhkIw+B923+Lr|Rr84j$j>A>c0*2(;qf%n+-_!l>7BZ8!gFWPtFOuTR;mEQxL zy}2{+Goc89Rg)<#RbNf#E#Geq#LQ%C{J~j%0gu}0i=v~QN{K_EEra5cUUlX|1w#)R z@#CczDpXiP{YOZ|Xfn0)gPk*Xv4RrJw)28(HHd<>bO`Xtq+LCL^9a>)5-$EeDq|c) zleIA?KIj>$dfYk*Qy%w{`{sa(3CXfD`fhVya23buTZRHE$UW7oEOq<@>ZgHZ=%Xmi zN~@>^7&!GEfxjhK!+-X7<!zSx4+e%|g{LGZXy)?kb?E;NroNY$Yd>yvnNlxKmN`F} z9;KQ<YJMxnH{9o(N{Dhjn0qQAGIR8<6u#XPOdkLMu!7e6INNRIyMS_dZ{`A~`A)NU zwgHWyKuPNP9b)YlHZBn<>^;m&&$+a8TIqy49g>%7ZS$>nB?eN@cPvYdaY41*ZYKLa zpFP3Mf$hn1v%8LZ><<etVXKLE>(x!vAJf3){FK8#kf<utQ?QiOuVL1BL*32bAq5&m z;+IO61(Kn@);|ghL&9JBm>pyjP;M=l;zVgZcit&IulFbuUy`g^>hOSl54J;%pEzP# z;y9WI&R3=dSR1pOCpQ=vkz=I4oY$c=bpM#4-fMWM&T`J)+z`=-ON}ahxU{1ZkC&qj zWqPsKCHv1u-a4Rr<g2q4<yxDp6=+*FUhMeo1&o)e>XD}vaFdw^Hrl9e=yj4sR`Cse z5a(*ootXL6A!*!6F=lS?ZUkVoa?tW9zo&X0ds6T9Jfd{pi9vo0FU|IQB3Q6@+V~ax zq&OaxAjhxp-Y&*C?**nrxnJf^@&|!kDcl>!2vTDFYe#e`_Lm;*xGj@)teUm1sN{p+ z=-73sCC}^FPSn`4b!v8~bM?NCFnHnOQGwz2F&q$?jEFU2ienQD%geE=ZlZ5Hl9iT^ z`umOtr#f*N8`Mii0j@TDz-zwGt_Wunz6@p_PUK)d7T`Er=Wj^%7UsdR)K)%+*rGMt zO0~w3gK<9XAoclj4b%PXmFMwVyj<qxlMf743Rm~%#V9CJ<H*w3HO2If>@INUUns@| zK5{yKwg2NuOa~x?PZPs4lpr_6t0uESN@rsh#qTh}yS7HB&6j}o@Qn!P@YF5MKfEir zVQfq|AhuHRq(betyXrI++m{H}(xN2ui|(EMf_eK<g)*ZOftcSP9w_X%#|u4rWbH`d z-UyGxB<}9>Kcd{5TecWM;fK4h$ygDfye2+~e=2Oa<an-LjPg%mR$$Y!^|uW_LELhQ z)kh3ra&1T(Zq-L<!AI!$GmIRJ*LtkNF5=}r_c7`wOc;oI8}L9F*X>2T16zIi!3IM+ zNY$`pJE7E{s(lQ97J>12-go~};87v$RM-I77Zh!Kp|AO4vM@G9V2^(lWkcK1%+;`C zV^CLEnwQHYaF77*b;SVCk1b4@%~!kBdkiV^N3V9Q2Y^u~?C<2;Wq0}e)c7-V0(Mpj z0w#;vWL}O9-;T}SwZm?E!O^pUyh1of2{ITzg{;R3pa3I#Yx(Iy0DvHN{E@y46YV*T z_MR>P3^p!DQr=r)4E?-8IPXD?u}9&U^t2He#UMtDF!2;a#Jl=7wu6B0CK#~Rzh5zb zf(liDBUv{wRTey_?4>=YmxVtc1f9JJ^S$)J7Sp2iU&!I)VtZM}&T!_e)B$gV#O-Kl zq07JRNa!mtyvi2xSHTf`Z0Sood@(%GZ4E9-7JzbvvzmWuha$kkFk7ETaNOF&<9_CF ziLj_c101W*!--*w#09UpFzBV^DXb6-Y$IZK8IFD1y1tC>&N_V3WxrEwjpJ<?&JM_Q z7ZU^cL?J6ml9g_K3<nfqMsqdzYcOT)e9C4QA^g}@Rah_?Uk&o-f9^DB7ePt=c&!dI zb$ITgBEMOX=U-XlqPRRe7@!WWk-1sbj#*d^w;RL+hzPwCWXLa$eh~Ea4@<|8+p$x2 zn2kY>jgRPm)0*}?aK%fgS8WaWW`H<STf7JmJp6m(%3(+L;O|t6e&P1NE-==(NdNM4 zoZ!(R!V4{^Z!2ot)iAHoX)CX%X|$am9~Jl}N=ZAi`)#H=*5mts_>bpa4!=7PS;ml& zWnt%@O=H5oGxV|FF;z+uNNy75i)Ld{XGHkLuvH~n44BoS>ZZNEduSWrUVkmRxzEDe zuV9^*Ep5(-Ubeye=3-w8JIp?WYK7kYq@(GmqWl|25MU`uuZGc9afyoXv2Lsr)5H^R zVvF%t<KalGo|TI!9n~zY+QmdUKpe;@MeNj_k70}jN99$FsLHM_sPNgHuC<f7iabs~ z?+akZr%dfrkG(mEv1_w#!U)@D2q2zf@@Bei9#z2(fFJurv4c8FU|*yiIq(sjKK8-) zL)03XRIA&r`tjt9kB0wSh~_&^%Fij|1oidUe5_BQ@reS1Ql#riEmAd~wfJ}0VBaC8 z*$M+hZs0#U0jTrlzky+Gq0Crq#V`WQT-TmN+6!L_2*b#1TJ!n-gX7x#wD5N$-z>!% zo%>!eylx=G@~qRr&)6GkpmBy+cU*ur)EA|E>miJlI}vSgq~ql2k_Ra_z)bQ*&0US% zJo>L0T3DBcPz%w1#p?VV24yS!3Gg$7!BHS_MPr(=*fIW6w)UsVK0{4YFz~A)i&^#z zQic!kV>*fs4@j^eOL?f+?H(F9^nDlRKy-$#hCp+6L7&c%-pqN-U3xmpQI1<SwO=_= zDUANGLj!J8m(d>#XXsN?wHx@`CsCT<VcHua+!tW)z=V8Zs|{oefrbuwe?zdQx(LNg zjU6P~p{Ft?UxRPB#Er?6vhUF+@hO7AK0Ywe%b!)VzJ8l$lZ#6<S1tH_h1XwDGSFz+ znG8xUrmqKERxIi^{=?_ik;N8$K_4DD0IYo()-hP{QV7j@amo&@Ev|=G`F=(_4l@oT zI)Dd1gxm1}<5CpxFh#~<2(E4Cn-~I(R#9GTZ<B*^?S-=AC}gzKT&Va9hmmhmwng@F zYk+W8=wh^?`YN=KX21_PFarBVLFX|N-*L&89IIcR`<{vNg+Q$)sP4RXq<lX^aKcMF z8e?06d@Sp$4z%WmAPbt05(ysjO9-U_35usaYR0l0T>tlxfr-equpANc-TSc*<nze_ zmlb1hL-<f1*x^3V(WdVw$C%pRP<20GLcSU1lcH}GKfzXGf8++o(S`0mEZOi;Q65vn zDm)Le)4c7+Ck#9_KUJc(xA`;BDgg6j<_j2~FFO9&iEJ%mu}b=l3wfVsbJ;fqNv@6X z(LA4iQiwataNG0!Gj|=r@=K^w@TcF4|4b8JeQKjB`azAxH(ar_CFCYfIPnX4k?*vW zk0hV(+t%qwhqy3<1LXg~gHj}T(i0C`<yjeqSyp=Z)!FEOL6|Cq#pH|xAOw(@@#gJ_ zZJZfTFm6In5bfiC<;$$oHt!jqbAO*)iHbG5#IVn0WG`gpCuZd?<g5QM5@6-DT`?GP z!JE$E3N`TDLBnaYs9Le?6}QV*7TEud?~_>uCa#%B%6)gAgw#3Q@*08d1GQ+WY1iL} zhoRAbvQ<Asoqm@P?8G$ZyP`6WA$g~ZhUp7`f<Ss5aKDjgA~xVp5hiLTRqf@^R-e1t zk*8M}qa{gE!OiCL9=q7;7$kV(OG>{rEFa^P7|i-jefA6F@C!AH;)|jCfmbgsDs^)b zFnK-22JP1mRugb0Wln#!GkMQxdULM7hn)JAoqkUEEWRmN-B(>b^P_$gGQQ_y-kw*R zGcRNHwi{-zr9||zBE&1$<ye`<WpYshW&S4vUa0U4t{DbsUBG;>4*e}57j91-?G+17 zTlQE_%E^=1p3V~h>gu%Se?So&#_TqG^zF2q`Gw;)eoFoxv(GqN0v<m9vQ6rLz6ol$ zw)TgvA$R_leCG-yPqE9#>07;1e^7oZEBBM(<knB_z>@D($%<cJ!vBP6=jkdao_Xdl z$gr5T*kt#3e*O(gzlsrz>}ue+%`cMz>u`UXv8&82%M5?MLKN*hpUs({{1cFtbkRfz zq$<=>MC9P``yot|1Ro?}^5U#MjV8F`lkEUCE(Yb6ER94-w6>Mda>*$$?)mGTo^>Y7 zW&>m{f?k>e*I_C*m@uF7&-Z;5GjB6K-c7eY#BI(hMa(vyneG;HA8h~ZBh=92zKF+( ztg>tr(j>{&cM>cjn5e?rST$)hN<;KcBe*WNIJa2{v~q|!j%Wq-g!TGn8fj)XI|yEB z<zsEuG2x@T%0E0+6YzYD8_0*}(;WIL&8Zi&W^UBvwE;OX_B;#6rSjE$V;FrR`m{fd z-$e2RxRT|6PTe&;hc*cN9j+2TVFFXKd~1Cw-7?g^CQ^ti8EkgNxkO9=nBZ2@(xZ;` zI`Ds;ldn#c`W<D8?;6yXZXf>)Od!Z$n-&U?Rg><cl*x0n#8-O4(nrPf1AHOhgon-h z>#$tu=Y&6JPr20~ST~Q|&}5YO(bkEgGg7Hfq_AP-7WcKW6rQW0k)m$qH|OWd6F}f7 zNr#@#pdg=)8z3+Tga*DkJ$cu1wlO(4!ovJ33U%|zXp}_&$1&NncLl#q;ptK0o{XXQ zNq_ZodfcylqwKi3Fyy<Ji95@n$*IMpSD9z(!ZVxJ$$=wXYRJ{OeFhgCgXUEH!2Im@ zz1rV->$lQL-3uQBW+hisehpw_ezDB0F&&D?{Medfk3-%zELO@qYOPo}xrEXnqYr+> z)&(ZNgX{T3Na((!US@k?G@nFWEV>cC`rw*jqaar=yEDnqSl_cEGGi@s@%d}MVWa#% z#8KJk^@;K6f=dG;E#V9n3Uw~OT<vWrYjQ#sCm1o=U%lojPjzHc5W^*}FYB}hTQ)L} zYHQ#Ql*;~VuCzb%*nb{_uMz&l6kaC6xW`f+j8aO=v3@?iZ^dyg1J%{lPlg4b*_W2b z`|-_IiEa>uvNqQr_%S{Tf~$m;iqQS}@4+gCW!kbOX{EOuFbuF06RhU#pVaI0A<8mg z(8M?3(}{j>EP0;!&->kn8Za<XlH3linu&ef{oW+b{>)Da{!=x#gypv}a=Qnh(SA&N zweO$uVDA7LUs9iPMrzr!kG23NpKtm17{4?>i<7X_?f$j@RNDY0!;ln=)cl*wX=+*7 zac(@OeH-JD$2c)#8LDv{U&Xf;%Do9`aF&8=O}=!!+xf0WD@nI>sO$ko@#C*Z82}Qv zutRGqE>rY6fxYadVwjpcD1zoZIO-I=Hu=B3=MSi}54k0APmD$?-kC4)`F^$KOhbK> z6Y9P~R|8Z`uvZra%zzl1P9xF|NWh^<RK;teqh{n1oN<JuLMvD<b`%IkIUx{pc{!TK zEj9dnzA`znV&>cpUk5XL148>It-IlA#t~J~bo<~MnH(1GTC0Szufjo&Hil(s-!c9) z!;zm${MOUroN*%V8m+)#MLEX=mvhL9w|pppx^O(t-L7~z8~lox=dsiBrt<WyYYVCN zE5bRlj5w#*>0elxa`>iQve`K#wLd}r1iJM{hE+y_oq20*x6LR$$@YoYKG!ENgZEa~ zPU}?kkV@g%$JeX}dbe-b05%|ii~!afKo>;~WJ-McdI0gd_xFX{I~6ddsvzeT(+o0D zjZX$vIgV}&NWMk^{#u6F3`*nkx=bw190v6m3iu9Bo~Ohy`NDVM_Z6d;pL_GY2KMST zzCs@G1fC`fZ@B=%GXZ=|Yf+qpq}ZVQyd5v^%=k(K^tBW5(&K}Ypw(<bL(^)G2$XDZ z?_zHc7s#kCbEayC4Z{^sozn<Ua3=%-11o^-LqPVvb5f}0A+GiL!@j6l5aK=Af{|li zXJ+A0SC680DC5mY1j6Q&vL+k)s7UW${R^s~tjm<YNHtlEq|yhT#$=J|5F|CP5(QF7 zr({8{@wZVn0cDSHqsGLJl1Z)=lxa-l4?}UE%$eB60KtFfffkosC}tMUc6cbo{@S3~ z*(-4#Xm9j3bBdgH4UW1|RLE$Sr?k`QG_!lxG)Ks0&blKN0;w)+=`M5C?H<=Nw=2bT zWdX}kqA$}|B0v+cYY{y0qi-TIIIQatpY%ZBtOKZe$18v=w((V(9+ltgPUp0%H~9!~ zP{RyjcnOxg_=c|vfCwI_<kj!Iy>0eY(G?SQZ%%hGLQu&`bD*b&kMX(<u~`}Ahx;5* zH83bk^c=ercM>@~fS_$ZHT>B6J-fIXKI1%AQP1u6F-|9t$i~HsK6=`-EvS02S!ZX8 zs9)W)dh8EXv#}3wg!0jiSPO~~s+eq%@Rl=W56&o&pqt1;H)aJU-RxcnPA~loK;_>H z_H;p9WW6)u^MqG11fg=u6ji#UCB^xAhXRGAa~19d`n}J7Yoes9NYz5!v8w=8KT_G` zMA#tS)}f)HUeyMB=2T_1XYAKcj*r$Ibjea}ri7A?&bHLT^iIW^Ss{Bux1Jb0s7eJU zP+)QMF$1q2$(FZPVynrgBPbrlmvTk{dk?4X0AfwK5dsYI-gd<9G^jhGd-6ut!(ReT zuXvjPK$%`y(h)#M<AV!Y7GyvyZQtBQdc!?S@#T#5oglHQB^n`R`G(yC=E$*3wJ3wP z1yA|nko=MKiGXKTH859#s`=0}m8$X=IW!VNOzjG`StV<u>Lsv^D1<vBKXC&iYF6j1 zpaj{J5oTPThY#g{IBcrW1!ynX1vGFt*xr+zlgKJ0riYVXONyV{gU>pD!j9jd%}4;p zkyCBhq*|`^46U(>dK4V$ly&gh#aU@KSQ&TSBvovhR$xd-&je$ynI*-u7B=(wT1Q?( z(|^KMgA~9+p;=Y@g_D_kQz19y`TeR&&8bEVP<CJ%ze2Jr{FM=&t;D=)))z#}=!4rC zq{FDa<HM)^h~k8cd@SBt9R0jKt~mQ5KVDF;9riMv1<&>2lNLP!JHCTeeqlXs3_Mmk z`N8W|ZMlIo`S|)1jdTP8!y_F7hFT+WFN&sqi4{IQZ1)?^=kaS@SUUmtV5h;0r?eUJ zy!S-4(^-J1D`BhWyDl%>40w>&L{SPUF`#^jcHx<sb4tHMJciGrr}K-zW`O3y6Ii0L z5GCG%U1WoUXfjEH2gZ}^s*}_tt&AZ7pPljbz7?uSCwEt3o{;l*3ftczFP-1Q)>j)R zptRn2#lU!P*3b$qyhBKtiHhvE3_zTtj033^K<i$yganoFn9CNnB0D0mEY2r^M0cFi zeLXfIQB_3^N-&W8hLs09QS^=aGEkvxp>Joceeb*wPn<SKO`atODCs?-M!*WXTc(+R z*q(>B)*92pG@lD;krSXcX2}G}uDXvpG-Gu5@d7b?78*wQj&$EFNk*!ne9oWVQvNat z3eN3h*58k1dglp%9V$}rQA7EM+Uy4aIQPe7D|Tp<1wir_EDu{HO@fHWzs}gk)QI>B zla7qw4kV6dM62N{*i(m&C@|FMJ9en<i_ZE!eB-GBZn5XeJzYv={x(EFc7>A2qd7J3 zUc6f1TYE&Yj?RHTgE9<|XiTx$e<ge&k((OZW=;O)BsQsD3PpIiNXGOaXGy3r+(|oS z--b-iWLU<xR#j=y{ud7II7{!#D}61V+MTdEPCkyLxz5%%rYAH%E_o$~TffZQ1Lc?& zH0^$3Uxz?(Mz3Ln8Jb@vNE8woF7K-l&1#w3Ee8K~r!d^498kAzH8!!|hsZh@IWddD zy4L(>Y?t6}0S>*XZ_~d9&6s=F^A|k0FmYAAimg(;>_m=>4lMrze<b?8b1=u**~k6h zgQz+pN~nJt`t~)v(Xw8&B&#YbcV5YNtUss9+ROd;lh4(9jx}(tj-kBDBgijSDLfKi zy|Zp?T{30F0(5IT%zz)5@n14$1j^qT%R0Q<f0D@(VM?-&6rMB#Au~4B^eM+1D&cYI zePi`y>6pK8K7POgJbKxh6)eO1?WX=`UU$mG{M5jf(#72`!q!{)k(Zc`273_`{Bdbt zPI>-aon4(SZCeeoIo_Nf^E0PO=FOa%BHq<KQ`LbH;01r0blD-*oLXiJSF|d3rX~t$ zpRsC#58QIM&}^9X%#CAVYROT`7<cK%vlclMyI8g&|B4M|q2lJYjdJ3R<-1v)2Zi&! z7~7+|)OZ;qu_--l%QbC^&6^LCH51+10W=|;0Ag0MdCc^Lv6Y*JTeD)_=VC9~qT!f< z_9o+&{y7c)9Oq-7(=kx+F{82TXH)!9wTBx-<e^1r-@fT3kb}x2=Vmi|HPoo-OR!}A z^Ednjwh`-FHyEo+E?;!rM5WgH0`1e{U$kH9(YgEGYa)8{*OQ%}2iOXZ91kn9gb%=X zPw#x<ZJwRTOKv731E(XbS97%@dRz5hI1idJsvom`POU6IJ%0Vp5nqinWc=@+{wd_X z2bFtDpo<XAAjY@z$d6wY;d~FhyAYa7;s`J@YStj?{XBfJ?u-D5@d!m6I0HCf0uW0h zKC;s%QKc7T7E)DK&&m0to7Q4fhiS>3@RYb<#`kluf<(}n*d_p83B$`h2eZ^y>B(Tg z$|1bBm0&svz>~c!Ru69S9PlW{*b8(%-3fjrBgV<a%*33J@-U<cV5QMv)`WrOr2|99 z0?~+bz0okoKDbY<av;k%Ml9B4*f@khaq@%G>R5-=Fio~qDBQ?0$luS`NSSM3K&0Lf zj}asVW)!lnUV<s}^Tx%(bV@HV%IpzrKdUs0L<>=8)!_gg2aAGb6U`03D}4r)w-Cu? z@C0IP#S28WD>}dT{Nrf<+BjGTDlxzXt}!LvxSYg%8I0oL?O8uK#M}ji-4@rI(IG6K zl}pTftaXtW6%9SZ|GwZNKr=!_EBO@!ao~FFO+BWI6a_Lzu2a27KEN3d(Ew4GXgG;^ z2qJ>k<o!~R7NG)Oq7jRH$Iu(6w2FLI)+3%>Juach6sqw8?AQpUG9S*v58{wOiq}Gb z_?Fuh;b{zSR6ca$0)Pnk#IHGsl@lR(@n~ua4@Cg%*n-n1c{-S|>F}q1mnZrP)qbPK z4p&LBhL;j?Ipzor1_u&@IrMNiSd|$G*cX`~=#)~RjvY9Z%}aThbnBA5=^;TgiuXDT z*u@`sasn5f2y}q+g#oOJoRr+xbZWRNp**4vQxJ!PWecTcR9JDbDUq+p4jRXSsMsMA zKOlP=aV_z|5dc2J9cA6&7>z8o0eve67H^mxSZCR!f-w*0u!}VZd7Yzp>F0BHoDgnq zxU(dLx*a%16YT2Zc4}Wr01G?UpD9d&QC#z!1|c+e#I;hmt5KRUoR=~T?4Tfv5`kw* zae41mBBvnoN=9*_wCGa!P-2$BhK{MvRj+<~m=>DA22M4X5jemXlB{&PvYJD>&IBZy z!{Dul60|Jb44n81*5b3N2xTHT#s_>=(NZKesVA$*n2sO-($veZ+YZ^?sVP{Xl2^^b z=FcHv5E<U(0)gm@Uz8+AQOBP9oj$m8rtk$%&HsL+tYiShT=@C;0B;D=-@kjKpfv)` z@K2OO&vL4;y_V4Ou|;_-2vf5y4iL{~!2amV!BxV0hOQriDWAA$*-WKOJ%qn-1$;_O zogRaW(*VF`xR!D4yNMdH4|$ul9F^wlE+O^(G3B}>RdtN27fOnwXnI;Xs|jN;kgZx{ zuPQ=H3bsUy^CMQ=W7Tl5>&@tA{qXYm3%i>-VP(ZhLqP8)c=AlcNqo9XDULCDo~}tS zbTo>&-3a$CZ7^wot6yzM;X{-W+|;_V(~}wmu%6a0TpZ~+t##<JeYljkRAf||?zfUt zzk<Fl1{foFi$C}~JcQTS9mKbuJDc7DEDgS%o<uF_bGF@0YcN(5<|)1~4c9h|6R?M- zv>-2JI;H0TYZL1iLXe`8g$ySO?By<Ia5_p*D;XJs+%_NzS-_N33ghi<HA0a5P11X! z2#H>4VLI|v4ggpV9&V66AV}IurHb*_JW)vHT|(^e$;>^h``<&ZY&4e_lMfw&0v3IQ z?Q8XU*uYTfA1zm4q~ldPQClJWEB*j0DgJ+-n9?{b;xQbhYImQ3#qtqTm_9yp=D5X* zZuMq+*8&e8arGFxmVgbo&abAsO937#&>&?6r#|`4--<p9QYey&ngi78bAwjn;r$=j zWszCXf;0tWCLBcFa+tX#g1Gdo0(aWeOeZ*)ZyJvI<q`vL%-(Ghu;+^lxgPKzJe<l> zcHo;<sSv>$6f*oTG(9Tu>q4J-1TW|)VvM#Rrd1+-;5o!zmyw*S91mfVo9YMjjYhN~ zJg88*HCzml=Txe=+mEgR7J@5v$c|Q8^2LhKR4ceqRALjHkF1Km+1!2qg58Ta4I2*F zZ5cHDL2lBiX83lBp8ZYq<o}T_p&d17qgv;hR30`1Aj|>qav1*$I=$@}3HLxhy8*C) zgGJb<|2rqmkB$@}-2*INhg`U#ON!e418`-6MKrx1t#q8`E&K(%C(H!Qh63c1*akJ6 zpLb*qeh$>yupijKqn5Nz><++{U;u$A@F6AFHEPHz$qsPW3wUx+)OYYH_<<k*?6w1f zI4}yG{tRe7N#(+g=0lL~D(WRsy!FPs`{m8;yYMuarNwF^p@TPd3D>!#-<oBL(rQy3 z&PrJV<{pX<J!8Q3XN3^Ztj{_VISPJ{fnl0l7^2ZPSvszxM;YEbVhN8kI(IF^%4A2G zNiJ`lfy7$DbvX6HH3rs|xJq~)RWzLur5Y-NHN3@-h+6Io&*ZfVvoc)<7JLWZ0`-@L zWM_6kQXT;>+<-U5jzU)~SWn=E@G6t(J5bUcV+6wW<%EJZe^xHgn4QLQhwD`xz-2F$ z?C64H@_?F}&EJ&MIx?<nZ4GSk*GN>s`2suFmeg&BphKZgzV8kt*gyFnFM@GI<<yAZ zX<19;Gr^}n*E<1$r(b@)yZQ&N;DMateY#1j9d_2<5qL_G>i+Qy1ur}C7%>e06ajLr z-`aXADq8pT*R%1k0{v;u)Rx@n=<|`gQ=;p^1iNve6;|mIId%|oLz%BNue@Lf5@yFI z`A@Wv$QQZ{N#HybnT8bTjHxhUU<m*|XAUIN=eBYTtcb`LvV67gKhXl87tV0LG#{vu z`mJ_()e<;gC=nb%<b#Jxa}HUv0KPQ%Es;(r3&0m@$EWxY-r)yDy@8k?DD$~{<Lcm0 z^ZYp%EG!)kJ@VAWT2!620|~JMM^24}IY4o;d`0ltThl6meuNSRhR@;+Bo;IGI2snW zJfo@pq}qAfsRI(*@lx<&{i~4E;3(B$$kbysS?3z)r_d+B<$K*Vse{<gPnU@Np{LPz zFYf0pS$U&(UY<f|Epmhq9|dI(woV?rLS(>ij++8RAHgLAZi=#Md+quE!D>MH|Bs{d zaHsPB|M-25b2x;KJ>wjE?_@hTIQBYbWQ44YQXzGQb2wzn%nq3u5gCOLl4N9+6@`$U zsPp;xegA{|y6)?GzhC$LdOjZyhGEz!qvGtq$n%N8dAJ4+80Rlt=tRi#&(2xc2uE<F zPrjSKDU?_?vn<Oad$)4!CSO0XVB;oVl)?121s^fv-k#fH8WZf}Uj>o3!3-8jcR@+; zVc>H|(17bGgQq*y%e;#=xO5>pM0~%5p(~lyHtBn(g4Obu{XEnwS?yh4_lv-%9yhl6 z09>Od?9U~f!1`fQpKRDTlicr9^Gk9_!C(%T&@bJJ*7P?QH42rLA~`VWcQjw~U*cGO z5%yl$Wc3QtBp`0}Zlh1sht=pO8rC{%j;0LO4FD7lK#IGjx`gs}A$tM91$=QU0m>8# zoaey3<ZxHs(w|-JwHcec<OgF44Fy>P%!nVN2j6ki*8#?{wU>KkFCOsO;PEu6z<(|r z_y&N_1z^~PL@gv*!aMI#f24t+J(>Um>N|E}L&}y;3jr++<_bh?+FGCMX}Q>!TdNjW zBu`fB7N}mYzih&7WI{}TvXop&P5Rlnvylgfy<vJA3vA6<Fc5(C#=W0C!9ug)Zjwq{ zIGSLNGHY0j0MFakTMnKuGJK<JVS7P9^TF}9kILlA!nuWEYHbuAYw&Jkhh=VdXIJ3Y zzRs@;iuxlKzfKB&o$Byik@=-#1`l!Fc{o*mu;8U6yVI|~c=mdiadG!8W76=?T~^(_ zGaXn!=pIOZrxd^E0RP;@Jk6ETz9>h}jjN|^DBOHzy}xR)C$qRO_uo~-(1yJ3fr|Tq zD(*n7=s@GmftLFsyGp&b;Gw?mA=>@W2zQ7nI>gi`vOGVu{O{0O@W@v82<v|2pldVM zw&X~CbL6^sbnU+*55Z%vj|V-Ewy)!k{fdqQ-W&%l9tSTH-acyz(fu9n{`)TOcLc8J zcT`By-`3v`|ND&>JR$0ykQVppJG99~Ckby(5*JUB|2uJH(4J@f^Vt1Q7Vb|@(Vx5! z4o6@s4-W<Yt~}8_EptDuz@1jsA1{14tXe#M{@-bX;8|1sFRnI)PdaC9MQ81A&N>&* z)XhG;7d?2b`?t^i?*Q)a;2Y)X#GWsOTz^OZ`#UE1Z#?C1J|4>4aQ@N(XOH8F>=fGz zs;wq@aAy#%(U8lXq-eCl4MP9`IKrbE98{}#fd>as!XPzW0YDfuXd?wqhIGF}7Lk-p zCF#8JCUg}p`xx<Ot4(I|Z_Mk5g)<VR%!FGZ$`+TWy${qClR9my!8z#jMB%SK<&Sd< zXjU_gBZ!K%9v!r9Q23k7ft5a&PqU3N)3*$BT;)j6zKxlDzlvR}(2<>)g)a2+q^8L$ zp#*75*+*7raeFM*(VcwWgUx|Zi)9Rw9v@1Y{!DCfbjMu^a}cv@X_`<b7^*t^C{B_b zyxvVVPWe2uc=Q+}ge1G%RAl=+2n5MGnE1DDTc&c4CY7YePp0a{a{J~yXXdn2BS7_V zgZ)>Uf|H^-9j{A&Xzk!z*X|+5TbdA-B+J-DJ&De0q8{-a^Q{g|*nip6@l|Z(CAOIy z3Ui8h<ksU$5o+qmg^<0RYbL6(xedN?U20#@+DWtRs#>%@r97}$P?Me3_Y!ea7oCzH z`Pn;xiy=epEmmP+zAhTvu;-qo7Fw}51HV$P>KNw6shjb%DPffw+nrK7TzLCCmmIg( zg!bB!<3H~@u@7p9wfT{;R73<*wxzQHE$?TFQ*i$)a36sN#$Aku@Jo~-UkVFBFVMpA zod6^sR`ygz0D}j>a1S8$5!fGp8!YBnfUp!)S_MHF;pZm-XPeM`QbXup91z>!w1gkz z3hhlLelN>I8Wf_60g%=W)VF@Oj1|uWR|NOXLCl}i5Tf4e*U^0{CU^%irm<dxEi2xg zaF}b3dU(c%p=8hoVHXE!r0!ujR~_F-z|m~5b;0xLLn|Iw0qC)KF<N3{tj98e9)f3! zo=%0%$b<N_meL@_IJk`UCPr;;={f&Cz{tEr|NTBwFS{yBJIhG$;=v3vCs-|to;g;R z(VYDxPLB$xoD-KSxmnJc;v`o+z*NN+bPo0wQ}jSMa(n$p3v|bMARldBK&@LVYLfl* zLDmoyNNpKzY69mVM69IIro!nY(tu#>vOc&+OGpk*!Bw;H^kBr&F8RqT83^Yv_n)^K z{(VY|^hEN4QURh!8pT`%R#ZIm`kWgB0@L?#of+eW<wyzE{CLRIW7QaTp=3Wa-rxj= zA1n9DGDB0u*tpHGtBOc`st7>a-EExy{l;N>4;r)Fz=qXRS~6SJ&zT+ca!{5d6lVhb zp*SeYwFgvBnn20K_kg)Y(#@stVE$A*sL~23*TQh-u$$TDY~1N*6P0GMh1pO!JwQLB z%RvK!Wv(1(wry`)z<L^>p^VcrDFPWg_=MX6Rr$2)qIK4-ue|>3BaX_Zz{LPXMr%2X zt3}N3rBTCk6Ew4cFdt?e5tlpMQ-Sjm9u%oipy6r&XwM_oqU+}gu@Mi3P;Q78y--5l zFp?cMi?-M(zCyGvt+;|FOUyOI@GN;Sg=4<xi|NHleZkWO&5%%V6Zv8WZ?<Wov~nci z*k&qJK@(4!2{yG;myoRqYU{b+v_#}%yoIp6xoI)c4%gc~x(2T5<Bdqg#a#ZfTqW6G zYwQ~dTwx}$x3U6?Cd+s_EqrscRGq)snLd%7=s>r$iem88|13pCUodAa%z@#>4nJ-B zGrkf9c|GdWD2z{}i+2I?8;popb^z@0Twg9i%%J!Ms6vT??4}1Gp)4G+If8(iqS;US zvNj{u?ojA0sF)k_1+J)vuge-WMH$3<46&QMw?-+nYy$q`u%EUU{<w3FA(833GuN4J z(WMxcBKBl+P_?`6+}y_qF#}$PveYSlP7=d^9~63)>{GY?{f-UGaeU8cp2{8*QF<Z1 z=Yfr00%0RN?^pjGTFTUvly3tpT*m10t&oIe0c1Yx*KHm!ZbX;|&!);-aTd&@N%o$^ zKqzv0#U5o4>)k<T27DA<I$7qkD$+!5Bdxd?Zt)OKePt9yG`>Kz5Q}GdYUFY|S^cec z)S8D-=57wZ5!j0zCPIf`Za}S$dBHz+*F*FadaiXYrD^AQ(DErzE=8xBb^?9kGd(U= zV-DEplL;J;fTCUm;MFk&>XR0LJxx>HAob;3Q&A(={ijJ&zBxM$D|vkXqs(`rS`E^^ z*PYsQ&Kp*k#Xx6nasSTkC-Qn{fe;mX36D^IlB6PC2UuE4pBY(XmS_~^r|;`)vr%C) z`oSkXjcuP4@L!Zt%r1AGU@0xJym*>#HYC=D1s7)}-X8nx^^u;Cg*=pt)C0NCqlef6 zI~Hls!Ww^7Ie%^?VnNFovm=ygVzY({V;@!O`d-!1gVdU@c}y_(oGzb-shbIK;ekRS zgHh=g(%7G2v-74HFMgCfm|?PE1e1gZyde1@=jkGqGMb`Om8)klt45UD@v`&O%zIh5 zk-|SWl)i!!nsX+FBWZdV3c`r=S=T^1<Y)ApG<xedS#QGBx~!QuqJ_&=<X$vK|A5k{ z!Gu_Ed1!WdXs5oJkfyzrL$VGG1^W`)5$DdN@5(7e{KqAxTVv7R9WCL0<2B47Ga=n> zOT>S20vyxn=q=GtC!e^=)*dhZVq6Nv(WzS_e~F_AqP;rN*e}PJ-VWHPa#Qe*TwhDG zzNCHws-}vIWCc2DMb&QACo=xST%`(Prjpn{VdcEDoQyG($z-_8ovf35XR)41g|wuJ zzzMO)s%TlgdLCGB{WCu`?9!EFX_%>BBYUwt!Ksa{vg=fnK;eVIuGgRs>Tx_x+NCBc zYJRydq+tR9V)09SQH?ZbUW6;fq=tk}GE9%XyPAaQWIG3oHIU|CbpFmzKbC5GqFIux zkfFY>dZega`IJLblTuCtNV~vnPlO)iQ8w&ekgaur!55^;SHdi+<j|Mjk=n=?J);OU z;;WiCHI*nu?#GyphXw?0T<v9|4FSRrV`?sWZ>B(sP>X6*z&gcr-Y3KW<jxD~Sa=I3 zMum{01vZCWECa_&Xb)5QE?)_!Sg&`Gi}jfEAt{n?<qj|NtE5|*>g3H*Hdy7!mA%4M zIx)rUyL^TK&~a!Wn>5(#ZAOs@KPQvE-r|F?H3`@*>6=e7zQ8T(`t0ZM3CI7vE*Y02 zMp7ep9+VKAy60-%(lKg9u{6hcbQBLsri9Uux~~|ZVHXqCDNcQC-SzQ!^q&B|#DkoE zB^duM_qD^8ANN%+X{9GqcoEVR>}nsGQYqX+BvtlHmU4(arr3-aJGctQF0rj%haE}F z3rB0*%V$Ih<8u5HDavKp#?tX>gPMWflz)#5!ppdRc@C&+QEre>gw$?LehNcbClMwR zYXGxeZ!pv#P|=ALc=Ou?3FD|LZ6cn4HzSZzyA?>7!0~>zCc{|k*NHRgLP4S~dK%=V zmlCG1Fh1QlOn=l9N+eO=g}yf?$FwyJX5p&a;EhXvC^I~qqY!06&<ldOJq2Z+==+CL z2A+~ggU#BjnkG*TQq)bf4!K*=WXbhbBHkbhIZQ~cxs+ZX5)HF?^gf|`sE{A##%CN8 zF~kPzZmty*M)xK-nI=Yn#heX^n0{%QD`J0!3A;MNf6QYCg$R!+j<%Q>E!O)glm}(Q zxY*rSO)8YneWIiJiJbEa@u`@8JNieYf!IOwL=l)>O*T<Y?ZcKC<&hC!KuNn`N(_w& zH>Xn05peIqVKz^63u^gd$69nnC<F86%i$sxdA)Uq=p=3n*-m2@kS>wJTgR^3=q*f~ zqu@7(FL}d488m20Gxu-x3fthz!aw4ALc7mmVCy9AOvC_ND4OIqN<x@NAv?NOO-P~L zZyuw1w#KqnEq|e5FEYf4jV6@tp&%8j*Ca(2Gm6Gw$8q$S;5bR%6dxB(8H=W%2Eh^$ z04=^~J^sn(QVzsrN@e^o5$K;n!@eF`QI;UG|3jdH7~Zene<9pcM#dFqj(0XdGEH50 z@PEJ9^mv#glPGq6ihC;YuVhr>2F>rNP}u&BrHOD~x~awbL6c3^oTxU!Mje|Vdf1RX zD!3ku96TPuU@7x<Rs+IAst-hJ60a!R!;o$;S!?{ZX>qZcVH|#(RLm|JKoOZRjah<- zH`v~Cp^&^`-)Vp^I5b6uK_kLdaI$Z*2Ttw`jEVQt${ZQgze%~-{DxGi820#WN}u_g zPRkzB=r%v)l@{nav~Ty1B^Oi=Qx3~5vmsXwkOs}^|4j)-6}fp$cs=<jN@FN7XK(eu z7WgprBAQ|!0J9AR+oao*DS1RRWdVY>ilE$+rkr90!FU{)&SJXV+VV#b#kb4+agJG_ z4=g`iyGSHwg`Z+7l5+(GOJOVXH>3o}!sxy@4dx96mvd?Oz^FD8pNt{Xq!W{u=CJhg zY{myO`?Ig6d#4ch9mz9I9{V4*N~ekIA0>`zl^#$E0__P)Bqy?vLfy15p`WDC9vKaj z*0#nXa4#UdK=an@>r?{1gAm_slI9lwh)m(M6Nzz>jPkD{bekB9Qu++0Sq&*{T@!?y z`E#}>X(rdt7Pf*#n}{0s8^U=1z9)Eeypg?%=p|m&D5*CjySY+|F1^7KiFU8ROCnQc zQ&#s4UBu{JV#ctuf8~S^vmkzexB`bv8xdFjVvaat6^nS!5(QHUr0B1I#OHtM0-PtF zP~PUtXNAtkN%ZBbz_Q9liG!NweBTRhqcFyi*M`*31V5he57onuu9DQmZY05Mo{l8? zxCR{NBydnhycd@*7s*hjg*{zL*5=4g)*+t2vq_z33)r=m9I}=MslncIN_C>n7U!af zkJW}Lzxq19t;#CoCh2BNQh>O%Ys8Tkn~SXz+PZq|7q)$1bm4?Iq*1muwV2`_J`C#0 zN!L%qp)GCLo68h)n%Di0AUfX$Vw^4$tH3?z0W-HRVJ)+Z69nN>nu~vPm>!m)x;<z{ zzm#022>7J$2bMB$Qf$`{kOh4i+^9%}riX$YjIPjLE?L~=lLyJ3;>cnD*=MCW)h;BH zvXZorkpp>>9wR`jqcw0np5s;45J7cao0p0vbg01AYPp`a6WCuYYp%}oaC%~ANL;=I zUMKG;|Iap8VLyF9FIGU0OE4Y%-wX=CI$1G#7?@2e(dwFy0DghzWYr0$(=mS?#M%kE zJOkpb<w89C)-OqNday(ob0y8F`<qcpwdc+rd!4fjj|1x$E?@sREJU~ro4;he^R`#) z0gR>qb}mz%++KUp@IIdVm5z2in}a$T4t1t!^ihGmqG=3IbBO1g%t-Raj?Mn3Pp}@; zWR{`q{gc-y|7J(yX{m|3JZg}KzTUxV)Mm|m0|6do+?@0gg9&?2B;+|J41D$Dq$u5o zS+irj9T4T-SMY0oVs$U}&~^zkF4X@b*ISEcV)nZC(e&Ze<^v9>wpc@Ezx3S-F76pf z3PdYDV_CcF1~x+7!QlKVUCcS`$E#8{MAk{LFDdssh+{3<=D1D9+w0j>q%_laiQ}wN z%|SB!tKg&`%&3)=Q(h?wGiAY8YmGgi55x|BC0BBf7?x&Mz$~D6=fi*(FbATIffiXZ zv%&v?jxkF)VfZ{GkwYwFhpuabIEukt>XzKJ=0qem-;iRGLl~BpA*|nsLqIO25;#w^ zI}OPMYBP?gN*Q?>uq8sN<)mm}I!!G{y5$6~7ObBc!Yq<L3LJRJ`clfZmBohU$bfhq zf9YbWeyQ>X%mEg<Po4U2Eihr%Wx?`MFI1<{jq*Kdq-+MFR~&;`TD!nkb6^>gCh^Mz z2=NK{mECZ&`w~e5gWaJOGNpGJhmPLO47ADjz!BPh##BlW0w`GT-lv_z<iXx{x!t>( z>~S+XU6!z=TK9jnkLCjd;^2<$q?FUoyCVs_O)c&ZZ79^$MWVI7JgtY_O<$KX4qeL` z2QApO@-p%m7N+Yz>zS_TMp<gvl^*S35xk&L=uDmoV9yEJhldHbiY;4GJXK-VkRMq% zTJ8%1p&dFKSnQO_+Pch07=4Pd>d!st@$VvkOObEFo|E<)Drp2#!IJpdSf?2EAB6S? zDdM;T<I`V~)Entr7v9q(t$(ukx%+63Hu*{{Mo4VyL;G`XfoD5^OEQ;rzHJr4zTN(y z^NvgBM>xV%N!*Yu!+J*!r%w+3nn=5|fx8x{QF<!|VHV`@z0rZ<lpXHu2$Q~aaKTYf z_00?6l5s0KPAjhCq)%Xp9nqx1at=XC!POmN&TAQ^y$QD?r>#912wq+nR?RVZ{QiiK zWg_sq`lV-?lSvxp^&)2fS%~>hd*L|TI?(qPbF5hbUw8QpBTB<aD8X+70D=f(IFdMc z)W7HsyY7y1>-hPYYq$Ba&0&W`Df<lBSLnavbNjXfwvs`NOkuc-EnX3pyc3DbEPhEc z9Slhm=b~=w%lpzv*7_VRnYYWNw@O_}m+1_C{QU0xV?X)|!E%Oj72BCGdDxo)i*E)1 z`A9FYD4a}LXOy3#-F17>_ky&9%ZNArQ}gbWwuJp$7HWYxu|*#k#znX&3XLD=i17;D zls^GDe?JhUIN1X+qLhYAeTykmOW+v@=s=+=Wn0vh-J|ZDl@e`dP?S?5Wqm4f{qD!p zfqT(Z${lC|SXKhEH2eICc$d5o9_m*R9}@ZK7Fc!=Ebi2PnXfeY$_@^pdm9TZ@x79h zi6Cz90+z6-*~Gt43K&HpUbTtvjtx%Win6mU0!85MA_3+2^0y&%+qX(&Bp|X1k}f6G z@9&;bH-B9GVOu&^7R7k_Z^b}3^1f&*ZZ8%U91DvQ3MeX0nQQ1P9&1zzyBAn)C=5zP ztck-=yVH>Udq02t=T4ozC<BH8U^-U*96Vb!iGfRMQl%K77fWA&l5xUg^}#fkFs^=; z9`BMbz|NJodnWxvejA%Feo7@JU`aZC6ABrjpCL?_6)l<en3zk`C}NIMcr>K1L}m~H z2F0^wXyJ(L-CZVj+;kZdq7QW~srHvdC$fV4Yu6FtQZzJNoqxF%H!TU471!ufl~5l@ z5|R2;(KUn*NS2`mE_0})j4!medd6SezWyn@j5nfi1GTrf)EmbpAN*Hse|0!pIb`Rr z`r-QcGrRiWf)FI#MLJf@E-J&`(wdVUrm)l<gAy}Il3&DqC6p|e6{-ZcBdDKI7vV6t zhld{fZU6Ce;vUcL6Nh{)<SYt|80)s1Hc>;8Ib0%;u{;57$hb>UCrAo1;e=B%76Sf4 z(MhwV1hS{I!XA3~v%(@I=OToY)xY=0bGj5)UiWdXq!URqbSaNdHIjNIl3}6oN93`M zsk&%p5AKdwD$uIU^B6_<*GV*oM@PXLBpVy)n~^V(3Op$(an9llYEoZ)a%V15ypS4M zT4fUAq^~}QVp>=CyIspd0!rfV4wj=7rSdo=k63oso@Tm4Nmk_U+_BU1RT`>9LA(1+ z5YDJQ2)i{pjQrFypb@COFjlppf1OB@tU3<^5vr?eKl5N}8T|gZvWr;w!D<;~@YvhV za5PWdCsR$?mMIq~41HO32&G4P38mObLQi}f4V*6+>e09|Y?(jl8mdBl({Y69L98j; zs2x?h0ME~-XY$=3-Qi*s1BwTuH}ahP+<L#z`8f)0|K5b~$0Z7CcUriyg<`%UK7&J@ zJ2~ooKkm&IcT3iED!sSJ^X&#%T334`7`Rir8~i`LfBeovpAp|TB@}p$WzoJEfGLvH zwh`|HxC_3FmN;OP0AA&HvKF#|U6-fb?sp+SLyIcmlKCTAYajJ+|HN*BMFE(%Pm!$8 zgq1Meldt18H;-<?Znvr~5iaPcE#vO8MB_{SxtM+107{<3yS+SfYv8tV>%DL~c-iqv z!F{UwdWkePY$`!XCUvk>-npna{_{UqGjLtFyk4~YbU3*B=WEShU1w%v<MC2E9ifgg z#i(6}v=tJVu}qF*qlt<4)x<}F%vdd}SMa#xyCa@%dn=Vi`MtF#xYud<Xk4St+4hTH zRaVYwjolzxi6zv6u0IG$0~1;5=4cXUk!`Rto3-f%vF`$-@lZH*=l;^^s4YwuAQEF) zF*GtT3WJ07)k*~j<SD#_gzoVLbK^l<Mhqxa35fc35vJKx4J!pZ(K&U)Od17$IX#yq zQ;0OIC_J5Zi9I7vAui(d9U##+CXUH-2N#^LdQH)6NdBxn#!!745qS*+qvu)WNxHOJ zx9@*p-3Qlt<7Ko64;lK1EIhZ!(zWvNuLe*AZz}#jt&(^hfBy5ml0mFrsSe=x)l6(q zPxjCs#5svTX!#k!ygrd6wpP4cC;+58G;!-K2Faa@l9k1UWTfbsAqR8tU<4jyg%>oa zydr0dCV=Rjy4h}37^$|05yG&PQ-nm5j11}#4OIfa&A#7NX@2X$Ls!_PX=9xx?iGfM z)+i8jHy{oRMa~QNa~x8%1iyX~*NP%ablrwJ$&s?)*!db}1pvejq{)B!f@=3?wM5VY zv<8AW6phpv^PeQi97cN1QxiByBm?O*!;FUSnqgJs?xCtE==bBQB`9B+>FW%7{IQJ* z3J7E(VNjRO?;OX4FQ}vpVm_>;M#b+*=i@E(c*j1GCFB@PE@YYo9!(^TY!RVDm!uwp zS^6w~+)$3JKo<j_h;WZQvB+L)#kL7D8uyDm4>9xN<y_hXv|0*}F0cw^7$2__6U8u* z^g&B?{eAWbTD%l`+9?&-%RtcNP$eAiDrZ0^**WUp_FB^ye<XWc7S&)fnPl(+a`5&6 zNX1RpJJ%82S~W5n`SIX~@#?bX_6V9?8f+=5ohXB<tsFy}ZXL~~oYG6ZWF5rmxzn)J zFgLfp{#SQfNR#bKE~!?M;DAvHbD%&Ft?ZX!l2T^s-2vsGz&mx0ejN^J6=h|4PTMG3 zQ`HuIbks0EO#Gn~{>S&nGR}ZJ8UlY;lp7#+{^0tSQtb2LeU*@*OX8-|sUx?b7cQzP z5ZP)yppW{iBtMm-2d~0^h~diM<FXWBoWejE?}me^eAwn1xoRxr6*8^CTIKuVZmCc= z_rLf%xn5Re)L{p-%9T1JX23bFBnoWRUY!Uwca4>}^M<k3(-dx;(5~}bxbeC)7T9n> zfq-7OPxaP_&Q^|TW`&b{dQT1Te8TxSav>?fCQT}{q?)HK_@Oc`|36#n5^FUi^%4Lc zacxSKxgu)(eEnvMSys|0q{Ho#9OjkT_+S~jlYXetI`;2)wEgN34XDV;l6HK^boGWK zUVg35w6TQ&mFP-~+BszeDx#p{fgFQ~s+FY#lsyuA_lp#=bQx1O_3jcuf(_23RauKg zU>nU_qrugV_i$-Z|M`TVMfKNnbMC!;EEnQ%-6GQ_Cft^_M1VcPEmduwx9qj=V7_w# zgX2{Pkyr7<KdBn~Ye(sZU*J654!`eu615K4&tfTp?-*I`pBDta*G^+GHs{2(SIf*e zHCKm0J=BROGavu4w)`a(TW?V5VHPHJ!tSL^4$mU1Cl=Sw43Gu1OPckj5|FAe6IsZ4 zU&)eV^dkA7zyMhZxsDHoqJWQTb8p~MSMw!|4TlX&;H^3UR5#$DrrQXxp`>s;bJ;G6 zj0Mci*PP9y()h1x>mc$2o@m<ISbm9EKY#BX(;5j4eqJ$3*?&F;6r}1f;Vn0R+Rbq^ zoi9&u18^q=ks2=Wr)>!YLwOWx9OCiHNAtOqLBUs_$OZAtX9<o~E<xYe5upS~_cp}x z3iEp^Eyd^U#ZuCh-~fk3-p0P1L+y|~4o1mivdRZ#nv?cDhLv>^BlS4exYMdvY_KeI zLD?b;hTwV+w*_7c2i+TTD*WO)9V%4v(HDlB(h|nIa)K|UT6We+{(wyT^`3d}o6K*u z%zdX>`lh3PaE{2lPdRw=AJyu@KrXsymuU(Hm#obaoLWHYx$8MGiQ_ZNat+Nv-ID}z zBewtJY{EIBOF{+B#xs5ZahW?Z*^g#_m{@q|Mz&!AIA)#f!t-|jQNnD}Y&ZZ8ZQRoL zPV{;bEe+b%z=_A9nA?s*bQ$4+i%oUN_HAI3(df_a7K_G5=Kf*HNJOz!8Q&O|Of83^ zJaZu%TSZtb`^DZ57nLARM~u!a+~^O?L5%UeWOFAq<lj*J2Q%*aYJA|WNeCEqjOGM2 zGf1LKg6|Ar=pVh@rI_G3?#SZM$q$Ag6$l4E-gCt8vCM4wKiCw6m5CEQim-_3{%Gi& zX!3;<#LY0;H^{5^(Fa40>H6|tmyparDHh^kjQ*TvZ=I6EtLGswD<eR|i#E2tC|}qQ zaaeM6McBg=Z*T)5qq*_25HF8BeK@25NC@)jL#=<c4`P4#&%EYuA`YN%Ai_qC^k(u2 zNCUuj!~eSDt`X4r^hWnnt<i6q0aqXH&U3SnSkm-U4hOTXc^*cV&SR*g&+0sSOW6i# zORCHeoP9r+OTTfQFgEepk|-(n4*P~5ec#Mtw!f2uwR7-gi(_jmpwA{bawG$~`kRbS z&W$sUB_Vl)rMNk8G>XHQWBWfc3JZvqnA|ZnhU88CH4iSIMk%-&GZq5;&eUayeV=9Q zkPz0W9GeG`HSIg%NVK=k4NRM|1hHc4yj|FZuOhx-bDRNheXM!0+2y2Xu5<e6QK}+? zW**0|)1uf-+tF2T%m|N|TZ&D^b(_s%tA`lxOUNUY$CfyJPDd`M-Zd}T^tC8IJ<dUI z4o?tb=368^M8jy-<CJ8hH+4g50R<TAwK&g6_&AW5*r<JC|9@JAT22Igr`r}X@E)-E zT;X*WQuaaAK*YixHK|;xUxa<)81y($wA(F;aSAIU)mh@Jgr1*S)^AQy5%AF~uE6Hx zN;}wa;!Xy!55*(&ee6y90xkiZephD_op8(F^nrAfNxD-OVY}y0ZzHG^(zmWn)O*dt zcTUh%j^r9^_(0*ARfG#hO&q`@(L-WV*3Ue$&VMoGE+iG|Mn1#B840$tDX7VV7B;;R zZg(vaH+>1LpC86m6o7M~Wzl-^j@w<U_R+XmcT>X&^wL5jx5|p2an5@Doh<v>&q0$u zSDE^Ryr54j#qF(`!o(oxlEtIGXZq$#=$q^WH!@WyRy@nMD$DX4YLZ8a+p$ss#U5T_ z$c)ZZh3GLle?v$b3`$(3h(1U+vd?j@y=)m5RVg7xN*!HA_4%mALiH5Z%~lIcP&lkF zQi2@$)C90SpWs=<7JEUdYh%6`YpY|_<gU+mFfH8%Ug8EbBv(nu;5E8vhHayvGWq$F zS9s`#w-nYo#aL*--8MkM_NmD#x5!-*k}TEE($_G#koXYlg_6WtCw+Cj_yqjS#5&11 zm_5<R&^)-R*|H|$u0Mqy$|dTBtG0BvR~@}6M|yHzxvMsOpbzb7*f7(QtQxK=OkcQq zEQzO9S!4zV%m!e%H}#7vzc#FuZi-XT)GXEU5^DsYZ#h?Zr;oouJn807{piY2iiEwZ z)tw6aVAb!p<!T!x(U0W%9)YFeZ4D<PM0!R73gu$!#lHIuRO&cDy*#er9z;|*G;i8l zTl74aG)PUhbl}Fhh^O5mhuBJw(aQEE{YduZ$ZcTrY74l1H?W@==#lU<I$io$^l7do zxt(EYlD8JuTcZzI@66i5{vGjJmd?AIXtFC^)a6dW`1wm9j2`G4hdX0VdWI6j9AeQ$ zuuV7A7FNZw;n=U^AMZ3yX#-Wf`Bi7GTHxC|OXv}R><O>@^85!1@Qm^zI|h_^8FAM8 zLN_2cuw%6*h@T(icJyaTP1GbDsY^v;&*grea(=oCQ4_^~ih9DMBr~h9eIXXzR^8tQ zMs!&Ae{|kP!G9((kPc6zrT*TS9<Fgj_>FQ_b}{VWW&75*e{SK*w^7yP0862bJMzCD z%KQ34=atyl5%^Dq{;PR12dq2Grsyi2t)=6-ZLk~=UGr6J{U7gh-S~jMh^>AH!wI#W ziCY^z%&EObGrL}f$(}ci5qv;1W-EWg5yeh;4O#b+2O9jJiS>_~UY!u2*ZboCGg*QD zVDzU$>>l2+<quAj?jp%Pvc_a9*vY8w7jL~iq#ldiiLcnuKaBn7mRiIB39%%PxIiCx z-aO+C3UcLOqVZ*YV)%uCrJi^hdb$`QP=u{(;*kUO{BH6CJMs(ZJJ)t^a*u`>PcHN+ zL7WS#2Py)#6&vg);~;0~3HG3j<emRaNiGWk;JAx*S-5hEhtAZX{_ObB#zKXjFTUe> zkfTYLd2XdaR?>Ku!nwU?c~`+9XP_jap~In?>zmQe@KwQsV74M?moGo91vI6)9>w_R z;+sH$``eEEqfx0u*|)_l3A2JvdxhfA+a-bb^BSFCCD!J9_KCmjL%|59Z$~40H_H_( zgcPazWE>l!n_%s0paOiFskB;^MKc_*u%JEF8|G^L_*z3|w0=??76^0u+14M^g(SEi z<|+%zgYVHhjPUGnQXRn;Tmg^U_N1in^d!yeUd5)j=M))4GNxwx1RW(1SK>%CaKP|l zny9;qk>h)MGbsAOPvO&jDJcl!&mG{SLR69u?(;PXt~Zd{SafmZSRpv9lOfEh+sGnU z&g$mA6PewBe`92DFNPTA0zWY4e!(#<>rlMDThbWF(bUh-f>x^y#%B)M7$R#Opm7i$ zW5ace{(NmF=g0*0-`>Y!eSC5KMvZny8k4?v&=XD;+vMw*#4R(@2c5IN08g=m>WgZ) z+x;1O+@(bKF6#uF4>KA6($95ba{*ANn>V&Mos5iMdS4wj((D1bs@@hd%G|t76Sph> zIfOA=#pO`Wg__^=vZ4u_SO{Y)?`iod(z~xBPLjC~&5W!DQz>?e@YWV31FhWcb)Ppn zVb0zJCItc;f9rX0`Ih|eFzMf6&xkHK>|WiqV^D+?G5D+8JSk<N{s-r;iab&|2z4*+ zt{!`>L;c}1{g#9ijx9?L0UA6tVcLIX^{#whhK)@s&j)N6v-5`cL}F{TW&N5^%ijUB zZ{2$i)*o{d>O7v+>mN>}_WK&k{4i5%c0fodEDBm#sm9$?D-1e>ILv$A?K4)y0SOQy za_=+dk&=$Vw#mCHrt8JrPiyDHvF6w{X=&2_@bT&0{$K-V{Z#vC4GzDE3}ngAU@mo) z2Nyl=98q0R_uLT&JO`_2>&V-dnNyw9;xFo>uE<1b%EsD2iTbK6A0w=-n$QvmFeW{B zZ^cR2`RuNY(__8>Y4k*N%?l7t-IY9dXu%=o{|D9S>igx$EH!iCF4~+2f06G9dpM!2 zG+vl~B*;fBjJMI<6H2iNCd;cjq;lYOzYj;XRi;E`2B`$z8=~><fxNnTh2GmvChbJz zL+<l7^x&>vc9V0Cs#W8~Xd^;(Lke%*XQ2BOT>Ck3XX9Lr5OkkxH#LD{Q$zV^fBc9y zKgUVK^+=!8ra((6G-D3IhIZ_OoAvcp=-d60k29`e?qR&Wz-l1GW5LS7qgE46>Xxw{ zoO(kgF0A0Kw;{KYq4yEzk3BPwp8EGvuV~Jq%rgO*?kaZ8Ud6sAA+`D=_naWkptf|H zb)JyROf6UMH?C#9;6dSN(1fn+n&-72vsv(GD7{)6!RJ2*tS_BrmOqltjF!7UQIcBt zkDV{f*Gt=wz(#UYXu8<+GNszuSC^^rE>5B9O4kJ2kkQj#0cI|?Cs!@bkKu%u(XZPk z2h_0K+ev@=CZ9oM`osUqbvUj&o5F7_OmRHZRJ8kB*Cjd-i}_=PJLU~I|4efw9o~Ia z5w)pbIkgz&8L7USt$W#S<U^GnNv<(W|FPIRF*&D77rh{{BM(9Yd0$(ZjQsDaUXa`# zRb9<j;q~!z`wHF~xM?A}-roMLw%uxVLDkh%0qVr`>+KlKBu)||TUCI|(L<<CJSEnJ zbfJJ|hxPUf218z4&182ITT{`4lq(@UCYR+dgdtC;dYzC}`hJ?fhc${(i~I_hi?NY7 z$r-`)z_t5d@*>IqCRv8zv7Rrk82tQw20^rSx!tkr>rmuRHZ0EMMisNFStB?BI*_*_ z8t^m#U@9z+DVruh95Y{Pp2S$UVG1A={H3yL8Aubi@xg`pvHF;0vq?YH%0YcYqnJuU zrFK8zk&kU4gOCP%#vnwWk2XqjSE5(Oj9yhc0vcdn<Jjms)t(vXSnu8w%R$x53UYpN z<5PuwN7l`&ts%=z{eNsHVv4!=NI@pUptrFgMh`v7%<dtY^Dsryc*FO(*o#>%Xa+?0 zINd`&P8{VHtLGX)>Y@^&5<nte5a5{L%Hpx1{&E|CuVUVFfV4c5Xxk%efcRNlQTQf* zc0_S(g&Swy0~>tCviN05?j;2PTrU1h5F2WHhb9~UmjNElk>E}9re=rppHkb{522!F zI@A*VT@oZDKztBbK9_=pcMP^?Fm7Jtu;eYq)!|QF6M|b~z-mhxX&QNqKvD6^#gh5j zsIhZ3vCUFX3^OYD>0jpdq<T7f{D`O}_u%svG|k*2`hZx_kQ#}hn`&y5O1WS=h>VvR z9~4eAw;dAA4H_R3pOq>rc~(3QNtG@I(Dl_AdJzVhu^8Jjx(GJATDf{)VkE7ZqK`w? zVI)N!p%(5pTFAb1WgC*_9cB}?W&E^~APq=vN?8J76CYnP(6iN`6ecr@QM7lkRu*$3 zy|$Gr`7cJZ;P#KzEbp>)TWhNiHK$s+OQA2IoU|n;uPj#YBG^h+%1U}gwx_1u2}}+% zp7FAuXRfyd6qi_}$v$G^VGDGa^T$<nZ7RTOJ~+(Z>=`dDfwo=dOo+|z9=>{xymkC~ zXZGgw*L%xJ)3S~rkVq<O4&9B6bRS=_zYiMfjTh|Us7jS6rc%JmWH!r)<+!Sq>|z;S zhZD~@>1%4n@sIjj7f|3>FL42Nx!hVA_UBGMu{;A)t4aK7qcSK3%RkGHWO2{;)(99w z7@>CHa_Enec)7Xtr)ieFqDpDEKKcET^Ww}b4nb3<({I-C;%{Yswv)>J`_m<;qS<J$ z<9Pw*jL^{UQXKS;LfaQlH-7C<w3Vgl{#MtYo%vsHK<77Z83QHro1pfsDB<ds*LmM+ zYrbpjio7|W{DxAV{~dUt_@626ZIk@3XrZh3*}oo6*jTyUNzOf%z;~v{o+7}i2Jw5< zm$Fahnnc|%$$f~tJ$f&hP?UJEtQ>t`VzI+u;m?nflxtB)YCQ%Z&@i8q=4b^5s{(1^ zZ36e9yrIOKX@EcK-_dNy8xZZJqw9+Jm-@vAQqPRv$L}`kA_)8S9&LZQY%VYyD;J-R zUg;*dF5_uy-8L~j3RRNX{I_XbTR#rMOTgJ?JS-wOI*hnXh<c?X42a3{qP%^a{NCrY zKLLN3E>T%=&-d;N^H2GyT=sInv#5iDtGqV=a|KahjX|0{e!s{28}hR8xl`U^eumkP z*@ZO<(P|~~BrPBWfPF1hlpR-_XM!sUp}Hfk|1eK!fBI5t2F?8puuKIj^9vo-Tru?< zMhD<@Z|n6hF|*1#QGfA1RXR;YV~`tvT;IV>mX8{xO)uM-pxK0J01H~7%y8tBIc8CE zVz*2xYOwO&kJ7}-noGeX9T1X+JDGEb6?i!-HNSHAo*rLPDuo`R0&sT^co%fs`=wdD zssqclBXa8w!Ek?7+jPG@fEPgX(ZBY78{n7)!f-l&Z-7B0?_!Howe8rCtiRhd*<Szf z`zT^*;|G8lP*48AcE8D5iBHMZ$pHMQH37-|_hHOdJmh$`%UlUHw*|t(U(*5;oUl(9 z$N6ZNc!7!)l9-cRcvaxUY_kA`jeUtEvrZ1!E<Bxn>m2g5RYVg^(U|#U`Jn=W!iBKu zDUVGE+`Gw{cZNs_jxTc-y4Q8%#T^G@`mZ2hz3bw`yy^C4Gh)`gUU`AMGSuLJi+*06 zV&VSBvNKR^X}yMH;lcZ|`#tWg${qI#58tu_-PuCrFS84eI!1bXYgT@L{#bb2()w>Z ztmyvNUxmNBe*gPL5R6{FSai~Vg}RrW`T-7SFFKuSr5-gFJ=hK@I{W&Y`nyMd@J08y z4LJLp_<gYzJO;OC!hLClI}L^zs%d};A=MG^=weC%5|En2jqc%Xe#bzJ&_|!l2o&d; zlly8;k7$?Ud6n+c>m`4Ujc+=H>q`ijDa0~12v-jJ_H*lBa=6`<&C;-jFcnQ={*&6c zOet6<(CFdZApz?Va%(@X(R;eac>!mW$>CfN*DH|^Gp{x3iNpU6Ts`tkhI+;x+f!rX zln4wq;Y@Y_C^q$ZS{$uns%0gT##;7*|1F7q=~EbBahDu7o(i9RY{|px=@`YNn9aKY z7sRo?(x8gLu^as6CieMC@eC!8cuQ~4uw*g|WkJFor>Lnpt-DV3-uoBJ;wUL_>(66K zZcc_?(x2n3yECHvk#PPTtiT2@O>s6j&1xnFj-?1mM#BAbqiGb4cgmGz)Jg0T;-pEq z!iJ9Ci~=b1@;KHE{8HH>Hk+y}7e181h_kU@dz#bDlb^9iUSUb><?>}BJfTv;SC9a? zlCZo&=$lQy&=V>eV^_6?a-;&u1TOMgW`5kt{ihMQWM{Yz{o?`O0>lxVoNKoKHb+@q zruM{$n<dX#BL5_}h>T2s?n#Cb$O9$}8bdPoLj#X7aIH$D_;K`W8w$NtSQT!{B-c9S z$M5VnC4l2t%H!3*P>B@Cr#$s5Zp*g-?CKNUTkcTLjAbEU!03Ulen1>7ma8WlSy`kS z^)v#R^XLeEYd`D2Suj`3p<u9}l$#)78~3TNxL%K;AX3dB_k1Prv@RTAPQ6*?5#d%E z!dOxm{LS;wFU&fwJbx7>w~6BuQi(Xz2lS7h4i4Rj>wUtIrrL6=Sk2|x-6+m*df+3y zn=^yeZ}BoF5Ci8XFO@n_&QJ|67>XPh*SkO$Ot(j->4w;M(=kIz3kaoB@yS$wc-Cgg zOK!RUeiy%9t^)6s>)HZm&3E&A!&EkJJ?4}vi+a|iQF9epT>vU)=)qOUy@eZ{8aHbA zz9-f|mkVxWz`HgP5BnV%gl-Xk=gdR=YUbdP3_wm~?I@v)9$C&yta%vjqQoP|;0TY; zbAW=1q#RlPs;4)%Ki?YW@Y>8}`BaFBuV6Z;+27><ss{foB_J1B_}M|>g1_)*7dT;^ zaF!Rz6xPr&oEK7!$GzWAF2kn)_$uR8`Ciq+Guz;j_}tjavQfRXZQdrK4)$*h5AL6) z|Lcc;+28}^QO)1$XFxnFjmoeayvcVaBM3lfj6r7VOdbCkd?G%tD^emg2VSv>=#6S- zJcJ+5@+=1wo;6`SHuBhQD&{qsoSw9pl{6givN#PsZg+9U$=<)V#2v%$LcY}}NjH!~ zkB<bcLRNiV!aS?8)iZyt!bfL{Sv^}`BWp1y#{7IQImPYl&cbMs&uHE@(&;@_s%}X> zYtuuf70tp~rfX??T0fXHLKKS$=K*{FTU}yp-#(?CotqjShu-@0YP9548NB&&9{hVk zJ!?tHWIQ|(*HJ~QS34qPN8zi>AC~l7hj;zVOugDU@Q6(%s%gyye?hTiDJq8+`NF8I zGylmA2I_MC$aw1I_r6DlrACjEOEK`9JaJ6Ou1+zQnR%YCmDRla{){E<A6^l&Hu)SR z+A;QpDecN>k)40%--z|R{;_!z(hMj6<b&bgNWGL<#%aP|Zt`}izLq(AEiGDDtY%~` ztxPzLX?p}ez5tw=F?@fbZ_r=xWwPgKApDn<<mabITx13HtXF}bRW$H6E3%$WqmrJ7 zWn<ovE2xJ)EvqLGet)Ua|0R6)XR|47&xQB6>iBN3P1lDwxM^U;MP%dS7`P<A7mTI% z;z}RZ5O-}v9iyl<;N8jMdX}HtK!@#yFvG2(-Nj5pEz5Rq$7~C4Z8^PZHB?$}mmmUK zRdv)+&@+x`iLobTw^mxms`JQdb>Y0_OY5!5G6GkJh%HUs^n`?r-eRB5p?nz@R_D;H z;sJAfBGfv4GYX#e<!Y@N{Kf3$i-cDIyss=2R}VB~(b{y45`er%ui*FLra@gxx#gbK zWyccl6t2QuJNsz$IzlF$OXBOGAcmmuN4)*7u6-Gr$#2OWgD~%=H~=u~^yi?l0lMOj z{9C|hx;Tc=4^>;da?bD(#s^G8ub%VXdoKiVw@2RE@1af0${2v>2M$5?-Zup~g>Arb z_$~fd6>%-S7V|aFiaEujU-$-z!*Nxev-zK#uUef~T`HpU)~3w%w9?pFI#xg*pe)q9 zHqCJWXrfbWfiwV?_)k_}`Y!IhcY6<i>GF}`)3C})@B74;%%4UJO321Cx1F{cp#|m! z6A)s1VT@}eulCfxz<xx58P_B(5W|9-;04Gd-TC_;D{J%Emg^;w;Ku)I%2Hp`6nnF7 zjQ{t!fuZN!F=<S6gFr9aadkxU<_EZEkY8+d`8`qb0E?+u*_vC?Q{81cPEO4qI&v>6 zR#MCv7&T^ph>Lf9nc&Z<*B_A#eQ@p8_%u9i8c3Zr_&$44Z&Kk&E5jvYJFV(2T%^U3 zp*Z4nHtxavJ=5ugf2B0bow`adKfRy6KhU;wf7a0Oom**};@K5g;w!D2@Y=8Atkj<V zj3?vEKGXOoaG6UPFwpyVGVt~f!Gfm-ZEg!rnw=eA6+nGOHR>!05@TS!+Kdm``TvS^ zuZrpV&0imqY}}kc(ch7hvKpy)c@dX3QeN<~+pJx00It@BJVR%j70^3`lD@kwKc30l z=u)1Y$TKT|Ctm#uv*|7^fPeZr2)RGVruUVF<tq^SxlUaCR2E+4y68Xjv6e9o#Z-{r zG)9Y@t+khagw9S*3cnM$Y*d&dmcP8hBKuK%kdE-a#(WN04X2q~Nc;DMWf`}~yRzz- zkX(}()1Q<Ue}O=9Tsm(Qx8HY9eDaN3GoyFi`htz>;)B)j1+rl2DifQHCW8ib@~EyP z$&K@mFkffFS&;fI+eNSS@60{@6%XKv&*OFYE9nK)TZkQf)vuaer^npZ8FqM8+<p`< zJcPO`DSfZM*bUGDS|(Gt7%J{9-3N5b%DCys+U0E*w!P?+-*D6FPSC<@AUP&zbXb@2 zjxlh;sg`o<Y&>HW-tJ~um00(N{acC7cI1uG(aYB_cwDz{pqndC)>V?p@_=gIm7}%~ zLy_;;zkJgy%+uZf0!w?2cn*)|`SvDpUCDBRrKf+ux$W1;@ZUN(txhA39@MS;6TU7{ z_%XQoujw}9N3t=`d39}%#u}i*0}NvyEIpuslkkfHYtX$Yf&bu|TdPlBQ@dTiEJJ%< zkuOb+t_{WYHr6u%?hn4D4()U|-^e=c>3ZJ#cn5D_SU7tkjChExTi7)U384vCVM3<& z==5*wEdTfm7pog%)O(5}Kd9f4>sKgT<NNkQSC+-D<C)^(I!$AG`rRDXpF2~0-x=OW zF|d4{>N@!M@G$&Wz+eAw@RD{F$u?<Rd4k`28QmO)y=fI<w^)ME?zXM12+PS}qpR65 zbT8UU_k9TyOL$k0z@t*NoAbg2JBZ=$*qPsV&YPWU_06y0+p|eXT=WN-Yu8K%+U_}K zEaV=2ez3ScU-7b!AhFm^k}2i!OS<|CE+hMyHf(a`-@WOZ#=To+bKH|hRK<fb!GC3U z8j@vMl!KBLOwLBFnqf@I;&&7By?%jh+P+^)OXp@eQ9F3EwE|hLuiKg5zq@u)2ybKT zG7XsRVoDr&xGpi`l?9dl2k4n*{~|HV;Kn^^09m)!;XIX3X>u-u)J$@^#YUj4dK@!6 z%?SntdN*0EVZ(TvCu*0#UZ?4xekmJ}2*qzGzzllvVi2@jL};=Sq;$D9pyio?lm|55 zqK!@lU&SyKOrEzUOaaB*LNih?5f)F(umVQ;PJ3PhNtbkE`JMN@hcji}2lAb92fm{P z+96a32O_{NSti%T<Rr7ogTnaz<>C8=p`TCam1Q41=toL`uP)j~drWP-Ep>=f^;Y7# z6IgSRpEcRE-%||a!6dEn;fj3k?A4AY=zUk@&N_5$PUXz`U)1sT*Eey3?$qehqwU3a zMec9V;toD{N8}`QSiuQZ+Cl+8aV=n8FuM6ws=h=9*qx@Yr0ZpRaw+t0Or>sv*HsBP zUF+$u5|$WNppT4w6rf2?cqG+NuAU!$MJ|36pdJe@`BeRjee**#4IP6wz5p{XZz7uQ z-DD#Ezvk?-vZi4P(DiCU3i!*AA(5yuY}R4<g<*&^NE6sbl*!$_%z<NL2$qJ(^iszq zV3$}~WNLZ!C#tV-naW9h=AH|%iq&EaDv|zjI#GP#`eDFxfLlnpvQq}cRsqN~HrZL7 zS7)&{#-c4)J1fIG@0$Ah1}{Gq6IGC+D3sT|B)dL1M{@^4fzM>t<^aIqQo!wJE&Q7q zl9$<BR$4#^2H63li#V|8r%Td?VRM8~@9OwiC+|%lZUt*uV*XOequA}<zN-DbMe>zv zkw3~?uigK3vq|%5&>>|$uh1e%5+q=o;P{nYKm7UK3oCCi>`7oJq;$hqf7GMyukr4& zZ9!>BX+N`UwVLOF5~+24X6xc)9x2sIO|DxJ&9OQa+wWpd8jf)<i~IUpZxrFEv>JXT zaboR$)}GB9ttokzrMyW3U;Xt;BcR2-q?2>vb<E*cNqlqrHOluo&gZazyO&lpW-i^I zJV4$`vTZLpC~a~=zQ|3OdAZB)H80V`vXbUl(<+w6j&gZe75tRzMrYVN!8om3L*nA1 zKeI5$65Dy-%_-M$IT60=JFnEBTHjwOaKRi)Feb;M@jo;^3r*eAS4TGXfVK7eo({W} z)aQ=plo-|t70gakb^Ib01cxUjF0t6=IzG9u-&qk}(-7@E-1_77{a<hBbffnKI|9Xd z^lTqK+qm$5M4fp&RBzbE&uq+0b~E;6#=a9{Um9bEvF~e^u_S~fij<i#GmN6_Av7dy zlC@N-AtWg(q(Wm!TC7pp=J$Hvf8PJk=Q-zm&UwyrpZmGK*9A69$i>@N-;R&Jte@-y zj#t#UBGGcKKL<Q>dfcdidbip}6r0sLUCb}Z+1uKqhYciCTwi@J+LS$j{aY&KP$^Z; zIQ2Eg`C2JYtlhd&uQ$Tz<*OaPZi3Y9F_s|{yYTK{seNXDjN{(d)$6y5+>DCM22|P1 zjE_LhxBA0o!7_()a%{Xt&T7Me29nNH84J@Ia8(tqb+Q{BVQZ8_)yK{^-=4RA2NlK2 zhs-+EbeGCWK?_BrPuIg!A791Y(nu|cRNC%#vitG!95r<GeM0KPq9B6;M4PHx=Rh9u zVPmn8tU@ta2K|aY&om95T(b)-(zV&t^6nWDcfBeG-$Z7DKiAh1f0l@7tetrv7eIJ8 zbX|7-G8QXz8YJC7eacx(!5p@ccmd@f5VPO>0=xsq7?<C5i#2;)HQF5R`fj;+=Rr(0 z^exXLO}i*@6$*0klhP#JE${jkS)wmXn-|D=cHRaf$!P^!R}lcO@R&lw&x-c&xY`R< zEgD`mDo9B%{>DxTcB0u?SI}o9M?zNzJS{B!0E*0XAz`ROH=T36ez{!I0;)!#@nn*f zPf5krK`s-4b!Z>0h`WWUYE}3I_hB7<MZ!R55X*W;JX?Xjk^p<)#%W?#?bz$wG8|bW z03lU{grZzqLqWWDKLF09UTwVYuJTK)MknPgyl^-GGKea)gI<0RGi6x}ojh;BH4ITp zaP^6!`rMnGXgNM`D7-w4?+nzuQVj{7DXg3aT!ZG3uIr7^Jcrt=7%m9TTlSEkc-&Bs zz|v$6-V_pZJrmP)jYA>Cst3J1uOKMqwtmoEr0Bd2YyiLv_d`_n(3%Ke&&YzAiJAWI zrJo;FNh=rz{{T+wu8*rHO-H#)9MXSa_U0~il$D%zIjiK92=9`-<qcPq%gw*>Kd$!_ z9D2RuW6h-K?`B|qb<*2SG(b@hZb3lSZgFY{m}^0H8e|V$(}o#wfsQ0Z=FA}J*Xd*T z5qpy(=tpPI3sK01?gotgK0uqtn?C8mlw8y1KyK`oT0vL76-e_#F;=Zt;x>|{97QEv zN8q`NAj4ZyVi))=lP-Xu1_{^eLmPkbM&;$6HPGbOhk5<o>N<twfKMf~pf5W;vC}DK zmu(K{1m0zBFyfq}PEOp|meCX98QZsiRRz{!0D~|%MkTQf!pw}HQ^c=KC6o*FOI$h` z3D%N1@jOqc>MA&8*zTp!gXWF9SZYe4E+~A&PU5w|NI-5{qq=Rp3&g$B@a+<LGGm6` zSYo#4s?lC_8tc8cJ|N1&5o*NVg3G$pWT37<Yo*oaiPxA`CHL^(<I)AZa|uFIB9QN9 zEiIQru*VJdTvskZJe*7b-EK+iylk745NPe}WuoPrQvI<iU0MT{LAzk+N_}@;jbiDd zB;5ID8ZhK99DS*Jm*5_03>?>CBA=z_0}7Z`1{6Hwe}Eexzf}_K*<VtO=0fn!j~0G6 zKJls>QW`o{rXh0yQ;~wd^x!k}MacUFWx>oL(yUDF%YeNnwNAg$YR^;02l&G9T#20r zVs<u|V6Ycn(q(*Z=JbvVbwC}cLXH6nm--RUglTt`=b`7F3PEd4nUFzQ02Wh?3gn0% zHY`DC)JT5v7^_epdc1O_$Qk&uE4q>yTdfe|fCBQ!M?TK{fZ;$Zs!y_Jw;vvV=o%wx zVvf){SzYV~%@IAh+)dO2u^*XVzi`wZ|I)MsF(}wKuWqTo+gGHjg19FUk4<-!u5y`z z7JM4Quaz*b*q8Uxnu73~dOYJCiO|8%s8qG)Af$_EP#h2BzHUjVECMKj{p`yy#LD?G z+Kes-bW5<O_ZAPTQCS3fevm6sQ}p}cab>@{We3%sec7Aml~sgqe0cbLpM<Lxeisfm zz5K_BAv;DBpcYla<-Y7=$Tvq+C3w+MWV#G@-+v}t$hfsv3i$AQ1O%{#GP$fF5XcQA zQwjGD0wD`>;M1y396YEQB!cP{FX+S%b-#fFb1J=PHJIlP7gq_l*ugte?4?5(qA0H1 zc&}n&i*2QeiLb5Fw}-eLyhkNlo`aXoz<Os;p=26U<0Mootxt=|{F=&#T96q^Ji18+ zWFrgiy$sP_rz<SewP+Ae@@Z{7E;FT1vj8jm7mpU}vut!ILNfR2wpkJJvK+iZCEIle zZ-y^-WkW2qh~+yFg<UtUGzg0Wu?r>27C~~wV7MVX$&apNv<rkXL~9t#6skQE#qtqn zS!nfJ;2rt_n9L3yH}*J?NwST)-Hq%E60&sM;X0SWak~MzWRh<tLsWrOM(!v1^*h?Y zJ@JI-M!eiqKZ6Dhh#5qA(LHf&4>y7rYS0HnM0Ps%^O#y3kU|DzKkms<p^F-n`?-WC z8(Cmv4BfjD9`6RCDw4}7sDU!A!FUut2FFJ53ml@qJz{i2rQmpwADz)}j~*lC6hRd9 zp2SQ$`rL)G8X3p>hYI>{Jhr^$^_pBH36mP*=C3nEd&qvhP9TNB(m1G0iu3sb(D^b@ zaZEqM3!>0TH{&quQXq<4du<E&#lLu|ArNkzF2i=9N(DL7xsJ$AeEx{j>8<{Ajl<W| zn*6N|Z+5txV>p1)nEC6VjI{G*ZuDo82&)}DRRQkpHH5No&WU5XqPP(#wj;OKL<?>e z=W43OZffM3(S{ZD&>lulZ{kKC7ht`1%x}=F`<putxPj!1ELi=|vTB9~@vg`Ma?Uy) zNlhDIEDxi09O<+X6yU~4f$~`~pnF@cpcwi-1gU&+urF=oUFY-FNHxS!&ijJf$tdpY z0(g6<LkW**#?Dcwq${v<a55gbG^Pa}qSQ*)jAQJ>H|a7N=0hG9yceb@mgyM1iV0F! zhvZP0-)%-scDQzU&#gr0J)3+xD%q8h!VvxI!sI+f0mF1I>53b>l}MIRU{9j(Aa(YX z8~yTM_&%c-@<kv;9w9Rg?!keWuG8h0={OGKAd$VoWSDL-7J5L+6viJLwo}|_UL)Q# z&U32=n!C&}D*`L7({VJ0v_IT??1lN1x6(%s3$HQ8*o$u`2Q9^@-d_?uSlv)dJVdd3 zH<Ah>N#esTr#zHqyb<a!GCN0}29hcQDZ^jUGoYpxFBS{HW;D-PzumvnHfpu?qYz*6 z0*UGNI+p`N3iXz(GqvKLi7wLBOyQo(py(Ko1sT3g91^v8Zpm?GEk2|3o{&zumJN+$ z<Jej|cs!a4cdTSs7C{VA?B9)edm@~??wb=g%uI9NA&wbMz{%aONim=<H#TnBmuUkD zREMz=`^mKai~T-1TF=SubYVBP`HsKB$sCU{#{@S&R{zUbH1|vzQ<_VJxWm0Oo{)MT zF^5J0o1sXkm%`#0od&J<>qoP5tO{QryJ=62If{U_-by_3#^sWeQYGAX!p)Z7HAzz# zCVRmxhCJzdf%MAP(P}Km?g><epN|+UYM|H7Lg-iX)0}R5ByOBtlp|U&$>2CWRTzt{ z@kLLK(&PM#@C?>JE}h7BB2SW-Ah}&kjm4x7^xEjNBMbeaZQ-;SNA%dZ2k!~>tgzdi z7-;!TCl+Nq-j8mIXJ`BOd-so%VkUFQ&%+Cd9nEiUuGndoYWUCs&$sHe+-yJP2Ffpo z6W!_Pv3G1S)+;}{{21s0iyr@Zl;uaPP=|L7*qg(hqx%Ecm!Fqi9Y=BeeRg9Q^rl$& zH>e=^P}$=mG+vI22ZhqFQ_<|wZ8+F;utXp3)f!B==^K6-#BX$`7oY=r(fB%jw*A0< zg)+Jk`dz$Q$gV+vXaS_LW^kX@gxx9n`SfRu6i_sjWkGQaxcme~0m%=6E^Irrv%;bM zk5BGDo1TVvdnWv|+#6{Q{OUHngglK}rbjTDNocNx1>Bn)AV*z>#HK^{*Lt#e{^-ki zX&N0!4Dv}~{G0i3#GQ`geE?d*)(azYmYKIhLAX=why!%i`iF?d-P8hS(8(OggONfp z*5ZK(To1FXwwGZPfu_*Sfgplg_%7`(`t6M-4dTRMn8ZE1q6W8uQ&bx9%5Vz5{B2IF zD>H^Jfu_Q|DNNZ6d#1&xBZcW02Q|~`V`cDzt~3s6u_4lR?_!B;xgESVndF@UVHMC> zoDb0L;DiDY!wt0483`gX%G03oL*w6A3mc4!GHr6IjQs8VXdwuU^>>5~kC;`@XCzS= zw2?JaHp3m{puw(YIUPg8S&5K~p>)#}DziMTFFGmeiPrREb(lr~Q4Y_r8}p~{;CB&D z?H#;VlFL&RD;pM4`hZf1k3ng$?Yzj7GvlH)ppoaHdQDvCQ;YS}k#rjKwgQii899~C z*0Fm(su&I$0p-CzMCTqrSNQmJ?|-YuHq)Z;_2!xIh0|_y*-FM7>SNCOTWXvE`_aGW zHpdP=_+t-}smVW@FPL>uh%fmfp9lI+4{>o~e~jbkA*o#&Z`N^R@q2j$as;oK62rti z8z2?9JHl&MNQyK@eDGTqesMF#MRzg++5cvw@M8fc4$b>WPnkh^_2u9XAQhJA%Wfbh zm=WjdF&l&=?q{w)M@_j=b1NC&PD0Kauyu}s;+Lja>$^ANUX~r5_F|B;6~{CRX9a+K z4zU0BABb}Fbbs)vr3H7Z{1Y9nbs<IW)@`E*50Gy*yRiwMh|WK9>LZ&M&6I)N{kFg; zdInNBkY|_h1RmjG7L@HrAJ$_R1h5M$riT>ZGw$?1<DqB0$Rw%(+m1^gz72wH2N$ip zy{ZJCz|AL{vH3Al+`5Nw?};T=WvnKjTW-d_CdI8$f}a?P@LM6VQj$PwiMg2Nd!}D! zl`KOKwUVvcD%krzBpaMU<HuR><R*N=Dw`1yzH}14=t0lL!E>5ER)vk`V_ZLJgpS<~ zQ6Bp0sqxN-I=L*my8KiT{wCnllS%g5q=WgKC(TN1Mi{7i)uEOj`!8Urz-YxJnZ3?h zrgzWCJF=COR&wxOUzbK6+Odst=?^s6Wi5DfnUsaW6x|CKIB;OVQu@Z!bD>e)KNaf? zOkBDF!YgAbJO-plhIo<KeILJ+#U`ytapm&ZtJ&0oM@>Y_b^2mhQcgycn9X4%>WjYy zJK{3m{^tvJV)&O_nN3t{0t5a$^}zuqJN1qMyH;Z*ubY5l=V*?B6v(p@o=GhH*nJJS z!JT)aBOqnkcZ<C5r_54Q_}sVQ@Gr-Pl_-!Fsf~SijP{uz1NXeI0H=K#_I#SncH)MW zEmIjAO2e9C<L{ed8$9AbBdZFdF(c5!tYxUV%mP>)ez%6s>W;sq0ROGOO(#!_#iSN= zC&?U#LsvHYJwP;dwrJzwyqPtISW?|txYH2mb?r0Yc#7Vm?>_(VuN+f)Pi^`shvsz$ zMKkHzamx-*e%#lQ;r$Ag=x9lNa%25eJT=c^JHrhTbRfh=ll5L{U1w>Q=|vu$*jnPx zZg?DoJ7JblT3_gxs04*YCTBf@n3{wCYMHTp1|Ch1g@<^;A0@uXaQbmO;MIXV`1e9T z59_1x2ZES8>91bIvQHhO!=v|^M`51WOTjZ!0)Lg9=&?3tn+-IU-_f-Sj6cmyp!R1l zO^QI}{>gOC7Bl6it9j_@jO7!zg7Vjy#>(u$Q=!UDN!w<lYBm{X)}I}T$T)rRRrH66 zVz&?B=5Vv)Y+RG$ZvA1J0<qZrkPhy+JHes;$9<;aL!QSPbo!X{yzf8yW6oJJGT30i zy|0E1ITiitHPm(`a}JNHe1*{>sj7dAq7H#hW*OZc9ROgCc*e=VaK=#V4QV!iBmjQ5 zc{>;GzUGK{B=j$r5-XV$5866<bt2J6CL?D(xNYqZ=|67WarRwD_;Pls?%IibPk8G= zc5M^=o%*vw((Hn~x)@Dz^De=>^f!<9=gd0Pswn6DzfXg2vJX_xR!kXGQu7cNGua2C zl0i1{dFyZej|({&MNbB%u=@Yecl=3)aF)$Kme%hQ3Pf(|(TvmDCqcM^MJjLIVRy5U zdC14eO&l?IAy@l_TJw%m)H&u+xmQ=oUy6zO4K^iu!9Ha~Qw>s^La?{v;{x?dxRZ0< zQDvnPuPfEko#!vqA?C<iszhUV?|Q*M<Q_GY-*Cx3d4ZeVIoEyaQ~huX{POLulesz% z&o8YDD^qVhwFLwu4QwjuPF`Rk6D1n}#TzQo^leG}WxO<!dJs24zbzS<n}oZMsEs=7 zBqf|lE+1;T5^o-#Z^rCAZ|2~nc1o@5oza!2O2UC^OtlJ@>p3g6vyNJMs?Kv*U$wj& z)%67>dt|R)^>8_HS~}dhFJ}2}Lp)E(+iWrZl_d51Eu8E<t-B5}0ZqcSKbRl9)SZig zkKzY~uAQGe8aA*^^sTns!7#;L{vV|cz(=!em&7F%jVGD8>eagz)!NsuR;Wr0&?k>+ zU!|ZT&QGT-2=mj5P~J&ObC}{}r45X?vTfLam;b@8DKUjC`nZ^glI$C?J!=1`Lt{vL zm-u(WX!`j+I(z^tF0`Q7Dej<{iOP=`&ioW0LM(YxB&>7|`%+GAmoP&qUB2R*MNq8D z5sh%CN0815Rf7u&pPz_PHSD(|4h8w+)Q%TxY{7+VUyWULLKw$1`D9OfJ>GQ%$6YMY zz4u$Exoy}=_h#2SonW+zL;#5zb>_2`4CoHhTCZ*3mDNS0e}jKGviVnf7}A*La#{=L z<y@j1W9CzglDHP{lNkR?Q*}?sJS?fB2D2zABvYJr(7|9i&inp!z4uG?q$SR(eFMgn z<2Y8_PvMgf-!9iL7r?3^4^Mv#F4h`r!R#j-5xNI{g!tzyktKBZpbwo&jx}96jJEVS z>`<h=9fzzg!D%}HEr=9C0Xgk)XI;>RSkHzg{B^H|rj&3(E&l!GHfP-jxYzF1|I*qJ ze@_6;yG6bX+Ux&N+EQ3jWrV59m5AotpZ)T?AX=_a6Z+l-qRujBP~O|<S<!Vw{-(f( z!`(AK<&#mrCT6t9s9c6<{&%C5{oSU}$HL1^T=0V6gjk7?C#TI3WxXe~_^nWHk;B}} z+;?L_>Y43Y>1n5`z#?&-;;?&VrHdIzb23O!&WyQLeNlM(>4pb^CBhKN|1-wuL%2`y zi-h8PiXCfSKlscR^;F~cO9mP@GJXvEmKBXDFSs5h#CFiAxe5iXy^wpT!|(3AO$O?Y zdDc0}lN5?@4TF2!AU3zeTWJC|7_ekzr(5U>QmKsyv<Lv#wOezfdN{dDlximq%YS&& zwW~?BPgbS?#Yv&VuN*Zzm!iUYZ66X)u}C=I3-dKVJ<syWaA>pXSFMA;6@K<n94Gri zZH7=5YD2|Zu6E{&Yh0TZiDcK6JZR3a1;K`im5of!E*C<U5|>TCr#K8hfu;u|1v2bh z?Gy8(>Z3?}(xCo{MTz8^vmHiPpV)4;oy-0k9YAQ*g%&YE5>T!ZaBYZW%rDXR`Wq0e zqR}&y(U69%2MIrY(~4^6k<{X`vPT1@%%|I^2hu?-VbWFb_u@rybBwC+h`+dJh9S#{ z$CEj8)heyLRlkPT01qB(th-9rO_JCn=hEHQPmW>P#xvDPjuIbWrQ*?t;0q_EhQAe! z;zVz#{ytsdA}%tj8YZN!XgkmLslIZ)@T8{Ag7#>p%MkF$C58kXA;ZQxF7g*IY4%am zrAp?KjE`n~Op7zR<uk#nG-MMD?GdgW>?mQgqTU9-BIj<Sz7or+t4_Z;`|^hXQ<vh$ zWZ6xyDIkm`G8=1)$kG-gyh>fX!^cMGqoP)fV5aI*W2{tp@kbh8K+mWU`6^$`BIXFp z&g+e-Y(qOUuC!p9NdBdx{=9^}MLl!m44C|}+u`yFW|GPXUGKkZlU?myH<L~C?b6G4 zLqvH+6&bqW-xKsQo@!ko&>K+ds;8Z{=7dktnAYy8`F7l1@%)c_w3OtfJ&pQ=<1!f0 zqw@%-etY3~HbeDqh=fN!UHIT`uOKD3!F3EIQXsaHB{LT?wRu@RVuPsqo4O8v>JitL zvJN4y&F4Ff%?WcSbW=-jOn(e83cQy}A=PA=3L4$HH~CzwBPOci(`8!on|}rwk9B7^ zO78TWLB-_dqz{6~UO<(R;mHM8Y1t-D=7Hh`WRuQ^f17t6@%jG@X^@`t0?S`ON=J5; zpz1u>o*<F8-$AHXIRdM;^;Aotheo+3&2z#>r*5XBUxrEc<()d#-LGM{_q1>GJi4QM zKu3kfh6js_gzb6_9@~5NX!C;N_wFZl{Jpfd@39i<{Rt9j;G)vzMRk+APd&1Y%L>y0 zagYi&rx*jf)cjHZ=-p@GeB;W;-^5{QS^%PrSwuzC@a((KcTw7!1*+aB%LwV-Lhm*E zrjs#N-|voQ^G!Gq{kW*GdIuODUZu{iv^Tl;@@zJ)QB^<w_Rg>oXo#rMs9_ITKK`nX zkGtxi|Ha$<ZBd~(9{N5j+Na~*L`$}5bF}Sjw^F;q7{A=K<><|?Vc+k)LAs^g6z+gV zNZy|sv@>fjO~Qr<W>JkE2bgu*J`mLHd2^253RZ5mUP*Ae|9<wznQIsReLGzG=P8X0 z+>_+++5wg4Zp#Z`_)#DkGKl=_fiGv3d`^=LCY_{hP-g!*2{hgZ1s@^YL$@Zh<2byJ z*%tdvygxf273QS`jSE5R*p8_VqqmdMl0qGE+@OY6!BR*%g8F>}l^*&r8@EYmE<(d4 z90y~I4FH|&joL?&p8~&{k220mY3SiWq_xAtf*r~2Mq@@+=Up|VytZJNxBeRjLUsQ& zeCl1?uPvb|1hTqW-z2^C*{$^6_!IpyUD4Q<h+sb9?aPMGz0IM^$JU~U4)tu^{~o5r z6#%F=y<{$2P^V4=b(~R0MyCX-pEA;1+cS-D2y3^fH`?P>JSSLcdR5p?mqYF-d{%M< z82_hB=iZz8)AAd#6h;)FeE(AD&U)*+%T`ob^WKEO-o5AR0iRBUeEU{8{z!d;8T|J& zQ2gt`8ta>!=0oR@vqLC^G7$MD<WsrNsjh>p6-lD&wlG!U&xUd<@{wTyK=a5BXEYdn zIk;!_Z9>MzB^Hu3cO|5n20)A`bE%fLkp<JI*Xdvs9z3K#N&FDZt9f6~=5Jj5Z?F50 zu;RI}cfn+3yK<6-OdWv#@cR_zwU_;_vjM<I0T2tiU=Hs_mvUs!hmgOuf5ip<g;647 zI82!jR0`&U3Z1a@Qa-p*7T_x7x^tX4(!eq%cuF}EM+pv{p>%VQj`b*yIYui_auBw9 znWFkUA_OHDDMMrNFaVsRB8!zRAuTHA=88u;1CeXR1N{hWaDmK}cfH~)R>>##Ph@0d zKaVm(k(6?r@P-3RJnO>n&wImQEprl7B#Spu6ViwUfcd~gMPNEaDYii)d47Ko7Qjb_ z^k4LW=0MbTr|?{0D5zJTE-JN0x&bDZFn54GC;Pkj`+=EYo|1-vjJ#4M<~po{J{K&5 zRo8(jm(4?lu$l&{CfV|Qj2;NG>y%&&ND?swpb!1c-t0uANWy|yf~pQxg{dCY3(=y1 zEdX!{K?*s5_Tw#;!$#smEvkuV8}9#_L)0u-$C5NcL6SyXklJn!dlqd;w^wSkH<&@| zaX~_O#1{%C?h;XM7EE3=*NC!1=NiSr(3nOirA32bn7#@TjjI9cfx3!e7%zKmCH(I5 z*v)cQ_Ogdys9dlO{!K85Y&YhlvS?SqRL3+9({d#B05Ap*!O=}mFeR?nhloY9(qcSS zV#u=t76x>%0$>_W7X<g&KaAE83&UFh=%INRE1J88Dq$;%ME+nCJJA0$iZoWgP(|_u z^YMV+0h3krh*dev->^t1{=agjWJ!>-h5eE+)e+QMrR6f*Kljn6g!yygW1v^>uS~d> z1{7_h5vdjGY;iG9fv9mZh@wGUh^+GRo89Q0n-H4~Ma_$s^gY^}3p8GG4gymqYm842 zH5N4hHEvdtqNGy4YDJY#hVq3ZjU<sMPn^=xI@Zs-8q5@pXrU`%G=j|uc6bT+M3w9= zXQC1*#64C$7B3>eZ&N2&Tm-lgky9GMF?FFO;OCj-lRqw>n!VDvVIO7e2<lYP-f0Rg zhtd*i)N!%SDbbOC8@>FLBX_PC@`o48iI|}IYqnS7jtv2eZ?9FwcG%WAp)|hptDxy} zx#@#2eVvPJOe6`@)B>fkRQi>GdTJyJ(1KraLLH3GIOvIq!*qs6qoPSQACjv{l*xlJ z-wvjK8Bi(+j~?GWvzB(*!APc-HWXZXOzDKgr+;lMamTpeWtESngBkOhRTc4<>Sce! zVxmqgQ_bZ0{>*b`*XSk81mynU9Sz5T{;-e_aO1%<30I*5YTC5ej1s~zszmNt$M`%X zYfCuZxgajGOe>Tf`S>5Q+@onbY-vk9w+VTnFaUbi*s(z=F0ymsmc^G4iNO=?q)R^V zMl+T0n4E$N%<dH*SBZ;`(F*&AJnM3hAcOsB|EZ#mWW(2Xrd?U8y2fuexN*sO9^y8k zRHOm))T43qE;G8g2Dgivd?TxRtRKdO1od{k4PJU06P<R*6LV-4F|dZ<-aJ4+`@O3# zW}Xw^O2oXkIIC3ngSmb{OH2R&={Yv6_TDz5@9qWmhUk{7^#2<8q-4`fbcuQ9oUj4Y z2+#f6Ehk`LoET|?@1p0ZB`@BR%LQ>4-CPd6-&lGayYM*o{nZjGG^affu)w27)F|O~ zjg+wcyzshMf&O;AXC8^+%=d?LWwiQr8&;dd+us13MI{Rmt6H%|0x$Wk*QF$Q>6Z=x zrMurq{(=sywPd%7Q|_p^`F8W|bmrA4vD~+r#3v7H^R|>QHvA?ZPV>;_LiCBx2l-KH z=-mIFYXWe*iWF6&NC`S3%q_>#(9=O099@D;-RW4;-P^EupXUAS`fY7hWw#pEpz8OT z%fB}`^K^KAEJ^NRvy)pBNU!Exaw37dG}Azev`S|A8H8tikOi+^P$AZ6;ID|Utb!BX zr-#&v<W4F<UmAQ1WY6`yI}o{i)63}E$2$G(fLj%pgQ<&A3+T|^{ncKP&_m8VrF&9q z_p1BjhUKqULzNq4A#vCoq>gst+K=1wVYgS_2s?h03Z@`wIXbY#I+o@ao&8fSVcaG4 zS6`QJU+yXIzoG&S1LMC3Fgrcg>}y(lcse>~!#!<`V0>ND!uBneSZf&kBJ2dwrX)Gz z_Pl_EBNeJlr2PK$LGkbfiNVTPQd}ME?0oZQ_hv@OEz$qhOAbr}TdkiSBn8COd{rXq z#lkS--$K6GqlvKuqy38pS`88r+uOurIjvqYb)`R`-|w;DuURrnYxaKCX`A}UL!lp( z>S7$Pe^&W&BqZFqU-kM@%6@Xx`&^^ucLUR~HB+iouJLcJo$HqrF24O<0Tuko?ELX9 z>qmX-j}3(Y`=8)8^@!B7=p_JW|2w=`Tz8;#RVNb9)&$e$2R}_$?bYTfTpwI`^Ls6! znkA#r7CcfbbcZGLrPV317Ep#Jeo;UB<-A(%rSIvjd|1cA&kE+bzBPM{7Um*LEp~}n zus4j_7(93TAW5b^T;gUncKPCo1|jp*{cbJ684-ff##UFpm+al2p#w--7(1(V_^>1A zB$Aj4I>7oxNwK}!f9niJKbBP!ZC)iyKQS)8eqF|O^HBC?9>LhzQRf|L3%s64Na<kf zq&X`b^~_K%pI0z>7F%H)no|ciea6z1qY<5`Y18V=b5;p9UjjF>)2g4Yf0$VJoo)^0 zElb}p@%*`UP8J(2M1znw>@%XUfl%8E#0A;-2(ogt0<A6TmNQpF`bo6<`Tqav2Kv?0 zhE?ipq)Qx>nWL}-0xH(CF<9{UCs?$JbH<k6A%4vM5d-Jwv{11x6F`G_$bzdT(d`1Y zf9+|?g7(@7+Hnt+v_ZJ#sd+o<>l8Ze`gP>(pTj(g>oI3s9kT#zCp`!fiofiCr2K4} zVqRBpnpp@=@8hfO#ui-Axl}?yI>f&-E)W{>WP`#<CSk5F%!iH&tjFK4$uCO_Gk>oZ z+wmdSERx&#<d>-$a!aWN)-jXn%v_;Hd77s$RO(oneV)NZDwwMHnmGskV8(#^u<>@K z&_55m<OAImn@9l{Sn9`81AyZRhwnH~9X+%Qx5&g~N8FJ7cE_h8JyEkiQJ3X-0h)ZC znf$X~r9I)ue`X1fSl{(&)St(xo*AD%b{*l13ZzO7I{laKDQ3Li!er;#k@WN3)clK; z>V9-cXp@e#sl%sc`*XoGCw8C?H@Z4(&|5DjS##v2v7Y>Vu-MJE64uE_u*4HTrVFqC z3`-{kr8{Rd>{Z@$?C5gpPTxWcl<v!ne~}*eo;By(VQk)wkj~AXQD2d(6H?Vm+e5NR zz2h7-?{u-dX7pFiF9ofvJ6@bNXKLK~5d%C(i{}119$bkzsSDFWE$u7Kk(4qcpbm@v z><;NX9z6ZggGwq^-GLk6)z4rD_~Co3mF<;d@umGLlHFy30_Ar$DE*n+D@SztjsypR zKqJ4KrSFA>p4cyH1qn@mmU+yR(tSet4xfF^%qOpNdGZJF1_K<neEsrwGxg}+TBrM+ zkNg+XH_tq>Y;eRZ=?v7}J8?=-!-hK0+j2w<sYNg`Z@o&oto}RZN>;nPp^e;N<>~sY zVrU|`-PFmrr<54!XxXl661jN0{Q~r?ok?*2r8|OuD9zVncqd4H5#c&4$%mVHXEIAm zGk2HwNvX9hmqRuGS%e#RS)QkML^A($UbGqh`Vy@GJW~dAa()II-szWi)CV^`R9~td zu%aeJJnOL5ZvIo4+g{GXHC`b-+j}CQM%jDMz;vw%S>Dm`{ryOy!K(NC<ivfaP>|jH zrEL1rA67!hMXPH9HaVg_6&JHYf*PJ`@}aA;HW3y*5W%i%uZ^5z`ap@)e+J+`m3y)X zZVKOL)*fEU;$9no+`8*TZn%)eJZF4z*!<zbTCt1@{z|>}fgjLSbvte57qFXu)81Uc zv-*J0?vd9}@^gRCYiC@PB?jZJui469*<B6*UrGHXlTC(lcC>}@(pl`Mh45oH?rHy_ zU@|gDV)}p<SBVDJTDPZW{<aQ(vG?truD2#B*P397#{9q<<;n%vw0!dF9vDvq|CvrG zIbJ;*Ve>(ixB#QQcpghG&H0Hv6@Uw084XH34_mi;$X}zvf>l5`0Ph9rJopsYMQM$& zT}6?PS*~JAs3M9z3FfC@KosL|a6mAanjE|GWxeECL3D{9^)62hu+xzhm}gU-qVWMi zDnepxHRZD~Ig8*D+5)&FutrT?XK(y#jVemTq84C307KRg!{A!;z|9DACAanRNJd3q zL&)h24F1VE&BBsUoelePU5EE7%_T2=W-A0`#qbuBk?0!%Bo&*`w*1Gs;y+88C61g6 z&=E(JrZ2l-<{{68?2kaVs&JoM0b{CZmc-3T4F!3xx36R9_Do^phmLX19~o?pLhNRi z5tk0l0kx9YJY6!g+_hAqMKU2?_s}IxyD5tk=bIytYE=Gz%XH|@nM>mhsjG&g#+%Mu zri_fXPD_w#VSXtX<9Y`sdb&XEg%OlO`=a2(dCcIbex<==F^3EQ+_zO6_|m;^YGTeM zh<ZT_RFQefZ#nVaX(<#&a?$JA&>eAcA8s4F*(<*N)5G=^Oq~lv9X}tZcIX@%I<_`2 z8ndWHbuI7QF9zZ%RHxjT&3*=NfPsojET5_P7~k6iBJaJ2-anq${qpY~zcG7+{`i=K zxVzs=l5EoWODAlh->dDNZXYgmY?lazc>aF5SKHDDC=(F>t#jq$b*L%!`7Fu^Sf!-) zy{eF!+N&z=q_=Sc@9}rfom)x{+xHFkEua8FYA4_4>!6#*0-JW8f^2+SQNjLlI#^tV zrl}G+BJON0`%a=>L;cb>T~krQZJf=vny_cenreVa^u#}%(g}m-o!B%`>qNb(=&SSC zY|8{Uk9Pcapot2IQ-YHhRl!)n)vL#MgE3zOEfiX=PA#0X7YSZ0egYXlM2ixDkXOxA zG8ag^;jdl#PDKTy?j!m;!Ea!2x+@Tfn$!~$%vF6suQM5Dg8U&y9MkfY6|cbd7BAj` zDV*;2&&%1ldvD(T!g7Ag5YxN5BmfP_KW&_U2p?Hu96Wy$B*p=|Cl?ZppQ=Aee-(PO zdHnOrRbu4S-01qQ6!%Yd?oVA;k3AQtdUkv<t`q<Z5J+_|0R%8BEUk-Z`lMd1uWt7H z3B8eL_pQ;iW|yo@%oFF9nIG?ujE4Q3$y}TH`5|kRc}}OMbv|Vs|0{G!x5dKF%IgO{ z#KhIuP`}9bYEe>3?N6=QUw=vr3q>Cxz3g0=YMN(Gd^d$Go?gDcryr?VtvULN8X;L; zyFF?pTHSdO1Ze#wYo9u|0QpnGLg@lv`sZS0<=a1HfdE6Ds@5_<1ul6+aS@pLJUvg7 zCWxOcVyffj5Z;vpbW0KIT%WH?l(hJ6j9KEXXw(a!wX2hI#X9@5PxhAiV<~|?Ljk-( z%)Mxg(6NK04~OO?>t#sV9>vtt{+;}JbXz4!11YjQXJ?gmxOuvMpgaKc<_Vw%nD!Z{ z&NguB@%C!@#UF9ttHi%wP|Ai64GRJ}1le@>zyxBiy?F0MX3><Qb|&deVcMc9R@T|s zqoky~Q!Re}Hq>3fI8^ZqXQ)$>W@6m0_BIuT!Ci9(9rG?Fa6t;xo}-G))|a-uA!C|1 zrkH*budo5+j}mfZ2@M;3Y3Ht6ChDm30fW-2=V?nO^|J2qA_)v|>inQfei7J$gK&ep z5y9(&61R0|8*LvWz^%ja!&j;YLqA#1$$DnKD6QM>)LgrsSpsEuL@$OGS$oQuI`(N^ zgjBz?eaX0TNTtlbUO0W3?|_x_&i6ox?P?%FMj`0r>qlceC{xaUKl(K+XpKOaC&{q- zCCr9~P^i_)xc7$H*i+VI+V$D}NVRY6s-LZeCCwh}^}nh(j*aOT@8at7%EMwUcXs1) z1VL2Cb@kutaEILizN|bJ!q`H{X@bHgoL-^iRxRa5+H3Q5;w5{<FKbJ**V;7u<HWWc zpMCb;DO#pi>M;qyqxbIBW~9sATlnH*9c5QXBP!31<(hSaM2>Vb1I+#<$gXP&+pXJ+ zHsH0)E#AMi<=pO=!5>OGY<)c;!&LL$Q3ln=(Autu{Nsk}O@W(kpczx1sIbd(Fku^* zSzZO**{D6-ILsNhTz;V*{ycYQsD5@i;JBYkeNNyr`aV<k&z?QuU$R_ZiXUmUP~56L zQurZH{8sLPv@x#)^vU10H5B{)*Z<Jub((<XvIAA&MSP~{u%M1t_wyB7{(x4Qm4H0; z=daP3@65d8f&!N(?N1VB*BoP9Q0{qU-M*ZhDoq^$i8q#`^t$w$rA{c#PidW(7V-k4 z73^$eeh%^!x38&QU#_XkKplVax$bc7YPx1&i{<mL%Qaamt5x>bdh6OcuW;6K6S9!A zA_LtQ-mMlM?{VSOf#uQ!QOHkQvWp8jR3A^!N=*QLk5u|j|Gpy|N2z~5%Zsl2+^M%d zoUz^bMiSvT@=&~B-D>{e#Xr-G``B9AV|kv~-w%8Ci9~EL*FRv8xjnst7F>JOG(Poa zT9ioKn7wGz7(BN>^vmi7QF)RFk>8;R7kFjI6O|R6dhC%FL%p)|Ko-A5Vc(7+Rg<KU zMqy}?_epqngGAetelO#NPw)ilXu^EnUq7%!j_8g|pX3x*Fq!v{hX*MVP-*AHN6x;c zU?4{iqr42ErUsuIJbsg-*QX0@UkHEvvci*T5DoHzJ!}vU*OwqiiX<D(+KFgPaW}(n z3fSo{1#s41Fobu(n;?qF*eLaj9YjJvbmk=QsMXomf8CcG&aQKxi=H%sofXk|#e=^T z7WfNjOyd`&2*S6EAhL8d1v*Ui>`$VR$eoq-430HsZeo^W8!#s9+k)*E`55D++f?-0 zpm*C#MA(mjBJ0mn@TjP>>ywWWGev?q@mP^jK|6@>E3uhyK1E0|iYk@_2t>HUPEb&( zMX$e&Vio8gf{fM`8iZ`mp`>o{WIWKnT4#A)BI$d_`C{n%3qmeQFr5wSAL~+KDOh3~ zFELplVnvkeC400OOE#Jxqy1qQ*~C!x1X2WEjiI|#{tbbp%2(Dcl3=^}KLQ&9X`I;r zik$0B5kn)v%V*Kl!-Z<^@QVV);`&9Xck5D*lB7Wr<1d7_?k&JvgeBiI#HT6P8J=+R znt+V4$_)Oc92g~2FP<Q(Dt#DM*)}fJuK1ZVzq~RL^c-syxhEJe%*RM9Q$D45tc*v? zCE@vhX$sq`x?FEvHv<{n6s%1z(oz^JtD+o_dCC7_grq9fi;5f;FpiQ+=S@k01@%2) z4aKPby)dCo*f>XY(s0wFa9gfVau%ba>IqXT!T#KfnUEOMxixNNXjQTo#;4f{mArOo zx1Qt*!Nh0c03F$Rod}M0M4>=Kn>aTG{u&~2QcUTw&vy%b*pU)MSCpcyCtn6E<Ldq= zcXL~cN<f_~nkM&(VcW2AV(Z2YlHArk^7BfJV!<CTwY#D=T8`+)`;HM!V0zz8%!)Ra z7k)%Nx85}V0^Y0R(qZhJqvVTG?b+0j&k+t!GV5K?`PYtZ*;MeKmw4JI_@K??@S47K zl-L^)LARq=3#^PH*aR_Z<%|{HDzUm~!cVfH&i$w~)`{sbTX{XEwD)zxW66_ZZ<ZhL z_2n5{Qnk3$qB`TD-gLyudG1FFpwT2@^$4Q1ZK6t?o2Zo3_#(0Kkg&b!p)TcV`f@{2 zo`7_@xg#?Vw`|91nZRUTV^!(}BHEOkqr~@=+2yU;9oZUPZ5`h<vI;5{`>N`|GPbJe zpehLCU}xK~$)%R|a}&2qvCHCw2MgkP<Jja|PF*SvPUqC%FTRhLqE6#rZiYnBGOUy* zLbmU#PucF9Y;7_>;d2C=jf2g1Vq^E}uWUIUP4nC?m>CxLd=$0*_oiL4C*D=nEl*P8 zv<Yksr#hc1EF0xysSh~k7~dDQP3C)21zM7P4|^hq8omtUbb3}W=H>5t+OYzAH^w@= zrN_y#4FuOh0hjW3C%t&n9pk7n>{Q1%kdFOQ>PbhBCf{-~T@Vj{PW<oa#KUO6^WM5r zT^_PIBH`{P(hbU*XbrRV@2{dIXV#rfzyf-QT}}EF5AXH$>B9ak^Oh&LKYpc5jSv<O z{I2XA6=-=g@PM}`!!%;9S@fisk1K<CKm>~D8qe;q7Tea{EdFLp2r=ovs+q#HOjR9I zaifg=!DC*xe2pKBg=MCjIFzG+fH2Q-f9VEiOEVa6+wh~Q>ar>9+jii#Y3xj*xqSyN zd367WOJ3)@Y$H{a>(j9^6|ec!tL3PIa;LV5?~R?-Tq8lbcI*dUeEl)K58Q}LDw^h# z-y0_5F9jr^*F&Fojt8Mh^5B4(<U?I%35HubH&U@7KMp+ijhzd4zSA*2$+5oI>97L9 z@2Mc$8hZQB2m7nU`BLI6aj?IoYKcJnYlxrsZJSo#UFWI8Pou>0aACpJ@-X>6!QOV< zc!2u5Nk?b1WYYPOY(JP)y>(og-HOA(2Md(i^lyGD26+{Urhe)GF8)$9X+O@UIY51L zZ{W|(XonxE(YtepyP0C9v$U1=X?tSYEX~RM#3MJa`wMD;qWg?d(fb~!=Sv=QjuL5_ zz{=baf9tgf-?SO)h|LV7@}vFxBzu0E^c=&!@{ina3Y$#BzDOcCUpji>PIRP7jC$Y+ zn9Q@&W?vH8aPYLn^~dJNZ)aTUI~Z+#Qa;B~KG2dRa@-ZN=0g!w1PjLT7{O?b6M^cB zzUtFFMm#`VkdEm+7FI7U?7DK$eonxvGQl}A)Amhf`5Qs)RNAQ>>Tt~K@W>pc<L3>^ zyVCzm;{9pa^5B!lpJS6vV2yZ?rM(S9oZ;+%GA@H9R-$M=^hY^L1LX&5)0E}wt-bxD z^WLyl-e7G&LXn(2>!ap@6y?j3_UYXR1tl}6-RCZRi@gs?k=|iHiV~?=L7W7N&%OD6 zRk-*fCdxU|yJ`nURp)nOi(Y5@TFATWyG%UJzqO8-<%n0FQ?M_?Ht`T*mc@t8ev+^( zzlc9;EopgxBK(^pItB=a`@r-{Q=K};m!*#$p7`DXh!EcjrlwfmFv<HDsP1(XbzuA5 zUyJI}k<ud_)|4N1?SUpk6T+@{EzSq2uO3TLG@aKI{SOsrOARQ4#q*9Dk1K0dxy^XN zM0Ttvx>>JLC#2^QFP{q@!RUV~JGakVr=>*k@?FlE0!K|lE1&23+YI{Cs0+a<$JH%U z^vl$ic_{Z%$2JSASG*;a7q5*gqCZvP{_~JU9B!Pm+#pnB4^$8?bE7QX1=q`{Pcy0_ zqoiK0WDB3Tl1WWW=HD{4nx~n3SG}P8J4XHYDMdoc{VB~XjDtU3z%H3&Ze?X)FKA>X zSW)fn`QxB$j<7-1`Xt~Pm{I6-yU@RHH$z$0vQW?f7w(#r^v2{|SD$1fPk_6flWBD; zGttkr)w<aNw)N(;O|PgNsAb`?qzp)88IWKG*%Cn#OV)sh!kp^^!?r&d^R>sHw@!4V zyA|BOWK&qtLCWepG92=`(|Xw-CU>DT_<q+%XA!Trf+glUW0>3KZ@SJOG?g@`zJK^5 zP6mrO(Skp*UMSj(;WO@8KXA@LZV~{CrzI^c3!|t7y<WTs!bb`N+ImkNw~oz%VzaMS z#i|2i`zIST9MoWWJJ%ll^rMROUDnEv+RAy7(x-#z@zRSFz0SE1GmQA=sN4GS;R*!R zlCu}*K=sM%-R|Nb{}v~(i5XNO&)F=m>j2Fns@Hk$($0H3W30-&O0WUD$KS^38S|LI zXKo=I*Q%N2h&cXNE9>;>j=E5@5k^F;jaTRu^%Moq3i7@aHdSuwDsBlwzfdRzE+E47 ztwf+Icz_TW#JzxO(0H1D<&dMRb<dLZdgD{Xfpk9jiE}+ti~~sVsC}Ono{7#s8OU`V z>Ul}kOi1BtAO9BGDfh%C#>RWN9|Xqw;_Zj_z+QszFa7)WADe#Z{@~bB&2bIePMrrf z%{JbD3H|D@agwbnKGGs2^p-tVOolyR3=$KneSis@_?i1k@X~M<)EhHcfXkiiQn^3~ zyQ4n`l8FU=6Z>~}oIv=G!2w^9G8j+=_qBf?q9tnNt?I<_gA?{QCY~<50_7njXrP_Y zI0Xzy0W+1QqS7+$U1O^gdT{oSo6)Aq@ZKiGX@TC4(ZIU~eRwvOtztM*d;c#23p}Vd zuGcoQTc`y-$o3(b6wq|&?g;aWU{nhSA;+~)pdnKfw5cWY@jx#K#oHCSfq*)9u_%CV z@lXY%^(rza1NTrnXXeZg-l-PeK_qwi7GC5VE%V#Jd3-jgl8YR=pOrHkX*>s#-~dos zveY!Pk^|C;LR`f#^ybdYKEdyHtIlML$|<GQa6w`KNRET}G4s)MHo(|^6@drf7|<~# zH){2K{0}auB?@sJ^Ts*SOpdbZ#9wjEZVX)l0+5@Q8j@;{01+Cfg3>#xv@)Tza)y7Z zp>MGY^N0a<54Y9FlP0_Rkhu%*Od3|I1m9J0R-7I!!v?=F>ari^h*lFE^z4%h7C=jX ze%9i@NmCG48$U#X{rdmCz#sUa&Z6+C8g@+)y49@n-MU9C2pen8_C`>CZbKik=29G# zvugy5^gCeL5^pdFMu{k3MJV-F`Kl-Rx>lbs<Bzajj=4Zi*=`rgIT%DUs_$bV?9qBd zYJdX(zHXz?O;G{PG***Cmlsv8YCv#iLutijl7)JZMihLR<_Hc9SJ}1icH))f2ZaCL z(#AxBeJX_95;sdx7r}DEi+`))pE~6VCTKi3ZF*y}xk{mx$kqJlQXv`EH0?mEr`5Tm zer#3I=Jq#pa&&}f5?aB9kq9%)4a~JbCKM_XzN`Kmc9WGg!<0MEfiKcgQd6fbJC>f; zSZDEttU8xpHo9K0E0m+AKV^FQ-hbGgr^k5%T~SG_-Hh$y7j<U+;S1Yzr_A{ciR?Q& zjpICkSE(i4Kfd|Q?Z{Jsl<YPu8kAFzAS6a!@9zn!GU)mHy2r86PSiL;OGh2EriZpT zIaOIdpd*(l2~{smpR>hHX2Gk{Uq<Tbr$pG_+gm1?mRcCQA6!Lkyexj)a4&Z{+A#e| zjsK+soA`W<I=0GbmD3gZCq8I9deH@tMG}%R!B{MyYX==B3dMb#CHVb~xj+ZF<l%^I z^=&+XrH!9F3)yIUN8CfKC`yacUW`l)&ql;nMxAwzt*Z6EcB!g1-l-B27}`r@bk^s; zCy9c&b=4<UpHdHAY`hDnfn2{u!j5Gt{gzi=ldXQmN3*eF9D-|4zecbEx-kswUUK=P ztCulTtvEp)woJ%uLNyj|*s38pAe0fBuy6i~H@c$#dJz>elZkN<2vu9if=iXD26sfA z_B|l?92UYtdf?)71RS%xv*EHuKrRAi^giyH?6ol}<g)*1{c2P&0n-f#S&!Y(6Q@KI zd?aF?65(;^#G?(@&oq|E!G64sgrb}#Z%Mzr(;Q=`eO0$XWS`KHehJT$=<4r2p|=PQ ziU&75kJq^z8B#fSvieeJNrCY}&bK22N_zLF+X)5XsCeLfP86ve7fwteh^~WNGy<kA zflLTB{@@#sd(Ttm-I<4-k`DVfklY9RHb8unXBw)|O$Ry-WHz;h5IgoZY)_{)LD1$D zth!!;sZQ`mS#uMFzn>oi+?nOh=y&tK#4xdkTxoA9=6YV3HjNaLhVGxN3!bas)+Zh5 zs{P*%-ab{fyK$D9A$<?#E&@O@Y2ab>B$&F6vmd^0i}8+!@PPP6dF|D>HiWvBHVr@9 z#XBIGoFU0B_4y3;2fzot+QMzbS~?G1)^Zrzvq*f4H1;|v=~ya3erC8<uf*MRSXaE~ zuoY;z2)13|1@c($6-1j4y!-6HiLOiikN=-27x>*6t?latT0|*;-x09~B{>jfs!W^b zHQ^l8-~5qmV|0RW%yD>pE&fY8|E7%%H1&zqI|2?a%QQ{FRB651qQyKIF-p;u&=U&K zxU;w0|0zZLvo~Q^W7`f&a#1S7d_<<+&{J3U5gbBZ@FF97#B+_2@$!HGk2$$gfBd<G zkNwrO_8iOzq9LdppE};3$2~_q1KyB6K|FdtzE~stD*>ae7H4{KOta8=4)Y&R>e@a+ z5*9>>_Q@D<X!i3=zK~z`E8O`0E9@9MOm66d42^qLyVwVL%@?*0G3<4E6PNZSqImjv zjY{S#dlQArx)Itn1?r1Qtxz5;!uYPMIPp-R(c)xW;9w4|!3B~5zmQ5L7x_)BYQ{N} zA>S%dnkUtOC-+@+JA5AVn-{f?L7%?-$vY+ugnriXOUbbe)b2HZ$jlG+CaWN#^hG6N zQY9>(9y;AQlGAwl95{dfMCzrY!%Def|4#ZoOO&QDb<*mE4rrllOO?|_`XvOy4%km+ zmMi$DVs1$;x{8?4zFzL9N{Cv~u(z7T!jcDy=a0N1SyeyD)`<begktyx*Tpg?Q?J;p z#KX`Q?PtNf3tZ6k+Lq6+8+FhokMx#&{>vNB+xcD`RKMWmJMSLz+*n=i@vzc$?(>^5 z^T+^<PC!F-Sz^=y>fgVfn)^D7j;CrQK~KRQON}l4&Kg`c6xT8KrTVJHl|&`NeqAOB z{}H<pdo~Bz9v86sTXKkBTZWpHxQ5q@WZA-h=+Lf$^}Vab$`e?Z_f^$~BM8d!9-k{j zohRH8o8}#M>9;#?>Q@!WwMPu5SzO+FT6;bIJ@1E~qdID}Kj=b<iXsPjVIpESJm-HX zI`4R>{|AnL?i}upI1bt4tg}Zp>6|mp-YaA!3E5e>!_l3Qy)v?rSxAMbv&u?jj|$mT z_^MR8et!Rb{{8&(emvf<_w)69IVHC2h%fp#-kbQ1eCnP|(0$BF4s_VopCuXQ0#07o zrV{p(<b2`Pz76bbEbmg?Y$r_Vo<05EyGIY;z`0;q;ObefAEzc2J1~+I8Oe6!qNbU) zY%Gez+FuV;)n1CZf7#~!<X8BBL9XhfJC~T(j<qUF?YIpF8;X=qI2|<_j=3ZC_lsq$ z5(W;Em5O``>KFL_z&g)MIh=B@kXV?+Y+gKYeAFH@SU5p5dgL3^`p`9%bLp(~W%npF z|6z`0y)>l95kxOkdKL=G3WFFixzUnQ`3t{l;=U%g+>}0MZ|w6UKwpvr)ua(50Vs&2 z1sjHENPQ)O1Mayf>IuKtBq=%z+nD8+^U5wZ>7WUHtkzi`Ki|k7%@%RkPAW=)>um+n zVx~>p$N{kTmvfv|Zw>Xz$spUXHaC*ZsreDXKNyKFOIl_YAMJZXbr5Plv)(KgD_Bg9 zJ#@c<dx5uh+^Mb3;*{KgC-@8(gQy!Ok~QP3m6q9>iyuGEr@X&r2Tecn-cR&1T_gst zx^WOzK4pK=i&=7^5?OD%H`)CZ&rmxK5&r8z$||7=`&+<jnW}aQ!xtqDkAFTAVmZu{ zTYm=*`92`bxL@^h=DE>b4d3~2m&|`D=Gk1Gg;B1eF_JZa)`NFfKHSSH=8P>%{ixJ* z9lFt2S1SIVCOks0k@|cJnG|YPe9Lwe8vO5o@HXgmL+5Joe`$90TLsYHSVbu+#;!!f zSy$`X_p)z!Dlx6z;0|9@{&Awy;>wa?2Ue^5;N0QNdN?5iZDn-Wb@TPKWP#&I6X%VP z>Y~r;bFnVkK~amsW2+RSx9<$F$&d~{k+Vu&ivf1OPUz3xZJQtZMHzaP{6WXBWo{$+ z348By9zsIx!>H`{F!VA`dy5MWFD7l*j$Q_ps?k2j<L{0)|4K9~Q#PG=g6*OekF5CL z>sjOi1bKNeIu&+GlEL%2Z8uw4-OYX9F<*aIi0Bj=`T|=BU$#|#K~<0c>%?Xt0S1vV zrT6~2tj5~N$}3T0rDgy*oxj=4fXGh*p{g~C4$WVFUc;^hkRR}u2$u^?K|E9qlVX!f zGn9ZDBPzC#i-~cU+1yz+?coW)C%a%>y>L}_D+Q&vqr>pTJBUxUNKFF--3D^?2U4aV zV)x|wJvO6nlf;Lu%BEI<QA*)+Kas~G)=HtCnQFH_&V}nLX-h=1F&ZI4)dETgdG2s; z;^iWaA}XU#1bv($!F9-9DvGeAuKc@@pLQaN5YkV%MT)w4!b6X~^Y}2ztyb6|l6$$p zOd0LgtB#N~7KVBN%q>YmM*w3mz?yaId_n?UWkRV~a9MVYbI6tRAkFqWob^~!p`wtL zC$T?|U8R&_A+3howFs~=k369&wPZ4B40QV;2ucvONj!-@b4|kZB8{g31|qO~iwkZA zz^PFtlcb`<+nr>Djq#PeD$DvJ_H&!p+aSP>!=1}ec!CGL1C?=!8=B#C=f_WE0945k zlKyDYi}XhIrXQ{=GQ&yl&bKJuTVziAoFHW{>keNtV$n6#pU4g_0`OD9UOp64beOP3 zW~+|k1W)k@b)=0x3*{iE$^W1c9rZFM=5BULy33Ohs)ia@IPQE{zvFUf+B%dpo`Se^ z!h2ACgOkkp<Vl)5%I3?g{be@Uvu*GXchW8E(gA8Zy<YN{D#W^>d$}Q;AnJ2e6!m`- zop8$cCyYfNh9<uVh&2t2A6nUe-rwmL;??&QVWa$#1VvV!f>OOqEL7_HLpdnItnn(z z<ou;S8V2mn*$S;!fHSPWKSFt(pztfwNksGw9h~F`FjU0klR1C&-l;h--T0mfpCp&) z+Zn?Wj0UooLf9OhUKVnS?z0n%tRgc40r534_t-d1iT4QglzXfd_nLnJhbcV8h<l8} zM4laFQNb-`uMCF`KX=;maA!}LJVbChEL~<WSE^F@5+0$aiC|jA<4MT@KTEC-$5$bs z_JG3zx$F)))1f}GvM4{Zj@R{<|DJJ5yJ1<8Qo)WC?=kd}Rh~2!1GmM)ZzV>2=}QfD z&Tw~(CE%6W@by8=*@bUs3)jUGy^Z1h?SbW_8v;KP9>Cb%I6BGaaX35xpeF7NRP*V| z<T?${?pqO|eI;Z%O;KZoGkM1MPPro=xn&-uT_s>ILXzNH>0JbC^#Yoa_#R3$vu7Ut zq~BCDr`Gk-TqhTJWhq^6DcBPSs&I6eu3RJ(A{2+pQH8KLEBe?K4YT40P~N+~8h6(< zl{UA<cRDaMdM)C%^MeC)?Ts$Zo=wa7AAkc@=Nv-jX0--f55T;J7?O&AU(e9r%v5OA z5~$()`mBiF^Q!%(MVgicZ|7C`SuK=!E&UmSX$2Cy0%1B(S15$N{tR)L0XBUs%n1is z@f>JVz}N0`k#0f*C>XG>1*Ei`ZnXkt6A)&i1o*%_A?u<A#+?Pzus~N*>d8l!#YNf# z;KF{h+<tHofN26^)<TSdn`^QI@D}y&NMkN;<tNDIrCkU#H}VC}xK*oO%EX<d=PMK< zIj5h2O;A7{QqJquWDNjmF@&bOE|SAiWgM%j{s{oAh4<D`wI92GP}hwrqVobpYwkLY zz5uvOtR*s7sWVnIyYp(WW&!ky!2B8jTjKdx%x*{zo!)Kb-n)xeVrR1Qg%AN|pt7Vg zpMR=0kUQtTC;d4qU!g|8bfxOjDum_#{B}C)8M`<D7?=XBy95X_maSmop#opy*kG_` z8jqw*`rs~K@e1UeRePKv{lk<C{5RU66M)_xPeBU=?$Ju01%L~9_Uc=Fop0-cF8Q=# zyMGBBs3xfVS3pr^yUZ58A#J-GO5W>2SQvPYc><qE4W_903)aFBs#u@itB*Sn*^z}3 z3B1o*U1M9*2pPld6W$U2mCsn|gum$l(9|1tBJ7)O2pDk52M_;h*eFYbiVX0$1i<Cb z*(Sbqa%?g(o<6Cra(OPn2rrw_IAl|CTyeIF<&Db%U=;w&svhRmGc)?s%3mC>E#B0i z=33&mwD)l7MbG00n2H10=nGHMJRkBZ0pIU&G6(k%X3`|)ZF=VTJb%1+1;)c;t$Jpc z68ad+-K5H+3~no++XPx)r9aVQ8UuL$AXtT8Fs=dbO*xXg0@K?d+a<5)#$Fw*L$*g{ z*Yh>AZ@t<=_i-H|?WnI{6{hyVy>!7&i42~+rJTgzt^}_aLt(Gr6|Q>eJ;O^DxAu^~ z`VgH28HA=j7tG3=aKkY{#w^kB73-u2G~{N;Z^7l^-Y_Y4?Jfk35o4GAM?n{aLW%%R zTG{IJ{aoBgA3cDJvqtA<=P$$Vq}f!HR_fsekEG7?YO<K?r}F1?5ET>suD-C#=Pwml zy}-Uebf<=?7IXegjok%z2g-I24YPBxJ-A3{*DUuKK&ZpdF+nS=466=cWt^?YQvCJo zbsro`QHNdrr!NH#1vQ*gE}$Zk&O<c<q>Dg?v6UjFA-$gt5$%2zcCH8mluZznH+2*N z^2nK8)74Gku8(z2=XYF;qt89>SoQf~>=}cmFE`^L`Q*Q9@S*!9J@=*`XXp+*dY@py z(Zp%j5~k~|XQ*6J?TUc<!B|&<KobC7`<+HWQE+eOeKlI$ZB8l2I5vwogMz`qvDK=C zGtHr}-``RV>=*(HT=dmpONli!U<Z)=2KP>p#H`6p?1TBFeuzg-nKs+Pl7ZhQgn$HK zS?y-Te){0MU>!C{%NZl4g0v<8v9dzU9<5A=?@bTX!7Bh7bg5v2ZO&^*r|nXv%kYy@ z_S?%s&*l*S{5#X5fwZaf_tWFmw%^q}>$aaTtviKX#aWMj9_gL*<IixJAiwtbVvu=V z*et-@u&qdd4j!L@V7W&BYu`f4HN+5WHNtQHH9Uncx^{Di=kpjly&0U)p(Ykbo#)7& z`2rrVE8&cmdBak<AiIipcxskfGCmpUK-fX@(m0dG68Mhyryq#C<~@ABQZ+}@(Y$1) zV2-En$>VX~gm^^o7bxN$X)Ly{B9Ph+qqj$1=~;*G&Z9t2%Qo_s-i8ltYJV)^Au4*$ zeMwmCSoY#J8NES2d+sAa2y)lG_Cr}O<Dx6V(f=K~I%B_w=Ut5O$%om>@VRQm{D^ZZ zRURwV2zVp&T*1o7tqk6J_GP};b6FgYrXKW;E0E7R9&tC$j={4d@x|bfd)9~1wR|BE z5%As&YUS7HPzFLqr<o_iJg$iicas#%7Cd)v?Lsxm*=isMfHPtD?2wh2@p*fvOg-cU z@W5tONX!pReCDwyBeE?6CjuQPfr~n9wDLUBOYCPH+_>B9IKD|So?|VD=|w?TXpVmz zNP{<`smbzX;fqs2>+<dnt`Bq{XDjx$5_Eab{dk}F)#TPS7)214>JFm>!E!xd=FarF z2QY^6k^3Gndjf_&76H9mzMU|!efO(IJ!tghsIfx!;Ly*}Be)y6Rn)O3@Xtkr#2Ubg zka<c2I%rm0NU;!`WMp5PRtDDeaIUx&BDscwW}#U1?t(#={zkuGbS>}P<dIX!gNl{N z+`3+m7BLl;ROv>Po+F-KRY|atTKj0ZSp_T)Fy4Pp=o-Jf&#S*D-sY~X%)=V`zT@}B ztGe?WZ$2NTiohxi5`Ee757;bLX<9Rz&CYx>)66xAwW&|<?)fP<wm%v*;n9`Xzr;T- zlk)YD6|^m+a8&GR|6Jz?EC$a7phOJXfmo*S?MUI9bFtM<Sl~+K%ChnmdL`EXjztNF z9|Q}m34-nd0iNrs;*<BS-Cj$EPeBtZxNHT$C$ehh!GkR7(CV#)jp(-)@OSPD*>vmY zEoH`-QFIfYv-<)*=b@Y63OyI9xfY?Ru!o>$THZ4TmNeDLSe=A9!b8q92*8W~0-gD} zldOSH9Hn9}c=D@$_`NSaQzs{WTne~-lpuIS$j|(BsTWf3JYD?lk|SJ=C=4%K*)Gb0 z6$JmLSp0XjeWf8_MUQT$oL0V_yP^^2p+gJg&0zQ(D_0}Tv)4fa-g3%L=(~e~V}qmP z&MJk%?g=EPjJk!^KpBT>2|Gc5`QXVx4d(7dH&0ay;(k61+LF|v#@$*pXm@k<oSYfK z&nstw60Upb-0`d}qqg~Q%JtNu0+yXupZF~5x`P8f0*rwHiYshVBp90uXriSOnan0` zVK?-~vtNP(@7!HvEsCW(|2R&}`TaURPs;w0&qCXJQkoJU7qIbu)4WtO;_Ldt)Rtw1 zo;Z6z6lUAH2A?l~b#Z#fw$A#2#RI~wUETv3R(7!#RBB$Gb@j^>aZZQn1?&6Rva3uc z9O#aqOIKq|4fGPlX^zUUtJ_)B;VhO$KiAOg-nXFh0$I$#Y$%JWb3Y5r_7&GXGwi(> zP&+HAx0y`xs3EDv$~T!1+`aJ7N%Zi@xu03Ml@s4jRqE#I0j@-`q@r9Yn@$3n_{30R z@KQ`9_sWUM3X4$gz&Q^YU`xzXYrr-1!m!Nwb5N+qj<@%nv0rgI!PW`mko$NwwEKVF zD=DIlU$-8Iy)fJ7ReXF2%%pOFf!t2re+uCXKhT4U<^^NnGRHd&7YmH3M7p{Yxa_l8 z@Qr3ms)=bH`@2-8M`p`yH539JvlWqYk@Tlt>yud@E5It1$|73Qz*kZ80f=I4OADAr ztKBItLFX1((W=qPfbXBWE@1yjy|I*(&0CSb#;EbOoI2**szr+z^^`QOjvb?3<2JF{ z9SQ$;A`<KA*L$SSg~7%J>;E)WVpM;#0_x_!zg8c3?cS}@cANTI1rS0LkE(igyQW2C zj2ByNne^RKQy~bAm1zifR0T}jAmY2dlfIjxgUgMl-yK}TX6&V`z^&LuFtbyi48ok> zfP;NfOJ>k=eT4L=Q4s2oAl}r18|72@Jz4`+oI&ea1SUR7$WaM1CYII>L=G1j|7WLU zsKA>eW;HR&DoL*;P1qSt!EoB@jL5gyRI4Pk?@Wk?=U)Fn>5AAMlJw?1c$vmt?w46~ znmqn2ht_ao2*_nI&--Yg>TkD#-+?G-l)7jadQy%e{CrX)b;2A=!)BwemFL1Ch>EiP zXuqm7wcma<j=SGe#W@r)PXE2vVjJ|j^lN?o>T1lMvo$z-mO!L0>R4N>9xH>jq`@<w z%PGo%l#vA0hMy?iz^b+xN)dz_n6VOPhx*NrDm0GbbjTHp2Xz#q3d52DpJu`tDopcn zY-?4F9|PvZHlwEMLICblwC0`V{Ot+Zf9p{jMMrVNXMh{K3o3m>bU5IShlAf#itiOl zAV8~y{xl&-F<iL5p6eJNy;*XL7QJ0v7>}}Q@xmt1!GkMuT4r5jWSbUj*z&mUN2F!a z7~mR2ki-!YcdI-Yr)`m{#Ypuk@W1KzF$eX54}WLH9A$=`+Y|i3CLtGu3ec)pWlq5i z{T&sl+RN2nQ)3&pmKU$03Jkc|)C?En2yK<n1A?m&`&|{E%j^r*;DLO#+|n@-BGkFW z0;QCbeh@F7EmGyRmDSZb;I5+#`_|yo9dB+)G4=66mYv|xhSsU0e97WRR1*CF8FUs6 z%+wXgHoo0(S-&wU$W@`spyJ6|Z~(Vyc+z)E6Bh{QvDMe9V`osqMR8;==mTh;Ttx~Y zkweOCN2Tw@TK)|cjn(%r<*Sr3rr7}D*yTgibFBh0Dj6V(nyx^I6eWgS8XRBxO^hA7 zVdg{T#lcE<ecFoFhluAY7mQ2{*#xkmsFGz*d`cZPufir$GGv}k((8$ogl+MtkMD)D zUuJ%Wwj9Ot`bh3z04z&ntroUEA$(*nG)tdkmutg<;Y1>XMgnWN^$6eAoLa{AL1J_F z5Ns={^AZ?CWb?F<lgfF6e~t7&wU?Ry=Ee>f9Eeu%tpl8?dbbxK9L-BP&#b`RgT_8p z=QW27!z8mc-AE}7xfaacIi0+rTPgjgWEP{}Y@Q=ZSs&YAhgLQ<y?VQZ?8)`(mbZV~ zRxsGt>F1}S6?++_RRGXdH~0ht8NcQ>%5M7<$60U>V6*}uf@se0uRi!3FZOH{-J}D; zdhL}a`w>brV)%paE+Q`n5`HBEigEMHDFRmzIWM~U3u=`n#6yDGDRt(j=K;6(VTtNJ zLvEtVSlX{6RHZAFg@89f=e`dw(3Pba@nM}8Thqm&?Mw0Og|m4aHpysM>1Y2Rj#aN6 zo;`UG7#JA4w3UHE66+Fen6dzQ)LzLu_?Dfd-i%Dq1rTc;R(QUX<JXSy6C}t@zW{gz z|2QfJ^oW`+^S0y^_&nmh9(Z8kg)`)G5T%$l;l%KGs7nsPV>b|{ko5fBgi66vu85l+ z0@w8@00(f7NnsBtwQ+gWj@PW=aQ8m4c{OsJ?4w1a_<v6wc)#Y*&$k(T=i;d+!f3;( zI|2jd0-#UEk~{34;)Gq(IT>W<;6$o|)v}Zu?1qogIW{Vte-pw;6EmbQp`4vCXO$oK zJO|HlQ;#5SQ$xq$Jc4`HWXdvPk}NhMmV*l|u#OxC|Ceub*$$umqt4+DPEDl7b~W#V znYf!v)ML4jtG?&cJ;r11JOF=B!()F>{_~ox_<fN=R9gOskaU?$^9`>SxM*hupz2vY zs#Bfzz0T8_PnkynoZ!jVwYcYEo*PT@-(T~ABDe^cMqgFQ|9*Mf_;n7mR5oIXbN;R+ z5#kwUb#a%D+z<S3y}bPtFA;gF2+gfA4v~Y=FvxlY)90?4$6|w(TAi)@Z}w30_T(Xs zWo?G3#a@0@Ip#o=Cc#%if}3Hp+HH_grYMI}(9)-Klj&yki;_#l9esiw%{Pe(i!pY= zqbh_<ZF`K*JyzmMe;+7>UNZgMv{`2eK9b~;?6fwYC`w^_(BrQftB$`ZzS{IIr8d)a z>7&$YL|n0~-kiTri-%e*j+GZlPvy1v(fy%I-0M{y9XWL4%MpHete@fjy4AIUAvuLj zpN!K^k$)0{*Ke-9N@ovm(@F`XO65_Em2MMa8sso-C17%Mz=LTHXUt-;oODa0N-^)^ z2$)v3+`hMnwZLQoi_K5CZzeap-$`|#?OH@p4qm`wl%&&C-yWnGy<D}g!-`9=xYgYt zO-q0V>FUG;CnQMidYSkk$10z~Yfg`fEr(v?uY}4>-9l0R#A3O517@mA=QXbP)f0X` z{7L5jFn+FhNb*XiB!xQM8ZIbqKq9f<{CDtVRkyQzNWibP>&$#30~0QNlw~R6Zg;=t z8GAJB(?gChz>d-HmlOp1Q-ST)a%Qkz-ACd2^Xq<hu<a+=%6(19OEKPH-8w;2fW$?2 zuO3bsTB2iIrqiwH#&o<Yuj|lYS0RjhgFhjGmC;wWdH_NPu!ZTdi}liNKbqpxTyDHb z;#Md-N@G*$W#`aCLUdm*_AKnty2!vYac$H+I^szfOd8s_bB|nLTeD|NK4K@b)%5ZN z^l`gtSBWYzPe1#cpv#w|3k<2-a97?afxc&F+VAhU1tvbfQ7`Q+B5?eQz<@8+`2%Bc z0yK5{tvoMa!cvb={bXw9elVxHnR-<;py^8NP3syu!KP-3VDb>l*P&0QirHLrud*kx zD<+sQ(^F0o*yjh#+i@2Bq@PPt|CmV9!HF15hnYUcbS23a0%7b1J1r;4R3!3tcGpk^ zaCZFx+7xLGH87D!l(5!UVRb%dwCA1YMN$_3@5`y8$L!Xm&Izep1-@tZmMH5v6kQ+f zI4#(OQjfk~Z-GXh3(Xd``ULyewo7*UiT39wyGc^_`T9$;_*>JUnF&JwJoVI6vILkg z^p%QE^^dMqcNkzPY`kw^3vbqYGc~<4Rnv<%OR@ytOICrB=Lu-m+zE&Q29jY1&6plC z$CR@Zfou|Bo&|+*<Ma53m7L(_+r~I6GH!b)Qx<00QV1fd8l<U6`#rL=8<f!yrEe*~ zWEnV-2Fp%W9wJm*q_KIyiSMfQZOD{-efYF@A>HL3-Otre6H{gSb>koc$JJ2hYC{q@ zRVG*;&rHyrSAuCXo03{us%&AJ)mUME-KlEwwrFv)zJ5sca8ZR;;}h5le$?9x>&Edc zE**h~6KO`vuvm&Ita2zYJk<tev`~^Y$YEG!JtQZpl2<oe7?LmGJmA)P|7y*dzZMU( zg61)U*MEWXWQWOQVxHM>zFn#;25*Lg!np}}qy|h|7I&L2`C@Ql)SqIKHs*}V2c0$a z6^V>1N%rmFkr&`yS<J(OhTMvrr+>`UkIRa-$7||LS_6i-aE3NSWH2t(cZ}~pF?yyj z(>q-zAN~`q1n7r<2?YiSkB4N^uRShp=?9gxNRu9@^kX~un!m-$0ue_2t_opcFalct z?DvN*#=Ra$&kB_W=>5jZ$jrZ(IZZtPIt(DI4acL*Q->N~_~62Jtu|K8(yB}H(X_|N z+X$;*fTi;hrM(cK4o`Co&zM2;PC;4e=9F!7XvN#b?zc5VZ?l)pZLDmdn1s8j%xPlX zW-W<>N!|4gV0vKytdYOZGewXHZk4If+2t>(39!1HYE=M`MAkG(9yxphhMfDok8zfN z63i<6EGZQibBnM!ipah`z57F?0q1ux)vl*C)it9O!y4*ZtT834(p9G{e0?-xK>T>D zqo`$&e|a#!<-S=4)b{Fg<_y7D*re2AcKs=Ih0XFX*E;OjmU8g2iGb@~!BK>hi6RE% z**J4CaS9HDmo$K*Iq^zj$?ya7JVo<9x@6-zuxcXJ-W5#8ZA<S*WTXWH`%*-(6QJHg zy4V7i(J-;zU{ZIRJm`ionW_&bm^6${O)pKota%h^pZaM3X<@ECey7(-Jek=9&ZBH> zgJvh?Lsu&G-3UGXB`e}@_xVgSpgjK86!P5o@&(Jcj*Jmx-{x2QH(+>|q0_Z@-ZAg& z<?cC$NbrQ((=pZMKecb0)^Dq^H}Ym@%_m<u=U{_=FDigvI3;`A4?l2nfM&hF#yR{+ zhtkaseLOWRVMPs%8MnKhDBUtHfo=_)DZj`)68`;pEs@Z)%I91#UlY<U#5p(xNE^ll zz9G+xG1<d0Jyte>-2bF4uOy*y-(l}~Crkoa@}M&3elL~TQ)opk3z<OPs<wS{i+<nO zJiR?R@%Tv*)EU~dl$SNHtn+rZe<I(lydba^1;Y~PiT&p^?v+97`{&EU$U_nByNUw2 z+s?E61pJ&C?>xt14%#K#Y_=M+=<DVJ^;^s>nyK4Jl4#+=IDwTe_KMdfs*XS`R^%i+ zh!2!)&o_c^I6GEEIj!AzHZVxJWk(Jo!H>e<^<3pYKD``wOzE<R4lB8lxKTr;nr+>- zW%Fz+XKzvl<X3@@2P$m~jZ2@pEvMR((+pq)`3n?F_{EXGc9SobL#LMW$n2w6O%7}q zCcf|>Zc9k?4pTHZz>j9a5?)7hh~L5J{HeT>+~S53py7p~F4_Dp83%4qz`YXV@*vrP zA>Qs*KS{<f5o!iBMi9xOC6DU_wJN|O(7Awy=RDPRrI^P#LzboDwLMMbqNq>h#-9kk zaASR>C9-iT2aR%Kel~LEne2xvYMx3dz0&oi%ks!IrgRw<{W*`A+i5TRC*652@N@Tr z@^_#6M!t`xQC+XKuRJ*#%S0%i!e6m$vdRR5O<($$J@XlSN_k^Oz6i{1G=QND{nCE- zzB_mS5glZ=1sI{ZYwhb#>5|RLH+TuT8>aDhrKulnE!;@Jm5XX`zVBz6ly8`gua(c+ z$Z8Sk>$pzaAZE{4o!tS1*+c8`4(SQFgJ97N&0JT*4L01`ds}qVd2=HfF~IG4HBldC z#l3c;Pg)wdX2ZQnHicpU$L%kdUPKJ!5j{QgJyWe9%7`Q-bP{QvB&(RfO2B|*x#<jQ z$=2Ku`I7`T#RNHYQn3!jypB#Doxp|$$=A`@YQSvKbn=QI4k$R$ko=)}^`n79K9oK~ zH-R#qsNCY2F%Qn;|CrtW{$1V*uCam9kGSRLE93MqqPP~ry~Z$~r4)Ep^@7wYy3z|= z8PHg@o~cGvtzkc`P5&WWu?g<|jTgVSPKp0ZJ~COoJoUM?>0O%+d__qd;WAGm=DG&p z-ZuG?{BR1JzU%s3bQdXXyWYlSt~ARZ*KMHvaCxhOx-*VRaPcXUrQD}x$P$39mz;QH z^c$*KkonzI!6#QL{&0``HD`@pDqg|9<7L(j?oX+3{O^NF;Q>K5R~0c*02`f!J%nTd z<X3EK%+e=1`-*NLIrx9`o64KJ`511-R)xw76lvi;l_%a>M;G_FuRaSAvFhkd!2sP7 z^dF1AWUg%8|Gq_`CT6z-BxvFy2|x&wa_Z=qoNhv?iMcC@xlQJ9<DE=&(jUWNrl{ep zb+;T0q|lH;P_D4aO9$l9FhL9Gn(D_~<I=CRmd2s0b|JeL$t26Hk`HZ(dmj*xVB*)S zshVGyi|2hhd3;DMLI-zgWW~X)JY)W-l+WL1=G;C!ke4q6qJZX)@BF8yU)|Lzp71`s zdgJd~SUg+6=cKL9)s9wP)XvupzzI10eR)*}_9x^Ef#kH33tSNrGY$T12V~tK4ZTWX znGW)$oF*OGcVPfx$go4|;#~^Y91LM^=b#UqXqviyev_W`H4H`)k_vSFjQu#gD3VH< zHzy}4`>Nj$X*dwd`mb11L7+Rk5`$>Tts<M%9bXw>P0!bQld<qd4I$w2R9hgZ7@=+2 zq575}UwH>akJ&oc{phYoIrPwQm`DEGe-iY_tZ(A<2C2|wfH4wb3^^;VdR%jndW-WY z1aMB*a{{hc_ZYL$oFbvz32EifRdc9xa&Ru1onuSUx{h?k8DOa6;{Ee{mqHaM_je;a zPlA0iOwy?}P>GdiY+#(gd;KSRK&b9Cf$-Es$@fa8{ihVC@NW{Spy2Snoy+tR0Vn)n zoLdhyEIizCfyWRLQ4tvEulC9>gPe|BU_M}ljR^bq4$_lzJHInE#OSP#+JAAqo?&4? zZK>cuDEYi%w_&Zu!&DR2&<dw4eGsA!@^+0F<PaKRAQ_k?eSFuHZ+4tp{k~J`1Hyd> z?6(XKj%Ou;jl((eDrJnri=jPLg%n1`uW~;vDgM7`9zn$&)|otjZ8l8XHwM_Tc;<Q4 z)z(@&J(N~%|8|LU*sT!y9~Yj9n=XJ6l#%sAoE{|cB_f0T4RYr+Pxh2-b$a#rfY)Cr z`0<aNjvpi6Zf5f*WcmevT)v)vLij@*B|!%kcg!hf#=ACW6GMMt*K*Y-o$jZ~rPER6 zS6aRQu@P_QjJ=E$20B919*0nXJwlbgQ2mMWi!rj_(X5))*4*X!3r8gr>7csJo82*- zyeH{=sLolDOO8+?Dn7EkS|-6`xivuk5(UK;y}QH3Xk1!+E7r<<y+r61fha5<yh4=$ zSOnX#!JZNzC`i!>ot>9(2QKL~Ru>}r=C0tSL}sZ_vEdwHklVr&$p<4B;RqJR1tqHf zy>qmt3Rf)B6EH<0bzE0+IndJDAn1_T<Vrut{1MR5wz4u=WNP2$bEG)&+RU6)xuWl( zNzxsFIY8_HkvGQ3T1FU3Ut$xVEs*yd`7pm;3DTwe$q^NGb!QG>X*j4nQm(_98i62A zq2dVV1}ME>(@~4w*@E;XOUTo<uO_vOB>_6rCnFdu2Y$hJ>Fm@6#yG>PZB@JyOUW44 zKHUi)@m!EE=z4e>Lf%*yQEn=HavF_Dcd9k209L_;T1f*$LJ=))Y(Q^KZkngaj}#?8 zJD8cJ(sGynkSvzckSSm)fQxu$4Cq1DuJ>7^*0SGBa<3({3}I49>TZe1t0L|+G@ZR- z8BAm{1#zt+fxC(<8U!(sNC4Q$HmG85a+*wz2Ai<20MXhRu<E7i*O|A^=|PVrCIx-J zWKU+X3J`$LSgkejLONE@*V!S^bFZ_Jten(r7adN`?CXpXQd4%&!;Z<Db`}G7^clv; z2oQg7q*XqTNJ}-|aUVyu%DCuIi}My-C+dTRCE3s~L~!&**8~SjaS1xF2Mi;0*8#(J zIpSotU(oS`0D%ay6%J|5YwQ6{u9qqhp!X^u7+n^usdFWx?6<KMR;dU_KKp^|>94?i zO)dTL$36kCUc;OlYMerM^@P}Kc(AO-(-KbX-(#%6COKZo&i8%SY0Zzs?}-zyKmubB z&zUZA6*@rW^km7e!9WoCu1Gj03!DJnD`9#NJ6jI^6*ch+@*&C!M3<W=na9h?3_K+$ zn@4AL3oq7B>K}qnvzqBt2Oi*Hbifx(r=XaWUa<xf@jkm!G~&iv^Yb4tYoNpOC~;Tg zESQF6jSz&3qazEddfps?TB{V!mRP)~o`~}z8zrEa#8Jm#_-o-6B>rNsDn$5LX96u` z=BT&8WUui7&F#<qzOdNc_4x;-L;}jhHQ<Z3Y|}fFc1Uo|05fq!;8J@t&OyiUmSH;B zidqVG26r}vP|~cxdOzf>1_873$$aS5&dF^Z)yd~8lr0*4-Kc<pt3p4~YzNn9?tlEN zjlJ?z*|=E8f%*n~c&P5e!$~8Cf=NNJ5dbmKiHj?uC(<q3WbgO#Sl=W#fQ6FUw6?h~ zs!<>DME{QcUdWU;>;<(tp7=_ZS+*AU#VbsH+ArZa0M4HiL%e&!VdTfz^+H530p88m zvrk{;Bf#QjoXB%iB1bWHhU5vZbnMZ}(FB++QSQ-0V_a=TNu^ApthxBQrstR(l><k) z();Z!%H0YH!6>=@*|Ro=G2&3fKopZMjCZN+Js&CN&E3ic0OUt980(}f_vV|WeHHS= zJy1eo!iE+ax>>SVX0K9&)BuJ-Ny`s4S3FKnlURGYMaG~~5t-Z)ZS6aGdMH=wxP(O8 zo1G#rkxK|x9tkgoLk#f-ceE&Eh|Kn%ndC+Gg!M3n1U3UQ!8#qnqc0%`%lY~jN~z)( zm-?@YUsf&wZWjeKaSZC+#X~~HkxW9RD_S*8H$)0fmi3q?h~j4nWhMy2b*X<8bmm-x zk>6v(=dz~^9*I83jezqC0eARHoR>|Np{#WephAV&`}Gz3hrj3zTn}S(HU4H6YC=L2 z;jsXOlfbKJCPdp2VI^{45mZtL7mLWr*w73ADk7t-9!M_N)(D;|PA`ioYP@HRp(6r} z=oJDf#MZc+5rC*v!Yx`P?Xzg!)Qp<Oa6SsDQLF9MJB?#u#$Y0n-KB>&LhQ1+thi<D zu5HGEqT%oew5mumD<H$fnAMsc*%{SX8$}3~;rlh9|LnXRyYE0rO+UYP{Jrdoob5aZ zaj1hh8SzGLy=+lz(0b)z-ze~1E~L^P+M|UCQri@PBPjY|c=(+k8P;^1WOvoXwywK= z8SkXlaVQlPimad34N>S~`4f6dsfU(Li7|R0_jN+cmL|s#*&8{Wt$p{7D1k(LOGs2J z(}M4nUTc*JyzvKXb<h?=6dlyAkCG|dot1rQI;EH-Gj*E1UN%!g*1E4b$v!#KVaFqj zcU51e0FxcygJEbrm?rtl+~ko&acy{RYW8||Rmyw%vzs&f#P=ghQFqsGkyBzH*tsAL z!r9H?#r<eW3$X`H%4r|lkF!qh5^nWaX|3VHyDXNl8huLOJ@Q)3`|RdqH>k)OrX4Pk z7>DRB?=Lgd?QqbKu&*B-_P76B<=&1h>O*PSDn&paC&$(IKqyWPU6<R^HAd^$S1YPb zu#PZfff*lu7Supoj^ky%y&?{+RtC$IdO@yEb7p&q1V5#mGHbD0H_;Q6*?pmT7*xJN znBf4!QUX~H;wzDrfEdVTH`}7)fyqG{ke6QyYfdDxObVvnDER#MsSOWkFg9t_Q*^`O zIsL&6yp!)TEkbq9<lUE4*$6%&W9~rOoOpiX*7W;j^J0rA0eob}5>Ya@F9P}5Blz|n zTMqu#^p<^abJn$G6ca)0wg{yxD0f%ulp$(LHh!p)g&F0__#BWNCnqrme!0<~HGt9@ zaaUTK$Q=FwFmbDQ4u9ECIB=SIvqq-8sIp8Sa+s4*fvJ@7dI#Pay0Y={)}TkJybmj` zryjhqrx+?BqToXg`Nj93=XaJ7Qmpojc0_W=O~?D<o>9kVoCpf?w!h%MPHyG<7zU}$ z<kDiWxRd6nv%Ctz*a!0tq&Ip)J`C!SAY6@j$Ey7PszKM}IG=MEz5mD1%0X+Vod%_6 zC11lcXm!IKtWX=Kx7yj#IISz>x5g4$w|N8z639sb#|!$8uHTKvt@%1r+mTJ{nPcbi zLZ)0z7n;9L4H4)S--`ovutfJn9$sZC&6qPMVoL7D04(Ka`JnptcE+O;{Y5$D;c)ZR z@Q71uNaRkZUT)7(3hp5gueDQVp+LHXDCeORvHlv}gKCA3UJG4Wt7%{pN^%oEoHc&o zvt~tJvVScy(iKwtQ8CQ}w*nD4sk0>iPQXmfit_kZ5FFoX@9+XA<GVj_ai?t;uIk1M zy@L(|7FF`s2G*PMhb9p_@wkF$k#G0^g@>wTjn7^Zy<G91A@|M@rHSXS$a`P<QN~`U z9h!*8R00@zdJcpJ)}l$Avd98i>dI}1unKhxLR3&){-^??gS-aDrcYhXBvkamHHBfQ z2|-0dD!>mMEX)cj5`Unn?9@ff5U-vS80wIJ?j8hfmw@Ypfr~yFojD+ZLO>DoDWQmt z|ExPj1j!O}Gsxmlc!473v$%(!1_-W8<O=fSPOUt6@KG=LKCVSjucJKi7k(h%!@dD0 zHbCH20CTtVC(P;Fb3u@7dS0GHhC}*7!r|@VZ5S!$7oyj>0;6$Ot0T>140Pk?1teTo zq|Dp`KUJ;H6uZu2eV7W&2eh39{lXWP%t*hV&SKi{1ASM<>Z|^IFI^ztq1`thpqVpH z;7R{NaKJMZWV^VfJ*$V}sfgl1L%>4Yp2j}lGc4Jd!<!NAedkbbDZ@qr=S|pQt5!<I zvGBr$WIr2Qd8?-msB3)&CnPHCel~UjtCxS)(ybPXXL#Q1&RW0ftD=Y0NVqs#ja>eG zQLXpQz{d}hAF=IAUuITu`-0XB?syIsk@p4Kn+AhWM%|;&xLHx+Ij^JP<rkhO$-J zEqC!JPA3cbVjokzAnwP;1L6cP($8NEi>gj9F=l!Uqi8RZRNJR;CyWGz?fmw-1x;w` zc-`VhjU)_0yLjjCThzbn5P6ml;Y5s;FS})`wIFQtTkB_gud5FJv<-*X$!eh+j)_;# z?iF~A8rK2J<=b9Zc7rW8cjpDC_530i3zFo}I+lO^QF9UgG(#oE-kC6-Uzd*SQmi>T z2SIL>V>meV`ttE{6Fi38_`VW3p7P@jc$IzHWjIN~hR@7|=QWJ!_Zh8YO#1!3${70g zDrMm910F*SBe~gyxc~^<%xH@Io{+H-xaJ$QTO0WIL(uQdo8T?3-y7J2UN8p{tXPQ| zz+<}Z;_Sveu^(Ra5I9{UH}ww0rL1N$c*O7y0>-;@MvyaN`(c!FO$)PR7q?_+*ZFHH zBo8mK1_T6MQ-m8B{x7;TB1hcE1R|61P;xdSUY?hcM@WiR>TXy!cd$Mp!H$#khoJcl z0CH(EX>*uuz`qP-T(g!^RBQXS*v1#)ugY$OcHpDfw51cggRA^f8@5wzCfZxJ)B60< zr6;1{I3}L)TQEC6yD_JY5n?DQ&LIn@VTVa9a!s{z8~?oINxF0Py3*}rTz4KIu98+u z4CnpOTpXm-0Rwlp1{kD?nRtvSy$y#9i&YtIb7;u>d5R#2RW5mQ5EX03)qxyS6G+v` z*7x2mf?2B3Z^|ZiIw9&f+ZY1k%fLxvsTJ}hDG2#S5QI$oH0{AS{NWtZxi;O)zt+FO zA!egCX7^#DztIHxpvVAlmCSwcVAI3tu38EW)Zu?6PrySSBAjQ*zxL2eaKQ7UxZ&yB zyhU=<?E!6yPfPl)V)3qF+=QnDwecl$p$UZGS)Lv)4{6T29`p8^@frD=FyLKU-;%Y? z&X4K%jh3R05ZU=%B(DE$$t?>-#d-~B_g0`y{G@17dd7X@9ymlC0FA?p%Ry$So7nWe zv+rJ;4Gf3>a=HX+0W}LPGn7q?I%&k^0k7hTu@KXq<lWby0dEYQ9>xR=rS7K^-fuH* zTs34yg7;zQmBkgM>;pxdmpsl)fXa!c7v3ItJ}(WpUVGM7C?LJ_ILHYvHX1Qo-=u7n z??oC`Gofgh0suebxy;zeopLPgzH_(B9RtUwzXQ&;?r@k~?@$P#UW$?>rjp>+W&vqd zq`u@}z3jW`;0a0cClL>K!U;Y&Uu(3Uu=MLQPkZewmV`|qb6K-M$~AW}IN2#NbF}cI zJM!=Q{Ri$DQ2#Y^LAZm`CrqO625iNA-AXjRnfP@(=aIwvx{TVfoX+6_jS3KRZX$d@ zn<qs_H32M^cAUKzBLMKTZ@o0ITiY+`Srwd6Yc^D5%XZl@N*pj1As{laQxjEr&S)ZX zU+?azd3ijZ4ZDYtoo0}>3!s`jeSNQ_wx%$W6eDu8C95VAL<Q*p7Or}j8O}?ccsdmj za;z{@V%zubeZ%&2IBlfS$9(%Yen3LSe>%8VI1j`HS@AQ+`IsBQvh=v~iL-v_kxn6K z5r$+8+%M+R3m_y;mhmV&TZT1lVu@%783WD)A@UqfK}@~pZtT1dKDVSev>42?r}%6V zjr;{S9KeGs9yt>ivGj%W41D5XK&UjUhxzcM94>NG`jD&CP|<|#DD@Yu&iO=|a@-OG zI>4y7eBXwxf3cg1FTy-><mBf!Qk-O#<ioo98+A_+K<>;wx*^|7>lbfNu_Xv$f7~=| zN3h?4`n})#=&&tsLcQ$)se1p35%ON{<MN-t-glJ;@+fvGd0gS-75X8g7N<Fuv?DY@ zo+bB4sydV=HMxDF3+V#4Hr#Cmf`cT|51n})vxyFRs2n~ya!G4u&SA)kkEh7og7j`k z8F_ppq)W>gF0(5k^Vk*4_$3EoYY(v;?!h63d<yWRWYT%h!_UCphi%DLd)9C+l&}Pl z^yS-f*A2rsi}Qsf5d~S)P4?CCEA)s&!}LBbv$j7O7%@wTh~K$5QlhxbIf-|B)BFd2 zoT-v@X_=Ip(x%6_f3;G!#|GXiEv^V-MP40(rZ<9#glr!>bMWPT?L|7g1BZ*E<2;}* zS5o)eRDUYJVEGowAoow1!?<Eh-5a8!xi%=q%>UeQ3{9O=PW$rFE?TS6>~gcbi0Y1_ z(IXt~xR5_AyzR!5><=GK0-i_C)5!{Im`kBGFhM+2^?yp*jLLedsFw6);7Z*JL&8OZ z_D0F~`%qaG{;TrW{t{>HfY-don3@B5f09Hgab9Dimt98j+OgLKHOJH-Z~aK0LY!u@ zs8Ffj>t=|~ts+hhki|NE`RwdyA}NOL$S^CN%r;uA5k}eXy_z;5NJgrSq>0y%e4qOr z#z2}$A%1b!9)vzIf?&VfJPynSt40!@P5K8JVx7>4KJN4cl*+!LU*D}`#s~f+Dds+5 zjrI>k*s#I`l#@Dz{LCl!R&-jWLCLL{67^=(7l+rB;VAooqOdrZ>>I3*W`w$*;-n>w z@!Bib*OaP25BD1%I9Ngp1^<p0#9U#nf?yV;Pm=UI&=(^~wkJ}T^-K;xLi+?gPFIoR zAQ2Fz5&*n2Ql7Y#;VsDxT(P8NHYSdGQc9QxWDwnZsIEVNx4$nCL}x18LQ1)kfYix! zcxHum&|u2GnJpTf^A8>)6P=sc^p0T;n14><y!)-2!E*iQ2cJIn;9qoNl2XB%h1EX{ z6|ZO9f&SSo$Q!NWBz3X|K?p*^9EDrz!`vON=)$1YubOIlMaa(Fq=E9V==*<uRUm&G zn?+TM{(gw<3_4VK_REq^5rkC1gsW;f#alhtqQB?JTAQm}Riogy-04gWs>+R_)tAIb zneNp${!WwEx)S_#N{Quh@6RBxb-@$pkDe~v8;U?|Ye>TP2D;c5CT&8k;O`c`7fy-T zGsAa>AOJoap;YWG?AHpW#5_t9zoSj08&fBXX@g~BJ0xt|bDuk1dqKDVY)eY}i6lU$ zLqwYWYVD8h9@PdbCp?$Yc6=B6QdCO_g4{!4=z_amGM!S9alL$}y`ph_GN*kP;`+5u z`}N}nOiu@F;|4FE4kEncUf(!<9TxW{_Vi6s+)!E}w=bI-p=W{-3r6=Kgl<o1)BaBB z-=4mI3RCTvzWjH_`}XXO9_nXPg}}daNw??I{?1?0K)lsjsJ^|}_;>Ni?KiZHr02Jn zNB=HQ-TrW=(sJqc$GyKF|GWKZjtgB>_lb$Nf{b6~qg@NODi@-yU5Njz{qn=81MU)S z-8O#Xa{Sc8dSfd>FBpyKcBgG6#c!v*d>ximA%nWo{b#$8w)-T0k1^Jp7X7`nXKyP0 z%M$I&A5Gj|_;+L7uYYLY=m-bZp@Q)cd8U7dqJ$$E!p^Q;ndMZS0^!*7-?8n#oA6m9 zglm)CzaL?QpRxb!yY4<^T(*v){Ve(StD5k;@cnh~Jx(V*p4~>m>FB@HsaIw#guk@U z1lry|8dKVyv3B9rYi#m`tPkkf2+r&vpbR)!KK_ODv#QjmaH+;{T(@~(TCA4bDFzVh zm`WX<?zZ8l0T74l#YK-sJ4W~60#(y#ss)fR{w(4TSCDIG*v{<J*z*eY;{NrU-%SfB zix9$PHLE3Ju-9N9V;%id?oglMTq(zAaXc56d$j+|z8!c7&t<e|Iv(36TsRo-eW<N$ zrF~|+T|mjzi!1Wo3i|LO`sa_oeA{$S-F9s7jgi*?21jCb0IEY1*RRcH^qe+c0{=v| zgK`KTT%3wH{5)K!P7u8K_N|t7|JC>0(QyFeN6lQ3%hv92!4DmphMVO4K3|q10IEQt z<|4Z?s0;#eh(4(JSinUBK#rBkrCVQ8#Qc-+fnEZRlbG}9BSY6-_3OH}Hi4(x#8BsM zc@YPB1H0MY@JHb4`<Ry2=yX}sRjB;}`urhEj9C{lMCs_4*-Y-Aw3t`bMK+*DWS=hQ zjLHi%wOoAiqlH})jPN5;7}yaQU7-k_P-W$as#a0Sp6)Pl`Urv-stS|E#QF|HFOWBZ z{RW<rGo8nc12W9uLD>21SY;y((LZ9k5FO<fE&YpwXyj7}x~)>0HZ8p}WoPe}KjWaf zm~<9$)7OZsMuz6f^33$vh=^NeynjE$^&qHH#wR0RF69_Pv~etxtLtMFYqNi7aleOa zDd6cwsIxB5E}>P9?t#}`5!(o9z)G|-H{GSo&mIkWitrg454``@XCClKH%@T-^7s4- zk>2p}QVK$qDeGh?5Um*ggqcg(x)w>DOkTU#S{cJ=F+-J*Kw+B0)dh>!bIk7sEQtHh zjLRZta=5A(f6zyM7{=fWD$^qF-4d~|ln6JOkpOSZ5$<Q`^6u0$OP?&QA`Dq(97JZ# zuK`vyKUE*}=$sidaPfYbO-}_&_S@e2Qg)JABpUqzF87FC+H%9DbLG{Ni%YLD1@nJE z5~88l=F~&M(u2NpH_;pUH|1oetK6#A5{AAR4pW9iU+rpE#y0-mEw|TkwWq_=mmR-1 zzoZqIOqhMmubFuz)cN70b;Iw5j*t><?^a7mJ4d?6e*z~fU(CCA1{WM;fCby#TMrBU zo{#)k2!3<VY4tGuDNOR?v+_S*dwwc^CpkQB2>E=)arD=^|Kn)&akhV_e@-^;->3b4 z3>Oj!h9$OxAPi_>kaGVJ=Win-h#vzoEm|;at1cjncaox8!-oGma|tmBQ;ER-Wn5Ju z!b(LC#GoNeS9I_c<UT=UbiyFbqS$oL!aVweC0y-RXBo{(8forF1<?wL;_WRchbSVr ztDh(_HX$760Y1ZCsq_aU@z!~39QDR(l42MT+!&Ju091$vTiW*ou2D!Ry?jHm1(Hyi zShN0wNbiMn{ib#0KZ&}R1wM(O{?ts+`cT%`hNN%ISwbe*0VqmiqM_HpL+jQ2!qP`+ zE^(J%3}_%Q{K{tF1QG5|KcaDBYbN+`0n;En#HTyJ?lN8VRCe-N8Ffs!nCwyf%+cWT z86(>1Gt)+@L84i3gqoGBaV!VM1X5mIA%MV$E9K<sjX)v+V;_7t7qP&qH}5FA0;}bO zu+qrYzsF84t?j(z`1%?!=1PA2Lj~csL-R@TTp9*gLM>S8b2)gQY&DNaWgSHX3Oi)k z*1q&j4v^R??6TX&@+?~MQyL3lGfbn{fl4!J2uFaKubfnsk=Rq8f*nG2wTZB_SZ_$~ zZNX{uod!`!@3WGBy4l(2!@XC9FjARz@hayu)-q||R`<l!AtH37a+n9A2?h;dHgXMZ zAkBp!YO#L3i+!W}cddSo9Nf|jXZhCwfC*X|XW`#!riwAA<D~LQ+VGvcwN8|)-!xf_ zkf+!1NIT@=B-^BB5j^25X3Q)1W{fM}#OJJ)X(<78?^F3fBz6%IEVJE=vc1iatt41u zNH&*Zsa<T^>g6V-!<Sh4COD7=z?=YZ(eFoQLmVyVRW?8^E|-@+ay`$lPh1x~uz+Y# zL#fHKRVztE-LHDJM7vV|+Iz4N$`s1MPe5hT(WuPnf_OZ^W)$>{k-QGZTxHs+#b8VY zvfcD-j#Xs!Q~d#7t><QcPelR00aZ{|Rx*8WlQJu~lM!&Nh5?T@1U(kwUP>SxY^Zi` z$@~u`)-6les0tU@%mH$4G{`UU4#wIMz^FYJ;W{MaT?-<kO#}Ot&WFSL7&Sd_i7bAA z1+v;$6XFbgUIJ(t<3^b|!D`5*4t6NIq1O5E$BghN10_9W5vc?%iPz~lZU+602x^Go zYq-ZA=EvSt*Raejn)?4JIuC!U{y&bN%iY$!Mz-#~_9`Tsu9=+`Wo2a~LMfu|C4|s5 zl9evmD<d=In%R4WxFj;OLh`-+{QiUU_?+>0ykF<_em?u>bdMO!qJHkyT4>^2{t12O zPi||weqlFj&E7-xuTY`Ux%0OIw1jkV&)-2}3IG9wDcT`V>wLks{!Ojcl!h+bDniOw zJVMTKEolUk8f{3|-AK~B5^%G}PM`j3GS7nea;eI0fL3a)Nz3OhU8xKD4x08T^^A>y zJa|M_2~~1RU7}I`^L}NF!(G>Bc@6=l`XB9eJR|*fiwt#5D<Br`^xAnvc8)z#EWAmL z)g2Si9<L7uvI{TIEx#Ew)lc{yiz0Au2+h&APML6M-C^+32c|^2pT?JwJV&Lm&;T^3 zAcjx<e8h`g6(vo^l&dF`f3JN>J?;>9^pD7zcG{(d32WtY*G4QK<kngDy%%lk^Gz1Y zz)c{`=1SO{ub%6X(M_mkaWQnQ^Pb==Ow#HN$;vn<G~rH@>nc**i{!GMgc1H!6tTJd zdh^o`^Q)k^v)D1Pbd39ZXX&Qa%Iv)eq1Q9?vcrw%+rFkpj5k>zki4H9zo#*DteKtf zmMJVAi5JZKk!PYG>@bgdD#_5VyU=5lK0x}VF^#c+QHtM|r$*l5-%ETQdZ8xUrB+Bi z#=u0sZS#hd`OQ3^O9sI+AQU@6`&v!rNNBLu1*Y4N1PdpB7AR`jwy-6M=JgR55EL}7 zg2a}0=yRppP}~HiIsde#=I!ZT`oifSVb$+pHniyR^W6QBX?3`$C|Tp&;Jufje?>>) z)Ww_9?E_eX$uZ3V?);+{y3Xevs*Kb<z4FTo78NYoxhl8E*s>oPdXyhQSS!zZ`Tw;u z&B8q^nDX-A+jBBl_qA0<t(ROVNBN5)!-HQcB*nxK`SLLAvd|_x*N4?>lMnZ^ZV0pV z>pynf(K(l!LBB8^`EQl(iS~+9c(mSexxJCu0z!sigdI=vOYHi3WvUQ1$$KE`n)JaC z&3;Ib+-vw@sj0wEyG@HAQ9(k!!;Lb!7+3ot-=P>1=^3lckoim7`Zygr6O2l<XI+AG zB@32uixIu_mOcK^eGt5H?<bY%-*^IckH!qFT*D-JGq5bZu^uXTNViWUp?OEp?}ZCJ zw=ohr$0#~wv2vzIS}4TQ8=Tn=fC0qAtKDPS74uLC+)qPu0>`WOLMxJ+D$&qcpK%;B z_5l6|(|-#U{!7d6--^M}!vYp{Q|vkkl)SNvY#WZ~$4G$D=SR5TqIn>~pd-dIz9m*P z?wrxk*`b}|$Iaqh*lqkduK8mu%=xbGo=VWkXHY?0)E6lHJGH83y_;AI^I#d>lR;x? zA#=>qMFgSIjD-!Cu~d#RBw?fdvGPbLQ`_*UtWJh3kDvukbX2dve6@e|Bo&1{lmz%F zXZw3X+5wd-!&ug>^A11xXqHKQePY5xi9+wZLCi?y<=w5`QdYDJ`>Rznu!Ze^`J3d* z7Ggf}bQgbu+GVE0a^M=rNf^d*-Y=eAVippF!X%0FI&kTi>SgAFi|>U;ig1%GTvu?Y z&(TtSqf$L`i>v@>FiDz?h<Q~a{eAS^Qj#>M1v{H$u8LXXoUdqvKNc_#uHF^8eNXS{ z-j{PrzwCEt;EVjAM9}3}1f)%T!3<qGDtD3X(z|w?Xd=vC_8+Qk&0_C}E4TmHTv&!s zIl`PA(2*#jZZ=oPfTPOnJLYYwB&X1g?q?Sx+AU<Stzr1h#3x*2gvWk<U<NR9my#`& zUtf|_7{fFfN?zHgVJOwYSMOuxWF=j5|Bf<4uC=wFdkNwrB8te!A_~53aPG#|7IXMH zrZ$1|xQy-u_B+>L1~rAzd(xezkD>@@rI&t^FDsN@mdT|j;~B>ByExW&*F;m$#k3mC zrZj+}0z&K{u>(M4Tub(WmPrk^0j_N6av(R%Vj2D`#dTn_{PNK#hS3czJ%V7svCJf6 z-D5Pphc23LX@n#za=4_>s;{8w<apbL_bij0_VF*-4U)$tv)CkRlCc%L1Wd2ws<8|B zqS<B3wh?13^T)__Gpma%TezVg*mbjqIyo#(zs??hvA-k#HZ2wZlRi)HdxZ@r{-0%G zggl-@M&cDM<=WrzYmwmwh_(}UI>T>cbmqB5K~+L^mO8a)^Tbu5Ryp0)luJ)Wu+`?l zc?seSTJI8i^;$))9+4`e<p}&62OE6ySdlTMD+kx?Ca&KK6k>e<_eoYazb+PtV^_s- zjG=#2Jb0+`OQ=B%EV<0F;QP6W?Z~YLvp&qm5dOlkx_O;V)_)&ED`(-|zxv8d1vGxh zexT&cVc&k;UKM8+7Gur(z>Yy{U2I42z!P#ad{+OWaQL=^jXdYS{>uc0@Lx?nx7f5y zvsoPim&C7JW?8UOfApTk#$sh|*z|XT-5=8X!w2@FsV<TavAwnWvPot>ftY1COU<^n zs2Uq?A7L70NJwIt3x>-Oxvo(oD+a-R5%3b?r&9%ykKvQQw0=8bC!^@{u*TQdlv1(# zDLjF>y3*&ok`J%Hx41@lBQH4i%JTcT(9%5<^Kf&^WH*B)HSS!t7Ap+{XA%CkW$>sM z&yspzmC614Vu2sTxc5D3F84&7<Bm~4|26gcb?%-6hpVWetGcCV?8S^SHX;0CXTW74 zvl_RsK=a6b70qF94y|`3lQ&=0Vzj_FS#X7UwHUuildty_uhx2i2zX~+l5<#!Kevm% z_?Yj0YM|W_{x*lCw2;a_1+3K6UxnNvr3e1rBvs3{Vdy1}o7Pr^2beb5M7>>C1I>4O z$@dE<Xim47oDF{a7%6(@C@`<pS;S8U*1rx(u5oZo!p!LUL2}L5F5dlDDagubf^9=~ zUBqdn2s1Jn(ThGPBvd?{O8zzXnq93wt-<p_{vg{Lo0ar+D@*GurC+WVPhrB@1FNPm z0@WdcH^Rl`bcCkt|4!<bzsAVNYQpH)`*jFaOv*QEG3-C8<mvpcx4Av4e-pm%_{T!` zJcNZ!PNP8l{(tb`g5qXhd2Dz>5Cg7|azuP`sK}vo=hug@kAZ~iqG>Ui)99`8XBVfv z6s@1--;m%!ohk4AIJKU@%&=KrfL0o|Lczc0q0o$OfJx*OJ5F8FPjmcG*W<pZmR~TZ z7LlKZlWiFf*Yz@8L-{h`8ga?&7K$!5Q!y;uiJ312{~CmPOu0WdH%+MP*O|l?Sw3JH z9fneGU$OadL6IP2YBpQPE|tr<vNvINB&&2&GJ(+R&y4#rS0C)3LOi<Q6EgIIrA^kW zA$HX|#`Sds+nJEPak_fsLb*~bEH|{K-j+2tLD?nk!`*%Bbx-fHIKp*$^Kd_}iS)w_ z=`TjX!PT~p^j>N>WA$X0EAXZXe-iE=2D9Keu2{Psk3|y@bco##uUj5uob_;yf(IM) z0qFhE)5AnrLlP^cnzZrqqRWT0&gx@ITa){Xp1O={I3uIn3LdgP{>)GH%ov!={C*Lj zv6i$=-}`hfyoR0XT}16Xc=Q|=<Rfcn3MGQJ3a|m(0YB=*`5O#cUcC*ODO{5p!Ht8? z5dnK96@n2%;Y~RW@LdF0QiCxK=Td?M6#;3n4=>T7D)6PrHbT|5rI4?JpI-o}6l9qb z!mZaeO8E9C?!iM(giAgsO82(PmWqu8aLx&F28h%vO`|V)^=9h+S8EBdl!$ln)gOP> zXcvoP_OpLI!V`F^1<wxqr7!F{8S*tLGQvibfMa8fXNM3=Z@2T!>R`gbp<hp)dBk@8 zROu?4VduxChTQOA!|~lpd-){!1>0kcyrCQ7>uX`&hG&^2pDjf_FOV-Cm-q+K3J$ph zV@qB$J0<%Ijx0T+LecfkX%_ziauP*v+OJ!*cxy*+9p6#D>2cF4v3-I$(=>3l>5+0F zFX5waux-O?=4YSc+zM6K!sF`m;VgA_qHyv}MHd#L;lzU}#bcnEUdZ7={<E)-yARg@ zKRr{7R%%3q%k<Ivn|^g6x3!rsWV5vu@IEA;KkM8~#u6GoTiSPqts(`8wO}&9PDJ{0 z3RO6PmURGTphO*q;voX#5+L^9iW;5-&}cXSHjYzuq4Wp=%+y2X2`pVJs6kANUQMKo z0%FDhU`$yFvCD?9zr8t76NEaZ_Nj+onK|me^5at7=3DtAY<Ct5j%M4xF*o?@bbY?u zaW`w|@7xf7V)f_4A=sN?hX2;X6B?NuMmXP$7%@t9ejE{W7#01N<L>oEoS!gu$zg2m zi>u<du`B%JOrlLg3gbrK#;<*H;~@i0(uI566Sw#$T|b%K)g6Yo7%keJ39P3cIT&ey zL5?NelUY;G-<*YqDsm;p0rB1L)6<#XzP|mYM%S8xJmZ97)HJ?>z{O2DZ)QJ!n|;*Y z*&z!gozC`sn;ZIefzG)yNgN<V@O@k0pa1?zsvtyv`uhCETo!jHs3#GMamEchEqG9& z+i$20G?sKsD@Pw9;v1C{2eSZ{oSkqw&Jc_SB$vE+$?-cZoP{Rwg`XSqe(TA1!8SH2 z4aleyj!IeP*7VM!z(UC|N7|1N%*sC^_5x_d!*RtUdvTR+)pZ_5SaDi@p8a!6kjXfk zO=Jlw<p}MHf*1>|TLR2nOXysIb=5_AzSd>)&p$uTZ<K38r37FiORUD(Oq=h}O91l{ zg(YEWtz2NK@F})LU>hs2ap~DMHhZHb``2FqMXuK6AJheDM~GUh#$(EoH)ZQO24Y3o z&2il3SV9Xd>~a$pmYJ?x`Y^wAH2+I=VPEn)LMj`g=ZtfrECo8@gD6X0Wbxklr3EM4 z9I$qlnqFBrymw1hXL0M|Q`{+Kc@6Vh`YAOX$7-xW+rw%dO4GJwwfBDu9KAh%vZ3`u zdLAv(2Ge<qw>rPX@mAda%C_sjy_)$wOFUEV!s*aIsZ@f%(#=~qyz}W05sxDLwOcqA z&1G`GvhRKVzoWPRUbp?V1TZrs9{oykYxq42F=Nmgx&1i`8=m{F3&zBwF*+O*gtFk1 zSMgQz+J{-`T=SdH+dLq#Wxe)O;|@*P8{iAi9zSTv`EJZ-&Y~&HqjJ!t#jTU9u+;rQ zT>Pr<;7{+Ju$6ehLdZpFV-U<+Q_)U2nBNFB+NbF6SGRlCTjf^5pFdIlxa<5j<4JWv zL`_OcCdty6IrLyz@8yR}^#xci(OxTsr%MWfVA`s20-ps{ZK;9N-LQk6yXwiJOH@j9 z+-PNft6(p0k6W@VRGjcQP@ds>w~&#mbNteM$GhKD1TS8_rrsrK)tbA}u4gxJKCh<s zqUNTA1%*pY_+JpW4gdJ_$KV7Q@4Y8nx=zeY&iNBs+wqV|tyz$wGg5*vFN$E-y7NU_ zg%4u>=+8GZ5+B1Kydg7xFZ-7ubFSrRmpqxa@W(PTZR5gHtVP-!k<efZ>eIZS@Mn*u zy02@8N#*&I1CxJ2xe24Kl_-`f&1%{NZ+kGSOBjPR6wRmDcBTe*;Ri2h1rFG})tnap zaO*Log#1pEe#U^B-1sKP6G@ik=&?pW4s=GIeaVKAc{<L8e9WKH!x>THX>?4Y1!==U z7D3hFk3r1xu32$@McG*_Rl5>dQgaVTBrvPjoreYj2TMV9gaR^sdcVTPX3emk<kp9A zYwxYvY4=j;Izk6$<~w9L=7wLkMn-rjR94HWT0E_&u%3COp7ewsQgS}_;UI?G2t6r? zdc0Xd62HnKVI^+;nr_XG_iM4YXd*Pma9!I-VtE^XTtI5CM1C^65C<73G2@Z1{Oi%Y z-s$B2P(o*qutCb3R&}g`sMA~|8I`6<n_jbroBKm}nDoK04yVt-h`#8zEEa}On9Lw# zu~=3&Qhg*^ELW+m-C9abJeJXJWcaygF1~uv+PC?m<6CG?De9B#`!DlFB-uT^M=3lV zF}$Js@rof&VA&7vk^PF=xSx`e0$(DfXUFqUU8$7>Kh8m>XFN}o_Ml(rxIa9LW)Ux< zD~a<7q!)~jE<y1m44W5rVekExV7Mzo7sGd6^5B~$xq;-s>mP>ev{v>5S3J!t<MU-y z95o)E+|U(^J@53s@Zk5f$NT>d=N|p~?}+;RrOzTm4%#jk`9y54@(ri_=?tt#DsbTa zd-6^;l2GM9niZ!=*C4Oahy!Bq>z5Po_pG{ZzS5fZLs=@9i$lH}-sP$zh5cEv=v6V> z=CeU{ne<~hylpgBDqn2@eJ<cXueCIeQ+9{(&V=b#TEmw~qIZ9oL7dyI4`4-+%lcU5 z9qj_VrnUuM8lu+MYt1V9Swv+w#w;$Ey->fCAYm(OjC9k#%M6#LX6;z91Utkr$~}v$ zbh1~TGtAQuYq|gRhuhItBm<%ivBZsf&`~wZJG_KaN<oDO3-&FCYimYk?b^H_v*|d; zN*^6TdO#oZjBw+IUSv@i2Inm#;xj=O=vu?{ZnSErC|-Hq9S4yDI4nPR7d%sP5hIup zra3$e`fO+RQXBed`4=7qm!r0QrLw803gTGTGqezsQukLb2AuZ3vJU(E`y!e%-R)r{ zKgVpVZYpzlJ-a6>4!oIre+FLvTxU4Vq><ey+)^2;65-EnyNoodCA~;ox*>i;L>ykE z(J3qUkYSOmsneQckwnL?8XEm+le>kmdt4&U*9N*MYB&;WdyvaDP^71L2X$FDK`PR? zRXFPVm&gaKk^<MewHvw3o_(l_rq{gnuR1;ahHn3rtXMc_zIN?Xz2&SVh8JhZjxkf8 zA9z+?bM>nYB%$s5ScU&YMd|~f(H&035dSnSQ(IC}0VSBpA)2Y#LOpUAVD?-l6xmMo zPS!R3F87O<q@`@u(&@?OXLj-?^pDP@c>8kTj59qni_YkJlPLuc|GQy|4WKCVz*z6= zKV#1()AOZVhA73sml@AlA<cay1q1bY5+tsHqkPp#Lb_d9JU9ATb=WOlO=Mt31v#QG zz0l|`_YDjY8j@glG;J;9drOTX4EO$S=r*Ycc-=R*VtNn=4eS*h*XQH4eJRy;d0SKC z5FhS&88RUhY5d<++vj433CKV0{z|*x<oGXzC{PI|ve)!P!0iKrri8%FJCj!85w&Jd zeD1z&!#-fvv2tP(Z~0(k3B8nG3(jce*<7DP+8wuX4OT`emI<f3pOgIcm#{8Y^09c@ zjnNXdSYbqCTPLw4Kf;P%@YjL=oTiqwep>&tqpcvRNuni^4ll!>a^x-?jIwDT+WTn2 zqqV1bf=kXbO+2Q=YTj?$te@iV<8{1>0sN2qoS19Uz8J5_Z9HgkM7#P2aAt0HHMmNy zjPY{rEq>BicHMQ8%6R5FO<*6#AiezP`F^4-jx#QiSdn{e>`(glScQsN{@C65Z{13S z;kf6S=7A>aF3G6Y`DMrh`XcR5SCO+uSvR;L{EsPg538=Gx+m0@d6;b2&Njui+II{0 z1h`~EuSO#MWh_6Jx`xYKsJ%SXYxuE=<5pjP#iU8A%XuyQZ{%v=#T`N*!`i8miQwj! zj1sDL6fG+p7s7^{;C0a4K{!Qr^!BVq?a}eaxVP^GN*z`|ysLzMF3M+)J!!6`z)W|- zc~7ZB$TgKOZD)AJs|7Ppr6-vWbm^0G%dU||tY<t(;*=^!JMOCB+hrb_9HRNuz-VKp zEtG(r8gBixtU-6<CxPArhU2R)6#Dnk?JhHTem&o|tG$8LoSOf&w#p{nBN@t!<y|y; z*)(2g`n%+)AgNN&NK~oAe~~;_%-?ZG)A6~;bMo99rLTq*MELLYb2{$0h3x^sQCq8j zA}=aM9#yg67IcRAl(4l<@Akb(sCPlP7}6hDhS2JazSz}ixDl*)rv`JZ2lduIu8G_z zAEf;m4596lIh7_Rf2Le^gH2Lo`EDt<<~VTX)o-WnX{B}do9teGQSl_C`>YBsB?<oB zjIO9t-@TW5zJs;q%`dHUv`o$U`jw|&k<$jUvDGCXAE=4KL0iwvjPKb^F|WBJo1X4= ztGY3B=76+o8V?B18y2C8m72_4zq^NL|Iv<zT4*orE*y3jl->5=le<Ju-;VGp^pS(m z`?&^PyNdLAO^<Jb_AK4~xQZH4@L|T<D*~ZSVF8K&?`w)|hzIJ4hdA|+7b|?%Upokb zwUlrQKFb{WT(6~Aqslq1&tJX#RS|_1Qw@KutLBFx`4MzR@<Zmous_8-sp!CZ*Ar-_ z#}Q^+krrGUcl6F(jO5EDtKI6Pzhj23le1<9IZKe~@9aR${ccL2{8c`1ND%4GN%VnQ zcwf$|4CqHtf5$74Qi>G%riqC9kvk@rAor+|>&~9pB)e-n;KqCvMPhVQAnGYOS_2b< zO`%i65Mp9~K5q0Em(cgUmK*tQlt(z3?t+s<alYHk>V4Ysld<a$7A@#i{B9y;A&HY% zZ#*pS%qZq0`C}YLj&gc;2=%3e+3V4J48uqixCKVLQ89AxIBu9LepE^NJ_VbpdG35o zaL0&;cKBoR&OJYz3Hif?KeF^<M=m;DA&YJ7gykr~&#m!yr=>TXJ=MA{!g6U&FRP!{ zq3_Fo3EwCX^B=Y~s0#v**dBr&0Qn}UD4`=gB#G$iDHzf%7ls~zq5c?*r6uw-Ch~nv z9Pz(f1u_Ar^TlCa{6qUIRgo_32PnA6$@wAF^ulBc61Ya$CDycC5>@XW^B9ezPwAcz zj*G-jZt%Xw1<^0YIKxG+bNCc0CFS`&1CKm;dGthFCT@vSK|+bkMp;0z(gf;{j}1=( zV`2UJn5RDzJ=0U~G^XDDgK8`=@u}mm59G@wLdiwvWw_8!Wn%3X>CDf(60P)gZFJ^N ztgF#C<kLOCY!F3&zHansy?N5zGpIcQ`)WWR_1p8p(Q$H9J8zhx?-{!p^?<7C{9STH zfuwqDg&c9C*SqXx`PyEAehGeGjwB^Tgi>Is4{@nViO{^BsB5HGKFV3m>_8U+00Ho( z8~{Yj0#U#n+;2ve`6vbaRjo?eF_AA(umCEY$w21O;u}{ia+VurBglV)V99q=8@9x) zkuAg7eauIq!V-Wq6bSJEfW=Y5S{4xr7}$w;)|fK+0~mnbA%|6F!H|Fvp3Hng{$OsM zt8)&W@*4Fxhbtq;shSLs$c;Gw!wi{6C0Ee!@`qIpZIKH?O}SDtx#O)ly?=7B>$&n0 zZvtduGyq6-7&JzSz<T-Q9iAueQ)`X@51L#F)8#?aFptT@;(4Ygd1gHM7AJW!z3A)1 zSpW%0r=X4QkZ~&cPCNxJDg|y$i8?%JA|;2Bl7Gpz!1tuUkEbx;v7ZML%|gimC<VqU zg`qQrPfrSovG#!{D2K;ngU6`Ill-uzqPUr&gp;CcR)qYAv4xM<^GT13(=v)Pnu@37 zikQ)GzIEVLFFDJ$q~LK$QAWwwVllHbgwBb~xbucSv8cqhwC-_fLq@49wwMnMuQo(Q z&g3<zly%sab;TB!+48nNF6*Bu8$2m<=`F3-EFHEjpL|?CeM0Ur<Q>l_pKnsn#K52L zl;6)l5Ns-8Eru2BwdFM<<?AOEx?>P-A`Qef49W!FyUl=MDnKZOFZJvvb|zp&e1Ao- zysoMYoLQ;y4t8Mpp4$(MRLv(hk?ARXFh4S=G9R5Oy(z)F-Bg8<ly(@dWah0NGlw86 z0SRvec@-SgTV3sp2r+}0P{1a`U{f;)fu|2`R7o~*s(#Z%eqK`MV~Dy=1>iEk8LE^; z=EH|Xgb4+JV#?k&o$*WmPgQ_b0#>97M`s8N5r6_8rq>}tFF*qLx?%r9*v$L49+05* zT9`S6^F<+ay$)RkV^FEPV<Zg?K{25!k;M84+Ydw{@Q?vu0BTHHVF&^lcv)I>eWwH} zQBrPOAM+OoFhVlYfJV~Cnt!oXc_c(OLuCk&g8^s+j2fQw6=jk^`-bnG{rECTu)0iG zCWAW>4{27dT(pFI>T9ZPt$QSCV><lN)QFF41~4=gxK#l$A!Jz|G_;c3Hrq5XT1DU5 z46}v2lgPb}`UEBPzBl!UFvJ32&1UEc082y+OMZsh0;+xJxff*mR#=KRnN9{pUrA2w zV^5{z?7#T*q6wjo2kVkx-K~{OstEe28YmC2qz%B<n;UXIk8N0!sWttH2qq^0j<3C; z3E5!)rtDBFA!HbyGP+j}HE#i&An%ZGh{XIQUII|q#~xZ)PoGoIS5lORg8#8=gHdZ~ z6SH-*eK{O`jcRl3LZRf)zBXhZ<zSscceR<7PlKJYv?=GaXummcDEUgCu*@d#Sq1eD zK+<obqC?1XQk_FfZ4glVd}$sw17XJq(31dWG9Yu846f{gB^JO80obcAA%>__BB2`^ z3o!1qDuj|Z``FWX+w*`{hCAJPsLu@RwanBOKebLF@6P(Do|}vs!E=B^GnsqN+W9Wo zwOLr9tk+Gm`#W#1ztji5u<m<|=+<5^tO@L?1JPy#kQ8>dkiN96{4@SmL?6Jw0~pCr z`r@*}@1lI}lCPsEk(+=i6-=Pt?VXupzj~MaDX#CAVJDa0dpeI^HhWrYsnjQb;X!J% zaL?Tyw-JCrqU|T2$cz#4!RaS<K48@tMKtTbrG}a-YsstZg!r`u@wM9QpemY%j1vI{ z!<v}8s8^>gtgShXvqN7DJGt?_by1za?vg)*wodl3r|+CyAi&1YOCVB#(5&Vu!NIC5 zVbxHwvf4SBxG~%(;Q(WljQw!*<Ik0hXpK<v7d~`)C7BN24Z@6TNdbsY{pOo}42BRN zwH{biKZL?AewQq%Htu_Zcvw04kOaFsFlmfNdT&j>#iN4BU|kH@0R<KDK}DLuqjsj8 z@YTVn=`g10NCIV$(h4)80PxBWOvB)*Q(kKdn9&b_(8$1ib7Pnp#HbRm`v|tCG_dRr zEQGd^on}mjd&9^x=3l|&cwpXm2I8M*<5yt=48R`Gh7f00c}DGA5XPtm2({a2xEJb- zX!th!pEns%Ik(ybyRwBM`$68m0hp*C^N6i{1Q2|{r`UD3gH`<;kqTCDm}8`XyQR?~ z!(b*N5W3mVR|P95{|57i6gYf=XhI6&>qAft&`Q8q<{K0Q|MYFvFNDnOH#_`kzCLFL zMH@&qL4As!y&&23`P1A2_r%}WN!PuhtLi1trU_>ABK|vhBaHok(*jEsj9K7S;+cdn zZ|5_#WXWR-rT&C0_qpF`Yth9P;laC1Yf(W6dBgLZ;Jm119x8+-2c$_`77Bq;s$gIH zb3jx;E`c{>=gVK)A-$8H7={i=>mv0D>Zo}vvzcr+15PY!IdMQSIJ9Z-OQ({DVoCvK z#{uE89%g??XW19Ftxi7k!TSjWj@025dQ3gpY4zd924iPPTv^-2idmqtg(Yl+7>ZgL z_?(LW32Oq5+?Rw;$D2Vd;B6Ga@oagf2igQ^Y!5Z@p`%Y%gcAz&9jJW0L$&+^{obv0 zpp}(=v^+DwDG7Y=L1`Orz{1v`Dr4^j3h>N74tS7!n#)Xf@F3Jj!nJHLbK>$SZP{X* z_cs40p?Tgoflmk&+GdCLEyfNg)M(Q6MjdVbpl@9V0OaGr*1Zd>d?(u<oDnRj9l9$! z;A=Ywb>4K!_Cra)H1pR|-zqfcb5Ij3oEhz3L3Q+B<Xhid7g)2VEp6MisXL-lp7!=R zc4r9mhmm*E`)vrh%q@8pyi0fMX^yC3=9XKb+n%&dTZ?gn%`Tkp9xAN+=iiZ_j2|}= zsh0=QDW6AJWH%-ML;aCFP&=PL!u*5VYzke45PAWdzp(Yn4|VI`miacXmed5C2>1x> zH|M+$sMyH!`x&4CcuNhsXrMfNQHS&6F_Hj%=x%`Hel<aM`}FhpM-VbX0DzK!PU9nI zhvW383p*je9E}OB{Fz*l!0~5rX?$SsA#XR!$idRbedGS&NZvn?s<rFB^{1zMOMQn8 zvim`gck=x9m;QG4`?g(Q5XNMW;Ig-k{kM+<&_T8b4gP;VZ=-SvOK9vo0PH>s{rr)o zAZKUlIl%!gI9qAUf}S*eZ;%agAi<vdO?fa>L7idFB$_iBEc9_|{XOl;8{XAH@b_w1 z#M8}&M1*!6U|pF{#GC@4=y7~_9xH%{I{~lod4MvSgaV$0(_b>Mw@7rt#F$7}Cn^C% zqOkR$lCs!{rmmTZeUotvsmCZIU4FhJhOi&2ldT^7xSw0Th$9AhHiCV?<2d3&JQZT1 zD`^zV*T$E5s9(uQvZN6XO6nFB6MJhMVJ$RcNgjr>(#xaMVvwL1_RHHT(@rc!#x^c= za3=%7XAyJ(T|#7Yp|(zB)=t$PaM#()(@QQfjd+Jm(nEb=?*8qepOU6R+sYe+h=ONL znVEc_VlL-UhiZKmy586w`ObfO@((Itf9$u^`C|VrSBh`jpeD!8gC%7jt#RcLJr-Z_ z8nZT5hOAFwiH9a*hyk9fZyo=8e7N<k<@xzrw9u2^TT_G2G_ORNYl&}7y?kaM(R;6j zF=CXSqCKC?1VH3_-Q<8WT!m`HCPAV|Ekf=@KbPK#w>yc>)D<C^rDO;f3ooLs5qD|O z$9NolM67I1?__(QD8Hpp!sQ6Yv7f|<b4uRIuq*W9IY5b^zE1XJZ_k$qC@@lku4hA% zNaPRQ-GHwgD{%!`g3f_SR__>PWowI7#hx=NijAd<L1IPj;UuxltFr{bve{#j{@`p| z^R9+Ai>|!6F6ZqJ^`enYtXR$aE|+p7{ONSt5YN`vIv3QI6AEE!-hP%@Qef(!p3Uvr z>o&I{FI(UA2z-zKPYZpA6_Ax#F2DhELPg*s$z^r6%S+#px03~#2LYtCzJ3Jruzqnw z$Ec?YU@alm%yezDNSh$6&R=ATxo@k5^BkEK1RgC!D$WO0u`!256itYsXt&=}tQ#W+ z)k=+lLn*jfOhd<*7Trm?GzrRvu@UU=|7c(rWgyFi#oddw8VE1rU#pCmlY*N9dJ|&b zBE&lOr~k;A{vN{nkEK{=-s@8Kc=Jq~*&?RPe(d8+-m4f(Gs5%I`(0!+2;iIr?lOCq z@Tj2aPU-tD74P!38hXmLQ+hLaRvS<`ofS1Pw0XEL<>YX<rxR@#UxX+7f-4Ng!m<P^ zezLt@WvnL)q3=+wVlGJQ-;S7@&%luA{T>e!u9Tk5B?eVTwnKEqF7Lk`Pp{X=bHh4) z!6N+8oe^o}1pUAWl&R&i0*B?1i1cs1jbF!3*1x6F%>NnZ-sctlObhz{a;kiljDr9{ z@e(bW0WoI2%J1E;GGEUf3IG$AW1AuPd&^%$TSE7TuKug9IQpw1=5Vw@C#nW?Xirx! z^fjA^;`CVDQ@xW>zt4gw*2QfRF|FuWsGJfoT#Ab&&;uJ5)~b6Zj95?*ep$m+h=|D7 zoG;b4W6jn4i!$-57f=2oAE0WGQ!G=xA+VJfF23;t>`PyI?QM}@jnblC&>Fo9D)MK^ z)juzkwTkDu)Si_Tc}0kVKbqVsqJUv%^;eq|I2?A|HsmScGGjqSbt>t}rH;fMRdGQ5 zI8q2EfEc5aGMKpMbj9V<^AJHxz<%<(3SbXXgv(EuVBj?A9Zi41FhMwdh$2ZuUniU; zk9sU;Uf3q&gn0Ua33kO&boX0cVul@imWo$qTIlmAsF41qUpN=H07CS#+K>95?WzKG zI|`RoT`vSS_RWc16z#w7s4HR9Fr<$FMhGGKI(*0J#!@*}s-w9KYyoXGR=(*nDqI(9 z8%=y4UV81d`SLID0H!qhGU4Rra7f%&HaazGKueVq*nj_HRwyeL)0BgS(RIu0?Ye-g z3f1o8Djz9SATyR?0InVVEYHzPf$L7XbSKxeTSpcCwA;v`ad->01PgHJ*s?qlAh>j~ zKCcl<^!X{SY!p0}f05(eMgKN6^0&NzlMVwllbfGtf|F2o$FFGBn&%{Qq^>qwBVr^9 zW?7&xQGD&m#L2<f=d9*ySC*R%u>HYxe_IQYDVsgO9iFTpIeDWirK^ig`5(3S^!>yq z^zj2KB+YCV)X*lvRB~y!MqezKo6x(GD`m?Y2NfocGJch);<SkWp`#`IW6j{!is-As zO$8k`F{{fTzrNv+6?I0sYf5l-k@*4vJ^FkPxv;O~3kssfcW>zX;;_O2lXdl-KEA=p zdL>I8C0vvey`_e?$^o?rdsS_8#w)3fdm?0^egs42>&aBsJQ6j)8z;_dL%0gfuh<w_ zgmkJpMmSn3h57;eL3>wZVh*HG`P&;@!ih69)<ef4b#9l}wkT`4$ybWpcR{z6zw%qx zJ+J@MhYS4Z1ns+8z^7e$UuuIJN(Z#0bHoa_J!l2XJ0VQTbQ~o>q31d9^?-fjG$Ht< zeTC`Hi&0fZ`Mu|JKKNg0C6ssj{kFXFy<k8iwMdIz!QP7M>0L(E%+mvlP*3N<?#@<1 zrU^51ze+@#%eN3-FUDTO)GPsrFyvMwU16N5Ol?doyPOYw_1F?Pbk!g~DL_kJx^3+} zIMIwPz0Brtc$8B2A)Z3zbJgNJ({D`brzJ?)-kywlDe=JNk$U?Kp;+dEg>b@sEwj*b zXq;Pmz~u);y6Sfh2DtiLI{h_2G@TddqrESULjHV8Xurn0*Xa`&UM5r6<ECDCp(oD? zqiX<K57U!Vf7B81aJB|!sHNDy&0$D$Q%8|5Z%KtY;X$mF`7LoWz<_$Fd-6imEG5KY zx4-9=Z2DTrQl4obK_JPMEono23g*7p)nn-MP8ydyv+z$K+QUO-k!-$sX*cU3rSm&? zSmJ}=ipyCAM<xrgmE2U$FF{=%uevU;fZ2d*ZRHqVcJ1aFGXm)T9&7GOxISVu?OBi} z-n{T6DcAHiZTkJ6A}5zst8yj7x@)#s*~AMOn8fuX6Ej_Nf>|2lLY}9MgCE-vUeD_z zWW-b}wYYp(tI`maC)Q8(5!vWhr9DC{iiMuq^FH}|@SNv)NDkTooq;nKu0?Yd+>3TL z_F5l=$g&o|0+#Fo5;1=3fpZ)!L0yH<zc<n;n_7Qz_1|7)*v@GK$^XJ-hNmd?|MeKl zQAfFEaE3o42<R8nf^P%(KkGyX2Qx0u2a7jc5G*&ewgcaW%>8<LbnV~w6&AncRiv<p zkA{(&f5O0&Xp`uNA)9MpqSAEow|@Ap)ucxe+DIS%XD0p;sd~D%B^fv5>KM$tc#>Yn zB3&8({EEk_Bg$z;{WN<`9(ag!GJr+C9PdCN&}tS0O!JG!SGG!<jx8yWGiX6tRYE(0 zckHEN6N0~;Xx$#eIL*TJlg4pKs>q-Rx5zO=d5Ee#5iJcOcqH*(Os!F|0v$E!{RzUq ziY@D>@@x;zqn(Gfl-10W^m+{LYD-L^7Xp+3cTnW1Hat|at)VKOxGpXj&{iMY7*@ph zjvxkqo(Lar=gQ`iH|l=-b@zQn`=uI&SefNZzi+4>3Mw^!{0NQEzQ@{d7~2*uSTa*o zw<j3+M>1MwSs|UbB|o@*CR&uk8AFR{*Rkp#TmlREbzEhq17yR6$U0ZS&ti|y&}kCN ztg-rF60=PBRh@8<c!G>LP!2?>2LXmBg!Tn^`%W+*;shAtfQ}p$a1bEsNAy@ya8m`K z`otex(mY_mnf6gLK216MES9-Jbhjd=v~ydTi;3!YiZ}_#3F%SrM0a}tLe;V`J42fS z^l5Q25f{=LuM82%uasXP1p%m2ILt}fH#3jqL=<rfhYYg=YAV?n0OCXd0>E+ps?8&k z(LiZ*6fe=|LD%qld>*yS{qzMmx*MXe7Vg<Hgr{7z>qw9n)ZmM5O0IPH8z(a-kGEIK zDN6R}sl<ntYo0Q$(Q%1?z4G!yPiBN{bt}L$_bPkNph`UY<t&TIcy!N4iv0-iR_($P zl|EuL@x>|A+Dsw<S0qf1Cgxp=CTD28v1<ue(u*&u%qDha_JDtnqUniUy=yV5rC<2N zzR*@m;f3SXS$KudmQqq5^)-+ZOeKBNDM`P0;i}1sZORNaZlw!9`}hqS!n(VMit2LO zd%C5vl~XblLIvuJm<+>>NkWmlB?hARd!jS7W{Ju7y-<&n`w8P#0|lc7`3DAMp=blD z0hLv`mn~Lp8kn-;U232!Tt?hwXU10=F8X&5+81UY>xBamOp=V_$F)v1tu$V-1$(|F z|0J>;ab-Q#MhcnLP+HR;5fo4tC`7Chinaj{Zj2>j8Dk}#Oj*1tz8k}1Nl8_I-|Gt+ z=TPa}`D7Le`o{b>`!A@;%#kXF><8#S@eG!=B$l;j;jcn08>ShMV7JE1=t7Vb4L^&2 zRU0h>{yog{Er0UCfCD$3aa^+rpYjm=8SW=BPoDHmh}q03{D&MHKVyQ3lW7uB503{b zSpmqf>8M@ba?oG}SZu97#+Y=K4llOfkuJeyN>3na4Br6gZ&d8DL11t;ke{eUv?$dw zOR(dNBFzr<v%u>Eg*pKB8G1#EXe|XlT8^QkB%BDfv_4Q;(+B8*Qu*=te+LMR6jxta ze2bVVN_X7Ge3-em{gfREXB`ilR@HGcjwv#WhifxN8VG&WD*D@~1DP;$Xf}sO`rRS0 z7y<mEmEjm&7JLz%=rq0I0K!NtUXuKo>~~$XazaO3(NZ_tn8<jY1_6tfUw(^Z;^k-1 zAYIP^tX(>rl5br1fIu`*vTj?cqwqI6Jz$Ug4E&CUFUN#mBuj6es@84!uPQGrT6^KT z@GU8`oM}~)R}Eq_%$<u@{X3^ZCkRtde%SOZzf0bnBKoilTFL)?)>nIS`Sh-h`wv9U za4HvTNAM>p<x+Mc$MlQN>CC%`3F@?nUwFcGrkB5`UqYthE`MEwgA*WM6FF{@BFA)# z6|B|2rq{;n@(=6zl#xA^4Bw2`00vkzC1)me4)~~&ZjqrollNb}2%}2+^%+9pxA;oq zI{n)zZ%049i<~LDZR4G+B`bRarWqaB$7y0PRL(Ri)2#n$O`b-X%N;qbi7`t`nwV+K zpMC8z<92_hX~M3Ou_<C^wq=4l6Y@bXpRSS%h}zT41~di_EIJ|aUR7jZV0acN^#aZH zb=s#j*-7=y_UGGuVpJ*lJx3TRFFN9FfPU&%LSyO7IHWt0YLbVmWYR$>ySST-6Qr8x zz}d_DF&_lKEkNe?dm^Bi`7_kwclCKYrun8H^vi*c%eB)#UO672?BCxWUI7W+D+?EK z%1AVG40p13+K7P=&u$}1LRlgw-Z2OGmX<z$6uEHxYT-}*twwE&Rl>)wgBw_}Ids{N znA`mD?E^#=^<8*|{VbjmQM3SYr$Qf6VNp)|Sep}9n$>@`!l0EHZQ<xo$v3CICGHQO zGgNn)4Jt5-r?TlSvRf~5xGx?Q&1;uu86;loBAU@&I7E%1>9~?5+w0K}+f98IG3S=B zB1<?0m&=TLzx?PL32zEv`Tz)i_6iUiLs=$W#{|2Uq$Zc7S6pD(lY`O%JLqp0M83-@ ze7~gkT|SCsdqn&4!|#ew-<49o%b(+t$o{U{^<8c9yL$G5MU}M%bQ$uDQAR}2NG2wZ zcNuTJtXq-6i#&5pFAwxaK*M?+EVAg1U6=4<l7;}&wwS3S;nvNY<$pp;gsE<a?8p}C zvSh-t^}LObxSdVvkJm0d-TlH3nr)7vQ$WNnBCY!Njp91!9SP{(SQxzd*P9=1=O#ui zSKNI|m|onTcLID5zGdd9^rgQ%-CrKJWYw}}_Y}y5QT4`~5k^7vGt_L)hbw`OCMzJP zhfyBb#|38Fg!sIwjCXW#e}>Po4JvXwFa1qh#oi%Z6@d4**-F~S23dQuysG$N_w)I= z+^c=dZ8dXx3h8$oSvWp2Syg?v36{Utl@WHxsBy=2I~kP_@iV2)K+|$9l^G|gPoz7u zlN8t|mGKzC^}#<q4=`(2kOP^;;c3}kvaD+l)Ng$AQ762%UWdk!{yMA|PD&wqeiTT& z;)%*xOX|<{9eUTuw8n!kf_hv0eNoK3QN3M2%dC;!#%|=06355avv#z<!P|WlHk#_B zC8*DgseF^wcRn6&$Z2^GKJNbpXUlMJuD{^%V1Nm_wA%7;vuGY2_;j;J<9x`9RI=uZ z%O#~OolQbxV$(MgNw#2fWWHd4iP$f)HEzu!c|1M&aBK4E%>@!EZswVUArV#-{zwEe z7z{v;J4JS~26E^`tpS)*Qu6VQRZ!%V`}Qw~?Me4k37~61&w9;v!)n{q#@T1(sZSFv z{)`+Qsz!u}A%4_?r#>hCa3nT)5k&wejG*s#f=KkBUKzMKUS`vKV)CBcx{>kxuYXZ2 zjMjI*S9%yxBmsTX^i1bTb%sAu#HbrIyKQgjt%FQ~C3+qoxp!Ln^_SGF(SAdAEYa}s zoR8H}X9Er#u>0&T$j*2IZB7|yf=jpqg}eKUw_tx(d8T$Rb;#A}W`y)a9O=NpL4}e8 z%8to^7L5;amwp$O?w7L@fnOWoziD&l($vh3s|~kl_KyEjWrXxC<qq*(-m9vLY&&~* zNf#dNNi;KUdu{SR-@lbl2m9FttEBsuu&;I$$Kt{GTR$UeBj%2R#|6c{##4s3KPyE< zBf;B<E%4h$PwAhM93+8e$*b%dHt<6yLOCD?M64@rr|%WVap5^RIM2fsw&QtE?x=hG zwtn>6-cWZ09zQZoPr`c653^U&hLKNhhTFePYq<f;0FiCdaYl{rKu+P3e%HNsKWCBx zZ(fv)dXvP^x`D~GJg7;WN2T5R%%YL@``*GcL-T#!-w98@(ytUdSWpELDP##U!Me7r zar^!Yqa{AHir3fKos6v=o7JPIM~@s%jIKOlxZY@b719!Kn=^C)9_YX+Ih^7z3ilZq z{KQLq;ruDQO?W=KklQ1Lc#S3ay=OW@bAg#2qG`Bp;>tC|@AHUQV%yLD@od8DKk0?R z2fINB<h*;$)jw2kb;az&`n`yj6(K~Qhx_;|>{Q*eDB=qZQJq(kc<lHpQ<0g_gn(+L zsmAiHv}Rrsgu`w7$M%^XRs5k<iT<r_;VHhD@T!?Ff97%C<GFP$q|obe&=4YqGZwj^ z@p<4@8C%9Y@phJG$dVYFv3L7}r#wRCY)^epGGz*;H5mHk?$*3M?I{cmv^XFvl2G*g z(Wj-X2m@2F8<&rlt`hdKMP<nJr=jqM>Ktv#bxtI-#LXIUx)_Zpi(?mC63EIBi@1Co za67nkOl5(1+AB(1Ql$M!d$LG;|C29A>VOm**R7{&QSqz2Z|Gd%%72V7zT1}5b{C}^ zpTAmWNuWG?>Kl=K(o{VhD;GyFz7ZZB^B(3h4`&<Kpq<qJ`+HGjgC*g|QC{in919d~ zL1%Co<b(p=h9My$N=i;xnogKCGaa1W+*u^n=mIo%dN~&lV%JQv@78hcNs+Lrw)#nN z?n|SCnU#5sIfX~sh}kyYh+Gng3>8xW6;sJTlBt*m31PmhS!hvc@mdy&;wAWO97@kM z1gwshdmmNwzJ{I;k3`}@-Qh4c=FOn}%GQ_k*O;MS{oeP+z(B9Sk#f0<9YP4Reyi*6 zTXTa9!dL#j5?RVr=Gb0bV=FRysh5~^8cYhi9&2!Qe|zh%;tsX#Ion0wQ>DG--q)Az zZJ+*`8Fl`T?z7l5#yKn<B;!XIUH<s!7q!JhRKMy}3oK)4sNk9C*7c0WE87S4BI0hB zFp61=U*MOz1Ms2dgG`h(ovtCb9+-urzPg*4(K7{-Jkk8OhkZF~9}eHK?DRl^hGUd) zF~S)^xLEO$2HXqjrej>34DIOEEjaN2(EWvQ`>JWxeSiV}bLilXP9*%ektF(B^TQh# z&aEle>pD%V3y*K{`(;}4@{Cip@Ook>jG@*8;i#Q8>+2ze&IXZ8pQb+|S^mAsqHh9c zf<^CLs_6Ja2NCm&Gz3{8M(6~kg?@xen|PX8a+<sG7%-R`jEcHQbO;$(nMGtif7!(j z2jxWd3fn#|`Ed0uq2z#&M>I7+0>$*fjVN6P;<8N?=eI|s1k*4Y6rU`qj*$StsKHXz zJrW<KY6evPN_`l~_Pk?|VbP&u_!P^I7JC|*Ch%Ntw}Dd(Eequixtbw<{_1ZBH-zqj zAtbL{8iXJU-!;$lGHG>uPyzhtI=E9tcUD9t(!-mFbAe?Za{|4Nd2OlYpDLX*wWZ-l z*)RMdr?TDH7iw}nJzF8>BH<S7`1k1IyQC`AVh|~wL3fTzCzY$R2J{os&96iBWDwW) zs$(2^4hS`&3Np=8-dia?KR4E|yRPbKAU?$ojO*SCF{e}eTPj@keo>9|7<Rb{m418D zdc*3wiqu#iK(M+YHy^z5Npa!H-~SY;7qj`yGuTt}%83rNXSiBTjSK86nvfe(W+Gnn zczN;Fw$MlqqGy7yfu4=Km-Dt`hf<xze{;VLIe9v~9^6Q_IvyA1@G}FdXe!F$;7q1P zEhF=BN?YoOEd_l8Sf!tF8?P0=(JY7(LY=T9s2_gyCbXy@O|UR0)?Utk>b+d_#|!@r zVD}qgl~l!d3YdtIw`PzA!CZ8yu7j&|{~g^^23V;rG-W5Of!$2LF(<k^tRk3w4P~^w z+Aw{&QfTn6t%2k3*CLx?NXCX+{p`yb(R{|(db@NGyI&hff6W;!KCXG%nZ!mn<e0rK zz<j@m(9XYC`CQ`^>;L(vArpuddTM|_X10_Gn`5EL4v!g}+-ZYNIbVn=R*r54TZlg# z5seZLj?;`_XN!B{B^=OhV;50`g0_hWml-mFZiu3)rK=+7a~w=c06k8qwBya(Xpoyl zZ5*hI6s0DFV=L~~-7||vhG7S)IVu#_-D3zT@A6E}0sx+MsF~G+VGf@pT?@WS2S+Ky z*E<Dbu@NL;H{RQ}e99>Or3hi8Xq+w*b2aQZA;M>qb%}Wtu-G&gc9OC)w&xT|=d+B8 z3l))nCqCe1QIjE-#IvGLhqM-_TzbyHDV{~?0f{-iMt^Mw<u(B8x_Jo3hHn5fg#f<y zwAv`AtVhh~tL{J^*j3jJ0d#gJF|_$g(=49lD>SYRyt?7?R6&_2ymqV#q?luwCagg^ zuF4u(%h$`T4BAl{Nq_kVGDOtH4J}JXUsZpQa5^nA#8*9!H0)#zX$U{tT|`JKwIVkk z7|uF9=2WP7DU2UoHsn%lttFbjB1k2Qo46*$s4L|lL!AU}O8G~sFQ*9KYqm2?uo+34 zugrH>m$V%#nXFw$p)N}Pd~qt*zhHmW%iZ{fl}$i%MN(wEpYAy^+q9_{_NcIsa9%sM z(&<jQx~c@9WRALCn8s!fl6iRYSmzA=>Q_fZ8{lpP)9Y3I`0-kH*T}plfDl=}9af#% zSysbyI2G;Ic2Vnk4@CR#^tZjb`p>lgr2QrWx-uD^DhGn!F_u#~N9jb_jDoi5X$DEF z8jp&l!#GpBlRmV=DGgt$=>lI9C!%*2LE}Fp4Y+JZsnzwLwx3)KeWq%k3AfU5`)E&} zMu~v(-AjLDX!)eI`dj7=i{}KNKKD?zGAiU!L+fzXFHJ@>>I!vN<o+kizs%u|<@jj~ zt6ttM`4uWUxuHWu!+!yvNIc~ycOv}&w!DyBNvD1hNZL-O)CK_KIwvLJ?*D?5v`|Gu zv8&F@CYqNm3twvNG2Px0;2{DyGyr0P?<Cih{gA%j*yl)-OKX=RtjH$+kxmCX9`}{4 zT&`&x@O^s8sJxQ+8iJ|y`%Jr(y<fJfE-Lp1K(VK?Wg%`anO+Ek6UpEo^=~jL0Pe@7 zJVEI-gVL1b$?Gy=cj9!lr`$$v=gSvqORt-Avbu&vT@+ynu&dP{8mkt(T;?jhar67Y zICIwpUDPmG!)$S!;N=y#;27y-%l2`)OXK02yWgmqC-oO73CYHaQXI~Lf9wB8(Ru%~ z`MrPqP9#XIB*Y#O5nGMgs!7D&dz9KWs;E^}m59CfsA?N(@6{Szu@zNRTUAvQEk$Wn zb-aDPzJI{^;eMRQxzD*?*Xw$|67~Zhe7c?9lB4k+H@Z;s>2KGc*^PIhL9_|pncYU~ z_wQf2QbBNQYRu$?W#(Qb6Hd=>vEOvME?NMLgBPf`BAy>K=Oq~2`*z)@>LNSq?Z;6~ z{*m7#pYMxA4&ITWbR}gTYv{-^Ko^Dg3SIjLOx6S3s{O<GK9nvwU4MOY|3h}&$r}g_ zGq6F_eP6&HYJ$JVeauNjVwjpM<g-3`SJ&`G{E}6D(Oj7}O^GN3J6DuXT-?XxYx70) zq?bgzH+|$cEnogw+qxnBPlM<e9@6{1R1>m}>$a)(Igc3(WiE&Je}ANW*5_YuU@9eZ zK8Kfi*%cN(y>v#w=<avRq4Z6IQj>*|*5-$=uP>Ld#F9A?p|L*fd;9sQ$qJH5-J%S) zWdH%pKa-T43Z*9e%9y!~rKVYxN9UG0mg6jidqT=3OJZEECUmKSt6zS^L$4*~rrr%# zJ+Ual>B@kK6sVLr<r^~n@p}Gi^*KA}wt_(QN1|)t+qU#IwX2NXlb*rRn#AOK%T!D8 z?|Cdb{Iq=f%6c%78TWx}?5Faq@aE5y&4s0d1Ea+J`G7Ey+h^GUevkcncT<Mjk;3GW z-^gUlvOy%<UW}8exeW+M{rUX)Y_W)|^sCjI2IbPrlr(-2b2lBKYllBe1&tRj?|ckL z6!*%%{V<zc1Sv2T7fXE2!SXa2+zCV1vop(*QGp`lYS^KLXN5h+(G6oZ?{JcAUe3w@ z{mU9n7->4jxVp`Jzs1VdkKwtP%puF7a3E&<&ouX^q4G$&bQ)N?+9Q--H1STpNT=(M z5g3NDv<yXJR*z=|L^Dqp{Aw9~*}gnRMeghi|BZr5Iea*A3Yh*&G!pP;u<>FYs>Q=s z%7=EmwlK-kgU}`jRrnH3a-WFtCCR*jBD`J277dWHW+<4q(M>_Ax#!}pP_$rr;{ivI zbQY=mg`DFEG)mYdV473K2+uj7XqhZU5oLJ^BB0{)LGUr55fl7A(bpX$#$Flf=1#kV z44wDxgjAV&dYm=%Qt~#y)(*EtijQYyzDOA5PcfL&^>R{@$n;&qKlCwQzZ(u9B)^+Q zpC-v^62O{(MEr=%AWYirHag}$8ZxLnVIW`PW8sT)p-XhiuWD~s5uTcyaikdNmOw^z z*M&vW%$}~BbtY{oud^#Mn1t7B><3V%kZk!A2Fe)}`=mO@9>j!UfKFq<qCKD;rcUky zW`b^*$2ha_Imz(k^C=_Z3j-nxAgAaJ96MP$E&&<IU=AZ7=f#YD{rH55$jAf{dvFau zNqpQ-oR!GtO<>`nU7Vmuy5|g%vPe$LAU8v@bYzW4Tn&kb<|Vj^XCIcL4j}U+S%e3~ zahIId1_+*De#`)ZAH=^7a(-Ohrd4B>ao?PO+|1G=aCBHyvtm<{z;ret&=xAzTg|Ul z0Tw2JbpbTLu$4%fq(g$4DIca6=cPnE(Pa#}fvgk>%?KPt=9H1Ey98Dm5M2;=Fmchh z1%16GY7VX=*@GU#7yu99_yjgQVGWgjC~{-|1uWWt{1hg&PDD@fw7n>j7G}{JEfvMD z$g4~$<g7Op<8D{r9R96+nHe?x2lr099|3)}S)G(GJ}OjD0QyekR)#xwXOGM~LKVnr zvZ9~X?^9kFPr2CpsG1t^E%`Bf5;89l_*u!K!3_814L-MFJP$GZO+7Mh(BR8J4s%1^ zpBhpeEwf*m-wlHA_RL%yAYq8v4+Ge|@iIvX%#emc&Lq^5<k^D366P%g2Ja-Cd(8xP zeqtECx-JaL`#V+Jb|{)CNCvG-aGYKxka2Fx9kxGS?6ZEB7MMH^N1_rENauuL^4v%H z`IrpLq5}kPa6(SrH7}Yjz2uCo59tkb48DJxIw)aJL_3r45Lz8GDPGX%xk8!NpSnuj zOl?Dq2`V7L5T(0WL49Lu`{5OW2CmAPF>o7rX)cm4X@PbFO+#m#+)`!xa+q?~eo&}M zMY`Mm;w3IKwi((6e8yWjqxIsRm$PGu<d}hCcpzI45I}<DWytlT8hlIxnPV=K<+t2N z>q&%$Jnu`QtbxqF4TQJ`d;!fp<1%wvgX4VhaL25gsX^-Nyrzpb1J|JeN#n}zl78A` z-I*RHt_My#+$So5gaXS*>&s6LDQtnK%>ieRG3HPIS%?_h`y{uL*E%4g4Roi+HV${w zq|F^}_Mc#<Q|`xKx-Z|l?M_|qfP5Kr<!CNn*SQF#6_7u6kSmsl5w-;&9N{!k(CWYC zbI^~ZaSpWam*WA^Dk|+O4`J43+2E}CB;I<iz`)Zc$*6TW10Kkq1<r<30t*z$qG56u z!x=fu&3#pu`xTS&mp49;Ader?pTZ$ejub?LNxj|;Bpj$T1+?N#Kt>wODOGOrY};2i zm<pGNtXut&mT<H`eSPLzP%BB+Q;n+)q>4$FcV%w{hUWki?thII&815q0Q4^iSbtqL z$SzY|{^y@an`!c9bqj^G6T(zAg6XKt*s(`@;zVqHC5wXGok2{&mG|U9--6do0kFjh zoH4IQc#)GF`5nh5&Hx|QI=T%oNfYXY{aE7_!+9Ay;-^N>d-nSv{k2fI0`b97ozrnB zcqJ6{r47APIfI%$DyakO5^N1~nd%V`opncFnvMYVyDNeMxr8urbp$tuGKGbh$8bL8 zAb{nG|G|?atwEGxfACb{SrsaXodHxMxb2&!1Oh(K1)17QoKtxrx@3>+dV{%&krt%p zoOLsm9aiQ5(9YzmL6aW4pT1gy#Ow!V8}=N5^jjg$?k*l`Z-VE@-j2a`ij@Z0DFaX5 z1h_m5SfvEbGPhsmPonXTTw%MoM+zqK|2q)l8gLH*Fnpblc>}YTzdU*qaI$uEHG31Z z@ur?-UYQxE_$-J~98KUK_v4Rb<Wy}q_HxP^LPqGy>mpZ?Z;N4tr_pm$qG71oPV#FA z)ffSAI}`tfp#V3*5n9q$#Ze~oRm$}??#Eea6i_;yof-uOqhs#8NoXZPsDBG+k~63+ zy@JLB(g)4c_y9TOJ4OyT8{jTCvJ$G&)|pNPW7sd_r&guR(bs6;qfrC&m+)zYsrah7 zRy;$t$r&sSFhFMs|BE1S9}+yU(z-yB_SALKuqf*xyAPz&U>d>&={h&j>1cospa`Za zt??iuhk4Hu^xI6&CcO1dn`*pb&uBg;1UZmrHtuQH?+R>fI5|CJhv&~^hl36z(1){b z2}GYPcw#p=sf4=~S%qbAs;m>baz^K}t}25Rp#+vQ!*UXa;EJ||-|hDD3dYjK4mczW zepb=s#eMK|5V=^=eC^GIXzUWjNxp|%AxiC*<k;*8F{?0f21wlUL?+DijSvH&E;@4@ zQF5h&U{7Pj24?eu$>eah5;<dEEKBq7%0oI<NKqmYBCXqrxlG`<r}aC6C8Z(H9(wZ0 zlcoP%W}Ck12$(c~DRe%|ZaJ5y5@hiy5}K$2IErx3to}6k*GZ_Dq<mlM?l#S~Lvw=3 zub;?&RJM89W-o#hp+5L$@-_f%ES&4;aj&}(a{I(|+sW6}LYRS40-5NiN*kZS#0^TP z4NAuiYF`+@P5ro_8)d-`%u~Nbp8oU-Nd-%V7S`UFu)`R$3+0jHX!*#q@6U>LAI5}U zGtu3BlZB@~igW<Ll!UhsZpG)6)*UpAapSR#DN}^>PmSu%IYNN^QsCtG%Ds0R-o<4f zS0rnk``QzogkSA6ChJ_0hEmhbM4fa-xIL0oo_Cw3{Tw$`z0&d~=m|noW0gCUuSAAh zTW93SzPcF|xk+8iO@++FLVx^;arOLKEK2mLg-H5Pk#3NWl!tUw5g8v%^^@u>c&P0E zww~D+Kph8|R79654vWtRpdypirPc{<h?AsWZGj2HO9!ArseWA)_EjDo_B@De3>#f+ zEPcx<qiZZD-lcUDO=iCy`Nu&2nGL`W{I6i}zhSi@>wZ&b+Q!TS*YQ6Vbhq@hLG4dP zx|xGg)xXdbdk|*k+J&qYi(^kckKrBcsODvxWHY46KCxrDN7Jw|+FU24Z1ZLfbG!#s zdgg30Es5FPrmM~@*`v}_XqdLl{f_gDL00c0Ce8k~S;4}=heD1YvWhb$n3qgEzb$bK z{uPt?qS?nzo+#<P=n&)ZYk$!(*~tR}IA|GTw2T8NmY!{jn)%_QIyb&0%n{w<%(GUE z4g}Fj7f_XBP&J8~6a#lOl}R(9$>Rjt<M`0jO`X|VhWzE=o(H+&g8IWtM<n48$;6}= zK8)$Y;Xt-QgBXT8^SUFUfUPfwFA@4~rP||g%jI9jaIp#*xJG8}xi=T0{2ksE|EIRB zfJmo^2yI9-tyB?W?pSb<KRAy>o8L5Tjxe}kaCr{Znwuu=MngM0w7nD;+3S~_(dZ~N z7>Bbm8Na)bKiE(*Y{$*WlmYhUd<JV%MqCEl-~|1UHVgaU;6u@o`h75ls%;X$tpKn% zfVjVOYV-`Vq8MN$+#d5{Z=GRZ;jn0RF6FZZLkH<>dR9qhW!6SJzV~skY25UNeSFHL z$o})>_Zctkbo)s2B7H-ez9(UNyfvcl)D8*Kg}GDTZF1TzaBu|y26(*9BI%;Z_?_!( z-y;`?8=WrXz2dMcBoC)X`IAj8&H{uTakV^8Vq!HIus&YF5Sig1b|qFgmI~#dnCv!u zf%q8ZLR1Cno%4wUP=pZ8w0Fi6oCebq#aS!cnco(@ZO=ocgXp)<Q!X)-coOg4PEPYK zOPb}h;SkG4Y=r%=n>)j=EXnbzBWO-vqY(EY=_>0iCn3SLLArg#6tI{XRT%egdBKEc z)9k>No@rn~|MrY*ux1eR;YdoPFknL@;t{ua9yci=1_%f)o@QHR6~mrvwO7Nv5N}Yf zl=#IgIl8yUB>IG-w?sk6z7PtHoPP7<ktg2lnSwz%k1it2?0SX$t;4NC>CaVqE{!BV zE4pcZmQjZNb6dPMz2ZkmKzh^&lb(VcmH$gSNmlvw_PTSs$@R1ZWeQEZ{T}6iC%fpu zw#w(2SfGdoh+9`qYlEw?;D5FO)L#UW#o1ip`T(jNXLwbW?4|qO)gS_nl?T6cy1x^g z@bv^fvGH~+i)Yqs#?!DwV?c`Y>?|qS`|p>|H+tC6Y9<Iy67drp$BKoYo2#z^R%FLv ze|fwoCCtJlc55h-6~^Hh`3JbPTz(H<TXC>w^+AFVM?Xp5woIO?KZ)RPXfK<GFkmcv zjp>*ZuDWIuax(uyCPuCu;t3PC^Q9Zn<O9D^O-3f|Us-7F&cCuEN~SS}qi@gFimgWO zS|>wxSqaHt0s|zcbfp6;&Gp?@++4LGtuiIWzTWhJ!sAOa^ny*OVzcDg3+NYS2T}7C zhPL$y)?BEd`mT_E2^k!NLt_bB@Mrjb{ll6G+2(@I#HQ+`V-r}Nwl=BJlFuh_HiL(w zxb<&vL6<9-HvoLjDi=z3OvS(%N>ke9CgL;9vB3khA}G~BQhb@O%ARWi3HY=8k$V8O zwxkI70q4S12z|Iq4(c*!8tlTsahg`oZGGqniU6z*Wyq$rdVi_P+?3${OhQVY6xFJ( zGHo@aKJ@0IYausYF&kokVx+`?c5*J6nE)uWtVtLY{9fz-lv1DkWi~}c{l+Sd=3epu zn86zmfzgmJ9%&QZD3`@{Vb4#rH6M8jK0~(u_L&E7-IhA?_jaU10dG@&>Xcyk?F6x_ zBlW>gp&mMTMIpT882ArfdSu~TtClB+ixl01JBpbaogyAiGGu0(dwuRL@=Ac}f?nfo z??jb>7U22y*5yB6J6_(k0~6oAP+$oT{~Pnp5lVN+0s<pVp(+{yVGNy&_y3kDvgPj` z(^5WI#DNwB%`0^x)*omdWMU@mkUy0=Rjpjs;En-<O=+nLSG*Xk=VAIMwn}BhD)}0T zFM~jj_grzMTaCDj_=KYpmc%YiyhwgWVEH!E;BzYlv&N07Uv}!vi3!04ljy<bwRt(c zQ(nx-cN}a5X8_%o-T+24L7l?eyq8~f6##A#7l$5V95XW?ZI9>1ry-#(ii!^Q*+**y zFv-R=kl`zF!9Z>`DgG>;r@uMy{fV%T$F*A10wYo<n(!|R2O3WWEO8~Hsd(cAuFdTt zQ&I90T@HG1!e!&%%?n5-+4YQocS}MnorXADxY=(V)~~ExkB`v9#*~HuYlG<p1pc3? zx`qAt04MhR$D5FFX=JV|JnU)WF&D7%V|+8_Ru#y2E_hh}1Mx)tmPwX9GG276CL@Ih za8pk*7i*|`p@&t1<r@O;&%QF=(I8LD*W&ma-h-<l(}`(Tm-x3F491Ncn07dG{yY49 z9u)M%=3vxbS^2Ka2E|s-OC85Oyk1q!36{1T{YGNyyQF>Kh)n9obBD~@;=S=y!eQr~ zrD3uClC+W=tqrlGg~mVe3sAP8yjrpV8~ZCiZgjyu1}~iP$hN+imvcjg|6s*l^XJoS znX7sW6RTE@bUlui0u7j*RI_Lb|A=M|#==~R$K!sUOh`c^1ro@`0UI1rG~8>PEMQY6 z{x1A3ph_2$`3Ug3Iz7!AL^;L~z$ojg&v|QFG+eWo!HM|zuwI?kO^5;hF;j*t;K=IK zJ}j;6ryJ;vL&ykv49kAk?N@F)bH1RC7@Y2u8;opWzhis1d=c?!_jzR0ZyxFPNQGR$ zxSOS~c2I@lko<UhgGds5ZWQcdF&%zz%dmMokZZ2)O|37EH&el|{ZL0%?^m?8tGU~j z@7=PQSCaRe-N}|DV7tX${H=oV@7N}%-_xZ}e`Ze-%%I5rwP7dm#`?UH{YD!0i#|{C z`0s_x*>=$ojs9{)%u)egU(|34<P<o39y|Ner7f5;v^x*63E&RBv(FjLnwV}8mx{Wl z$<C@P>wq7(OEf3d|28odP02{$6MQXyH^arBneT+El#zM~07CVf+o@`nGWWVVWDV2G z9DuS?9#dbeFRtq@H1`3PU(}eFqjLnGbv?(T%;(l*TzOCBh~LCUrh-I(hb?ZZAp9g< zTAtF8Dv6^5Ec8KX;9N$n8t;rbTXlr+*E?3ayqz(Z20`p}058qaRRKo4Cpoof^Hq-n zN_Bq?zX#ra{PLBE%!P>b%$GUsrAlI3-SsBQD6Sv)@~-7Q%1xaD@yn*fF2h<Qo}{fd z2e#LNLg~?JkIizk$heLj<LD>PKa{0Kyr6`=`e_u?8_0cCd3riZ((qxghfeP8rHvD* zUok(P>;)Ca^~NuWmRa{)AX(iPc~?c$wRv{3akof=7xk;9>9w!z<8Oqs_jj#W{S>}F zxOI<Sz9JG|kQ)ACG!gSJja3z3&JwP2|Ax)52~jyy^+qnGVh;T!676Ai&OtHZ)bv|I zX%5G9J`lGV^?vYv@O6fli@mF88jk>rLYDN^jOw%tNcT@FvJ%%AapJY5Ta#fCOe6k| z3tguLVbX}ULPrLNK?LO8Su!PcCl{J4367&e<OkrTE#0-wPi(Ans~3>8w08a4(7wlA z#J4AD(@SgxLI3^5$b471!L=;&Y7t^aN%*Lq-`r!cf3kS@buw3n(}krnAgu(}T++f) zP$fZ$_+a&iwZZEg;-%zMaX&lbAr8{ZsuRAXyE*s%>|VWhV|m3%!{S%kg}i0H<fG(s zq%&zZBi|#`I(E5ZpNS<#>C-pye87yF@f3k)xZq^nXz{2>!RuQ?>i?2P$-gs#FH(XF zZE(rS9Qm3y)Wtk&9F*%kY;yd%E>Cs1Y^Yiw*StU@h#df}E8?A})z&}PsBAnBYK;o9 zBq@Q5Z5x|nLNF@$j5ooB+HIKDz`w=`i-Wm;!}jpY{zp|KAM~mKR!=C5{+>|tBJw4k zAdYBO1ht32RERUEra-vD4y1vSOTWLvqks^mzr?-h?5?#_f*t0K9lPeL1`n3(D=xAI zoUP_~Pim5gZ<^O55v_N7NKmuwlh%~hynaku?E2V|X3A!f(HqgRu5C^Nk9o=dnna`D zRt}d^{Y-SNg;g-=uzlv2;F?jbJbuEzKY$DF6NVJ%K!(zOUDE#$Ttx}VnL^m?OJxKz znTY#faFRPi?@+-X>7nZKWNsE3VzM#D&BRyM2H%+H&)}+E`6gxP_0N|HmNv)~Phv{L zUK9lLS&e^6sX8G|Cx>k(>KXj8HUXludFJZaDQkdxVp;it)E>u#a69JDdI%~6e9cn) z>BQ$ZVMEhw-_&9EDL4dhg|zhtY}Po7IU5Y0Wr=7V+Z65)-`|0kdH(<D6JF^Y=FB?@ z=n!t&A%i+gm=S{XmnZyGSYFuW?HRo8*k9btxZw+q*{WdHw$J9@z8lU|mA%0K8HP6P zptWjVk(AC(E4^LF^KT5`<TFo;HvVy(wC8vQ=c@e9w$qgYpTYD$moRSQlEePi1)I%Z z&FtMTRv(nOz#*}oD*a7aw#N1s#zq}73zy3~lhP)Epq}q<8NVyz1%4TWmF7vPS&q4% zJ})O(WPGX%E71%<6cQMzZ10`#kC#3PrZIJoFcr*TzI(DlUh(OG+40l(iNSxIV3{C! z$pY|tFom?PM6Vab{--S&!h;FXZD&*FQm95s)YH#@pP;OFHoA6V+){o%l%5WgW0TqU z*0l9`XfCN!aKaQ-JG}({Cd&G?nXATpAD<?JzEUNm(J7&{C30;@w5|X{u0$O%)G^s0 zu=q^xp4O-(&r|(b3>(i80mR=4JMs)9)L5xgxFxEd|E&*v`voaIVFX-KFeux<sXfas z4wk(&@|&|N<Z-A*f5+L-POK*fd)w!m84<#M-}Rm;;QNt4M)o50E7zmocZOKW2u@Gx zoZ8THybsBL6d`j3EMpgn$&f#0{<2r{gKQJIG;>7*r;N{NR($sZrO@s*wPiFe9SWvX zBG<>xNrBI+W_*mkKd$}?wcet^HfRgSDQ1o7?atx!CC?;y52t`(qydbq7gHJ-rnmNA z3W-(t1SXq?Wzwc5GGn=7IzG`dq|=mDvX%d*<oQ2MzZx(VP4Q+^z$z{qJ!0l8!EURn zCxcQsn%Jv^m@r|-jGwLS>i$J4mwr$lGmylI6r-VF>C1jxu91lIbNKbKcT^H_{s4p8 z)bLOevMXx4TL?NGqUND;0Tw&V96Edo+K-1cp89mcsZ#ZXz>_&Uo@yydw>lRIPN@nu zE>O5RkHO{r#D<x6Bkm0POUuX?AeaTud1pWV){|$afy*=TDTwH`Mf!M0P%<pyJtGM@ zr>xNL`1no<nu@+0Ni&y6!5@YFSIFsCgekBHmknpP>-PB1fsO%lC9KIRg9$6IQ72qk z&jj(Rzo}d#Rczve%c6vsiyOD5zW@G*vrB6L%2(ibyFk?wJX?vGq;Byy^}ZS-C6F8q z(g5cUVFb?#vz+q#2B=V;V`X$#*bW&8#tN&7Ck?(Tf%l>*VVIH#Zob<Xc2HuLBP@%` zlros8L^xxz%5A$tORHjYi@wZJDS<0g;i_6Aj8rad<7ErDgvfr@DP<_am0OY7|2p8n zDqNJnuHl!7Gty$Ix^GwoSmTXY3BIV;>77|N6h$UEk_(tZ*o{pMyJ_YRr^1>UZR^=t z%?y}QDS;J;c$sAs0xm%DS_OWWN;B~#j*yIb4D`i=>ggcFienr7WQKooM|2Vu$E?}7 z62-l8im^l}c{$yjg0%$V9)})K3vpEJ14Mns!~-L%9|zQ^i-lvlMkG+@PyBYR?qxZX zA4A_7DMnzepH5E#Zk*37J=+aZRqH?QmM|pUu$UmdD|QtcBs!_9i@aSPmcy@0MG0Zw z>6-f=fA)aJP}}Nc-9Opxn#ONzUo=Sw?lZ2|UJLCX|5F}1IE^yCCc#}Dg!49t$$#Kl z&UY5gZ{KfY<v&yx)M$3T3YGS-mNX^7-c`HOO~H)U)T#qKf)N;g)#UpRCH6v9a<8Un zKnpXrAV!0cEQ7?ir{jIYUHxen?gUHP6sAAB+S1CPFlz{NoLm#`W5<SHOMe?4U)sy4 z4$k`8gF!Ll&#xK9z4rZxzF}-f1u1X?32<S;H902M^B{2;OtYE#GTJF*g!_W+y65a` zO5(0YT!-?_%DRKHJ;`{iLHSOPtFqV9+tAqYyx$~$_&lbf&ZWlL4!jDl@Pr8xKnM(o zhn&x)QRF8@3dI^^>=uSry;wg;lW^fW!&7kUJ3&iTP6+Ge8{#YOt(Oav$PeBx%cI`v zyR|V${Y&#yCizb<XbSN22s`UD*mx-OaJQ`&H06icpS-yQHLm```dELy@Z>l0%4BT4 zMTMUacTAad3I;DLuB`UOUwjXrx8koV&6E^_k*;Jq2?%1Msi&HFrC#r)DUnpJHLIBI z<?FKfaTrMjTcnSbQ5we6jcCRGOrd-(21|i0SP38IU+KfhFVjtMaAifEyd>op<EN(c zdq{JpbW!mpL_vN)q3EZC^KPvFkRCZo>wm0>Mh0k+7r_|Piev7iN+9ThjcrsASPM~d zT_b)nNk2X7Ub`Lz>qX+vHsV{_9|TQl8%}Aryj*Ms<?Ho0%hX*HZ5jcNqtvF+5`RwX zov*tp$*g|mnY!iQ1;J7jig$Jf2SM?=ZKexJ`B;K}rF8a<M14ygSCzA#cP728Y-9re z@2$kRIv`9hzjM9Y<U$r${lg)f^tx2XxvCSP)L<^*n21z%1cGh@A%Gxz-W=G_6&I5` zy#O6j{Y4F;yj5$)W87&p1R?b5Lb+YbYFU3s3{uY&VwuhY>`y6&csvo7#9&H$v&Qbt z(@zah1z<{En3*CBk9M*^zxdN5{(;+e@wn#IOOkN9uX1d<S~-tpbp@JQ^&4!>K?-fD zw&7f{Y(Ea?L7&DP)v$OM5^&st7y~#Vo5LF>cnv6H4B>h+$$xn^e&Xje73;6mYxyx# ze9O`Wd9wN`AW=p%@`Yx`5DE+m2!0F`rq(2spHcrjWOb#9@s1uI8<lqL@#yh5n)F^) zGm=TURhjnZO?A%|Z`{1nk@3l73y9jL+WR6$w>{U4=i?s<pn4&aIo-xAf%$fmPgTpO z($WuT@UHhA;)7@2gC&qRgwIA1Zm!y9k6!*Kyinpy5haGF>-2TL7f_(3b=uLG3-trn zX$ci8@YX-~+&Im<%k8`kZ+Cxg6G>jegSd9+h!9hC5@@Ddhiiv{==}R~gT|%jW+zV! z!v6RAe+_LF40ymzJLjdKb=pXs4_DR=yLn@yR@b3gDaG}%K{daY?O0i5qF94xpy*}I z`1_-j%N1NS{Cg4Bg_gQk<u>Q<U6Bc`5<=h15D*y7kIQ-%Mv_Ebf0BM*!uvc6Z^@Ox zm<b2M2os{Dc{2C+bpxJTCq7jn8CSAnAH^N%yotPZfQm0yvhN(zrhU_HsdnjVdWl#6 zoT@@x_6(eJdGg7sd&un5)zRLWYwz{G{Kce*^ij?&KjnmH*UOAM>23POZ;oXz>Mmkf z$*(?Dy>QK^_ZrVw@#wVCeM${S6E+ux)VC5-0^~t4M9Fe$l~qQ|cqn+=2m8*o!)oqM zU;kSZ<-r0io!gnt>dq~nvqQ#RP}t~ym{vwQ3jrkT39I+qn;e^T7g&kY!W-8~*j7&@ zQug+cqF5l#U10fz$lZ(Y1j@LuOJ~)tY6-3A&|vCi08p{1@V_I%Me)H!OR0-V=w}$+ zXs#nF*AZj;&6mwHA5UU&Gsf3PVMp%o?9LxWoZ;4dJ2gFZboE)pZO>i5k7r?H_=&M^ zY$X}zq3sbLkbg5^MT<Ff?SOU(grMVL4aFlU_U+br$#WF&(mDO5gnKSNw6eVlp7^9w zbT6pCQ|{N$zn35XO+Ne2?w}`2$4f;>RDgOP={ZI*D`Xjr$$EGF^<51B`w9RcFl;?Z zwvuE^hl8Elm9Py2PLQ#EObxa^Q<z(`dN98TNVOoDHrvkn8W8XjIr8ImHRx0d%oRW7 z97cVS#3HN`xW%YUykilt2eDUvHJxP1YLDYznV4&^Z*qN-q1N=K#qCk-e?j5TX&pWS zd4BtzQtvv0`A#t1+rH^b1>!7v?lASX<tK4hF6PTQ1%7OFDA!eb#F$ta$r93uXV(fR zRbP|S>BebwZ4Q`;j^BLW3G?iyIEi4>rWnDAlJ?Fa@h#T&bXiNVODBXC5ke@GKj`2H z$lX8ZbnMnpAXO+menZy#V$h0@`#rl`n)B~a{=~QH0-C;gJ(c<cglA3<y4P!lx?SaH zZi3zPguFF2n!(E5r}}B)GTQ9VjSLdZU)vGCxv$$3&CDI_iQxM68LAltx?*jPe_?NJ z5%1n(p8)yK*ESBq;b)h~yu0o}Tvzae#-m~F*kF}uW1npG<z72li9(uBuHFf&Zyt%$ zq?#<_dgAyl!r*iw)WYcdf^U&<0+<!;06`gt^u3FQGC`%SlO+=n{>f-3hRsOv<T+lt z{?a>NJ|f-3o@#BEPGJQ=>IO~-iq2}os?$$owQt&{3pC?ejGuuQ5!2{b9{<1VuWM;| zzs`FmMy|t1KP8JA34mp8%bLmV9K*{vbFW$yxH0ZKp90<LD@+A+Cy<TM4nEgv_3NhA zS@NSMh!|VZ%;3%mTZ3Q&h-OD{_nf8Kl?U_S%ym1I>*Oxwk~I1-s7IgHX~gZgQz8^% zE_@o>#l+tZ5qs*Azj@UG=$!SrZK_roDSY6vW1oRKd(XsP^ID_+DY&TJB1Z5AIt6+n zLPvKzUR<|HDc~(S<HR8>h-#0&*d1tGVqd*r+ma)g-y+d-c$EkxIL|y(e-PwljABB3 zNp4v5l`EnMubOzbLGK)0wsrRNmIMA}utm+=ejNe8tisd>;HDbgsJ9m>9O?@tX9>~o zF5SENu-&W89W7@0*h27qdv-xO+F}R9D)!yg)&LCU@dQp?IAH{C=S8z`eR&*kMg?AZ z@0cXOJs)9K_~Tzpy#e<IqJ`b#NNU_^%hkHl0YqU3hHsSgD--X>yl&h=1^&vbm1)@i zX8HSSH?>ViX63Iz)8f1|adlf*uDL7P_)aDCifBPPfcY?28+69cq^Wk|#m!$Q%M`Bo z<F#C?_}`nE?h9f0`v+7I_40oNCb;l^57;rw1^Oh2#4FpabEiTlJ&zOM@mX#)$36kv zaw!tspXNWC^7Ye#&&Wl|vc7FrQ39krWrs5^kokXUw+c5<@xOVA7kTpwl5zH;?66ue zf4-!q?<KRVvuOc_h}#b!{u2`8%zg%l9iZj9xB%u*)BDbS5raS%t%c!fmJw;ws~Psq zRp_>~5qaKpQ~Ll?zbhGF!q7pRSW9kUN*?e_U<GuY)w29(1vb8*6lJDdSwZq11I%k; zvhQ0pB^{l|$8K<Q$XOBXuc38U8)fHyxS3sKZG8j6BweT!flFean4QRylSQ7-TSnt$ z*U>mY<h?k%go>`6;heu96BbBXKwVI<#gac&pbFJRTL>tCYp&`H1vcdgkD!zd%hxK` z9Kw2B#JQ<4zzQdwDrrx=c#C0yF0+0xAWnyQo4%5ie$KBuFo%1hvw^pHSjhZT2FoN& zka4&)-K=C8&3Aplu_9)$xjsVbn7srya0{(-F-wB+wQv`&b~g2J4zH|gO_>QS+_Yy+ z1!gKuj>}YYcACT4|GCJgQ_AFYilt+?Uigg=u1ys+M%Kt*X)yDE+kN+2gIlcVqY(ru z7{>rv^pY^&CE?cgG%kDR!GFyD=k=UH9=V_mZLPsE>y(pf2czaXlEvs4@1Adt@N4)d z-d=>R1wyX4{I2eA&B@H7Ld@9;TLU1Y7>Dwu^R3>;a}Pexq^eNvze@KfrK!EaUM#M% zy3?qiQ#ZSQD=GRDd%FAu6+-_-a;$qX>%-;1Vy*9LwH3R~{^!{iXELI@9gxtEYrixC z6ula5#nefwAX&@RF(4L<us|E|X5Su?$CqEPkL}4z*_1J=$~0ycF+p#EFg>u!I<l^f z@n@*HTsK>=1Dq0Db-U&B)zIAxZe0P?$IY(lqe?EZ>vH*>s3bom^0TF^=EbGg!MWUi zl0@TP=iG8!K+5A)<4~7#L~m$RnPf`>SJnzdF6Lx_{b*78(h!x29|Q7T*O!D>AYOq7 z;R|FczgU=J@6m|ku|<FZH4_PfE{OBFjn`TSa|67?6bc?@%@qFkHLInD+{dUQ$3J~b zC24#>vI8sYqs}hWt4{2-JL9_~6(dQueVHBi@x07tguuuAcDq2d_YIw)$mnUR7_Hej zyW|79DL`&JFgWoe`)AF`>(h~~5l)6kn4IpZisP(+De9`tOY^>IVDSRgN`)bR81&tC zH^#eC9$a)l4fpSg>=-Eav^Ootz7lSr1KmOEUs8te3O|R`Cw|SVbC=})d<7N_nsMyW zCeL2!Iy4aFpsuNDwef8o$kxrvHylNcorp&vQqWc2G4T^P*NXx15v0uvKluQM5uAyR z<Vu?6K%Yx=TG1~1URdUhrFF#~Q&q25czZ7jSBd6B@<koItn=2(%uk<sxW9J*Q^--6 zjbcehv7;@!%c<L1G8T;;auK<4SG)F;0Ref3s!^KD+XBDK!@vB&WbT7~AUa!e4GHr6 zl`6dYfJ~T`wRF-3N}Ilu{#jh43CD>)zvOUJX7Nj!lKLXbDh+wXq))Qk9{W)Na89O} z1xCo-+%gaCe|2wKA%>|6H9@pjiz<Y<{_vyDZyM*0t-Vd6(ww1mfBed%8T<Q;SQnzZ z*cqBaX{P%;9)CpAjokhep8R_GL@^9A9>P6(bK^BwIxJDR{msPM&*!vr5#*;e)Ccg} z68BlrpsAex!S~gh!#d5;l3z?UJk}{4bG!W(>p_lEemdfKc_77uJ<1n~1$A3dmwa;n zE`5#vr3_7$2Hz~UIo4B+<D1a2=w^BTQBRzp2zdOaMgwt66KF4hyEXT}oy*VGssk`U zNm!iT=%3Z5XK7)`TY2oJ7qEj-u1?lgjHrv1F8}W8kou}FGJTmzisR>hpG_H#sbLP} z2#bTxN_vgOPJj1{TZulG8XPj`r@@D6Q@>vJAmYIqLiKaR`=1_xmrx7XQ?f%S?*o?M z@07<HxCJ!eoI+FhLOa8nc+%@{L_7o>*UYUBgMOCATjc{>D-f<Qt%E4kI~q>mA;N9U z489L=(Sgc>%UXOv(rQ<}P&ANv>VSE>y%Pg6YZUH=OcGpA<We#^d5y{%x@w;w)%ON) zAlMZ~2r@;4T1Hc<B1Je?AP()2eKoO(9`0R@b6&^E?#4Dt*N_)4annyhnKJ-8J+14$ zM-J51@ux1KG&X3{3RM};MTExaLvI<UDLYG)SnGab$*2j)s7s?{u$QD?Ljq;_i8I6` zm5AUp{!EBhQh{COL;jeJ9$)&~3pUBPmSePkX{MC)<&6!rk5Lj6Re-}FLy?y%-jQL2 z1egX>FBE4&!cJ0P1J?_f0qb7GfFpvoaMLFxLC-PvH7|0`C#$3ed8a6|pg2RdAk0@Y z_g7l(@A}+f9OZiPf#_TQ7#?Q<R=}~_IkP9g_rCyvNq-7rU1{V2Vumjh0^~HkIa}NT zydOt=J4W9C0<DmW)e^Cp8mV~YY|hp50>gRUQhC>id3Lkec(1h700H5s1pTC(`<pSd z5m#_SnbmnIC98m7Uv4&1R^GYDq@l>{d6D}MfWc3uxJg{s?nRgb#n$4vY|4p!tN?2t z!al5+IiUznG`4k)wGZ&+K$OfI7V+|xfWm^-KO-1#(YIy_UJZ%VU$Y+X<^Flh!-Oej z<wrW6q~lzkBO4-ZP`%F94Za$`ZM0m1kH!mI=24hlXG>?~^xLBL)ytecx9-8pD`m<p zykQj1yl@S?^o6op<_x!N5ZwNhd`AXgE5*0-VU1fDpF_Xc1X0U?Qxijp#RkBF0GPr6 zc0zG%K8%wPUEhEx)ek#$5QP{4%`!Nur#%w_=z4Ck8UcmR$a)My2DHlELGTfYtc`}d zU!ULI{moBju=w<$6ZVD9(?Y&$Nj#+tTuD^M|25Iuckz8_n_q5w&)P_mY5Q($f>g>a zI>$Dh3tou~G6?v54;54ivw=N~t`wT66xps6E0-SzS7CzWj(-=k(SfU4RdN$mCkoqD zXIyoskE#$EQnIqhw#``8#``)G_s>n-eRP<m*LXLYoWpv^6ChJ<(pYUaQQb><Yjt&@ z+Pu$9WfA2wZf28F<I-4j0q$Q=8tGPER7onDH9~j>)%s`D1_~OW`w=Y#6+x~U^*_>) zm3c&X-L;Im>y33|-cV5cZDD2KmcBa07%kRv#J1Y?Qy5a_M18ibzzu@<R9ZH$SzjZ4 z{lRtA_A0e_qT$YV!#zP{oHa$4$vXeeRy_R=ZSX+>8wl>yZe9;>>X2>9+D`qHPDWRT zcM0BTY;1b6-Slj`-cc6d41*Rk5U0RGU%@+!iOAB4=9lo6*~S{gSTWS=<o;Zce|d7t z`-zqh6IJw;)OS@m%dY<QL$&J}ty_()=30~vejv2J6>ccMF3|Qfh|>0J;zoO*0MkD3 zIiroa)^Gf08<SZ(H1kFY0cwsp&$bVo^J|ZIV`UMIv?l=Q3mvpS?E+05LX#c+6HWH{ z#OTEi3A0Yg%bl^Nl@4BV9<iMYUpvpRb?Ka%D&Jq{M0aUqc4;+rp=7V$E+?Ju>mtf^ z>zkeS$KnEw_`MvvDQ1)17GJxqK9{n`BAJFetu8-s%6#DR)uopi&EJG*tAF4n_t3}e z;SkR4tt_%~?SbFq!z*7OhRP}W)x<1GiiKV7xt7^;T}S~?1uox4tevQ}#>(|3n)N1s z<xjxy-Sw&`k9ntj?agKD%h!<@+~_H|+*g{}cS{Z_TF_MfwU6T-TYsq;)bf-F+umGR zxE&x=s=0!+q&%vtG8X3{we6Wb`+519S(P84^z7GZ75w#Cd;YV(f1fd#GoVwqg##I< zs_m4i;z?{S=u}CUALwv}W*6ks`^^663<ymPWM?QO+|ETT4M>;|hLxw-Hx`{>-3H~R z23;ES!2f8nOM|NBL+2)<q=hAKVL~lEC1oUs)YylK6y2)Z*au`=M~UBN=jDgZriM{L z&@)8ptV)+&7Q-TV#A%6sUQK~P8-7|epp-S@B|myYdt|J7*e7c=aH_%0e1sD;8pJ+! zb*kEEX;fHZ>{`~?HMsm)A#?wVF$(**nd#W2)5M<O@zkmN!RF&3S>xF|<2%=(91O*8 zbBPhLl=@tLg&Rs2p!<rm>kR2Z2%9yK^Jy$Mc%tr~OP9lq6;?Qm4zyMP@4rCWD}YyT z#rU+8Z=+e;{!K*i0Bz=z29FVDgh}>>i8ft29GHSBl{gS;KLtE@bvc<j<D~n_X~LX% zgAqJgKlS26mO+5iZGok7?+4ubP6E^<g?Dq59Br)}zupT9`OiF|tz>B+bnzB9IYIu% zh}x!n@z)psW1k6Tnl1%*!xJJu<YzV(P8)Yl3ws%1&EVS()odNAam|QcHvv5}IC+A{ zia3!x)mVuFGKFR&ugrO<&M4Z?9FJ-rp~;+#6nlCJ`aqiPiU7xMp=4hUdUhmUYnB4D zsbixWie2x|_2;QN=238*_#HQAu{-}EG5Q~V`sTtM!;o8fZla4MTGF0mChZ2=2RPf4 zyq~;SX3c^3-D|^NoiG3t9zx=90J_|_y4?|U$_@3@M6Qn2p13}++I>s0P>^vClCyxb zC}hJ`C6ASXq<TMhH+|_ql<!0+CE!;b`>br~HKeL^$Hp-^I~>U3nByKWy2G|mb7gS? z^%`<667RJjtX$ZW0?6~XyB|c1jVFW$j@f0FvG%;5mlETj>zU$R43Gk5;}*xVmk8K} z9>ayfnw&N0ta8e8M=ztV%_7?!(|+h`BQ}6NBN}zVk=fd^_`{VfVdO3)wc&Zo^4BX8 z4J~s`BB+)Zy}Qlm><{P{yr^&k?b!7w#Pc}LgsaR<D|^wy5|s%r9L7%xUpp^WI79^| z6_9o>tQ{1P^(=$?x*r^oI*<n<BSSa+Csz;u(~KJqJ=xk>sBVAh@<uk|>x#nOTK4L4 zBFD!l7QiDT_Gb3#%o}tmB{46$(nx(hd@(jWu4uXXG^Eu6zLoV!C0K6Yzcnk)4W;GY zZ%;09?`6imF0@yE-+d=x>L#|@?n=v?jjCP;aFSqUGtX8z7{66#v$q-A%7+j|qBvD~ zPP(-3qK~qDR}5xZd`W$ces?lsd2fE^gk3vBJ14B=8^HECd+&=dk|Jwsv9K=hq2lyW zAYRl|NFSPjP#OJ*>`*niwtnbG6t}yXK0OW|_?$bv-6HzVPVtk&#m`Rhfl?)(Hy6-Y zcsQqk)a~S0zbBpaxs3(hbo`GT%|D~9tvfpkpL5=vEJceVw;lucvQ}dDk~3sb#KVd= zvG)<qX+uxB>l3RN3Mdtz3c~1<oh{A{<-Lv0>BX7&<!b`~-gS3z4;}wpMFu7PGcA7q z=N8HanH8^fK3ieE<t<vg@mb9tTiecyRz&2<UU&Ru{yRWs)8`v{>8^n?8se(J|H!Eg z`)2vXuUQJCcLs*TSJ~UXbMEcKKnDjL-%yo#0)w>|E|%g9v?*3yW;OPXuS*63F9t@L z?er;pC?S56%RL+y*=pR~Q#x}XKFd?A3^03qYlHA=WACeXW3_3{chbFoKkAJStXoh) z|IUn_y>l3tyQGl2Rw(*|b2nPG<kQg}y3J8K`$Q%Fa<W{^;LYD=KaJ8B^gU|pIl1GK zJ_Y3-Q(hdMd5NTaf5LNPrr=)8f%|HyRU!6_gp+%KzUJe6@n_ruk)gg;#}E*FpXD$; z_fP&REPjSH(q(W*boJ%QVXoNCtD3*vh&s76E7A1}In|;O7m$88k!`gxRbs|jOY0|( zzu#11Qazp20bouE%+u$YH1hr+513{1z%l?+j?z%3)k3Ly#4*>{ys*~~jZka(E4pI7 zwyu}TT6nKq^ZREII)<%xeoH}Wwg0z7L07ed|8gO0j5%=5Gb^RjUqNCN$H&#!k>@<h zhOH;Q@8&kl%9Q=4t6d_zK!6s=*`>_Hf7+ar<6m$Xk|*IFE060REr!Hg1(a2ECOs^` z@@{qOzo~LWoh1vRa+CcwV&)})xOD<in|W>pSO!nmTzI?Z{`mUOy^Tj5+!H*3(x(lV z`fpyt>F6_h@)Kh|Vj=t#D_#@+une;zwb0F_cR&1-d_eXttniST6mXjN(yPdZuQ_b- zoM-R+07%T*V(h-(xuZzX^LzyRmcop|t}d}ZzGeuJD}i2PRd?~jpQw=_AfhUUsfK-L zbtG5n<qWr{*hbT<z6w%N?D4_I%eud4IsM)Q;X#EAW$L%2Hxua;AUF1vO#eFY<t6>3 zC*0H%^DaC*s8TY%U_u-evBsp;J5OtBNsyOOlw$g#dO+r}vqx6*TMs5wnE^gNBfkj= z5}d;4DrZ$~LLS?UJt7lB$5P_5B)ZBk0qk(>?a1%X4|d+CS0X_Rd6kd|*BNYM<e~&& zL343J(^e3&(o0D^o-v^&?ATGo<xag5m3X~%>$+~y2?T&(sRFltpz}mpli1ERBN^*- zR*oWjV9t757}Sh3=K2It(%#qRsySpwqiQsQzmwsDVPze*_I3`hC1p%57<bDF#!{bU z2_8Rxov2cgcYiT_QK6@zO8?8Vio?Hwu#~b_4X{)c<#_9%PSf10X&UXX%*h*vuGi5Q zLRezKlDx7skfcce2XosZX|=bt{5IwKc7>MP-7{8J@F@4VAFq4xGLKBZG**=P1puzf zo$Ag?2mi+PYFZ~=$$sh_j;{P18Jj0=o%SL<J-HLY7}|tSR8N5ZEdBB=vSYU3;k8Bu zV9zT#Q2Ne9TG?LPEM7b(^9qxC$kTq~DsOB+6<biTxPMe^M5QL%Q&vws?rpWYTr7m{ zd#A{B+_Cdy{`q>+_AvKO;^@4|vw()X>g%*d>gBDfPbD|@CV+?}tQe!_c5As^@AYq4 zk(LSmkJO9#=3?zw1;a*#&e)%&AREIhszG@L36$hUgkxn^)FQf4_Vdn(ad2~_-T39x zcPl{(EM%*`G7%-)@rm>8iJ*8>1nJe)<r|?(j|v&LS&L%qG>5L0{W%f3o~9VZ*EalF z^6b^;Wj!acKXWb`zqo*IR0WtK1Qjb=m<c+S`=FV{rhDt#^=g?>gFoqn{bqjZfzX<^ z6o?Y9Qy+MTyoYg#b=E&3tJ_j(o-x{DN5aR1E3j4$p6g7W7@J!fO97ayF9RHLVFL*< zYwVgc1A@zT<$CP{ETZ=MVxq|iBL*==AW5H@XbiV$CbFoW$~fUGsY!0$oB=aLu4&J* zgtOShQ0sY;;Q*@!d6ik)I8nG)6=kGEA!S-avV<NUj~M-|PYFAT5tmx0-hYJlO$j5+ z5f#N#&+ao4gTutlV<VYGXBdh80G6yxWKnC*V+o`Wp}E&!f_N0Cv2dDjEFn>J&XWd7 z80Omm_|@XBW?r#3W`CKNC~OSk%%!s8RuIXjU&Y~cNIt0MLm761idAM3C_GD4hJI~W z^0|7f6cU>%P@s}-GczD8a6Qj7q=Sp9RfQM0s-H}-fot!B1Xq9;Ni$(t?{Pl)B@2e< z>ED^HJoN=du)~_m82A;>VQF4cs^qj%q7=>mSM8a|-%eoGjj1Fm4lvtKV_0lF6UD`2 ztY02BiL<TW`@+7a4!uQz0b#1+qG@VCs-Um$`PGv$(q5@{uKBK%z`3;1c&rjrIS+^x z0?`L4=`6~OiMM46l7IlAq)q!en)kekumMt#Ud@dCT?8L|&CIB0D3t~Xm<CYIY#Ege zrCtMT?BOX#WxfRwWwNI8R7CT`ROVahU{lZbyz|}CO#%Gr6!yg*jttfmjNO$r!UDBG zm}fXl7Eya~@{c30d4c4WFS4Eigx+L&WsJ!=rgI!?sUroKF?rUu_ie)xX#iKNOxn&Q zt&FL6n|_Z4WWcp7ix{d|DHiR6aIW-&)il+`gPlQc_c8BjSzmFqEwc6dPfU>So?T(P z1Elqp_eX~mMk&-}>B5VKyfqU%D&$J;3C~jB=?x*?IdG$uD0|suik<w(#DeI-7M}k2 zi38NidC&60Bfeb)+_eTKAu<SHowwi-7xMd13<tByJg^imWHKYt;Yb;iG;y(?DDtJ^ zBIbfYxFVD>Ja?r0ego3TQ2B7<+`rZ1FX~WTIx7W7#TQrzJiwKLUUFdNoDyRO9}JBQ z1ehS-92wUl-&+hgz06!XYF|N7ECyVVYh|mo1m=Zx)~G_^w>0VzPEXW0)^3GH!%Wn% ztjgwU-3ALPy_2vN4H4#DW9^CU8y~|NPc6GDTBY$Tl}V0g-P=(~o{8?2k8vVl#6M3S zQ!ugEz{GMZ64R0`YMg2i9CBh)z-;;0vujW_E$mxX!5V&eBFrI(RQ~?%hIn;MXbjow z^JBz$;E#%|rYPy@jayTP-RCw%jB(~S1^5^EhacTdC#^#G0M-?def=P+zZzq^zz6W@ z82=GoPdW!w!8w%zlLb1ZCY9+RR_YsyfoAjB6x}jcF0XxZ>B?zi@zIboiETVYN^KTc zF?(El?a8?xER4ehtmegm1Z6OMTF?O=YB6*nI~XD4b_uFlui!Zmg>dnx<&giRT+Bkc z^mCg!&Z5DZe{({gH+A@VY05#i%^;43`Blf%!CuAzhUruMahiJFoQBiythp#jel8r} z13o<74&MS=BSnn|&z#&uy%bD3SDKzs;XtPu<9ug#UGR0Jstu|0;^Oyv`(hn1mrTC# zehNM3K$O3Em?}2>e-xdCTN7Lx#<wwGqa2LU;27N<QjYEp=@{Lil!6NejFggY5D*Y4 z6%}=qpdboJD-F_uC<5x<kMBP?*SStS=RWuIyVtcsE!*IE8;9v!LSe-hzAF(UDRqO? zZqIhn?u^BzvY4)JnxT;!mpUhF49%&ZhFQXgoFw2MkuC*ptkE;!__6iJP9<+X=^Hh| zeSDebWZf)!72fQp#*KaDayQxpq5)VH_tUP%v_Q-LV-nHri2$%?X%mn}YDCgzc@q6> zBVZ~VGv!%1+Q&a%<!rmN$jadG#*&ni#V!SwsI!@(@O!YnvR~)*IAVpZ)oJ!%A7fa+ z05{EH=dWQb_TNXh3t#$9M*}vV9U5RK!}cc%^oN8Z*;69Ns9Z<@VhJPXe^MiEzs_%J z9_s<C=5%$NLge9(hMe&Uo!2k--ucw^_}n*Vqt~n=@CGHS3vqAqM_Q6dNu$Mhl?bpc z=uz*YW)8=-|E8EN9Fw^AyIMdDY!ONH@^!faYKB<#wDxtNY6MZsD2dAlzZayS5|{K# zSG>1Yhk0Khi3BF&q)eET*Qhe<N97FyzzQM6LQ{N?I%y56ew9RJSe>NcDEUQz#3NcM z0?4z*CG~pasRmRE(2wgE$gJdsjhiJ}@!%R=sB)dA;TUPy1!5|z*#iS~ukx`tL4=#I z%406LIRR>PQ=V)G<m`E2FqQHcB^P3fD;@L3S%QZa`f?&oNz=^PhQ0c(2~ew%mk#-) zX7#k|E1Kk<mw2n^@Lg_z9(hepr{bo(i7Bb~CRL3KKB`v42q%n$OC@bnsp&yPZUQ@< z^u{NZvdJ&{0!eSsIwmhNcloI$1h8-Ms)LAvN2aij$5d%Y>QG^-zKCn21aQ~gA4IN^ zXURQe-As@{9IIu39sySV+7?1<hBxSyC<sur;dm~RBXw}Zc`s*}l?<HUEi;pV6e~!0 zuuy02sefH>HSlg;dv}ds#FOC-ftdjnyrrK+T}$0AQ&J?=V}Qzch(pfO*d28!Nbubn zr*0BJFR@jMlSCC@Vnj)bAP=cSMD~VU$KI1jkA1v`s;qF!O;=~UAX-Q78(`JR5HQ_n z8mJTEnW0H{vns7ge+&+IehV@^+FrU=9#?kt(O*+?J(9kb)YUSO1IjeC))pvlZW18X z+UXLDllq8l2G)3<02yo*n4P=sxtgM!l{N{Xp7w$cYADK=p+|bSOU{?=V?C1mKoFL< z1ty_Lih9?xt4H$5QdVauVlkl~O)>;9(3n9Y6Vy0y#>o*zBv?nTB82(QgTZ*bp2F+t zNk}GK0kt<wa7@wzny0EmuBpE#%#GyZh6M%$N!v+Wx09x@f|iIlNM#6VC}@~))Z<xh z(v{wSp-5>-J{vAHPSWc#DL~5kETH7*&A_~nku;Jxj_YzmzNv?3c>;=1mz-PBe-m(F zM?gIi0CpsN*kLe@!^J58MB;|P=GF+!OuPovFM;H6yZgQ@&;4ri0<y`6H9;qZG5m=7 z)dF=2HU!ewXR-y#R4XtmfLLv?SmwwMPia6R_3|ofM{2l84YxlMK50G>gfK5oW=8aV zEP%+@0h4p&5lGw1vL~?|@~xvNb^BF?F~rIH?dy&Y%IhQ9FgZ32h#?usGXmr}5|UWA zj%ApX3@y+*F{>Mt{`rM89AcJ2vP=Q=6VI^2uXUwmhF$}NsP}`-NjaSePhga*wGBmx zy3LMWYs4xGkc?iTV%5xb5PE1+VekBvUf-T4y}du5Z04SOjR2Tpg?*frghYO^1%7>$ z+|+mMLh>*Jp4_s~6@ob30VcQ0gAi%2<86`vecxOLZ<_%R^q>O7Db{MsBxINPFD%K$ zUMj_oByA6Ia=|BC*^1$E;WtTGjZcMB;|3@rqS2$>LDC@qWGcFiP7&f3eI?1$T<Anm z&d2WY8bnYNYNXk<Ty9s;4!j=x`HwENPoAVK^*8|3Z><DDfM=Cgrkxqbj9i_H5}k^D zA<G(Rh`G<nXlZZ8wA=A-3*j?Zv?N3%131F5FdS#GeKMVLG*T%@E#IO`S){sAo17^U z@%H|RL+aVkZeVUiha#`FUF%;%DGdl>V>X-PC95NlD+i?3K0nxDOK7UD5*j~fpOp=T z^xQ9MN@O^>!~ew$pRNSCaY1rXnoV8NPY#$lWa$X@)zz?tl(a%@O{lP9N0+8De7WRc zMK||($d@Fe@;m|RzT@iNuigGqBy8*K*1R<P3SP-^p*VWbHqmXq!p*s&8Rtt{(Mv1i zfeyqQc>bDqlOm12>Pn(^eHTR{K6oOUF@qN!R~Pu4)x?ST<nT%-O^kzt5Ts83{LF*L zeBZ?xHaL0j@?%Ih4S^lO`(6fpZOW6+Tri=mc|Ef!Msud?f<MeC`1$?0fnyT3-aUE6 z5!>r1J*4>l%k^Pu&r}?kmvn6`6k@EokdJnoB*^D!y!fR=!V0>k^ejHRjTbdCSV(qj zgLtt>dx1k|Vth#*)0P$b3r*?lE58;6^wc31K&T&ysA<)J^>w##^rTO5&x)8#{UpVr zTeJ>+qlBb(+Z5c_9Vfw|R&(9Yc7b0^9;Nb-(n39nFhfOO+jC#Yz25HhN5<}M__*h8 z8RXYL6CvPnc_1I;Yp_Mqh`P-5b7glD-rG~^sbfLJSG<u)YStXx)0HS*r-Gi3q&Q;R zUcZF07t94~Wti<_T==T%&RbG(v)Um<^_N=#$;*PJgPY>`MulV3y0Tx4XH#irS;xTr z!xMBtwL=nYm;>o6Ucc#lH|eX8c}XP1RKRvLuE^5(-fw}$@5wjLHr<qa@LYpaunSDm z2!@w!crB6iY0y6PXyjC2({^UdI;ORB%!4qZuGoepVR_6+)t*Opylt$$fKESC8Keo` zCCNU$oJ1-WT#^<^l~<ZX8}^M`S@u??q}-RSQ0YzUnN_UaJSCH`YX8mnv|YU9S!!iK z`piR)3i<Rnv+GNw3i~>X@zx$*$OkU}RE{T?mBdvgh)9brY7bME<Nluz<Pdx#-xP?9 zl)%cn4VJ%}E|4Z^CqfMalGJ-Mt+>e=RGH?8VaiYzWb+nD^6qq8$mY1OUlzpaSt!KJ z0pfXomGiZmT8g7jG%3SD{`Ut=G9T&gUG;*qZ^aA&JiFr=XND2k5X<e$%URL1EucbP z%xOCK4Q21G@!WGih<uAl;r3U;nOhE%JC=a#WUqka$B@1-1|y~9Hx!m%v^yv0LoESP z2V-TwTP1~slGjS!4Y6sJ9D(c9q3ZwI7KP*;3m5YpgGd3pDLvC!S|mRyH~iBV_s)VW z;nb^I5cxZ~M96XyX+37#C+eSTvgp>R0rYn=|3mjfbVJDHaXM89dA>!`YU<0wQim)v ziycdcpHy;}KOk9%R^H=H%YHhcFGTVZqCmbB+{h%gr5f>Y7<IpXq}#yo_&LnvYvPm^ zUs3QA9isr%j9Z<<!pR-4-Aj7xA0#;Mm_bBF=N<Vzr5imuZCf?4upsAn6Pk?kXvANc zk`&9$5&O@GpCpU;AY0vs$+AJI*ocqBqn<=z(z_J1%&ZmNAa8ki<YA>tcJ=cwTH)k} z8p_&H!r@Vg^N~02l1lgti{>^4DFNq9fi?j%2Zvr<)p)K?o&-`zYL3DKvj_oA2+ka0 za~}2d6k;t}sq!o$zAvD=?IfS$kvaY1TbfMQEeLNrQ2T1A4P>6_M$)7K7Q&PgG0!KL zA<D<!c(Q2PeeEntQw>t<aKa^doJNUr_SYv(j|Vf|J@Ips`ufrh?GDjQBweCA8%oEF z9)&$QJw7Rz$fjc0l)7blML}09t?x3r7IMn%I8aIq61iIXFaDvoM~vT%`}?gBk-E^@ zD6gUMsJFrp5nH@c!}G*!tO2RogDc0x$TMj~-c0Gql&Waub=tItHu%b!?op06s#RLM zG(|rjz2j(i%4nBIK%V4hsaqB|BihBa6qh}21Z4m^ugE}{wt({lqHU@TQqj@?plDG< z;`IRDJXL+lMt!a9omN1su(yA}#uuXOn>atnzDv;i7nwY7PPCR>vCdVVE{5;F9|>7G zhHf7m{vChG1>m-<Uhw<IOMQ_>>EyUwZ+RQ#g^zpZlPo)I#{?Zr`R=J18genrx($?3 zdys27TU_sZqjR(ADoMYxtKr`)S1&N8mdZwqkL^=zmg>uunug(Ryi&bKe*BX_;pBXC zpm@|9eN(T@I5Wfw9vgL=c#W*eXFf2RM^Hg0O>3nwiBMld`fk($UEI(9DcZdFjptiA zDNvYHs-`kPC)HT6tE5Y^A^E?`zsV>fJ$VTf%MrTfg5L>qkS!yq7$tQGINFfTh;eFE z%6<Yvz>#fy<tdSi2vnR)<eO{TB!I8R5q7HXDw#hRuD<&KTX3?+#6TqVAaX$00*K1n z__nApBcyMsH<inhzfv*<FWMt)=t*_$B=La^7fnX{pJgmX<eubsG!7{gfz-xZ+aP_c zBlrhWnCR1WigjrER9Plqz5K_M{Yfm>2?eWx{31ERLNjsOhC{|gah_i}kh+?(LZlP= z_N4<$+Y&1o(oj6`X=1nptckLlvMOMxW~n>Md=C?|LR{nCl6{x=K#z;DOif=@TwIg` zy{t$aoPJoAVuNct`Z<yM`9(dt!!bBNTlcD$NVeOV4(dv3aLq1wQJ!%?8SV7*JnlYH z;L$zyy9J#;>n4+HG2NdRle|8>$>fdVVz80v=ZV333}j2)Q9f9B8ooaM=#ENwWl1X- z^mzk-TN`5jY0;KIxpuNOUZs0aI#KP{?#yHFk8Q7F9Ek2785e0*CpWEF#F)BCuyu46 z<eIe40M`bC1%oN&-yw`8>z=EVtd5BpgmdT<k2GMDAn@^5&4O`4{OLph_|<XlRVKX7 zePc;%_meL;<>#MLErMEeK*26GawfXf{}3FOnWBCy&Vkc_8>x&n%%wc_WB1ENG|1B_ z7NG^IS9Pp=9CMr?h?!4b>e?&<MvYS74P%K<z%(EFf5)?ibcmnK82S<s=KIv~KZv%s z<m_q!)wDb7%~f!n6&0~-C5@Fa?q20pZ|ys<jnzpk&P_F`sM4m|4Edl&SC+4iMYkd5 zGp;3KgJ>8JJB8V9{SKq=WK!JKuSksUS#mU$W#}1tfKKuY*`NaS{%4M;jcVLd=ESSq zBnF|of~>j<MuP_0&L)bJx|wr;Rz2ynYRQ}T&U`27Lz{YR1vN5Dt(fjh3qCM6{vl|H zWm34+(%+`|j?6_LV6+DlP*E+@VWR&b%3SvDm-axK_28bBh}Nw#5WVusVoo_+{->bj zts}H<-&<up!%Xob7*wn%#L3FnUAX&`^M-!FR;Nn&HdPP!KAVHTTHi#Ku?l#u>4VC8 zxk8BD-yM-CH7efjPr7io?g>MIP<C#X%UqWhx33SXo5!nVLBl-va$G7HMUMs31tJGm zNmH}FA6!K!iR8YKxsPd4P=WA~RU@)>{10V;n>R#E=C5e$7%s%^u^L~+c*H^%GUtAC zO$Ulp@`}zMZlnp^Qtec!Ek6SqUX^gUfbfQggvC$R<-1>mn*DSw2bL5sz1Vv^faQC+ z-?iLY%+ww!Iq{<VM0vNkm+ETo(E!||_jvf*4EiHbqh0yON8PKheoooG;jv~Z3A(|> z@@VDnPuX^u);sEV$ILv_bycq~_PUl||6x2nCWD}|D>%f`o2oaIKPSuoRYqy7LbcA^ z+&;m`B9OpDBWrCCbTYLU=|f#{bQMc25zt4Ekxk<If}~a7?z=*0SIPcF&rnOIQ8wz+ zWSO^yxKOtH+52Tv<jeUPgD-W1*EviE^6$<fwg;|)<VZR^DCUfSK>@zwEAqim#?I71 z5goa7n{w2p!){0dGohA60x@}B=KG9X3Xm`dw$XsM3bk@sL9PPai`#EisQcxzqsoiE zyMisT_`)=aeS9=OcnHykH05yar%MPBlDV@p>H&hs*ck!j;4spx6+d8znT$XOPy<;- z0QhDm(JjL<+9M)#$PPeZ9RjR#kXfW%`;}i_qvS}iDga+H2&*sdjK{u)!QM+|gWSE- zt}_CNpA;<sgT}m@oc<MRKw=eJjzT2@+nsEG1c%q^0M=pT@}qK5eTj4fVM#QQGg&~C zfozGL@vXsvh}EU-xcnJg|Ag%lM3cbenk-tJ=?IR9I5oe%d6IbL(>90;hA`cS1Hd^Z zRhiya87QTPCQmS+zhFZgTVu^*vF56<9d7gy{tB)=D4cagB#m#k61y;P3yTZl0Y?1d zujT+;HxBBe{re6O(*bq>t~#v5-zu@@&yFk=Lp<hcY%t}O^rA1jE{-gui+y5ln{{G9 z(6LjFf8cMFM28cWrEMPq?$vO)lvAjzzBLR*65L=WPG!`X%DVe>qAR<N-fO>FHRPlK zHsT1=CI>*uSE=wj85&k+SZG(zu_Rzg)ESVYtXv&|12VOPANuHYy)|x&svn)#m0AT{ zLi(J`1RP$y-l}<v53K`qT;ioXOEp$?fwv9Z7tEC#)k-7*VDbCwbhFPczRF-tX<gSh ziaIPp*JFW5+}=_OU13F--<ub2O1Qo~f2>^*iCIvC{AQ>>Qp!%i^6J<FaHmQ+QsY*C zg4f`69RB}FS>S?oT~#m~0H(NXA<~~lwv)FnE~t`ymByT>X{ul9FY4a0rN#Xo59@p} z4F&zJcYk^GMAgzl?tV+iraFaMMP)Ktz$I&aeM3~W?QU&Y)UERCB7%y_R@6AV+^1iz zQ&*1+ok#7jwd8|hv2)Tg)M!xK{<rH?Txt@pL&8Y(GiX&LkjXK`t&M!yEv`Mn$s<Rq zfI|}c<wr;5PX4g1_{=Btd^8U3uY$oKv*Xv|OlF{^5*pk{TD6(ZN+o0=831O*-8HK| zK?8uJ9)BJJ?=)?;r+(NbY(zEEwJ)RHTj3H-YyjIWXfqZli}Qy2T(Outl~Y&+fRRYD zofR2Kd<EB1<)45=;NbhF4WR?vOO~(uK}?s%dscEILyZtT>;q1CjE?oVjc5VVPNo&C z{$h@7u`>!S=lnwvUSheY@{~F%a9y$5;tt2nq%4INTN%%<7EP+UcatWlBt4-HIk&X$ zc7dq{vDH9=kUnzlpjX^XW68*mgjo3yVROVkL1XmXBYtvot=&~5i3wc;$URAmomvGz za1kvZ_BM)pm&82IbtS!S;vpIvkN_OK%>rg>2V5PcoHt)x3q*eqe*ddN>FZuL25mHJ z3G@U!UJl#%JRievL5hi_i!k%|-rk;2{G)?arZmD-^t$cZiEH|au7I%wetbaGE(>|j zjN@8k$x81MXD99P?yDMh8H+8K!{0r5y~x4Po!kGl1*W)`1N3A62B{pZjI#R!J)`>x zb;esMf?X7U5ae@Ztn|0ft8x7KSv%Y6ALB~@JOp&-zI=Jo4PN9<-C!~V7(HUD=xfAE z1BOLLQtxqYU59%9qdvd;kqK#`ejWS^&_mH}mhyT@<q2S8y9#sv$cm2L<UKof(iL2B znx4a5BO>Z8_IC6#IaBM6m-Y~;h<&HXjd`@JHt^!zkNd9MP~w+&Gk@oos9Gz#mGls- z%T<4ubsZfh83#?oJbyZsXJ#>eXD-Elk9VcY<9J66qB~^(8I{sdpa{ifoo$bgBOcmj z9>N-{5EHwWKGsk>m$C!sKm77IqaGZB-iu$&bt+}1q<xdq`(y03>pAs0*Zm_5Exh8P z%j!r;!<SZ(N&!E-u3E5eW~~4P0jt`4+K|;{YIhF8RjQDAUC)}Tu@wtNPwa0-Vt{>F zq@e4rnF}r5{WZjJ2i|>mV@l|Ut#(3jt}*h96j5V!>cqHY@*K)nSqADX(e>&7_!T(} zT%{p+@UwyG-g2%Ap&*21z^9px=WAI9gFk`GRp@eEI~P`yp~{`I>VnnfT%M~5CFe@C zvTQin(#k4VJmdme;pF)dE2+JxG?>a*=SD=OoqK7#7m&U0b;2;nH@Mp2qzymvhFdvC z3Zk#m2_7(m@9li0as(nBfkgc>i<Olsn4qPrccjK(q#WR?BcAfm<B^=*D6bnpmeSW6 zSN72knVL&jqXq!c@F`}ZgghE?#szN`G?xP>D&ZvYI`F0$0Jhkc{-V|yvB(F0aAmhz z7v?*x53jNYUftJ*_pEj2>Tq-6(99*O(t5&<4uCmJq~j&k(6;-4$Ck}SYG+M%a5hr4 zkIxZrMoF9JWw%o<t?FK{a3omuPdZWr0E2wGcHA6?2JRM{n!6qo6>tmluT*xxtC@>c zj&t++WdKQR9|E9*5dG+_1y-6d*!i&T7bPqnKV!+|V|PHT>Rq)cSbc)Htlrlw2KfOa z_HLdJ6ddX!1FF!UX8y}{SE3t?WNtur^Sjc4n;CKI{5S;eb2x0Ul5!b5>9E|0(Bod4 zOTF)>im46#;%;|Vt+-~e6uIiw>mI7s5XnPcz+pkV?`qM596(tvq(+Sg+hDXZIFX;d zQ;aVnk8o=h6=JpUQPSkkJhh5AZCIK}N%1$Ga*QfM&%IJajOPaMY)&<MMYntP*4vb| z=&fXos3>nm*r~IWv9P3pqum&vt_CJ@NAD(~_zsuQuJ4x+wqXUfVsyNhH{IaG2ccbF zd+g;Z0c5UP3_1!ryLOwG`Q!by17?Di^~7naqPYxX4+pIeQGg>6Z6CtgBgW9pM)W>s z-H?|aTSL|UrW@Jc`~sTAG$^1Zraj_TyySGMl%7}W<pvO?6rV$d!XAocv+8P8{hSul zE#J~D@G4zMrp$Y$aP8KJ=an;}YcLROph0rE)Hd2t)Y42?$YhAm4xfJ5AWo-eCDho$ zIH>*t=|QmlPm13XxunCxPR+-g%tQ?A5d3lePGS6Q@vdGBN(k_C3tdq2vc|cdj(F2V zJX8&w7#P$Jnv*Z|hGM?xYFz#AA;LoGeQJl8cEM`L3{479LJZP^PH@a-)62y2mjs#b z+-dOCZRMnX{k9Yp^zucpz^f&IBJk;9S=|q!tC}7Us`w_!LGRGEHII-t*>uH$hYhr^ zW4CCj4BkcT+>DVBBQ?JOeeHZ7)aB>bIYZrMAoloxGG7os!zWEF|FBYx57y?H?O-a6 zp(CnE6N5fHKx;^ZGAz*Y(UoH-_t0a3;R&s}B*{wUK;7<|#5D0#7Vz%GK6<ctaOP6w z2%b`t;<x5X6}x0qHtV8MmaN4s4ya2<@f#LmBNLI#GAQulvvEo2h_&QHuGAtm;^^(U z0j>Ii%7b|m_QjOY(g_1Yzt%^)DSo_?+E&i7rQg0(9!%ha=|N(0+1S}vm{upI?S8J| z(LB)0aRWU6!&<97>}$504AQHWc2@WIQ~Ne6S217Mgm$EybiqNPu-&N_hkHM)-A~5= zs(}9(o!6xGX4D2tSJP&h1~11nCytULh$&LoWY(p3)FyqNGJpReulI$}8nS)xpwPFZ zVo%&6JWE*y4GKF|!|tyUL^H(p{I3m8=s(VN-V7NGeU73lcaRuw2#t!X1sQx#otF~Z zFG(DFq!=_aanbN<JjJ)~5CD(hb<;*<S0@s90kOPP?BMT9Y2Ra-y}yRCF?~OM;s3;# zdWma$-~xFJ@~3xi`>8A)^W#yWTex<&XY9Dl89ro1P0zh^2MfJ2=p)vOuCCl@D*=56 ztH0jadM^f(Fr;5}|9A23U!L@dJO@=ng!X<(NxuP+?TFPjlKa{v(!_9DI)ZdaJgk+N z4N3*)gXV(7nkeD<YTEGn4zAzcT#X%+`hUALhKGw$&FHggs_sa>6K}4U-^S!0o*jll zW9{Kr2I<%bu@k&xzOG}`<48RluERVX_gYED$NTH@#H`Y0q=0R^c?--?-$R}jCGmqR zU;g^(R_Z|zCv5@CZ$8~Phg}<y-{UDw${~owA5z}T3)jf-Y}pdk2weuQ2_|r3^6|pm zP(|v;oa^ECfnGlPLleJ#l&F1YI<*fK<?GfW{?-cog=Lbb9{zEKNw463Yk0xV;qA`p zAo;31nT^UB`Y73u){^&h>3<gVIWb)!dYr5$#D6ckB3IS~)b$F^Wd=?5LiS5G)}nMI z6j`EI0=QCV<n^pN!Wokyb@%(?#VBa;6CxamyDYI9(&dgEWC5Q7==~mU^?TdpEG?rB z2J#3&*moxuy_J*i<&d`FYRgVk9O#~7;w?nTMc9GbqQ2EvS+R|Ei~9XD2WQ>laH_J6 z5RK&zl}MnK5)j>e^UNQX6#f>|ZNN@kM*Pw}QqbLa{9HI(@4C{*$}YD-M{DIl=^N3G zGCy6XqG=wLG*F^+^_;G+E>-P=L#J!qcy0g!u#rZ0Zj!|no~?D;4My4x-hAgY)BUbQ ztB6hH+rdYgC<#Mqq~pxFH1QTxJd%I@dVi-~#PSIR`qV~VY_45*qupY#H4344>z}ci z2(4ytbn`T|=gTMP9OaPAUpf>)Ic*+Z%UWfA_@KAx%&`e|V%AMJ-Pl`=9}zt0=&OLI z+Snsqp09cegL^wSmr87fSywa%0#~1l0?s7l?{$}OJ^F2j2a;nQRbrI0R>lKYy3gGJ zIR2|-m4q@k`k5cWtufjGt#;kQTRX&C$4@>s$I5%3>IkB-&*mZ@S!my~t5oYYXK#s& z_-#CXtXtm_Lf*M~eUR4lSJ;ZO_v2r>Bo%DA9AA0LQ=)?E?cX;eH~e{mq!Jl_%5&cj zVQ>yS(d(XndJ7((OJ#}YCoceMt<=Gh+MP+<_osXaStSABhVh*I{?hmoT@Gdaw#)X8 zgM}u)d)$v{I~^S4fyVz*C<!Q4{GWF~WQmZOgCaYT5-9hB&;^x|bE;=byK+*sy@Z`J zSiD(RsVJqF`A9^|x=)Vt%U_Eh7+b~s+4yL8VdJ+cx4h!*#+9Reo}`DLE4rUsu&OPh zE;0oot6227e|YlOA#<LUFC7Fozd5n!_AKW*f3&W4Ji-ec;X&^Av4~byJ4^f(!p)20 zUhwq*MbWuXK;jPAGo!&yw8lN^xg7StL$5citb0B0-TGLN=x*N~1bI=y^2_wY+q(t) zc1+5cL%gz+L%3nowb|XIZ-+N%$Ty@ve*Q4^l#L@*q~~LtCkTl?o|qRCM?2d9skW>7 zmDeHZEy*$fs<DGIQ_A1@sA->QRpCA2+N<yLPBosRccO1y=m;*qT7S7T|56@ntt?g$ z(4FzCisvt%;NSk(_9yfz&CdkO#qQ)<D@DNv_xkSWYAhSyxb6JyVnQHsAFRW0n(4o{ zL&x`f`In16yWVHE)Ef%K{oC;y^M5&1R530Qzb7$2dDk2@!CYMSUvzv!#8=+4`!J5b zOc7W-<@%>H_T8SIxO{r&<EQ3#lUNk+(|jH`CtL%SmnMFUatiLc8G4}SPIqEq$Gx<t zq+)8APS5u>RrB<eVFLSW8S50G-cjWf82{T0k+YPY4|))~H|o;aSQR}vaCiS6(^Xkb zVRv?<;JWT(0p{7MJ&G~r;k<r4C9Pc{U^b&04GEv_ir<x!lZw*1%~hg(jzzjU>&#P; z*IPm(HR4mgoqzGBpo>JE|EbICs<RKvUSnID)}LJozHp!)T%E$KJ)_h=Q%C_gwWe-; zmJ`>;ZASZq=>mvw02P!?(J==omQ2qnE?bQA(n~V~@kj=c^Ym<P&^b>SHJkKla<xF( zA=N-JFqk$WvnOu_Q6x>r%hD=;;!Pk}L=?67GjrvmORr$(>Z{9H+lxKxtt6lf#gaXP zz75n=bS$2=Iof@d)jyc*asmUYsleaI_vy*&6rE=P4rl)2qdGW<mRbYww`0pVSM#?j z8i_>XsRMtr_U=rk<I`z4!E`}^N;qIq8e7QPWS-wwDSu@rH-Od0F(B(9{+cWq->pg| z=4f_=_QI6gbMZisWHi-mJ(%UoYuWt6{AC0e?l7;-qv{Hs7VLe!r%4TdH-&NMt8eTv zE&JGpX#{W~A?WZqzV>FC0HHo(`!&8WV}#`!oj8szIU7!H1k=i+MYV(lgXI4Xauvxo zP$RGgkL6eE=tNo}7GhRtpm@GS8}gp0)hR4O)b#9ZLINH2ML?i~M_^mK2-MM^#-9;{ zdR+_HAyFi>NIbg+5^sNs<!hEVVT>OXijv;3X+tBc6|NJqgai|VU^ohya1YrQ_8D%Z zG@l8VFm0O~u&8FD!iiLm)kTR~(XBmti#1dFS}<jy`H%Ipl|JwN&o<_oh-o$;FT}d} z7K(JGmM>Isx`7Qz!g0J2gaE7MsjA;s%?UK=v~Q0+abVS!3q}GV(?-_;D_qTrfc#f% ziy=?G7A}Up`p5PqVu+VrTo|kxtDLnpsMKOMNrlsuVE>wQMXOyS3>kIZ8KAhYg{2cz zzV79Uz)eL=S}oMx&6;f1+}iZMB2ioo2atY#ct0@w$#oxBTbuQBEk~cPWFya9i*vKU z-ktKi*^SZ1vBvCf^p$nm!gkIrQp$9eU*5TEwLMyxcf^yUtUVr@<6pbBB}7M+>(-hw zV<uc!){IGOEef!&)9iL9%#?76VnzL1K4@_tbWgjN9X$PdSG~56&SnK)$4+9zW!ru^ zuLt$K<|v2-LOk(8r4cJP07!{>o2&<HmRdb71>681p*K7yV@k{AC*zv`@rYW9&YI&o zjW-sn0bH`08))$C819YCcw9B+ap^)eur!DFRvYM$_iQEkYUSBl)^#oY8?TQnzT*82 z>rp^3Q!yWqW;e!tW6KD;;G@NJ_WHb)hjjOXiY34^tu}X<j`fHa67%nDv#N@6aX@)< z^}wvyb5wAj&Yu@+*fB`OVued*SOGA2g1&=_ikql~iVj&>^spuLlL(HcYgQ2GovJP( z0&`zqp^`Z(&~BanVLKPlj`5a5gel;2Bf?4&35?&LH#;pdq`t*$klHtL1lcycM0(td zmt5!KoHsJmnoN(wK#wZn0DyyUNc)ep(TmSw;v9OOuh!we{h}n%IxP1e+HH#ajx^$r zL@D~_j$}zZc1vtQtVtrl+0~NA3byFGYu)LzNX05UI<h**lF{L631c&H(1Mpv6!<|} z>~mzL2aN~oxe;t)_dO~m^`FZ@{x;{C5mY5^eWwFR1`}Vz9q5~{d!sL;(;n4$jfm7G z)mh&CH5y2PR|63N{~8)_=4&lT$o7`)>+^><IGZG}_g<J=X&J+kg6KTe=ix)Js1J5u zr$i9;AA>PTAMur}55(*rvhjN2sLbd^Ua@|Zu9*B}`G3I=vg{xT1?1BtW4wZyk!)4~ z@MmjOVcfPcXvH#=k<nJ6WI-npHF4h^(c&~6w7ArL6_ArBrtDT`Mhlv%hGjNT8o4UM zny^71jrm%Ux8ZamMbGVDE+HPrAIwMrs{vu|HPEqIR^8P>Wh;%w%Bw*A5YWnm1v3MH zsR@K^Z3p)<1Ip_`VirfqpA$+A9@iia0*pr=KAb+bW@`!bnq`ynrxD7h0`4_!CrQNQ zq2RV<+fS?0#|VGzL=$X61Jhhw*ZFQ(VW}g@hTGsT4@gR(&pOkrVai`@(pUk12K}_% z?>zeO0{n8Aht50K#r>r6S#L>1|Lyrj_tT|9en=PG379iiGp7hMbp(L8R={U(^)d9S z=+)MhIWs#4;5P+F<ih9^p6AbA=?qQYE?U=o%4+dafw|m!+8(yXfavF^Z1FnLV^>)E z3X8>Q{XkUzhZeBL2^R*m>x^`IP}KTf7dC-_h@;oZ39%m4O7FK9(%l8Fa=sJY+%xuT z$!WV_?JaYX(!R?&hX2eWVj&8PDmcwmws|X%zy&vC>~tw&km4^vZ=+dq<`$U1L%PyN zxu!pTzW$xnVT(??MQex<k-RsGg@}`ao7#PWx13NhDHaB|T}(Q8lf(VYf7FY)?bu7t zqx@2=UY+6mZD3=sb<X|PcGm*?NVLFlfhRIUlFWV1;0YG(o5CZP7%Bm<SVC}A#j6ET zbOaY}IPJvN;!znGX7bu~a*U4?l&-Wc{w)08jl^slH&YMp#d!mYK*JSm?M{u=_;Zu< z=>kQ88)>adilZ;L^#&CH``J6wUk{<Bk3w=b$BE$`OmtO)87Td#!Kr}s4=<_+VN_hi z75ayMF~CsR)Wj^x6ws*$D~yo0c3I?{J$rjUpguk^VReb=eSgV6*DF*2pxvd^0t$xJ zi{H`B_%hI<P@ZO@MmED<l4<pil!dj%M!g_YD!SEbFt92=W-F@4i)i-s`4c1SJ2@A_ zP~p!dpHv1+`HO)*799)%nbN>GKv`2xPxtBPM$;Zb{@avi5i-PO<73(39rxIm+#Sf5 zhiNbQ%;$OyH?pr1tU{PRHAgenx7AmF2ZYf>vYo#wpC}tqilngoJ=De<H#Wd@B6sWs zqNtE7s!nI>6_d6%r;05G93cHG`ho-@iZ%7fJmSkz*{Ps@MC|Op!}#!lH|)L-QS7lg zO8v3ohTxY+>r<h}(dX0LdQDl}q@%R#;50qc?{)NvmV?l5W{FF?T#>xmGn|P1r_txk zUjMKjQhV2e2gkA2=0CsR(~)EP&G+B=>>FwU%gbETu`)W;o>AX8TaZ6XIDe@H|5EZ# z6ej5DJ=P1$<_l?5|3IYH+O*CGp?b^WAg~wG3MIcf-6SK%^ht;{LZD|)U^~MIQ+J}c z_H6KNQJ&79(~mUaFj@%`g+O=>S)u5CDAgiZe*RX|O3A?TgGXCc+g~1GKAq~+MPSxA zFe`p2s$2rqri_8s6>wSTt-=Vg^iM+DdXun*cb-gu7w<r{waaV-i}oD;?a_xRn4o?c z+PzOq-;Ztz!bBl{fbAU7lmQ{tw1Vv9Lb}MpC7}XU<4F#JC(`Q5bxeT8J^t-M2xlz~ zwb4<4-fL_M$irP$95Mk543sN}dX-!9pKWM|rCmt-2=AMHzuQkavSRbkWmEsge5ap* z+LIo!Ro?1DYrGnL>fHmL5NaNWLJ8o}b&X=vj{!P>+_gdtYXfCD(Zc4VCKSiezzY*= z$Z|M;Sm3t&03$of*(6M~vW{)ans-(%^zQKt1v_GS(%;P9m?eusac5=mla2*4J4C`J z{vme-mWI|iP*3S-#7cMm&|%pBdknanBYJ49z>>{vtn)s79jb&<SUO~V^j#E_!+V`Y zQ1=Js@5HEvB;RI-6X=+Ic@t1t4J}_0a$^zp?u4@GF=uo@BMDUbxvVHT252n{J0Uy{ z%OcV*VcXQvEIi16l|?OJQq14R@beWjQJZ|$LzK{3jiNkt*@WmM3}9y|IA9|={KM|c zv4ED$B_iPak4*s`>9AIP(O&sSY_&-KE1W`CkV-m8|26-dT4ZXQe)o|Goy}?3H&7A= zB?Lm8980+pqTb5+X-tZq`5@m-%FDp96b0WwNuho^4pXV;kN;1pCH=T@B<b9}Co4E1 zqWV_oNa&)Cg{8<^=DCf)i^o)1Ytu2gtV}q-?fgr^g#<XiXjg|y2y-Rf1gLeB-zHy_ zC11N&4!CL~z(ysHSeyQ9h1$*#UH+s3MJp-5H3n=oiU@-1^x<a5B7oIvgib6!m#skI z`(Inuq75bjXYZN6v(Wk4qC}ZRn%hO&WTi#EOXN%nouvTM;pgvLMI7`cs2PizCbjo- zg(zEvTm`QIa2bz4E&B)!_0PK36-D27sg9qB&PXyX=KuW(_R?yVQ_h#VOrB9Zux0=l z%X>ZAkGhbz;}XeLR;oo>eip%MQ9jZyvRu$8ibUoK!3y~0z2ZU05Cbt0&(DAtW7jw_ za-1NKvB;oixS(pcksw_3h(=etz-*LNL&cW=Y~@<qn&CnLYjJ&ss+F3YKrG+J$KC?N z+`8=TmgA^YI@bY~CM1Uk{JMy&j1WfVJnt+n7x`8ZH3kEA>8M`sXTVmlTCCn;1-!c- z)F`qo2q?d2`QV2(0<MPWXAqFENH^EI-Y-Fg?BYXM($*V&C~yc?(il~MJ!P22jG<x_ zQFp0@X^^*{j@@#!1m<MZao{j^T}v97)Ib^5|77qC%*H8iZy*R3;`#hwLls27GWCkR z@v8NfyaYs1`xTw}bL;?$;vOj>Mdx&1sZBIY-1v$3J=tgmG_d%A$_=FvI(t#~1HqkW zWY1>@`Weq)W^<M3>uu5e1ZGusjH<ke!lAi9=`@n5`waP`rFQdaFN<5+ph!t%{aKS~ z3L%_tM$YS|gs?qI(m~;8c0LWg2*pxC*1?Vzr1`j8Ke~=C8=K_0(|m2+Ui8e*=*mpM zJ!RTaTd&w?;o70beh92%6v-xs64g<m%eTLA(DK<{k4)uu&yMqoy^diF6{m!&v6mcI za4)$~V(dP@YvH>HROH-E6jwHq#@OBP*EQc6lW2sHoz8+^?fD@+bt2{=4<ZnLBl5dN z;G4o55yvV|uV7)ueH2v<vuiYZIt***+XS^%D)sIGyZIUKJ0F0*6i}Vfnql8tO_W8K zTBG)pLYHSEeN9EK2%y~sZm!d5E+XV!<c4#ibSjf{en<+H7zg0j3dxfqgrLZ>+4%T- z`7yELgJ7}uV0G`eRtth+`}-j;F-{nE6^wuzLBipAKbGO;v)kvMVjZ#O0AM0@fOVS+ zijO*SKw0N9ZlUT1_V<l-Ki|+ZNgG>1uEYnZr2cW-PjRO2(MjL#lnr&%CI?-sOE@ng zNc41rR=xIzps?M<{A7=|Iv~3aMqSJR^0q6C4PX@`%tj-@W3Y=fz=)=JUHeuz@&x3R zFRJyHfQ>Cq)u+%$OX?&KZ2A+ny8VdI?zh$@!ohRDM3`kHB8E{QhnwvN!GORkIeyRr zJAOKwj5~7~Z{qIXokJF|M}Si!7-%CM*L_q!rPP4Z88M8;q$m(a=H6U(m2qaSceIt? z-&27Yi>*S~nb=aC=d-D#yWg_mPPtCd+x4lpv8}_<nP)EDh6-R@+R)G)vSD6YzXH$m zp-+Z6`b~*s!*urf0?T<b+9n*6D4q>+--ENz+o{mMq%e5CFr2gKrc+UDNztA8A}nWd zl2dVNNpZ$}@jcFxe5aD4l9ICdk}A&9I;YYnK^ba2DQ`*R4NhgxoN`;pS@pk(g~;5? z^WO(r3!rSw{>LIl8j{InSs^~>tX!WzEdKedl{2Z@PSi0xrL3Pp_gwScm5NQLYFahd zOQdwVvCA72jOlja(sTWvEyXj>#kInboh8JvcWI;Z$abCfaz$B;01@h3Z+L+zq|*-* zBY146>fDwnl&n@Tsv=z)^b6mvi2>QLE5M$>4fzS&{fv4nSCc=HF6F|qtiRrJqfk&y z-{H2NL28&`1089h)&=~M<+gChxMpMBj8$8~kiGA3LVS{Q>+pqM%w*Fq(8I1$gJNgN zh2aNJ-v%u`$Z{iUWuRajXvN{r2EV=A^f}fE{S52Ht+ZwBa7Vq=wI*}$1Epl_BRP@< zc#)zH+fuK=JiI0Fz@s+eH=#rMdAs^z7q-8(1l3_m+~D{VrnKE*e&<E2&O}7m=KFqR zfi1sQc&Bd;vf!fYrpvQ?a)$ccj}R`8{Odbpw%w3r`XTuZMLG$i4alrAMufbqwC}UV zvKJDY?a7$#M?MK$)h;(416e$=(6+!11>YVi(I>%z&KI}E*qH8eok?JI)YI0~Qv0Dy z3pp*^ZxT6Sg*YIr8o+|ax6{JdlF9c?jUZpVKw+8P&~I$0mrAt??><&VZ`t$<KV&D+ zz2+WJ{XhCUfzEJ~fP%Lh06ke7eaoU8FZyO$US`M-&PjAM;a>S1zQi(m0*k9#qA6iO z&+g&f8~m4`+qd7|N?r_M)2=v%0KjNP4it<KX1zo$1t}*ts=;E+fGkbW9+HfQhCMd` z2tflNXdqzwKOU|!_b;!?{p~?LNXwm*)(Zg&%S)O5%9F)$%aSYIY(kEPA1!rUzTe7p zTkivYkN(Ui>L?SAjlgs~_8g@_UwemX;UvEX{6k7VQ?hhHo%vN|^oOT4h%60hO0H&g zj0rU(mmJqR*-<(cYXGj~hXJjf^ONuVin6t9kRrr!i&qv;=TO_37@ZG+mO3Xf`@kqJ z<3D2}s_oi|zuyD?Aj|)Z*HsjrlfyogSY3QUiQ9gpML)cY{Ua%b=|_OpC^VouR$LQF z>L`q6bmu(FjQEsvqV61{+O8|A`71JV&5cZh+TrMw#I%WhMS;-E?iH+`E9BVLmInoJ zk3CzU1dM>rERd}9qh}-}KU)AbSH~fCmYJ!9Qjw94xYPeN-(|s+QXujD*_eO49enW$ z2KlE#i3VH2FRwL?eKPA0dH_9-<)3Mh9Tj4rAk$lWJ6ibbYNx)t4TSxf|Mc&CSLZep z>H&M0=R1bGib<>%(~EFQ(08Bsg1<<N)S8^5LVD{O4z+%zwk23WIq2@SZ%U$Ik*=T* z8{a5}2m8Ra`l!8Ve!!?u8P1cX`a9L~In(F>pC{I^72R-TFd?NwdCG}e)&IUB8Gq1> zEVjG3Dj6^MdV3l-bw5GU{7A?qmD?+XO}rs&H|1!`sb8j?>>krrsYHm{4&X=E&@K7$ zARL{G1>t8Y57;sGB!MNe>x?n}3g``#O~4@Q4b<Y+L&1u-ugCEII<Es9&OYYM|92`P z*@yk<=4ejmD603bTz*d{4HKl8^Z9nw;gm=2RTCCyRm{Jn9i@IW_ha;JP|c?|%Jdtn zdsE1xnD54{NFylg8~~>caG;?ZQ(QrUlIfs4U@K~r7&ZL2qhRvopCbMah=&IjQ1>oh zRLZ&3QO;Ml5Jm+Z>4{up$+#m7S~vp;+vthI%c^~%WC2J@5>0CXD@1(NIE@BTZ|CT{ zMwO8utc;G=Z!`kg#W3~ez4L*$*f#oUHpxkep&izgy^xdDfR3;<KA$x<%y3e|#a6jd z$K!k;jX1XAR0#Ko4d_;qH7h7u76v!FMK=LmeOO2Vsd_@?t~Nc^e&9-9ED}btFE{%3 zsJ*%m$bC=kOYuW#Tp8PyI9AcFfP)YC7|UqJmF6KK_`^Ym@W|8sPBum!4NsdlePCU4 zRy4o@xm9WxCMBB}#U>}qas%{qxZ36DV6!-e<_Y)xLMr0?G&(ZnJSK-KjpB8g%AH~@ zm#>}Bu~o!>9nOyZ;Yij7uQbku(mq$2&Y?j>Os3O3r#3?1d7m31Or=zqaoqfYpFpIF z=ubo{U^Faxn!j2&jSc!cSE!A;+RI;p_cM#he(p6`%JM@+=3<h$-HHJQga()-a|yCy zM)->hv5!kWPZx`r--c0<ocwbVvgByV<zkU@HB{do*kh+3qy^Fe8WZtR$p`})vAx#r znV`K#JzLFtZM~<vdymPOh7}_-9I3b{u|X-fF4SV9wlO4($b(H4;%Y%7xNe1dg!%Q? zYl{*b8npw$HcIo|f}SuJ4A|F*m{1Z3YB>n_EA<?AbMY8Yk0q&H|C@Ohg5;;RX)hjn zSH8cKhwbBKsXj7p<RXe;m=-wqhdBIOkKgjd?jH{$Qzd_lh#g<c1DV<Fuyw9HPz<{x zV$UNKT*>qzHv&`*rn_pV@#)geh$JsP9RR_|n0{vDlD2F59=wuPj($Q9u1ox`M=iTT z>=2$9{R#3+WqcY&dtc3}R{82olgrM5$m!xS*1lO9GY|TN@`nB%GDO%}_32TKh%FS6 zXv6}G(^m3Y&(<<k4$sze45iOE3aVnFQ>j$Z?fR09zoJIj9$vIoi{vt*$GMOBT~pzq z!51~@kCwciZ)+w_z83!QRg$u2bRKLy*xN;s6-#5Pnp_Ah;YqNHy1H@4BaN%gaVg^( zc9j?47jF0aYs#a_#Lbmd8Oqs4Q8?v%yYas{#D26WphYB_iN{$uZG6F#<^f~wPLr<P z&mRj56*W0edx0TL3NkOJ4wyhqS#h+=++O{^)O-M4B~ToZb7`6>uD8h;n#6m%Qs;;k z7r{#tXYa!Bi|wX1KvBxBUU%#nfUNWjJAag-I#$CJJ2Jp`(XM#I6TJedlV8*r_BCXv z=n7yP$U6G2Nz_JD6@CJX+iBak-O0fe#^ivIOaR9E`~x$>%TgXN!L3#YBy3b43%r+Z zPO5{K$_}eec0g$*KT{@tZuV_hhh|5&*72;LX<qh}n5OWr(l;9BzfEYtik)Mx9yIi~ zU3LDES3FiPtn%)iMame9eFPcy5b;K^QV{;4YlPiRPv=mZn9<H{w3uU~yY|E)jh5e& zU7;_hCw|K}-_D3rYOR8`KZB0mlYI=S)Bk<*foO)d1xK{9!5~LxVW9Q{w&NM2w<DP; zflwZ0TlrDo?H}daW{qmI@5W=WFS_K&RA`e8!*>Ti{nNze2SB|6{R67}KpIZ~%6v`C zTYOMGLy$+cCN3vbD5#nWn5-vsyDN8PI0wYh=*!Z>M^m|hPX#77vl-Kc=C#P3EqG&c zW=oTB(sF{tCKrmIsO>;23{@zKv!M6v4Og>8$_y}JSkvEjtKtDhLRd6#|JQhf+OLOJ zS<QBhYAxY2w~+8O2a_HS0O7uErC1<8Ku`7lf7I2ahh-yxef|F0Ad{x%ULie(^GSSy zX%HyVHu~vCNtAd_W};%9cKR;c?4S+5RdetYCXn$HxhxmF{g@J>PW&IgusgjX$wBIe zk*&3q+%nO_`E{CfGq&`!yUF}f(2dcB=X@(qXl2XB>`I*g8iG>)DTs=hsdU+PTGw$O zbIo-7nBdVttuU{-mm1W#Q0nOC=5{1^0WQ^1_mn#6G)cYmbH2GeJLJf@G&}9nTnUbq zUK&qvF&oMYj;X$A@n#)~_)ji<TbvusV!$QEtSR#h)`M1IYwUJxWW20_Ik<=WnzWb8 z=n9ScSsyH0cGJBOpxGCA-PWlBBZc}RV=fBsJqVq3^#7XQw2LJBhSmGL8~Q`p=n~*T z^-*GRjzEIuT)DInn7A_H$sXi!vCSzp+5aNOv4gBjega~4*VDF@WAMh^M)Ws=7!={I z3E_!MtsMDSuF&^EJKr-5QO;Jb<M-V#H||Bse;IK7{+K1ZtNfeUH?_rh!{N&)=>E=B zp?2C2Y&&Vr%rIqYatW)HK{}{d5Vzi-SHreD`rrE$7R!G^02(7QgHmwrW40BbMI8FF zTb7c02x0IwJwtJr_Yd6@j72@G$P`+7ij!d}1!AVKQ?iZ9KBTyK)hq2FSBrAZB|7BX z4aa`2mglrPs=!Ea9usc`&Z8M-0H76BtTyHkNCK0Ac5}LLR<iWYEByrq7edzqf#v+a z_gZhm74+=P0n}%b!1tL-Camc<z8K8ji+a^XrnNXCaQ|J&6uUz6=T)vb{Oy-|D><*y zqc?e2=ttQi1+GYh(oQhEb+Hu=I8rWZT9KL-RLkCGSpC4U>18#$pc(LZIJ1u>zn>+< zrvmfld9QAn&*#z353u;z?|HQ01M?*#Ugx8171zpRX%Y&0zYROe!sAhG20b&+#(z=T z?!4+tu<}b4-)Ga(_=@EAyE<Wf{Gro8uKr*Vdy3Xb9$v@%Ywq;kM;OJC#k=pxI%pZc z|0Z1><iSQH;^XZs@=TIBUg;W%SS~@kyeesBip5L*u9@ehWyAg6fZ}_{U#jHZ<=blD z?jSZh6#)kF3B-Cuh7o~qmYnd@y`GP+4r4$5;UlaywW_$!vOO}ZkFC@MJK7C>6H}nZ zI=-69$x~mgxM4%vo&mT5=z`C|anuFG@1pPYs3;bIsw+N6RKWNd{`Dw;I3IvPgxbg) zlSWI@1YC`xNAOTWvz#kqxBOWyd;kYjx9K9OX~_okN1C;?@hM(Ld$AmXf(aB*2W{FG zj5Y4=PcM!VfRI}<M{jccD;0vEBLOQMN8rte-dP8m94FXnTZiRByH;<jb<y&Gc@APY zIy-2kdti_IX*K7BG<1cuIpi<j9d;|=JMDhl%n*ka@C|fQX)aVh0BYI9T6b)&%<cgE zO}HZfHboOtfExc}={$p)c)z#5X%Kn{Em9MD2?_{O1Pu^6LO_tFG^vURNJmKp5~SDA zq=<BpUQ{$7O$4QhfQ6=l3JQvfi245cJ@d@$n|-k}JG=MZJJ&hq`dm9HNOvYGjzYQA zlN>Ui9J-erHmX*!ZK*qY$$n0(Dl3IS1aT)jr-X=JTcAaS>(Obh^yFANeO{~pu#Azv z@_de--jjT*&HGw+OahBD!5el)!&H!dgg2L5>hHktvFt9S*TkmQF;g32!{lkP91gVe zE-)L7n>H1mI13a=?}*Jd(5}pO4>7%IlSMt7tz6TcIvkre%1j%Zce=Zg+F}_?>4wwq ze?Rl0Cv7e^eV&=V*rPW=kFBeVt37+Of55D@JN;v9#s)Lv^Sl~)68O58v5m^yp{LqZ zD8AD%b0ValHi5-JQ@<2`*x~6fY}Z6?5yOta_eU$y;#D$7;4YI;zA%8`=p}o<3fqwF zi~xdaf+6T=((g+3_}hB%8G>g`{~I}Zhj|+(Ui}~3uqM#b+9HUb1$7F8*(z7t?N^VW z?AJjmoXdc9&}~BT9rsIgUo(#`KZH&99bbc*r|?5=k8@3dp5OhNkV|PSs^uYt+2e{q zZKQb0QjQ4<85MQE_WEM7m@q(>mz15arMcH#NRf2+SMd+3OIxgix+uTbLD=LvkP-02 zjXGv=J@0Tzwj!cH_VA_wkGlG5_lBCJWA4$uwQCMFiw(^N&H?d=syp6f5Vr^<{9ZA; z@&0G4Jx6!QiVXj4ge4MiCEjlwj&E8KYP@vcMczkHO{;EH{O+{%slBSJ5VC*359Dcs zyKffn=G|_Zzld6EyZg?)`D24#lB^DifJK<zSl@5nw$^HPkl_DLR&>y2qwekBzt<gM ztRk=a+Tf`B@I9zUOYe7eH_A2hYq(;QW{$rth(@`Ad=ptM?`i}*N{|Sg5pR`zeJGnG z&tGd)0;%wSX;n;UtI@PEbJjc+sF9u8rXkT@ldTR>2=a^4nN)2zc+j4^A``2F>i&I3 z;aNN0qvPg^!j_`6x#ltT6CLJ%I|wI5uAI$)WS^~_0r)jcL97Ue*PWi1kynIlD<WHf z5P5=ELRZjDrAO{64^ha_q2jKv%WdZfY2hB-(FxtLC56q}NPF-pWOukKga9t&f5OL6 zctIB_fBe3VRF9rauc184NV(7aSigf|zG^_>(cmJjkXwe=s?6f6EfWSk%*Va$pZT91 z5BHi(xLjDSi!_0}Oo}diuZvWL-1T4-3hN<F<QMYkEb^V<w7XA|>qfKgjpesLFYTGS z-S_@(^@omz^#|=swWWpOdPr4?PyM~gDSrx?f9mS@yL<lLYx!GVvH!C1$xJP)@Ub2e zqw)3m==Rk3hp~m#p_dy|@75>Z{&>6aec|P|>G6q`XOnBsXFtp=Y`l8&`StSV($Cd* zh1~jwSN;0*`Q!G7%^zPjcGlP4|J&ST|NOGEySux;`|IbQpL_ei_kaEQ@4x?cf3o+t zzddIC%@ut04hm-j{)Ic!2xei65*$Z7nUp_dEW0wAtLF9mVegOiBp(p~C&jb-WxoCL z((}FtF-0x>Y(nkP<-OlOHf9>VUOf62%CR=07H0qW(Z9cYKfWwIP)NM)`WL3WOoECA zEtB=LwMfJ@EAlcGVXnMF6PE1(sB1cem1N22jg=Ji=Nee@8V0e-P_C(4O~n#rIi6AE z!35k*?YW?}biI$U&JfKU7eP@@Z3K4&9ZO<~8YtGk&#^tB{}OHFsJn(Iqy+*b7Dg6` z0`acCFZ51U`N%wa1fc+M+U6w@`2h=V&<-E&V`=1E@Ol}SbKJ-4f=O-u*FoM39$;Sg zl=VuwVnfhP1~g0&u(zZUfn@$)$*^R_qYa;GN~5jOm6`Ee4#M){lO^Ty#p|CMnz}xJ zj$&UvC62?V=jf?j&COvBHU2-H)X}%6TrBv(dNu35)s&nt>%^DM_Q}wXtd=a3>X6K; z)#OWQy!bC$-OI@mu6Lg_j7@fF$`+M?9ir8~KG+^s`{p)$tEir6x@jI9dZqQ({Ktm? zCw7~4=I7tKO1|{ifY1SRH<f;b1$Jlfc)xx~1;5Ul+d%J5Y|VY)|H&lzz+Gr3(DQn- zBd|DLLiR%e_Q$yPE3A!jhU0^)CK{(3BCf2K#Whag#jbQb+;(`tGX43hr}4_GuW`Gx zPA>n{Fv^gY<0gefezlE|>VvqCPtFxy`Lz(sVYE5T7cA)y?v6W9Rtb7_<@Z}#@q-Qa z9B1pn#>~lVa1t0Q&uThvbb4&vp1z&_`%ouIm%I*SHxZO)BgW4P`<{*Y=5gkCU6OsJ z2Kv|IoZ9C7&v(jfuK=T3(9bO#+F39)-6UVdWO(<Tm^=uUh)!D5G@jCr3TbaX_&#pW zVLg|vSo$*-Y`CLiOJmVLd2rih8p@vN*E&fZ)cv1KI;^F1LRerJ<S=W8b?`%mzykCW zPD_Jmqt#|?lq}AbV+w#xW+rlKuz-x($4{Qh3(hbcguxc{?{~gYP~#QWNL?(JW=AxU zcxzKZ6uwg#rEm#dU6AaX1K-MqN9kaaAXp9(sEI)RpG-3S-j6C$O=8ceW!i9naLC~2 zYF{9-or-%ogvl(Am1{V``X_@@?mMZj*DZ;Jj|!bC4&mxnPzVGrYIGyqHS#heQW|C| zYK}0y`K(HEU3o;8;vo9?<i)h<I^?lm8^mkp$wR20qv*DJd9T0-Z(I8O?e|kV*;(V> zua4HJ;*nbBq6hS)=aElp<yYh3PuCRIX3X=l8mPy8svpZf9XnV2A}Nr9!RF{$|5wex zFy_Icw-8C#-50X*cz;ub-~+y|Z6Kalk}wCzni7Jcl-a^XYh0fJ2aXD^w?+4Si6-z% z`$`_oytR5eAMg8ckuo7u144Z+BnXxTB4mL@+ek^uxXMBv_JRpy*z#~hN=WvB#M}uX zFb^lo5;Vd4R5Tz+jZ^p<x}n-mQV7Xy6Mq%pw8TMT_3g2i7;cBGfzyKEo9Z|p5Qj4E zB;RiW>CsUiUIOW-iLV9nX)v)=Zz6bMAh}Id+z-L)y554<6Ld86$=VSF9Aqd1$KN^? zw?O?YTL?2K6-QCSp8}(z$W$d1tHh{S*{q8Nv{VIG*qSY<3z@)=eg7u+;e3JJy0uHy z(=7+E9~`UrN4Y*=vrgHAWy!_;EPAIY#pS1^Ft@~=Ljz91TG6zrFVUFZFbt0t>!%PD z;DTdj^?4AC+4RA2Qh_J*nu$%&1(#>;WChvFHqPwP3or7lsD7Y&qxj3Fd;4|s+|?BU zeE}A5!O14g@S7-bsVU`;@`xRtry$)?TLk&aqB0-th->gtcf5d9=;~bNJND50wM)vw z0{4mwa22e9QMqC@F-7yfC$=r2rZW^O+CJe9Y=~X}Y-2Fn{)E5E$kZMGtp}V7A!)a) z5vz(ha@-jLASbnV+#Y)_k{!*a=m)L+s(w6aWw)*gP~0zp9NT9dkDB9}@SKslr+)dv zBmOfNRA2t(&Fk~^c9n|zHAj@}LRwD3G28dDk5l`M+9W+3hyj+#%$=KXQOmP02Jucf z%%JAjW%FC50|4_Uo$u2zs_#M8!RM=uoSN<I4Gtu?N)@&bxzg60cBqpQR7cyiwv2h- z$UQZ{PpG7QSClb>W0hG=^8=&U%M7cO?Gx4m6RxD6H$PH@U4p<EXhp)H_suYrX?|CG zorO`YRr^yS=J+WgJuxtkd^zLrM}L@0v3kiI!pasRSKPIVypUtgG`2of$o#qfnv7mN z&Ec&KmphYflS^Ny&gkkWtX@;*S{{LfN2d)IBOLb}&IwS>GAsUVU4XD?NX%fmRW*>= zEMZz?c&Ev*Gz))lXnLO)R~b*o=$*#DNhs-JaT1$vM~u`xt;D-s@$tFDp#qdC3=>*T zU-`Po-hInf!F73FS2PmBXU(Q+nXpaBA8z_%1plZ5%5u-IzW4E)*=g15548IMR|#=V z^c?N8`jh28QkSPYf*9r=*tw8mFftNA&^B9;i<I-5>>WB`Y^k|vVbs*nAKI&a%yG+T z?tu8kdp)ab=EKIg)df+F^|!{#r=$aNWk1oJ!cDt?-#gHX81Sd~yz@1PECHLZH)Im# z;NYmcNATNe&wKF=r=;Uk{_SMF5SZy+&nn9d9EGdIr=|Y;r3`ws{h**1O9_4MY!esH z7KLwU;y)(smAbnZBt2X^{&t~TGE^k{TBadU`p>(+iADu7_V;?t)raJ0yV|GdTbeZQ zu1w@O-=}~%4vp(>O}93=ePF{NHn2s*dJz*7cM|!g!;CUevU;X&KZ!5czpe(3rC+z) z1`$H26*f#xH{E4ePBgMp$iM&G)z=nM&}F@QBWTk?#H)3go-RZz2cEYkAU4IB?m{#X z*^v493UQqy`0FdObe+_X6gNH)QNHcM`xtL-lqz>C>BuX9hQ1;8BmuUgI5U!<pcMW& zDg4hbgf^ViXn`;iCjCnZai};s<RU1~43g=g*)k<FyR7qT&+t_y?C3^VjU@P*18^2# zPlAn3Q}=3JIK<>kI{e()6B|-Ii3nrQ%p9P#A_mYPV1{F0;iUC*0MByLL5kLqQD=yy zl*KC=MUURmANzhKmOX#RWU5fdC5I9Sz5yd&SI9wJq+|ZeM?^E7f`V=whHpJi3V(Gt zr0S~biuBF@PGW01TET(V6L58%INqFi?ra9Tl}L-d*;6NOuXovDPniftQ^7v;_bcIb zma=@7h>P<#OgHoqm2oD4@f?~&QV#+<k49k9bc9bzjwrnn3w}R+_2;>mTRn&tl$;Rr z=AlfwjY%u3K|FwG*l~D3{pnrIOFR8n+O{)5H2QOGqb@zf(4NI-SWN2(;`xRQh;;5& zR4DNM^4JHw<|;#s*mL@Tj(EFf#H`H_@6Bd9WbA}zz<ubIOe$HyL+rNuw$61rA%^QI zl^C0NBbTl7Ru{pkFa4h@qJ<E%8|d*a--p-H%&FUZw<~SVNw8xSt?@M5x;HNqlNQ;7 z$l18S*P5nN?S6YhW>1+16n7cJ(9(57e9)C12||?BYV#7w;r6`<9erugo-qixmO_O; z=12z%=3g@x+#j{F?Jd0i6eX=MO%6ijEBnlU%ymH0#p)^WR`RUo^_P0mRz-1X8wjT$ zHLblH@<^s$?+r*a!dS((jq@DH`=)PoGW1sp?|flHZ!uLfd%WlTEI7y8Er+Y0nHPfy zLxudBC(8A3mMEW1=EbBRR@D1nm7E<-DZEB)a)|(I<hE%rcYI2bJ|$1IGMeJb=0AxN z*;Z1|-4L@!WP;-m9x9R2znL@i!<XjBV<ihEWIw)BirPTD<^o`Gh`1v%Z`}~D#Yj*x ze48s_kXi(ajONUyH3wf`D5~Ht7H#GN+=7XSwIk)c;dx=v<r<1-G{1X2Psxg8Ae^42 z3V_OXrc(NQPTU43I9hP~98rKT$9~eqN~PL(!>Dsz6({0v2eg)GwlScsm1|S+ehjU$ z!*<K@T#O<Gs#)GP@16Up<cVw<r%&N~h@h;sl;$NwzCIR;E`jWn?P!+rY9?R#UQX0= zuL)Qb@l-7k2=}CQY1tNpT`fSEak~HDtmc}kSPuwyjt^zI-mx)2gsAEW`rKkyCxzkn zm80Vi7l3WPzE7Js{cBuJjzK-%hp7opgJ{wOtP!tMDn!L);PJ=bIhD7y6ad>dl~T22 zT@VJ=vfd5(VnX$$de}cI%$aKd(E%Ox<tdu=)cH$00JP=IuNNCy*B`1`qm|o7zF!S< zX>=SzM|6A69M28WtMYS;@v=f3Gr%$~AqG$lMg~}-b?HkLL99h`@)KKx&#gnFYS|i^ zQmgf$wrJG--Y;vR^>{a?DgvCE&+l;8sLeScso0?_{|!fr{6IOJ+|ot#4KI(sRVdVm z2+!X!zUOLy{p*f+Ev|5ptI{kFXw(I+=P?%I?;WaH6`xycsyzKJ?8dh36i5ZYmj%?h zsdEWlurxpvq+(=w1pn4F{C9#_qKdfO+t$9QC8U}Cwiq$yp3gUBVj?Ct_Ojy$qwQQm zr@TW!CaV7KXBk2&LYSCf#qNsNI8v~62|=@Nc=y|Yh2q)PPdu7*u|o^%+=vhqmr*FG z`R$50bGgIyZ#PLzu;zYS{FgRb1HO<Mtm%6_<|Ly`hZJ}c@gOyiZ>Nx9<M>fq@N!Wr zw6c4yD8`N20PSyKhxdYwxfLXO8hCngOPrv^_qv}V)VT5WuZUii=J!dm@d7qj0iRnL zst-^Sf){KOklDGJ$XmQqJ+lrT3GPxH<OknZNEwdqjUIh-?30Mb4VkEf*3<=r&PgLk z*qz3hH21%5NKKN<V)<y?(I>w5Id=dJ)t)Ec8#uEWhXr@}@13T5oj5(|gM>cddRwwy zwa+<Ee$WF{6%n`pBaB};Z%h{p-K?3_>iGBUE>ZO1(0ApnQG{ERVw);rPt8Xl`_4lH zSJMrK!MP^T!+}79hdVxXaKVAK>_?E+GXB+o*$BX^*Su&UzfVMPSS{)Mp@k<qlDh;^ zu-<(+Zjk41j4f3Q{fEi8<na30z`64^MRi?q5fAGde2BUb*l*Fp%$tFbLeHbNQZ|<n zHQYe?Uk?+TB276#u!x{k)3KqF$l#EWfIpF<X$Z2l6gx3th|*L{d?S~AGcD6`h*sDO zBf}k8z%Mx<X$Bxvz_Q(oqPhFdaSuY6_i4peiQO?mpfHx4VCF(A_td=|<0p^v^>=?U zM{h<GTlGdeuGh5i4x+C2b8HHR^-$rU@+-E823vQ5%7?QnkAnA<8^=ZhDPx?NCsztP z9vpPcPN$gCAAaB&?R+?)yI(H9e|F{#;>KUWJ65u7ZlgwT-2SVd;3uaSb+kT+8965= z=)C`!8#DoUw*tXc+*2KJ_t^Sp6X3fU#G;V_V(F-0HscvquoZESJG;-(cg$_=mV9aP z>YEX&!H9t7_<)5%Cb;=UQ~&7#hL=QEmF}eS88-cgs$lU!ziI3!qCfhv&E+w}ZsnQb z0c-V6@h&I7W-Cqx_fGo9lY+tbCvD>umzuh*ho20VPTNi7!5>D=1Rq2Gdm`By4{l+k z5r6l`^Az!uYp*=4E&c0izmK@LTzveko7M0B$s*D>9V`PDzx#JKa)MUAKfwtqOZ2$Y zw23f#r4SgWh`xe&@T?4Jt1ikjH7h4*xaH-4ZbEpf=hyiPA3CC$5fjhZ9o4tcTi3*K z0pT1t3ke@a+!QQMd3B1KNQBQWAC%a85Mx?5FVAYddab{}z0)*{S!_ek`iPWvSR)8G zsij75y5Z%qWv?u^+Q0D5Tw0LRXu2Em1u?<?649iXp27D}NK&vkB;7Jbvw|Qfxzz@4 ztpy=?ctA0&knHzXZ#Li3HpbDdeF)En0Y9k-500ds*_y=k?6%`ZyJJ&^zY#s^#LB|< z8zU3rXI`a!pTE)}<o@r@=$6!q_sA3{`=Rv1DL3l)1fSUvp|I&SBYEz}GldVgI%|mY zWuGU^#Wcs=LlD({-2t(RQ$LEDlvYlBO`Mcin(fiBD}F1|8l>s_8n&a%Z+u(pkI%bn zgN!2IBh>UeSBL|sanx89f2G2^_Cz9(D0#o@w(h$Rk2uRfTdRSxQ6JK@?0zF6+>#KL zrF_N_X#7?4&?Roo2S#rZ7Qwl~3TaymL3Yp9c<qDd?9Y|wOJM;&-*_f&fMclCiA(eV zW0hMvK1clnL`FIH4wEj8z?LE0t#8}M5i*}&uIiIkrCKGQ^~a8(Uyj7uw~&b985_-^ zf%M@waLwRitF;-q4{ZQX&!NWF93Q-R759FG^i}3dOwUgLV2L7(^wGtUl_S!8?domM z+UIDmzwdY>u7>V?UOaWpVR|(<X-R(0%PKJ3ZTm8);ss_aE<|S&rR7N7?widfxTT&h z?Lw3cV=KqeLr&g2&4N7=ud9g!vRQhUS0n(vzXkX5>4B|0D)Z;+_dSshuQ3N$dT^>f za61u^D@t-81^uh_-Dd)v3$`UE*Z`x26lujh`$q#D4~!hrlzMX|R|cdDjHW!(`*J7V z<pP}L+ozV?|LNqQD#u8LcVKkqF*iV(gU2C^4A+=*a5oXihjSA5fWtob^}rpYDvW{s z=5fn1H}!^xjFQIzma|8G%<gP@srzv{Ox?__;Rn!78e7)Ce?*_Y)Oq67Wun`F0_<@# z&?>YJ5{8W!bJJU3_F=$?BJeP=HX%l`1qUCC*Yokv({(kw$7x#nBpC7`O#=`2{^r43 zYhevT#vS?fDe@4pbN0@hdVb7*`;o~-#btuON8<TNfbKbK58&I@_kN!K*M^OEmUlma zyPS@00uBhLgx`cED*(ohyvo7SUD+|?0DdAggTa%)*z?#kAFrsp0K0sDSIf_SlNu$| z<8SLn*s(8dgsKP92zm?qJD9`rOos#bu+{h<yC1k$p@;z4KL9W`%Qy;*Pa1D&4FJh} zQm1HpEr2YoO&mYSbhrp`iWK_1=F=oPeR3po%O)4sE0D|^cq-1(I!T}BlEDUZX#>s| z$?9-ZLB!uMk|?bOQJt=gwlQ<$ShmLU<h&euzzb`c&=0z_l)~?QV^E9PV$Q)}o=TQ< z`|dZEukJNm>h>exd6^NB%^~H!8&p9TKJG`zog_WtgfrydM`{9K2mYlzYho-ZFEeU| zBM3JphkZa3gUj5ixCgwG=Mvf50($N6O=2D*R%8927I?+<6s0^5V!wZwD7Ps0{1^Xg z>+R!|)56b8x3zt)h?M{>KVUpF{6XkrWhOqr(SPQt1E<qDNUL3$CM#;{Fi#;Xo{k>X zWiCz|%D~aD(#VSba+7TJyF@^=BC8rNNyyTGRx^*DI&wJiW-f7cP}4#x=6$P$%&U^j z%6p;QL!b=}16(Sfz3h7~XcM)L1go%|sujshvmq-t%W{dTAomC)Xp08dz+Gq%NjCS< zK^6uqNw{{$CQXA~VRi_ut<bN8$6am&SJ8K>)lsYnHL&RXcMCJ3n16?Zg-nvRqm|N~ z4##|sU?BAt@~JF0r(~AzO}&d01wj)ID|ted$&^W|l4PuGD%SkW;q-YI%Y<7!Nc}7~ zr?7^%Du^4m%uscp`180(Wr+wnUr>!g1m?=Zc)aiOkVp{m(N(wnoP2Pq%Mn*J2!@I^ zak;AQ-+duwDe0`PXWaUoZqI~oL%Lo!et+opBK`-{^CojD_IOhT%=LVd!~%MJQe=|# zd>KkLJ-#=O4eMP@*ZtUYG4nKszF)S5Vy|DWy}7=BzDq!_f1y{hen3&Tsv~j_L|o8t z4DmtO#5>7$gf+SSnl3cAO7nuUck7TCpzw3H2}C%I1QtevTs?5d1u94!^B)UeT|cjE zCr7e0UcvB%Wr|kJBEa5v_4tnfMJ>J02mL{^4;`HtC`Zz-tg15~9xm#CdSaI-8j3)y zINs)dkAQY4nIvLJ$1PU5lC@@uO1I`sr6~xS;bx_fk(-(N?lKg;Tq%&?I%MxX#g!aw zBBCE$r({{|nA1Efq+~P-=EVUg)ho(%Mc#lUt4NlZRm@)p`^s7U99KAq(_)CsAG^wh zM!&4r0|v~(kvxVQ%k>s7LDD8;hv=Xv0sTMy&O`CD7!samV=&nLAF)R2Fc8%=CpG;z zxj`Bxk|&?A+<!K|fh}a1_Od><hfC@E=U3H<&PuH)EPrB!P$P1#-XF#=d}-jOHZXuO z1wU1#py&El<pna#F3DV~N*y*h$9Ze=sdQ-rXBp{ND<+O&I%np#D4Q)@D8l7AvglS4 zxms`BvZ1(#I9D5b*b_Y!rYf-8!sR?GD{wOGvp|MQt~5G|)4(C=Y(mS0uWauJ@3uhR z#>j$XR(sdFj<2$0RefgAuX;mE?A6PZ^VQ-7XuH_EwoW%^(b!;-L8FH7t8GiSKN>4N zGEx;dZ{nFe%h@MzV)cr|cWBn`%X*WrW9P!#xNF7d(XBuW#h>WwGc>%4h9A|i+bD4o zTBiwFZuL{7d_CD&xRvv!Nnsf`&AC-}=SNQe(oE-TgK>_|0<(hykpekbW$k5vD+~~g zbwl|7bj8ubaNwFhwBC6d0>^PJ^Y!g_TrQ}3!(|%oMB@s}K%|D_57u$%Am?)p3NvYR z2@%@H;QvM=vT#}9ac4|YO?I3{QbffuJp=DDgDMI9f<TgSPEt5hy8`CGZ+eT1C+@_1 zpfH&M>Cy7o$tuF+{Gumy8f57xy==G4KW2PC)d}=OULbbVRGM%z%U})nP$yXRTz7Hq zDfCM&asWL`P>YbV!8P^bT~Sr{z(#6pyQ(zCtmZfo30xAwzkYGO!xX&i&6L!Zt3Jo5 z^@KILusbErmB&*al%2^{*Mq(k>4y~aOn-KL<|k6-8f><DeOCWR^$VSq<Br6#T=Fr) zxBQ>9tTv&fK$F+2`ne~ZtG2V_ZwrC;4WrCD&g9b*9$*NMe%X$v3r5yfPy1>DcKEkh zaWXWbkh&uLaXK=@<v+hU=%F?#HP|dgy?ieB5+Yr2^ICRKJEs1VBYq<;yx|qED3!I3 z4heonJW>6cV@kyoj0kt7x2wU!<4q;E#T|nx?Rk%o8alShA$a32gu2~4w;X!YWuq_0 z11+C9e2-|B1at+aPFhCV<<VaEDwU3sTdxpT8IOPAH!MC-vELDYmXQDC7_smS(+Et; zJiFs_?b1U0=_+OdkNg_2tbldbh96@4KPz^}7+;^sO8+KrNxsLm(vAGV9F*lIgaM;! zi8(_&{vwPa@_KL^mtB}_RiTpFjK6PW1<(5-i;4d0UtWK1{Olp`9&QPe1YnmF@kH)# z_!|e|HT$W19T)`}`doJlj1Y6)5>CzmY0$GhP96F@JJ%RX5TO4M&JHJW(pd037Q91^ ziG!sP01j>XM;`9YC!o18t_{-$8K8eELe)ruKKz7Sj4&Q)=*%R+0$wX+(bXTbPXBpg z%nYZ$v!R!1ab1Qyq5=c3L85lb<jEmrTqyy^H_Lkt(XHZeB8&AXagFQi6E<j+yT5S} zly#pA`GkBy2rkmZn6}oyEK}{~A%@EjZ>P3q<DkmkBvDW&ZIq%;Xp<a#l2`dSH7Fah zQIPF@0)&VE2LTqJ7$q~0PRpGtb2a(Vf=$sQ!4O8d%eZos-cSzll;~ju$>?Cg=+Wwd z0S$b^b_v5ZR#kTLls%v!iMU&Hk<@be5HS73ZM?_`59hEs&5;FmlZ3lA;iwuqz_KxU z@`SM=+*R9fDOcTMkPb%c<}e2;dhpW9J)qar%i|CX+Ef}aWo{3M<-rc!UenX$2q<_< z2rm2tBm-v<2|#ahthsxhMM<j}4W&=lAl;LoU(@PPXtcP(eo}iegl;y@FxSphpQK=M zkIA+S>o;6RVGU9n!{x590~1x*?e1xC2Zb<FiPm&Hpm$${!&qQ-R81WIY4L*bd{rt# z503q0L5;;HZ=4`C!CmDo70#Rgw4}}GJ<SdqC6?~>R_CZzZR7q%Fl=nwDTt8@)EGk> z{#WS1pv}{US>t;`T&^tz4C=}A13B{YaIV`=Wg~M-{4D)L;EM7Lo+D`|Rx<oL7#K<O z9QYXMnyM6FQCVS_bdxbSMm`T2KmWtTXcRJVz!lX58)T_B`q}0Wj^*H>DjS&t8uV`B zGb>7#HGnWG!NdJ*S!JbMhu-_1CPp()Z!X=OeQTboGfsXenW{55TBu?63fWk`_vp6j zm`5bN_tN;gkfL}j7Yjo25{9#QNU3@(KRKI44V&a1+Y*h@N%^$(G=_JGQ3XvW*Afc0 zRQ~#YB6XQIeQ6@k8~FPEInxksL|ks3Z=&n?S!AN1Ki=D!;^F+aCmQ$Ru&fuaP3cD4 zAeoKB1Mfz%tTq{;u!fWk;hb6a)4LO#>CAj5E@iG!G6C0jvJNC)`w<F!u4ZiHaZSy_ zIm@`d;2HOK=^Yp0o_=FGgXBAshADtjCZYcgmfmNmnsOX|o|km8lsNG>vf<@3Bk>D& zQ<r;(_UTX~t{YlL@Tln&kR2tKO@UN6wg|(q7(2IEBV;~o@-n^t<RG^?{006Qx|E?z z@78vn(YY{FoXgb;C4CX*621#x5uQn%hicKLa+y}iJ;v0q7pZ9Qy?ywR_l^`2?9?R0 zh%jpw<z(JzVlhE{n7TckT=62+viVY8QYGFvGxoIcamEbunUaDtEt^0i93t<Y>lwkb z{YZSq(8}q_w$1T&Km4SvfL{JgR>fIbmJ+*(Zijv{eiP=Zan6mN<eQY_`wu>&J(IeP zLo+R%w^@>tP85<Ez{2LCH6(kUkX>J{<qd2so^|aRBubLTq{=jNM{NQ6h+~oqnK4Z! zojn97an9!(>!+)*XB1P=00(Zy?wO<8vMt$<Zu*aK-YnDm%^Y=<8Zl0$r@QtIfEX{y zlFI#5w9y2V%Q?t+WN|c=Wv1~Ho@r!;88yFU+F<n)Uhc;T{WrH730KpBJF||Xc)*4z zFi~)~MLvoibH<?~^;M-hGp>`+ih4;#4O}UCLV=yM|2y6hk~w6ngEnhOQ>UMT0iq)G z&^r@ZW^`(?Ll(h!WZHpR=L8^L<)g-!3iB8k<8@@yZz$J_lg&zqW7W&oM9oEV7Ue`R zJYx@TJwt~Au!J|0?orR{Zp`hHkOD+0__2pCZt1`S`(~)y?ytZeRDb$6JlxLJtabkx zL><l+k#fx?EleFB$evUm7=ujTwN26Eii?=(>wKG_@0_We!+`KNi_rhZ_Ja3j$YG0` zoi9uGobVw6HzG)Qg4WYJXU5d&?_q%VmVINADkk4OXPKHgL3X}q1-<T8OH5rjb>Ve( ztZQq|xominc=gL1lu||C+doN#<GbhEQBW)k%w9WdqHOi&4lir1=2zHKO3(Qsy*jIL zMn}?{9Fe1U)}YQ|ugO`p<-EKU6E5d@$Uukk{Ls0yAlIyo8A#0%GP;oJNRZ0zTXPn0 zMH?cM86iL4)>SOtnxE&&AaZ?vIZ_-ua?-&ju+vjW)Yrla+AIMzA&6!}0W;0jvr}w} z5=v>;NdVtt@o|uAh~!hEy!^M5amsAIL{GUPj}e0hH0LIg3CoysYchg%h;w=ALv&&3 z%wq`@4p$NkzVbPej(*M+H{ipJ?K2$aay48kjisCnB}Mkm=4283k9e+GG-rbg?w?K; z5cGd}!|kQ^Fc&s>xwzt;**h*+<-$|a5H|V!*_!MVqTL)}?~jl#MmD^SSMlx)VVn~2 z)8IdE9nJ85v+|U{d&>NS_pNNK<)MRyr0Ne4D*gAofr~ZM!DD$VeTCS)!-$4d+4_Lv zHC$eQ@;o0gMCt>0fkfV846q6vtS|bp@U1lGDse%DCW6=$>7nHkApHSk(Y-H2qNOM} zdBl#K8=E8;yNRd(4-aoXvPv4`C+p}j^p``}HnByv6*T==>LI3Ij|njy-JE-rc49fi zL60F?7a|gL#3=}ZM1Y<*UwQRw>nVXemPpP;z@A4#3XGG4man|)+FFYKdZ!Nh{1$}x zq&Y+o2P-Hde+c-x{xP(gNf}cF<>AO<1)zdn=phPCzbBL&o8%Id^fmcgC3AD^QAn-^ z?Q<8TpprV7@r`|od$M_R-~^Wh@U0-63jX~KDw8TYzlHDyow~A(XrUDJQpQezU?bb* z%3sG$h31l|pGCupnUI$mRHV$#C!#dmrUHz@fsh1{#5UZCN!4M3kJN#6>!_JoJIGAx z>)0gy7P43@S(QZn$%Z>rKy<R$Wbq!bwPm<aEd*5!)vKV0R*(-F<qKbZt(PN?-UDqn z(~gQ=n`(wTDMNLcU^OqQ!DIw22!>qWK^}url%W#dAS4bXN}%!*y*72~LgkdW7865; zy12IZL4w{_#V5bI=)oQ8C~%9b!l&sQ&6~DaNd{>02St#T1zc@1R5WW#wJt<>8*U2! z`azUzbdO=8v3pK{{P7fBw<2V#25f$sZbRA~OAK>Ez(id`UDvNYI`?(t=+#`kZ(|wM z5{*cFA<WDxlG;L~xn2E<!ojVHo3?bSsqU^ej(&DK%2WyDP(g99pu3>MTwKVAOvc~n zs4b3P<R049t5Hby=vAs-^gB_|P$DdDeKSTN`eDG&v0K-2w|7URK^KlP{0ox=Mt+ZU z{kFXt`|j&DrR5i*0vh}(R8TL88W!Tx9UgI-9v&F__A4=_*!y?%QYcmL=jZ1?O<iKh zJu&YR!?OSTNnHPOO@PdEnoFoI1hvGKd^*x?IYy8GqIdr!kA5A?AnRMg+;B-cq)40? zJ=Nu_AOUi+1!}Mt@%&eu!TJ^9SgLi;;ptb?t6`41aBJK*^7>CPjju&Gm|j*wZ_M8j zQF8A{0#R={l57ciE=|@|-aK1J6|M_4xd$&MhNa1ntB6r0uP(dN!$Nf#Bx1-M`_Jch z+oCPh6GRxhEASiK3q*~DJny<rsf*=YilvaKaEk=Wa?BCe923&+oDw}>33T3iAAthZ zmovD#6S7%99j;#c^>uF~8Ip-R_{R?tub>6ih{2u0B1T5OgxuR)k>LsyAdi0Jst^Dn zQRFpFE+^&iKKp-^*uNA)0^&41UjRg14nZ#8aNGVjQgeg3zUik6cc5=8KW0z__Ok%E zE`}qSDfb0!;#P}Cq-AecVpXALbesdca1(|wAj)*1=PB~4$&gnYG}EvOi2`M~Bbn{` zNi{v~Qgf<x?5BqOw0q4}B-i!NjcHhTLw&IS>WB*Tb-?V&tgGe>$Pq{POM4otgQ;T2 zLpS#{-;d@foox>JqxEsTSXar&W^#E{*Tvqsuc6AHn{xJ{onNlzVPBq$=K?G}{EHX; zBJofwyHdSfi(R(kOHYO+n@>U4I3BrEkMC|w*Pgu>`p@9k=3@7?Z(skNj4gU#n&y3U zI+iYWGG8F=EHb}RH@I$|K4o$VF44p__cUnzk^+~TSysrAp%yXxV?I2EkI!JEf*X35 zFcU_-p*`Ro?2nfqi*ubIkXIObvJ8ddSfXsIN<)wAP4)YGz7Fzr<~f0og=C=wHU^5C zR=ZjnCX#jh)UJrJn9r_^@kwdzWn5uUq<5&m1VTPP#3A;jg^NSJU^YZ#?oEV7s=i{8 ze{q~*ad1PgV#yWrk;+2(x1DJ0$wM={D(1rXi}`y=EsI$$3o9}tt`8f2=30o^*F@9Q zb8ZUWS`$Yoa5rR!g87ByZ3T0goMpwj%2Wf@`a8w(stxrG@w0i5JA|Axh;zSCZaxKS zb1C6vMY2TrqyxO1Xo6={&=iA%LhNPt5PZ-(2+oc$+#$ax{0-`CQl7g(zIky3_f(4g zU4x^&ABq!>-v89_;OGMzGc$sOJaH<!sci7Zt`FSJSa=0TQmn4eMqs#n*(N`}*9tzy z;NvG#u)I3;ccroqm&^r!zpz|sgO^7~q!JD^M=>`IwVp12V6Iydk~J`Qf5mrz!;TCU zFC{|w;@>+j&7r_Ghzmo?Z9JzozniN*shASSpO$CBR|^ibXB}*ebY41p5RG)=`O|4* z&iivGC*j@E>DkJAe{LdJ!^pHr_k<#`$UH7V8-km$@qvQ~G@Yb{Kf`xe#Kh>`&{;{6 zNYq<ps6En)JUL^WgQM=;6$<fAp_LB_{CRnG0`mqNR>`$;g76W3L92ZLQ5KP(h;r)( zZ;C&U?6$a8ktA5Eec5o5xSaNveR8{>=d|I@(7L*|6&L5Lwh!n^UA76mjg_<O94J%$ zX<dL%l7bO<tI~ss^Bfq4Cmy{{XovQJvbV|?lI~dCOOrNv*gk;;SCM~v8vgh1?|-KO zh%!!lBIKN0>mVK+ooj9Tj6<kiw8JttdyQ|HBa~z+@^PdWCt`JlXs{@judJw-UuG{_ z$I3eU4##!!;a64pSc$H@8bMQl0XxT}ihBap+RLHtzmL$l(I`$7e+%8*P!^e6H>kk< zK^^+k%hIq@i2Kwf^uMQYEX7Pgt;0IzKULA^2D@1%6&kbx0^zep&TWfqAXV$>xk1CW zUeyK?y=~h=gwv6ztN6V&Gx0zU4T;0&>xam<uwIDNFfAyCY&*F;+*{|_8M7}>eM2D* z-X>kO^6eFY8nS3(pGnsN>Z~ypXJEV=p!6i21<JuyQKY{0SQ>G+6?8pRIC`z#Cc5u3 zIt*>~mm`PE?73C~$~cMdpqk<}HsCO@S}|eR^EBn54>u9J=g0GIl6zPElH9#f?<@*a zXfX*YqN4%IGM}V4X${$DF0LJ2Q+W|L-G1xWf!%v$9sR70teCuBJVqJxqLPJE{rhB8 z4Xc@=?^<P-VGL9Fh<KFX*ij|gr)+-wei6+mP`*))o`BcUbPMjNRy0zvKHD&@jcK9E zRZ7SC_7Y`9vMOrY5-c@%+NR6CchsKxr$SIM<&?1XVRPT%VTh+*qW;XblI0Zy9p6$C zL0W3mo$FIQ*WU2*F0%PfLOn&|oj1&ozdHN8k(&EV!(3;Z^O@+dz<l2Mx!&o{=IA~( z&tn(qb{q^Cb6m|EqBh@;>}tWbLPZW!08;DF97Ly{Djzwug{O{PZ3TVUfa8q|6A@kQ zxBg*+Ow|^ra=JQdjMOikZCrfW*45d3Lp|i8+UtesuCA^=_0VgLuit*}>VEW3J&daM zW~D}1*c}B8&ux73K}$@Y&k~4~0OpmU005u>jG-)SLlFn6L|My99%9&06##71<l0Ol z@!e1GPp-MnX3_7d^xy8?fHap`)ZLq;3Kj*#-o0^8cwTK8B&6rm6pKf*H8`{mRs=}i zW>Fl*OVBK=AWu&VSTxIr&x<MihA}_{Ew5zY$d3p>D#Rq@Eg;r2bTm=(rer^qXR>El zM-&=mX-xXfffkgPqoscO`*zC@Ge|_M05{rS3pu|3-3QS)7Vm@opmH|uq)&@xL2%mI zr|P{v{vcbq0|0(nZ`A<D-xih9B;~rf*EjudRCFT&C?EXO$4R)B|D$Q$D6mG*?fLhD z+Ylbm_I%|{2b1)4?|?5S{ydI-Zl{d$2B4*S@|+dNBI0CW`@@AVZn3rNj^q-d61pow ztvE|8+E5DdxDb?aL?`{`vedcSB3m<d;<2Q-)px&78O%On>$KcxBa17MPeLreH(thm z`8p{M^hFC+F5QIRid?v#%zvV*{q9!b;J~ooe1_=z1Jq%`d}>@YqA2>x+hgCV7lHW` z57*ScWw#6rljbuX+|~&7e<A*sc#=GH=x!p}oep^PO$X@wl&}?d{Nc)CB27*lvxA#Q z@glF{2Q}Zpodco5L;!+hE+?JVrpToRX^cs1a%QxH-%E^=II^}GMJUpv8R@4=r*6^Y zN#ysEJ3TVuP1zPuqYVL{q+x|q7sanGuO1nRwJ_vQmPb```GpPEU(+JORsMe!H&i+& z;B<*%Wl($6Qb@E)OW#)LRrZ5SGvt-a-6fCsAD?_jzCb(u<KOU+KQzI;X0lcwl<WGj zUhFUlgnI@R-4$V3ins1!B|tl<-iY*ee!*k&dl<?_!jg_aHUY(cAr2org9r~6Ip#em zgZXQRMEFvk$-f~6B_0zsuLA78RfD2moZP0Cugj5ceIwh!QK?r!3fKd5?nuPb|GW<t z?Oo;l2yB!VB~JY2Da`pgO%B6*2iO=HOzN>jq@J`;Ok*tI0dQ?b4eS@svws2f2uthD z4`t}(-vfvHF>?N0`qFCf5&Ze3Jsps_VR^d#fYR>U9bzxO-N@L|vi!RbpnU#Tdj68} zb(!=eFO%!<_7<3GY;Pz!&Aas}zTHg>Bq?zNhFdVkAFSYI>*f=u@c-U=er3>TeTCo+ zsLJ?-!;}I+QJ-rd@DX{;5jr_tfs8zbIl>$;WtxDdU6CQBYTDrS1?C5zLCBn|oP2qD zFph(WTHc>3d_=~JxC1CX6Rt#X)s6%{q#PDR<8%k$vNRR>6&VfG&Xg;MvX6|`e77-8 zEzhS)1xzDTP;>Kr{m{f6rm&t<_0%iy!&{F(48GZtIg>SjzP_py+OPDkIBG@45>*;C zam0=_@U`z1pEw3Pyc+h>Bi+B;BC7;OCxY;V^XXSu=1j2IB@)b!CBqaq(WVFw)4r`p zTW-s;)5#$Gaur8_r}-NnsZeNdFkq=|JY-BOf9c8*=50NCtHYS~z+c>A9BsEDlQ|@1 zPXpiB^0v$Z-&hbkgD?>`1VOaLfrsT-wjA!OsQR=kCK@jyZEQY>NuPMLv_PC+4L9cc zI0&9BJRMIPsh2cYrlk8Xn@(2hz4MV)^gBj@%JN?{*RFygZrNxTEh<2<J!qiC!yv%d z&Z*?@Kd8~8LKVv3+Dqu)LpR*$MI66^!|)u=9cLUmC^n7y99NmHqhOu~F2I27cb5`W zimb7BV1~XXv3@!fnZqYQJQhFbpy+Rs_raz@7N}S=wXKf&uxR_;-JWJ58e;t86B}yy zS>8(9{Y;$%fI0*M`a19{`n1hCEXrEw-G*t%n@3(Wr%_C`0_<GxMEUqz0~gc(^h@R} zyCizM&M{BK59&_4ik-q+saDuzRnh%v_XSB7b#m21Yo7b%wml_8;Ck6f(VEb&ia|b# z#_>?0xq0)0N?3Kp**PY1m*z3xVs+gFod!ZF8zVLPf$4df5JeqdnogqP%nc}bnz?U; zU!G$2c0x~rSxI+l<C||q^(meiuJO!(-r&P|aTM8pS4{j^>n~Mfq3vsFG8pR)IG^xK zPcpX0-j3o@a3jX|i+`7Lk)^p@QgRKYnIs2Tr1f)Lg7&I=*c?><yBlzxJtrRX-j9-j z_ndP%BR?P-1QJFUg?v^@8&>wI^taesH-~PJd}&wRSy7+G#m{+Df4!wj<7p;P%ZOT- ztFnc6P_*x0@*`TxV)>U~Xo&9!<K2>F-3PUIPzw7_8Zl9YxhRqzK})}ckNT*L5AqLQ z#kapzvPcVPQX!+V$TITGJ|CsuQHs*CpIkkIk^=^F@6)`jjfL@`%C@pfQPs*CAG(1@ zOqMdBTxT&`6!ovdj`bdqTz?3SaNDYL3xMWQYR%zt>6HOai}P~3&^usOK?Jm(|F-q# zm9l7}e4sDQ#PfD?Mzuw$ce>R_)6!2i+7dQSpQ3P|?c!-(_v_hbvgF=|H?*JnVxRuW zTo2q3fbV`;WsXxs?c;O(FIh<XXPz3An|JLgUNR4WhO+~;DIYCJlyoz16DN%JeY}9X zOXw|V>l|KLn^mp(`TX>&)@W#Zv;Vg##SUpAcA!9*nAn*9N!DDsMmC66ybtw9hFApo zrH8*abw#K1)nmh&V5~+ga{y*rXYRCNasJEk0BGr@8k_UMhZNmM&!Ms*vgaSI-Asmh z&Am-fXnMhJGPC+(o+r;iTQ^43!sKsfL{!@E`QHhLcFv)ksuo-Ht8^D#;}oGs8@>=t zp-Sm0>K0CSVdq)xusT>!h|PGJ(O3njV{5|kQ^F!NL5sbX18TA?ElN~)lkiqy^4HxZ z?&*R3;B+a_d>i<vVqlln75iB=plQoo@&m{D5|!oEb0&ihZ7Xi?KHmz3-pf&%zeJOn zpBJpSf>nMGs|dE)^M_#HptXzId<Ti+!?d-ec?I_6>jq*s9MCV^3-#D{zp+D+ajKS1 zO46$R6dhwL{@YW@l(9H<iJH<EEBJ{%7qd{>Jii<&tN-x3$hyC2s!_oqPe!7QLDsh& z9d9A4uOefOSA2?g*v3K+Ri%f$tt+Ge1WPEWUsMk_1ZMS(4T#pQC!M)^hsfRXb!;&I zew970p*j?bjr@|gN_()QzJ0C*_Fv{?DD6Q;`3QTA0xxJvCx@kn8{2t<Zn%9e5%rpl z#+rwOE&1PjdI>5OP?Vzx70Fnt?HX)21U{9nr+`VS&j%HoUxQz(A50ZC{;50fsUf7R z`CoN$I;O?~klwh0Yf4^*6N^8eng8~mFYSkK(b020oJyWcBClg2)bT-IQI}{cdAF7s z*uMKgSuh;r*#LK95aJn)>$E3yeK3D6+&nDYeluLfpcNzY{hMEy#Q|t~n#rLTa+o6c zJ-GFZwg)n1P!4eqrU6=UuKaBRRn~6fnD?!#(!?{tC=~g?9akPegrc=0awx|5#X+I@ zdr^EWAwrA5TDZb`A&4$zKfAmY4aGnJHutx|1|&&zS5sEE{rG<`lz;)5in|xb)jcBc zSds}k<h&KSjOuXQy2s=jy9{mn1N#js>qi#m1s_*3$0AI`z6>_Fe>Bem+j8R!Uk}=F z9Jy)Ke)_-T9tuRtBF7xdaoe=VV|;b6rrz~5q{H-d<T;V{$5kS-^i?zhj0qwOkE_3r zqq%#2x5xJ*AUIRg4y$r)d#ipSLo&p6*X>W?zuri5zkchJxT69vtRF~N4;Sxw-1<Ll z0%xZ^OS`zUfgq#fsMMK?h@!(tkdAgoi%uu|pHX<@!y$AQ$S(@4jq?`Qb|&h$rgXYy z>bMnlx|Qp=*LJ$!)A8u;^mxqHIX}{Q{)NtkSDhD@bUfEPJ-_LA{qFSoPsf|H%csHw z(~|2gbHexc98VK&a}s{BoyCnSi0mLc)sZ9=y0-fV(3AHPWx+-lf0<7r<g)SNwu7g_ zlU?}mL=3rWyI#WbnX+uh5zzG$mrv6mm=~56GdOH!<omPCCQHmbj!%0uj3<V=O|a-N z4nNjSrOifG_lF&i3IEUeO1Tw3m^Cw2_YX;Ox%f+MdE^Wk|CR7Nz$xQhho!`1wgn3( zlB63c&zm26CaU%+>)kQt*Ra#ib@9v?`1vjiVx-`tEhlzdAYu)wik&qn`{h{u`*x|h z#qQbs9^F7zOxA2>;%zPv`?xsssP>Kgj>NU8ONBGe!g^7MF=j0+9=wQM^)Kxs91?~i zX3Du1gTT<>-WFkmdr<GZ+g?(M)s2%!&Cy^{UVYKM-DvoqEE~|3zrt8=vap^$Iun{m zbU9{@`;(i(i8a)JZPvTJm6l4yXYkI}we<LPq{8*~EJ?qkSp)OCdqtZqwn~F>b6;b6 zUVqu2&5v)i9t~fM9wZw7jC%j)w4F6PQrEm<#F)WdWMM8=*=w1XO)HEodC*%#5EHyM z829Kz%zWHAg)kfWfn9OjDY?ONYD&d3;;Lm5&Vn)cT(7$xYv8Asd)tfO7=NGS1<O2p z-;o7Y9i&wL#>=Ai*`+C*wHHOIKmW0&fdg~z4;1b5jIGAzLSgw94Xpi(qw!XCe~MS` zHy?xDlLO0=z!gfvEmVtEul(A-_<G_<{S#lY^qfJsm2Jm>B<`8ydjTm|5T7d%p)l$s zg`Mq~O^`$tE4v!=Rs&qshqw_FlZO<RhYid0rY(lXdeJYv01}z!6k(BxGBgDOc=YT* z8OwOI@Vc|kJIRiI;ZeZ#W&dCx{&rx(-B&az!vpj4CPO!S-3H0xvn<|fW66$Ki!eUp z(QYEnFzy*xYW4v>9O~0fCh~QV_*#rH2m8k3{UWmfPY0_RmFxM$M46W&x^YZadC%9+ zpmpX|*>ASfgCB$U6F93MNnp*BoMwkC^`>xeBb)Q!!~>+l#tDz>HYVFIg`{XAEazRs zzuUaI5HB;Lt4Z_uB>1ka$ze{p!y}stib!5I&y6^XK|`yczqW*I;<6HcpBMV%B2=M{ zH>>HaWlP*t3~h-{iua>^51~nfoiffM`CW!eGLeW2Jf2U$7{7kAS0CCWI2KDDEXM4& zHzu^V|NSB1!_1|PjqlsU>MO8b-tne=m_gcttX9_r*DljmQ*crQ%2%(XIm5x<E`lGw z^{JhqExY#JF6|x13DEA!%%xwXIcf9ZMv;01bP0k}P*GSA%x|0`;GhusV;jRmQ&;9T zB(t;3hiyfLWQAK>h8xqswKU$|uvM$VjBo)IF*2};;NB+B-3jB7b;4H~&<?kM63n5M zJBlDeqBeQ;CySiy3Q%qajUwN3lbqbUk4>C2`&$rt;lckgbms9)|8X4uZZ>9fY%?QQ z+gx+z4qe;aNA6?JkTa3{3Y!_`%zcGixd|bpLdaRjl~gFDk|^Ef_w(=fukZK!czi$K z_viI_y`Hbg{kL&<!5it<QK+7w7?};>`?7p?O)O2_I^zr-Dj^E~g=~4kU9zmEIs~S} zs};%9m%J^5f$PX~HG040V#)?(k$ksk{@X~R3f5RKg&;E5cwzz)Yq4jNjdv?M9T&u| zNA2OwwWt!p7vx=`G-U^Cy5sM?8cGp3R}uTGy&Y-v3@vN-`&;|;jWWjqa%{U(b4>Sx z8|Myx_1e4(@mKiyTl~X004#4Y1U+^cDL;%XeJynot?kv$^yEuO(}V|$Cub|sv{Q4L zDn>F@7&EG&3PaX!P7jXipT4<4IT9dbx7%xZ<S33CRa)yTHXhBWmcViGBxg&aY=gf$ z55h7!5rXy#`Gi{utj_9bSuiB_rZgc_Nhx(@t;nB>jrc00`y^LYq4T8;9BL)jw-2cu z(_q5%_-R#0+2tBCS3yz8G$WhMN=0^#V*v|u26)k_28B)%6H}8-@tg*~tNGAm7&?4S z_8&=MaUqWfLT~F{)h?*Bamln@a`*`UT8T34oaoWxsM+lydzFYwd{&9!sxqlNv~kZO zb4O1~zVH~4ujR|f_>M3&;>L5CJILl~q|JB_&rDOSLeI1NlM+?5O_6?U_OvlQVrGgb z(x^AwUAxUJ#cF*U596K8!`YbjvIuk?Tp{jN;7s9C3O<Xv*)lt|d5>yAhNP1nZQHGZ z4-bvt>^y=;HbB8_aDzp)TP2<7Z2Tq_!i8La18oobDQS6kSO!DH5KHI~p*?XTwcU4} zZmwz!fkR-lBT64caAi}GT1h2svth>jq!a|{G4z`?vkubK+92QvpkO$dpc^7IlE7B2 zF&Lohp{+#jWFJXIa-fNB02?Msn5eLzab)qqBA)}0iorjNw+}<WPM14p9;arPAhOr` z<grR_^bUSj_3Kni^M7?$T5tP3*ZMdPcYi|cq<zCJrSbb2tB165t|qEPr;Z`FE60<W zO^b!k+Z|IM{?hc6IH-)i*ok&7>w<jL#2%g}Mg-g_+N*k{2WW_&Or44}d!W*9y`CUw zrtmwd<6p;cifffF%{a#X#ee^Sex9>Z8ntR*LF;mJwK|D75SJ;5C{_(+S7`^FkCDJi zv<86P8>GsE9CU0V9I<1vafv~0;7U@qd~A@-vAJOoX}mz1h(ri^;y}GBYTO!1AiGc_ zA_l3`grO&@;-S2JgK7@AYKD#0;IF8jLeSu}Lao~&9f?wVSWI#UC|o2qGY&o?E*L3! znE(?Y4W}@{AgUUjm-8sTDdk2}I9=w(7D9k>d02SyKC5A0X3+U$NvX%4fw_`c0A-p9 zlHQ>bw_%kTRAqpAn*NSRNfT8GQs4>0iCq}hJHg12x)|nm42ninxaZ=W2CI<#z!2~l zP2blx{NhQ0GPBp^V9%FHZsc;IvJon*gklzdlpO7Y#4XprL<?yK)4rQqnlq_J_u9hR z5--cht&mx_**lY6Hg#QKzbd-GY<yaxZ;IGDX8u5`O(H6;Y3B<bzwcXO9=DrkmpV?t zl0fOy7Vt%8Hu%w(PHe9cG+jBCayZR3Yau=PMbc^A7|f0yP0`lPLyLL{a-#K8zt1HV z<ok|$QnV6$@w9Brv5{jPEFdj83F(sW3&NJ7G-C3Bmaqx_W{Oo#+bDoLlZr82on^l) zYkP9Wi0$aGG$kru4jeVXcUlOLABWWC>Oc^U9*Zf4pcd+aY*T|{0l1fm3CJgcurhoN z?6$aex(pBkH?7n-X!(24+;TSm{Ph8f21g_12&f#g@*U5-+V@;iGaz?*eTImCSUdia zXFfa6O#|{`a!OlgP_CG21fg~seZNl;e~Emf`Dh@OI1c3#8hS7B$o;t9+MVLWt}MbU z$4`S4O5&5h1-+x{fzgK+%B;*PFm~ol<+<)`7Ij^(iuYHs!AWBjCBM6ht=LZ=HpD+V zF-)uWH^P(ALobrEiU>NR1f$mLc7Px$6KvGf<Vl9_dMx0#Zpwo0rx(bNFW=Sfma*OF zRc$L1K-g@ZFkKUV$T3yj$n7F$7A0ldJ#OD}ELFm`@h4i>O0o^ry{?1BT>vDCakUov zNiyg(HWM{K{w(K{$EWPu-q>P0l$2T5Xu_TxRSfN}^3?XMMUxK$8xjfJpcA70)N%|% z`)jBfCFloog`j);*hY)b1Ou)!fakVpCv!Pktjrdgv};(Zp1i&3IXCH{Nobcg)wSf% zpeDf8qCk<XLxDVRp%OxmZPo*k>bLwW^f_y{gPI57(6nMhynMs3$Ok#k^H)k~Pc`;^ zz!&!63BwG`q$u;T3U~eoZ3(#SV?_g>BfRy|j4i>22Oo8_i%f#C9qc5QjL1j8q7}s6 zd&1UL)QbP%odR50Hyb5Izhv!>0(qxaC+1#ZJ~shj-Ya+YHiLEX$(`UwW8wPo&irgj zl^~dA4-i#`s)*KGyCmt^-%PX8En?nj;#r~2_nI`pFQUdY=9B@o(@6fvpLl}H9X3qm z%iey^5#Y$f*4~c=YwFfQiO%5IGe9}FGiyBpcK_W}VB{_6OXZT2(HDQd$Y@>!Ijt}- zRs)Avn~2hPn|_IgxKn(BO5e$MwK%!Qj(H`UYT@mY4Jn2?sL7ybG|3B6CL-V@LDcj! z$(69TesfT)M15Uku;Fhb3rpw)W&POUhxH~0;koh99lXB)_m$V0k*$v^qt5*J^D0vq zL1i-bjAf3RV{=%#I1hxSAml1c2w_=c0C&JKH&8dCM)HOmC=Ti7TW^6mr>m^$lW{Yu zR{L$2;ix9_?>cB&ut$Z=I;T}}uY3qkr8G16EuiuNYxdbrI_;3N?!iA21+{m+FGOMR z>_i6N#sxrR5M<S>N&XI}gLYzZt!<OvWWG-};eb3Q&;)4T`1k(R%QW5cUE3O2#3A4D z_3zByk9-%vPuXGxuze?jTvE*smNpMW);Y_rNvX8lGy6=t4{HZhtA|EDes`<-0nh=% z?S}vk;hgcd7PudlDTk#0@k~IDT$6n~g{LL}9N7S`1uo>8EEoMB4-Wu0JKH-f_t+2+ z#K9}+-`J7g9}__@dG}b^ikDxzT=w|D!<axK@bMq<EgX}?>SAAxl2V@X`4mEr{OzW| z(s`&hO*ZkP*>H?$v(!s@c^CpeI6WcpNn(>Uqh0fPO|d-VqS>kuE@TS7)26zYg>xlW z;KbP(Z7|LbBtDrRiAUW5WDeio5Zp(VQ}(Ft3sR#f;eB*B2?5*qqId|Ev->20%a*nH zAX)3C;A)OjvH&o|?-WC<Ya@_#1!uTXK)cjZi#5#%w2<mN0UWfB8Y=+{u-_qOK+ojO zB?1;Y{HIt!me`)HGPyY@mmMaRW;V;-Tn%C$N)?epWt~rm8Uvr<BFDmum%v2yp5$cH z{mxcd*kA)SP0leJr=)}!;04Sqak`_&pqnf+E-4$h)X!E~9yg&GgutzRwpLp8*ZBYp zCjk@Wi{n-%3^CwC8B!zf?HsGN8x+N>ElQCdok4_>vd4H|i4S5F&Z5BE14ubn(5xw) zeSV#Llg<OjtMz2f+;5YzK*%q=!CfZdTobf|{BW{IsZS~$zO>H$wvuN|aduUgu<#BS zIAw;+#4VVzGb9Wv4CIn%5<I)|;uattSAd6)!X^1der}%ZhDUV)@GkmSLp)|vMNtp0 zxRs0HGTbX|?xPOTRX(5CQo;5BaP&A|pNGiNy|+?ky?54B{KlGsGn+oJIqgc^HwLnU zaWTCAId5Jxl=O~o_Y*`)8SgbWR11i1t_#lNE7rwQz}U$&nrin)38f%_x*=g`zGT=S zMwS{~RTgK@kh6G-HxAO=vV<JpJbra^9i2s(Z2C(5DrmmBuJKsX6^U5;pejQc?aHgE z{VJLNRPvH)Xoxlc1;$BX;G78G_s3vuzKuhmQdMD#Pa3d<`)``bH*@kbxXr4eHf$&J z10{S2CDR<V=aq`$JxY@IE=$&I60F6iVBoIlT*5f=>M)OdJjdh?NqsU~w&t}Q2Z6km z-T6{NR%e~ZD?xkR2)oOSi5*6-)7i&63GZ&}2ZWtgVSmT7>oQA}$Pj@P*E_sXWMC zmI|(P1Mw>+VJf^qm2~9hZRxXDf_pvGWf&*_Gk-~o_#~lW@uQ(y(8U9}nOW1IkRO7Q zaz%=mSN{OxjNK>yl;+{Qxs;zWz^Y#*!C%y9+xH2fEsAjRSQrlbMS`l_5=A&2$<T7I zHdU@^*$h6u4F1~_I#foKD%{8O9JZb6;I{1cSIFS|^)nyS+{KuEB6Ma;-!hyyzlU3G zm!h?8;gU_x>8wkuR=e>KwDJQ>C|}|Y)eznC`2L+vL5ytK4o{?>RC{BWeAxA|O(zT+ z^8A<gWfoL%-PxCI=TMuFK^45+!biI<X^Wu=%AlTgxATm;!mPO8b{%M4-;m=2-PQdF zWWsNUcP%m5Gpsrxo%7Wbj}oZ_mRe=3Xx!3g_d$J><Hx~uiUl}it}M7<`EfO)1@o|X zcuY|C-0GYAV%=@K{_Y&$IzkhGX}Gcnu9M1;;%Q@lo-Svzgf|XWKz={=Y+vGKhgBrQ zT1WD5Hb-t@+shp(#pK;Mj5i+eR2U4Zwg9br9tUHCG}Ili!xc-Cu@UzhC|1fe+vLaU z{-M<}2#i$LJ6xB#ykdg3b{Gy>$IH2Ct3x7r5lX_o#q!u7GIu4A-nt!|PU~F7lW6HF zJE;h?JdmStKPiB->m+(OaHEjNrCOS|n#Nu&W8Y;Mf+m)}ck2EgqI^f%IKY!<@HIBo z(7no)cicb*W#r(_&jsVp@1iLn-9f;Tk(RgH6%S(<in28J-fEuO#=b;xgaUnEn(-7e zgSmL2+8ZTd?1lf6|NRYV+#~1K@y}pC(BQ=jV3p8Tx8oG$MzEIXaMXS}q3(NxS9N4F zn1~7YX$D6t&mOAZy<(zD`3F>*hg1Ht4<6qlNEv6xL95;On~tguY0;d7ljqb!Iiql{ zZe~KwQg-3aqaG2AaNJ12EGySOQr$5|9kMctxA>AEy2+2Ow!J;9zsDp<M9wrla_)RX zk^Z8tB$psFjO=HlRn~k`q#h+u%wzeB4M}>R>K%)|L#a5{6F*!-CDgSNifK;lXrY(% zrUo!DTum>M-!9Pf6&94n`V3Dl7-kx7s9<4aP@R+)jEsRiQEJ|Fhf<U;M&QnRpShAD zhoMJa;U<1jGvgdqb*DsMBnU?@N$zECs5JUbZ1!gt5q>WF9w)qb6N&4(qx~$+^R_@% zBqJ7eI3g0hBsq^#Z9kda2hPb8V9u^c$(kh)e_b^vnA1Rmd7PA-e~}7<YT|8AQ@x@S zuMF?VQ^oZdoC#n2-!TIg3j;1vBs!EJ)de{80jJEco%Kal4aNDQEzS*s&kpLc5Zoya zm*0hSg_RI|b)mndopl(=(E_p;h6}HF>7Llo+-^&p(uEiTy01C6#j2V7-ne)(ZZEAH z-?Z{zG`t^}1Jp$~<n_hs288{{#grnd_<viukr9Uu8K;!xG@juX1f^uNVmK(jO%=09 zu$rmO>f}2~O_7loH}A7k58bd*6?`X@f@-`rFN*w<<awMavx>Rsp@7sfcj}RXJX=3h z{3S8@LBoX*^)9`+mvI$J`4^!r9m1C>6Mcn9tN!7!D(T%{&_^)7YHt1Gm$Rr1#M2(P zlxj8xcH4eqe0d%2x$YG4@j{so&%B#U#iQtcJFNWB++{bo$R|3=gMDXpj#T`(ZLv7v zn`HK`uIKvPB{yR9Fqv(Pd%Y4qILj2><QDqW7C>Se4bJVA&V4v0DgS2<?J=iueU9Eo zlMbR*xD0EoJ%g_ga$ly)m(TMG&$LBrL9nfz^|);}a;pv<DwqkyQlMF{ovLKic|726 z>FBp^aNQ{8aRywE#J*CARvhAKc~t%&rn&o%{!{)SKm$<$4!ae_Uphtq9)4JLLK1;= zyYzR)YM2pmt;yK-chg0JdHqq-fh3JcQmVcBHs_k-(L0XY|5OXD-fa1<;B87X--N!_ zlwt{G`}cd8l**}mZM=P5q;EL)R<Py!=aQX5gGr&<I$x#jCL}$o>VrSKd2J50mdg76 z#<PUzcZ6*}Gwu8tEu#(*?b8v+M2N~fe!5RJtpu0$=Oho9^bLzocE)8nMA4#7NfiH* zKHyQl1R!VTV=`jLf3&M${z#8$NJyy#oJyQTf`e1uoqUNcJ@pV-HXSm`uR?W0LN{A& zJwEA@j>>7CloVr-WQ6w^z%>{K`QVzUhIOpsw*x71ex}zB0;^*n*~6RJG>>XN>-#j= zC=_h>xc(*s+~WK@>&bxx?Pss7%BOXq)88IbGF^ijN2~M81*E82Qnkx@-9=_w2M<&| z#&)7&mE)uyqw@Z&NQOMEfqJZ%Q~vE@q+@s+`FG<l5SH9MmdG8reKo6ZYtD<<3NLWV zy_l8`E-b0p0IoJJcX0w*J)SwB<0p{_y()e~@?&zhbas-mBY<t8l@VS#t97l7qpGK9 zlyV*1BN;}Ajt5~u{?QX>wRvaUfSIIJ^^Ca(ch70{4=*I61|C5VSJm%3FV8>W9|T}@ zgK{~nRL%nC-y59`PT&kk4A(CaH_w}A-0YF*H5BC#*Q6cmcew1a9J)CeD0b~;&$9C4 zI2po=vuB2V4u@$pa6!NeN$tXA$u+mcf0D*~gB+XCdVA@~ed)&nD^H6))QCx`*p8^4 zCdPbT#P{r!SIDu>d}`iY>@IqC<(@1%?%BzgN7R%Fe+tv3IiWF8&2<C5AOvk04CY|0 z;UBJffnLybK1VCG>x8vm1oL>1piy^k%M=-zG0%BzynLTTd&TSViu~$T9HDf=OiCWV zrn3%BPS*|@D9MQ3fO_ym-GwG2Hq9xRc}GbP(sN#K_)ZpNmGu7e{hy#K3LL6oZ~#$^ z2-7k*;(VgWmw>4SKrjw?52^pB_ajeN%&$MAs?{yv?!$ckGLsT8T&OZwiFoOJ_k&ka z-d>E8=e1}#KTb*QWdd)`%CWQyt`KZn&WZzIIw`@@^VsPq<P-@2BelZ}-Kq*xICP*? z7>-Ox6G06-3Rc#PXK`aS1Z6&MlBnX!1d88Y>O>Y7mWTc<$D)wPBPj9nSn&Et)^Uzx z%rW?Di()}Uh)r*hxN!sGc>74Idh=4N^WB(#G`L2~N{8pE`$8zfC!w~a`MPc!>^sRj z_$9F}&lGf1Z|t9t*l&|33@nqlywDk%9ZU8_aNE`9;@6FoP<ZO^v`LFHN)gzfU(fHc zh)K5i^|P7U-5(ZPobJYRtJ*b?Eit%3itJMJA+^EqmlVIOWy3lPEqRn88p<Q58rO`` zh~470078FKggTh;{nOgrW=wC=#kmA(Pi~9{P!p2?(Wf|UyLrweu(x{;MHP7bPT&ec zJ6<7STZ|Gc?OASWFgrH+17;Y4pKfgdR?wRZ7gQjP+u;hf22I5|+mSMa9EK&^i}GGk zFhYhjPx%&bGYO1qOR<b1@Dt|~Xb4HxQwE#*PfWa~Xk`V!!vs6!8Y@nC`UlU3!|hdj zZw_Ay?entFa}1pDDsqkI^e*<uGV(6*j({TMZ=V?&#P;3mga-{meMATm*puUI=DsN7 z_{Ki9`LM;*1$<_5n>0@E_4#7kLwWPqNaEGqp_B7qgd}|tD~O+%iwDz2Q}T{Bzqq7J zmY2sDakK8Wz)kYJK$R|GsQL)qx5whkx>%q#YjixBWm7v04+G94@Rf^LU7jhTWkW>m zC7YIh<GC<{AtvjZAas@#<`a(y>~-i~UqUz!5g1N^R3rPs&HIQe179AST)FrCW%_5k z4hhC6A8Q0{QdZ67Lvt>VT#YWnB(la=n+T}!8?n>+j$#IaUMxPDDKoAr!_VB1O9q_s zYQ!FTM1QumraS081tM{&wBb|mO__GhMcM3Ii~WMl7R3Gjm!Ov~eQg{_Y?Yw~*}s2f zXYoB<QPwl~k+Rrm&gOPl6ZIs-=BqJvBcm&kZKiC0?1S=P814S0TdgZ{8m6E-cxQ(% z8f%ZsBaHg}8iyiY#s9}0wa(x*(=2Mo5un)Ak?OkO5y_BuIHsxDk-djFy?2QxT>-f$ zDifrhc~iDu#w^v)*9OdeI!6;r^)=BjI8M_>ui$I)7bt=s?^ujd@hU2rcckqaNGAfr zUr`(q&RR_H(#}WzHEgh6vBb8v2>{<}1<o(c8HK9VkV>pE0o#IlpJ!vcUfT?$BQ%jo z9~~O5g`2F|-;y((M!Xr&ne~UJb1-?up@NPZJS<X_i;)87<w~~WupyXn5aYZDlu$V+ zy$*Zi_ON3OCvozSrN9Lab~MyoH4RmHY*}xmp#^|xt}HrR?`)D%tvlDnV)YbxI8a7O zeFj+2iDi2+q%zF-r8~$cRT3zfSXMo-ezyfTZ1vII(o>gTz15d&sLAR2&W3eA%am8n z@#hAqQYlx@#YFzoA2B`lsNuxF@2DyR8wfwmhsR!8r1EI3?%BYAz)w7QB-^!r>?*km ziW0Oe3`qDm>dS-HN-(@Zm<0ss4Vhk2QAe~)NuA@Iv`7oduN@GO@l}N}_&GvYxTLKQ zx-5mu_`<|lFcvv9K5{urJP9%={-=1Pcc(ptIXr$GMH!K|@{9m9r6}KvP%Zi9IQG-y zd^HUPhZdS{^p7T7s=~Rl8Fa9md05>M$~84t**ghoqdSXdo51s?dioLEHwmvP=Rye* zsB9rXS#;jyQ?#f58#z(4NzSobo<kXI<6bhy;d6;$^Dd~?2E7w$a~YQo@Kv)63~XQX zR1yP2C6Pcv79zTr$q4y^o0y)xCr{OaeP)D>{wUcNx>rN6*_|E+ZayP{Axv8Q=x{25 zL*;CWGoO5|?>kb{u_9OSAZd38)m`yOwYb4rjuqvBD!)0fJ8@f_&9q4;<YabHzT^!h zEk|HM_HNRfY{IV^)>DYec#dy#2`3bR?QMLL3CA*uh&z%Z+AAZn5gi!;J9oZsX;Ti{ zJ2k6tOg6X@eVTxSkKvhET4#2W0zD$QG;islp?7&pu3o+P`<oyS<=oH2ulQ-MojH%? z)qdITNRJX8AiJRW4Zc9`yU4inyFR4a{WR(sf2@5LJFpdKj`QbA|6yUZ<X~GMe-Qdw zIMUO)@6wNW5t%l8Fj(fjM>tN;OBS{NVddv!<o$!zTXCQ7t~@lt(-4KtYeCgP02s5L z#7+c`qB|7b*utAsD%J0XP=j0A$R%)}kr}rv`u32i|3!rCg)=?KpkZdo;tPf7vH7z= zvAUv5&D%aD#`*S&s6GHDZqPGXAia8&k;f6Kt1Pr(s~}$RSv&PF3%vn8th_h&r6glR z>*cY}n6Wr+#5vlnv{&-}(NoU5okb7irEHJ{xZ_VZIgTL!besg@i6XI~-2l+3O3mtT z#2d(|qLQ{B>4cKEHYWzMi_c2Lf`S^NgH4>|&%J2?4;lZVr>n@MY~3r~L8J~&@h>#q zsfaOSUAigldaL-y6Rh~H@JI0bSJU34$_gW#tWRazg+gehV9Cx#nQFhM;j6f9E<_S& z-C7B8b!9}cr{h}OWvj~|xD!<}2IfYGXp-QLvz!<qH!EMAAv5ib6BVyJO-jF9kth;l zRo)w3mHsS<e_Gb66E8~b8Wxap`?^b>#$LQNYrYhBY`v}nJaZV%Je;e=MrK||&>b&A z!-E#90%;GxZ!U1#OPF!**k#Krzpj3h`bgB5s)r7$IlK0>U1-V$mARAO9J?idrEf}d z{Dh1I1LJ5&r=tb|t{$|ecJv?^Nuq;@I7AhxEb%|j)vN=n^+eb4?Xle5FJcJE>9CWO zOX)7`L!K$-@5*b3=BF-<jb6@PGXA4m7MwsWr!6DgI}L-T`F(|+EwM2Ew-_xSvfPvv z1qD(CK(l-Awe9zy@5Y}6Qyz5R`1;g+V{_^_@2_!__%HdN(VO1S05)Oz4EHYIHOm|p z*>DI1C+->XI}cyU^IDd8cZ9OO@5mMES*khHK6U!?{)1b>_(NlMz=peXp~F;lCEjR1 zn`SWY0lX;?zuJBBxk-hY1NpR<=>Gn}XT{)s{JAx^=x<GVk8@r|{>7cS|4rxbKx~@Y z1&OD@r>GTCyOUG2!-HE7{(U}yutI|2yufd|@Ze?DdYz7SV@CkWMF-fG0N5UICoDF8 zDDLn!frvj!F`}HLuSR^s`RS6x-p01p)8gcrqT;Ank0IaRy3%7C{P7x*n#v>+0UcT! zY|DPh>@B~6YWyirwTAC5Zwtc>m}qPiGHw~=RujZdKKD&WExai1I5tszI6i{|+n`Da zQ?dG)lH|~k<TRd?dXr`j_;9oX=7Sfi04EW=u=YOW@SH$^ISEFA1+E*QGTzeSc`XAW z3F!akfPEjNr2*=TUDQ=6nR<2Ph(Xk^x5%sfR7pYX^g=ifK9OsmpKT;eiG1#^03ROf zK5L(t_=uk-K+FDe)d>}RCB+XDdG)Lf@Hz$gA_+Zvz~b$&=M->CNJba2(AA6x_LNk| zjs($!D=x&0hlUxWz8Q&$a2g8<<=Q)YLOs;S5L1hcv04w+`jKo{WG9YFCH_FVJxyO0 z2mZbdKKs+`zR%THLzx_N9^pTc{U_1)PNsDZvP8-7j-SW_Yd_e&e*r5Bhl<k7iTwpb zohByiBn82xDa0xT$z)_hUc8HC+8{BGfIo~EC%eOy(q1m3KGm4h;2;?TB7!FsJ@F$u zj-`FPH>yn29UEnz%tBHkGL&WVRHKo;gCH>yNMshSHj#I$<AhVTrXw8|YlxcnH93)F zva;<Vj!xhq2PskU8bgNhD~1q1ByYAVo4dPcu)S<yij9=mRokng%GdOs$!=0ng2Az7 zNvwYMtG9n#W2d=m+<j#FRxn9cMxT!}6@&yNWf1pjqukgE+=5*QL>tk4SMEhrl@cjH z2B9k$j|&d8UplM6LNYk{LODG`h^(D$<Y#xF4|4vk+WC7cdG)EKIntac0E9w<e6veC z{DcO{4o#6rKaZrAN}=;ck>Eq+Vv&8F!c<tc$F)1Ol7y)Rzqt_L_U!_Z;1qyf$OAfG zq~_n^bACWwuEMIUbKNHGj(rd-twB8nWDx<&iT$o0<iTNN6?HKt8p%=;2P2D);8!1) zQ7`-=wGz=OC;0^vfZ#V-gsL17tTLuUKF7C&BjJX)13@IG;$LbJuccwt1S+S2InK%K zd`6>MA4$#a0Isphn*l}4R!MxQlF&{@LNguaKyAlBBFJjxRRO=w>UYDMyi&-o(It9s zQBW^aBS~m>b<{z0Swycro02_qUEGS~&h;MonI8bZN4m%W`dB#a4n;Vn{5;m57lbe( z-t2U9t<yq3e1GFG5rV)Zv#67R5kC!@jRtf}a>qimKlt$dDu$WY78|Faj6JXOpmKQ9 zP#28~-{sk-?&;t-OOlr>#gvaDH^cfQ-NlFMNbvfQRey|o6->#@OpBx#jid?Gsl-@5 zJ-A*QBQ?8qqjm(AGYHFYgL4eQZ}r1+*WscG?8w<t<RGjS#hJU;R6~lVwaRklBAXl1 zT3AEZafb5TgTS+)hUZ_-`csW8Clh*LRYtW+R<mZ@-~5UD{@?_FryYRM3$1J~KJ7{V zU<pLo6<SZ8hg60-?Lj^l+*I=pR!V3i)dH{;b7@`pVrl4UOQWvhR*rhxT|eY@8emug zeGWM+)SXj-v;$W(YH0+^;+P~9<%jp(C}is3d6OP(Za4i8(MUE~u>u>wyxq#YQsE{g z?)JP2n?;AzRv8!pwakwGkW=~bSk-*A231MRDw`QBi)I$KB<aA~5}{}A@;^PeVsuKX z>33n38mJ!*IvIrYrgtOTVWMONrm`6|3vHbP^=pGfgOEA2*={df_m#Ubh^iVGs&mBv zH7g;HGcFJTX(Z?3o}!p3Ax-S$ZZ$NpA60(gUClHB;EhtNDdkVPEB3{qN+Fc^OS>K> z9H;sdDT9^S(y~e3?8x#ipvMqJb7FHS4I&*43|aX^^jXX6XRELC75Wp4pU0OR{!;7o zM=EgMNuaT*%^btl{l4q9*=LI|wr_5BL^%0W4h+bmPp(&E_Ub)@d-|Jt*zueJP6IEd z_@`o!f3yQPbC}7S#bc?hCZ4xGC~F%_)rU9w!h#2OwC_ksA>a8U6Wi~9v;^XhK3TPX zSLFxKRho>o<rAmU!+&FXn#JHiN~%)&af7s*=`>_*`vbgYN_evvCMJDfxHWmcjlD_% z%Q2LUPK4eS8<1nw{kl2L7(@s+zMRq^<z;Pz>8t!zsMsvQ91KhgBfMt2FFZ#@u2&<2 z*js|{A+zswwBMtC?9t>JH7Tyq_qyBs@tlx++qd-lZ^qAB+{P%>jna(752fS~j`Yz% zZ`$?GO~fsK(*!40a1|64E6*~4Q~NtwiU&FU6EQikxO5bl{@_p8(4t8%#(BuQD_;Z! zj~DTn`-N;pD1@w;{vzvoUPe|ajf;CcQcQd#XR1%k5Op*?7a}yefgbQ851iqw5Lc0^ z0Qa{C*IekBbe?<25zOxLyqRDLYU2daj?+h|*Y9=Cj`XLow^`KO%$Rm2!`w6hP>`D? zj@gcb#$9#8IbsWwfSJnxqP^Tf8OD=+BuW6#O27(8kz6$Aq4#=`;TC(YU^>9P{(ybR z_r(rBH3$g$U1hZZu<2GT4G6Jj0R!29+ehR<<k2D{3kf<r;&wlY&8eetWs9-R&Sv`~ znX^yuOSA0%`2Ct@fgraJB3M}KEU29xnyhfFT-$6)Kv{(ZZ3nW}vc-$1zf&GIlsTW~ zM3`GV?A57mJ&nAzBjiW|%H`3w04V4*w)--Yl+oR{hH_c2Mg_Gr=8T92B|qc>`2tGn zpB9@pjE#Pg3cM({XqFDO@(<qo`xQK#6LZ%Jm=Q`P!I+m%wBwe8GEbz0X0{!<zMO}| z{w}VEOnT-_w(3=XH@)Vz0$>9!SOEm%a{Z*?YmS?fCKOn=$AUQu6Aw}{RY2Uy=%%cp zYLph+`}o7+koM(^F8-@ZIk5GN`2>aMr~8xz4o^M5R_|Fti+i4mpIN^Qcx(d(FhnPY z;?#c5P?j>HVA7{63@Z-hV(UJ;5aE=gKyMv)XitU)0bIy6hdE1sVzS@?y;>T&74T9e z5?Kp8hOSS;lnkjsFW+%zg3D*XBmhodb*X{^)BHv*)~V!Bi*~@jM_R<?Svv}DcJuj; zw?>&L4N)=EU6qLzJDQj2{OuO(#{${={gB>4Y+~!6lXUiBZM1z{bLU_W_4#TlL`MGJ z^AoPLR|$PeZ6TwtYt<e<Kjg-BdsjUK+g7>hgJyAaE~bL}!|Y9B839Pk${~)y6$`h! zwlO!<a*0<a?}wR)6Tk?w(b2R7*kPR9fRP=|C{F>Kb*7IM@Zgllu@5g)5Q=pX8G=s` zU?14gzGqc5nB6+=9RbA|qlkzkfzV2eC>%)63}qjObo@8sH*y|CU)JP#|48F}pxFD7 z9%Vb{_wgMQsC48RMft^AC>IwnRTWO?xZhJ=_#x*ONl`v)%{GVe3Ny5IMEALO5=nEB zo{%3JJB>M3H8|$Zqrkd6QJp;gsB@Czv5@I~F=I2h&DGZ)_;)_r3lUl94iZSQsat98 zU7HLjJ&2ugc6&t;%~C{|PTwPvgMM6p|M6_}?XNpKftS+>PxlTlLOer_4v`gNGVBn9 zj|gB~H{6Nr%r5_I3*o!ob|@z4cZ>FVP33{wM=&{zYb{)e3(@m(OZ5X#C=BrI4f37? ze0TZJjqC}6np}T4wU8G+<^a6h2yIt_?+bq9;Xr!OG%x<%T9!}q`)Z${PitbkC}5G7 zygMAbi!B*G$U2aJr&nBY;8rNrIqUIp?ZBaf2nFn`+OI_jLY*Fb^X7w^(k8z--O!MU z5Y~Avn;r7TTVerH`ZU#sz!_rf#<tTrdzJ&RcWSq<iAiy=C@PUejy8IRpO#exe|1Jd zQ3Lxy4KF|L@2i_*A9w?IRbfH)4Vz6uO!_!y<(peIVry1Em9KR_Q$#%7?RHT>XIPAQ z1AN+_OV7N5`n1Eu4$p4ir%j`DZfz@Vyw5-T?e2*S8>*iNZg}0^gX_<_51zn2&A*1F z>|OJVKXOg+4sC&M^ygQ2WZv!ju!}S+xOV>|vbIv;?j52-w%CT|atOrM*xMYM4fRq$ zw6sHiDWLzn_$6|UPw`g4170lFJzHA>f2O=wnits#;gO)uu9KN;d^81Mb`}pnj^_F` zkM*jD>{U{MZ>T|FNcKtgQV?f|rGbM8q2*xKa^AR@UxNQMn<_YoDQX<SlC(I2wEJ2R zdVPT{%UYuXMX%L`_tp)TH_dK3E`G3Wap(@*S`C-0PDvfel5|?yap>|}G?QFyA9Cys z-g<lwzJ-@hJZ$Nq?Yv+_daxahc04gr>$nyW?~R~*bfr5WW9+URWJuc7Z|6aY*j-jK zUP-(mnrm$Mq3ShM=$f|{H!w-11el+~y-+sUOlPZ(8vPP9OJ3qZg?Ft4h1y&3C<^`e zLfMkB1qiW3{p+T`<$={*9t6TAg^H2-!3&<&l<y2t0*OX_0^c~M>N{EXUS`Vn*e@^d z2rkJ#^h^C<%n_6hp|(eY@Yz_%$jCbFkzwNbL6j^v)F57gxDfOZb~V)ZWIb?|>n6Lh z?zm!#>uVN9p{pUFQMc1Kt7ctj6^!RV&dz}niT>m5iKd~x`iX8b#*IS4n{#qoif~*_ zP1@mAn&HU@{g==H7#%}IY^r^{l#Mu{O&`y+7-#@lsHy3JzvH$UH8<QYy~ph>CDKuK z9*w+`x}CilIwUs!FbfJo{h;M&(PAP$@Pr>&8geFi&FP7EA6V6^g!(23m!MI=kaj;B z01)%ls-PQD+j_ON&bTTi5Q__sPtgsTq{;T>a@!DdCb`p`?=sq|AZXdas!`2c^myy( zFyHCg*f3UtzWU$F8Th*A2{5OwHmg?S$zYgs$dvjI=dh=?kuDL>!+*RWrJVT$aCE{V zYRq-ESojpQ@f$op+nYQ1Iu8Xm5R=bLb4fB${&J&4-nUE3Tm><PbgM^%N|mHT+Nm*a zx_!a7Tsa@I>m@g!9eKcWeO8BvzRuM4MO`0B`r%y`x)kkGarOHzpUT9?TKU&%Oe#IH zzUcY6#c{)-i@?@QNaJ=>g$CYE%mdg|m{{cpF6H$b0vx+9ntYp&%i4Lq?w36Vuw}dc zCLFaWA+c~bu)BD%y9yh=)V-7D;5&>s`8Q~U&ptMIO!yiG3!P^tfo>zL`o;7AL8C~G zB_XC?(tGsB$1!~o+fUkTToiYz3i;MkCvQ=N54un0e(7z6m7LkFss8!5s$XjdEXC<q zvMpIW39Qwf5{W#F-mWQ%kNMDiN9?6VrRI8Me;yCl&2a<WZ9h+~NJD^j_(aqg2bWoi z{O{lQQ{gLk#Vg^&h!!;Gxr0m6^P4LjLv3=xe=Ps3zq|k4h#bh-S8ngN57|{`M*bx~ ztJ~42(rnd@=6rvhy@(_4t&2HRT*966d=v#!XORRs2En}XYJL!VOMD(o+Jbdxfif?d z8{%<*&{)1B$Sr|rgqEc}R)NW!@zj<meerQmpn%Q!yezi}LdJJHn=?d0W6pu}pIB{0 zL6{psG-HsR8{J#L3`+9%yeRzQr@rQxWfliq4`U*rvmZQSdQ^Z#HkRsO4i1AjDwp|C zxiEG?9O(8c%U5VqFJX{@X?GjF_vR+OKD!P7&BQo&EwNDkz=D=~cuZIn;=<9=Vwmn= z;ZW#++#mLtxFY`F>m&WsCV9`7k*M+O`Shiwf+L})7y?@n$&5Djl(H_F@_gHWn3R*5 zk;bx+8$Seq@rOV=9;)O?W*<5;cit1Bsm9V!cF2}H-zrlI0i<(sYXiNZSPRx7@mJ_* zG7KoNQ|9|ktJ74uZ6l%0k-eo`t#m5;StqG28!&yz%;wUsEb{Rbv#;>0_V%`^5#I7O zIP=@Go=DF=(1!gIvYMVfU3(2ShiNc05)2`{vF7>ZZqSuF$1KJG;NE3!(c$rg{02Np z6ef>!qk{zp%b}c`R+d(sQI{mO=8g?ox=xHXmo?F1IS!2gD{g@B9CRR0CHa!s-qT@d zF3L$NCnPAOxQJexaol-gz4J>?1H<Ol)h+)E|9;z#R%MuW3NE_Id_l4i^KmCd>GC%% zp7;mq=5t%thgN?r%&go2T8wq)23W;kOA3-(JT5KoEN2f~(xY88nZyQO>TEtx0(3+c zp)_fVUiWEGr+2v_Q5HsrDO6W|w7f_j_Z?$YDuW|NCmZZIsoVPY{ZDTOhT{ur0SN$} zJ~@nN?nhba&H`|Y6>^vMO$ZKWdY95j#v$mRt4HbuI32EhlmVcpH#nD=t>j#YiVPP8 zjvzXIVyD1mBvx|fje@|@a!86=F)i7`;xLF2;9p2y39dK6f2?a)F<aMjM^fGB#2a!* z4yDSA9YUl>nqGw#(+5L*<dHUs{F8xk>s}gUMY3;C>!!z6l6rSwPG+p9gtWti<B(4n zILMs|TbzLXatw4#JD)g+2H1BE9iLyfnhjRPJ7#5p4CN5T^NRQyV__=oDSDFo#8yJX z#N?G49l&amkXo6??`VghAA5qPqlI1?OOVnNMSdjiaCYv*-u5&!aGcMpQ_KAn+ktP> z3aGi;1;FO!Pw;u(uQ!<#>%csDUfT+!NnUnDgnFxejSk_o6y08H!4ffpGIm@(F3z8_ z!EYR%bRK3qW*5J&F~rmE^9n%^_dUJW0*o+0AuhXi4C+H;AE)Qf-$vZoGK8Jtb-Q5z z(qrQx0lUBW@YI!10k2@MEML$`Hqv+fOL2gmfTzlBar$Ig9=(g;Hs)8jrp0UJKY_AU zXgo7*N2#L!@ZQH=WiKC|84ijw-*%MS7$j%EBVT|A%0bR`+@YP156Q20-l8Px5qfY? zc_er#x3Si?n*__?gP<(*Cu^B6P*fxs5kIUc11W>*z8T2WF9OdOh&?JDgqXt|m2&Lk z!&`h@K03XNS$@SjsdM!sNlmR~c_u!htKQ|4zt7#9EB(25#E7W@^;chfijN$4=knP$ zb%dL={=*Qrec~vSb#>#An-(=9?Yf_SV^U9iDr(%o^-ErT>{fS0ZKsp#*X!?M-<|m{ z+EagpURlK1iY6DO4RT{?PiYiTZYiDpwENrFKD0kC{yY5e<UpC4O#AnVM*I82^-yz$ z_TRt%Xn@+iFLJ>6d^d2K1TiH+ZBD;%D1gQuJt2wnP5&9kM$Q2e*EET{tL-bgn)@#a z$wfx35gA|apiYx9reuDJDzr0MAeJncK^{J)&X-RX9w3WMAJT?Qs>q@{<l}$IxY%qg z7lj}{jG{mgYQxWj)tjv;(y^3>WC*yEi&%T+k!qUkG)3WW$#nv~{yAmxb%hi}M@9aK zmD+n=MQ6!L>1POCn#G8<*3l|^$QdmR^r~x1oasvAsh`w2_g4o>*5NIK$qzEv{|u88 zw2GUD3{4<39cCX%JYQaEgyQ_*E+UEO3s^RtB<<*$m!(Un45s$NOhk(Oo4ay1It@@a zB}VR&eF4aN#o52QjxBoU<g!LKVOEy~%E5}pCVHmsdLyq-{O-`Zcv`;;mUKgo<>Fan z{a3G>Q@=p_^e-I%y2`N9)el(H@AMrDj~+A1Q?aEThGE>*PVc(w2AUd#t0At~2n6M; zxeerptlcdn41^CD#IB`9m=;B5bVYULM=zXW)I5llH%yF8i_<NNXLivt^6AreEpPWG zmKmn$rlwQ%tp{K>8T!#>W5dG3X<SA*B6=KQ`k74qZ#nu_a;L>ajEV;O<pm|K9v#3P zF*#^BI_QXpYViOdLpTfpu#E)AdSBfNLj*O7%K<})bPx_G&u5ff)vFW%*r)&pOQ+4y z@a(UNN*j7rEnGo!GL@br??w-;nS}f_uBDFG%!03v7?o!*E}OzBQQ%4mV+Y(6REZ86 zH-gd`eQ)5Dbz_j=iK7O$E~G(&APsWJK?Uk`0d|&dSCrv^|3uM%sgX4RHKaq7G#v~f z+|4bC*^CKz#zHac--qcgQ;o-KrVP(2*{2!Psw{Sk83=&1YOiBPwKPTN4$Onotd9?P z!sUHuzG=Z`c1#a9O`o^iVy-Y&)Uxbq&p(evS!Ea1;bC&W)q9VbQI%+BRAaNn5&1+4 z(UsFQfyJ0vGj$LukPu<chrytv=@!7OnX{rMi2m(#X%>n3FYIxGAY|XP8e}mu<1CT5 z_vBl?pj?xX??&E#x}0~NpP2g7zu5r0WMIqYysnxS(jOK!Vv17ljA_ce5(BGUxMOlX zclvqFP8p2*Yn94|DlJv*kR^C8<FWPx0|r%@%6ujP(+E{Dvq`gj-<^Qdu;@5B%SlI` zVO{SO)@`U4D1gdG-P&%L^Uo8R^K24}gURZqmVi;z6;)zl(myAjam{p`-czYFESE-0 zY-w&{`@=4LCvOrgVSKJD;i+ag%j-JJWk|<?W!_w6-u971n-H<o`zL3KMo^38<<($T zQLSCk?Ut{_^Vcg#PIFsyhG=zX%67is`FYW9E9rFI8bXhTq*bdHOrm@~0jJ;0+09rf zc)Ow+F3gg;UCJ>v-}UV1x{!zPe1c$sC#Mw=@wf?P)5?0h9W~<^2lM_`mtJBmA^9Ys z_vvfF#U@(S;@QI)>HH`>S#qI?Y~I@3s(0T0W4}!5$^*m9rD#9;YDOifxG(0*Qi7m5 zl^@2;!!_H`pH;DCwM!MaKhzY59Z~?|3Rr=~xHVLqI#|!<2K>vYl+H^dgxh*NU&g5e zX-U0XKP??r_!X7ae^TnVh`=pV`m<xe?S0#38fa;tR`Xi9y>zM$^EHYrQNY+<21kJv zqWWGL+cd7615*J+dAS2~Ik|Z0${Ff8iq)w&)=ZFMbmq)^42&^lODb4O#4T?tEjJ^e z^6O$9w)R~!4H81kLKT36-k0ch8`4n7zGaw5DhXC&ohhA2*d_r)KqUdZdyH;wOoK7F zPaK{L0KUtxayfz15Wdn<m<$`8tzCiK&%y+xWvH{HgMcS5bV`3aKam{&5A4h+u3w9) ze)z8(Y~fsaNoG=kC^G<KU|ckAyKunNf2jh5MkhDb+A}eTfTMpl3*5KRry492u<6ti zbsZE`AH7+T{(?pN#A-dm8v09f&c_35qJ)6ff<8%>?oXi;Ypjo-SRWRh<`jg|x?k|j z^r((L?J9ruAkA_tma9I=<?Sc?hq)?kdMttJ#cC8l{mQmF(~?5(8|Oaq+AQ%wE$TMK zlvP=G92WmxUd$wx_CZ=F>FN(g?HT+{%Ps0KEbC*7ol7k2EQ;^;dwZJidGpq}!+dCQ zpP+)f11u?1nf{|SyZRVl_{Hf7WbsC)tJVwFshQ^w=eaN)?uSA;t$OZRhOeG~F}(YH zvE}9k`M^4t;MTlVn19nUlQoBX{4~9Hv)YKFF+E`U>lLFCFC$o}Y??bQ$x<MBU`}xl z=$1q-I&)R9(4Sz|)~{&<GgyA~MagHd$w51#tqQp%%M%s3-*k>utioh20*f+QDm)oC zgkRkbfLr_PX-qrHRIt8&JAPNvtLaRkmKf{0$LsoVuS7vFreU?5#@&B%fX9r7i&-5> z5<A_?dNyEvM0T|dS$)Fvh?5iYO-c$KsYzD4X^UlXhNfBgde6|JyXse*&mAgGbPOza z46tq%Byr|dX02Nf$H1hqFatB#ii_>Yi>4Q`tb1XNQH4+X+L4m*=KP&ikJl_KGZs(R z>&pS$rsrX5%%_%#UUm0$vU)8C9)g)wE5z|Fmp0#vG5B=gq7S=pR)ci<^+siH=XEkm zBFBMQ@Ge!5|46w8M$;_Q^jXk{o(#k4Fl@ou<bo8^bZ+X~gebgtz{L?Tf6E)#ql>N# zs*lLNRhA%s9+s6W!(*nl)VKHCs`gTRpd;bzji^&w@0@uO3X=p2-cz4`$U@rp_^}*& ze7mJ|6mGjY5QRMSO3=HcB&^S^GqC)|_qo5U^Y5|30%<n&EX#|9&_m|)*EeV1GH2Hl z^nAty-z2U)5HL#<+w@N)eYkbAPN$!>(WO&^h2;l->>!mq7GqT>SUc#mX!<PrF3f%R z_OUJRM8i)^%>dz>o89*Vv?a!@OnsO1-?H6>jrPkpdAxzoT|O`OI@4{ruD9oM*y+om z@DY91IWd~a?lCjI`{T@&b05vp1mg%(im;W;hZ2mX|3U&NX6t<o(z6vZr{bTs1i~gY z_}l6xwn(NcE{@Nz9xY2gU1I_NRXk+6T*_D6y{pL*Y_*I?`+O?kLkZ8~>+erT74_?~ zRXU_t)z5Z)`~8>}m#x_~@(rtx<(*@<hv#?fewJd<py^i<gW6Jwho7z1YD&Mu)oP#o z*MBMbyU#0)Tfff2+%<N%pZGA>0}k$elyRN-?`((?^X5=|Rge^HH=)+D!`)$<B+T<N zNbhs4_YT*E^@mxFsl77QaY0!xS?}xA6|Q+ajk)}w4gO<|#kahe)06oWr>k6rYAQg; zSntnwexfCb?R2m&JFEsLBHxZ<StYse|3+97d~jzCLJT60dM8aShxf<<2j?E4m9JRk z?}y&KU(<UJHgS2a%5_`nILig}DSv4%aeeRW?z=dLuqkq2(@M?pxX^?nEMyVXVlXiG zJ}mak+mtB3R>6W>QlC<Mt$&OKckTvVcnfpK9^r={?*j!9dXe9h4tov^o<!if>iQp> zw5si?oq+A4dIb4<BxJvxdi#a{0Zb<(kWFcU(NN#@^5C*v_zy;aG<QV4V1aV}x%m0W z+?}G#b+OQ_+VqAy{~0fcC4X;S;g>lHE3F8i8U#GD3m}_&qzoFnSM=#V=}b+Dy1X2b z^MveA+w_B7|0;LfqfI-4>Gp!TE|&aCT*l{iTx2d|+00cSDExDX%<9{@psy*FVaz}8 z6N($-KEWuyE11`&klsdo_cwo?$b@w<$2eiG6Q4UR5teDe2`dHJyT7kp3%DfBT8xN@ zC_3RF@W-qE<x%N%idb~-53;{dfJ5(7V9;gY2W{;-VH_&{+tT{YVa-zMz@rxeDwpc? zIjy2j1gA^C6N_ETw5&Er+dj*Ranz5<<#{CV!iBt9q7uF63hY9n6f8GVgLai({bv5W zHTY)f?&miRdvE(t%}I(svpzphufOOd&2sHp==l6Kndet8?;(FzU5Wtfi@uewHmk7o zHS{`7uUPNU*E=|W1#B;V{W8<#%`2a?yT3-peu&N-s!Z*kGDzdnnXi}r$LzH+KHgI< z%@Q(5)y3H?z1Nrj%qsa3+<qq_u`Nn;IX-xkM$eWES|?Ef9<c>V_BxIUK;$ztkqHlp zXaS)h!)?N&EU|M8E}0OCiCii3YSYFL$*H0fATXln^er|n8n<j1ajsgMPcv)}mHx2K z>;}PeFqp1mh2qy_hAU$h+AKJO!qzQ@40Ua8ut#lnR4w<wPz@O2Z#DELQNF$zC;COU z6okJ1#B&?>M|J+!9l4EyclGLELunG>l^?;aTHM+aTwfA&#?b=DyME?;BD2K0HBEt# zbR9NvHq8;PkemaZQT}sg`n_|+BAh-Cmc}=dhMasf$hc>GuXoVBkmUpFz0cb2w||1# z5}Ow51MSpvqD^$qi+xDw<ykcEp30exZMb^kdy)kkp=x;*%%htC#X2YrmK!98OB|<& z2c*m%UJ&rwn5BuIv0S!>O62m%oaZLwhI4QaqI?0?{}i2fG+X~0$8REt#7H8Et&xZs zd()AmL9Eu^G*W7{YIbNz#2&Sa(pp8$me{H-8l`mDZP6Chfl}So;rsLZ`<`>}x##oT zd+z-_&-?W{BT20@FPRS!omI|Ht$O^9g~*auNVd<E4XBZcK8*6H$+N^?smZs|eNj_z zlqwZKpOUL7vUD`w+bR*1ZLKYaUVK3;@sTI{9JkU)lAv1q)F@Gzd#0JI$9+{C5`Lwl zGx&@`B*)B~Cw~Q8^&fjdEK_-DRUE%!K&-o-%vq}~iLpR0QTRB8enr9`yK;}SgbsYj zwPfQVuPqPA)7Ge^@@RRhR@&!l*<MRYQq<Boh<TuzsUknUqxM{B*1kO0t58vE+CsKm z%da=)y>c@Rh0~5+EuGJpWi4F`kqa%|!wy2b>??9{F!p(kh~(TR@MW6~SG%1Z$Apqn zNG6)!n7^3zH+|iyTK-{32rY~yuefbp1SX%htm;T*_M`mHht`Xq;b~D7QXm?@ITTL~ zkSVQ6exTxc!pVu7?7Y+mH~7<(z0V5D4&j-iN%SuH)iB!F{JS@n6pKGC6NklpIwma% z*E*(b^x}|>fV&id3K~s1-2hSWj-(m$;WTXitNWJZq@tz&s@g2!F$-BCW>ct1O&dsR z9r6oU`%YB`vzus$NPj~rF@*+{1~%Sy#9j=`60dj@KeJTU|9k)Z_z+(IYrV(27wE-5 zM|K^?<%3V2oxWb++qZV(dU@Y^lf<r^<{Oq_ZHx{73asO<tcZZqyo$om4M5;_+{C;6 zo0`Z90j-(BCmIh$P^^mag)1+3g6Gi}Um2Qyiye{X(qI#m1;vf3a<M-zPT9mfad=d8 z)|muwf686R)=Kd=$d-@OGTr#|_4U2~{^QeTgJp4)^13@|zcz7_7pxwMCb!r7Bptn* z|18cEr3XX@DtIUQ9?6i%dvm_V55UQMmDTP3)$xu1o%W*rO1aJQO|MZEFH9S8P06RF zg<sU$kso0@4`wz8rN~WU{;8Zr{D|Pio!o$)0tS%f3ACgq`ScIapkZ~UPNwG~UgGxi zvT(|FGAmQ)iMI>sp9t-^pLe?8?$MQ=#1Hm3&S9uf%#;NOBFuV`StfJ{-?es8(VJxJ zd(TvNBvH2YlpTw5eS}<>pC<QN=`;lJ0G~aWzW-DPit?Om@7^mFtf(k&CP5*&mgQu9 z$UlhAm+)E}a~skv;$E#?AAq9%T(Vb^mVw6Bzsq~)kgG#dEpCKxt7-GA*?b^BOC>4G z%RoB;`i4Q%H>7iVw(-l2ijTN!4d|{UhT(OgR}Ws~v7ECV%0xW~N}+R)k4}*c6?Tp{ z8B?{D;}sJ~Lv|{`Yfo8V{YtQ$3MKK4X>L+e38_jMSmc*hw63|@_ea47YGLhxuD9S_ zub+RSgv86QR;#8fSq|+cTO@>Umhyc*L6e-f0wQt<mo5tF1+Uy)&V%b*l)7pezB85F zELJ$gTAg$^<~&Ip(89|v+>rP1n7BbTXmq@$<{}hgbBL*_RM+8nU%xk32^@At*2n6% z0C$GCLc0QPSo?c*43&RyT*3Hz4G-ots+<p1Otrmgdwd>sNh4gT6``Oj<XDwx9I5bi zEYK<5I=AwHxI+3R+|i%!5FNg?s=h?}ZsYn3)>DpQN3~qbl<4og3nwNBqZ{=5OU$ue zUz)3O;b_QHy}80d2fVlXN3wQi{X*=BLPG7wQnKSh^1$rHn3oOTK4#?BXwoibozh%h zUqgAHQN&czA!l=Jc4tQRn9s5xRX~4i5pTVTduLbe#JJsV&Ye@3Q5<#n^bC3FadF3Q z)=MqcpN-f5#Yg0He;c=C=m3x&w`+n`^XZSy`vS(21rU2xt%M6GCpBm6(e^4DjKOZ5 z53H9MB&KQUTIF$@fgL$|Bq7qh?p<mh&!rOf&-7LE4;QZ13(Tr0o|a#@5vLjJWr<67 z&cQut<I^E#2(8>rGPv1{e6gV?MD=CS%B{<RSGvWwKfcvU+_~*y?NM~mEZ4|z;5K-0 z0Vi6voYte&IcrDe@K?_zY`bFLGH;Nw77cRP(V!DbxyeFYyveau4tgu<ZA#|i!C3#c zIE+Fyfy&%{Xi~#-((E9INam}YGfF@Z)1ZQzd4o5n30mbO%9fR1-O^MsoK?W3mCLdz zZ*m9Z&g-NKakRYOozE{5(QC^*_3=1Crl{^8^uBE5ZU10VMM&b%+4#l0Pye3OUzGlF zEuih15gbx{*`lEt2Kaca#`fOBw9$O`d)YkuxLB22sjqO&7g&r{kD)y85xEu;kKKAO z^gZoH6JL4Mh1*=X4zWq-fB{R-s4W}yLfr`IE^#Oka<}*b@}ye%i}*;z(U>h85R4bd zK?lt|^fejx+WJzgx7mnOMF5S$nRk9@cjZW(qc5HXKHMz<+CGe4)7Y~rAG%72ckLy) zcDyRsUF;=uw?-XVHyOO$saLX;&g7MO1C1!f51Q?*e+C|F%D6oPnpm@e@t<7-^1|=9 zSlQ8fDV$bs3q`cE6glqNjlCX^KLD~`y<8EO_q)^!&&uLFJhT$%bbtSs{EGc=)&G;_ z8<LBFNp4|(z<|+;9aTHmoBlRe(=dM8Q&%lworP13>d*7O3T{i|?+OBTWvfrNY=9wt zU9Q*-q3@YtZKv$&4Os3FC`qLKhf&OCUO0#W0vB+gd`m&K9KHA_XTD*7@uEGFLWdQ4 zzkuG&?<~goH-NT1RhsM2I}N}6Wi0bv%i_#Z-U%xb)azov<P7kgm*mBQc@JNZ^b%+n z&j5pmxk4@>#slKo?9D;<y8XkGr;?jHtoim+_;75f!;~ef9z%M*SLkFcZU{#koG!6B zcpeAf$b4i9B$feW)4KhZ01}x`abO0?>o-XT1u^(!*@C6lNQl>U!D)Oa6R`U!oe!z^ zw_O*LXA*F1dLHLJKft#i^k#XA@@=89(&x4bKObWdhvT4aQFle=FKy$j>v6;bY_##f zD4F%*G49AW^8_qy&=1LW9XR&qFN2SU8$sJ-RKh^U0~}*OV9xKR@!q6N0$x7fTpKO& z+xNICdyl<+SCye0yQ0its)$0~UE*EtOeSj5;^dNemn`6C_`%=gcP(1VNlBddoyot1 zc>JB_NK^0FM_1j*ZsMKE%Y%jNZ{EJntf@=xD=(KN!M%9r%IflDKN=6b-Z}iR%4?^d z_t<A-`fZ_C^J~xZg-<BSBM+$xV_;S76(>nDNt7m0^rrOROY>hI9qB6vR*oNBKi>B6 zD!l~n?7pOS=}pL@f?4Ag64z_N{f!e8P&a&_XUMNpN9#U+)UCwh=iB7j*%F;6PAo4p znJJr3RN`njJ~BsutxWk1Ier7zr1h%#MT+2GukB5;)HtcI%}_MygTum`m=7A44Pg+| zF|Y#Jze#pAA5)X!E}--Mk<-$vgVX?L>$lFHm)UtdtD=$W$z8i2mm#YCRoSZ^$;4H2 z8pS~g_|PdWH<x95vrJ36*b_X!`u^S3u1EmAw2D-MThG5H10q`a;QjJf94N<}gaOU4 zob2QzY^5S|*5iZEBU+3(AS^Q(!w+J+2ezcBAG~HSS_{GR?23{+qRsgVh5a$l-3-w# zjqgIZCqiTAup~BA&fR?-qCjF6?U7Yw-)f62&qxA%7ng&y*`H(wd|BA!J2YGp=Dm}q zH{WOmfPNo#6Vglq?jp!wW43oTMD?S>UD*=8t21OAC+dU{7;?k*WCD2G3ZydNf0w`< zf~f9KcrQgpFV$E*csGN79~TS3?@#!@K+ro7y<3S1ym<wrpS4%Q$ICs@OH+GYv8W;l zRv+Mq4xA3D4P}LVNQn$eMIlHyutF;*e1M8afIXi;R1usrb2e$#%8`XC3jOs3?D{O2 z`6W>w|3?H{#UWf}5WQX{b3Q4dtMpP|Qu>qnRJFBy-QWV#wE~poBgwi6gleJZ+GS>N zQOH`6nx)p~z;0*N;*7PD{NO94Yge)%9TzJmlT=IlSZifN!B@xDLRPXapzO+?1edR` zm46AYz{{M122U<ERG>ntq}QwPA>_&F4{Z%*#P#dckQ(dtnjd0~5dZ4}^0guBb&(-A zVnaF?=_#)ouE&Qol&&{ahcy0pfD;DqDj<f6W5+8S*PEw8TISbVV7bjJ>o>oI-1@zK zi<x;7Oy6ilg|<m=v<alP;y1Xuq3xy{?d3^a>PClSXs4%otMx`_$VOLWXt#ApS8Qlc z#zs%R`V~%SZ*^#2<3?Yj5*|kevxT&{#hN213M=;G2<PNz#>dh8lMhQjK2#eaqKAkz zq9kXILM3=??Bk=UleW(XVa))%85l20l3x0_2aj+bCPNXYg!?&b?qC>V6FNY7Y`Qs3 z)u0P&OxCfj`ge!+4nyrJ&YhGwREu;;Htbvrbo=B?>E??$lG?dV=@OpoxfUWYLS#K3 zSez$|JZgD4x7pdxewIR>K&7fIYP?)IB{D-+|CTiWWmC3tb454o;mw3+<s7RH@?0Z1 z91VWW-0FM|yq+RQc!S@4IrZoZPdyEIJx_U49kw3X{2a9jFG*54*COMt`5|_5(lwJ< z7&hm~c|R34SI0T(obap>V0jM7O0qt!`ND~kpJXLD>!zQ+hN%+IX~>l%N&B}z)3#1a zQr9wopI=%wU2TYu0QjSUt=O=iXHG*`!{$zC9qp&UTgjLXEjmPNmI)W}Z+X4P+5GY; z-;px6n?GQsqA~e|9JxPijx#57Zu67U$ba*nI+wI2*H8cF7|!4HZuZ0}ObIJV;oK=X z$?(m1tn9hXzgWwEDFBQyF1&h+zdaoO>H5M6jm09G2%-hL*Rgij0;g)Ps-^O!l4q&g zu-n@R@d)KDjmewjJIz|p<6A{96hQ+|ttzDo@wIi*!e3(}u%S9{2gByZ!mM}+&x$tf z1~_sZ2_mfke1<K3PTOi#n>EQfP4}kC)=)$qk)?SQVir%Gmw=hrLk_Y<>J#KMllFvl z7~TMk2Vi;<&{0V$yuAh;MbRcw@hRwgK7=?x!SL9yQ8tDL5;{v$=%HXn*&-c-yRyby zI$38jBhnU4B|3dkwD}@w!&A4XYQF!1sbFjV;qIJ)kaEAU(2z(O^pHB7_Sy3bsd!Vp zBSE+s5UK=(fp(hYkc|7F@bdxbM+q9Cxms>Rt0)clU#=#LM|?z)9wo!=L9+H#S<9p^ zntH@cDy2R_xPFh*NERM#rB#Au-9h^I2GGq3MyEeh2+>nDgWvH{mT6JYR`!tzkWllj zXI%1ERt66wz8U8@G{X#oBO)#Phop0X%`URRu_P5+iutiyA~Rpj2edb<!xb**zs@Ji z41Ap%7zDnyKu15(J0hXlt#-0Ho7_{D7sEbHZK+xEWbO6e<+E3Ocaty^TQbljr{iHV z-VoVV&38uz)sNkDOx)^Cr`lcE6vEx2oz(om>e7)dj9&TOj$vqg_!323`0gVva`bGN zm7>Aq14>JMtGk{Ky*~n)mL!uF19k5_oY@IQQ!UemynbrJguhdhB0jl>(fdI*$G2ds z-^l$#ho?1#`t|9Mn1E@TL*kZ0R1#6q@SW~=at$YFx^wR*_Jg4Yu~O@GNDQsS;9Wke zg_iU^G*BbDchLLimT=k^&*L`*pMf@azf=3EZqr-PZ+gDR&z^CD3kGf;|9NsQdmwNm zNi4JTEGx+(m2Kwx<2ksS0*6H9d==jQHr4kt`obo(gDgxpMD5=1aD4jBlKv@l0kEt; zBl0tvmdXo$LrZ8nJ;(iF-eVYH`PqDe)dg(^BE>g-wID8UeyHy^c*mvCymbPd!j6cY z{lxtic<5(ns4-=r``J85jnVVW+JG|CvA2T4kIq7K$%jLK=J4(0YX1}|PVyJ~Wk)+V zcVy6PoI}hq7E1d`t?V}2I*UOMO^&rZJEBdw$}ungp&ET^u5Qr0xqFWDiRc}{f|eLj zDyc+!PMI5(=>3^>0Ro4f&Kl>abPUEH|3aM@^tcCFyvvcZKRaFe1Nw$X<n5G=^!gv_ zIdq>=bDtuc7WLEmckTVbK=trBF8PHgIObL_tyxQ!r@uQ{4ZsSwuDfxb<+Ej=eG1Qe z6D^Ze7_rS?&&e`kYiwxhAB|YT11Ae^P|R<19y+Vdys+6&e6vc7mY+%%_P?bP-t$}Y zOs>;~&O?Hv=1(QXy!7K8c4<E(#AzL=1Fcaszmb*n&}}ND>$fkjqWv_jBphXvBo_FC z8r_LWqIFE0Sf1>I+}GPWaVk>`BJylIW_(Ch@;pat`>3(0)i3Ql7DSEJ{HbVsNWBJl z8_WBBHvyKzZmQ_jC~GYZ%@y)LC47<B_w0{luF+ksq%gi#`q|cN1!P%o@GnnlFg&R( zm3%Jq+(WNFPx%f+@&<pe^wVjr(2sv?aa+d6lKgM%-nOhXqPq`~;N5%AK8D?W=+77P z=Y4y0TBQ%%3zkWDZCYko_y3GrLgbtyyKfuc2>mhihju?FN$7CDWwY_5bU%494w`m{ z)T}jUYDRw!(n#$im$V99-Txpp$zS;nInB(v-J~g%E%NKv1@&EO4M#IIdLk<R{nwNh zr~Pz#e>1`4(lLlkKY9K1=J~`{>u8<HA10I!e|yT3EPoo?&@PNcu^>mw`f2Xe^?QIY z`hefDTSI>|?-$&qPu!vRw{3|-BD+7EJ9ofnCRUJ`@8d%lv;WMq4o)8VLnYl|M$y!_ zH8_b$J@4<lZ~E`Ig!!>la&!UhUh2U1IIZF5Kl(1((562gI%7<^+5-h3m#w)_tp2&& z%F772d2V=tkRL7GMMxrL?={I7Mg(i0`PgG|-I5coUyVACB2rM8XElW`wRoXI9kmA~ z_0>$7EWAE8GCj}Vyg)M8**PLV|3L!ksB?|(=gSWe#r97ojqxJ06<)n(z86mhA|+XC zbC-<)G8+J(FTVeg2xkl?3Q1tE)>WsudAZF*Uoa<-+CuQRA35K+gi+IHwocG3necMA zWA&<vy>A+jj)zN1CLc_>Cd0MP^y{1My~1vh9y>S<Kgh!FVG=K1*TMLpu6xxb^@c;N zuXdbr?%q9E+n1hUct-jytm&upk}k^^aVssBIhm|_M8L;bpP8AVtu$o4h=1FJZnomN zA0KT6_+@hk_CnQ&K?ue>cTiv$1+bwzk-0-Kjef*oc$sI~?F!OlkZ5-u{Uj+@jVg3m z&GoolBZAQ9e;8|Cl8~R>%#5fKuQw*vz94;3X~<aLZba>blb#TMQt4r=o0qX6qC_<& z^<h83qoC?`@`>$SCH2=E^gD=b)I$+P0<0i8-G1^zL!nwk{xI_7gxY=6&3^Hx`@b(1 zJU#eNF-S{DaHn8`DsrG>fU4j4S$SUoDv#D?>m8(%^Ui&89O0b>#YpwnfbXP{u858x zcUQ;{N9MJ4Ax36>>$(uuV))5hihUgyrfT0)&pFqq1ssSRPY-{iLX^?Pz-&K_HrrN9 zsaZSW|ENX2x#2|nW1z!CzARb@yYmmb7(N_lKO{7AK;mU|uSnFRilvk78a{_5Gr8gk zg&F*6bLWnWnud8p^|NRZiTo!exI+Y+M%-nC3Yzuob!+mfwJ(y%Y8?_Wey757zfeFs zVp8OtAF1Gbpplzwyuv>Gw#X;@zF&Iyv`B5NR7MrdQ2*xPSN2bx=dSBMEgPLq-Yy7w zoWVS^mTv%ikmngwTV5IxVI`$l*x31Mo&@E8EB&!`SU?!F82vk4^b#}5=0kD`By?)` z{L$=mhr}aS+!fu`B3Oi!V+tst%hZ`YSB#6<m%KaK`MxS4#fmrU`G3K<9$Pu;v1Xda zRr{^n3e0qMA?I!nZO#<XChPg-#T*^KR6H|VdySx78EsE)Ev&~}^8UV#v7SS0HqMR6 zm;YJ;U7%70vW}IXyG4*K-1$&j;amMC_n*)lW@%3|REv-0|I4yAtM<NFW1#l0QcN9Y zOmql27UWbYJg5&@CUBk;7HNl6E>;8tdqH*!l5^CaA&GvXnx*5jg-58mNZH5gHBA{7 z&S!HCXEIdC?RH0%II0Hq>50r<Uc8#4(fTz+vMMhPJI24~H$bGkjx6tGx*wL=E#HVU z+_8G0M%C-~W>E>yOlUJMEwAUY7JktSdQG^x=2w*>z2~>k+qpA68HzUvpUglgA=K>` zQZ)ikVRkj7pS4Qq&6fVc(tHGW<hS!QH{~E~yV6t}VpQjJPXmWmEeZaipr~fO=d)cr zclfZp<4K_)1rXxJ=>Es8TG@rGiklGL_fu~<!fh3vtZ+T>ayr<ktc<?6MN}l~eoTj) zr@$E#;C<4xxb4HEL`Lfv_S{q4m8@AMF^+NGa|fr-Qg*jtOv|UpnjC&!+V@4Qu4*;S z%9fXgIy@kdKFa2Qagjh(Jck<9PRi^aT%xIrj3?$=LooW#4|U+7jE}oV6mKyC)SXn} zW+YZd{?5$%D&dJC;G=k@5Nzfv*wa1{`@q3l!KHPH+KZ|GiWY9#6D+*X8%}2Mzuj=o zOc_O>=uX%HXJv|Sf+}`T+)^`CjR_{8Y;;$1_-r4^i%oSQE>7SI+0)dZm;=3}_g9p4 zk}TY}&2uWFf*}-Jb8<*-Scc-6KTWjDEG(X!$P*QKM;g7i_c^F^7hGbRRkY<uRYPYv zW3?xs5@PeN-B>zEgG9DOB=Fz12E{Jnc|L83huyD)@>!UVjA^iPX`f<|0zJgbm*Rq& zs1!NXn$XM($u;%9VVd+NSEM!Znh`F^Pq7s&yQu9kH{-NxrC2{GLy8bGZDl!KxOrU! z^DaF7j)RMrTj!COI<gvyk=p*e;YL4o0<7L&1<U3SW*#2k81N_}S_}u8@SxX5Yk|Pr zwV@Ydy8NHEutw_8n=x5qs=w3O{BsSIR7C!xJy<X*suFCPNp~z>ejuRbb&_)A1`<>6 zCmPD0H6~8I&d93d-{=I1utYE9f-)-w!qWIKvYD>V9gpf<&Rr2gGTT#Df1>W3KL%B^ zaTl*}*YpbVLz{w=BUQD$MOBLV>@QYHz3Y5nGS^0f_VQYCPr5}n+;6jI92%3$6xjUk zsG#j~)WcZaN%6VAT77Jd1RXLu0`s9Ukk{RpgXp`+hq|GT1G8z`ET{4Bn9RXu{mC?y zbc4yf(KOv!@bb$|_YlL;JOeyf{98}F{BqPXtbdwthl|Vknh(tv#+;E?<#&DgxkmM0 zfeIw!fku2=k3Xr(*3Gl>?T}8r)d6>R$~ckO0zLAcDwNV@!5>zBwMcy`2ri$#7k=Q9 z1RmkhKoI`Qwr(g(zQ@XRx^GZ`VlJ7Z&v^if<fWS=5K}(3DNW4>1^Ru>^S_j<*6Q(O z_WHh1SH>Z}3sz4B)(l?$RteUYPcIQP8SaC3AM?=uN$<*@yYBaL#_>OyB>}6X+wc{p zkOq5NPxM>@_;z?IUtubI=i^c4Pous8s));O*QlYGZjkyKYXMh$?i-x_(m%@{JmzQx zs#exb4f?vuFMDvbM6dH+B6=k_?k2}I;IlwwQ5H<8!SE=O^KO5r%!0xPL#lm5GPZ{7 zI<lXx7Q*<jGVg_b-{shME0%NQNP=bDstJWgNxm_z_6k~c_=!4)quzQM_v-<2l;{YJ zZNk-wJ^S;DCC1!_4oZ4o%bvKgqgj$7A^+KMCIINhzdXtJ4paQ0nCOWt9$gqj9j_QA z!jP$^-kc?5F#mf$f!MyQ)rhD{h$qG}o%(CRYbi=dO-(2D>HPy5_2K`B;rB2vx}S<h zwbDLKqjsJwB>YTw+kN#<6i6CzUmpK&cbp8;4p}?KVx6z4zD?imM`R!0_jg(1zhAwx zf8Prp{JqK=U!Hv(-$2A}SnSvS{PGy<&+C2vv4RgS-6Ng@5C{Jo<NO2X0`O$f{!rM- zEyWoCq<j<DhX51o!7S!~s3+4(+9Ux4pHVKK*#zGq1mrvKFDZPRIzg;|`rFo?-z}Hl zYl8n63qexLRj*-#L>T}S0Aa~6su+=~0K*Od?kDl6Wg+wc0AT~7jJ+VBpvcgF0D?%b zf}Y9+P?aFZZS|T;P$7bV0>S=I@va0AY)}_ldk@_vQVG(=qbmoXrzZe38AeYaO@zY* z2LRLni2Fdjl>s`rI{{#qgnqGFarzSkfk6<e64<r}3AB+WCO`-VAX>S1K?IQs&)60~ zR)YR!Xwa7hMfMP#IGARhx<C~O?I8Ref%L{BWe1>nxx$Yph^=gpqK=RR4pxd#U?{-Z z;ee6@sFE$}gojI#(Naj5EmELtQmO(e{nZMD!h!1Yq&nFwX$%<ztMnGY$u#MJxRnIP zAm~KBHw1twGZA+`C&TdYtIBc#3UJZN<S`<!(uQkgNZ-hlA@0#(^Q40#@KlAH>pD~z zS@t?YR($ENKM46735eo6|K3U#AVXi`(bz~4I1>RSQ_*Dn+$4@z1IlnvL?LB&z1nac z082|alAzH-{I@0~yz(Hct-`_)gi;{3B4uj_a9sn0y%22&84m^Fy`Ugllm?;-XBi19 zoRZApCJPUU&mut<C;*C6FvDZZaZ3Llg3jgP*eG=jTZ&LkXwwBn>q;+7X}m^h7T-vI zK833W)I}ndQn!^pec2;)D>&Oy_wegD6<sY64!ZP<CLB<^wyn7_sjN(e*Pm9DVM}<8 z$~7F-Mh>aSi0?^gv>xNpW660?D$KK9L5L%3A`S?!HO;7bib*O$9FVjgi06ns@l{g< zFc5aYOSAR(80rVA^$P;EWyE2sTzR2NgK@Blh$GNAMPPt-jbz%jS;Uno<0#Og2Kqyr zj>wXp7#Mr8U55{VYvT<@zUsVjJn*dGz(Rr7JCwplM*~8QsTc?G2&pc(WG2KxjG5yD zK-%NAa&RzmTU=dips`e3eOm9}dvPH8t0Kt>OCQ`@6D_$y;D-~5zPv|jMJg8jr=+jq zQUGA}@QC*P0W8pYV?COWlYxda)_z;D$H_pjgTSryCOcwN+I5Z>;9NU&-j9(Oep)6@ zhnzSTChZ4BsQZsa<6+SU`N@ZmSJ7p@;*l$A@1v|<7TDaLvAKt)EPchTM(tm7!c&*k zL1du0RbWF$PpA6OKL;#B!49-!Jvmb`+6rpi?SK$iR0=Wa_swt08<R3}3{cI~&JkwH zhi!wXZ#Z`ayO?kUcS)#b3YZ6D74@wMtHk$(N5$A6*(E?x&*1<QG?qLJ{zj2t$cUie z$m$(%J80gSdV;HTfNA<K0)#>yii=JjGuKA?Rl>+1cCI~~>LOI>ZZvDVp=~ox+|#+R zoL{5el63`<E;uocCCEi+XU0MVjJ43GLfGOmOCH2kM>8;;zyoB-@Gdg!NM|y)b7^(V zr+YwbW72J~@YtW(WB+~E@T3z(z(~0PhRk<L#Q;O1$QRCZx<7?O_&Ig&4Hr0I|K38@ z4v0q?0Of$%GZ#C%4u;4N?_Dtl%TEGp8lZrFgk<KqcyBr@o=`zL&-&Lgjzz@)%{jIp z#<A(@WCjR6W-eBX^P+Ttikx7IQ4Hm3D<3-6Gg3py(9s->T%RNnip=-`?73-NSBycT zIJTVq8^SOlP+hbxn~4pGBde@Eve2GffNOw6oG}<53YB7*w3BsN$2vp*tyx<sz&&;4 z-$XwsjD-J2S`b#eL6wU9VG*Av6};-54xsVkZcFvI%n$o%{U^>adlq#_BHD*)tBem4 z+fwW=Vm@^NI;NS4T)@$lMo<J=wRQPt2&H0?B2?c1BXco4I@>Yyz>2y!$mpS-BLAEz zA&K&ACGc3(F2IV#8U%No-TbQVg;x0cNyz$HqzN|}LRS3nLm!T}sa<m2IG&P?R&cNP z9+FTH0C|ch`24eUPjJBsXB%Aj98hdXl6J8da`ujy*&nC^I2t1J!|{eOv2ZX3K?ZD{ z<-Jtok$QlvJ2qn`)&;ADaE_2Oz|#i_7`^Dj?n#!cUr~7y1nZxlXn5@1d`~eB_0(D1 z)3%VW)hD%nn&>cnOwQuN-4vIM{vlQlv)u7Kj5P>nEQWW}`emt#)u?}(+LR+Agaay# z_GxqxT8rfkjPYlRQWRIx3AEI~0vXFrZ$>wc?8*|syG}npI9?0*lMWNX$pl63uY0z< zT~<OkVbyDpgZ{0WAVzgblt}eT%TVq}0nNx?syw*mj^!C-iF{R8{gKJHq$jSRO2F%n zzs+@-)3bVBa7e1~#dMO@+3Eevz)3g!-_!a;&S6lD`F}leQde;Fgx@M9xN|+8#3W$x z@qbD^glxxy%0F>w=d@4I4_+xD?-b#9v#czkq5sgqz{&F|xjTlIQW_%ME8VVX$Q9O_ zwSKQd(LL@o%ma(~nm33?kM6-MJNyPO{|25D^P`Kqnb{AqgwoSM{<G*ckD$XZD*ltI zd=nW>WO}`jP{@uvk7TA0{R{MFFM-JEtfBvAq>3Nw*^fk|pnmV2ry?mDAKz8N+O6u; z8({|i`H3U{_|KGimcS*PfR+<EVO1rC<HJS!O6qi&RYd;_NM<d;|MGVa>PaV3_&2aJ zr=D1ICABqK-%~L^Iw!6>*|96Q;XJ-vyYfB}*+DKkrP5R&%_m5Khm?jg{Pv#R<{JXY zj^B+hhe`>|Y{L9uN*{qYTf=gg#wE|!JGe||NE5P6sXSA+v$5AV+OEOz1$&-H!Rtr5 zO^K17B}e<@jjrgo^r#5EApA9@mY%QWm)Rc(ErPFP5?0e>I+E*6azO01r`4AUtF>ax zTJeP`Px@gq_pSrg^lr3{<sZe!%MH(@DUNy4`xXeLj+ru6+b~8KoQ2p$S`;=moj`c% z0<jlD7*!6T)0(Yp=>~_x?+rl+oa}OB<;&Q()7=#Zz{ho}<xR@ezewIxkHtrJcHZjs zUTm?xBSCQWvJ)cMu}X8+ewOD=5h8zAoas4yyes)v(eG#(g;K-2l-n1?bhrno7Vn2H z=`d5076?xad{|7crz|Pge+!-C=6yQV!5j14BK|(JCU_?1z8^g<#uQ@Ya-~VhuHb^V zitgE2{Ea;YrL+N{xWIp3MgcZY$dBfYpgcG3>pWa(1(ENZK3|4hQLiw?*XLYqDjb1- zuHz@zMg4`mjm{l^+b&Z55CjkqKOTy3!j8GPfR>v7#SYwYXGQYu_9yTEi@WPMJjtYO zn&FR_Jtb6k^n(5Dt}@K^@N=`{-96r({Td!sNbs`Q1Gez)k{FPHfey#{{Z&SY1N(pH zs^~sB&?;Z%6%y&$F^xxJ$+HsVK`H+TuU~uFSG?+uBB#XXHMa%1(sF>Aa>6WUN5*^O zbF&keM;v0^3BH{b*x@Y?5E?sX<+{9g7d57$ANVk7eqQ(qV^gm*&gnmUZPKi>*ym53 zN9DYE2dW=Q#a$V`s+k|XCs)YzS?Rd*TT{O`75*3ZS9<Q~%E^UkWXS*+?7PJ8i`eBQ zf-s{*yqjfT9{J3o&V+2v#gJ_?D$I<ed&fg7X__T-Rbw~u@|cs!n4k7DG3K)u6Y@u^ zA1QM%fHyE1bL)?@+}nAAWdDmzoo|tyz_zr;UDU!bQ)_4cLV*08%{#CB3SNu-y<_rx zfLJqocwq(3Svm9ymr*z|3-)W8Khz6;a_=y;JMJ!Kp3A~_jQo`vWGp>BxWu=7v^iGY z)@Pn|BQW5*De>djO-Hk%6S-Tb_8<MLRVq`q_3*B}>-_X%e2&#ivUYjpD*lGxF-4xi zvP<jYpEDH-?L&lb8@(r=c<thj9jw&>zj9#u?2Esqevj}@vO4A!>8|eM?xC0e$=GWg zqe_}I9vzx_Y;3hWkIT+aKU~%(=Sc-Ba92w;5v;icWYO-MTP0i{@aGHig!&vQw;q|b zYh_Q{=Dk{x6Y`t0caL^>oN=f?bm@RzmB%{92`B8^|5o1N?yndB(O?6)pl`d(V~4ye zmw=h@=SSPTh5y^eIDi^olU${7HKWq>)=CP;0Z@TVELGl5MG&m7(%Y(sGbQyx7DwAw zsI25PMdr>Z8DE$KB?<i61JgI>0OjF|dp0PvAPn{4ulvBNr65Y~q9Q|Qc_dBXpi+HF z^oOEsd$=ghBr4ZV5FV}M-k{BXntVVtl7A-`{fLG+Jg5kXSf^HE#4dURI!Ieb@ni9_ zG>0v!iUV;-x{wH)gFsQxUun<$K#eSEiHrKJyAEUinPC|20b`WXVx}hp91f_ru1(iF zHTgd7W1!%z8u~lvOh)rmOH`nKV{6UU>w!eLR=t~F;qs{RyiW<S_v_qIY;4?-JHH1g z`vN>)XM1i^K|NYS(lV7gKfivM7CfjPd6V~nAvaoa^xp1Da=bj&EsaQMP-fYs3y3=) zuYD_`346ObV6~Ia+OvUQhDZgl^n`cJl}klPk^>G`$^NAJ7HK2qFj``+{rUTZJ0R<p z2gV=l@ODFQ3Id+uJGBUgXh5wC*d%y%g64ScmtUe-z%MBaZOx8C3jsA6InH_NYz5VG zf6eu1(WFQRa5euDkiCAH75wfBG8nPzg$e=}FP}K|K=lT#`Qqxz)yBurf#h>Vs_08` z0@BDc@L*+?QkGiBs=3JD=nvO(s~`B%uBp=8XzB6|s!^gS|Kmm2!7seaWncuB<`5#8 z=YPbrgWuNoAY{23IjAfR0v{+=$T1IaUw4D4+9NYH<i4#tsKr58?<v~f-5fY@Is0dp z;2Glvn%9?*+*{h$ej~7u!r1D=HLue1@`}O=8+!J=i?zou{=haxF2hEFD|zplPMf#! zP7Ln*6N&ch07?8^jDIKXomYNQjdZnT+C)~l3MQr27FF{kGq0S_`(wmiZOk7He*|TG zE6+XJH1`tTh6YPwt)S8xuOkz7dnanq3MgF~LWzV-+$RdCMM@cxN**ioAy%kEjvaHO zuYH_vQPt%A-#B3ctgmFvc>c+IfH)Q0=3E+k0nudDv>#z>;nhKG@lcMdc?!wn5^aU+ z;}EJJGP>BW_6hnbsqcdE#&u`pZ_1>?NK4HuQN@V??mgD!6zi1?GhQo+9ry&vE59Dd z9Io1^(;Jkfq@6Z*CshJ3Ye()*J}J!qYhMtV`J;yt6Msj$8${ntLc9AXn4dVYuTX7~ z|N8+&^H&<Q^AyBZx!zQ@PK8&B`+NR&DpY@)h8_+?GI(MyVB~3W<R8RoVAK|w<RXK< za{^nd#=1v|buE)<j@#Wy>w@VTfQY99;=G_>$tAXmq!>I-FNea=)z8{rXD_4Uv864D z6wJ*~Zb}>#U%}ifdbpL;be=|VeV#`C1sA>)4uJ=JfV$FFku2c<wrzf0V=DgAulxJ{ zE~P5KCR6zQl0}W!AQ8o7@!o`7AsfYHHBZ*(4A*A6OTq=f-uzR-cc&xR@=7)zX-UWf zSfJdb*O9aV(6OW;^!F%A^8Ph^qRKNGJz@CZnIqV==R>%zrPKt~8c?Ea4X#^zgo6Xa z^WYWep`Hf^UE6R;i~*1U4gfDbQm7gj66a0<Djkn;N%U1L+qI4ID?v1KkqTvrP+=Nm zN&##SNQ9MsXkues<>%!-pu}&_et+!*{BARzD56`UK|-AZJs*<&ix}7Vt8?sO|BCL> z!)+zawlEO@h3>*p(h*eHUP5_qXg7I{vU*j7JRr3YWNxj5FT1h&8nc1r_p|0+MI==G zP?@Sv?rFk5S06BN7@ZJ`XZaWLw>^5S$T8e&rf0A7>P^LR9kRomuVEBL0lraj)%up~ zKTh(GaZ^S@s;Os08_F#Z4wI5X%7+z_>2^W@KYI*(VZifs8dlfx*Ul|`41{eK;8&Cr zeHy=RwnYAIl(&$D_5xp|^PvZ3Z^m9ezfqbm9Z*H77~`ChxiV|Pf;HxX&V6gyH><Mi z{nhHK3VPdYAv(>6AN@Gx_ji5s?P7+Yj0|P}s<;KNncr~xekzXAc1bc#Qd8UgKKH~S z%WF_CgMc~C-}i}=v5oPD@PfAUKM0Q%X#KW-5F%=;mFV7$OOJXR4y|PSeB^t3$^kst z9v>8N+a)c_`!>QmnPnIDz?%@HVc=RPa0*vN#{s&brAzUOy`RQ>e7|Gh5xvd^FAE=H z$!5T0$dSG?A4$=Ze~di*1#YAM*;|`@&6}bn><RP8N8~tn{&^-{27ay59AifBNlW6j zlRf+JTn~`tu*GA8(Y{ujffa$6N^Z}lobuG;7a?nex!ZIVmh6DWTvy5kbowp1-Ov;g zGG4J88BuXqjp&`38`5w$AluwfUE`+tChP9FgR9+fdh)lP&NrseOosAm^2KNPE1b_E z+;F2z%|e`K?oD9k!jk5pRcMAtJ3lEDp`9jWXgyI)k+*q1x=U&EceTqil0`>Ecwk?P zUt$Sz`B7Nbvuk!PbZi&<SfM?nL$z)6L(1PLb`dZ7O7nH!GZd1kti9hk;%I7J;+@~} z{)nQk21;YUDr_8&tf_OY3y8Q^C7d)fvzH?Ktd!@P2_KQM;)%<)hWdW$dv^3!=S9vY z;2p}d*cYoCg53nD`yTT65~%gJscssiXQNv&U!++E2FDU7+_4)Rp#q`Zp=$L*tMPK} zY0=Z00b0jw29b?XP4;}t{jKyVf2TBOA?|)i-0EIc>H?<f)7iPqxjQZ*8On|We9@vl zAEM}u+mA^o6UYFdeKrHf_0L>1oGjgt&XqtdbNn~-5o+w%)1h<16fgYq>+R+<g4>G> z)^cK9HXVDh_T!m9i@1aXdMCB*pC{&0KC}jN4wnEg?CpzMBaVpt^$kNz#ixzmG$4bw zq}e7Z%=vv%d!;V|gr6Ggf25BKf+Q`Q!$-R!?|1K`=>cIHU+G--zI<(=dFr&rtfg*D zIX}(Hs~fXe<|<MHmqi|E8-Ffk;=09paNzbHG+%#N?k}|~efRUP9W|g`k^eaem;7kI z$8dKk^pY8=RKqgq<DUmvH`MW7wg3JOd^(esp>+uH{nV!Z_oB26*3*bqZ+CpzX4jS< z2aOO+c>n-Ar?K+LhhBx_Rz9AsDFG43-^%0t-PCAw^Y8EOobx<{edI!j{4#KrrFoB7 zZ2tP2>%di~Z?9!0E5hk{&YzF32FRSf0Cq>P$pQj&0p^mHRXAIiE>Oon)RCh@r=ZPC zuuDt)9LydpL}+&f$_NJ?4FpN&f?AO=^?9m=ZisYkXgZHWDp6gpRTdyC^>sN4Bpl#l z^9My7t@+~b{~jyM-ZSIz*RU`b_$FB(B_@~~!kgsmav+JQHhu@~WQSZeA#$>N&#~5A z=c8<xy0{B!P{wzX1qt65Vu;X5<@eQPlEC)Kl;rhxz@45vUZ@7zhMYvgJae5bN>pfh z3LyKG>00TuB@Ra)TBj@-m3F{hJJm^&mDf$FxgnhzltwZ(=x0e_GP_V<?IUSR7TOL` zd=%JQj!aFf$CM>vg9B_vAF&$5KgYmG=hD2`W@DBJzz_r8hIleCLi+Zx_zWqKLM|OK zXnv6|jVfe#d<%)(z8_YHy!bKIb3M?HpP7hKjzs6FwOJf^A|bgE8CXY&Bi;{s^NhI` z6@TP9>7Wwp0OoVN^L@Q%0Z6OMQO*XtkuZm>O$p2ujvqJI`9voXt$f;%i`2(P^yNWG zD>;=kwI9V<2Q7`;bObP;rP~w)1ed98Z6M@eLfa%XBp(zHz(VGrVx!V!7^W2E_&Pr$ zgy$*<VF=nEsmgWsi#GAIG?DvZIUxx2&k*>StT0FwliIuQ?Tw6?52s{n+@>N-1uOae z9c?;laQt~{K{q)229pFo$Gp}#&~0Gfr3)nG16*gL3n|hu-*N>%1MN3t=8E-I&q>D= z?zPGN1Oda-SDd72Rt-%3mJ^=h7WQ-QW-1OxuHdsElXkkr$T+_9kmWNMz<DB_S>I|; zv1Ugu)=!!#K07$|*)o=y^lul71PcbFDCNMb@@4Xz-5SD=7$AAZ$dWatt)8?0XM}cJ zslcS4v8#jV9M&T}e&?-0*$e*~amnX==cSmg_3l!|UC1!yLI=<xKC6=FN>}n#^I9na z7=;9EI7F-pvI{nU|4xhcp8qCW7L#1YYA)~>%~OFsbbg{pCtEp-I{0T+U-`R?=;lA) zg$JVf<9nO{Awi^?QZ}ETi{KEt{wof)npK<<JaON`^>}vWw=y*4IG=vT@q{eYnP4!x zbRZ#Jvg+VOFR~H~sFYT#^;N4iUT)MW?p;2!Rj68bS?Z1|9Pf!RFUo-AIY+Zp;U{A< z`66;dAaFPEB|#8l_mCR0yS7{)kKY>!NQGRh`Wh!t#WeCX+W5)vGOdCSR#m(Uc~(-1 zm<-8QWql1Q-3gYKMi(bgvaLAT0h3pc_c581ae{-%7z*QjEo(xYtxz0~RJb(#OQJ5% znT|%D{d{mf4Jl_>`P;9yg;k|Y^{l&OUE7^{4O@9ld^xWb2~Bk|M)<)v$&e?LB@To6 zG16D|1Ob^Qh?}ODAB<#~c3FCokI3$AgO4I<s`4-LNDl_<`K9c&b!uhu(k=y7iRY;- zeMW4h8^8V~>vX+Ht`9+6*U_Gr&X8&lkMV>rA4_+Pa@|1y7A=%UR_t>+LK<SM_8@mu zq6I?{_hjr=mc;55HWU^~A!}Bur6zqS0#_%E7)(<=|JZEFq@05Kx`4CNw<To5*AaYh zq@;xNv{l%-5JY!!iC~10u~K-h8oXZ6_^11&`{^zz(vogp%6ogy3Mzyz@W&7LA^H8A zTO7hhe&6~oowrM6<%w72wJMa0E^GO<Cael|+)rq<uWCdngr`L#*BWoa6KecZPiMZX zTX3kn8`~-l%5n4XXY(DhNJE;yTEjB*8Kwwe&MP%o?uBX8sTcOAZc9HBKsq@^%^B@Y zuKAP&xNiTt{(fHm##*zOdF9ber1ZB6lZCK+YlMDLEhOOpYyUiQ*OM#O)}qvOdPFeF zxgjcZH#2bCvv}P&u4N|{ndu)Hi&%GR3yo@X>D@EJNuS5W>w6)(W4fGT8Wyd4M`E}R zlp7O$h!X*Xt<oE{SCE*1+s##`G6@~&3t=_VGFR1*LXt8_(23STrK&!qrw$H*z2yVy z$k*b4;L_fF>x4;c^<_mhNB+#qaKFyE$)>6=O=u89s1^8e;ogr6S9u}!GDw(LxVYD4 zz$-ufz0HM}>xj&*z$;UC?&TFp=BYl5)rn}5&aAuqfm1V;e(#qI<(<UUUYXOS1|^8L z*r7(m9T)%XKltkl{STk_a>>UrnXxM>*-04#wHvi~*40Zp);%A05F_xr6${88FV0ov zLU%2MF=AzBrgV^ZtK+CKH@2Q<hgx5A_>0Je4-cyjzf8NoLw7V|N*l@`|2^}Fb86r$ z+=s6WO$12u7n+_P9}=i**sqQ}VHk}>Mq?R`Z=_@x+p?-x8iP(E(!x&x2mls-dAlcY zn?Uhr1u|n-?#?E3Vs(07>EE00y!SZ`X}=UGNE-fYjc{Y;P;3$FUkmQ(bYb%DvJ3_r zCha`a^=E3&u5h$IaEF`5&wVm&zUnnBkf(+`(JR+RtP>uIkGW-<!MfGdd}$8wcD?Vl zc6)VRV@RS8;YYw(Bdo!^giz^*>dV_f<Cr`aPhb#F6ug4ADLW{Il*%8H61a^-?s6T1 z9(AkNBPb7n${h3<@-zzBHRlm)^vKV24C)o1h5&@^vrvQLvN~A0^`rROhDjM@%t??W z0-4S)6Z;WSi)(yRbuibq2^JApGZ9>!XCw&9iS8VIRXY5)z3>$NAts?9BmY5UJF9d% zae}YP^CNX&toar^FKQcFeT6G0dJ)<9(XF}v<N+T9J#nx%QLDAN-b@(DvKhAFKXeC^ z<&fuWyg9)oJT-~CFFI*7dLe1YAnb{EL|-W4R>}QW-Ib&twQQS;WYghWKObI5e`xg_ zx#H~yPbkYD#2;zyGjS~oT*MIHpJV;vYv0LgE0d|0w^jC8NBn_eydob{cPCSdLiQqh zYJQ=^%mX1lly(OMYg;AQ5yAQ?-s>AjMc5(5eI^kJBT{jQ@(_@8i7c3Z^tBDLukL&Y zXDasb=$A5|%}nKOFXXTDg<OE~Mx5Ufc<Chha>i#K;x#Hkfl28C@V)xKRKoAcxQ=od zNc}Ml*to^_$kp2-Ew9Pk(mmw>6R#i@JG~qO|8x3wRc%`1<&@mZsZCrbY4(mnN#FjV zkE4a5Ewy3SkTp~D-S3B%1slMEMKfUI;8O^VSxPFp69vk7tE2GP@v)R+8~@MP9G$S1 zIgjp`$LPst_6wEv?H+-wddK$k;kEu3*DfL$y1=)?xzn>Ar_+0O31;;LciM(UFrMul z8JzaOsIpJqL&t0@FK<YR{+2r!gA$l9!I-NTRYfAJC^PFzsbBkFSRs!uX{E;^6icE5 z*0p*s$<B?;OH_4K=|b&sJ{pJ5*#2l%_j&k0t~n}yacJ#5YSM1+{vWD^_Bq_uFxh=C zWQL6S*2rbVoexky(JW(bS2_oiJ$+tx-(#dzoOGr|JBWJ-u($<raEQIG{H|~5SKo8N zi0O6NQ7ol_xfR8T8z<el-5EPYTB(+J)z_>JPl^N_rY5*!_rxQ-K&{TV1ICCq_nCsL zF_;Sv(|PKoHgpZkL|sAu^hrd+cwBUg(@IhH^){lGdhCC7yN27<6K^iv)^u2{etf&~ z_Ka<(<fMKN0+ch|=`7E+wUA!f6apU12iulFV>?b+)ER{-dp7$67c*VEpV;3zfXrUf z%GpNz)6GM)P42UjTOC|bxYjgz5K$$J1U2$*A3@~wTZ%5R%-dy<`YwB<+MfN*2w%y2 zo@I|X0vP5wWK7a&x1s5=gUF!v(`s?gi_2v;L|kr+OJ94U`8BToyT(PI=n2^eFZgw^ z(E>Svo{05!XY+U6H+>QMXJ&tI-M0$P_0+lu+5T~Q-=KJoQpi=Zq1Y8s`y-d%ZOxKC zl~dK;CR>LgU$SgSNGlAW1*elxK>Ul~j~{y%Y_~KYo7~*J?4~P;(L91cpn$mosNLkr z4*63vq@|R9h`&d+9~G)pwG#hIWoS$X9@*Xc_IL2-$Km?Z(sAN|khssCwxC06o{sCd zv?U2g;<%3^q6*LeX}g{~cErdCt#<zt6hWOc{GELkU@0V}4V(Ss5=PKf4U%gJ&P0M- z&gYp)qx3`1_?{u>0zE(AU0QLk;<iQ$P9KtTocnI|R!ZT+hVk@r|5rf4W@#_MC}aW3 z)n-#tz<xwqXtEzZ4Up8Am2709v-m5VZD;I3G?1JeS#iSQ?Or5Xh<tJ)a>+8S#{ZRm zPwfipNV%EG3dFP(;AQGcI17{M#HtKF>Gh=G*4=7!rH7hkP+BGP(Pa_)n;kF*)x$}M z!!d<igAZf@O#9MFc-w$yU(DvK;W9U^C)X5Qn9JuYL5W~d>GDNYMna-8%oi_L^Tltt zT^;nv8yApU*aHX*sFj5W1f>bel2mYceysUx0<!dk$ml?jJ4wWuSB-LDUxQQzQ99l} zoM@8MQr16tmOQLM68vn72tZ(O!Ne(c?!5|+lVF}(vI|JqQLreN5wR@^%<*CFpS2xu z8WdL*o&RKeGaqkNRPdPFuZ6$!qY0Xz(nZecPJ&W+2Og$1(b;@hdw>d(k`89w0EFEc z2@4s=gZ7JH7|qo3()+o}0<E|t#FJh9nQV=6>;Mx%tEm^QxpQW<ZBHo#;o@9LxGAu% z=U63O*xfHE5wD@mfBk6rNyX9Z9zL=`UpC)>QWnA(XR9H^gjFxX#*ll_O6td<1bV}V z^b{y$Njb~EDaf{{h)+y~HHTt;QTmR^RV9P^NkMQvVU+>)yfo~T!j&0a=+p16j@yn! z9Y9;<dmJ8p-O!2aNQ7qQt2QUu3+v`7`z9N>dIZF2jXDLabQoMdm`p#Cc+htANy5yZ zECmwQV2RC<jvlW(Bu?$TE^B4*gu;#Hr9J8W;3&qHJaxUpIpTj5op(G{{~yQCy)N!G zuRSvEz3#R5-rZ$O*B(W7h(d_gy>6GTy=M|aRA#c%#kCs<sVEsmB1)lgzdygf&p)5X z`Qv=vpYwUWp3f07reh&F4j+i|fUGMa8=b;C6x3!GH{NNiG$?Ab)MbaDFXFESDW14` zbQR_u`TTUs>qH@Am$z5HEnl21G#=bnOX59m&D{1H7Y5Qzro;Te;aqUas2i&0T_V9d z<wfp#4G+U~KTPOM=6aysyG+i^LWGB^)I5-`=yPD7><c3&_!)4gp4^}T`UYY3_i8VX zqDDeO(-pGl(FnKPc&C(1d{@P&a*bR3J2e%2eq}Y=fd|6wA4)ODo=wvWF)b-iFEISP zV2z1866DlqU!r!`oIQ+yCE8cUCt+Mc))f(+f)Z_atuIhD>#1RLZF1bNPmc}!g-D|P zf#~2LD&+e?i93she4G`O&NFv@&lN&mG|DCAtQh3yKGCDI+StX5lCtSn3NfLVV2SL7 zIMvvqnozYz?FYpsPXB%tPIH9a>xfi%di6)m{n0BoI+;9j9(7p;7t;T}?+dC(_#GO3 zg?GC6-m6n$CBMbNs=#Oyl1B3Efs#~iVAq4j{T#@4)*pMzBa`A3-Z@zG4hqKnyh$~~ zIgW|X!#^r*#j8bmlD}Yd=<8$Z%^_aB%_!~+Y~a;y8{d=q^Vu-v2B1*RS~dQ)x}S6e z-R$trORQKEy8LCzNg4`gzgsQ$xEgwLfFd}IO_oR3TT4Lmh5ysE)G}4#2_UY#VOn74 zK9Xs6SW~EzFg!`ruQCwNE%4E21ptdqB3PFtmk>@YCiUPRD(s!GplfRqpI$Tw<4lng z%Qn0r?x(<Jjg=FLB-C1rnhw|;0V-3Bm54a5!d$$vvjls$1ksn9f)^IAFb;`b%Psku z4gM4ae>>X<a*D_EoGTG>wnQegc?6M_Y5=Pzy4YOqQDIQI5uVD!hvJ|giRUQ2irdzg zRL4l1TKJyq2t^Pqyh_zppP~@r$ITbHFj)9llQS?i!7)DgbGg!Sb;ms2hCpax@oPal z0jJ|8e!&JJ-K3tq8cf~;YcQ)-X8_imt&%?`DC9)(9tWGq1dKgW)+SLy$o-|ptHD;# z5Joa%nGUy6zyUCd^qfU(#Eg`MSwI_0Qa&(WW(qMf{aUbS_yHiUD#77d<w%DxD&C}K zb8WuP$?e)vcQRD6p@|q4W~0i?qP{rAa=pqIMRR*Dj)C&u3aCxC>K%3CMWYqPI<;pS zFa67zrMp-ZQkHGV|5V5baTJsxItM<15GxAf$~U-AEZ!9au(0WoIGepJ@-3*lR`l`Q z@68Iw)vW)^uYH*Lm*>m|&ya_JnC89My{z*MbT<F_HwOKpsOmpu(+6`lH4U*=?HNVq zB*2d4`65lY!%wzEZonqvqVi4}T<3~J(>-lHq{CSL*VRvLb#QX^o$S&tQx7F5H2>;* z5S{Y``I{pv?XRDhqKKNDa0-}3yw}Uuk2iJ91wL}5z*|KqfFbQvHxHPx=gQE=T%u(1 zGC;ZPPKp)2ND!g|6f14rD2QLG!{FP049N>mUoj_Y`t~-yu~RIs&}OstV}2`0Nqw2J zq_E&FpArI))p&Pk|8^sXo<vbBxJy28C;)BBQ&h0A8-?BUrxLeeC`j1XRowl}xJpWr zj~Yd<<mv!488gi>;{msz95(qVx_2NJa)*uMeA#vy1b0OMTVu#0j>^0|_V13L8YSew z1ay2CH!vLs5!l~!Z8z`qnp55y1#5){1qlpFY?H$pV+Ww3lb1z;uZx@!PhP5!HOsy{ zygB3^Y#ogu*eUa~h<=Vx_8=jD;P?bsp!NLy@<$cUY-K~`9LTo=ZGRTe;i~7r^_~y3 zs5Qn9s)MyGV%uu2i8*Pm&%6q@QH18u&;4ip&P>!bzQwySO!kj@3IftO;%y#tu}8hK z*^%5K;S_-s5)t@W$b-T@Ie-0w>%`T9G1*MOgO^q*m#Fz84{oPEJ?Vx?3m6lXx#G=d z01<$W-UkGiK9|($yeyQE0xheS=wq;pV9#v^SH>zt9P!|}3{-Sm><D7_r)JsNMzPMF za_5<wyoWUw)atcs@Z5>O$=JY}N;l<vCbM^LebFG`{ba#k?cYzkWySquQw_SS9@!kp zu$g$3tB58YnHri~9!RkPVDSXRQ*~&}Zq4G@q0p&-i5VbV_0{h7?GE#;OH1s>;|JI< z*hKZKM^{7f!v^nnUH(82e}PmLg;=$S%f4j6N_M5dMEG?LYsGfNk@Kw2>Rlr@S#>(1 z&x6RXkTMG1c>Y|D*m?1nc1n4#O^bxug86PExmPtfSt#PnBBEb{wi_Y+2Uk{BcPTjJ zzqa=RsRG`Z`_9*Q9zVUdy|385$VomJI)43o(TCG1&GO4Vl3Kq?Km7Z4^S>w?ov@)- z>R%Rx<@<svn}=+hQCnG00b$0rb1}L47=w+-fVeQ&ucFka9;wY!apDlXI7E#Co~_sA zm|^g)vKZ-f1`G{>?CSn|ppAz%13ky>w9FP@Npw%60(^?d!lQ4S49PZJ&vfyp?*5}u zS7xuD4N`jq|1;~+r6c-fi38{|{a+if2}x7`T{YDNT#qEp-H+$<MG^9FJoTDNJFW9L z1~RBwohBZQ*U}x-Ar9&iAKzmGLYxN;XoLl1BQvrugiZQ2ovNT|oV)X6>u&Mav_b4w z?73ERoGz0<WD<psK#UZ;3)70mtSBbXJt%U$t+yV~HPFX>O9rg>i0pxdwDrN0=piRv z3*JBg0_15rQaH#V_nc`%9_S-^7sb^SfOzn@h4peX#n{D%wg$mLVaA?l%PrO)p)jT4 zK$qd5z~SJS;j@2@*bOObSWV6)d<b(mJRBB(mvLrh_yS}kQg|c^Jrb=ua*;R^<1!K( zI1(2#a)~w)pFfgNJ#x8i<O*}->deTs)sgFaBV@=Zg)BUph#sZtj@}@S(p*N90!Nc$ zMsLza>G`86)uX9xqiM|1^qJ9&)zQqo(JaVVwr<&b6QUCxixsv>gtDu34(G>=7173u z^KB%-g&PEdDhUqKJaVHYL3YL<k;KFh%AJ@_P<S4=j_@Q~?anjC>x6skSPD4X)~;;q zej9oG0dt&fPxrU;zz>u-FHbg5H#oM@4bbYe+XRzZY@#>D%0tFj4`~yf`4e5IdmnmD zXrk5cpEe*)qEDcqs#A}sk>wre<C9bUPA$Su+j478!MkIgjnJNrt{PNC4JuX{aO_(C zIJ~X?(L5=!%k%HkTg}Jvu{PU-g6(n!=iZXlF21n`7u$}}p3mn$e{;3!tN^82m`=<F zt1g|mkL3Mnq7MFYeB@7EYd$+z(lWWO<YoHPnQ7HRI{W+8=g;!{>NoBPRXzVY^I~iD zh3ps@vIMugDk?F<Jq=*@QS9c%6a~c-p(-y54(bMWkLQM*+_HnrV1YvAhR?kzv7z_L zC$md+`=4*4C&7A?Y(p@5Ug_BlX3*ZV0=Rr*AT(9$g$$9M)yqoJhXE4VrIF*N5cVm! z$do|F-O}RHvpFw=U5XpIEna$Xzr|VVRNvvf%T1zZ|JF5qjhvERo06${eikNo@nf!V z(6ESWimso-{nU#6@h4&fj%AwF43`vg)AUP(jpWkal<MrXTE^H}TvC0BR9pCPmcIk{ zn7t<=V|*3!=CWp6J^k?#ABs0uv4LA%X<VkuNqzQ}*_w0W0*@<r#^vppSsE7lP~ws# z1ZqDstx_;1;h>00!WPW9Oxty1A$xU0XKY_g3C$#8A)ML6huM?=@-PrzK#{y7D7RHq zTgUx2bkd%Xiu);$)MZNAxNpNgQ-C#x&NS<*&YYQj`h%6~7&Z3FTyHMGVlKW-ecUqz z$7ZUsF<bk!cH;|7>3JH-_Xq$F9G4?_QrL$V=2|3VKIKAPBj`TYTuKb<&tH5|8}C$7 zF<TKLWTXZSYoH5E%*ETd-yp9Sf}W=h+Raf!<`YFmZVA0gi=K0QoR*b4cR3aqrg+dr z22!rg(|^7$XnuXWj?}}rZzN}|t=kYMFmchfK>^`>Qv%%sm-m#0=HwPfr?^+pod+d~ z5lLd(Z(nx~@?Nw#PW}1j4!f8C>A5n!>N#bRq^QpP%?9Z)51usv^B-iMj?_ousGP)5 zkN?t(0EFGaXt~#kH-&~LB$M746u6%nnom5O&K!NsiW_?)$cv5+opR@W+g0<f+hUNI z&ES_h3c1cx>C~tHPT3`Z8JGo~C$PsZuxatORS4I{A@+&hYuSxL$%{}`$EV_wWo+4* zYD+_v;|<_`FmXP;a-A$5B!?KZa9$_0me<X6(>=?IJ!8k-5%ro=n>~*dqXS!a))5O& zgFF+La(h+<oHV6-^xm&n_~_b~_6^a`;uhU%aOtGe+y1AYM0%Bm7E&XzH{u^MVQ+ku zpib-J-)hQVel48l@p*wPt4mnq(K~g#>ov>8yTaEaB#AmanN9wD;{Ct14=nblYeOmI z(o)gbK}9Hq&2kCi=F8srzE`|Y_9HVHC=?c9)!x{e{qL~OfyO@T*q+&y79#Q-sF(VM zIaPA)10>^2N#`W-#(SY(IVlfrbNu=sQTtJn&s@OLFW}hHdPD2xY?^(-{Yh~*zp7fg zGW~4VQ<h_UT`M;^8q9?srOrKpNrh6B+n1Z}`*SugD-R>o-Y+ZjWrGg<Rr)m8BT^*T zDQL60bFG4Ycz}~+f2?rDsCI>6SK4m2++*_eFt&+vTcFJ7wXh7-Pg&(>e1GXii_brM z`8aR6ZTYTK;wEo&YmC}=^UsLZavK|+lo6<Hzq??}u|^_`u7$EKDb1}!8)@kIC?5Zm zqj^m};>%l`S5s${cyA{`>%uBC4eNV~%aU1oveq)<HgRs!mfW~tn66vUXDam5EVuaZ zEyv_fA%&lk20q?``_>yZWo*gI4yV~Liyo&|`bpEF@=(*m$!@<j>bmInJ$0GuDBt#y z#NySY`oI8ka!E%GH=Hl`?F3b!0y9wdi6Xk5*q7#12>X1yw4`;;^+nJ(so*)-*>q^O z7|*>y;^*YTC1;LQmd&R+Tvlp>haD(1dl-R~3jKpk$-6$U-M)CMxIR-~^isRv=PqYz z`^K#!CcI|I(A0XA7TPL3|Dh|Cp8c_BDcC17@2M+UzDB*)>31RhJRJZrQuUi+<d5E9 z*jgFae%Ocf=#MuV>224{?R~g2E!S9+&o<iJHXrvD(R@G6u5U!;U}2_R8?mJi8@V6M zrKQ1A#Rr_C3kB$k4@TK5YG7Ow=b9SNrzCiD>uf8V_oXzYu1Gubs|IaO41W#fgPY1j zX~X1xKL==UZQ5OZx`H9_I=-dEY5qa^8Z|qtLNG0PDfi{yx{kv1p8k}4BxO;aqRcKh z6r3`jbf&*A@TyN*p8w}=VE$R~_NT&6xA~M_1}XOVctuTZrYF-uk$v>U&_v1?(ET84 zaar&m<shBvi{=a9{*(`(^&Vim!1wEsz>C~RsqdaFtW$FPJooKiVZgdW@$K8C8!3G0 zw+p};J89BeO}yI@o-jh9oP{4t*y_+k_4ax~nDUjw+l?wEb3yHZC6~dIwF>yQlmoQo zd<wl~%fIo$#jy*lxLq-;_hFeW(9jFj$<P;Wb({M1D2oe^QWYoq%bHl*()<^w&Dmto zXi4U5lxMvD`INPSielk!Is0xY0tP|LeXxJyxuZs3?U@(4D7%_s7Zc5RZBmOt@wGU1 zNu^h42q#xXj{kRLMCCfH5MKLe0!$LbY)5R3`L9sdXE*N;^+(Bk3U}Y*O7&R`EI=S4 z-g7G(q%;LXEpw}L6XZX&Ro5~wT;v?m+m`U79VklXhoeHQ%#hxfw*`q)XYAjkjJ*#| z_kkUF?oB$Yng2SM4un%#9=iDzw_B@=lUOEzM?~U!v7v_MdqZDCi(kU-Z{u@LT~Nd8 zv3~NcWjS^HIww2jtWY&YYH)RjaYbMJQSxJ9q2$8}nzuVWMl$*}>&H%k35eXBgXwsj z3jdi|k#~6{DA}_&_(IXy4m~1)FMrHLNTH}yD=ysXfYxLi@hznypWQ7U45>4|*(yk+ zi(8RV#!0V7CcO+wyGjS?u?lpqq6jb-g&mqAs`mmqltMk)Y@JN6e}j?5=&B)I50xiM zwZQ5IMJyxAOXq_MvEP9aWT$8(yDEixgDh<v^)t~LqLgel&As1UXSUvQ;hb{ew|Z!) zM!5Yu+|sLA!sXYj*J(wPvcDf${b`ex+;G6EJ31#uA|U@M*PLNASO0lzh<YUZd-2xg z$NN_v_hmxEbEfWA@U{tG-Mr%`TNvg(xOGjs`L5y<{>$5S8&5m_PVkXW{r3jzK`G#* zuly0g-#lLGU^A!~56ESMd^>VU*x%Y#hZAQ~up{yF_pT-S%)OPkqDf;vJ|AXSmgEtc z^tP#WWZ=?AgX`4xMj(XJ=T7k0`D*a&-^v-e^6VoULTJUKA&4*Kwe@-20*|xcwaq(L zC;#l(@eWJEj^me}FXmr0+P(DO{!Mbss*csyJL3wy@>&1=ef{6Rn^tUm@dW@>5#RuO zAT|*LG%hji@bw)e>!@XW%oqV>^cU^2L3H85ArFboXfE{VlH#*eh!(y`ivuo6ej9E) ziFikM;&jS5x3B)b_wxStt<8OnB?gsKNIiVM@f2_p^zupkf!6A1u7Y!8_@VZvXQc)g zx4&v?Ej-QGysRGaTldS%efLM_w|?t=otG8T5RJ%b`?}D5>BsigAA_Bxftwd=rQ>yX zSI3KVE^Plb+FPHFJ$Cl$72{uD-?ls@d$drK3Nnj4;?FvsHTk{w<@E*5ErG&(b{3Qa zj%~({JLOhZ9VP45{7@$qeJKD$ycrNZ45FR3s>Et70qlrLhNwb6)q;(aHcUd15J!nr zL2VN93Z^vP-#(ev><^8JiD6GeRZvkGdT-<J`f{Nw0>G83)fQkAc@o8f%(gxn0QST} z(%9HM0&@U9Md%d5RCz}h?+Mj(C3s2gtmd6$eus;?3Hl0v+_tT&2q}tyJdRzlL_pQ; zJRO?DCcQ)oILQZR&rIYpUdQP-TT`v%o2>^=#LoK?c=gK!g{!mrJ_<+`gh|%(7PUSe zzFQeBxgjN((XCWn)J#qqzk4stSgEpQTzMuhMKxc%%nuxbZ4{MYEd>xydC&m-HS-p@ z(uH4=3QAYix#cVPLR;1zJ+^?PS%3m17|lGq(Vrf1QnXdN)@(V`psH?Dj!4yH(&&k> z&IeykHg`^hSm|~4T!88^McAHhCyO~Uwg-AdmDwLzH+Auv{3Saza9iv?Y~&Tds|~RM ze<l%qGU%^)9w-`gSoqtUNg?4==p=&B10Dv**?eymSDDX)1t0I@0YJx&|J9jn9n!jB zrP~}2b~p$3ZtBsA53Cztwa!upkUTt&v)@`{ZRdD6|LM(3nWfN~CTx+agi1qL5SUMM zXDyG3r_n9Q?4#g`x1tuObUFw1vyo+;BIooccoLtrv;AWwc6}sZ3?4kR;8KLxeYjww zWi3i_;iG{3uCNl$x-^aAt?H_K{3Q*?dNfJD)PJ`@Tkc)?o$A!|llryg+m*+Jrf20n z{ST5OySMFbTsQsRn*L-G!Dsjl3ywAUkNG298M5!<Oh!@vVNnJ|1037vbTRm(HO?B( z9k_{o1gj})cqV)N+tD9JY0alU)-?iu<T=S#4}JPIXPAawj?}zJ5pJu1a|nmRgXHMo zJcWK3*C)YkD#2<Ae%HS4MZ9^amko)5dbgGo*E?a2q23cSj?bp5hkGzb0|m~R5xGQ8 zS?@u~f|LUcTG%3&y_2ircwnLmz!yjt?X-Y@(?hegsOO+;YT61(*{G9jFzg?hTmt}& zN(B{H;f;d@TD6!#Nmr1PuR057d7DI}{Xl76*+TlsjB}<@i>W($f&z1y8uDME7?<KA z<2F)8GIQ#C;Cg;a_-<gRN(r#fiP>Riklpx@B|!3M_C7E1JbzRbQE=+1zEY05K)uu$ z2iP)6*Eg9z0sNLvX~Huu2_pBEj#&`7S*Dl~Ykx)B=3ri<FP&ncP-e~L8Pkjt%`JT4 za*{`y%I<E-3}Ty_SDD&_I|XiD^PrC+R5##G`GSCF_;M_&%A5)ZP#OIw;zKeNDAL2G ziB7HR{HTBVpv|sCx&@qOxsz(7@2tQ=@O;{^rWYNLMwh5~$@_S$Ph4{nHkk^i^TGx? zlShA~f9R>hd*rC0rr_uX8iI)Js*b*#k8D=-v=bXpq3+xVOo^j;=e?$Ge-~EJ@fF}Q z^`8(q0g`Xlq#X-G+)(aZCnI9oR#tg-Ih5OcInGtExrjK?4Viv?a95~ww<M>n{k9KO zi6#=_>uU1MT5iClj;JcYslr5XgfhO^t7~!U&HHk=QEniOot}wEJEQn!CGC8*I2$kj zL?$mOyCYGqDx(aJu;LqvhWODGeTb-k2Epyy+^o?vWE)g~U3!MBc|+6%#25G+s=S2t z6z%opI;R<N^5U%mqHSI&z#89B`uPbSZWekIGexy1j(-qi4(Sp#I!kbPYeRoFgPO|= zJcxO)xHZg-QFS6%p}VVIx6=eu--^MMk!kmg1NjJRM`xgMxM-O}Ca(=Bt*j7kn#>5T zB7vS-lJ2MXx{~FJ;L=aSE1dH@mhXWA`rYLQCNre;2NXd&sl=V^{YC~dlA-yu4tS6f z9%s?{<W|qy$!z=e=uT%vac&1yZkKAm=D(?ln9c_Q4=6FnSEmDQ)pB*Zi03<fCADp! zemR$~=XUX>EMw7}4hLq{-E0B?vC{^w`mJ-qhi~lI0=d95bChDC91oM;*Q46*O*44} zhPYcTsUQtv42r@^B<%E{{>iWU)EQo2EPcrapCt0?^UcG+6S+o#YLKPpqclAyzoIrz zh-je&!gDn_8F(0m%GSc$p0=W+(=E=0&=tL&WgGVz_@d@xzF|){3s8Pfv=_oI9Q(e~ zL8OtdXz7*x3;tDohRnPP!D$<JL2}fTJCJLqYw!<GXVdeAx;y&x+XcWQB5y9q)%fJ3 zPHb+7Hg~+pkkKH(7q*fp9$B0TLr;99<gWXXP_#@s$9@eM+eC+ax3G~8G5B^Z#{i|T z9!`{B%yoH0=i*HiNV6=1U(@qqXDguBog^=CUFyG#<T*2?E*1?-ya}+kUaun<-}Vz7 z#TNf#U1GHd@a4&<1ins9p|7B;R=>uH+RyRXbd)~)8fCsge=>JO+5dY)mZ4n{$TymK z5{?s{@|25+6no}OT@rEZ=d03$91BkfsY^Dpj39|9bG3jkd0s`n;{%m{n?OmZGRfYL z><CDrBUEqF0fO!{B$Bd8DHY34F7_EJ*Da|Zd&pdKR%Bu|D&s5gZ;PcJ<L%(-y2+II zMW~S~Y$1EaU3_^9X{a~Motk~&&h?@DZliMzlXLEj#5hIZDn8oi(qSsNLiM}L%#9|& zQU&zg-s|+1Cc~UnHtZ=g{$Dnl<T<0tTe$&@0(wkTZH%<~0b)~%ej-WZ`l1`MqVpw` z&I(w{z1|oCVZYO|VRaksGG7cK)f}Xf?!aUDC5xen9X<1R@TaNeiMO7#KvyhiH@Zsj z)rmd5vNr4QQ_;S7`}e7V-UOl~*AYa0^<C=fJkaNZ&%bkgORS>)%$F!~p<Rvm{gfqK zyf1X-6h6?4rA0f&96cNx09P#?{H(Bs%i`x3ER|>%6VF(hj=dbCTB}Leu4XKf?gY$` z+EuL=!#`l{Wr_1;{xNs><34gfDH@ETK~k~KEfDFAGuvBf(psgpT11szu?>by8dI78 z6}p3D_PI#o=lgN&@5yR5#ofBhD>Zz!r@;Y3I6hlnsA6fqrw<`&$u|CVs;L(Xzu=qf z=PRvQn3UrS4fi3^i~brxHj|F1VHK+RZ&J%72&%qP$`Dq46}|$Dc~*5fp;GNUu~Ccm zydWQsPFDCR1v2{}cnzWye#9(DWLt-VS0}M;Lc->bc->^OjxBAMmnIT+hiH8aB)+H? zC&!*52|Z6^N2S_fpYN<L;p$E+%Fx(;-6AySBr7rBJ;DCBRe}eWQsYrQE!H<Jm`{wD zqb=5k$~5+A=@Ux<JPtGtln}a+Hr|iIBZ_g+5T2?Pe4rFDysZ8)B5f3bFJo9XdZla9 zzFn&@AeXON0UvQLavI%PdrSQG<|mE3#qe-39Q>WWSz_DTxX^W0a-J3>Kgz)}us_eE zTGhkTPM!I}ECr+~ZEL>v(lqdhv3CWzVACs2R3_Rqt|$%X5Gc#V7S-<h5c&zUOe>UM zoi-IX5BeoQq*NW#V$Rn1pFp5@a7?@{gqMsev}^vDN~=+A18?Pjv}7PSe5$`lGZl~U z!v!L<dQ9=!0sKMGk$+5*2kjCpPgt$W@?^p-@4nefbsiqbGrdhbDr_t~Yqbw(b-hEl zDywfx6BmH^TE06OEK~*u9Kz%;aBywLmRXX58<HTfvP@592#<d-$f;tqD@}Toydw3f z<iDfO>O(t1+X}lS5yVxBZ}WuOgYMDB?;<=*TbW8MVf--<kjNyKr}(|MInhV{G~qt& zTiFZm-!)M2pzY`Vk}iq7qYUm&DY0>|r8&*A5qeBB7%$KC8=}OUj|<N;yc(f$tTP}P zTb_rwq+jwb(ZSCX<cW}=5HB**pez5TK2b3;YrI*WP?t~8TxmN2Ie<eXv}gquf<$;w zBb?$KU6)lpdYbR0A09$|>~AN0R>p`qS+|ssf)&>$VjH1;<6!F4N4)Tov<!{WD>rwz zB5O{&RDKG|6Kc)COJ<*D^xh*#Ng<x!vn`f0LovbH3Iq>)nVuxMB-zWKL!P^@gnPTD zxO@cff`3ry&dc*T3xC^o9BhY&tfsHC#-S@%x)2dP@JaU!SeJ6>ixc%t6ykU@sYm=r zQzmN40!z+#56_ff2#T?;h*5r6ZtWQdc^!kc?=9+4V&-Zi@W9(Vbz(y!UFQ3pg*O3s zM78U*WBK?1`M5r@^!7VSm|LZCdTDTloKx|wS|V~XlR7`2tV}ant|wAZ!RkzZ{KlQs z`iuHZB?eGB3`Gv#7b_2e|8^rVJ^=^@2mw6Ze(?0mX5SYT1`0SKLp#Aodud8b6~zkg zkUs1Mp0lhZq<_Jp*YNadaU<IOxTA#zuM!{hl9R)u6_+nY6K`cOT5}<d%Awqe=+{P& zG_zoQ@9obRn)KY_V|5nolKQzv+O$h}Hz@{al0z*pG2HSrH6w+>bwsl~QryjeWLf3- zPhU9-mm0=Z|K!|#^mdWk1$T_mfAmNpnL(k-)pv1A$`hNDv7^_@d#XY1u&qgOL<E_y zLXs&vlJbyW{XQH|{B`Y<m6R%gR<$sN<wXgbB;G%#&%BE|Rseh)zD!iqg%vY%-}^LP zOuuWj7rv5FbGm)<o%ClO^9rfVOhT`F;dil1<5c!!%5@oLoF%g{nQ;O!56%DD(rx!x zn|Kw^^zkXRjjWo9tcv{|DrK|49Y+o&3a>|2ss(m0jU)k(>;Ff39%C^2Mxmd$WIw!B zA?PNrq|%mHg4=io-pHneaP^B$vf`c%QGkyqD1%8!hA72{V<I$I@*^tq^CE5av)#<w zzi$(052Q;1+~k>Ghig0<tw~xmbTYPaoZ2H^k6#Fd7E_3wUo{UKdl2Lc_LB~8Wr)h_ z+cSc5YeDC1(?8;%&Rr--(B)=T$VPE3qA9Mh=WiIE6#NcF%h-yvfg?6PH9ec!#O<k_ z_o+-Wg&isr_53Rd`GRTcV)g38UluI{7dhbc%6%$LlvM>M@1BRAwJHu^8)VM6YpQmZ zNqa7z(Pz@a)bKPFGQVSRA*ve6(EOLMO`yzwX)N!7ezEreZ`n81ZEfS5H{@8~?4Zsp zq`mi;8AQQ<N4a}~Laj<ihC*k);+ACJZLg#Xf3u-f@!!}j5@=EViXwUl0rV`J^lwuF z#4O2&`VAVw(Gt$s6wy559j1oTesmZ_ll>$_bzU6P2O%Fj+xqf;rCV28g_6IQvFjZf zm8U`VkXy6((PNH5I~$Yri0=UeCWxE%Xg!rCcd7MVPBU?Do8T*B-{vXO=BcFtVcxzw z3OhZn-9#vsaRGf%T)6|CX;4kKGJHe{+<wj72Jo~|WMqglRkt+Wy{&SSTasahdj+Vd zXleR5?vwo<3YgQB33B+}3!*290fxC5FEngMo%_vo?XC>Jy&PyslE*gD6!%!(-0AZw z;WajRg;_W1#5I+mTt9sJNFQDO=_KW9KUm?%8X>ar#rqw+$H0}LAJzwaq<^=ZzNH~m zXvQWGlc&V|ax7?BG-$aQ(<$}FmPojWAw;%vk>fM2z!nt01#vT^lzY83CkEbXHFG{# z*=*l)DA88FAY@s@6cl6%z77;IKVPQU$gEn=s|X`RzWi9OiwlpkhF~(m`e)A$k4bKU z<$l<&$3W`<-ZqABy_}0hsIn7I>R~?*^t5Bax5^}d+m!2CLEQTL6-b&i_aydw&xDRF znI?i&r1gn$5$mElnjh8!$HWKTKgNDQhFOL$LfZ<Dk^0-*9z<J(&{)$irj_^a&V0gP z>!Kg5a2I#*E=AfdMffNX_X>YW_UbEd+s%36FIlb6xy}hIUiwd&mfAT1ZDU;i@`hHb zgX8d(oH?4)`+3?V?Fm0B=K-nH)YB#8_mP+4&c`-c2JK<L%3F1QzaT&p>sVL)vns4X z9P?<*vA926wP&q+Kl!C$FjUCE4suST&5q~dtUZV)c=i#;vk!X2H%j)%Iw`#mJ6b;` z?#)(qH$u1Ni4=pk`K+BDr`wvYn*}O7!QimF85BF=t{FTejw2mL_nLG3)KvqJ33YN$ zvjMWj!J_>+M)Q8p#|TC>5c28(Y0<W?4M{IFw9c-zK>xz22C>2&zNT2ITFXJwjavxo zia64J`~FUA7v10AyK0XQ`&@rOY@W(~1#vvv6mgeYe6#S1YX)z2=(QgcwX>I`d+Z#g zJA29)d)k|MHvxnS4O1p{*|m#oGvm|$(5~>u`Nm5Lje{+=%|3CKH1@k<7%8{Ebw`7J zNz?wR%#td9b>DuEwZ(96M(@ws%|c(XqtK9+hTKu^0a7WaPegQ!D9{S^^o6~`1?2pQ z5De4n7uHwby7$7}tRBX<B%{^@s{>_+>codR6iJ?$dK01w3FO7!d5^3?l=9W?P?CJO z@^xZ-;8^GB=*@hNw9tGF$g!m&#%=7ezj{V?9X)N>F;UhZe0V}X;!oa<F1w0L_B{(w zYpz<Q3wX+MmvnQ#8*Y~;i#NTb{f=wo2vp=*n;VE{tbvlr-)mm-{ZFZGAh%cn1j|<4 zLpOo^FgjCxe5_A{s7DU&t_B123H%u3>S`v@zwOEF>nC0wvAofcKS@~bmrNB8Dw1?b z)r;zmdqSwDB8B^`>0pdFe!P~6ne3Nx8Cbc+#LR;*E`5HZ{&J6cZBOH+pW!~;U?vPF zA{m;*-T{m-e%^=r`P~zwnsTolWC+Z7qe4_&O##B&{l&<aiFK<*SS_M>_M8Fp?&tNY z;eYy%uaTlx3<U<tvv_LG5f!n=zn&r6^hWlviY0zsdb)osN$KUEYD=2+qfUI}wDP9Q zyoxc-r5$gb6w~q@6J*yt0j^@BJbk??T5tArg-mo2zyfqsnlJ7~3K$?k5&5{A?9!?+ zJK0r(YJ6<MlGZLca;ofHY`z~2i_+mR@q$S<_9H8aDjssJU$B5)fm}Fn>CO*zzIU?n zNU>TF=K8?BC3v>GKxH<G%OLkJ*HX$D+ZlozF+Z|0Kc{(E9}NpqMWx;lMpZnB1Z<oF zI1B%Fl7Pz88)B0332~L99qAy$+RmkOiMdzA@HP^u4S2A!fXc#jK}_hYdye<qo|MLp zlil@MwM>0x>$LE^KI!q?lUtWAe0ZA3DP~?4A9X8WFq25px3f7OaHLgTBiWt>3O@|1 z+1N5(gYNPQqAEzX`AHyK(F0}Q?EVe@*Nqp>Yr2F0-1d?O%3UZnhVZ{X_sw#<PifRB zRNQ)5O{yR;IysT)qyd=H!^r_|t!Jb`GOy9s$wB^m_aC5DD@-at99+e8ltcx$FNm|8 z<ZId{ylLH&+e$ePQsT&=YWMkSU8u~Z{T*krb4{kBlqz%>Af@tymezgi=_ak*<v*!M zg=Q=<O=0FwYGUpZ)j>V)s~mTYTE!+e)8J#e^9!Smhp%3k>^^gTX?A#|G|lxTE5VIf zfaH?mbDY>T_1Q5yFFr?55Hia8sf_ERDh_3770T-Ug(h^bws)3r-a}_ajQvRTCYo6K z_0_DqUxw?PXK2Ih+^MMNv4mB7e?iB;%G97lCxNw>!%Z*HN;#Ucys9HfxeZXAb(e>V zRU}wl3tB})yB)QQe{vq%KWs}zVDzV!b)U41PtPu1`k3MVK4GKb_4_NkW*P2ztq4)z zqSe5_ha~u<zDb~Sw`ez57z6cA`l>wUzCJ8v!;Rzgri}kJ)q@oRvJG+l5>09C=p;Gk zP&iKd+3U3;zf8|hC83RPKHXA7GZP^k&<YBqN?e4bD&<Y5KqTF4&yvg8G<{i#3}4B> z&*j`CELWw?_%g7`5sCFKw@##b0uby`eA#Sx8K$al8Jew7b#NJ{m^b`pyJz>ssc%mX zx8GgpvB9DJ4GBnePWx@;h1I7L7Z!F$kXfg{k0~`Re4o&IdHTn5qi+j8UgG$@_oi$# z7WZB`p7j2C)G1i}`I_vP<^AhTXw%}acTq3B_ZJhsE$)9v<iGCV)IJZ6az8GxD&*xS z5y<^8Da+^gMt#%!-=z;$&Mmm-H8ZZD{Wl^$Lj-|1CA_8+H0%x(dFSd*W7Zkg;YQPk z>kkAaCZ4+w?Yt*z#_MPSbzw^A8{*CgIm*ytRw8fA5*u<9YjcfkaXvwt%KESOENw9m z25^LM-EbNbb`wygVst;k9E<U9LqWzP6M2G~A&Ka(!Qmk*HYI&kh?)vpr0saN@~`Zh z2ndq@>N<@pr<jOQ&q=A5xOM1|%dTo4bwwhKc%-n%KY7s4PXU;AsYk}!9XJ4q^t0g5 zvQS;u#3UN?llK&>Q;|!Q%-HI?{Q6Twv+bO$YkPO?t*4IK|BRc8NY5d|89G`D3G)oM z{jc|CVo~);B==XCFrP1lgVBOE{cCRrN9S;_;W*=TG1517tXvy&3mRfDHpNM!MYw73 zksbl^->l@xZU~J_fFY4Gc+;6rh%-KZO)ICwKB%0$ldXNXMvdh;paw8b>LLCF+Et^o z4GUW{v6{>B2TN?ubN(f3x}S}vU|mVr77BMx%|!VdLA=W_CiAVVbKHg?NeN;iD_nDu z;%jAYisp~o!x;;dl9JSCg0`>P>I7KYakm9}p`2~Nrmylhc6Q1kpicxv7~t@0Rf8+k zoqY1EA}y7kmuX~ZBP`quT+qs|)qA{gLdyk_7ER<b`?+zl#@B{Q8%VII2?VEhvwx20 zPiDZ9WLfapx+8y7qGF0t_3xY1PAZSBCRm8E!|4{u6v$9KC+90}^GKiCa5k3RMzb3p zMoqq>Fa;(hzMY{ms^U-W42mvuQNF2?XA{W(LU66DG0Qtk&Dq8qH0dns9CPfPMu0Qm zpmodh`T0VFjd!6I+O9)4Y1*eH^fG1r#R<Im5V&~R3t7$Vw>%y{k+s%a5djC#T#wJq zQinO5C!E@F*Yr(mYL;vu9*Xx=1Fsni1WS95!c4Xk(TH>0XIqY%K<7IYoaQ&k=?=y- z?8T~WXk<ialZ}v?A?3+Q%G8y2e|+})46f?o)XuAAC+0%HHyX1;!p3&sZcAcMGyfLm zxIG38tG)nyiAii<Ea9U(%DtDgw(-hP*~{CI^Zb6?AQ+WC@itJTe4VIZ+Mi=aibIP} za9{G13Xpgik6sWc!VS1sE27D(w_6pzS-&{OYTSFl>=xUOu>A`^wa{3I{`>QT2&^oz zW%?$gb5_l&yav8(4!H{gb{~6L!qw8xj<&+pW0e19C-@X26*qV;#|)J4@i~aHFK4j{ zwyxcV^k@F$ovZk56M*9{oh-JHV50@sFyQ#on8G9{PJs;>To{^0A0XFgsMUdeOJC_E z+2mxHOcym%8*1FD|0^~XRJfwSb|`WKf!*aqGvO4Dlp)zsEXV1WZ^_*+el`sm=W2fG zLh!ROK&ZF|ft#pX85WRg%%X&U9`%(Y#U8kSEmTp;Qxv&qqhCYF-g|zQ8_i82MJ>Zj zj4RO`E>IJ0=?e)j$tERlgu^e2%dxXOvU9>yV@FFZ?h58+bShM+N1TrbbGSUxPqr+M z#tl&VQQ5?*>y~2)w@&3KdME%wFwFJpC4c{kDxFYy82`t=xh<7{Fo{3YtAh7>QRJIS zE$fNW&h~;Jne6vw`-d<8%=fh*7`EKd&=Cvog(P|*n(c!h8K{tntv`9~%R*erz>}h| z%!l2Dwei-fx=Y9ZWmYe%An)Fj738|^uBIWxK>=%r!*Ll4NX4v_$e+r2IO`wgI{v^g zWC!wKf(VU!HfUq50+88m?`B-;W$R$<<Mb$N5Rf5IY%X~35_Iz@(reM_vw5?6_6q+! z>o=~s&!H;hiT5{@#cd%$-*Z^=((;uhDh|VCO4TOp{Bh`k;5Ogh5&k;|L-)>z4*x1( zXL>)+*I&g$`;Z!{y<_4tUpBPXV>2tvG561;OmYTM-U)>uTR%g$&iG%cvF=~oe)#vq zp0AZm-N3=mj{p80gK~GAbH)_CG_}&tA{<Fe6sem$<Y!10;?F4G4b^S*i$)B|5?S@~ zISYoFe2I~NHWfz|&gBP0n-tt0X2u~t?=(S9>_8GZx!;~d3S!w*o*z1(0E0kapZf;3 z5+yiEE<F23JQDNbL5n>V{wwQ_Th?EDTMSly?X>?|K8g!(dszHU9-o~VgUBN7aJ6W1 z`&p5>jkEpVfBQas@<#>hB_X8w_utRsGAPa`XE{}<e@J-BdLshfzXo3eSl^KTCo%EX zfd9a|%XoG|P+q=2R}_NN5XUW`B_JXY!_mJb%&-+_EJ`6ZxCZ`%oJRt+OB_jR92@{g z7G|6@s|n>5Ab}Dl$&%S;n5*dG2-Pxqvc`*t>^3!E=^a!5BTYA+`#@b#qzaVz0%Xsx zV3>Goon9uoE1shzAv<Eufpz@8)vwFGrOMB70?%=2U}*p&9)%J%s(M_`!>L8*ZQ&Pj zM;+m#Ck_2qCh<D?YEGx^yS&mxPb`Bym%mHeE4+9JybZ8yqX?(k0|O*^{r-G%ot*^l zcZ9(AV3Pa-D-bt@e>i15Am}_G84Er}ND@5j|GPEw;|sV{Y$Rwb3Zuy(7vy&b06?qD zUO=*ND~zd(;&(>D{Hm%NcU2t17NGv{Vhmv2iqTILkE%d;4uGH)im)XaA#J6CXr(QP z91r$X^fN?Ng~?Km99j@VF2+2IA3*7>3As~`;VuZ9weDeaRow^v*n;nJEWPlUM2v44 z+k@pD!9l(QYhWk&RUVMx&<mbrnBc%)-zp)Blj2>Q!{YCn0y<iHkR!sZr3?dEoPloo zjs~akUt6{-N9gEX)G@lK^TY|mXa$CHQ8SZZ<}R{#>WWk%W{EtB7R14MQP^xjR4Sas zzm{X&H^A=qO~qUYQ^mm8WSUB$1cWOLtOkVQeY<@Jj494qw|^K_<{6sWmDlYCGMR?g z?*7oH$UV6!%v+`VxCw;?-Oydq^?rqIR+2mIzwI(GuUm!j2tfwtDHYo(Wxv`PP!RP8 zi5~ngbJ|5dBMS^xUBtrLu(5Zs_jBb0{XpVvIB!0XWIpc7Gvx9QQ#hhl6bqtg8nTX( zReJ;j23d27aD4AK7j?7u5yJMBsdUvWS{-Jt3uC=Po_3J5^4FZ4>Oke=o(_bHBk(Jk z!nQ+zrf#hRzSBHXL3~2N?IS0B!{!R&T<;*ZzKv|#psON^!l?|*4_LtXS$Cb}Nrt5r z<4zOYQecabY2D}Wr@=F70_m9L`_Hgx&$mgU19cYm{xtguCEIbQcz?v5{Nkz@G>PMV z;~q&s&oK)81@Oho4xoEtOkR9d(atd(&bQa1bH9kueKjdO<}h}Cv!Q)W<$I=Fx4nZB zmHZs2a0yEM5ZRK~hg!*}>Qt!n`GHAnKlAy%SU#;X68Y(#sOJ#{b|MVfHAI7WmSBUr zhUy~DPe$x{!6%fcJOfi`4-ikWFB^9D3enY8Yf8ab!0}5=-4Tx!$}m>Fh=x-&n|1Ue z_1w2YNJgmYDw4<6PoLca<%37Tdlxa}(~bJ>0cVtSZu-}poKQT&643V((T}%I%zZYB zS8j6*8bV9Q`l<c$*K&(Zf9`gTP1L#;cw0ai7`4=C4?OWJP|GS};T$1@O`x0s^;rV( zS-Cyj{73o~9HoEu(AqbEU7O^3Hc>w$$<5K^uK&$nAvyY?0y@^$ow;J1Lo4;e$Te|c z_3dE|zrtGd&pnPi*VTUR$**($`r$)y;bZOL&wqta=|{}QMZ9T`So{_7QUCl}-1&|6 z^IN~p@9JOp8FxXT3E(<nI8#976$*##k-Ynne#5S8fTlo4l=Obo;*hHd*caImt+pS% z53%QB3`GlHG~2(3b9b2htO7NNIYHi!aV#>dO>%Yai1pr&b(LfJD~ZL0cEm-zR<_R# zym0AKLdT_x%im*OUrM?ZpYl4wxHdk=AfaHNy(uu^_I^U%{`adQm+Lz&d%s2-&0T(c z>B=z!Y*xmVeuJxKVgar0SD)`+U5xXBa9b{OTwC0~wkG<LBPi};$MvoKbM*}%9<rj% zw+`~Z{V>i-5S(GWzE9>opxpdLGKD8fbSCB$e&EA$QJZ3<JE>|1J`Hm58u2%b#65oM z78x7TEX2=fG+jMPf;k>&UNlJZ>`a0Q$9o$l2OVho#V1D`B<DpXMaADt5a*8VyqRc7 z&(QGy=0wjppu>2B%0*L3I#V929C@6QV{XT%))zlQ@1q|WrafkL);8zFb{wSjdla00 z3>+AwKR-zS3FSu5fT}7eQwJFz4Kvr`GdDUjw+=FQ4YPj6XB~EC{X5748D+C4WW&0$ zc@MJ%jB-R0awNKPqz`kDM!A@TT&1pDwZmL3qddKYJfp5Wv%@@`QNBe2XTD8W{)xl< zqSG1N3h1PS;*_r9jKks_qmqJzl9H~H+lM8UMx`|grS)B<4Tq&IMz=b|b%oYI<QA}K zwePvih|5M&-G7pTVE)QV!ORAe2~h=MnjIkOtD);LlwvYbyMb(D7z?K(F6Rv2JyrxT zrUvMrq&^K@UFb?&up6WUx$LeyKSwj(W%N}kN7VyWEX*}=vGJSlhVyRRC|*GB&15|O z+YwNI#BL4bU<7L3^%+^{PzZ4*!_!=pmc5KSo~PUjygxJ_=qlPcMB7?uPa^`f;efR~ zIqXpIe^MQOiMdyyI$#R?2utq6oGQoK37K_j1(2&xH`}s<@V}-5uDrq!t{tKXJ$C^` z@tLS&I^ZoBj6xBtG*Nb)O}g^xqk?}{L&SB+ROq$#0FX|b_AMStUL$#kdBv>5;Pwkh z(ox*<$j3V$+hbj^eq%6O>#x*X&s(|c;r^d4HqE0ZTD;p8)^7_ByDL~S2d}l4Sa@TH zlR7c8ue=|tw2fS^egSe&S^3wVHXK;ii|Vv^R{q2Lu^Q4&$zMZ0f0oU>BLhIM20st> z7KK*o^csG2eP>%(fEXqd0M+yG>Wt+J$8PQ^o4cZ|jaNRJnYTZ0c_&SMAp`^nF1<Qg z{^)tmbx@R9y4ff1E5LP8^Z5rEelnj;Ob#g5*Hik|Gg#|6<{JgqH%j_8ZnHKj&A-%K z|5D%grGfRO#eDPe_06un%_pqQe)F$G*T0VSeSPk89SjDLhY(<)WA+D!CAee6SSa!) z`6g{p3?;2(W5)_}%3)QZXCrI$B%^uVB_AP2DZ-+L8#W~4n)1fK(kF-|3Qj)B#cvR! zCiKuur^`_AWo0m~3|D7nND~v7bOw+6a$iMPOI+UxDhDIz3feSD8W#kI#?_rt9TK1! zbKr`xid0(~e=XYs`@Tqn(&7N_7i1HhD$1YV5K$4YT~|f?vdaO2hlvTbB#EWH2754= zBBzt`fzf75y5e92#*QKdk;n<CrjTxh(~+hdrl5Q#^l})*SX_|ZEax%u?`Z!-*y~&e zl;FJ+mEcOZH?JIhYGW>sgK;sqIxECug6(r5XU=68Gh6{OFCJYEK_ru-3|D2+io?nu zl2}>InU5cyJ+bNa?zdaYBmqntusG43IB&{JxuyALM6NmB5^=Q+`O*-Cf+3(OfBhlZ zPO8K@9OTtohJ@-AhoI>gfb)HfBv&;4aMC<UpAX>sHv1|>!pZAZA<tv9V?+7UlGnU> zpp?~U9=pS?;6k}$hdudYL-|z`p*zd4x&ndo<#ZGH$`@GI*y3dL?#$^#Q-hOJuA}I^ zYHFx8Q`&1XPjIOe-cl8h2%Z)4DyVWZYl%gipUo?f6@=k$QyO(7E|$;1h4imzgO_~i z`ig*mr%|9x*l2Ji^eg<L2fzdvfRW2I&$q+_9^N->bTz~Wax%|d2xfB!Z?3w|Dyk_Y zaZ+mVKDX}8o39@0@J&AJ8J&i&FrH1SW2+486_)%wHmu#R1;p4($gGTwfI-paG}Bcc z5edMGWtF?z7D(Hn4%p4F<K9Q{`fJ{h3X-8C^-teS@;!XDyr!MdAMT@VMU$O*md6{B z%Z*p^mDV8F6UVr)e)z?u5SZUh3i9W9v&1T7&jIDf-)Hda)&fqvotMhPNMCa1+1PKX z$ta5sq~r=nos`e6#;<?mFc(Xm=4#oi`GH=}$@Vzu=Rv=>3kj>C-JLy|s8=2+E#&p? zvUVp2rSZT1bEb#CUyE`5YEI*&1RM)Iw!lu2tbLM2c8#wD(=G!-;>ZjttCKoVNwRJ~ z(YIw9Yov7Mg>x}G_$*+53we)(l8ad8PuhgR)w?)0zqf%L><O}mbsP$Yq&g!-B5#rx zSo2e5RtOY4m2ep_5f;qSMofR;&QYn%WTfeB6ONU|3s)}0=jsV_arbzv7}Jm(>1-9C z7P7ImaR@I33SU0<Pf?bi>t}M(-{tHVuj28xyEopgnD2Lwm{mfvL-D*v33w$Vz@a=p ze{*cs*3Sqy%_mgMSwzx%Y6L_#{@~i}tv`8!empqk9wxsl8;xCsSD0qYufRYbI-}zs zoBC)Jxj*}yWDSRkTr4F~Nyj2n_J35flY<}S`aH3%l&0w~97D3iiF$!RWv>i=p1KIS zGrf_rj3JuxP|A6*DpE`{Ur;5QqLV??fOE0U4B*g&W)L8TroG=7<Mbuq_6V}@RFJ6` zZj>NNkpWIqLK0~o)>B0P`h1jv>`KTwA<mR5o^jH=^WzC*&vW?Mi4RfUvgG8zI~OBl z@#)g#bpXH`G{u7G7(kqtDX|J;Ac(UfA7($=%vsR%i@_?9UiRVA<uQxLuX@ibLChhA z<+=n1#vuEb6#ZtJE<6<`Rfe5mBX8JrNf5>0TyPntx^Ee%Vh~pcu6~Hs)_e;wW~#w$ zk!Xlng?BmD%_b65Nhaa(#RJo8gShO$9$pGd8$lC<r-~zpKYG)p<_VxkaceY)qi=~` zkgke?2<Q(9EZYd8h6LwmLfgfAB1OUul}RqhT<=QU>W!~3#w%Wkv94%kBt>8k3l-*K zCzY8O1LY8gPMO~y7_-ptHnHM{(E6Bo{-WJ8Brx+)nv92Ns!Gc^5DlaTRTl>IE1WG4 zvdaU(cESUHkhI116e$U&*`!xDhA9rW#YjQq_he+-mgPUe*ijH`FqXZp1XppU9E-Qv z8=M3&xXS`@#X04qK^!Beybg!2xUmERAphg)+{2mt<Ntr}#5Th=Gc&S-)5y6gB(@nw z2&sfLbf6^UBbD00Fru6)p)pbDL?NWwken){K8ngINhc&9mDbPq`d#0DzW?2Sy|4Sa z-`9P=U-#?zd_5oa<;<>7Nd=>DK3vit>Na{>k|6L9=}J-ZxxGB?&CBifY>1T|#6IbX zD_JpV9L9DQL#!6T8@fg|TU~Z9gV;h-Y?9h3Mxu3U9Zty*TQ<RUIAtBDeG8s#Pe^I; zW^amxY)TM0m$}%m+e1P{&NF*$vnpK}VRWTebpJ{JC{h9i>Ud_9G1abyMrzD~cO#+p zcEaQDyNgjg_S&g#OnpRv0^)cxj6Iq{o$XfdsPLScbb4Cq0)V9kAU84u|G7+pmce~N z8-t*_j7d+s^2aB4u(%K@TF#WQ%uU%gg*|TZgg6Dn1I*{>b*RrE-qJ+YXe2nV!+!W3 zOAM0Ev@z=?5;%z!0FoAveWwwiDR~IqkSEbKbc5=yu0A6OnV(}>D{7`0{a_3^QfL|} z%rkbKX~VDVldu_@IYzG0l{V`;)@R8Pa}_`=fTsm+E~s>y0&AI-NpOHV3ar&=7>np| z&=n$p37~|JgKlNb34|8y&N7G&Fab7TZC9k2XNAM3gf6T7<QbWKri`Z+3(_$XZ7_?p zMzL*T1z_2~2w!=sp=h01RW_&{2M+~R@$o<vi#~nULw}DC#}+$c+hZUx01{Q%Iy2pn zWELwHlDd<mHifu^hY}^a2f;vrjVO_*?lm-h_dS9^W%DMwDS;i1P4YCRClD+D<tK_N z$85$4Bsr_LmpMo$OwKIGmQ)n5MEGRCQ3WH`03ZMq-3!bfjWs;GDMnRF<x|-zyh&Op zXLd<c7AedrW8m{uSKoJgl_&r-NRFv$)b6+@8PN1)JM58bhcU;!J5qh18<Ig}{4<QG z$}?-mwIoHeBv<J=*u`#~_L))<$-HJ`3XHWmEi<HZ0!9UR2C<6DW?KxEeg{Cm4cK&a z&)Ss~rxKoNMaS%QVuuA9dG2Mq2JS4_t1TMOF8cbq=ysH-srnh{5+m6~k^^GyfutUK z&RS$h>{v{;v81A$39ljI53u|8NDWk+I!ph3W8^Xl*#hPt@`hS?z0_W#0Bn3k4!9oQ zYSB7q`@c#qrwpO?XwN6ajsdU?R9ne#Y`ZbTLs*H{0>k|8FJ|3yz|zk&4;f_m)S-=L zA{}%l84vB6&CsQF*nPe(=?ChG46@l3M!=_r?IKlRzp7HC#0>m?Izx#lvhFme=3Zkb z2qPr}u+d0%?Ljs_1xodYwi<g5t#w^)H+1AjnKO0upo_Mu6_E@>BD7>&NcF|@)>pWU ze9TZ9t7LwTnTPs43N>?D#mAU1S?CxE4&u1Dd!8?UxaLET)4pEMuHLqfj8Oxi?<ymK zE8&1$*k-_@8FLtN9y!89-S{0h;<D({Fq;9V%?`c}d#<qPp!abXSkUz|-?abXw|KH0 zW)W-Wpli`cDgo*|XP{=#!E;Dn(@$j6%!D~u_M77!nll-&xd87-3kga#sc6?nXF~MZ zW;tKgQ!i=8US_gm+*iz=l(V<mfGuY{kV&<Sq!_07+INu!JFBfyZa!P1%kGD~rVc9W zZu9K;$_{L+)DAzbz*$d`D;z(4n?+b$KOlv&^l{II)<C6_To7;W05kBqq;=J$hc_p) ze@u8-bM>e&;1N~S^IEr8cq>J0xtGXZ1Ot#h!%gr|Rl8Y60t?TG*ZJG71!jP1XPk$= zZPYvHlA~V%F#jGeUJ(?#tOym`I<8_f6%atKy9mOUR7rH1`o`?v69}WZ4g`b&#F{fh zAW|<7i?`CIRDdEfpztGX{IrMusK|NN1E&jhON(cYrCd6XVsGkDJ<N8l2Qr_&@|c@* zF7T8DZe^mZnYAob*%61!M;i3%Tq@e3=uB7{$mlc6Fo*eN7NL?9?Nag8MMjX=$#j>6 z8)987n*=AvGtB+t4)5x)E7Sv$8MqY?ag--}IE~PYw3Z|@4c{Z+^}tYh?RWXB^_OLs z;foR)AB<wCuJGr<3<w@-#g~9May=`dPW=b<3$;2Ay+>>rYRUA9Dh66bv<AYU$ksyV z7)V_!V3A*y_>II<940$=k=MRra>g{!9cyPi+INYJrV!Rxw$ZI=qjeo7ES_hZ=^^^x zZ?p{^rf5$UUnumq4g7V=>PnLSI<}WQ=_}M`(qj<MHb-ZcS6(Ltno0>wYh%3oXbPpv zQc@uE=@mJRW=J^Z%zhi7<fAheg0g#dJoJcVOo!=gM%alv600_6-~Ey#ewf0=ejW7v zxW~o~?Bv;QYzdl~)Xv-c-Au!HH#<w`F4BS-4SD!JL#cnQOK``(=KOXwsC|-gtmkcp zBOMUS%toI(&$ZhaOsNawcD(=S+|iz(F6mflw{5j)(Pba^zqlU>wJb@Ha6dC!<D?wH zdcLN!qKS2Pw)-Pi<oCgY5IO7o*@ZT?Zr|mofUTuJ{C)@n8+divBBwoDb<u3yCS$i{ zD@nmb;Jt{Q@4mT++Fg#y44+^5yKvcMd2_T+$EJW)8B89%FH_PaXBUE`fk{4*DIfPP zF@U9Knj$-cnEAjt7s4HOVLOd>jD`kl^*5gS7319{_(<+Rp)+kTP@0)cySdhdd&KQ? zO2zvOP)EQ4-iPi3e^YQ?4QQ<ymSgiFOOZLcN1Y6HO0Z#kThFnrb18#J&A_ZKuvC1* zBfy&7|6>dm(Zjm)l-%L6AH>CroL0h}(l<y}Zfjmy!z{Qp>XU?e2KfDj?AYIO(gmq7 z*6pxwG5}C41AGrKbaeF*4_WMCEytxeFQ*u=$h?{3<d8u|N&C%DEtUk49oK>>wvy-q zRqi6&sSHDc$N@M(hC)_r!TR8J>=|%A7(k%UZ`O6G*C=C@u<9>=W}<{>ClP$s1Ip(z zW9gC#8G8&QH8b>aw3ar#V)B0!wX;x@85n5rO~SE=jaA<R7;8rLy<=z9cR^TIyjtGi zIma^FZ6D7_vhH5UPjqwC^{MID@HfR)b`WOJ8hvjy{jr&4aMdC6#|><c-KS%*&TO;Q z3XaHjZepz+OI|w`<AM9-f+hhRD^`<B%{Lonp+uR{!sI|Y4P_o}ii@W)P{<78f+D4M zx?6=HvS*)os|R(AP+^T8m6Y&W87225(cd29d;YvIkq!%3%P#dtZZZ;F>Lb3~$nWwR z_qe4ZIu^0XP39t5lzU!p*N+4dLRf<?k8}#Yu&1s_s%%+ZbrR8U7x*p7=V|Ym_RNpn zDzYU;VVxvP$QXm@;E*6)p|fMNvekNHd~$aI2&5yjF=+q%{M45b1@Fsqrx(s0R!s@U z1|7$D%NX?bWlT?gC0Kg>Tcplv_2Ke@Dw|qYc|g6R6U=|D3hiFoQS8DNfdTcVO`pJg z_5(+3_(tgr$Y-%N+RzS&1ompNsc57=ag(%4$ST|*Q81p!UXD9EIs&oMmtZI$uvBQ$ zlh9$Swo@q5j3}MkU7rS4%}H6de8UEua9;=Eptp~rh}9t%R4ZY|yuGz)*VJrqcIDIe z(-L#GZ!&e$FS+1DcUWh#C1|+zdq~h=SNp6hFNkj1lvtP38ThwW-Vc|h)Cu*Bg1F7@ zlQ#=nzWU(mrvH5eO4Z)rH11D?W(Rt?6)yL`(}x^=JoNjj=Vj`7m{Dh~iO1#Q%Wg(C zHt?7`GNn%_w~GYvUS4{}j_oba1E;6XWI%VMJ?ErX+Gj)8|JZyjC$sZ_^~0!oMf}1= zw{=LJNP`n`S)F0<i(Xl2R*%>xl}A)BG*?)%Gc<xrLagds+_PQ02A|taHveBj@0#R( z<3q%}sj{_1tnALkmZ%vFd=ouVEnAl4(ZtIb{@IPrF0w<PdB4XRfz1y3IpvgH9{ZTA zg!;X<R!%JL%1*`weSS=Z9nY#fOz(#)ANQKzmZM(^wp>>7vW9D9n`z&uFPfEe%b|Tc zZ#1Ng7ShhVj_Eyg_gw7&EjRx`VI<^yRx#ZEyi-%JXyfsp7P1+mA~mDE^w*OW$D(;t zF;sOQEL(q9*E;o0KZcK38kxctHcNjJC!SO+5^ER_GZe4wqJ$aSmvdfh-*r;+W#HaR z=UxUKO6_+R%-K~vN-L0N6sGw%zmU1m<0lOLR&yn34s>KY!<mj`6y!S$%!ux(6;6?p z=~N#>nGqIs<yc4Nz6+bDfUTE_HjX?oN1w;`uZ(B+N2VtF_~QYk^Fy4pLu#1^%l(?7 zyXZye0h+gsPW+Rygaq6S5Qn^dgEG2(@XPaaSp#q=k*#-e57D9!4%&G3pvn18C^rn{ z8+pgGKMj7e8=uW!X6zE!c~;#^TV9uu$1y%M)0(op>si?n5&U2IKgk(WD4t1LnG~v` z)-Qf8a@3@q%}*#44~ZO$;CcBR-*dx_Z%*laRW!Yq6n|~`l*k}ks0Hn%dPlM<rSqTH zAJE87Ov<>GruPeREn}7z8<sujgs3NZCn-tepH9S$mVEZB=uBJY&_a)CU)HKj@CBN6 z3!-TYsucB17yUprJT2@ZZz7jVh4nKt8`3ee5mal7&?A%Ux0!Y(bV7Z#w_IqkiU&yK zI_2sjSj#KJo%G|d%4nTI!9ZG$-D-H<Y6O8}#o9ySkHQkY8EP`sBjoK(%r7F}sl(`A zfa>^pkC!iVwyCNK5CLOg?O}$pQ|<Od5TLAvRUfp2l4#ZLrgl79wx~o(!3)S+LZ!Jl zatzfJ=+PKslZPVrB+w{c5lsLsMKO04QF0L89G{2GCXeaByZJD2AX{G#li_Nx+w=7} zI6H*Fr6EGY46H7Qybe=kO>2O7EsZEw^`yNu+#0A2|1Q^yOx%ii3<cK|Slv2y^jK)z z_Lo?mT{!Qc8&!bMF5d*i-ZFe!3}5!4Itk1$6sAVkPw_tblAmYP`2)l&SR3TZMIWB> zc<Em+n?^sFFB#Ix0m0&B7zy@Vb-;Vmov%D$vr<Z*9Y@0m3@_l9Qve6Cvke)o)pXma zJ&B6c5rWGW8Tyw9{YKz2jC~bbH*2TNn9Lhg$?jvOgU7>s7<L#Y*-+269}c@B&0D9L zri|ap!P4W;m?tXc4L|!D0Qj;qHC`A1y|IgGWRuD(!vF`o5IUeSw*r~<8I6mVJ--g+ zI5vxj`>Xi5;IRxRPh%rtG@Rlc&H=~^<nMc?TnGQn`Jr8L66{gLJfB#7)nqmB-PM5s zbF+Hp_10Ivq*ZJT^ItD2@#Y_h(6P!03b?GNS?#f{#w(A~l45uHBA5xR_nAP5C{S(H z`F8)Ed8*lPvYv&BoJ|G_c(!}+U}`ErkFPm5=B;m$q{2pSz#O>A4%s->ZBEZiz1*Lo zOw0x7+shI5Uj-zs`59;sFP=I2q+_Q>bIP{4>Mbdw5fF`?N(@*gR!Celc-+sSE&ByM zm*5o*m8lY!y>05dx|qtx%(5Uu_Bdy7o?(4|mx(V}n4zl{siAGc_B74O#~V}vfl<sL zhwckh1D)?s1_JG;a_G8C;@^H85EGQ+t@xI|@41*pVR-_DdAw^Mw|zVQY9#c(o*vTQ z3E3vKywnUfH&6@IzD?c6SU{h=kN%jx*C<@&!YD(3VXiyvwRYKdG($f!(nF2TQu-Cz z@$f;95zv^Skr)Y8a%+B!b^?!`BL|RiGgho2X>RF_j=GS74126qu2RX2B%IALGO~dt zCoUP3?&`Ls^YStz^Z>H@B@d^(Trs(}q0P1VkeARlmsP?hRrZF(K1p|SFURF6%+6J; z(4ulobWQ7!uVRks=WU%^!W97ITdcm*Z-IB(&yKzPF8Mi{7YZW#C<)TtL1U@bbxCTz zN&sdxCx>SFl{Q)hL1)R*-^sI6H4wp@3(7DDmZx|cMC<7z2QbBHIdYP@^bNbF5-+qE zYa5@%coO{}!T<7=e>1ur=t4pHOvF7PR(30pb(Xk+4T(zYGNIeNI@-flP50cqSM&DS zIvb@fBg}2jpsXwU|6+`vm&th*S$>5{|4{X95G^`ja|_GC-r0>sp6`rvmj6VY0{E{( zjd+8Qd}t#jS`lLmqP@-Nv#0#i*t3Z{2TtD@f;f48xx*wh?zAy{jfNtH{{SUaMUJLI zw!op3m%b4AmJYOX*j2{D!2&;#8i2F2sM8CxyC90B;#$O}dS7D?)f=FQ9_>et3jj=I zi{Z8y4%#bE<x{=Et=C>22K2nb{HbUjm7<4qUKs}NH$joa>Qs-+GE8`T(`KumY1OIO z`aQD*3cr1QvBQ<TQ+?mz@022Zo?;?kc8?pUPkC$#4<Y3ju=G=Cq*fi1Z|*IYd2>fh z{-_Op$=W3%S!p#DBlO;up4m~QRG+!->+RIjrFuWAcl?>%yO5sdJ57EU$<#f}%aIGk z<rG`Sala~gqJT3tc&PU&8-+f2u0EPdTAjVgvBDsMQ-;$p1*12Yg(`$_Rr>dPBpYM- z@2Swz=jp$$Z<$cZP6ioj<2fFpL3NABJs{x`gb6+GsF<N&1C9%bc&^C%<Fn`571gha z9>TBG5sUDVfbjR{4RyWRba<ygVBYvA0&>*9T)PkixhU0P?WHO)UJ1i{!rM%U<(gJ! zcLQ9oi)Yj7fjsTqJgW+PHGjAC#P|AVDqnDLD&>1(&6v}-G1jeu>);FYaE-uc@Uv({ ze$K@7_#UVbjSknFVl)yVAavMI1xR~O?`#&hto6yEUxK5$hYjEIKsSjKSn`CHj}Mu9 z*ibfZF(@}ZKMtZ#Af0LrzXH2!jVZCuewOTM->&eYEKB!8saUUxAbL4Y)JEzlGjHrS zoD#^0;hVAHq<uhI2(@#p+uKta{C3>FN|jps6!>^EJCN#TL`7PJlN@IqW+K1&Q<Z+T zEw?<HAqs_J9u*oU#L(NI(Uz3HaH@q&O@&nv*xwW~_q*tHpQM*OLHUbUrH+k<PF&ua zh^8hXf#g{--?V@~*Lt0$_Eo4;kfYl>p!;l~DwI+KE`wsIx^HE7r@E9@xVoxT-Q)W< z=1g3tgDb?3ko30FpmNNWz39YSWDy0W(^eix<*76JOe-i9Sh>;+h-5lQwOpV!JR^@% zu&{E(zD{yr7!t&dSNIw}m|-biGDK?NHDj{>jAZJ93DvLRIIBS;bDMi;VX1E#4qdM2 zaENL|HdsFUFl2(1>kg!Tpyov3@~?gkn9#d<gEGy<|CQ@~K1l6+s=4!^p|3x=i_0VY zrQ9aAsq`FLHE$3G{muW)GyisjJSXT6<=3c{lK^P~z`u)E2huiEGF5<m7R`BaeRDVZ zkl{po14@OUExwj$%({BBPWdio5gu8UBZSkb&i#JtHsr6{cqaxfr6`r5HHE|g3icNl z!=h-#ekSKg_b1ED)5}S2w<$ah5L0k7>%eBir7+l6q0$5&7b;i{i?(3NG<HnrImJ-% z3$)u(ghmbJxW9sum>0bYW;!Fl;cF>uvavc?6Aw7HuXBt*0ceKfqvuI#;iP0na0yq< zOp2WvL*UA+5{+nFghQ?>buMfR9gHvwBg9M5$365NpwyT#N8Y3F*RXWQ-j522AGmE+ zLwOZ7@O=S0p)t#F*%09J0RgisaJhDy+~i00=W3jn>%FBA)yA!0R7l$b2?=7`))&Vg zcKbAjCWmW(1uJ_p*Z6-~lSpX>$bd+0_Wij88%~hqN;=E1X;RH4?kGLHcQMaWqs<bu zuCMT*)qb88rFP6BL57W|Xz4LkzQ%7&=(m1nrZb5eN3+IjChTG5Dvr;6zTvifA99f? z>M1>C8@I7=dsLu|1zJb7RSh`?e}|G-Y1n6Z1}$3~NF6d_K@<tJEJNqZ8q_6$U9meT zZ=5<~xmBla5lvlF26brQ(j2f3wqw*xDc+msj^HkmN+JV3s#4Py5fCWOGMoePq(nvq z7zR)p$x=L@fQ}7t8KV+ESfCg!#EG6WIEQ>XrQH0CE?3v0oS<_HMpEDL$ZMhG^n#jD z=jK^!E_nv*<E=ActqIm?7$9>Nz168cXTfW}3hjUVe?qVAY74d5lW($}#Us{hK&NX= zm2O)FQer%5G}lD~tYE#)<jp`T-WZIz4&Lg%%|Vl;hpgp5Wr+&bkL|GX01Q=oX5E<< z{`P-_+cbK%S(a<!ZgBRIjWpY~AO7(h#i|$j%ahKr{!90`;~lu}T%ZPP&G7RC9RDm? zScc8qNfDA-YB`L}v=tif%ymu56cbtW0bGxzww$YYfNE}BBo*XZU7RPI$~ovVqLP4k zzmqs_YxChB8~19PY#|#Y(*f|YkR7qg7Yu)a)Qu;ULdJLD+DK={Ria-i!!=EonSMH8 zzsV~kFY?9E31Z=byFdT(c2;3@G%dG0V%?7j&9*hQ3+{H@Y2K=x_^|EXb&pX)bM7%^ zTA9>+lac!@!CE%gIE`a=mf`!|8}_TLg4@C)U==$og$nbW`13KgQ5tO|C#F4*t(-~e zI{(684x}31U`-xVU(5;8$ULaQ!dp~ZfyYp3N27Q22cN}+?6z9?d}v`YI}R~EjEsO} z1;o5+uzqvSoA>@7_V>otrA8W|k>bRU)fpC$0%P4ltF3R4gshP$C5}q<n!*S^a+H!E zxsSX)w_I-s=vjT;ZlYsmYbXxn{X5!7R?H(R`cQ}Qy_7amEe6m_kJz&QA4<3;>W76v znd+z(HT-D6{tcAdQe<JkHrCN?hZ~MswyhcF9tH8rlwQvpWNz4c_TQqe>C|^VCf-7w z@V>}OEyH0sDscmlC*y27ePRoBje=W_OaX%x(gaJ>t<N@4W~6G2Kr(Vnxn9e#>wHt+ z5(%uKw71quy-lZtYhVwk@0;d5r}JSGyELewZ-#WfWYLDyf&Nvj^u>bB$JWWED$$L{ z4)A2F1QI>IoM6y+=ojUf;bx;Qfu<=1jihK6QO*Xp)flxw+nNsD7GPd8kY@nY5`Z^r zF#XIV292XT7|5<MHMjA@?~F)Xfx2uAUS6h3py=o}kt9r<o>X0riLYUvKU+@f6cD_| z(a3RJ9y5OA3XwC8S(c&cAg$;b-u7jXP6$O~ABad_sM^EW@3ndYzn1P$C+5g9blRc* za`KK_x;M3eRgw8d+nU)zs>18D)V-);a}jMROemLE>?o=XCRTUJv01YJ(k9iZ+Yq*% z<TNAmL54n2Udba?rTj9u&eXrMz3MEnI^Q8?Vs)edq_HxlMrLY?rM!Ro>s0Ar%|W4d z^b*`6sQMxCy8F(rMCzvY*VmsBZ#*X&ex=}Ex7>)Mm}kjvj1--H@%rYspmp<iC_$>X ze!sr;mskr4u2t5FO-~3$=+tQh*J%~k>5SCvs&+1&s536Uy>{fbrOuso_e{qqJ@k<~ z&N}rj!S(LJb@NQKw(^@ikKl$K#SOtD4ZC$3BZ3?E7dIXpX*{fR_ek*Fqs4bmjNIkv zG^GSLr587y9%(wO)0`iyXueR~Ts+cTs?%~gxaDeb%e9e~TRQjd1mC+`eDB`Ky@xuj z?ZK^&i<vT}iZ35J7<~WV;`<}P_jmJA4C$rr;s>8b9(>bzm`)|ZzwF_G_|W(b4<R8k z<r107ia}A$LzT-0_cxM6QjJ*o7gR`_aY@^^;#<&gr94LahLZM;t?gF}I0Mu7E{6RB z1%p}AwyhzLb~xU%)CD>k4MUP~Sq&7t<Go4dNo62lXUXFeqmR#yJPIo@6poVGE_XI> zyz-T$da9(mc(gliV^<iD+H*RjqahfBY*$D^dheF>LUgn<L4BtMCuS&p@>URr+OwPb zq<W>xyIilQm5}gUcT6!V-d(9XHkx)F^wbi(dO`GGtqMZUV}&|nqy6gl3A#8+1!xuE zKHzLl>uT-eSs2H*Py!&a4?#~)&XdZdea~+8y6hTq-(+aOyG+R(tFBOeqQmOiL4ER9 z@C4S@i4hX%tg_H5N{nFps<3b->=X!)s)U=t!Xd2=lzw0juB}UBR{3+|!;2QQLZ<%g z&=DVW4CLrAXsl0#CDoY#bJmQu?;7>qMfQC|<{YM?_r8FYzt}eMBJAWVj|J+1HOJ$2 zkrPgCPddq?Ca>u;q7FY=uz>%h{tEK}0nma?&c(a(HFRGKSg(zRua8i5JfVO?*_)rX zBX|FhT6U2Y4|a_@>rFM3jDlpND&RLdtT*ZtZ_-O%V5l$Oqo^}~SSoFALBPAcuJ3e& z@1DJUN1={@#x8oX2wx}0G^lTj-N!Mk^mPs6yb0d84t3&48>vx_FOy%i4%MeiCPA`E zm$#oDo_gf|VCwJq6pZ>_HT?aq`|o$1dZoe`P-jg)pCKPmOh*`gfQ5h1*r~7h^Fe#q z;As>!Q;%}yZ9<-ceBQ~q_^q)-;`72`Qa$|BJ-yGyr3=a-pSNy$qe1=h=H!=G4=C}n zYm<6`JXPV>qxb*iUHYa18QP_{4YHfEB!h<UUQ!7K@7cZd!-$f{2Pc;PcdT@;PB`fJ z?qw;1Mj$DG^0(JX@5t1L3&rn#e)+xdY}boz557mV{yJ(>>Ci%E|9xp&{x$6VR}lGI zI{n8tp(&YqO&n^dR!3RyZRDc`poUDdNI%<ye)5_(5lVOe{qNnq%kQSHlE?}~E3Axb zE`V#8hHz@R`Rmd8ZXy0?;A-lSDIQheo971H#b@HGpWv>=>Tj(H>0T(keD*Qc=I8KX zgG*;&?iH;W8th))C8z11)eHTP-P!r3dzb1?4_@`X?0Lzvq2|RZ3aFe-bD2!N#%<4B zv-!eHZFRzhQe(IhuK`WRd(3>E)JxM;XRS%QQ`fnH;2h7MQTRo0DrZU}b@iWp-JETW zc{&uhb<fMQPu<cYKi}Ewo9$9fd?7Bd*qZJ0ms+Cr<ifRxPuCZ8KA;Ne31Rb5I&L>- zonr2ZGS+&(2;H!!tyZ3LoG9Ba*tPc53-1T5KUZnI*LFX9aR2v(KXR}#@6?J+Q(52a z`h0C$8bDjZZ6erB6LfN;=ocC1wk2r${a3<&uC5sRvC~zGpa;1QnXLNcHUw0pb5=mB z@u!*%or4E8AFY28t@&d8zlSv68)=%br>Z8;IQUbyIh~&ImAR|;b2*!~{B-HjP)n|0 z61wU;y3PcX1GX4hLVX7yJo{zAS^q8$rVSu!lEFG-3|qxn$|h8`pUOWa`2k1Y{m}?z zPQJSOL6W@m@k1$J$#kYngg-DN6;15OIR!o!n8QPWXk%M@hZuYTiBje3hD=->NOAr$ zK5T?<Gtlr}zl{zu)x1Q`)6?`8xMe!m1?HUgmj~u##SaALWc%?D!YJ26?7dmY_5)=I zXLeXhxd1#A_slaaa#6r|7R@a~_O2A5u<h9XR6CC+6QC>D92V{p;thf!5qGZr*1Gue z;J5qB)7QQ|SQ)%Z1F{s8G$4m+U=kDrE{kH7Y_A`4R>eaPY__zUW>=S8@(ikhQ5a{z zn%;MEM6er!JlKt!h;8R?u9CGc+yVfVbG7YYh3|F$#aasE2~2xnobwAF4?Lr>FZwrV z?)szx8Gqg8Zx!=0nYGbex)t^eaHJS-{v7{)+e2=;`O@&73x}3oMP9v;82DGoF;)&S zOp9fz=nu`gNrKJ?IQ#Joz@3BxeU!(rA4gnWdC@@_9%P9lSjaT(O$=C_Q(wV7X@6T% zKn&b5q`diPf*Kz@bw-rHB=tWB4g9Wx`oPM+Tix(n86qE7buM1=yR@46w)9P=Y`HSm zp>=p=zU%7H`mi+0zW!09@l5PnHPeQm2nG=9oAx(4&~6;)`tIqvmImdxZqu7z_G|?6 z4+fa=?xA+P4~W9H|5<)l8p|yDJJt7;q@c((q4G2eP)h|B7P1PNM%e{qwX!Z({rdh5 zfY*2=ae%Kw2ZKqG*Q_u2W~h}Uz{ACp#QL%^cXA!p)vHVW2LBOB$j|qRJ#_TTub_p* zu6Dg&bLk9JIXd0${QECgkNwRpX1$C<c<}7zGkmjF(IS*Q(F<?#QHZRas)VhKm0KtG z>j6z4HUU#U<g50|PDKGZ2MsD<nz@ghlWLvL)qgwbn?ZVC<bPg@S!<#oNZkly$W(TO zGKtCbTpSmkt&r;>nVmmO%T=D+c7lqB&oEwFE0rXX4d;eQKxkRFXhj&MX)ok?*5?A* zX8Zu;0DJ8=SKD(5s*Vl@igJsi-Myi|7B0w8`%Y#J(+u1^GZ2DvGo}+l(?Rd!NtgSs z7GTdPja5MA(fZncmG?4ZCrP`jy2$AA>`XS9^jFMWvo-$lIq#?IlMPOjeqO-&p)-h7 zfpWL0e@kkUul@l7!hYY*91Wh;LCRJA-Ivfpcu8M`LCZ47!i@#bCIfl;ls0#+HFkTH zf$G}k%1iMkeR)NT6*TW^&mG4H+0cnffv*<pDd_oyUv0-gL0w80E^6#|+d`SGiXsbh zbN0Z06nhT13QSqxeZ%hwtV3!nAIcE&pF8A$dRNy_KAMohBpU^O;Bj7?*uVaa*>G}* z^EWV0basqlh<U+L7`v4}&7?Edn8@4R3s(0AOa?j$2q&jNOk~y`G%0tM^>!e$bA4k0 zL$gxdf8wlmBpbYaO}B-p$XgUyekGe*9qGRL^<dFbeU<Hq9Jc_M;6-q!`x8Mg=i%o3 zaqME*vncSrvj|?m9vyI9G}H8_dRvY7WbTQ9jr(!W>iVAVV}E=MG0QB;{p<oJ%7vUk ziYL8lN|)rv-tFvPSui!OpNd21I|*0$!QlI*h)3?I;@7`k|My_|$*oiWZ7h9Z3e_Ef z*YcIU#z3F+8y{_aVgU_L%ha79y{i(#)M~0GUt2df2gUGi6|Fu0;pR5Ok!3M@`=Dx6 zVIcAKD!o+Ugv~hTrFC-h+%?bj^SS+*P%Tm}U~#1_{cMx9VfU)WvAlVTs`Imp<8wQ2 z=fu0)f!1>3_>6P1ABMPc8KViRW|Z#>OAIHRBA(JtZ=VP&*PYboRw36q*_h<Q?~-fS zRn`7^r_b_m;RYX9Eg#Vg_@1(@CaO2ZfWk2^aVV)<>{DN^^<>5kQrErbn9aP;R-|At zq8eCsQ!`}^@n%v|8h*v=wL3nvPO0p3u72dc;;ZSMYyhK+|HqOGSNiGRs)2q;Hw zyb7&5W6f86-JdzyC_)mofg2aRQ_f~}4fLOB<kesG{&E0<9Q?cb8HtvEi8=9m<n7Iy zECa=+*5{F6%AqO_9@_}I_5d<ul9Ijg335w)&(<4kzen!ToO51H=Pz2{<e0k;9?Txq zj(nnr2Nzjot~1(${A&SUbKQGBGk9f!@T@7Qc8!=f0?6~P{O6oGP-sUM>CUB<wDuA& z-{HNa-QcZcJg}X}s9D}P@uaUocI?Zig3-&W<@A2FQ;t}%d-BBUK<(g#r;AsDbw)P6 zulB*SV#Y5`kNur{-0YNxioc@UymrUUt_{(LKTHHqlbSgX_0{+#Ydda1v^?Z%g+B^b zz$z+LuR!47ghu^0ANlI7W6E2S2EuiY^sd<PUX*Ib#~D?qkq}JQ&G{cH>6_Xkw2r*m zn5<Yj-!Y*tszPSlwxLcHDi*7@Y;t}IKPu5#G5!$<BZl_NI!m~TD$PNzre(k0UUs^Z zs{UXueap%OM1AD7(%l8Q`BzcErlhOd#;l_8m)$$w_FhmvGQIi!F`J_j!>j?ZcFpa~ z)&0M0dSgrXsEYr8rTvpy$w_zI46O5PP=m|M&mJoNd&WBz7HszHE`HQknZbo7_b1O` zP9pulMCNWV^H{hcc8_7A`HsVuM-N;7i+wSN;rMC>7)1o+o`U{+#BV@FcMcO~g*{%0 znT*xToC8}CQZ~Ni(F0S~C#BGrd0`lS6wexYYzGF%2$`4i5dwr;tmu6z8Xbt<wSK#z zd<l1akKiHr$l{{L@>~d(8?9dlwO$6lZ9u=B!yMtCB4LiI)SUwQPi>hOX!=3)1qkdv zdTx9Tb8$*yQhHKhI`Kaqu$_B~!&Pofa(;v#;sSOQ5PVpVJ&fH92fS&5Exan6UsuSR zqX*tS#%^L9NOTb*>;8dZz)i;3=W{9*%PIjCM_^%TNI}|xW%d7Ls9N~x=^X4&vS-Xy zbT%9at;M$aW<K;yj}t^~s!Z<)%<4?aT2)hTybr216yHw8`;8HdHi(FnlUYe8eF{%r zZajII=}ZVrb<Ty820&lQJgfqpU9kbXXAV=k4m->B)}+8e7cy_UAEm}A)SUy-jybD0 zg7M73lIAdNIoQ&x7&nO4EMH>}KMVCLN9|{h3GAQ0>;IYTOp2C*&PX8(bz-vtvA3Q2 zCv+ZF8$p^^qMGF8yujvj5;eo1vbj7f?R=Yz0B6Ag=QwpLn#Wi!K>v^_k(eO04Qg|N zXeBa2W{m#G=fDe$s^CCPA^N%<)^`qbhK&8qz!2qd6Tef$0g#N0?IdSq8fdlhHEdwH zkr&S&Xg=SWa;T?c>s>M0F%ti$Y`<4S?h6i1&jfp^W2-Ycqi6<irSA|=#^(Dfi!T<6 zcb)*q5MJiR!Xy#;HeUnf3llR`O8LrKd=2RZY>pMBLP1vjS*F&_Rj$2^VRAi)^969s zxtwLp7Ou)SGI}-#xqc3#>Z@idg_1D9KD5faTJ;ION-$SUoae^ZWf7&t(XUFL{w(Rg zXgS=;_7Aw^pOC3(FFqKyG20K8^fAe~?gCF`;6m@>1&_MCq7Ol-&1lNPVdXMx;46Et z*aD<nec|!CHDjtZ%|~V*XCT7V6NU&#hA$BV)YW3&0XF6NP?3_>slDI<Z7J44imNep zfa8xu;R9b1uFqY9g=MeF$euEBnD)TUbf26x!G8G|^z9;cg3NJT2fovc9pZy8@h*d8 z4W*02rMEU<=Kx6g^NVZakd~e6*yzmIxKhRB4yo7c3ZGvU$K#|sa;1Ca>cvZ#w;!bd zP`;KTL0Xqz+FI@$SN?_&_o*7awr8uk=gxCh1!t^*h_b-7x#}r=pdAZr$q6Ua7yalu zWhzkfjb$hef+&j`ANVlaJ3uUtZ*WAeo>+sq3RLDfR2KwQhf^xIGb{J{sUH9sN&x)E z<;sv6Y-kahn`s+flP7qEPkCj(zX%=G;&reFJIRN|1YuxSFt$5x6b(cE!obF0FJxFM z?Wn>8J5r|faCSpsf0=Wx%6f8D&4Ti0u2wS~2#%;;ZLo~Kz7hAG=eS>5z0X=*#zk=) zs(;6#%4G0lUqo}is<Ni$FNOjosfB;ZR2e~wk4n|w%&C--;ivnN&-!=zgVY;y5NUJD zrDW85MrpkD5l!p!ZyoAz!FAZo>TQ&p_~4{XS1`Mq>c~2`sli!<&6>oGw|%Z^6LXQY zk=qu(Z+9w__j7rd=)reh?!-KU-{C8RNp%Mue&1o})NB2x68+!d2wFW~OTD}T%o(Zo z`CY$xN$qY>y`%nK-{ORhIn2S>hLDkl(1Ss@$ASZT*R3M1cNfQ9n8RF)ZHyjijOpF{ zXHJ!8cQ;}4UBZvXm*<sWMBSv3yQhBN<?A#Z0I3-pskWOoT^ReQZgN4HroNsxQt^$f zdVdU+<m%Yv3lA=XI+sC)HuD~zxIbKc|4Fs_nOI19J@_P}_P{z-Z*unQ6AxyJ9~>vB zGG+;SGL?h*sKFY{^Qs4{)ZFE@$qEL%Gl~qF<3vqD3jH7c43;S+%YLMy9@WYo#WsPN z>Zn$kN&~hu!!~G1;|p5;NXEMh9#<tM-~28;U>625_q`8KZljg7(OkX25ng7ws?g(C zRhBer=P>8e(0)76_BF;IuV763|1s6=U^#ZQbhIfBf7kdETX|^`G;s}UdmXdE3~i4B zHb#?JbC`H`M^NjdkPt_=&uymjp^h)kn9X-+VjlgqdbBNs^d%S#9plCB(tRB7`1t3- zqd)T+GfiGzBiMZ*=*a7x$*k4$29yxem6qJK5dK&bw4vwwVW)f8lPG|<f;s3#ay)TC zT+&_C+Px(0Iy;D6M8`dmJzige=C>MO2ti|eyRVP--1O3ucv+cSt6`KM?hWa&^Xm2; zP=5{}@62_b$n61Ydw91(`Z|;QVllm0$!9U?mwd8%{jc|WN>%NAF%X&ZuOh8BufDF) zCvR7t?2z_3hk<Tt0`HT0eWQB@y>K7+yGZkjZSw1wQPk7LkY`JyT|ecHM@O-{JGN$~ zKiz-*DbcTcZJb?p+}7i9MK#IKP;dHG&7YcEtK6(SS5fk`*|DE@VqF7lz9w;8En}*m zyk_tXYQTIR+B*e)wbF-Q^Mv4y3!5Rhm1)W6FxKS3^(UW~cnz8f)WUn$!N&N&m&f2g z!5#v2%>ax_hStw93m|8o-Jc;}^T!TPu+{zc3mjaoW4F0C?!_pfjITAsO(4n-`|WzU z??&6!C)ld~=Vy4iz!~5%HTQ+fjdrfh!}aJ}v0<u-{YnwQW#Rxtdi<qu)9~^qf2)7a z|7C2oP3<=wS8ttzAGEqY!yP;$fDGph$0%~(x5uti1*$AV8@ND)^{8k*)$_!XYQi|O za1hexF?{pS>m%1y4vhl0$mlyV81f6Sg^cVIqB?Dn|M2Ej#SB;^87VN=syXTHVWm?0 zX7uTeN0+T0a^_I*F!hN!U+}!@E~|&v6D_-UVb;tcGnPlEcD-FLR>}H_v6@qEBCCGz zRc)<>J6b)|3`4yALcpOPOy7UEa^wC_89(Blq0G$k-5Ua~-~7*|F{E1SIrJE5Txls> ztp<%OoZ~5d?PGpu9V0#%Z`cS`dwcG8yt;S?Izu*YbZX+pX7xnvF|`uQt}B?GnG-fn zljWOLNT(uyFQ7<rF#YYM(}U(s$&-pr?Up~tp5Ip{Ig+W<#b8z_2A(r`P>woO3-O7C z58u}k+4gxpcpoBZB7PaWGlNf$HPNJi8QEGRqrCSA9!$slj`9x0Z0yDdrE1*OdWPwp zPLh1^J*{>)6a#sMj~ybM<9<-N@geQhjMYKalcDH_C-_CiyB5w&(3zQn(2qLB4X2%U zL}S#H1_j3{eR=yomOIV9K7cx{29%EBwe&KM)NKI(P=(&7+g~fbHO?qE<By-#fLQe$ zr|@_nS=AlA&uw2zv}<R)SAz)1eRtcmTB|W1)_?BT`=W0Dh@`harcUk5R<tVP<#CJy z5d=D0t9ps@Wh(UR(I&OVrEzeqV*1d4TFV&f@eQqh;3JGFn?ChzIW)O6=WWEjzU2uR zq~sgec}{**<zr|)Z0<8xUyTs;0Qz?h{VajE$X7`wWAMCr!aJqJF=WLh%OyS>;~S50 zUNHF9ya1ri`@)aq6!z^}u=u-RMfz^z{GGo0`+DAYyVCCt55GIU`|kAjJA<^ya$aQb zUUcIva!MCHA1->mTlD$6=u7(H@BAZR_mAzoAAzMmf*$?|dG{mq?+@<b>OWkRWUe=i z$6La@Q+rsO9Q|xbo|8vNS3P_MSV&n)RR1!AR<i#&4)O&@_RkNVSI=I=)W`mprvByN z{Tc241-yH_9R<b~sLxsbEKuzJS)l&;J5&Aq!=L%;?+;Pb&z=35?))p~(}Am@=$hEL zC6PwR4-NgVgrHbW1)v`L1P^jB+ik9OlXr?)@$UDQVs&EHYk002G315{NNu;p6wYc4 zT&G6VJvv$@FL|T)x=b#+i^6!lIWA0tg~8bKzp^pE{VA%vSO_uJ1ndj4;VR4c{~n6_ zU6}VfuI{%wLXJUY{q<ENqW*jE?k|_327nl4GW)+M1;o~uTa%)iPZJURCfK_&f!lP) zNaVz|v_0hW?F9cRPM)E+1osg(aX(EL*T~S`I_*_N`1yrTV-$KZHI)xkNBI)fO3mV7 zuCH^_w+PDeoHiw~6yvz6Z8t(66>a;p{pQ~?rrA(GreoKx3*1ySUEZvwa^09*gwzi2 z*uno8-U*PGRjU0ck5lwCg)1AkR<h13?@|+8v^TLgfUGSndX;a|UnIg=;@h8n@xS8p z-g6CS+hWYy@`t9V6S3FZZr{%)xl2NR#!o-F<eaXz>sP|;3st4<cEj9pLAs9VLEX0> z8oP8hp2~V~jJrRj6qd$oRD2sT-?tR0wzgn5kMhF#Al{$GU-LP#Bj0VdiUOq8^j|gi zTYA3b{*~!AZ}OXo_S%+rO30^W<4UF$E*N)%I=03ZwzaF~jy-j*t%_P5&PEY=;Vapz zqusBZsG1i|?m^v-CihA5(ZG@-P90bdVMmd~f%zV|)HcGZ_8)iKmzL9VK+x6LWC|T) z89gpJ=pt}f`QRd88Qk&S@J_VO$Nodb9iNRSQgX}Enu2K+?09Gb*}JFsb8GKlaCPN{ zuk<dD)G{_g4++IGH1k=0XaG_pJ-s=#Rixr&t!;SDXdQ^L)f*T#YuL79_y6E=_g6M- zzqtTqxH*A%!}F!i5Lkk5)^Xg-W1bLK)ia&xXwz-@DPhR@;%7n?rhuqT%k;Td5o;P8 zwaIqd?FWW;LykOi-LUJQfB&fL*cG+7l?r|k%f_Dg_GrUy#Yw{`whG7q+eirqS>bmA z1=$&;kxtcn*R&RH!_oaOYr_5WCzuQ}F?{whOn~&|?YG#X4E|y6_i8Uaq^{GodGCeY zY4-ar?r(hlX4CkinH}QD<^woB;>Un5<zUUeGy#&pZfqehMf(-a?7UKRl8t>#IGR(G zuJij>IRQAm+0<~RFjTuMw`lR>K0++{#DOV<H0UugEN47Ta?z*JLpN&nm?<f$#D1YH zA<JIbgqPfuvH#jXg;DzsUhDTTA|@|-UM0k_Uq3F|XLPl?G+qKyA|4r*c<dbyykh^) ziyiy#|MTzev%UM;Vq-WT1mRt?DPr)`uGXIZVh>$qYIwWC;>yU8po$G*t^^*f@H5Wh zfs*)nY1<KDWg6lPlR}G_T1FW_9~(c-4X>#@_JjAYF)OF0MNwp60&U?h=Fdej$VRML z_8$Ya9%YkQt4)AanbMIQW&cqne%_M~LIeO}D{Dj<eQzug@T2EbrnPpJ1Y+e1(4 z6tdE;cfyX(K;<Yep;MF~-M|4~RyKW+3%OX%SG`?^{GDx}_bLAo^GaOW__2OOyVYv5 z^W|NQ6ti{}B%urNvP#`wpQ<<eTy<TH6<U)#K>iQt06V2YRmwXwx8(qAvs&2h0yVR> z`f8u2?A#q*4xBlfb@6kf%e|CgAF_Q{CNfc3Q6G*l-${=Wvca)gm4-D@Se*<tTsi85 zj7;74`*AkeABf0+;_c@$u;p=BZ=Tr|<hK+4UP~ZXAX;Fw9W7R3<teA?%E+TuAXlgU z&LXo~0qxjhZ5!KMcyxI>MZP*g%*ZuZmErgKij5V_RIyl2ewdWa!iMFA)58j}QqVQl zZ8dSg1W8c^afOo8WwsSW^v*}lOV&!6I5K+cRuxAaOTgo#oP#g{9{uSmvoe;eYXnNi zCJWP!b#x@?vDWArI{0O7A1c=}&(+(%r!eWzpw13K=LT5YM!lbE9NFm%CzKV&iJrF( zb3)z2z#hGKj7f#rDQ~!4oukmu{Z5YOW&!N5Jb#<_1-^paUN^0C&`&$i5T>$Qq&+&= zA;Mo1!Jr-QHZS6pOn|e-1-72?x4ls^V@y*Tr_3I``g=x|H@U+MZu1j!Dm18-a6M0! zPinxbvtSXST7b_xYPv`BCk?#yOfCMTny6IobeF0kE+eB=VDKkaM7RhRhL%l9qcUl3 zt{Z~}&%dm{y6v>v(HCo-ksZp3DZwhI)|=()sZ_43fb(!6EqaBf9#@d|X-Y;m8Jm3f z;PpZ5BmzS(5BI{@{iLVA-(aS|Oy58e*r8gGla(V2Cuc=>1;FC@C%ev@5coH|l07uO zr9B4!vnHdew$A^G;<Kf}K~1r7npN()5+OC6;9&~yDgeaa$;oRthU?{oJiUrq$W9m^ z4>_I8`+7$k_t6byberFiu?I6w0c?F1c5c%qG#I<ZWo~N?KV5VFtWwk$(z|(FTp5?D zsuw7aIgyt%wv8M!e1lPRt~IA`aTAEk#E=1u61fbp9|oONF0ahVQKcf9SR{O18j;<h zw2aGG8*a7F=IqWMfFI*uaUze2f<92qc*J86eLGXw5oCA7Ef%Vu1jLRhlji10k+(xH z%3PYz1AxZzn3A3qnHow)6y`CYsj*|QzaqG$j&L_n#Q>-bmJ&IfuLK=~xpch~vct14 zffZc9Q|6*S!H5#?k%dv2wTzkAZ2(QCWG$nko`3QYFOQe1b_rDc3Aq|P{wuTWKf?%g ze~NDXaep+e4M`1ulM}5ELeDdF?4+kT$>SqPP@DK&Qj6W~;WyvXj<&wPZ=rRBz8_;E z)BwofQ1T;OejC`2ES!8z?7L_vh-RC)UYMk0bP=p=R>NVCDc9R0k#+oasKG2aO@yLS zs#rIzCeymw29Wk7o_E5A9J>DACq{@Ah8{VuP+g=!nD1oZPod{cp`h%f?~XH8T)?c1 zIs5*Am!0{%+wiS5lpSzMt_cQJCS0R5?{3RS=O#q#`3NYKou;pTAS)siy4+Q=`!bNL z8*-D<-4(jqJ?~&DltTO?J8nsZV?JRLsas@9Bg>f6w|J~QAD*R&;q_rT5f#VDPGoyS z@<iq*1waj+sYS!8(b{>U4(X+%Gp^3Z2QP%W{`l(Su8B=OH6y<s-c;n(mCFGGZKPn5 z9R;zkD`j9xE9r+|%bUU2{eKe4dn4hNWNJp*GLyoAXE@rda(|ZVHF|G#_rL}h%350u zhM+PYoJ|F%!dob_wao$g6QH`ZJv#ud#jm_mdEv=-fG&bZoF-V9EQWf4?S&gQ!g&Bh zoWuX^4`(=t<7UbPRw-$|sh;1RQ<s6qQSb;tt#XHL23aAB$V_k25!2Bb%3I-H=!}Fy zKy3B!4!@E0%On-ef3#7oMTAec!?*DG@U?`Dqnyive&E4;>pv+~iR<oD>23P#HiN#b zB)G^Znzbtu9vRzaG*xgS1%Bvf`raIKl=y1?oU(V|6+(X#PqryFvNo!)jgcftDNLn% zk&C*ZUXy~98kInf%l;E06S|y}*^<_kez@EvWhS*n1#y_;g3&;nTWI>cm1kSwX;?s0 z1-PKx86Y*XI;|{S&;|W*?Z#>!<vUS~WwmU{&9LRe$vPRy08_A>iU@$i#iqHm^p85? z;f-*gJLl87Dg{lcX&mL$Dt=C3I(?`<M*+A3oO`MwIH`86*h+}W68lAoUHEVd&S^Xy zXx%7Y%B)T+gro-YL^+)60xNzD8R5o<2h$J<92d**R{9Ff@PGNZEs^GCE6OL~qH{uF z$~tij8VoS_F2Efd9Ik0t$)yl%OM@L+1)}sSWsNm}`CUAj63Z(yqQLCj!H${Z9r-c@ zPz&;`XJ>V>1;ZVVTg4Pw28R#dT!>(~Wbk(3;7UymxpUg7U638Ra1IS&<_C|t=b9P` z%VKoZ9}q_)J1fwhf<S)rX|W$M<7AmDKn6tyz`?N_b0d|-{epu5@cG|rsgd9;-~8BU z_=zS@Q(A`NL?lB{n{uL}x23-KUdQIUUG7<BN;+kF-gZ|`B|&Mkf{bXmNY{iHpV7pi zi`&+cvxb$j*+^d^9LHs!cd2yGKx_u{Nmkv0rj8Vj2N38X(O~5k!o*c67fT-I$&|%o zp!{Xm)LP4|W#@L?45uV(pHGj{hHnV~<*dN<K%{2{4I(C7Pb<5Ju*$&tiote9SSTN7 zm9bYysS{PCG}Q|F<!L;Ax4^eIrB+Ei1IZ_VQUkBI20Z(*=h;%iv)38$laBCHT+!j* zpwX4|$hlsnxobHLFCfxt=T5JzST7~MS2qgTgM;@ja{3b3PuPg>NZ~V_xSuW_FjIJ^ z%ryT$rp`T{$v^)4*A8}I*c|7)&1o1pH|L!kl8Hi2X(UM!rBbOK40CJ_l~5r>QIw>j z?`Sj~B}qslq>?C=O6&H!fA=5v<FUW@$FA#hU7vm4uh;YW#t`YUMc~L{Ze}3&a|G7p z9D<6Vu<c2>?^B_aKRnIMXRk21h^JZDr&FlhcR>P;X0l)oR8khmO?J!>`tKGCcH{%| z^Io5W1PiW$FKU8CdjyMvXg1F=3=n9gJ+qt{wEDhzaBO3dG>hxXv6IL}02xZ*ysM0d z)ZeE;dj(*(0d8492_<`5GSpT8#+QLq8aQ?k0Co=fnSSGODf@JZFhE`oQ1}Z+&4{^G z4~s<VXg$y36r#YIUm^r$N**@qAU=|iTRDN5b5Al5gW7Ha9k-mrSlGq@h&d6gLk6M9 zxAcPhxGUfi;6E;QkS%=rl7uvn1qh5h^EA>=e^x`7Iv|L0fZ1PoV6Z@?io3gRIH8WK zuZBRcum|_f3@3dL$&-IkM3f8E5h%~qIzH)IAB^Z*g*)vPNNTqfH^3PpP9HkxEG}r_ z3i69#4nr|#ZO>OaB=%Mpn3o0#s)By0J}+Tq?RU<>jd)yu0-Dyy_?tsa!(gpoM34g_ zSPyw(1zHh_(*Fy;qXXHNDTq4t^gL=fI(RetZ2}@z4%qn@9(OS0qr6(!@8NSZug`xE zJA-^xGyspm^68YUD9^2SL5~j_4{)sq4tow{b?}cWo;+5NlkPB-o0Fr77U%^GeHDwB zcl2|uLoZWD&|RTf2Sa5goDuFo$R>3}uHwtU8P5Va|4I9TqAEEZRpnxbu+m_}sZ0d> zv@tST4-vDoJG&&T{AO6bD2(#_^@UU8{dMCHyGp8>bN`_RLb)$8l3!(TwsIS`<cGH8 zQUC=UH(YV((fGZl@8xCK4cLGnFU4#Z!%%=YCM*kTJFau{luLU-Xvevc+`0%ZF*t)9 z+^LSxbrVDjHs)9Z@@Q`1jh87rK?(csz0&V4=k1aA)e&OP&iU~UlU_mJUcrMWMUtE2 z-*>+Kad11PJF;P5yiN~s=x<~OVjF<n_PNt{Ln1U%3Ohu;!wwjDxp!dr_yFA@$H$)g zx)))FK^)K><5|jb-ZT$QI3Ra%1d*g1fdVM!R77!0C`y)%{r;pNIBE)&bAXL|#g%d> z0=dKh_|so-Jw3#KT~VT$m!I_zJ$lG5a=_we`5nE2Ud!#tVuZzAyA!M_lS5Ocv)Os+ zZ_Vnb*7Ugl3Eo~R+kUY5ZGBh2llmKBe8i&KJ#c$?sb~~B9A4T0=8gbGxFMU+ET<oG zUR4vy@y`{XY|C$9Wilg5By6Y5(2SB~KR^gVn@nULug`azynFL`XRpAKBe0$GC~Ar3 zilQ?`QN<&{_?c+#VssG@gP)Zr6o!5M?r)SN*v=7zc1&%}nh8BU(-m*|Oe}wux%Cz~ z%RvGn$^xJYsfADX`dyOS@wXSjrUU|MyyB5gxt(ul!S7yqB5lxY0jOa*3y8_ZW`^+u zZtcZ4x>&H>oFmCzB|^Bs=b5^m0Ii>c(b$#WJmyvZTrF;bjqZ@slL~<*oqNIDk?Eqj zSO6Wlu=n--b2;f8zL|(?&#Ec0-f1%P)DX5QUkDS7m`pTeX%5U4_>YABm^%sk(3#i_ z6+F0Hmi3<L$G)`)xiNVD$1$boq^&VoqiK5ui5$TOT+R_}i=BIpJ!}KQ4T*$s91;bZ z-;s`F6Su3Z<R3d!tdO_05h%%fA!}zQnmW1jy|qOYK%QXxOn65{<&VH$x@8pO{*!&| z75w*PLi9HlK+FiSJI~H#@gW=l2q{UMTPm0fIzPwG;$(v!1y68TnZRA4<NSTEdBc1g z3`H(+B<n%eyyWzJ{{(CgI@4%_q@D8i;Q5a;oDYBgX0N_^%NEHAI-r;=#Cb>Lg^(LU z`y8^W;GJ{a#wxCS6=&?;XZbR&weZf^_t}iO9i>(MC277~(eC0F*UTz%lmE1bRkW95 zuo@e-M?DFlq8?j3kR^~zb60j1A?COXlM4sKO6Rh{`hx17J-wbYrol5=1J*Baw~Its z+pE58XJy^4$`An8#Is*yKfb8v*|5U$pE%@wD;3ns$JG~XISYH!(ER3mpA3;&HTp0; z?sy&YgkDY(;>(qQgkr=(2{x$&TPEM)na`GbaRWFjNeJuykHX~l#Ws_3ho*xvr$K&k z8p4<iNp>E6&&=b=n-kIbp<zpo@ujTH91)Nm@}(>8%e^E-#r2PsR<S|(3Wgj3j57Lf z_^ajn{Vwv!pr1(ad-+3E2z!B#+|NkZgSQQTvyHdJX86FK1|eQrA%_n+y|O~GliA-i zHsvaLj402%IqZdGR~2xvpc+@f2CP3<$~ss$Hfu78^^W>bztqwvpq+W7|1ryl@$>|Y zv!ImoCF#?xK0$|9PHH)#P(7zp1~;7jL{vl`MqJ>cIW%ctnlzOwi_f}Umdxecvx5I% zX&xFr0=0fnwB0tZt{h=T{$>@$UR-zngLNOmB3po$K%-jZyvo1^7Y_t9WbA|g+_z~~ z74b6}9+y$Z-~aE&z94~Gz)xq~_jOo7ahANt`Ur|LGCl35a~W9R!#nJqoZpe<d8WgP z!)FQQD3Um!0aW}Ku92Ne-9DXmdg;jdg`+TYK{D5;B{QlFYJ*EV(H_NS4o7d&_}Xp! z^-BTr$OXhspM6Vv4<fF;{*i>Z#Y1Q#GIxox55>bgMgT#Y#x06Rp8k)T^}jD}J+saF z&{D^~c4;<CM?j4~#BJH`puE>HJ1e9@pg(t5-XO;m&`|df$SlEX5%S20WQx+4*}A^N z`2sl0=}{35x<mwa3+&mM(r;O5Dc3R<He6ULY+iy?9K5i?$=CeVCQI=jo+vS$>(TpC zLOgWD>2N;l;MRTnLp71%dr<OaS+}taLGqDW&A-o0|AwSw*X=_=I%aROeldUVonA@2 zqPe#y-tIygkSxe>GDWs1tF^92Tz`hS@c?n0lK>WWAKiXTdDq9REop0x>^}@$h(U<} zJ~DfE`+Gt5(!HMvzVP&on_}wG99G9YeUBC~e6H8Dz3<=TgY`K{0dKghA7{32?(z@G z>070Z2lWX7Zh4->009ROC;q|CC|ttmp79QcXt520frj1ROrBOcAD$R$y?!pMG9xx= zDCIz9w}PV<cKnbXqUZP#`9<CC`R$bzL^b!x4=-n3`0MW-brZG}Gu0PtXS>7pR+B6D zqWcU#-9+AJnMtCY9xRHPny77)(47O1pG3g2$Dz9xIZxz~>)fPf_~HNj$#VLU*#}Vc zwPx{8y{0TXWxBz7LkhpNgtt9wF{#~pWWHWKqbSL0vqX6_<ho}~FDl~z^7;Sg&Aqhc zTGHSD@#fx&7~lER<u#~3v}Q+)Dld8gRxrv457^DDm&u(Q<(ChHV=k|!ujZ_`zQT+! z9#T(p$~-s_DmM|UL0j!$ZBb%RvWAA4`^?l{F%Reko#CyY><w_wNUtgZ97m?mEJtKJ zI(mJbH#)}AECjv7(J2HS>#*VUfKvpKvqdgRU?+@QpAskBwVvB9j9*_AC)~Zhx?Pyy z*a{0YR~=#Sk6nKrr;~JNsSoWG4n6Y%2#z#<fg*pe*RM=@=wy2C;3)fu>G>lcZ<}5? zewpu;%>`TU-1uo4{G{Z>{@P6rSK?`p>}7L}D2Ssa$Hxg-eeu2HC7&rczU=XS-1)z$ zh6-!`&XR_jRlkgl&QF(0P{e{o{07UB=@MNJq*T^cU(+q`LTc^RK1RCUZ+@3_<KMuy z%qpo|Ro~So;dgbd?~SUl0mY~Rszh(6Pf8E`RrxWi^CMCy)no3?AFIx#hc4^7zK<T; zN4*YJZ{CVq<gF8FBe#IV^r7k2J@`i6i)^IJs<jxi(bc9`UE!0mW8KJe*aN*|t2PpY zcic52NO)w5duD+2RJZ9}T^j?k(^uOk4rA$dPn|w>+C5wU%`RV$?KiYYg^_?FIm1`W zoy#}<rPHVvfg9Z%UIs@TcNh-a)Aju>u4&lnRdk-4<LjLj#~nv^U)h%83L0M)kET3w zTmR<Z*zxrfM?Q50*pR8$*Gsty?&Qf#ofG7#L$V%2#drCSO32ei8{M5|PDPw>nmxPc zp40nt$7D`()p_pDAL`f@C!9YvUb*M|srjzVdA{|LyUXXBV<%h|ZhyMx@}=vK%w@4# z!NYZ_SBLHTwcp}D*Kbc;{<$tc-{|4?{bdB(?Z@jq|GE8qbL^kn%4D90`>&Y_wxeBD zC++F4&l$`4#Acs4_rKp?ynVW^eeOSxe}DhHU4tVBuHU~ZGLe&J{F&%xL-ecz;D^y~ zRo5yY<9<eZUM>B=EX(#!N=wEV-5bjgtvd&;g2u;ZkMo2j{%y*tWHZkdL5g-R32$1w zh*LU1b_<H%&5!CAk%osA&#lxN|Kh+^iaMw>QbSpePgBTil^|8bIK=o*GC|`U`Q#bh z=Q$g7$FRvY1v!;;Q}()nHE(X2D|2Ph<#IrURqB4wnMAPZ+xS9!@_ytE&wi8LK1kAh z5ARIunpnzE$L(oQiGD!sKBuCS+J<Hu24^l}Pq$6$A&Uz)h8OE0K-q+`IdysQWxGle zOdi=&u!V;4A0^MIoayf0C4th(OCY_^0&lnSW+ieU3@5jN?L#lOR3k4zJx8ilwM7<M zm9<{fk0}pznAgjPYfCKm*k<!MVADp5j|$`0ITB8+Mn2+6m8_*?`}-BhjRY!r(fBL{ zZ`#}<u|Hk?Y-fHT;b7+mlQSg`D&~t4Wq(8>*FY7Y>!?BF%+7xN0~o);o};h+n&!^{ zT|4#i(ps}$)DO94HdvHkS^<ohQ12Wm*{2OP_>FnLcE9(s%f6Y+83~;C^*klt{${eM zD{$SrS?6rqJ9)<xim?^Vy22=$@ULwH<&<4Og<5Lj4dGc|jo+uT+NY}>bK*ztOgdHw zx(Q2jW`KrBke1SB@<U7Fy-#Ix@!-v?12$&9@EZ2!ik3FqLqsWH&EmG2$Lqiw8<|PY z!phOuOUbl7%oD#)Rt?8CF!0`1!sx)diP}clknw@~@RG~9O!@U@9Ot0o0$NM^&8B7% zv*V%4wP9#e<Tr?a78i41z6N_zw&T+lSNY9%Rc>|kcU!FQI)c_bVG526m2)EBP);eE zl4mOco3<l)BWpb+gZ$>49WNnafY0gcKnv;I>2TF&Uek>ZISKn23c%ogrrtU^idyjv z%?imO<2E_Y-kZZGF|Vhg<UJO^#P5?Gqp?@}j$88sdE=$#uW&gnk046XCo>=4S3X6^ zGf_JBH1+BM|96)AXfMXXF7ZODI&~}dB&o0&HS@Pj{s#B6A(akM(rGkY$%=}NRE2wY zNW6YX_}{}Pd66p?fj&FwPXnRoypejN;l`Y|Vd!r)hy6dw0mtxDQGn<S@oU|e;i%*i zRExZc158w~rFh5nXtj*V<1#ItI%#eH{Y!E}X6ISFda`TS=q_Zp?WPs$7nzIq71`U7 zt<-h}&cX>z;P4@YN6k`Bc$1-%>BRoruFk1v;M6lvy|KMXG4PpAr>DfTH%6q@&E-V= zt|J;(BSFod)_kf1d>E(tA2<FSx`uFIQNC7zu-o@cDB)%N7N)$lz_4rj#S-c!eWFM) zscpa0cBOChzR20$)@R1M7Elh7YPRxhRfbjv$J5?1uP8OZ5c_bkFKb<~@@_Kydbzz< zqWK`KlBj6-iRESY^>|Upu4(<Zp)l+ERx^R<4sN>7$0;{ji7%yV3oc8X#308)DP8A2 z@s`*88X46u((vETOxgZ98^s9H#TQzyACN1T@^&%K7|JN#wl&<7IpfX}_Wc=$!IC8O z_H}1*_xq3<2$e!x1HR78f;ahaapLDf?4>6Q-w&qrz|My1G>n8utUH0Ra)bzSa1lmD zQ2Do2LGnl^*qd)x4->>70w)b3g(!0?IJm_u<<&dNgd`pcqHwCQAClUV#W9^$KYFQ- z_M`eR6*oQpPnvC!waC6$j*`Mlst#>@{2Zn>&45rizZi#}XCBu|hV#%;ntsvY|2s31 z6oI}jZiyKXnP^$dc`iP`Up`%hUmCbeLf97A@$~>OnyZ=`fyvs+(9c@rf|7Y4%gP44 zx@MocOkWv5%yASgJp|;hYYPL&kaKJW&HlrjbmAKTY<L5YZO?ZLps6;A=CnjeBanXQ z1sahykpiL)(M>vl=+?Ies5dkzb>cRN+L>WkCSv+=lu6)^OsLX0R4!GAHhzENCToHT z^$^mOMcH*797Bl?WB$G|u{-;<7~%>dlFF%R858Odsu4spUmrk;kO80+SH|=1m(ST| zdg@=bUo;O<UC%KSDQ;*e2B0V{PI!!GIItkFdpr~XsH6EV49;+HSj@Jt9UB;`!T}pG z<27^mwI0KLgbU2`0kts?RyUJEp-Fh#tOx0-z<;ULQy(_F;y|1HL^3myIBA@*j>LDD zGSpM`*R^J-&G3~1-fUROFkz$4Z<SK4DbO{f;#L-=MV*m91hsYOXO_P7SnWCfl0onj zn@hze_Ke~Y#^zrc>p(TSD`WKJw~S8Skq>;esz};nEmz%cqrNGR1_kzCx;0vKXFSk- zk>XzoEEtPjP(7ocp^#-NU=D2?VIWX^yMZYGCZGk!Un5pgR@pqA1+gM4!!s1(-^ry9 zWbhb#k9=BgXrF=6c{(nm{D`NL4}{LRFZck#F7iQWT7@w~&1ys~q}u2AYxS?e8VgWU zHAciu4lMuF8ZMJL#6YTv37yfk2j9dTKS!UV|C^CP!QBk~{bBS-2uj$ijf%nR#}H^x zL$5qTZ8pE-Y{uW?a(YCu@hHQ@Tx>GIFx3~I?Sgzd(hKQ)?wd#l9e+?k;(Nq`&5J!% zgi|Ci$5hzk554bJ`;JKhO5OM>(=+=l#n!_N<CP3`p`2nVi*9Ym$cJ!+nGnAoi5{cy z)O~qj@8vc6?dXVmBFA6!#9*F((wOheH)e;$Q_R+WreTKbSDNwy6ePgAPcXhU(l#wH zz$Cio2*}?RPshe`8RA_hvNg#J*QRcRVmZ(_w?~ifIjXjXX$%_*r>9S!|Nh!1>Qc(7 z*y?k!{-wapFwtQwmMW#g=ETD?Me+51e3~cJVUhm^RCjt?MSu;|BdC5G0>Z|h&)!^| zNpNOtk$<>FgWtjAZbNZ0b;ZHMj5TR!$S7m0w)ku>Dol+NUB`D9)^9_L%&nk0>JkLW zG=H3LI^^SD*=@GSh<9f=p+rp7CF?1MalY23%1d-&J$;()$9rH%WE6T*x#5twz7WfK zKB(os-6#}>n{`n$PGfT_sI?{lU*xLW=-&Xu$ms622F?u^wypx6^YkO5e3UDH9}muG z0Y|^?-DJgZQ<oIu7za#3aOrSMKU3j`=&R9}&byZ#0_z-}66<66is=t9SiW|dsqX$W zN5jJzZBP7@akBK^Y7I}`(;|EP6DcYH)dMU-RaTuKFs#{PPDA1426H^Hyo<iNs|re_ z=AShjXMjb(u8;gw0@0sDq}j(aUE`^et(xg&piV%oiL-uItX<F7(BPm-yKw@l!ZZVB z&7zh<&J6S6lx~AskkaFFX3z{(TqhrCpu%rtVkr=)NC8D9f`Ds|P=XX{O=hsbfL<H> z6nJFKW_)>Rl2y=mngM;!8xd&%JT*SWp9Gl6UR@bwfW?5@1XLCJVKZL@hJqAzFEN|^ z<aE2wykwkFW9;a;sEwoH(m-ib45N;B%w#}kK3n;5f`2TH7HbBGC?~?VBOlA8{;Vv< z0N6jEhdu&nRBCQG-^6qkJCWFc{}4d5hd7Zlhyp`@pq92u@JCS;(z&=qsyvGnV#25# z78^VchfGrxrV;+3X7qqvJ`0Uw#X%Qf6&m0*j|0PslMUeLRB@pHK>X38dZ#_b8FSFE zkcjkhy*d+yE4G;#+1-a>*bj01u`vuj;WE$1J@)Esv548pVb7kpI%~quABJj0LPo?H zhB%7<xFOYu2uMFt=gjXOjq$gqn39d$DZGzUV!iWFr#2Iymg0zoTHuD5A}+11kx2v; z)cH=7_e>P<Nk)$ZQ{tyGcE90+7;ioD@6*755<~n`R?I;Y`u(9)drpDJGVj%D6Jvx( z51_O6f<;QG4OC&z9qn%W1%_7H0%dJ7TGh;?FsZR|%uc{%lGZv3Rhy15kn(MGp)RDB zf0;chPws0=8Ll<;{;q&&o1u$<>dz59{>YcB<#nFQI61{w@r80nq2Q)WuYt7{EbbW> zYprS6q~byozRLiMDWuq88P=}vve`W!{MR6nWvDruBxXm?=!BWi?1!<CR-fL_7p!_! z6wTA-)={VF<-`29Q?-Xb)Y4aJSO`bCbe%7BMqf#cpJw>#i`{{TcYOFW`%g1PK;9$+ zTzY{@hR8iKrgd1&YxC#ZKT#x_G9VQg*MmCvh*H+Nh*E~q>P{*y17KgF(BgxcWD!?` z;SsdXz#uD8Lre~6(NYsDzJkIjd>bhrcQ4)_-Q(Ar(LEtH@Pw{fL640vG;y<zr0q<R zFm{#?ek`C`L-OtjsMs~==K>|j_I~{^Ws&}8m@(OI?#~C)mhXoRGk~^tC9_b4k#+o8 z=oKaClVPz^DEkJLJjx_<7)|uOUT?ex7MZSm-Ek<GC8hf8Wv1ECg1#uRY^g2xZ}=ir z9@)?;*S=XCK!T2KZdKpjX4Ff^B`$k?qERUj?|rF6gHf`E*d1XV=EtFuZGeF}dwwb| z;4|eh*w0YbMvvt+eic2q10{*<uej2DcJ$D&>{Ho9zFV3|Z|edx@+u=e%<R@ye>EOW zu*jUF;@@62*-!X90W~K=jiq8(CBuFGDpS0NwtPUU%}|$Ir->jo5RuP=orYK_;-L?< z_C9l7KriiPB1HZc;?B#hG_@QidfE2(Cwe->pUioJ7x#=p_v;=wX~yuH5SJ_Q*`Vx$ zRO?q19mctrVxlhJg1?Ms#8I&?m}m(6Ed!YQEbmV8)MvODP&_s)-s!nP??|#r=DQm- z)8~O0L#SgLIOP`YoFn24Oth>5eLKpyZN1Asl1oE@{W%~yiRQDX)TDd)KUUje8KhhT z3^G5AXk3MqOh60D#g5n>wps(#tjw`e4EQJCrw#1fY<`nzeUL#uXfP&5G~lSU;qRgx zOyV52CLLs2m+VVkXy?THNCuc~$ux2?vlBsG&M+Di%QYRK+JluVt~1BCQ2k1oYP!_U z(kMHITaW>u_K^;C+&5?w1_6+r`;yl)vPZ=XQ-(Y4W*ymx%3jq(0=KCoh`(?P=&e`@ z3nh#)w6Of7QAYe$KIi0c0^}QQ9ON&eB~CE(NYK)?0;Y%f2!sO{-SS*MwDt_sJpF0+ zW(MgkKXn~6XIQ+b%@_f5Kt30#((g>^;9>Zksy)@b?-}<_WXb?Wefm4bQ3Jm{_rB8d z>6_^ceRc$tT~c1M4w^l}P(-i1N~jAtX6%pqLQ4htiyb%kfc=TQa7U$g0TUFT-%KA6 z-4Eg~jS-AG6xjFeVD!=RX)kQnF7z@jJq*;cL|xubLya@@kI>3~GbO3QcMK&9v5Qo! z==zPR#-*YfnG|zs03tqu;V6X?B9AcB**&z?t;#wK7YjSu;}6WBDLNVAzfARRZ~|PR zx-H3>o5k!Wtu$A?d3DD5!>_5tW@aj<YJKP7J<%{MV~LxMP~&^(9=!<hbCN=D*)jHP zwyIlqQ~#BCOWxVH){KarvzIIyxGqE<gkx+i6Dz&t3re7(VaC?&{H_Rl+6bFo?)aD@ zHtzgKKey!trD|{PI_UB+9}3u8zF$utaspDPX+#&=cp`J&n1-MwZD?nX571gxa?yOy zVOMI}F(&5^Mc@MXIeC`;VOF}(_`lMKVoSgFMAZ^nI@rJA4_$JDe3*XkRSUhA=C8Ka z0RlVX{!kxxG7}qUZ3uQS^;V^wxWc&W{x0`JPxl_#I=WTYm`XhK)+@j0T{0cDpf=em ziTKSdP4AdwSX%QDdoMO?kQ)p-8s0(^O&DfUu~8ZH#ux*-opIn5Uu3~Qq8@nlm3Tn& z__a?0dOE$lP>=EWlP13}e(`I8%#KlEcbx8{eMU#jR{TqiwPOSMZgKmL-FnL({RbJl zdz`j--=TqKkl3xVxR&e%plOzX<S%vY?b7mRy^uv+`zJ|o4H8O=_<;P%4hedg4qPya zTRpR{hmO;xX6gDosPW;+(n8Y_-98th|N6-?c08~2*{y+O=EvEb^wCqc5UV+t#s^;X zE;0%JACvBxZ8wps?CsrI>U(U9e1Sgs!aUY633gC!&)Jvur>_R>)OcN1+IoGiAlt3< zbQ<FRoJrmtMsAvfu)`>?i}vwGsPRR7UMJ)7b)wl7Y~JMQ(d!)#r*pF%vE@h7@+O7Z zQW;j?2Rmeh%X=!gdV}m`q@MRjP#@~5Cb^F`dFLMMVDn;U5gVs}hb8zNjmhfA+=(uG zKS>mhG)dyFs1)_B(|DWdx{^G}$VMs)npV&|{6aK5J&k`Q&)tN-Q@zg0k72~zuQ|$) ze?Xw5UT;voz`4Bf|C8tbuRE8D3T(O_bcbIZ0t3+1V6?>?`Zi;H@oM&0mEG6)xH<Nx zYa*D%e2X}%LeiRzgKW5-O{|by&$d?Ba3h<1|KW}7gw4Kf**>cMZTtWWpPT$p3&~AB z%fiPMh*#*pfY#5gCce?1vNU?D4^ARZs>Jv;OsP2g8_lD`3#(<bW$9LTK3u-Lfd4E% zWrhD@5^kEW7Tng*ng8?{(M>qKv4QQDH9;rd6V7gIa4$KXCILaKN7vzNL?5a*17NbD zz7Ulz2o|cP3#eI#j?Q%pPn28s?I>b~yxw_s@9^tg)deBpm<?@2xiU#~9Bxk)g3}CK z9m&F{J9ARPTjKm0`h-agqIb=zFQTOux>3-wmNjhf6skSC(fWW;(PaCcT{+%lmnT8) zZ5#C8xOS`(mG>mHD7}?fy#DZ~&$pz!{G3hvRTMG+fLaO$_~lUK9e%Ba;10hjW6$%? zcPa!I3;<LWSMfJ<ZZOA|8Na2#Ihc4c0EAVq-HdT|kQp5ydN!aMBRv}$PB{Lea(umo z-WMZPM}sd$ss6rM#ZqN!Yt+VIe7}v~nk<Z1xc%Yk*qS`I{&e$dePFcW3D|z`Gm84O zZp}2A!}>3c<*f)*iJw$qLhr+8%v%HcM=iijOWU@Z;PB9!Wo!fgpqA0<d!MlPR8KF# zhfbKR*3pHj#@HGsjn!J|J5#F0ZO<Qg=i=hHL6B{0-LIY(9$m<0ol-vN6nIuOrWEIm z;hn2;CaC}ln+oyX`Z==xzRlkTwmhrZq(BSbT~Kz9Sf7A#&iYtfXnRS86cYCcRWQyf zIwWA|XdoFGe7Wiz%fkPa=VGZye<3ft`mK!40CZDWB4ucQrtj&ZqN9-<%L9$9&C)d} zoPc2f6|%<zrZR;`@O4p$+nRx2PYI9jW*n%r5WGjz@`PzSQc+=>X^wamMrf^C*y{|> z$kx&tkd%X;^aknk_@j6uKd6=}?IA;GciYl%DL_PTV3n#782-5GEwp(fHCMbin^4q4 z2eXumNIism$x+p`K@XrUAGeO~^B4gpeqt*^j{yS{9-`<X`5?OC>@mqRtcpD!Wofu2 zc02v3sX-oD(TJEPkgwnD09eoHUZp_bkBbZPSGoy!RKI1wVMn-Gz+uznnRQ$(zi6eB zvfkx~at2cZ?wYuJce0$h%>A@5k6Eky&L(<mVQZEyg^D?vJ{+#10xF8UPx!)P<7eXI zopetZX7?H*j7c%bBK20BHv^%^P=VzUcl=)_W#K^fEmSW?gDc*ACmLfVFsfGm(4zqw z=;fwkfM{I_*0Y$-AE6a=A9%MoJ@-^t*-aQkBR3e>7I@S=4j|Fh9;*ermAmEQe;$!o zP>QYitn0XPC}3(j)qjzlSsZlHzTbvavlfcIX7;CyF@!G8&G+je)T5EX2K(iq^#y0* zwH1`3(8DdWfJvYIr?BVcAvdp{YTiVRqd|dO_HqUiEuzS2SE;xlkd#;Bxdv57!FyaE z!8D5I81b@Sv}!RLuyggDR{07x_@Lk;EB7Ihc-cY(?>w}XZ3?90iZyE2nbd}g=p?|o zMEVu)kJvyKYY%(N-s$fGbL1tLih@F?mC<e_Ps`uR`6{3Ax`1xqRBfws%H!+b>=Jz9 z7loklgn(x+1URG<nhpkvAc50<H{em>f$I%VlMU*9Hnx3NRClkbJ-Oi?9}TYD(YVUZ z)jQ-=RK$KlHF9V6g<xtN3tFCBiMGl1%^C=iTUXYtcxW+0^JhrM!&3%g7Q-<4^y{aM zl51hRGs7aQly{|c6HL)5UiY}1{U3dze33nLZDB-pyc*#0*hkrprkK}M)l>xDMJtY# zF;3~W<7!(ZP(Do&(!d8p95%RCX>+<0_!y1dY%edOJkXd>Yd~rdSf?Lzv7Wsu(td3P z936Z<Ex+%!c+b@h+CR}Mm1M&kEeIvs{kHtt`8&@ork7QmZg{<H!iA;@fH{zgX{BcT zhtJbT-_VEZ+%%1TtZbr{Q`Cd|pn8uN+b;F?p<O&;uc@AeYp7laekU+=8V<cmIe3;b z#kN|sxOzi^!&UCt_NDw)*AItKBh)M3>5zl2c!bAk$>i01j%BUi=_8gga#b?Aj$J^G zlV;x2i&ggc+a0<)?Mw&RL-!-Xp7?n9jKAilYXGJzdh~~&N7-`}VgO6QJ@adf%&5N% z_hAtTSaC!9gvLTADg`Da8pv7M=pII$eZaHd&nrvXO&BFV)CLWB6?9_oDf#`n>({HX zB`$dQ6Cd~XQXy^n^&PG5g^kKuFXjb5i?}TaZ#%I3*Q!lhKJHLH<~b9!B}Xh-|I&U7 z{klRWhkr6)P=F!PU_wSWAxwf81&;^k9Pq@L<NL04>mO=8d2XJid?+=>2HnCoj#d7* z2sih)zM`}}Q|}!$<HpzS#Jpsd>NCj$*W74<T~tM{ZIG{_(e8Ko*T3~m$+BUjL16RI z`|vpAez!5+0bT<QZ2mmK&sL<NkLuNm*kgGF4p!0)Whhi{;d+K!@8rprcc23fPBXM+ zV}i3e!>CF4bVPc}$t2xcgTw4juhWO;+(bulV=X`E@=y0uXwT{fGt9onxyP4l7@g3= z!s(UHD;vK?#=HMi8z?bZuFv7uXojX;5h@j@lUc^`XMM;IzoQf48T}fsd9UPodK#bc zSil}Y0Z@`5BJoo@;f)FnG;wX-C>d<l0=8`7>PLs5dtk27ZKNp}n>;CJj|Qd_EF?LW zwbHPVXjeqlIC@Iq{IhNLHR>O$V0&9&^mTZ$6t>S=FNT1993yubr!+@Vl5!NGRKs|` zB`o+s98!FTf_@6XgHUS+fe>Nrn!>{v4TcDDih?TeV_6LhY-P9--T$};DxfI_^*|(2 zm4s>)F`&p+tpVn}4fDH~^#f4m(b!0?viu`LG0t%Rmr3594%;c;EdQ0^`HQ1X^=Shz z7XqG$Q`s}nkByNJBEXhe>Vip?hq!Bi*Y8ks;i}(V;K^O+=c8*pl0K?3h5#BDsbzJm zt>9*`mL<BD4LHRhBgGR$#okCXu<~hc{*lpTwuqo2RV=5TTmk8-fmT#_6O<|CAOduX zrItUbI?h>}#D#v{vzK5*VpyxMThx7SqxUjJ&xP^9Yf%rxKiI}I5Puo2$`tiwfCljQ zW33H46!kGv+WZ)WxH`E~;gU%YlBuX5v#0}_x*u`;6jZ?)LJEW%O^g{JT;&kQ*<7$R zMTJ4&Otb>XrD$>NPjSOfd4iT|4M?Q`qe^>c%X<fi-XUsGz*l^%nc-6qSQ==;te-KN znrT`$+p;D={$QZJyM1v_2!g71ICs^te>LA^aP&&Ugo06`|G&#IFJgMMT?a|}q95of z@V!m4s4sf`zJ@JIpqo~tWiDF@(}Nyqwfg+kYRPup#U8!=*VnDFmA+P6q$hY1KZHR8 zJkcEc6%5eQjFVw-a<(QD-8vvK&MpRNkyp5Ov-Z8?;8gHd&u);w8Z~&3dEF4d=0gx6 zR}iCF+q$`3WHie)-qkAu$5IXDmyA-fe;(aU80l^o1DRR-O!B_4P5!C?hinb^PdWsP zk!Wv2a>=vE1+{<Cckg^MxVQ07&z{KSBFieN!3h+QmWxYI7)8}+j=k5kBb=!GY&62( z*wkaOBSx$0`eqb|!idp!zp*)?N{3Qosk%0EwI<b5jpsM5!`M^RQ>kBUEl+;aYb>%D z<vM|YSG9F2mlw6!O9yOpN^ttB`i6EU?I2X-6B6kF!P;(oA|JoXRr&aw0Onv|F&^{- zZ@j)42&%u0)PNJJi7V0H?Y|PGlc=ocBmxDqNF^prLV}C{iAaw^Sl@*(Ugv8J2VYT{ z`XmIu;}qlLWrHSgu<2i0r$_OMtmh<0j>GybL@geX{crv^m|5TU?T1N>j>Z<_4wk;? z!0N!2_hdOY>IZXEOAEUxO%hmj%1*|J!LnE(hj3Uv%>dPH52^*3R6n?Cr3+8g{jWxi z!~=;+sh$UeHrxy{c&uj-1c6Kc>jdkS0p7mJ;q7?zegFcKf}*PA<EkH!gACo5_2@yw z9(J|TX&lT7(2xV3S*hYH7FS?A9gfrwzE%!M^tvHT)dy>AUZ<3<($~g%nOmbjC|XA0 z&}G+%{AhTjkFhRJ`LUhR$4RCA0|Z1BJd0{nn_ANl)X}tTFk1Jfl(+GeLZL0q?@zIx zEXM@lYmc|WDFN0-H8<+egu9nt=-yzLsNY&=NTUh?3LvP8?K$8IuW@Zu0o-@v#=ZYe zdmDC2@hVcM#wi0;5%DM$nX85ei{Q0(CU>Ic{qwfn#ziy0l(#CR1rec86m;s)?z8Q? zvyqCMgCQ?aq+z^f6+Y-v9qL~<6;uTwF$~7>`tzVYw`%muscHaMC4Q1ky3nIv6|F(8 zR?o*<pQ7oXn8Yqrn@vw@*iWKmQq?R_WKoZ{FG%Hg721AMLtleb1q%3(rN2K~6~$H7 zk5;Rv?x~Q|&*iFmO=?2dhfi1Q?|5OJE5(NZX0z4WiEAK9j!Gg(r`TR*wj7OhrDA@t zFqBE`Q-|<UoaVV7?8DskX_-GG=c27IYMdP6B$>8k>es-s)|bT**2uuR=Qa0{qtzOD zx^wIBksHAql<>mpqrHdI`){S2F*JzFX;juOtwasd<Z(;92aSd$O({Iy%3G$QRB6bC ztx1POWa~3#ZIk{p6z~}StE8Q+p7uZPT<Tg`s9J5lN|8<cA9*g%W`(x|sCVEwW4Y*& zRNMl04+yxVOWs$!4(~h5ujnm)m}Qm<QXFR~El`wKSV|ot_|sDVekCl4#||S4GSdV( zE4sJ43Hq!|Bu^*mpv~8I!AzWb(xOtSX6}wyY?^Ryi7ZBHpA5GSo;SibHl^kFcdWT{ zo7f$Tcz>2M1+N(d!gR2rwE&%`9feoU<XOmp&>{1Zs?+oTPo5h-813PJR);wiZB#!A zng*edfVDn>4s9*^UwQ6rnqDLeY77|J{3`iWT=awhUFIA$Z812ZfiD9}!)~A2_UqIR zp1xJLFt`RJ1HQAI&h#qjI8(Y+2;CSp5Js(9g;K3KFbV!e)h-P?dxdf4f9$$pLT<O> zc?wJ{1V!THXQe6=mgQZ)D!QF2dyiE1I~iT>I76~mjboSBj7@4LPS!;`*Y7-9ztb7Z zI#ie9eCgoPOGmVg2Jk3*(*#Hrbb!S<`n#dXx$%_q#lUEllUt2#SsL1818Mc;=HF`{ z<8H7)%hATJ-&eYwo9w`o=d~$8-1*tboCmz7U<N{5gH~cR%^bb@A-v{WHFi<^+JDu! zLHxC)JM0Q1Soh<Nrn8UXhP~JFx*IO2w?1<UYXi0JOw?Nat(D8ub6$hxNO$S5pzT#^ zRm&D5+LUo;k~Dnl(2@??<q#aKy;?52@bUM}XqR?lA6-%n7EXJwAM*%HKq4YMo015A z-2}fh-0u~<-`TM6ANZl)2KRn4m^^(cYujrc8wBf?wiDVO>}cz*X}j;G7u*lPr?#)7 zwD;fbd=ilq{|BG=#~|4SpIU)ijE+8bw-RjCQBa7>b-@=N3oCZPpT2uLa|&CQ8sa7L zxDCGhns)a;-dzk~h_rZDf!6u#SdUp}Pmyt#YE0Ld%ViVVrP(o(I1@kbg3tP6@Kp!T z{t*%Od(Ce72VbdUR9hW^sewGLLOWKg$SCqyDc&9z+B&5rkC$Y+N<Ia4ck#MGqHYUx z50chnx!Pat`p^t|A49uuDVyqogH_#iDJ`o8Ub=YSRWS(HTe7nkRMo3G)oa(ITWcf7 z!AlpZDprcX=Bn1No<@*Jau?jsK2-@m>)L4$(^;23fb1G*<vq-4#W_YkGMSopPhYsV zR<@-*?$-@_tosB*dtw^n3y9={Tnu}v+0OB##mHy3dC$83*b!U@6uVw-`}?v4{Jh!q zmd^1<&B%_-V}q78gC}PO6~H1oLEG;O>~w@-NAxj8pykUd-tV|YfScYw_W1TNz2U~L z(dI5(?6&9EI)@E{<U|~FJLQl*%}NzKctG#J!+(h@cy0G;jp1lo`Z*j&&j?iz@?)LJ z9VL9d8Oir=^E>TPS#VeXrN5)dds3v^7&7Mh-N>F$R(3EA+;kad9}UtMp|YssmObNN zDmq?t5ijFm3M{nAYl|uNaont%;X?ES5KcY|Y|!&HOF+;o25GzNnf*R)_OV*07>~US zQe{rPR;badnJha+)6MOE5AV@G&(-#dGFs*8O1d)&di1Yyv4VSMb6o9Q>T4!p^xU{~ zO>b<fJGt-Jm=>+4l&Yrdj>mFzY-4nni4gT{9Kr3e%L$@5ntg0{t(EWj+uL+4^pc2Q zBU<4!U4e8_`5yruqje8=3NC`y0_zjczb@hFtpf1cV}0GgX146@U#ey$U~Vdc&q{9` zKrQ7|$*{YrUx2mHLK<#(5=Ha`^@#3J3HoYOWI&btTJX9IKu?^)F9YAlI5_DfX6;PN zqzbN9&HezVDF$rcJKT+i_Jes+mD&?VVEqBDkom5Ef1)eqUysczOf_q;a11U<wTD58 zQEQVbN%R2w^WuYVI`V3ej|sp+0O_}E+O(zvG)3uRLlv}LS59hhGCP%`A`mt&|2w`D z7ar*Y47l@kG5#&Y+KUoiH8Ii^ne|4(&h)iX^1JlTh@sf-ta1Y}ZO{a0IyC%Q|Eza| z){0mCqi+-wF(PNa*)L`ZMrEm#f?HDdPNVXeh`w;vL7$FO&<~Ni5dm4f3bA9dGw4nz z?#vr2s1kdDxG<%gQDx=pTIMsG&69*kA_q3r{&!;BUNXcV80y^$>yISCw_X6%rQ?p> zPJ4!f=UI9UhhmMaoCLYLN1yHzn~MntJZLDbtrh4G8fF~r*Ml)#d+{9*AMuh21NXJ~ zyzaMs1%pgNx8izbDZjHQ0Pnl=W<@H3XgC;xW*<D21B^RWDTc*`@inLkRPpdmjVM8M zmUfaPI$Qt58pDxL=o6D;a$XRVs}mRZJWlRl-1A+qOp_PRax*Wo!J11go5==5xiRYX zFh&HmJxs<Qix>)(%iJeIdRHc(NJB91J{&j0P==e1(tg^ThByIq5Y8M_i2fPk`ZI@( zq?i#h;el@M(o297qVX0QT}_nhc3C)AO7ou07nuN2i<-gCXz43DH!|e_aAGq#?KD-@ zDyTZQJn7-?OXp9>Cp6R)`X)5ipU=JANTN*>sMcP5bb)En?f};^-CJl)i`~(|LYN{l zun4M$3@lFSy<g&&MBW{kEZ2;ruv7FhA<qpFOFQCB5M3<;8rx|@@K6OCVTMA{`Pd$> z<g-YiJgF|F80_3MnXNit6~ryj?Y=EE)Ud(bm-FSOT=K*uO970vkwVc1EgYz4gTD-4 z3aQ#loO+;<7nPdp^Vf13d`&?vfTj$7WHe8O%^ra=Ahj)!yBg{@1~b@b&y{C&Kx}!! zGxvX})B&0@GxfQbK|$(ZLGzt}EB`w02=nFoj}~D*>N5(hisM~WRJ-~dBlh0vH7@nL zY^_jq14^~9^!|^cra;?ApN7y}Nn-IWO(*V?)BlzY6=0^-Dw=l}ij7hC6^xfksHK$( zMYsMuG!p5Kt-N_^0F7iD0c7~(?E$6FX#T?u+Y^UQrfWE)2^}>ZfJfBNi77=vddCw3 z<r)UI2%WZ6#?rklBBr}Zs{h_GF{U$a#ZMF_o9v$XZrXJG`|$RY$A66Odv^S%tj1Q6 z^CAF(bD##%je3wVBblG}uvE<)i&OsAtkB$7K9B5sLPG|QA^O2=Ot~Hut$_s5ge;FP z>a>b(VD<*mV0I68+VU^C+jENJk>P3x(tO=JZAIWlC&y}<R`<Rq5r9Ojku&-%@CC71 z`Oq&geibaTB=b&Qw}d*}a>-HBK8z+u@<BZ=8&syaXm;`>0hSn5H+Ws+%Z8NPpr#u2 zYl2=<LP{Qyo$HOex8k`C3)N<=#yG?ns}fc-bpKR8>LN{D;rU(6=LSSm<ERfDdyG|` zc?jh`j8^EtQo_G9hL#Oph2;dnAH(U>YSGSeV4OU`>4Jt)+PPaYql>1H4+woLl`Q3O zzPsL1xhF1#Cg_yn_$@vfN`tn7@kQK4qM^CVb+#a{MQLrZazNLg7abx?33F1(A|T}) zNS)S^Ymoqm9O1SBOpe@hhL%ouZ(_oMit+jS_5UHCChz}}u5cExf49HzcXx`-n6+4K zC?I#JmZ*wuy-3wYVw7ENi(y9uo(Rs3jLvrivS|A3#Gr3pa<k#0fa6KVJ<J@yWx(0D zdp$45q6ge2apzln^pyy(yvO^kG;aD>9381C;!hI#tY<w342z8;`8rcgjm&+yFDgH# zUUL2XAx83g-QD>Qd$umW`iA`=$ym#sxCBU%AyWbJTC%on`)>DmcD5FW(!_f9of3Vo z>jilv{3(Sab=0goXsT{4;d;{}YpW?XvXoY<VW=hc9OnynSnV*{J6E;opZthO{!k0w zvMD+b78JX1$|_9guiIGmC=>XKTZt67pL+O=x1vfY)kWUIedRRjCmD@#1)ym&6~{<u z8N9LD%!{YotEZG2XPo0Xlz?uximly$<cjCi!=k7YJB;GD`Itt^7Xh8<Gn(wPz0nsG z-pu(PzBAN(_27r%P{2r}`dg^5_Q(k(d1(M8UAs0bULUIevBk~;#Pg)xy^6f!nGH}t zVYu$WtKqS>MDX>^?rsP}966_q<tgYt6~sYj}L+uz((=&;by9NV%gk)x=X7Ov%$- ze=SfKX<B~l4LUDPY-H7%v#E*QH7_qh2|}+%%!|%F@K5QSvGmyqN)B6&JB_Q@Cea)H z6ZQO_r(7WZk*O5{^_K?KwpjW?1)+*YRboYZ)Ej-yck|<Nb9&(2+dv`3(SpR#wTYU@ z*F6#Qz9#KSV$zL@x2X4IZ<D(K_FKfza}IV#D+c`mwi$1${TN)8^oe~_a?*P$YC!(A zCF94*qN1khOzR^?{`KaikIbcGA-9_mm~8c-emyH4@gvqf!8rw6SG!|a@&2TnSGFsD z3Vo#Ao7zqZkrKAJZ7({nP}Fz9GEZobx{)i(*4R*^34VJEn<Vj!>Myb^o*s^h9sGN0 zA2q&Ww*Xy+gUwn}=a<-FbqFa)cjfuM8F|jSlSYsGJQrv|mMZpi#*-UYZ*_es_>%rf zCodJof%(m8td@KCZH8*to+x;iA=<HnjdK*L>%INgo++mhHsfoZg2DKX5r!6g>UQZ! zZzMS13UQZcT5Sew_%T{DW!Z1j6)=IC{Gm^dH}8UgFNKn0_+|FQt!Hed<tl~ab7miJ zF}_)!JoT7Bxzj#H!VN0$m%9nr(5#myx$?S{H<JRT{o)Jbr|(j0L9vbZJsU8)fz(Pv z15*p2c2(KDr1FJaSf3|F>QpF7$J@$G5l=jO7M$O@zSn*21RV8W7F(QH%HP-d?pw?< zD8D;YPpfx!k<L!;(cPiw#NiPN4-;5oU3}J7`GXxviPtQ~Mq_ipHe08T=G7X0-s9~v zw(jqb#7hTX+;tPIC9_dQ#Od+wn}R!_eFv22{KeW`-``zO{yVpk{rlHi{LpI=>gKn@ zcx46Bz^%o4phN`I7O&hs5XKE>q!)No9<`ePyHHmL=w}~#bp4HOcHTg+(O<#HNMHoo zA?O%9<=88Y{q1#oI}fv9Hn4wS4g|V&?ohfOChd|Jy75rlQ}5$C60Y7H*B~u)ItbV@ zfJ#bHFb-IQY#-r1m$#h+zsV%XbhgOpE}?uyAT>^g6B!)Pg7_uExWRy46ZYj@?50~P z#&Vc$wxP<omi3srL(Dk-h{=8=`Eb`Rblpv~QgSqOQrU)@t`5VfN-*l=G_A5YoFHp= zL)IQi)@r>PND95*lDS6>8CAx!Kw$X<)eAy`OA8uZr%565b#2(+Uupb&rSaX`Ph%-u z*G5?<8B^PqvJsZ4;*H)c;N0DssSt|33}Is)4`6bWRgV8uW_xq{z2hG3%KA2()jXGb z4UyLxZ~nI)u(Fm*t3no9!$SigZ?lgGx|Kq>FteKQVhw?&jQ|lS$eY!`?n=+61P*Y( znl_MCDIXG#mP?c6z{xuex3Y}4GBvBg=F#XC79#vd=C-)>y87sy9SOULc}qn0$!|U< zzx!yN6!Lx%Ro|vyDe;&R9-#}saFg@1ek4nVF;xL@g?^y|GV0fmP!V}lZc_QcevGpe z-hx9F12API2FfV_hvu+u6$I8F16ua}8`uk9LYYnihlTR@t>us4z`oSndU94nJQ}-F z*c5-#16fKnE2SefjcQM_y>Fwd(y*%o-ljGPvmRwrI%q?-CNE96{0g&)Qwl69=@lvJ zo0%A_Sq(Pq4wMw6ye}As70Q8NF@)rcThpT@g)y^*OZ8kv&Y2^PXO6wjT4*`-J05Ts zU`=I*RpgSr%%)&y5aLMmscrBSMD;13*QfNV<!uf1BC8zR))%u+$8k)YGRs#AQn#WP z7rjiQVSmuvl-uZ-6%Xf}gq`iVt`E-K*idnEcSXUgcy_;ua~1ZpR9kbY)I3H><_S2Y zXcnA3dh!Um=tybFYs|+1xmhY$AFBVN{VeYN*|UOT`MJGNjN*e-Od?0Q;cVf>_CkkO zg%5uwwH`^k_2K*%HuA#K>jbaHiWM86zXdzT@?Ar*tu~llzYe7A(3CjwAMQp!Zan$a zOr=u@d3RVvcL09Y>GW{e>C-F9Wg`Va*zyno`Y#3f->)J+jslc=J{g&H#p%rF`t#%m z=Vb!Z3+v=B+L&MDXTrYc7{v5rKM55ElKqLr$|n$*Emf!pcBpbtzu97d!r1`CaWt}C z6n?%(siz8Ak4F8ry|^{EF6?q$p0_f8_eI+^&myiYQcc-08KV^-mxx9j7s0}X5F~(# zFu!!b_tL?HOSJ?A-0wOC5LmIB`Gplci@9{zw;?m3Av?FBWKww~Kz<D!cv8Nx$h@({ zyfKX<KW@#=jvP{OHdM_hZ@3_Tx!U~lMfp8%amZjP#FPax=0KPnc*nrSTJtM6e6QS0 zxN<A^%I(Wn?moQI_3_Go@=e|5P4|79dJ~!+<TmwRZhG{v>B+~YXY$R@&6{8NHor`e zHNVPjeto%l>|yhpkIir8uTGj@edl|1CgJM)+^ZihU;Xruef9Ilt6$`=Ety~Y=6mgX z!nL2d*M42T_UGZXzaOvtlWzf8v_Lkt$n9x?=d~cOw2a<?J4;(AEzs>%i1=GA>U&!M zPXGc0{reY-u~a}gU4T^>>#-jTvi+*DN|6A07qTadvMIZ+BdZjWqp~jxvoX7^4XXnx zV3`3B4Kk~<JIk}tnhW>R9DhA4v_ng@!CDCy@dZVzv`fphvWk8d;RH=9wNp#AbZQS5 zF<MotwOh-zw8?aX*0o_PwqqNV;*vmQi?(U2wrgm%V7s<&3%7Cmcx_8)a%;DDi?{ej zw|UFAee1Vx{?@iK@VA3YxP?nyZA(OktGJ8HxI85@9ox8(E4h=)MSobh5K54#l&iU$ z%ehIz2c|h(oh!PdOS(Wa57T%N0Wbt);0AX<d8G@xu`9bLVh!OY6Z|#1xvRUon<4!$ z3PT_`CxN@XOT5Kvyp1sqrLc$)F}%m?yw3~0d65oou)G)1ywQuj*{i)AQ45tOyxR-D z;j6vi(0((42bmxWtAC)N;>*76tGk{E5t|UJ?n}S*JGxqD5piI@`^&$iTfG24j{PgZ z1KhZ6TLA=&zzIyaZCg+Z?7$B!w|fi06HLKlE5Q|v!5J*I7p%b@?7=+C!5=KbBYd)# zceW&q!u}~-vGQ;cYNWz148sJQ4HwZQF>J#(ysw{Y5yObXJx%Px@A?kd;0GLJ5tZ=6 zM~uYe%Ca({0I!?GPYlJ@y2K~Z8&Pb<S1helOn!QV#a-;h$Ew8ukO7x4zh7*|XPm2} zz>s@j2%1m~5{kx?8fs5}jHRI9usYxaNstAC5Dcaa%ds3z33U=fKp?V=%ekCIv@8=N zs>{C&%-qAvC*cAQ7|h3v%tnLCI^Y5qpiZKY%+W0V%|{arG;k4@G|kzp%|25M7h!SR z49?*!Dh~u~;%v_6tSKg75fXsT?d;AYVx|z`0PjrC^{gR4nuYd%tk3&A8TgD${0z_m ztr-41&jM}G2MrhmjnE6t(0Jj`1z?R0EzuL*7XAzXG)2)Ft<eTC1Q$Uo8x7JEEe982 z0!A9rCw<VYa1uyRf++3M0qqY>AQLn&25e9VO8L?`?auDNLi3^1Kkd%F-~=F`PLc@J zM=j3lKnoT$N=WU0)Y@zhhmZk2{nS;B%-Eo(Ct=i9&DFA84-|J14uA%i01B#LvR#eV zro0I!F$XS|)^BafHEIz=V9aoB*P(2Y5aFkH{>|5-Y|&2K*MY6c{+s}UZP=Zx(1)$q zn4H*)?bwst*pDsQjvU#OZP|%DJOzE(n|;VN*)W_9+JwAQ4|xU=AQ0N84ah2O5e<ym zt$oMz&<&Vi0T)pQu5H_LJj^HY3%AYNW}Mp=!92Y!+*kbD3qb*gIo!$p#J|k|e!#`b v4c$K63k;bDgg^<su)fikAKL~Ox78;D4FQ*CPZUf6J(sgj6gmYe8xR0H!@KzW delta 1231775 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%0D4k)npcY0m2QK7 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Îj=%Kr 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π#gv(! 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 )rRuz1bSrAodq-$8F9 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 sC1;m%Ep|~ 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%0AGDr>kI8&uF<T;{<4QshvX9GP2W# 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%0ANbiY#zk#v*4ex)1?z1E zz9zCIC+=**?t8(1cnNkLEp4A7KRKc4c%`$#d}R3n+p^bu|3S~uQ!fTz^EEH_d^c#{ z6q_Pnnxgn1MJW>@S>hTpEzaSL(E+nX#vqi~Qk!v7XZ_Wl4n;4RBtW$IOikGh?j(Sv zE>?jqC`s|NxNM^`lC`H}PCv;<BOG0>CG$(m>74+qZ+cyn-}C9p07ryli`C9Y*2>2f z<H&6GnCyJ)zmjkw*zKr$7x&j#DV;?52n+h2+8Y=je8vzNaoVmHeaksBN>1uO6ZVBX zuzW1~^_?>xA`wAMO)T-!nahY+PXn%6Qc}!uIx~(l&sJJKl-KYQZXu=VL3YbRcH4qO zu&#PlgrT%EhVL2Jj;dIIWTy*U3-vh@Nk+n>)u8kOr@9nH<^bD)<8^Qc@oWuIz>v*) zj=28R|LH6&(i8d@a(bLjJUd5RNe0{P<yfFR92vwdc_=<5cgrjrY<Ni_oK2U)_Dw!) z-;8zhbEbqr6k7xq9)pL{r7t%aI?H3()EQ@g$RZ0EXHVdv;q9<fSRz+CqJun&)Cgyj z)Xs~1&6lT}TECjbnViYzsANBN(tgiYAQSOnE5{CyP}$3QS$gyDK3Go;sxc)ZKP4{` z>+(m0{T_ts7lGMiV>{VS)WasSZORAX*@N)TyBE<q1Q~5ll9-(y>`tf_EwrF0doEH< zEu77^?Al}hY_<roi@&l1%E-k*y~V-XdWfQ%(@&8PhA}nmH(UkS68*2;{0@#xN95{Q z59%PpJ~(!pILjLnx%g~mH(mKr#s6wzEAJyoBGN{$z%!=F1?l_>QzdM9g#!+k*;o<m zibdL5?M9eIKFtq#brA^r59d{8%K5!50+R#5>QP3od{fn|!<jDNMY4<0Fu0@)T|_cv z_X$cW)s_!WXyAjFT~Tu^O|N_pt}utcxZ-sd%%}c=55`s=vUvOL@7qk#%E8s(s)2I; zEew6n`lbNeK$*@^7QZ^9j4W#PspxX$k4(~PDHMm$@OHj>(pp2fOwKbtIp&t66#J`f zaDz5FZ_3ftM+nQuPJUG;TQE|w-o@s0Oxb0NZ-<TC+7Xr{h%)-Bdu}yKj+)=SXw%Ie zjzOtuXi)Z?ZmYJ_>b=x4zCrhXR`PekvQD7sQ<kw~eqVm+DluS*PH=}TewGHKtop-c zgVZ}~qP2E<wGQWMtrgQk)IGJ9&@rB+3LSJc!8~?Nwh7%TG6q%3B}bbv&5D@=>+4+- zTI74P=6FMac3hEGuzlH%O4q=9HBZA7)4^c~RQ(i8FX+rJJSj-cRfAezEPQ_WDKh36 zx>q5@5QJDQ;5Sjf)u2GTzd(}*v3ah$oKh&=iBr><x_UnX5usKT;}C@Pg6m?5O5tp7 z=g=JG+Dc@#JT}8i^2uNo5}W-V?7}mFLpWQ~PKnF{pQN0N(_zaLx^<?h_y=2jW%Z>+ zb+LL9Jf+>EXzGqwvT-zteUnd~Mnd+KYt*R0*Dc_~edssiun-c9efykO9+v$mrL<BV z9?5`h9y{4?506E{56UofY|bGX{c)-7%T-Lh+g^KeMEmk^S&uC|8en%~7N9IKLLcvj z;MueET5+d3W!yU3MkA`emIw!QDlK=a{OMG~+|xL94{Lbc2`9z0xTp8<p8oPZgFpB1 zmccO$q8--IsROn?%GQrAK`inGlu(5E_{ps0-pW6{G)y18S)&HvIEU1@vy7%tq2<)R zwm*ICn1_-e4lsZLA)%eu5#>~%{}$lP6wM$39bW<ExrcDd!`@r{;}84OP62UXpcV6w z9f<)^`jV4@m$#sX13(-<$HZ}W3K9U207wmZ7yr2EA+YlhunCXK*y{(#dk-C&p*zh0 zC-af?_oGWdt3XeNI8ha(hwX*{_w~n<5RNz;0PAPmye<b1k5WmKJ4d=tqR1^B*WeJt zKmqjRb-7&(%9bL>$zWI%4YXG?WGV*je!`Qc29u}=TN6Ya9nkFo;yMRxN8rxwPn|s< z)e8)EBtxZrfE7+Mnq@;}7)<aJ#V{1wpo!lgKpC{wA0GL^E)qU0LWQgAKRx*i!tM!h zQ-?;O!)Gh>@LU+-3H5UnISwq^_9*|F0c0RWTo}U+TxUtak7N6v4fqYav<#DEpLQ5N zEwUVGiy8s2L*l8A3_oGSxiC=^&xRqxc1mN#ISxq)<Y5YzA5U;^MuncB7$&eqJ)I(V z^$o^U48s*ZcB1fE%ir<Y!ZDFOxSRfHWsaO*j$Wqzxace(@fX9V|G3@Cs8D}mB-pC6 zf6Qin%-@ZJn+otC$10PdM_p`eNDQ{GV|_Vt+5PH+7|hHY44m?O*8Rongb8W;iLL(0 za61G!3Cn_=WkB4putX99Ym11dzKo|$@TwyYKe2cHMP5IW#qm?#lwlDjJLJ(6RD4SE zD?AYkv!p;Q@h^EEp=*#(v^eyLv2|^qwxztNs(xxs17My2=N=&b51GP+Ny|aFG64h? zP*ffXsE3lKfbk8$mhwb00*d9HA@{6Ju&V(_P7SB$EJk3?s&%@T3q@f<xb}wOQviuJ zCjsKHrOk3M0n*-_I3EXQ<wZGZh8=j}OgY-*KxzXS1CKfkf$2Yd$u#IW&%SCd%!S0) z3EUj3Z}=*xP@8suo%TPJnjC`h-UY&Q0Pa0V)<5J!C1ec%<swr7PS)NlXbaqh2}yf& z<orUTR`|-N=4_es;0UO!@{u_LNOCRIy%BQpT*5w@QCfw>twF+W$U!KtK7Eqg`MW&0 zi>X4w(3C0B@L`M^OfnDdQUQu*@?ED)B?5dH%GAQ`6%i^ZVUMp73wzeO;srcy`TAo0 zR3MlO&?O&Lc2eKIj0ZgbA#b~LY@U5I%E^E3NbTXou#-3>SKnf#kvd#Y?kH>g;eOK0 zg-T|O?qL8P<}w(>@gwo6!3(}aPR!L$z#k7lki}PyeO#wB6Z5xUb(iljk;&e+Ecq3J z&1E7((G_aUKPv##0D0y1XafLMmcYQ6@023QtABO@7Wn?ipMQ)7B!>VG5b}vnng=5t zEGU<|26zIMpkd2U!Ly;ypPrU)>wkYf7gH9#vUFqEoXJ<U_hw~<?>hC3v-=9K)TU3{ zO5o(tAtWMcSd78ZlDtf>c-8v?U9R@XjtBUQY13?h1EJ5v4G|i-YyUmxyZN{O*edz? zAMr(+7Y8qOyZrHX#pJg5d35UM4ZPuoT@rA?bldJNAOYHdP!I_0`-XqBf5boHr?)x= z_-!S2+N;;ZY&k4**4R9k>+_<bQ<ZF*65xg4GYgKJmK!@y}VHO9feDz1F~h=Sg6k zC;1wzw?aU>f6l&lo?8P^Ufkt*LcSm&KX9A%`BNpj3i$By_KMdOUm0UlMC}7oeZ}Py zJCg5hZ0^c|0kRhO;vD?Nr3ECMi2l+%E>XS8oItO)e5}ev@Nm7BKffjB^))s3E3fS* zfB|=9^=nI@Ni82c2ENu#&)8KmCA~OKsQ_bL>i}sDxw==)+TtD9xupD_yvD<y!0Mlr zK&7zyA9H_Bo&2a2vj1myz4_~E-`nr`H{_g|U%M~Of?7U;N$alROkT0Cd+~te>JLEe ztE|Kh>7CFM9-#OwpOGYUcT(;n>u01Y`YdJ2447(ALoh?Wz;7ZZZw!OZAP?VeB0Jc9 z!Vi2%zo3$^%y$QWm5`QX&o5{O`#ILcV0b0Sf`K+7k0bfsdp<$C-IU`7IBH0JTs%O9 z&0_HB$2?SMIu**h_f5@V7f?H_VZhH}e}dG$v2}cJS4Y(I9@S(r`u`K{3j6l95>4^! zd;ae4?-zU6>D{{?eSu-KwMv8MNQe7>`mN3&b!;9F{s)N_hYFA-_Qm-QUt0c@nBJ9} z;CBX~d%RE`UVsbv-_J8&ze@rn=DQ3Ew3qc8NVZ@e^-kiJ5NiM!1OQAIA=E020~vsX zNRFL40Dwt=U|&8BM}e^mJ4AC#PYq=wkUXefQgU4$h$EP|H-k6MRON($YmVliY6?<K zi}~Ge0+F6v$RDiM$y&89VMZfS<Q^~~&}sKvcgV`)bd2+7_r93jx5Kxb!xp(k{zi&8 zPTjolB%Uh?my^spXq@%u;IEPHQ+m^lfBt}byF>m^(gdNAW0Y2%O`6EZk-laR6mS^} ziz(1Z0|b<)o_cAylu#<KqU>H)`iBv)%T+qAHoefL%kH+NHg^wT1ha@Gk86zvt`EL~ z-Br!;Mru7}dt|ENVoj2Inm=y}ei9UL>gkr_E!7FT`y^xVGian<cJ<!)Ov;(Fh#4Y~ zfnWs4KxZ%k`WZYj4GgG)SZ2W&VDw8Z03vzn!+=#^?Afk3^PY6<Mw2$c8h<`+%+s15 zR&)4sP~B8KcB8{o{0sTkxT(}NnNBn5n?w!sV<o=)Ck=j5GzwA=za8gF)fl6wJ>@wk zWBEiPUO{6}{*GeKkjP2-f}wJ?>jl|jYFk;^7D|`SWJHdK8oc4a`PF<z@aIY$z&fL< zp~xjQ-5WsMpfX+ufweQ2t96(Gy(<r`-brW*cv;m2ygHK{z>gwV^MYtm*moj0CU)j? z!Z`H{zuBuMrQmxU$FZjpEUYtFG7Tf?F!AT0S3KhZgDLqQW|VVYO_|QgIer|*so=%{ zdwWwwrgrlt8_@CtFjH)9NP4v6l%W#T=@I)by~hI!&FncJ|7G~Z1y<s(_dRAZDn4uD zLqh8_>ZAP9-xbKR9F}Xf>HmTjl<Gv3wkUQl5U4Y0VtAU5u9r^$r9=ZtSxatX!lepD z`HN^d!iNvuHJQx|NkN4bDaK7o?xV{oaWKY32PY`6ty41sa(%JeLWPs76`X&f$vs$5 zO4wNCx<U*0%+VSY*?t-8A9b2z)C7Kr97#1$5|*kHBA;7oG7zQzIxf8Ycsy&S9S21! zRTiHNA7FniJlYC3)sGk!zStk}?CGI!Di>IV!&0?JYqV39SK^)`4~NeY9VBCa>3#a& zC;^Xq`~F+5O`GRAUZ#$4)3EeQrVS*Z#$YrWfKByAlo#n0u_*HHWOIT8pG9Id#<sd! zp+|I(oH**yT>j(O1!pBoWA9cw2^WKV${erDIkO)hroIj3ZSMMHVsV@fiep9m`SR?{ zvn$^}JR$%0-%)(@LIYuvBgN(A0v4dsK!c=QtP757K;yOOq`8Whft0cL&|dy&nN5NE zvX_ex?>+#cs-$A~&QWp3Ae9()Wol5gKJ<Hj3Hi!+lFX?>8_Gx%R9`BT!wXnRh}6tq zXv4`8jgi9ngAyJ$6~nHY3n{LlI;pD1eFV^k;l?eS>O04L*u)Iq3Yjz^)!mO^yQQ{B zmCqbgH^S1^?YV?a_2#E@V~2bSe(v=S?b}B3h-H@JMp+`NUVs$`U%>^HgM3@APsb9? z$T@`*YdG!P<Jb5(%bYx&iD?sG0t3H~C3yQ&OR`=@ygT{M&|O{-tPf;4e22HGC{TY( z<=wE_u$^m~X)FO0g1w|(5rR1$D?ElccV0I$Rxutg47rr$W;@OKP(!8P)!5|8gpbbs zqijko>`_BDJP0`j1do4BJcWazgu*Ex@==t`^#IIYHJEi=o&oIYQ^0iW%aEV5RsTU6 z&KV4to;l>Bg86*CM10!S%>DB?0ynUHVDmw<P9?kG75t{Oa;I8tkgMyerGA#qw^5|O zR?8@_<ca=z&w(5}QNR=mw)C-kmdSM`iyuUJ&JsWQRiU5ALG9csQsKF$=wnZA6!P-J z`Oyod%+sZMyS>$mt8JTHPYMdM^*Oeg7=qwt6tJDBaeGoxIxGU*<~e>U3SoQg0`&O9 z%0WtdhG3JbR65&vw8ow8=)0D_z_$l_E`vhF&9}@aV1-zidd>iE4ijH28(T}TXvdao z`a;$Brc#M>sy=bPGOr0kpUHbIp+R2bfh*6bwr``Qs+6`ZH>I8Z{r8peDX1UCE(Lzw z>9sae#zI0gryE^4bsV<Szc)+lcLc}kEkHqwigwm?!q@C!;;1^D-wN2D_j}=vF><FD z^>7OwFPuY+0eF+A-NLz#3+n7fpp*_49f#aW<dIumQmV~4d!wU*+~$bjd+`BFse-Hy zB~)nwJAJPQcr(KPGl?xzs~N=R-3oq>fG?%0rBr7|2RMqj)RyE(sk47ZV4gi6xtBkj zULFjO5*@_dmT1Fzw7kQg&sb{*6rN0ub(~AOBzV@d8U$fU?3e$^&z`y*U`iZSzU{`> z%`;u6Xc_35scYFx&S@QJD18~nKI6OlB2Zy%C7aWDR4~ZjuR#Asc*U33!z+%)t#!oV zg(M}brip1e*8M0-EUZmZ02r>oe!l6ac+up<()7Vq5g3(%oIH3>YdA<N(eSKIwOUZE zgok`+AWR+W_vK7m1l-#154~ry#{0c&&p(F{5a(w5u=NdOGi~$n3n{_8fZ2YneebVg z@y}PnW_rIl6<+jlILLi;H%QvhJ(GBQu$O?4XMoSQqU5m*fZH=n^^Ri^uhi`Q`OWcI z)^j=Qg+A;!r$(&XbtBRLCgrU7G@U5L8zRFt@6@e@K@gR2*E35@GrO=$e1j_o2*@2l zQ9Kyk4uHv)HVS|KL>bTD_Aop?j8whxfK8-b>XW>2ePDEoP$x3IXSa*Ve(lPHU+z)5 z4Q006e4^IAI`9}a4W6#QVaSu*-lUYQCf2@Z$Z<8Wvq7FS{jlL2W!~9=s`ReGY}jnH z;r0U0#;T?s$H()3_}_gMVJQvkbbnvd@cl+8!#1msmkbN*XWoM&#tgn{1AA8bh5diA z;deD1Lls<_ii7h7rKFiB^>m_48ya`uqWq6y!?d0*w0iWqIc@g%H%-{w*JMw;>E7@$ zwSU6b!msE6*suHt+rEzGjlSQIa>4nr_>;HCMqfWN!{Fvm>_1^o+8gc!ss4C_^#_;E z9P^n@Cd))dsTy*5>6i)H_;?;dx3THVgf3X7$Exq@=MPZu!P`)NqHH5aNpJii*9+6X z?{2HRYptfS>khDf-Tm+14>Gy6FMXGyM*;K!4YaWTvJ6w5!;W<PJ44}NylfRkr;kr5 zZAueh_LOYVzZex$n^?+5uHrmO96E>hV=-`Y*&0NXAKkHhn%`G>{P@XMd41r)@#X-{ zmdpXsipp_;$Kw6h#R=+s!Riiix@^c6$8V<`7!O{5)T<>mt713=YpPPQ=_0;5bL;m~ z<sr~syu`+!%03|_vx^HakRp=GHKkQ|UCZ3Zz(Bsn#y*?xDZnjaR4bBR{uJQBaGW7i zjJOZ5-4q=ViBF8{dci5mxkm0iv?jZ`pdFR3U7AC*y2x`8Imw3Vd06#d{KI|COah0d zV-p7?4t+M$Ful1}{^2P^bgpqc9E#~~QoEyQ#4(qta!pg(@J+Trg|P#va%A=%@PH4W zDGMRC|K1x;VLbqQbDeNFpf*3u{!O07U;1_eeNwKO)QtTzcnQV%-QGB50qHoAN!ZUa z?|%^ZhH(s{w)h?HJ~uE8lsx*QXY{dl<mt$jnrCIr|HsgMh9%X;VE{iMDBuFYJpx3; znS11j<zC=QP0dxgS7tUrL_^bZm!op$s?4;^78;tGnVOZBmYO-T%*@KhORpc#hx6rJ z*E!eooag@kZd(aIU6Gtt+pt}`Nd#j$hsXeH8}90bb!YG@pUeUpew?g8@Zyt4wp5P6 zWQKv`BZ)5CTUg6Shs3YdDnrvaVhonS0eWWO-7;{SW>dby;XocJ1R$kxpn&|iIG4oc zkSy+0<Z>=@IqIL}T?xEMZ9t5nq?ZO5_Zs`xRY2K;Py_We`sJKP^OTI<NOkk23;ZcX zIM|U5U3Z2q@4l`K7fEE3(%7Yk+HZ{B1aA|LiGZ-MNUJ}lRK$@@f5bAjv0}HMU@PQO zGrBkzbHRm%z$J()o(8{pvpljDA@A%`UuAr`_3^;Hp~FnXx1uX)o;l~IEI5u-Z<EL6 z)W_!;ltz=jXBZeN)^*VP=?ktUN4rtO!qla<Ly)g)Jj|BlJy<%P?aF>+=1sV~s_s^# z!b=zb;16^57Jq-@EUVIqA3JE(1bb5CWThx^ccr7B|4T~$t{nCFSu6(DaY*W;cHcH9 zSx>eaP~rKs-)<R&tkty(Ow1Mo#UGqF+b_WXRdSJbvKpsl<{Xz26r-jy`ZH&r`4ReC ztzlJ7)Rz&A%Z#3<DzK__MhmYYX}B)eSoky}l1fxDzr1e9S~#lg7dwj582b?bnb&C~ zU^6ELKm#q)we68$2=Z)5w|+fCL1WjLqWf;6M~I@`O^){Md=9;Z2hQ(wYnJkj9gKSp z{zo{+skpr3u6r412$AIBwwe9sx1k8nJ)m8{A$dHwiN_yry8kU(cdI26$xKh<=mhaZ z$*v8|X9cWv_Yc2d_)dOnu4hx@{ftD<CbH{H=)-TG!&ew;?_AV$^~UV}%PwFbWL=-O zSXe$>9Zq(wo!kr4gjlDbd3&sRk}IC}vM-oVYniYNvjz4_3`aDqjzf@;jO0k;p;fgx z-U=ebS->KfHiD>2uXB?O0rP|@XKt5`K96M6S?X+4S(wf-PKZS7NJ|$O$w+S;TDmZP zii!H73-e3^<9&d=5ziy-+<gk1#ipB%D#>pSAoOOMqE6<J$Uvet<?<-xN-G>PY1R&d zKxRi0e0ncs!$bl3sCop=k$oP)hVXlKt7cnBGR>Yav~r1?1YXghJ)S{sn9XdjBvx<p zg&mrkH(4i9u24WT1^1co%<x11D1Wl_@RZeW?(PssXlIV=`ZmzV<-^W+lQQdC5a8D$ z_RF+>TxPj|L*_l_7(f^lhL!|Zhf&TNNB?jwCk=pe{)0D4`gF}g$c_Q^GXds@ZZ|K# zCXI4jEueQTP{NkJ*Kv~EE6-U7_fhaoNzdJt(xJmSpE`1WRqy)Q*nD1N?AOP=23B_0 z7-~nZPKahtZme`=Fs{cDVDIM4&p@Y#I;WrX1s-Rr?SDFLy>ap2M0MbaY?!X^RQKpe z$#BpKIKSv|>sEJ?EKd+5H(8q_xxanqNq7~`W*^Oa;`_`y=-XBjqyjR`sxS$jw|QG( z^8AH$K{bp^9_1WUf+q&K>0*Ny`rfX-7;O7*hhkaJ0un)H2dl?C9*pI6_fhR6-^S#U zExa!EWGan)a834}cDXv!A2(53jhJcbJzqWY9Xbohg?zm*auwtA@9<eY!dRZG)z<eN zo}&-rCN3`Vgxx8_55)%dutJ~T1qpj2jdm)|1=rz>ldOWCb-cUMHuJW6=1NFc#=2u= z)LyC5IYlD#gX>*{8WVC>a&y0%sF|7ANG&||tc2Q`U)iBbr8kR|_sAaIeQvL%=6VB! z%w}#feqWsF>+CI*)%u>PZ%k_`@A4(cy*E7Ts%&Pa63^ID%7#|GRb%Og{Q7<c=Iw-6 z+Xe~W&mLDi^<KYl_+q%5)o4i&2k7`C>6U?{w5PD?z6*A~3#3f#dOBP)^0igNg0s+u z9LaWlx!|_A;C6Q61q7lcM~3(TV#|X=CpqrE``r$(U9$q?#vxjl<^kOgny}DZ!?$NU zBP>^IehQD58C-j1&JvB#kz0^m9Hr{>>`#RMRfUnaT7WdR)7uYG4U5sY7GwGsW6hMZ zc<%D;b_atOJ)|OT7%m<fp704=T$;3}C5{6?P+ZnhTItf!hNWZrW51d%fAM2%DQANi zfY|n%&JNh8yeM;PqCjKeP-;WUr9Jne**Z{%<E6{l4a+&VSj%Tp4XW;RyHTe?a3)Z{ z4w!CaFnVfSmWMIp-A=l4edU7IkMhz3E9XZ-+!Hwu@ocmH<;s^U7Z+D9{fIhp=gnoy z(nOW)o#++q2i9o&NX&snZkztCF7RL7(aQ}Vn{Rz=>HpX&cgE|hw5+TBzo6h5)Ir|r z^<+^uVW#_3L=5YUStsgh>gw&R)vnT*%Rf5zw})T8aNWZmTBR8E$}74^f3U&!sYk9j zjnM+k&fW3-)OX-hf9j_Z=so{(={UPgeQjL*R$v`*<zWLN>yMGFiubMc8)r^_8aMm= z-2U^#4=Vn((#%{Sb}pR5xbz@CY(+3XsTVDIEv_>WH{|=7^-gqcR&H%hilkVbe`C=3 z-B^r93`Hj1seY?_bUSGJR*+R9UKJHI|8ni~;@aAe_&&vowE^pUR%VxZJvZE=SBxUL zY^r8#<TZ`OFQs38HGKJfD?x4Unj5p=NdLjdD)867h?%*G<|m)e^Li$I#f`haKo72q z9$6QY7mCY<B3Wx6{T%x~{d*bv&=!_uMcwf{Y-|FiR<w9|d>_pGE85{J=3xSAft!0L z_A)~a;*e<%NtD<?7Zo7}O2S9}a|aUHC<h+QJ49A<18=^eetPx#BhIqc%yJfgdY9Hx zut$yWDrA}$d2Ii8ZQuG7*k{YO>&Fig<i8neelxnVq|b_G_Z|v~n}8?(LJp}NOs=m; zw92{uk<lKrdLBtxIh%ufha5NiMwZ{CXr@T%TT3_OC=|y>ALaCBeA|j&EQp+WIm)^1 zADqs(4lwL?>@~S@ChnijJXQWXQ}es$!KXGhuPzp(@Iy;Iw(`&RfBtUEJFnDmFM#J; zcHKqj0EMtlfiH%}Jl}i=O}rR>BHGLRN4Ud}h{yIF${P;3k~I??`-41M&uxi!pVKWY z!6(7GT^upKEC$Z#DMEn!*kVX0aFL|eg3A%x*JL&r`e^U|^FNPX`FZTT@ftViT9TKq z|JkI$cmj7*!s&TIh&*ceXOPQXAkEZ0#II>K>G)~Z7VrF4wtQ9TpLflC&Pi!@z2cYc z2>*>~<Egnf%~+_0o84oRqi<`rN)G-iJ@TvHa3tp4x>r>8d)}p!qFb9UappnBoCgTf z<WC6MgQSoK0Db2je%I~!U4Q$sP6%5B#s(>92I-5J`|5!G*o<>_q}eB6N1#~@bE;lV zD8g3IY%u?`on`J=()Kif)WwOr!yuLYEnRzVb2m{)(D}9}V&dn+DG1d0w(ltD`S@Bm z>b%r>v^dMuIhsN6j9VJN8uL^C?Y(0^H$JcaOmL?dh7II1qvn-*4G#eQ0h)c;XkCcu zwb)-qi^JvSht@v*GJdCA;L&v<4UxQ{RaKHhRW0jldeMIH`L(z|W^2>kM{diS{)SX! zr=0Q_KM^gKtTuG?lb=-da@D(nGq*3c-;@0E>GkbHUs!AZS#7QFnELzHB&k1Ap@Qa= z;9*0m{~=s_)7^j*+6w>v{`u|8mwmbtwKE1|#D_gMf{%~iUqY%%jwkuK7*`o6Nu}KB zS8y${a1@JI9{IV0hs&|RXKT#M4<@KMcl0OJ#1at*!y%F?SNe`zpv#q3$|H$bftkE` zZRl2^%0t$Fj&HOc4u;~3+;;sU6f<9I^hLJ0P4q@u4*NdlKDSGGe~MyHq`BIiO<jm} zI(w_GIIjB_u`+3B<++x2ZbLbpbk_HA>=C3q^Soy3jUCY>iIu{#f;)Z{<pnn^HR}qT zcWKp^7@15*iraS3N;-a7Drumy;VRYC(x|$)I#Lu%tL19<Z|zoLwY<Lsx?ny)w&TTD zO?t>jp=Lw%l}k~3Yc;K%y$N0mv*E2zcm2`r7<=hG8!6^oybL!zML(@FGt?7z8{&qC zO6s)%BGQNgJWR!Uv@JvVi0(&*YRo5chJ;mPbr`ic?RYGuFzv~8YT$wHQDOn9wJpX| z_ir2PmP-1cgp8Ri8Ky?OBQrz7+!gfr9??n0LDq7;EkUp&Z&w|`cRBHq(qXP^K507H z#h+T}s<QE@!0)SappApkP0AIz%wvr4GV<FY+>5_gRk)-Su?ffylWZ05iA0eh<cr}f zDT85brg8zvd+-tGuYKldL0w?}nB%kjM@rHxeUrr7W@nx}lF+ZLxJHfs`?B}+xY8+$ z`D~%iTjZHq)J(oaZGo0&MEVeERBIQ3N2H|W{#F(T)V&?p@NT37HAbMIxFq71)XUW} z=~#_SKzsKkq!Sg&PVS(XRj(Dyd}U~qYw~(A=Z<?jEWp<oT@K%?@y_4wJWLvmx=3Vs zcSk@>mHw`2&gPC{cjg}WRfWq7P@>jBUjLz#c<)q|PBw&`jv1c`x%+kQ_H9~^?avBj zlh4?@MXK8F=@}3$y2nGyiFrJ!2kzPCsjrYHMfA+}$%dS0Lp%Pfd%lY?!Dnf9rEfs+ z7U%#Fu37mdC0Je&qQBr3><N=~on)zP9j3F#6@zJ{xt@1?{wdsCx>UVr;qUx;A?NO0 z%4)ua(#^gv=4ri^Qg4iHyPOP97`Ca}C&QY@>IX83u^?GgShm74k_VmhmU9r{XYi;d zLYJQJ5^2`yy7}qwo}lBNemxW!BcdN{`>X*8h+sU;pbP^3CU9jr_rMvJwErC3GlZW1 zNebG?qiqG4w~W<cMSoePmm)b$V_mbNMzBlEj4_LsIC@rDEKky-N-G1{NQ2Mg98PR0 z+Zxg_?kAo~#AC^@RC+EkA|0z|q^&fZe8d6|(@>{Dx%@fvD2$^DE8OXolNi*X4UMAU zv)|P{!v@hQtF}`tH3b!8BW=gIzuK?VWXaO9Cnc6tBsV<J-33^o7~RhN$d!EL%WDNv zCmUU^0qkrry8!uF0z^UpP7j*S=v8f>2_BSToE4S*MoWJe>4YpC|7cS*dua<9W_$eX z7tCP=pQ{p{Pt$6`5J4LRTBLj#Ln|U8$s$?>Y${S`RC0l(Rz@cfa6V27u4$4{B39>2 zvY7|O2@}nM%7g;GW8(K5)ug8%8xv2vNz_PQb^(pGVHCfsL==Bg9?-g=BxYfsC3(yy z8U&vwk4uDME85c2$;rc&N&-_w6Bx<91ib67BPPf?-BG-K=z-k9Ad{`93oty-d|<8- zo+lwCRAQY@stLPE3VB3u#~~;uN=vL|2cq^r?*De5?1~WfL|g9E4$O`OBe#d3(ATP< zG>LkoKf70?DnFAN>uD`h-)MKbqAb_5xHc~NUF3uTs?!anp=$@~j7&TYzSLWIRZ-Fa zJz&!<NB60{p`^_{2Cn(sQCcU^xUOc@9CwRr!#W;4usbF(pXvWZou4OhYDv8CSrfSx zG6iux<dYwq+WFw&SR%Deb}~~1T@KdRZ=&V-6jdA6=B~k0RWCAfy~OW*OVj*R4152s zZSwfT9(S4}ZYlvGDAmLom^<C+L64G=I|9yA>A3A=@$DheIW8Jf#mtlA!-x07GyxO~ zM&^|bN2nQN8<h*mx*<=Lg2-51&Z2RJ;?s1Pkbd|l2by=_C%(`0TbX!ufz>Pj;e7{u zE{F#$?uy}PO<!z0QZE=s`-R~xL-sqrU9Z4YVM|4)TJzvF?}{Z;&+7&IUE0^^nK4<I z1r;xDlI4WoY!;Z;YDH4*?PAia+(KC)_Xe<4Kjzc(uOz$t%~O_YclVNwka>7#k!+^C zn$DZVxnw2EN`ESdxeOduei<C@AQJW^&-oq{mk?2xn1B5e@X%IGGGCDsPYF#piLm?( z_s$1<?A-n&(%VZ!&LZ48rk;xK0W{^>4`$r;2SgbFM&=SqPlY|V*A~E%I4s9AG2Vcf z9~-T7_57-P$1}NfP7gdE<!Mj}x`wwDK1OdByIPY+?T>ESzw>^BHZUGY=cGCjPjW<e zMwIS!bgatC%h{TavTNMMGY-0#&vb}*sSoN)NX*NhDI`8K981`3Jg?M*j#$#Qfc>0* zv->wOV%)}d;K0!Uo2rDmV=RRJfZ>ZcWc=fD=K?1Uipk7qM(ih1Q^!<lj_jAr**B}O z|MK4N_*Y@=Nsu|5c9*}i8LIdA-g`gBK(E!q4^ZAcya)2WeXT)3UhSnCMBA?*>ON*( z<=ffQ*Bs>n*0iT?3xOmeVnkh1BmUc79Os<tq@7XJt(^<w1&T;&mjmmF_wt(Pk*=%m zm*evrpGm#k*F1fV85YuFw9u}{qiqQH7CzaxM_^jL-*n;TmoCnhGw#KK=}6lg<O9(T z^(}k!ZB!XKw)DM?!nbOU@kPL%bcvQS7NjT$fzOgv-oXug7lW{N6Tz#@2@wM1OWZ7) z0nx%ti-O4_j*!)o5EeiN1rG#+M%5nOn6)!uuXQ4ZORCVoWqbI$qQAouq5G)b9w!O} zb+Y>?iO<A!#iSk6WwItHqmz*WK4z3+@_moQfAX}2@eUll3aE6>eFu*W`pZ5iz6_|e zy>nntRof`C+hsiyeAgZ+C3kMP2IN7##9h@V_o{KX>h@7so6_Q>YHad3XfpR|=o@n7 zOA#6R4ZAF?_8h6liz1j5js-zPsAt&($jg~MZ%R<2r^4tKz@w*?A{HPK@5-Ja5cR~Y z=q^5;!0v(aK?ZEJ2_KaBcG-@OD6N9Og$|cht{AF-Lm(qj#ZNjBI=9|}CG6JkWCvbk zzYWdRWR>r!a>P<6yyScw#}<lGhJlCvxW9^f<%FV4xZiVGzn7L=<*jq#-jtkBx`xGN z_|s~7uJb=xLEZhQBT?Z6PVThn9khXP6+OH|F(YF0-AJA?#oJ3I=`2!z_M9dC`?NY` za!&+O)%F;g6dyrr!;4H`B1iU$%+AxH<bFjK_md<U6WHTypYF1&2du)^clQ>fa?xG> zfHnDWL9fWLu<oM`9idNl2?n{?_lO7<T)|}6%gj%pa8aW`fF4X!;Pk1gx2#`6Tc`WR zYq%-_kM4vqOlpgV_cq#ajs2aRU0+)vAZ8ztyFX4KdqyO<suptemZ$D)OKwaWE7X}? zt$>H%Iy9C^st(?iz(pyWQ<v3K=VxUFU!7{m*6Q|n2w7jST^LV^r`J?oB&&p-9^7Yf zkxetIunWY~5~c07Wdg&7n#8&oJRSEb48)G0D1fy+y`^dh=d~c3CVW?6FfB5@LX|C0 z<r33Al!7#AbyX60E^)MqRiUN1_b*<;NJW|o8G1466JO?S+v6Hd@mmY2XjOH*7#<+J zBu!5|XMW5@CB@~qP&`HwqBYthS?P&UqX)?df<#MxQXpr)YB;A6L(N7putmwEkX!32 zvK<ta(H<qCeHc~HX#JA1psrf4u5GdRL!boByMa3JUi{vb<J;8YLz76yN~)<;$g#SS zUw_4qcQ@Wf(ZAo@VTXCLsS0_;Y^3-_+}03$EtrYvCTd}}!RRa0{8_jfSKNq8oL;2g z51}Q3oxpsMqlR`O6%?xo@>?MrXwoJZOC{BV7zgbmt12|K?D#dQ0Yj1jS{K%c44y_Y zA9l};dnzu}k=2IDCkjaW<*bK#q+pC(Df%fX$iB}}6vjnX`I2+)4unLc(C`ICmX9eq z3As4pGt_$dOK$(n+`*$*dM;>0_xm(uvzlgs&bvnchn(E47i^zXOHV-^EM2^5$))&e zQxlcz+KUm8rt1iSTXI=}KE1EHDc%!Ptj{I7t~jyu1tPKjAPF66BGpj;LvpnDp^XEj z(U`OmXjvFN)x8+pc4^25a%WeQPXOXel9rYPe>*AbF|bm^z@E0J=hlC846UY3jwAJ} z-sv5nn9LuPgS^6NQzEOw)XH4a7WYx<K6d>M!xc?&zTDTahR^R32m<Y-1K$<q$Xyp{ zDy(;{&F}g|oqtQpEo#xL!=$t-sZX@&H?V57&G7-EHn;u2^#CDPrE45h_v!ja(evF9 ztxxz*c2REE@RdgNwJ40=#-hIS6{@bDog{hmSQHKDEmd3%Fxh|DeFBVS+m{5>VVZVR zHHK?yM^YC`HOQ4Y2a6L`H|+#Od(jUUSxXWW?m(6x^TcZdRXPch(<24xbzY97zjq#v zQ#ima_=U4G!80<|H<~0YU%rX-#{cNbBDB2;@NA_;Jck?TJ5}~JdV{+Qq7Q~e(ql`n ztSAk)qcaxjPt{yeJ!?PWDcIjcwiL#uCW18;z?%6~?P<YHqc{iMCR#pr+lgS&AUbyS zF*NK>AR>n97e{Mcp=({gz2W}~42WE4+O!p{Q<b`fHCOGSdfM!`UqbFZv+OK;(K?~; znKtevs^H#Cq!cDgLZTV*6gXE$)V2uaTaQw>qwnR07pMZ#+^Q2c{*jabJIt4u;0FfJ z%^ZU~`2L)D!o6>oU};l@mDl%~l2V{_k8+;9PL(LV`|ESU)(Y7hB-E~R_^YElSt!hU za{)_NncX=n33)y?L>b<DLP}tG_#?Gr=QTOH1|$b8F8KQ58h!YU<m%d*Qtt&Q2X|qo zb0QTHAN7@Zbv%A*+b4DsWp`-DAi};-89Qn8p3*U5Kw?~(QaFwkiFxBLxJ8uF%Dpbx z5Jz*=t82Rc#x`5;#V1<gGpRS9_3D>?<$4KC>vJ0pXD^4GSx#GocZ`yG;C()cl0EUi zPAVX?xclUaY$;5NqheIDAY_H4?G3JvPo!1KAm&O6IxDCVMdIEbh<%YIvn%8Ua@EB8 zfe-EW7Ng<=vIv%66W<-QM5o?SrRQEmmb>;Y0drTSF4Br+f!>Kf8_{;d$uZk4YSA3I zNDww6eMcl%u7cj>?j4`Z{VM9Oobk5Q@;Z&gFEw4=3|pl|_Ld%AO^HrWG2f}(731U% z+3hu9@bPPELjrC1hP}UzN9)caiAlOb5;6nwGUbWY9af`C-KUU?Y^j0t5m%6_<Q#F? zU9v6x4XpR!0nhtulL=jbRK81om5{%?V1}SOCu4+@gbcZ^ZVpc8rL^%SbstNmeWLr7 zVhrYFvXGL?CSI>(QA~=eH;2&CV;ryzE)FH!<0}nNlnshi;y(rk<y)@sbyh}Xq`A`d zd`&b9Qa{9&(mgF@J#rlGq~fP0J1iZLL*H9&@Pm($;HP6@VCButU*6>uKh9bQAkFVl zvi=6=w^3lN5t#4E$VKA9IdNBt3cp8cd1S8?mv6FMo!s$Eit8t>YjMSS`-#c9a^ylN zxZ)cwRXgpbZrR;CM9U{k$UsD<ztQvKSX03|b|<e>>#DSG_1zBUmURavdKK^94N>;; zhG}<nZzR!T{h!;XV1?${HTGP+l^xE6s(<%(YIme;-Q&B61*=GsZfn3~hp#`)YWT3x z^pCs4I%~06lCA;sI^JmHzz8{B#aDA)dl%=+!MvniFn4qiI6M)fGG>uCfSm^+EX=qO zjlQ);)~2nUT{$LQ@BBDVW(#C<*8E5pZC1JU){nSIs@!NQ2?LgkNGIOwbZV=#*Wx>@ zo6)8Xf!Ujs{D^jE$Vf>{^6EDla+8kx>CZQ`zp!F76ntdIb$hr{>Ykx)TgZrB_`Or+ zMbj-&U0HWZj;NR#phdO<>vfe`DhCh~29&m~U(0;0zm1gTJ#sVVRCe!3=jl`X=qC;` zt(lzi-8;^D(S^i>0M)h%9b?Fq|AIU|ONm$AAuHVY<4jkXT#5{N>vrRP=0W<2yPY&T z_?5;$#Ec~S@qk3@evRT?*&Y|ug+a%QyyTd>7DL`gba%zpf%9V0iFF(c*7MX|=jeyM zCYFwJ&+UZdpNXS{=zaC%l7f#a>D-|KN39a{$PT}zk~#8L5dG4aQm>&>EADqNS@kEE zUNlgDi9BNqS!&>Bd^vkHgIcvVYNsqG+tDdoH%VA15??@_Jfp-~JxWD_18%d|0Fr&% zUK(DYHPFMmJbGoHKy`wJMlAC~+bY5?`;@{Uf{YQV;bYVZG|oz()j^Tu^R?<fX)XM* z#+f=43wMbd2k&hMR3KOP|H_w`{zI9jNb%Xg9qnmvkXa2|;$Ff%P1rMOu7-&RVxjxm zb^A6k4yleqf`H|=e!CW10n0z)kNlzL*HO7&c6dR)P&O%zEJIp;U6B_AYeEKZqudw( zY{EZ0r06Qg2Tn}i*u!<~{|}h>FIk#?XfL-|oLgk{hYIPPs-bp?X^Id4(5L%gZlGOc zx}FUCkp^F+>jo9zh^Vj^m4PMst29in2!Xu~VuRNIYg4AnRn7y$mFNq$_9129)>9w? zS;X}=>$On|ZPpA}PorWuB7*;>pM}ZYJ9W~I;_5DZWS9Qx${$|qdkMpTBi~mU!h9-W zfa0^GJJgPv;n*7x+&(fvS?d=(0cVn2!7n7h%kiCm9{akosRShTmo)wIKTCQg=ikrW zWY-$6gECs)Vkn|_SAHn%v@}l5+NVkCqGJsUZ$!{&bFcSORKN5aCi6n;Y=vV3K`VOP zv1Dgxf3aoJ0k;bCq{WFlMF*c{)FDF0YF50pndKcJS`niMok2hqm^6xZ@opkG`Ct6V zNcRCMBa%0ofiR$j;h58T>_Y>3J8L4vr+RvEAP5-?N5>&hU?ZfRztF+o35c+fEZ@BD z&P8;Kgw(FHN*eX(mUO0STI+^$dM_Xs=^5pCXig;ED4M!H#g@zW6H1(rnk5kBo}E%P zu=`F2y@l|cl<<LFz~1~l_dcGr;74a<G2{QpvgL^TZk`e`0iLYKc@Im0X8Kyl30~ip z##*>ZocmH2swQuqE4p;*<e#5kSxc`j2V-)!G_|KZ_#n9MC|?BS%IJYAwq_TRufZ13 z1)fKd;$({?r`>M%v=cP@s={>fNRZ=f^%}KKtGh+5TT1(*5m=z}DiT4s^{j@Y+u4QG zhV=F3st-D-fYRo%3pGZw#KEd@LuAVUzR9HVLb(i}YK-4+p#lZ;)mfy#zn?(78rV$( zY31fKj*Suwef1}aD*XJ6TM+C3uiXHB`&FU(V2h!wQADTE6qRU<r}^r}0^4%*SF0?G zUnsy{xwYeglMoFdn$5dVXf6~<p9!Y?!rVh8M>n4rKK^kpUhD}i(UPUL5A-5E9i2X4 zJR>_zOF*6LA4e)#ju=$UwHi)Rb!$}}+`kb_TGcJg&yBV!YYsvKWSpnCHt1Aghk>)Y z_Ck}Xh&t1$qN*(##2tYGf%*5K0EpWvkimP#Pn6p86h`Hmk0^h1nI$PA=+B<H5}H79 z;s%W)p{ilYZrmM1asW+PTc9%}1CE&MH8|@Snl3_O)r~z-J0_={AD%Z=y(=xhck#l@ zHvb&+h_$Ju%Zix#LW}6FFA%qM_kfl9viR4+6=#n*NWQq`pzJHe6{&^S9xFE$fSrf6 z<?3`>W!UdCtmDr%u&;VfRU4FKl0a7@5ifN>GLa$a^lI>3+=1E}V{H&J1V~RSB4mF7 z4R`^pKEPx!b*A48ZQabm;l~CtHlR`QEno|Fx~PnS7ci#QZq*D@=~~YbMeZ!bDLzS^ zMUby0VpHSMMqJBLR3tn7)YaD~=nv@$A&f@X)<gQ%b9nYWs35NbCu6Smrp5BOiA|d5 z)-5!_?bIv8^-1;MDXY^p>p8Pm=FaUC{$j119$emPXx#Vjzh7V8{e$YzbDAad(KWLI zl7s?AcUoIk6xVl6A{|<Pf`gXT4G}`^40D>3+%#j)AU@jCZ}TF-N&Vrx{xq>7v9u3I zCDWB1y~Sirdg@L9Sbm$u*E@~VI`~1RD^OKcDSNChLGq}=^1Nu~AyaaYOS6i0JFA3x zIt>ZLKN&{vFcPRHf5BE-%uDT{<|yH31A-=SpdkhQ7L{!PZ>q3TVZI%(#^s6botcv9 z&7Qp2aO9b`Kp-XCu)Tc{zoGu>`|o1ZJc^9-EkB#=__gmLTi~1p+KZDYHCk)S#bv^Z zZV2U_nP&@&A>G@52^h{k*9uEmS2y=fn1u4E5Kbw(QA1Az1k(!)B}u1XujTi;?42*X zkWS*_OnS2SeHS>7)#Sj0kGib4*Ujhde$DyrJ$`MzGqOU_2_qj)wQA}x#07A3WL4*7 z-HRJC;nnlEq&}1YAyPO^H2IIrLG+pX*Mo~PU^$}s`P;?<&3A5&dXHuQjO!><4D-(e z_}R!qM(wymXkZtb`XE8o$Z#i@NBH~#d21z34>gAKw#Y%qn62U_TZmMX#mcuAV*mv^ zm~HL&NLJ*hDn!%{Gv*vAuN78v&EzAqpnQU>pa+eat@5l^@@aB^VM`vP%7H_9VezId zLv-l1Q%x`S#vd+a`H%KqJ+V=n^_CtholTY8i9j6!ldtTg;LM9kQ2C|0!~sLHl5&*n zYsb~(oqyis{1rygLoEgInr^MGx(z#ZK&iMa{ycey=auJ{^m55?*gPf&>50YGH#UX_ z+5M?FO=@kBz7d|?ElUK?ey!H5zd*e-;YJV8s6mWPx;$hB(13ijtPvhanpwHVYvq+o zX~i)tn~?doIn6IR*A9o*XQ;Y@q*4I=)E?#Fubw3s$D>q{sy0mE{<df^y^7>n-6Hm} zIX$Fv_M|BY!GO%erP4SrOYamZsqr=Yz^myQ^IYft@3qFwdrz<b#`7?EX8zql*<j~e zCu|`}tV2anv^EF-v8-%<S>}`Q@b+iP0nh`oH=V5v-xywJ?7?l{oxm)3<J2o?Z)q9y zha-gD(Z?h^VJlz5c8vS;kO^6cBrUq*d)bp31n~hk$JY;_sJt-+0`;&F_p$N;!*gZB z`^~<UjkU_uS>QloX+Uk__ZM4o^$+e2`Dm%IcsW~YlWZjjR|J_4Xod`EhHh+Q)Mj!j zI~OjR`M^snFrfg@iM;;JrQl?H4Nnl?CEav>ONDcP^v9aOeV92=ERKrOKAq+jJP`A4 zDPJkfc<*WV?5t|f`EQIHJUC7*N7hrbF(jb=BNw*)&*CF}Z6d{2H2aC%$^4>grs}L< zdmgcO;<-se#haNQKW_J^u3a)UKr$owAc;{x@9%i}6;j`|9GL{GH+SwUsf5TWZ0Eip zlh=^=TZ4Xx%4LGh5uE-XgqyAEY9`kS5W%t^?a&V#O`5VUOi7_~V`8$9&$zj_5OzMF zWkVj)``}4q_f)6|`IYiRe$x@|>MXp|g8*Y~H&M9z^<uTkcel>G;;I!YhZ)8hFAOk} zZZ&pRxdcU1#P6Zx0ed%@Gt9p&p@n#-)|rhLzxGZC{rvr^M=kZnIhzmVq}v-3ZGhgu zZOq2gl1m@{(`oB9-=pN3No?CbnEPafNC)iLhrwNryS-)^OyGqq-VONsMw_K%esr#u z%05#eHkFdeOUyor)DBj~nJ(N*u#5lLqb}GFIX4&b^+R$d`E?mGJ9HIY^K?vji1=bD zdv1xQf-1SWj`NMaLGu+HB2iBTm<;+pZgQoUMV!2LpZMon^^TJ(9+!V#GdYd{E~e_{ z&bQqCXzMq3(ljuSgAv8p9lg$KyL~d8LiOkzyb_d${sce4L=_M}?Vm5H-u+-5ng+b8 z!0%-@e<N$E4{HgfYN}oy<WkQCMSsC2u6<)r3Z=CA<!UxC`WIV!8DWwCjHr(#)NQbO zA}CI^wb-)U{BvL(OMriu3llO#zdH8z+s5Ju@DCxqufrn8o3D$VTxW@;8^AL2ebfj? zkbFP}5GRAyQlM`aKk*T;J=&4JH2?^K1*ws>jOw%?(k9^e!vvDVBjG3<!%hHWzqxB4 zKTsonPzq<CWkK9&<NjsiB}rYkLGsY>q)|;)qnifa1&2Wbe(|^(^(ye{L|09n5jg3X z4l>C=1F{o%(83}@q@{yILGsieRn)E6SfpyrM)dj<tOuwj&cu7?ccdZlUM@NsCVhHc zHq=mVf0A63p}GZ*q_*uHA`$dQ=NHb5d|GAe!bp{~FnK;acE9-3M>;C!u2wbSz}1BS zA1Y6stdu0=jEKJzb*{o9s%Dj|**OFznalvYt%6unkE>L`uNtxmfd>};GQRuL1z<xF zJqFH~J1Y}rN7ZqSjYqu@wVAkqYmERzpio&V+9@9=G(ky+t{aP1fi{^MkObVbB%=ep zPa5K6Vs5D0Y^YO=2zMn(?R@y=8c-SHe$9T*>$B|jRf-xgbM|Yi?>Z6rSR}6IYKLwr z%i!}xq70sl1gK1$wf4Ca@w>_EJKzS|!zl3Tx@9X^O_q~W=lOATyJx;-AT=JhW{A5t zuY{(SGjt@4uj9C%e;%9H+82+e)QD$#6qavb9R+Cg`|xYC`d>E?lhV53)b;YO&m-0^ z``M#Sod}ZO3{b{~vWJ>2dXOD_!Wio*oZox?<r7X}HrfPdEP^B2i6H>c)$#WZ&7Q;* znIWVmK>ySUU=45_RS;Q=SxrLs?*GjYYDQ`xDyu*k>}V^*Z0GjC33zFF13L`Yl<%#y z|K{SoGfQrKKhUBx)~_>tW6M`spGtc=OaN^qpGX~qtAv<;rs~O$XxFgfacSqUO=x_q z#6oc5R4V>LGI}SHJSb!TtMrQzr(O3T6B$;uI~+?6rb<STMZ-cw<-U<oCKOo{?;#iQ zst}MA8RTvMSDVK%GB%b3m308rF>#~`XniEyZqhjR64R#V6BxCjkr=O}Az6_+`YUnU zxtv{@4I|0cWchiqEL5qBt;vrfYZiFpj}?0D7!teAh^MGvok~)i%8Ju0JWR!iQcR3K zW>!;~gH~gw*@j!(9d%|2(GzCZzFtUiEh)}XGsK-*wNb^MnC%sblh`i3$De|TpAy(p zHbmziK||&-o&Za3(*tD6fSTGUZEh2?piyUpAsQ2=#VS3!a>48n$hwF$eNGeeMZ8Fo z@G(NgcuXgMr`q#F*59J_4qekUp-l1w?&oE+hrTt48l43jsS_MFoqcfbIkmC5N}cgP zFukVP*L`I<n7V?attlM{5m3lxg4(R4OWyLW(*&NwR%FNe$l_okXD8&EV$e;Z>b%3L z2#ejG7?v<&yA)nZ7%n4f8Wf&{7fqL%ot4~1`*gw6#B{MwC1RsKLFX6O+Gjz_qz4kq zRAUo#L=#ftWr*<lEWEu+hK#WxYr8w$q*v?OF+;^p8soihTJJZ;X-k_P#Um~Bd{)+z zji?UFy-rT}tU_bFu+6KMy60)rs{psDQ{S~&MXP?d4}ouE!qE9{{<XNb#e12Qa_-Iu zoQGh1lPD1yAYQ9znni4QfwgLv6o$k1g^A9Kh>okvG?T>+V8t4%q_lk~u2iY!S<yN` z3WCFU_Q||vi$w!*?*R3UaP&3>x?UQmjK^q)%KR;rA@wBuF-wHMO8D=kr(?QQ18a7h zffaj+-S?Fixh|LB1jeiZQgY|-uCe1CG-O&s#0~&r4dmGGwK8jR36>jJdZ^^@&Ej~z zCmAG^+7?2i*<!Q&=&vFe;%%8kbK<b6?K0ofosx7vRjidPGx8_}dPD{|BJ=xY;^kLI zne#YEb<DP<)BEy`2?&YtEi+(wg-EBC@|uvTO+)>qn!d%Rp*1G=wS0}8x2M#U_L{g^ zAJ*J}=qo(l=7V=$C!>A7W1|~=&e5%9=N)Wim1+xpo!XYIZ|oaM*^~a_O7zPEW5xD& z7fdI;0q{*EK_9?Wfhw_xwpso6`z?ZuH3CJSUoah`4+q3-?}4bmfI5roaDiTqT2iyn zm_VeY`O3Y@uwi`AFq_*wJ8S*13hJH>T_Afev!U*AXfyWkPZ7-eMC9KLvARhjUf8pH zQXL8u<638n1zWqdGY`MdIOBm8#h$lypF2I35vWeZGyr-3XwXUQnQ!69;Mro&D&7~G zq)=US#2mM+fc9^(Ae=M`9V9036SFvPOH4moaD;g3ybb3zWwz>YUOyCHtra$#-)B)E zUn5nyb*lKn8*&c?H1}8O1+&2EL{iiR!hrhPdpGGW;-q}|?vYHTbHqBW(=!I%=&;wZ z##VQ9k^g?WKow+NOL4yRJ&HQ%-&ZizI@-mx!E)oy-llt5R58%z=ZdB072ls$4E_Qb zM(QE82BXQUr+re@@JtCT!lK~>J5J1U{MIc)r-3__ONS~SAH6IN6-*oJ3JD(ogIwIP zUtENN`aX#pNMjjctyD;ur0{*gQ4WGUWuv_x9SIcs15rv5NRwa1fwO1Ewgts9o6<>K zuR^g$R6gr#1}0)QpUFP>@sanudI`QJ+orqdi9&G<(2x*@6h1oRQ&TJLUyP#5c<#!6 zwPpQ!YxnCaqV_L{{!vQXkNmj{n$wf@@82I*q$0>i#l}Bjj6mY!;>N}uA>!#WMk%EL zW#un`Y{yc)=WHkQ*NtQeFtm->X(CcAP&zCe&7w{u*AzDDBTpK$T}s)|p_9fA<yxAu z^{aiO#eILv_lQ?G467q0)+#;m$hYwN)Crxcqdup<xgC;|t??1Q)UEIn-9_X+#Rk<W z23d%G{pKO%)jE{{4eN!@tBVb1)I7Ujv%CeVtMWYXy51|~m^@d;J|H)UUsF+&^F{>E zV^y3vw>LMl+twY_MDeeAUfb-??v}5Sxn-4o+?+DcZ!!H{SMj@<0<O84dgy2GJ$MAV zJRsMff9ILVl_`<ds2V9D?E#8g5OmD8>vh+CC7vRui&BOd&E2ymQx>t(yI%{TR`n$! zd*y=r`Lu0?{JjIajF@cMZk~^O+jQCr&N{X93Wt1*-`8vU>W%~UI8MO|-wq9|cj`xb zwzG;kQ_OuI1w*+hV$Vg8GInj%hRm1RNOeDNC@TGGuM0~^4=_}|<yA>+A2UZE!=>i; zIhh)idk}t2c<kdmn4;Y~4)zj;i_V6~d<+rG&3cN4<UdQ3gjCBwD3bO8qTO#;w%xCx z&157#efzp=Ohiif9vb{nQq*KzBS<t7JMM6dg8d6&kj0imWEN(Nte_7M*T~o_)p=cO z2_;Ka-ahuPlA_%c8L>?mQIKg?wwS-xIYirm0FBpHwlDYI`IiB0;E&Gn^WQ%rkI|%r zwNSc^M)PaF<bq@_QEZ-!WtG0^`cGLiHDny#F)r3IPO;(3Q=giujzFnmxr<UGxtO82 z^vPYcPAm~V3#eelC4A3EYiJdN&%Nr`xo4swbhkeIpb+QV(XVXv<ePu53e`08hhJ;2 zc~oMA|M%HLdZ^kOMa7y8Upah0s(+vW37T|}X5L(Nk{)|BTjyKH`Y2x={5^qPIWbT~ z=%sHle4kvsLmVEIJ@a|K$y!?&bg~L;%)4@j+}?ayiLiX{_EYs1(~Dvl>eS6t%5<eo zSjc_5&~xt}jY!wMnhNhmgE9FQw!}MH_+PnNb3{j6y{syQ9$MFFyE3KD8hQWPgDh!8 zef^%+D@%R&?@^sJ3(_+sB8K7c-)BI<s>DXK80j6gQ?wYn%=P1M9$pvjo|v&7{j(c3 zN5sBs9=z3*@E=y;U-!2Rq%gc5%~|`PCd73KAu11t>qHSFLl=xpkZKbEV)n=NQFuoc za#=|{T7#-2BnE!#a0?9UjGgrwJsClr1oGQLh5O^eepa!dfK$Yca9a!2yO4cC93krc z4l3G^Sw7vMqT1_tlj(ejgYgwu?3jPmTO6?ikL>wwZOjRirj{4}(ulVrMmz4nT~!28 z(d=}Qn^n7b2GzZpjW8r61nE<K8jv%%$1|+$&r`8F_7`SU=a_5kexVpw=#41SY|i~e z%Knh8$dafZsQYHL)NiiKbPZD|s+YY;H|!26s~PWgG)lreb^O@qgh{wm6QJ(Z<kRBk zf6YG)Vei4*tLRzaRP<h|l%yy`bo>8^(kL@>*Yj4t89mJ{WNc0#l0OgL=Q0P^kAv;% zGK-OytC$Ma5@q`?zf4y?O7JN4R&YOXN6Xk=iKV+&x5PgKCtY@!e)rUWMkPdD1^`8P z4=_qa#Skitwrw<DL{yG`=OWalRL9?BDl;#~n|&JkBdl6#9AuX(s)oRpB=71GQSOuG z)_mnZ0@;CVT-ywX9*HW6Sx@vbg=x9J#bnkS`7}}M?*f`!kT;g%p;A0c-U_Nyqe!qK zBGdrs2Xee4>WUi-Kq9J<ne``V0ZCa-B8<}fLh4j0>v4yncC#M@@KmL!uWI(P!3AE~ zP~5~U*_!GQQD7e??8tUa<PjWv3w&_T!^E@kMN$YKyqIe801jp!5TEU3@7H`ILn?Xz zr(xexRxC%;YnxaskaxpB$H*73%w8N4yV$<JG<ms+K?sOed~L@mE6(t#YvX&?Bp)D@ zI%xwrj3V8^>U`{}A<Cd#b?h#f{gD9yn51eL?Wv+LI5AZ#-`S%?tFsXGr~3VvdTqBa zKAY)n)HGB;Dv+@HB&pj&j%_ah7Ne<7X3>qV)uav`)d)iq_=OaMmQj{}Vh&+Y*?QWb z@3Pofy8lf?iOGvxMBb36a(eu4G_7XK$>BWq{^1p>*MRqR>a+5WjBZhR`y8B~%IUpW z4+6OoEG4u?K`~Ogqsm~Z5EKj>5RznvTkE|A*vSVRR;9c+Sq$(bpm2UZwr^{cqvVr@ zw>Lp!nC@EA3w(Q)yEP`o{s$_>h$UTc1a($AX}sVZ(CX@)j}A6LQD7=ufT9+LnIrGn z=gp@XJtXp<tE<}N;}G>0$mfcds^<23E|W|-%*Cq=79i2};+aUEuIEb;t+ufdAoe8l z2xRPM;e<`?{1zD$nVh&-erCca>=kEo3LYo>qrpixgcT8c37*Yq-UrfLun!~p^fL%e zPXrAF1-oO^7Kxd)-o-tGbzi8<?HD5U^eq9Bq*DeFsfVd16pC|~xbiO3O4jl&LhHbk zp>LYg>(^ZM9nTGY&IuB9yB<kN8B*G~Y53W${xbRaV)Yfat#(ZLrloh~Jc+dKQZ7Ti zkDk<G1?b-JbdcfQg|*lDmSxbojlSz-{yn4N*(TrYKFR@z+<gt`IeTqX2CN3qguA}& zX%xt81TAFLS~)UYkJ$XPB<|Va6#89ZgYrDEPSg=~3AK-!L#59lvPg6}6|xG%U>2^T z!$nt*0z6qP$bEo{1Ja>-iFjGMj0%8c?UCzY>P4G{@#aK(E%Lc>*i6zhT5>9C#Tt@l znNEFbHs1O8#geTGvvOJvY>rD>$YZIG()#<6x1elH-DJ4^B5W{ISe%PJal#F&YElTG zBJAL(F|t%~ffx*?F6rmtpwMQXdtuvCr<LWVP|bmeLR?!4%HC|{vYJf<D><ui6nBp2 zs_y&&au)3L)0NZI%O53(o4ghCSl{JMXv-2q*&&c3BDsDH&e1!L8YD`#(*=gnyVuj7 zJrfJuxMz>H++F;U0<@iBQ=v9vGhX)w3pwze>DJz`V!z~FnSZ5O;_2s|0+S0=wr6~w zTc?Xlzbrljn=comL*X7Qq)le!e8$q<f&G3P9HF7WbAfO$+T;ic)9QtxZ(ee|zVeJ4 zJ4)#D8mQrk$?UQqa#AAa7HyTDX14VhlKgnL8;>egaD)qW#5*KyDpNBk`wQfaOT!-d zUO1WFV<xT6Pf#=PrRC0JYDVeUwpoZMwhHJ|Y>{gZ;i(+RV#TGnhAT7a1wq7!vj7a@ zcmU204~866j`~20{#975<)~g#`3zf7dbxf-J-Tt27Xb%%HQN}e-`C~6g~?>*db^)j z{95~J(^=uMwkM(4q=4#vd?>G2vO}TgGg;zpK}S>Lp4`q4w2(KbKFUa>Wj8Md?)kXD z(H-|pm4|-7$_dJl>^+Ged<*wv2iC;O9}T$yUu$iCP^Y%Qvb_UyInKEYPAyTdNX-3W z^t0!@=W6+T<4dljwET0_V%%2lE6Rvd@s;EkLf+ew6)M@#1JJHJ>7_Mssnp*y%fdS) z6_vT`Os{BN>vNxCh73*WHTpgwqB?%rx0ru>_{XI%mQ3j+46;`nt$1MMbj=}g)}3rb zgNh3-rBIue>io>jm0Ax&^)b{3z_rowmBcAEH}!$5phaWcz3?6$F4J=*?-c<$Q*`vW z=i;XWd(i%gR7{!|05Jg&0VIg#bP2*;fhx{S1NtQr0Wn=e<YiLfJ0-XbiSL`Y1Euk7 zk!6qSYdDQBdOoIV&Y2WjCOFzX;whd#j(R}+j6YRmLX8jyK#38ZJUKneuDi${Q{YAZ zei+fXaNt4`B-##iAk=~LvF^@6x=>+oyK>#DdNn#?^1zdUnUA+tsc***KJA04?-S$) z>g**v_ko3isuvTLR~S@@L9vJOWflVjmiMiB)%^_w+nwt4ft!y8d|R-vb?>mFfDl%= z^oQg*0GWYV_LV(-j8q9+hteJlWW}^)EAu==ePBEPsHijMoQgI2-)Ot+%0V>$kjGuL z0uB7!?5S%^uiG`S=s>^pFeCeKO)1a7`($~tmuj6rx2fS_#JDI$02pewrRT`AJhLrG zK`YhaJ>!?vPXCP3e=JV9;W~RKKU3}g%71sOm(8j(mZ||!udVGl_d9w{f;rOO&gh#` z`n`G122VFnxl$WXfSXwKq3y8raR;rr_|i7Y^qlVn5t&)#>?BvTB_WfzUF+~j<QT|f zl#^MlZVF7cs&8b6xBhEJ8J}`vb>48*x1%1v>5>r9`DrkFzU^eexD;fffDm!Q<jvk3 zww1c+uKVg=U+R2mi_5#Ernh2w2j#hqU5q^)RM9(C-~q0BDU-B6M*SjcWrs3OFZ$NF z+THCh54N-V@(-5_Hl}$eQn79O2BMkLh4Gqnv@9OjgrECY*~rz1Mh-f7upY>^^~zjF zi+Q{}q*LM}))PKg$22kwf!#>T#>pr*gqIl`Y^H>y@1c8bP;?E{ac1nh&oOETW%Ne9 zRFe{cSGu2)!SMYD^bT``V$6_;)Q}&UC@{=M>4HKuKLUn>?e-Ik<8w60iRHENx;^nr zz565uNc<AHk*%qjA1cmDN*|`X8z&x(?v?5J=5qy$R^=i~LJsNTY#!jXUL|v_?PM(b zJs7128X5cK31o!k>5nq$njs9m`e0a6A|K3vsLSlw1j{p%hdtQ~o9thwU2hiHZ4+o7 zvvx;BW#bP+lS%;iI`A}<kRt+s45H<kuAk1+a<lNg8jj{v779FiLXin;*iu(v1}ZUw z0J5`sfy+N;Y*e^f$8BUyslR}za}5?F&fMGLjiDIjzO_d|#-fm6Clqd+0%pw=aeF2C zG2#VK{tKZ_!{jkUHT3S|z)}%kOj4c%(`*sMny^E?Ch43oMRpD#?>ivNOHnFDNa%Vt zEY$wzX%^~7q-9(EiHnV<m-ZWto4Rh-h7UIK#LLi8T_HGBdZ2>h+r!{p4v1X_-d3{; zb{CLlvkJQ@`#+m%`pbyL|72d=Kvk?$wDU8k)zKM8kjVz#1`IFaTrgVpG|><v$qVli z(N!%dqVrtEc}TV<n$*UKcL?>2l;=O+t^T5j71@JYAc!3IqZp+Zik`NzOx!Jd0r}*) z2E3TNTazN%2-Z$Rp2impa(#3SLsCYwUL3O0Y;(u|v|*)zL;S3mzY4{1$%=bC4o~Wu z3RgH4{P66gL>I8!PxXY;_yp`+e*9?!!gqI#K?V^AJzITVB8pxPz!>X*dm=QQpT<%t zIG6>%N_f8M2KM&&lNT?XgM(nb1IW5Y6mvGGN%Z71GbGp`@4w}<m(Cx%)rqQP;697V zl$bh)7@J-u_`&DS+!o7~VCIT|&WeYgJNq)a;zzDLD(}K!ry0d_viM3wy5A=rG5`rY zIC}DVHX^<4((;sfe<QMGdzClm*Uqv#Vf!KH%`0aRzv9GAWaE#R;r}T*({QN%{}0cG zF_vbSVXV#A_kE|#hOv(|BH5EDYe<?EW2wegNE-XTOGL6~t0W|;kfgrW_SNt2|Li<C z*L5D8bDi_~oY(tx-~5-w2Q&V%5w0DP#d8@|9;N&NB}edpU`XaK6)J4-R_Az;OtGj7 zT3Hqw#ZZ<chl=O6I%LpAkFFyR1QGdqD;9n^qT(t=TY2RdYPI~*RmC&REuvtaFDzrd z`QxCjYKAPOGH?`yFRInzEww6Ex{ab)WGeVbi4Vc&!vo&T#|!4*!Z9%bHca@ei0(>N z436hVkVs|`LS!8jKf}E48dL4c-{*$&7&ON&1v9$ykAHA;9s{|-`Qlr7ZD7FyWj7W> z_*3c%Os!#U!y?Z06qlG#O@PnMvmz$&xHUcZLj{^iB1q+<JL4l&t!$VU*Xp4K=jYDc zJinhBUy~pUESO;;$QR)`oN`r~=-L;SY`y8F4PBc58CWrlyJvM04o!+zC|S8yd=qhk zf(78NzyfZym-93l9r%nEC4u3$Xe-yilxxFDvNEgZW(!4U&rs*io_dnx%~iM^Rf+g| zPj)T=UefB*UqHPkPtV4-XW#Bd+^fDqFR<w?@DTvs0qX)DPTV>2j4OimtuM5>9Dlet zPr1!*g+`x*QL_Kk!RPq_h-A1y2cTbxdx41H`_C7NZQ*abPQoSw_nM9-+qK_KsU2v8 za)@*cpt~C`VMc9M0jN$j;HThE<3OGhh+6?796K}>b`f@7$6c3;T6^vwK=0HX7t!6T zmcUoYT`K%hWoqT=kr&kv5Lo^jdBG=CTmPj?-pYBu3<RmSXsE-%aG*l34ZH&EQr^oG z(7kzd{Vwc4_ogzpI=S6KmD?%s%vA-$<L#q>f#Oc6iRw_arw*I)L^YpUSGfd`35G!M zaH2{?*Pbq@)d2G4;|_r=h0&A8WuWdW9UhuGH)=6yafmwUguL}CQy28HGYQ~ee5X#G z<V^uKmY#5!hIiiQ^+ADC8PSAZ(`z;SxoD9(9IOQX046EU4rx8H*W`t1ZMleG9178J z{qODjp`2T=KL{Rs1e8{q+FG{o3(<C%zaGI~??RuQdvP>vFXFa)@=DUJ?wbfvbHm;L zO!)V#CDlbdMSZ8(B|FNcgJc9hrH!`tV7<5%f(Lv)3w@j1JkullA_<;0aLIIpznKg; zkh8e8`_ub%BH|EUBaAb7TE!#Ri-2eV_RuozFWMw?xFkfTT1RFrw^VpG<;UUkw-W}i zeb=}!3b(igFF}_*u^+AV=OGVv!v=%?S)*?=K{jSQm-M0}5UF0j5Cs&z2!9?|F4$Pd z*-*`u2raxt>_qV1os<`qz*d_TA^2IK^eosPR+j{Vu7auh-I02)*j>uAq727SEkO7f zcJt#a(P6If6u!7tUP%dR4{b{=F`?3&tGxESTpZD@gy_9%j&>xgN$y*o%Wyy`f@@&) zu<s$o=R~A4@YGd&Q!?C;e~RBFA?mUMOCmA6_+FlLVfQ;acHgZ%6XAK{VC;cg6u;N# zi^~cnn=*VHKv9j}r4Z{sYEP!oBIz535L)6>Gw&}Am!z?V^*5-Z78(Gl3LXmFi2W|? zh~N-lxe>IiE`HhC9m3NeD)qHabiV44rh3>tvw4!pm7rfa`3?{r(sZi^t^)=f)=N^O zc!c*F3({a4*#H;H8Lt&Uk7+xfZq|JRPnVUj|LuG4l^|9v0AZ;-M=-7H0mBXVvLOQi zrxn1aJ%R`BM^(2+zMTM^*eiN!gn3=lfzGj)ECC460GH!U&67FkvfF^x)<uoZqsV(Q z_|B2P$Wl8st;+fmtdgvFEE)@Q$1xDWef-fdL(>?W`~?x@*rB!~)v*9!Bk799=S*h9 zJ?s~fq!w=JKXwCx4MTf0_Ui@O9{H>FcAo3fC_7EXB^9}y(@BmHQRVvip(zpw*x%6_ zf#^cOiHXx`u(JO=$~E!je+!aI5I4+H1?dTq{}#^{!wn~BIBfm(z&e$0X4xf(Zi^Ra zmzdb??(PZ@Pdq(ibN;!eq`JkEwQPWP!}S-BUxNU%Nfl3)WdN#<*zG=qPQ@?=IJ}(F zJU}(*cqTEhGXY;xe}eyFO_mlB^u2;~X&e19BN6cA#dh2Bqu0pQhtR>c<zu7JfTk%l zApWaw#Z833gBIY5QU8rM``wN2EC9HM_Kh0RH+|V#-q{CQ*$8yX>k8gc+rDdanw|es z7I7X0d6$Upj*5AY$0`B)5*X$aGI`OO_+aYo<6-!B)}U8<`^y4@=FG)MK6MCHHX`yD zMXKz0dWq?96E1(PPRr(nPZg-~Sg4?(Bver(#NnlNd%&Y1P1Lu0uz))2TX2N}#4d{2 zaT`5&nG_xA;Zh5d+;_Qn6XAK&&0lv6I>>nV0Pd%}PGSTDtyKBlKky_ts`|f2M^j<Z z5@5;Imj>L<Bz0{q;ZH?n{6fc{fcszb^k*A3y_OAt%4t0TWA3zuy^+LTpZPB0&FPl` z`Tp){7W<sl)gRGwKD&eU7E|`N&j#Tf$qjsmpui8_Ocl;RSGQ{W0S&UVPtUI`T!E(o zW~x3I&paCbW2RvK03nn8X{!fe?MOw^S3X@&g9*v4Hl=QRH^J3Q;r)h&i&CF#44CW# zM0C;;E9ahDKm4fSi?dJiC7+4ssPjZna*L#wp)L~!++FLK`^wm=qa!bm7nCa@UcwM` zuXMz<)h^g-Jn*5ZVgkrkwm!HJarFu)wh=D(W8X|sv@rz{fA8HV*HrI*I5nyFo{N>* zw^+orwg$@!f#}sGzmP|#M$LU4UPwYe@I^;CbU7FzQxmVilX^F2T<*RN>3qCB!B_TK zA0dMD{&E?CzyBa0r+@cCi|8R2_qFWVx0+402f~MwAZH4GAS+iOLr(B7joa@XOJv&0 zh|(g(@P}JJZjGuuFAGiH7uupqx<I#|0Q3o44<Bt=q-5rOe~TsjILKK&Px{1r?gxJW zlvR*v{#G4QueYLNBHIjqYYPX@=%cmDn~x4Nsh=P&`$@>1=!&av-ymo+J5>20XuvK^ zs5R;i)ycXXi;eN^7nct=%W3up*ucWVgT>n%GypN;h09ZJ;)@;=v(yLQc8wY$U_L_C z2!$4e#?MEm6=QTRA^Ix5-L-QXGhfiw7X2-J2!j>0XampVS^Oxi;Ki9TA`<Mvt$ofB z8WhcyF1<w0;a*GEg}zBd^9Plrn?vs(BreXrw=aa&_^(H2VpX!;Wb5}$D5)yxQ97Xb zMFuyUWejbP^5T=H-Y#^h(lW4xTUVv&L#q?Xs)5d?E>=}0pInjFVhqVA3f*Tv`E*CW ze^TZ1qIph(pBJ$5>L!j!NZ>K<i^1Ve_X7oSSi{9OcMTz72s(;JzwxN34UMw^05_(~ z^v`)mb+-T@&aSpXbN(%FAx<Wv5&w#JX%GjTEzdfD4xj>g#eCZuCg_m>Udd_eLV)gO zVQ~o(C(RvT43t-epQT}FfT@w~4I#=YdgAuS`Ia;P+j~57&yG(n<Va8*QT&I@XUw7; z-xyiiEDMt_R=i%9UOB+#Jt(i1<Kad7(co&^%YasFDb%$AONbdFXIASB)tA{Fzf9(o ztQ3Q&1ZXT-8!0NGmV=Qsn!Lc3+>)wI9h3b138F5W8_>X7@kgYmLnP}I@p8e>G`Bk? zRd{ZpC1WPlBqsMDV(xOa<!L{q*mYbTPzP4qIT728_F@6AeO=e-DEk2|=akuADOs~o zkdj;<O5>G=DzIv4*Rf?=akfInXUV(B<5ch{TOpk!8J4Ervn-@UG`wv4NYpEQ(^~6P z@rWZ@>Ffm$PoMc_xMru$h(|A3RUr#kSP_51FJM;Tg yd;xbUKMP6ByshpXl<L9G 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 Wv*9$d;j*&fiuvlU_6Y<6EdLMDM0)Z7