From 6cb57dc585a0dfa6973bb06b96160634b50b995e Mon Sep 17 00:00:00 2001 From: Hendrik Siemund Date: Fri, 10 Jul 2026 11:19:41 +0200 Subject: [PATCH 1/2] squashed commits --- CMakeLists.txt | 10 +- exe/backend/include/osr/backend/http_server.h | 3 +- exe/backend/src/http_server.cc | 284 +- exe/backend/src/main.cc | 13 +- include/osr/debug.h | 16 + include/osr/extract/tags.h | 32 + include/osr/geojson.h | 46 +- include/osr/routing/instructions/directions.h | 42 + .../instructions/instruction_annotator.h | 29 + .../routing/instructions/instruction_util.h | 58 + include/osr/routing/instructions/meta_data.h | 110 + include/osr/routing/instructions/module.h | 36 + .../instructions/modules/destination_module.h | 11 + .../modules/intersection_module.h | 12 + .../instructions/modules/motorway_module.h | 11 + .../instructions/modules/pedestrian_module.h | 12 + .../instructions/modules/roundabout_module.h | 12 + .../instructions/routing_instruction.h | 98 + include/osr/routing/path.h | 5 + include/osr/routing/path_reconstruction.h | 1 + include/osr/types.h | 40 + include/osr/util/sliding_window.h | 136 + include/osr/ways.h | 92 +- src/extract.cc | 185 + src/routing/instructions/directions.cc | 78 + .../instructions/instruction_annotator.cc | 107 + src/routing/instructions/instruction_util.cc | 404 ++ src/routing/instructions/meta_data.cc | 568 +++ .../modules/destination_module.cc | 24 + .../modules/intersection_module.cc | 403 ++ .../instructions/modules/motorway_module.cc | 237 + .../instructions/modules/pedestrian_module.cc | 188 + .../instructions/modules/roundabout_module.cc | 98 + .../instructions/routing_instruction.cc | 245 ++ src/ways.cc | 2 + test/biarritz-roundabouts.osm.pbf | Bin 0 -> 56958 bytes "test/darmstadt-schlo\303\237-pbf.osm.pbf" | Bin 0 -> 32899 bytes test/extract_test.cc | 163 + test/frankfurter-kreuz.osm.pbf | Bin 0 -> 273375 bytes .../instructions/routing_instructions_input.h | 28 + .../routing_instructions_test_fixture.h | 11 + test/include/osr/routing/routing_test_util.h | 29 + test/instruction-test-cases.json | 3860 +++++++++++++++++ test/komponistenviertel-darmstadt-pbf.osm.pbf | Bin 0 -> 21681 bytes test/milton-keynes-roundabouts.osm.pbf | Bin 0 -> 315158 bytes .../instructions/routing_instruction_tests.cc | 14 + .../routing_instructions_input.cc | 87 + test/routing_instructions_test_fixture.cc | 91 + test/routing_test_util.cc | 65 + test/routing_tests.cc | 135 +- test/sliding_window_test.cc | 147 + ...ssartring-fiedlerweg-darmstadt-pbf.osm.pbf | Bin 0 -> 28908 bytes web/index.html | 1056 ++++- 53 files changed, 9209 insertions(+), 125 deletions(-) create mode 100644 include/osr/debug.h create mode 100644 include/osr/routing/instructions/directions.h create mode 100644 include/osr/routing/instructions/instruction_annotator.h create mode 100644 include/osr/routing/instructions/instruction_util.h create mode 100644 include/osr/routing/instructions/meta_data.h create mode 100644 include/osr/routing/instructions/module.h create mode 100644 include/osr/routing/instructions/modules/destination_module.h create mode 100644 include/osr/routing/instructions/modules/intersection_module.h create mode 100644 include/osr/routing/instructions/modules/motorway_module.h create mode 100644 include/osr/routing/instructions/modules/pedestrian_module.h create mode 100644 include/osr/routing/instructions/modules/roundabout_module.h create mode 100644 include/osr/routing/instructions/routing_instruction.h create mode 100644 include/osr/util/sliding_window.h create mode 100644 src/routing/instructions/directions.cc create mode 100644 src/routing/instructions/instruction_annotator.cc create mode 100644 src/routing/instructions/instruction_util.cc create mode 100644 src/routing/instructions/meta_data.cc create mode 100644 src/routing/instructions/modules/destination_module.cc create mode 100644 src/routing/instructions/modules/intersection_module.cc create mode 100644 src/routing/instructions/modules/motorway_module.cc create mode 100644 src/routing/instructions/modules/pedestrian_module.cc create mode 100644 src/routing/instructions/modules/roundabout_module.cc create mode 100644 src/routing/instructions/routing_instruction.cc create mode 100644 test/biarritz-roundabouts.osm.pbf create mode 100644 "test/darmstadt-schlo\303\237-pbf.osm.pbf" create mode 100644 test/frankfurter-kreuz.osm.pbf create mode 100644 test/include/osr/routing/instructions/routing_instructions_input.h create mode 100644 test/include/osr/routing/instructions/routing_instructions_test_fixture.h create mode 100644 test/include/osr/routing/routing_test_util.h create mode 100644 test/instruction-test-cases.json create mode 100644 test/komponistenviertel-darmstadt-pbf.osm.pbf create mode 100644 test/milton-keynes-roundabouts.osm.pbf create mode 100644 test/routing/instructions/routing_instruction_tests.cc create mode 100644 test/routing/instructions/routing_instructions_input.cc create mode 100644 test/routing_instructions_test_fixture.cc create mode 100644 test/routing_test_util.cc create mode 100644 test/sliding_window_test.cc create mode 100644 test/spessartring-fiedlerweg-darmstadt-pbf.osm.pbf diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a7c9e36..8841c887 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,6 +128,8 @@ target_link_libraries(osr boost-iostreams ) +set(ABS_TEST_DATA_DIR "${CMAKE_CURRENT_SOURCE_DIR}/test") + # --- MAIN --- add_executable(osr-extract exe/extract.cc) target_link_libraries(osr-extract osr) @@ -139,6 +141,9 @@ file(GLOB_RECURSE osr-backend-src exe/backend/*.cc) add_executable(osr-backend ${osr-backend-src}) target_link_libraries(osr-backend osr web-server conf boost-json) target_include_directories(osr-backend PRIVATE exe/backend/include) +target_compile_definitions(osr-backend PRIVATE + TEST_DATA_DIR="${ABS_TEST_DATA_DIR}" +) # --- TEST --- configure_file( @@ -147,8 +152,11 @@ configure_file( ) file(GLOB_RECURSE osr-test-files test/*cc) add_executable(osr-test ${osr-test-files}) -target_include_directories(osr-test PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/generated) +target_include_directories(osr-test PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/generated test/include) target_link_libraries(osr-test gmock osr boost-json) +target_compile_definitions(osr-test PRIVATE + TEST_DATA_DIR="${ABS_TEST_DATA_DIR}" +) # --- MIMALLOC --- if (OSR_MIMALLOC) diff --git a/exe/backend/include/osr/backend/http_server.h b/exe/backend/include/osr/backend/http_server.h index 6011b20a..6a96729f 100644 --- a/exe/backend/include/osr/backend/http_server.h +++ b/exe/backend/include/osr/backend/http_server.h @@ -19,7 +19,8 @@ struct http_server { lookup const&, platforms const*, elevation_storage const*, - std::string const& static_file_path); + std::string const& static_file_path, + bool provide_test_features); ~http_server(); http_server(http_server const&) = delete; http_server& operator=(http_server const&) = delete; diff --git a/exe/backend/src/http_server.cc b/exe/backend/src/http_server.cc index fcf18eb2..bd2e80ed 100644 --- a/exe/backend/src/http_server.cc +++ b/exe/backend/src/http_server.cc @@ -7,6 +7,7 @@ #include "boost/beast/core/string.hpp" #include "boost/beast/version.hpp" #include "boost/json.hpp" +#include "boost/url/parse.hpp" #include "fmt/core.h" @@ -21,6 +22,7 @@ #include "osr/geojson.h" #include "osr/lookup.h" #include "osr/routing/algorithms.h" +#include "osr/routing/instructions/instruction_annotator.h" #include "osr/routing/parameters.h" #include "osr/routing/profiles/bike.h" #include "osr/routing/profiles/bike_sharing.h" @@ -40,6 +42,9 @@ namespace json = boost::json; namespace osr::backend { +const std::filesystem::path test_data_dir = TEST_DATA_DIR; +const std::filesystem::path test_cases_path = test_data_dir / "instruction-test-cases.json"; + template void set_cors_headers(http::response& res) { using namespace boost::beast::http; @@ -82,14 +87,16 @@ struct http_server::impl { lookup const& l, platforms const* pl, elevation_storage const* elevations, - std::string const& static_file_path) + std::string const& static_file_path, + bool const provide_test_features) : ioc_{ios}, thread_pool_{thread_pool}, w_{g}, l_{l}, pl_{pl}, elevations_{elevations}, - server_{ioc_} { + server_{ioc_}, + provide_test_features_(provide_test_features) { try { if (!static_file_path.empty() && fs::is_directory(static_file_path)) { static_file_path_ = fs::canonical(static_file_path).string(); @@ -140,8 +147,8 @@ struct http_server::impl { foot_speed_result.value()} : get_parameters(profile); - auto const p = route(params, w_, l_, profile, from, to, max, dir, 100, - nullptr, nullptr, elevations_, routing_algo); + auto p = route(params, w_, l_, profile, from, to, max, dir, 100, + nullptr, nullptr, elevations_, routing_algo); auto const p1 = route(params, w_, l_, profile, from, std::vector{to}, max, dir, 100, nullptr, nullptr, elevations_); @@ -161,7 +168,233 @@ struct http_server::impl { http::status::not_found)); return; } - cb(json_response(req, to_featurecollection(w_, p))); + + auto annotator = instruction_annotator{w_}; + annotator.annotate(*p); + + cb(json_response(req, to_featurecollection(w_, p, true, true, true))); + } + + static void handle_post_test_case(web_server::http_req_t const& req, + web_server::http_res_cb_t const& cb) { + try { + auto const test_case = json::parse(req.body()).as_object(); + json::array all_tests; + auto const new_name = test_case.at("name").as_string(); + + std::ifstream ifs(test_cases_path); + if (ifs.is_open()) { + std::string content((std::istreambuf_iterator(ifs)), + std::istreambuf_iterator()); + if (!content.empty()) { + all_tests = json::parse(content).as_array(); + } + ifs.close(); + } + + bool found = false; + for (auto& existing_test : all_tests) { + if (existing_test.as_object().at("name").as_string() == new_name) { + existing_test = test_case; // Replace existing entry + found = true; + break; + } + } + if (!found) { + all_tests.push_back(test_case); + } + + std::ofstream ofs(test_cases_path); + ofs << boost::json::serialize(all_tests); + ofs.close(); + return cb(json_response(req, "Saved", http::status::ok)); + } catch (std::exception const& e) { + return cb( + json_response(req, e.what(), http::status::internal_server_error)); + } + } + + static void handle_get_test_cases(web_server::http_req_t const& req, + web_server::http_res_cb_t const& cb) { + try { + std::ifstream ifs(test_cases_path); + if (ifs.is_open()) { + std::string content((std::istreambuf_iterator(ifs)), + std::istreambuf_iterator()); + ifs.close(); + if (!content.empty()) { + return cb(json_response(req, content, http::status::ok)); + } + } + } catch (std::exception const& e) { + return cb( + json_response(req, e.what(), http::status::internal_server_error)); + } + } + + static void handle_get_available_feeds(web_server::http_req_t const& req, + web_server::http_res_cb_t const& cb) { + try { + json::array feeds; + + if (fs::exists(test_data_dir) && fs::is_directory(test_data_dir)) { + for (auto const& entry : fs::directory_iterator(test_data_dir)) { + if (entry.is_regular_file() && entry.path().extension() == ".pbf") { + feeds.push_back(entry.path().filename().c_str()); + } + } + } + + return cb( + json_response(req, boost::json::serialize(feeds), http::status::ok)); + } catch (std::exception const& e) { + return cb( + json_response(req, e.what(), http::status::internal_server_error)); + } + } + + void handle_get_way_instruction_properties( + web_server::http_req_t const& req, web_server::http_res_cb_t const& cb) { + + constexpr auto instruction_properties_to_json = + [](way_instruction_properties const& props) { + return boost::json::object{ + {"highway", get_highway_name(props.get_highway())}, + {"junction", get_junction_name(props.get_junction())}, + {"is_link", props.is_link()}, + {"is_footway_crossing", props.is_footway_crossing()}, + {"lanes_forward", props.lanes_forward()}, + {"lanes_backward", props.lanes_backward()} + }; + }; + + try { + auto target = req.target(); + auto view = boost::urls::parse_origin_form(target); + if (view.has_value()) { + auto const params = view->params(); + + auto const way_param_iter = params.find("way"); + if (way_param_iter == params.end() || !(*way_param_iter).has_value) { + return cb(json_response(req, "Parameter mode is missing", + http::status::bad_request)); + } + + const auto osm_way_idx = + osm_way_idx_t{std::stoll((*way_param_iter).value)}; + const auto way_idx = w_.find_way(osm_way_idx); + if (!way_idx.has_value()) { + return cb(json_response(req, "no mapping for given way", + http::status::bad_request)); + } + return cb( + json_response(req, + boost::json::serialize(instruction_properties_to_json( + w_.way_instruction_properties_[*way_idx])), + http::status::ok)); + } + + return cb( + json_response(req, "Parameters missing", http::status::bad_request)); + + } catch (std::exception const& e) { + return cb( + json_response(req, e.what(), http::status::internal_server_error)); + } + } + + void handle_get_traversed_node_hub(web_server::http_req_t const& req, + web_server::http_res_cb_t const& cb) { + + try { + auto target = req.target(); + auto view = boost::urls::parse_origin_form(target); + + std::array nodes_indices; + nodes_indices.fill(node_idx_t::invalid()); + std::array way_indices; + way_indices.fill(way_idx_t::invalid()); + std::array way_directions_reverse; + way_directions_reverse.fill(false); + + if (view.has_value()) { + auto const params = view->params(); + auto const mode_param_iter = params.find("mode"); + if (mode_param_iter == params.end() || !(*mode_param_iter).has_value) { + return cb(json_response(req, "Parameter mode is missing", + http::status::bad_request)); + } + + const auto m = static_cast(std::stol((*mode_param_iter).value)); + + for (const auto [i, node_param] : + utl::enumerate>( + {"osm_prev_node", "osm_hub_node", "osm_next_node"})) { + const auto node_param_iter = params.find(node_param); + if (node_param_iter != params.end() && (*node_param_iter).has_value) { + osm_node_idx_t const osm_node_idx( + std::stoll((*node_param_iter).value)); + if (osm_node_idx != 0U) { + nodes_indices[i] = w_.get_node_idx(osm_node_idx); + } + } + } + + for (const auto [i, way_param] : + utl::enumerate>( + {"osm_arrive_way", "osm_exit_way"})) { + const auto way_param_iter = params.find(way_param); + if (way_param_iter != params.end() && (*way_param_iter).has_value) { + osm_way_idx_t const osm_way_idx( + std::stoll((*way_param_iter).value)); + if (osm_way_idx != 0U) { + if (const auto opt_way_idx = w_.find_way(osm_way_idx); + opt_way_idx.has_value()) { + way_indices[i] = *opt_way_idx; + } + } + } + } + + for (const auto [i, way_direction] : + utl::enumerate>( + {"arrive_way_direction", "exit_way_direction"})) { + const auto way_param_iter = params.find(way_direction); + if (way_param_iter != params.end() && (*way_param_iter).has_value) { + way_directions_reverse[i] = (*way_param_iter).value == "backward"; + } + } + + if (std::ranges::any_of(nodes_indices, [](node_idx_t const idx) { + return idx == node_idx_t::invalid(); + })) { + return cb(json_response(req, "At least one node idx is invalid", + http::status::bad_request)); + } + + if (std::ranges::any_of(way_indices, [](way_idx_t const idx) { + return idx == way_idx_t::invalid(); + })) { + return cb(json_response(req, "At least one way idx is invalid", + http::status::bad_request)); + } + + const auto hub = traversed_node_hub::from( + w_, nodes_indices[0], way_indices[0], nodes_indices[1], + way_indices[1], nodes_indices[2], !way_directions_reverse[0], + !way_directions_reverse[1], m); + + return cb(json_response(req, + hub.to_json(w_), + http::status::ok)); + } + + return cb( + json_response(req, "Parameters missing", http::status::bad_request)); + } catch (std::exception const& e) { + return cb( + json_response(req, e.what(), http::status::internal_server_error)); + } } void handle_levels(web_server::http_req_t const& req, @@ -256,6 +489,10 @@ struct http_server::impl { case http::verb::options: return cb(json_response(req, {})); case http::verb::post: { auto const& target = req.target(); + if (provide_test_features_ && + target.starts_with("/api/test-framework/test-case")) { + return handle_post_test_case(req, cb); + } if (target.starts_with("/api/route")) { return run_parallel( [this](web_server::http_req_t const& req1, @@ -289,7 +526,36 @@ struct http_server::impl { http::status::not_found)); } } - case http::verb::get: + case http::verb::get: { + auto const& target = req.target(); + if (provide_test_features_) { + if (target.starts_with("/api/test-framework/test-cases")) { + return run_parallel( + [this](web_server::http_req_t const& req1, + web_server::http_res_cb_t const& cb1) { + handle_get_test_cases(req1, cb1); + }, + req, cb); + } else if (target.starts_with("/api/test-framework/feeds")) { + return handle_get_available_feeds(req, cb); + } else if (target.starts_with("/api/test-framework/hub")) { + return run_parallel( + [this](web_server::http_req_t const& req1, + web_server::http_res_cb_t const& cb1) { + handle_get_traversed_node_hub(req1, cb1); + }, + req, cb); + } else if (target.starts_with( + "/api/test-framework/instruction-properties")) { + return run_parallel( + [this](web_server::http_req_t const& req1, + web_server::http_res_cb_t const& cb1) { + handle_get_way_instruction_properties(req1, cb1); + }, + req, cb); + } + } + } case http::verb::head: return handle_static(req, cb); default: return cb(json_response(req, @@ -358,6 +624,7 @@ struct http_server::impl { web_server server_; bool serve_static_files_{false}; std::string static_file_path_; + bool provide_test_features_{false}; }; http_server::http_server(boost::asio::io_context& ioc, @@ -366,8 +633,9 @@ http_server::http_server(boost::asio::io_context& ioc, lookup const& l, platforms const* pl, elevation_storage const* elevation, - std::string const& static_file_path) - : impl_{new impl(ioc, thread_pool, w, l, pl, elevation, static_file_path)} { + std::string const& static_file_path, + bool const provide_test_features) + : impl_{new impl(ioc, thread_pool, w, l, pl, elevation, static_file_path, provide_test_features)} { } http_server::~http_server() = default; diff --git a/exe/backend/src/main.cc b/exe/backend/src/main.cc index 98cf3647..d8802f8c 100644 --- a/exe/backend/src/main.cc +++ b/exe/backend/src/main.cc @@ -31,6 +31,8 @@ class settings : public conf::configuration { param(static_file_path_, "static,s", "Path to static files (ui/web)"); param(threads_, "threads,t", "Number of routing threads"); param(lock_, "lock,l", "Lock to memory"); + param(provide_test_features_, "test_features", + "Adds additional endpoints used in the test framework"); } fs::path data_dir_{"osr"}; @@ -39,6 +41,7 @@ class settings : public conf::configuration { std::string static_file_path_; bool lock_{true}; unsigned threads_{std::thread::hardware_concurrency()}; + bool provide_test_features_{false}; }; auto run(boost::asio::io_context& ioc) { @@ -96,8 +99,14 @@ int main(int argc, char const* argv[]) { auto ioc = boost::asio::io_context{}; auto pool = boost::asio::io_context{}; - auto server = http_server{ - ioc, pool, w, l, pl.get(), elevations.get(), opt.static_file_path_}; + auto server = http_server{ioc, + pool, + w, + l, + pl.get(), + elevations.get(), + opt.static_file_path_, + opt.provide_test_features_}; auto work_guard = boost::asio::make_work_guard(pool); auto threads = std::vector(std::max(1U, opt.threads_)); diff --git a/include/osr/debug.h b/include/osr/debug.h new file mode 100644 index 00000000..ed7e6967 --- /dev/null +++ b/include/osr/debug.h @@ -0,0 +1,16 @@ +#pragma once + +#include "fmt/core.h" + +namespace osr { + +constexpr bool osr_tracing_enabled = true; + +template +void trace(fmt::format_string fmt, Args&&... args) { + if constexpr (osr_tracing_enabled) { + fmt::print(fmt, std::forward(args)...); + } +} + +} // namespace osr \ No newline at end of file diff --git a/include/osr/extract/tags.h b/include/osr/extract/tags.h index 38516960..8c16ca03 100644 --- a/include/osr/extract/tags.h +++ b/include/osr/extract/tags.h @@ -56,9 +56,13 @@ struct tags { oneway_ |= t.value() == "yes"sv; break; case cista::hash("junction"): + junction_ = t.value(); oneway_ |= t.value() == "roundabout"sv; circular |= t.value() == "circular"sv; break; + case cista::hash("footway"): + footway_ = t.value(); + break; case cista::hash("oneway:bicycle"): not_oneway_bike_ = t.value() == "no"sv; break; @@ -178,6 +182,13 @@ struct tags { } } break; case cista::hash("maxspeed"): max_speed_ = t.value(); break; + case cista::hash("lanes"): lanes_ = t.value(); break; + case cista::hash("lanes:forward"): lanes_forward_ = t.value(); break; + case cista::hash("lanes:backward"): lanes_backward_ = t.value(); break; + case cista::hash("turn:lanes"): turn_lanes_ = t.value(); break; + case cista::hash("turn:lanes:forward"): turn_lanes_forward_ = t.value(); break; + case cista::hash("turn:lanes:backward"): turn_lanes_backward_ = t.value(); break; + case cista::hash("turn:lanes:both_ways"): turn_lanes_both_ways_ = t.value(); break; case cista::hash("toll"): toll_ = t.value() == "yes"sv; break; case cista::hash("incline"): { auto const value = std::string_view{t.value()}; @@ -263,12 +274,33 @@ struct tags { // https://wiki.openstreetmap.org/wiki/Key:maxspeed std::string_view max_speed_; + // https://wiki.openstreetmap.org/wiki/Key:lanes + std::string_view lanes_; + + // https://wiki.openstreetmap.org/wiki/Forward_%26_backward,_left_%26_right + std::string_view lanes_forward_; + + // https://wiki.openstreetmap.org/wiki/Forward_%26_backward,_left_%26_right + std::string_view lanes_backward_; + + // https://wiki.openstreetmap.org/wiki/Key:turn#Indicated_turns_by_lane + std::string_view turn_lanes_; + std::string_view turn_lanes_forward_; + std::string_view turn_lanes_backward_; + std::string_view turn_lanes_both_ways_; + // https://wiki.openstreetmap.org/wiki/Key:name std::string_view name_; // https://wiki.openstreetmap.org/wiki/Key:ref std::string_view ref_; + // https://wiki.openstreetmap.org/wiki/Key:junction + std::string_view junction_; + + // https://wiki.openstreetmap.org/wiki/Key:footway + std::string_view footway_; + // https://wiki.openstreetmap.org/wiki/Key:vehicle bool is_destination_{false}; override vehicle_{override::kNone}; diff --git a/include/osr/geojson.h b/include/osr/geojson.h index adace77b..fbdc211e 100644 --- a/include/osr/geojson.h +++ b/include/osr/geojson.h @@ -1,7 +1,6 @@ -#include "boost/json.hpp" +#pragma once -#include "fmt/ranges.h" -#include "fmt/std.h" +#include "boost/json.hpp" #include "utl/pairwise.h" #include "utl/pipes.h" @@ -35,7 +34,9 @@ boost::json::value to_line_string(std::initializer_list&& line) { inline std::string to_featurecollection(ways const& w, std::optional const& p, - bool const with_properties = true) { + bool const with_properties = true, + bool const with_instructions = false, + bool const with_osm_nodes = false) { return boost::json::serialize(boost::json::object{ {"type", "FeatureCollection"}, {"metadata", with_properties ? boost::json::value{{"duration", p->cost_}, @@ -43,18 +44,33 @@ inline std::string to_featurecollection(ways const& w, : boost::json::value{{}}}, {"features", utl::all(p->segments_) | utl::transform([&](const path::segment& s) { + + boost::json::object properties = { + {"level", s.from_level_.to_float()}, + {"osm_way_id", s.way_ == way_idx_t::invalid() + ? 0U : to_idx(w.way_osm_idx_[s.way_])}, + {"cost", s.cost_}, + {"distance", s.dist_}, + {"mode", static_cast(s.mode_)}, + {"is_reverse", s.is_reverse_}}; + + if (with_instructions) { + properties["instruction"] = to_json(s.instruction_annotation_, w); + } + + if (with_osm_nodes) { + properties["segment_from"] = s.from_ == node_idx_t::invalid() + ? 0U + : to_idx(w.node_to_osm_[s.from_]); + properties["segment_to"] = s.to_ == node_idx_t::invalid() + ? 0U + : to_idx(w.node_to_osm_[s.to_]); + } + return boost::json::object{ - {"type", "Feature"}, - { - "properties", - {{"level", s.from_level_.to_float()}, - {"osm_way_id", s.way_ == way_idx_t::invalid() - ? 0U - : to_idx(w.way_osm_idx_[s.way_])}, - {"cost", s.cost_}, - {"distance", s.dist_}}, - }, - {"geometry", to_line_string(s.polyline_)}}; + {"type", "Feature"}, + {"properties", std::move(properties)}, + {"geometry", to_line_string(s.polyline_)}}; }) | utl::emplace_back_to()}}); } diff --git a/include/osr/routing/instructions/directions.h b/include/osr/routing/instructions/directions.h new file mode 100644 index 00000000..12d8d23b --- /dev/null +++ b/include/osr/routing/instructions/directions.h @@ -0,0 +1,42 @@ +#pragma once + +#include + +#include "geo/latlng.h" + +namespace osr { + +enum class vertical_direction : std::uint8_t { + kUp, + kDown +}; + +enum class relative_direction: std::uint8_t { + kTurnAround, + kSharpRight, + kRight, + kSlightRight, + kSharpLeft, + kLeft, + kSlightLeft, + kStraight, + kInvalid +}; + +double normalize(double angle); + +relative_direction get_relative_direction(double angle); + +bool is_rightish(relative_direction direction); + +bool is_leftish(relative_direction direction); + +bool is_slightish(relative_direction dir); + +double get_angle(geo::latlng const& p1, + geo::latlng const& shared, + geo::latlng const& p2); + + + +} // namespace osr diff --git a/include/osr/routing/instructions/instruction_annotator.h b/include/osr/routing/instructions/instruction_annotator.h new file mode 100644 index 00000000..c634b22a --- /dev/null +++ b/include/osr/routing/instructions/instruction_annotator.h @@ -0,0 +1,29 @@ +#pragma once + +#include +#include + +#include "osr/routing/path.h" +#include "osr/routing/instructions/module.h" +#include "osr/routing/instructions/meta_data.h" + +namespace osr { + +struct ways; + +class instruction_annotator { +public: + explicit instruction_annotator(ways const& w); + void annotate(path& path); + +private: + void preprocess(path& path, std::vector& meta); + void init_chain(); + void process_chain(); + + ways const& ways_; + std::vector> modules_; + std::shared_ptr head_module_; +}; + +} \ No newline at end of file diff --git a/include/osr/routing/instructions/instruction_util.h b/include/osr/routing/instructions/instruction_util.h new file mode 100644 index 00000000..87498feb --- /dev/null +++ b/include/osr/routing/instructions/instruction_util.h @@ -0,0 +1,58 @@ +#pragma once + +#include "osr/routing/instructions/module.h" +#include "osr/types.h" +#include "osr/ways.h" + +namespace osr { + +bool is_from_motorway(ways const& w, traversed_node_hub const& hub); + +bool is_from_ramp(ways const& w, traversed_node_hub const& hub); + +bool is_onto_motorway(ways const& w, traversed_node_hub const& hub); + +bool is_onto_ramp(ways const& w, traversed_node_hub const& hub); + +bool is_last_segment(segment_contexts_window const& window); + +bool ways_have_same_name(way_idx_t w1, way_idx_t w2, ways const& w); + +bool ways_have_same_highway(way_idx_t w1, way_idx_t w2, ways const& w); + +bool is_roundabout_way(ways const& w, way_idx_t way); + +bool is_link(ways const& w, way_idx_t way); + +bool is_motorway_or_trunk(ways const& w, way_idx_t way); + +bool turn_onto_through_street(ways const& w, traversed_node_hub const& hub); + +bool is_more_important_by(highway h1, + highway h2, + unsigned diff); + +bool is_segment_mode(path::segment const& segment, mode m); + +way_idx_t get_way_from(segment_context const& context); + +std::pair get_instruction_for_fork( + ways const& w, traversed_node_hub const& hub, size_t left, size_t right); + +std::tuple +get_instruction_for_fork(ways const& w, traversed_node_hub const& hub, + size_t left, size_t center, size_t right); + +std::optional get_traversed_node_hub( + path::segment const& segment, path::segment const& next_segment, + ways const& w); + +std::optional get_crossing_street(ways const& w, + traversed_node_hub const& h); + +bool is_merge_on_through_street(ways const& w, + traversed_node_hub const& h); + +bool is_pedestrian(mode const m); + +} // namespace osr diff --git a/include/osr/routing/instructions/meta_data.h b/include/osr/routing/instructions/meta_data.h new file mode 100644 index 00000000..a274785a --- /dev/null +++ b/include/osr/routing/instructions/meta_data.h @@ -0,0 +1,110 @@ +#pragma once + +#include + +#include "osr/routing/instructions/directions.h" +#include "osr/routing/path.h" +#include "osr/types.h" +#include "osr/ways.h" + +namespace osr { + +struct traversed_node_hub { + + struct way_osm_nodes_idx_range { + + way_osm_nodes_idx_range flip() const; + + std::uint16_t from_; + std::uint16_t to_; // inclusive + }; + + struct way_segment { + + bool is_way_aligned() const; + + static way_segment from(const ways& w, way_idx_t way, osm_node_idx_t from, + osm_node_idx_t to, bool is_way_aligned); + + way_segment flip_directions() const; + + osm_node_idx_t get_from_idx(ways const& w) const; + osm_node_idx_t get_to_idx(ways const& w) const; + + point get_from_position(ways const& w) const; + point get_to_position(ways const& w) const; + + + way_idx_t way_idx_; + way_osm_nodes_idx_range osm_node_range_; + }; + + struct relative_way_segment { + + bool can_enter_hub() const; + + bool can_exit_hub() const; + + bool is_opposite_of_arrive() const; + + double angle_with_exit_; + double angle_with_arrive_; + + bool can_enter_hub_; + bool can_exit_hub_; + bool is_opposite_of_arrive_; + + way_segment segment_; + }; + + static traversed_node_hub from(ways const& w, node_idx_t prev_node, + way_idx_t arrive_way, node_idx_t hub_node, + way_idx_t depart_way, node_idx_t next_node, + bool is_arrive_way_aligned, + bool is_exit_way_aligned, + mode m); + + unsigned long number_of_possible_turns(bool consider_uturn) const; + + unsigned long number_of_visible_turns(bool consider_uturn) const; + + double angle_with_exit_from(ways const& w, std::size_t alt_idx) const; + + void print(std::ostream& out, ways const& w) const; + + relative_way_segment get_exit() const; + + auto get_exit_neighbors(bool left) const { + if (left) { + // From index 1 (omit u-turn) to exit_from_hub_idx_ (exclusive) + return std::ranges::subrange( + alternatives_.begin() + 1, + alternatives_.begin() + static_cast(exit_from_hub_idx_)); + } else { + // From index exit_from_hub_idx_ + 1 to the end + return std::ranges::subrange( + alternatives_.begin() + static_cast(exit_from_hub_idx_) + 1, + alternatives_.end()); + } + } + + bool is_exit_natural_choice(ways const& w) const; + + bool is_end_of_turn_lane(ways const& w, bool left, bool dedicated) const; + + bool does_way_names_change(ways const& w) const; + + std::string to_json(ways const& w) const; + + way_segment arrive_hub_on_; + node_idx_t hub_node_; + std::vector alternatives_{}; + size_t exit_from_hub_idx_; +}; + +struct segment_context { + path::segment* src_ptr_; + std::optional traversed_node_hub_; +}; + +} // namespace osr diff --git a/include/osr/routing/instructions/module.h b/include/osr/routing/instructions/module.h new file mode 100644 index 00000000..8bea3b1c --- /dev/null +++ b/include/osr/routing/instructions/module.h @@ -0,0 +1,36 @@ +#pragma once + +#include "osr/routing/instructions/meta_data.h" +#include "osr/routing/path.h" +#include "osr/util/sliding_window.h" +#include "osr/ways.h" + +namespace osr { + +using segment_contexts = std::vector; +using segment_contexts_window = window<1, segment_contexts::iterator>; + +class instruction_module { +public: + virtual ~instruction_module() = default; + + virtual void process(ways const& w, path& p, + segment_contexts_window const& window) { + if (this->next_module_) { + this->next_module_->process(w, p, window); + } + } + + virtual std::shared_ptr set_next( + std::shared_ptr next_module) { + this->next_module_ = next_module; + return next_module; + } + + virtual void post_process(ways const&, path&, segment_contexts const&) {} + +private: + std::shared_ptr next_module_; +}; + +} // namespace osr diff --git a/include/osr/routing/instructions/modules/destination_module.h b/include/osr/routing/instructions/modules/destination_module.h new file mode 100644 index 00000000..b9e4da80 --- /dev/null +++ b/include/osr/routing/instructions/modules/destination_module.h @@ -0,0 +1,11 @@ +#pragma once + +#include "osr/routing/instructions/module.h" + +namespace osr { + +struct destination_module : instruction_module { + void process(ways const& w, path& p, segment_contexts_window const& window) override; +}; + +} // namespace osr diff --git a/include/osr/routing/instructions/modules/intersection_module.h b/include/osr/routing/instructions/modules/intersection_module.h new file mode 100644 index 00000000..87430728 --- /dev/null +++ b/include/osr/routing/instructions/modules/intersection_module.h @@ -0,0 +1,12 @@ +#pragma once + +#include "osr/routing/instructions/module.h" + +namespace osr { + +struct intersection_module : instruction_module { + void process(ways const& w, path& p, segment_contexts_window const& meta) override; + void post_process(ways const&, path&, segment_contexts const&) override; +}; + +} // namespace osr diff --git a/include/osr/routing/instructions/modules/motorway_module.h b/include/osr/routing/instructions/modules/motorway_module.h new file mode 100644 index 00000000..f3e297ef --- /dev/null +++ b/include/osr/routing/instructions/modules/motorway_module.h @@ -0,0 +1,11 @@ +#pragma once + +#include "osr/routing/instructions/module.h" + +namespace osr { + +struct motorway_module : instruction_module { + void process(ways const& w, path& p, segment_contexts_window const& window) override; +}; + +} // namespace osr diff --git a/include/osr/routing/instructions/modules/pedestrian_module.h b/include/osr/routing/instructions/modules/pedestrian_module.h new file mode 100644 index 00000000..29801ec4 --- /dev/null +++ b/include/osr/routing/instructions/modules/pedestrian_module.h @@ -0,0 +1,12 @@ +#pragma once + +#include "osr/routing/instructions/module.h" + +namespace osr { + +struct pedestrian_module : instruction_module { + void process(ways const& w, path& p, segment_contexts_window const& window) override; + void post_process(ways const&, path&, segment_contexts const&) override; +}; + +} // namespace osr diff --git a/include/osr/routing/instructions/modules/roundabout_module.h b/include/osr/routing/instructions/modules/roundabout_module.h new file mode 100644 index 00000000..bb571aed --- /dev/null +++ b/include/osr/routing/instructions/modules/roundabout_module.h @@ -0,0 +1,12 @@ +#pragma once + +#include "osr/routing/instructions/module.h" + +namespace osr { + +struct roundabout_module : instruction_module { + void process(ways const& w, path& p, segment_contexts_window const& window) override; + void post_process(ways const& w, path& p, segment_contexts const& contexts) override; +}; + +} // namespace osr diff --git a/include/osr/routing/instructions/routing_instruction.h b/include/osr/routing/instructions/routing_instruction.h new file mode 100644 index 00000000..208568ac --- /dev/null +++ b/include/osr/routing/instructions/routing_instruction.h @@ -0,0 +1,98 @@ +#pragma once + +#include +#include +#include "boost/json.hpp" +#include "osr/routing/instructions/directions.h" +#include "osr/ways.h" + +namespace osr { + +struct none_instruction { + auto operator<=>(none_instruction const&) const = default; +}; + +struct destination_instruction { + relative_direction direction_{relative_direction::kInvalid}; + auto operator<=>(destination_instruction const&) const = default; +}; + +struct becomes_instruction { + auto operator<=>(becomes_instruction const&) const = default; +}; + +struct continue_instruction { + auto operator<=>(continue_instruction const&) const = default; +}; + +struct turn_instruction { + relative_direction direction_{relative_direction::kInvalid}; + auto operator<=>(turn_instruction const&) const = default; +}; + +struct ramp_on_instruction { + relative_direction direction_{relative_direction::kInvalid}; + auto operator<=>(ramp_on_instruction const&) const = default; +}; + +struct ramp_off_instruction { + relative_direction direction_{relative_direction::kInvalid}; + auto operator<=>(ramp_off_instruction const&) const = default; +}; + +struct stay_instruction { + relative_direction direction_{relative_direction::kInvalid}; + auto operator<=>(stay_instruction const&) const = default; +}; + +struct enter_roundabout_instruction { + auto operator<=>(enter_roundabout_instruction const&) const = default; +}; + +struct exit_roundabout_instruction { + std::uint16_t exit_number_{0}; + auto operator<=>(exit_roundabout_instruction const&) const = default; +}; + +struct elevator_instruction { + vertical_direction direction_{vertical_direction::kUp}; + relative_direction relative_direction_{relative_direction::kInvalid}; + auto operator<=>(elevator_instruction const&) const = default; +}; + +struct stairs_instruction { + vertical_direction direction_{vertical_direction::kUp}; + relative_direction relative_direction_{relative_direction::kInvalid}; + auto operator<=>(stairs_instruction const&) const = default; +}; + +struct crossing_instruction { + string_idx_t street_{string_idx_t::invalid()}; + + bool operator==(crossing_instruction const&) const = default; + auto operator<=>(crossing_instruction const& o) const { + return cista::to_idx(street_) <=> cista::to_idx(o.street_); + } +}; + +using routing_instruction = std::variant< + none_instruction, + destination_instruction, + becomes_instruction, + continue_instruction, + turn_instruction, + ramp_on_instruction, + ramp_off_instruction, + stay_instruction, + enter_roundabout_instruction, + exit_roundabout_instruction, + elevator_instruction, + stairs_instruction, + crossing_instruction +>; + +boost::json::value to_json(routing_instruction const& instruction, ways const& w); +routing_instruction from_json(boost::json::value const& json, ways const& w); +std::string to_string(routing_instruction const& instruction); + +} \ No newline at end of file diff --git a/include/osr/routing/path.h b/include/osr/routing/path.h index 1971af62..f6370362 100644 --- a/include/osr/routing/path.h +++ b/include/osr/routing/path.h @@ -3,8 +3,10 @@ #include #include "geo/polyline.h" +#include "instructions/directions.h" #include "osr/elevation_storage.h" +#include "osr/routing/instructions/routing_instruction.h" #include "osr/routing/mode.h" #include "osr/types.h" @@ -12,16 +14,19 @@ namespace osr { struct path { struct segment { + geo::polyline polyline_; level_t from_level_{kNoLevel}; level_t to_level_{kNoLevel}; node_idx_t from_{node_idx_t::invalid()}; node_idx_t to_{node_idx_t::invalid()}; + bool is_reverse_{false}; way_idx_t way_{way_idx_t::invalid()}; cost_t cost_{kInfeasible}; distance_t dist_{0}; elevation_storage::elevation elevation_{}; mode mode_{mode::kFoot}; + routing_instruction instruction_annotation_{}; }; cost_t cost_{kInfeasible}; diff --git a/include/osr/routing/path_reconstruction.h b/include/osr/routing/path_reconstruction.h index 184b54c9..524a3d69 100644 --- a/include/osr/routing/path_reconstruction.h +++ b/include/osr/routing/path_reconstruction.h @@ -137,6 +137,7 @@ inline double add_path(typename P::parameters const& params, } segment.from_ = r.way_nodes_[way][start_idx]; segment.to_ = r.way_nodes_[way][end_idx]; + segment.is_reverse_ = is_reverse; for (auto const [osm_idx, coord] : infinite( reverse(utl::zip(w.way_osm_nodes_[way], w.way_polylines_[way]), diff --git a/include/osr/types.h b/include/osr/types.h index e9fc1437..eacade23 100644 --- a/include/osr/types.h +++ b/include/osr/types.h @@ -262,4 +262,44 @@ constexpr float to_seconds_per_meter(speed_limit const l) { std::unreachable(); } +enum highway : std::uint8_t { + motorway, + trunk, + primary, + secondary, + tertiary, + residential, + footish, + highway_other +}; + +constexpr std::string get_highway_name(highway const h) { + switch (h) { + case motorway: return "motorway"; + case trunk: return "trunk"; + case primary: return "primary"; + case secondary: return "secondary"; + case tertiary: return "tertiary"; + case residential: return "residential"; + case footish: return "footish"; + default: return "highway_other"; + } +} + +enum junction : std::uint8_t { + roundabout, + circular, + jughandle, + junction_none +}; + +constexpr std::string get_junction_name(junction const j) { + switch (j) { + case roundabout: return "roundabout"; + case circular: return "circular"; + case jughandle: return "jughandle"; + default: return "junction_none"; + } +} + } // namespace osr diff --git a/include/osr/util/sliding_window.h b/include/osr/util/sliding_window.h new file mode 100644 index 00000000..cb01a281 --- /dev/null +++ b/include/osr/util/sliding_window.h @@ -0,0 +1,136 @@ +#pragma once + +#include + +#include +#include + +#include "utl/verify.h" + +namespace osr { + +template +struct window { + window(It begin, It end, It focus, std::ptrdiff_t const index, std::ptrdiff_t const size) + : begin_{begin}, end_{end}, focus_{focus}, index_{index}, size_{size} {} + + It focus() const { return focus_; } + + bool has(int const offset) const { + if (std::abs(offset) > static_cast(Radius)) { + return false; + } + auto const target_idx = index_ + offset; + if (target_idx < 0 || target_idx >= size_) { + return false; + } + + return true; + } + + It at(int const offset) const { + if (std::abs(offset) > static_cast(Radius)) { + return end_; + } + auto const target_idx = index_ + offset; + if (target_idx < 0 || target_idx >= size_) { + return end_; + } + + // Optimization for Random Access Iterators + if constexpr (std::is_base_of_v< + std::random_access_iterator_tag, + typename std::iterator_traits::iterator_category>) { + return begin_ + target_idx; + } else { + // Fallback for other iterators + if (offset == 0) { + return focus_; + } + if (offset > 0) { + return std::next(focus_, offset); + } + return std::prev(focus_, -offset); + } + } + + It operator[](int const offset) const { return at(offset); } + + It begin_; + It end_; + It focus_; + std::ptrdiff_t index_; + std::ptrdiff_t size_; +}; + +template +struct sliding_window_iterator { + using iterator_category = std::forward_iterator_tag; + using value_type = window; + using difference_type = std::ptrdiff_t; + using pointer = window; + using reference = window; + + sliding_window_iterator(It begin, It end, It focus, std::ptrdiff_t index, + std::ptrdiff_t size) + : begin_{begin}, end_{end}, focus_{focus}, index_{index}, size_{size} {} + + reference operator*() const { return {begin_, end_, focus_, index_, size_}; } + + sliding_window_iterator& operator++() { + ++focus_; + ++index_; + return *this; + } + + sliding_window_iterator operator++(int) { + auto tmp = *this; + ++(*this); + return tmp; + } + + friend bool operator==(sliding_window_iterator const& a, + sliding_window_iterator const& b) { + return a.focus_ == b.focus_; + } + + friend bool operator!=(sliding_window_iterator const& a, + sliding_window_iterator const& b) { + return a.focus_ != b.focus_; + } + + It begin_; + It end_; + It focus_; + std::ptrdiff_t index_; + std::ptrdiff_t size_; +}; + +template +struct sliding_window_range { + using iterator = sliding_window_iterator; + + sliding_window_range(It begin, It end, std::ptrdiff_t size) + : begin_{begin}, end_{end}, size_{size} {} + + iterator begin() const { return iterator{begin_, end_, begin_, 0, size_}; } + iterator end() const { return iterator{begin_, end_, end_, size_, size_}; } + + friend iterator begin(sliding_window_range const& r) { return r.begin(); } + friend iterator end(sliding_window_range const& r) { return r.end(); } + + It begin_; + It end_; + std::ptrdiff_t size_; +}; + +template +auto sliding_window(Container&& c) { + using std::begin; + using std::end; + using std::size; + return sliding_window_range{ + begin(c), end(c), static_cast(size(c))}; +} + +} // namespace osr diff --git a/include/osr/ways.h b/include/osr/ways.h index 963071b1..be7260db 100644 --- a/include/osr/ways.h +++ b/include/osr/ways.h @@ -61,6 +61,84 @@ struct restriction { way_pos_t applies_to_bus_ : 1; }; +struct way_instruction_properties { + + template + friend constexpr auto static_type_hash( + way_instruction_properties const*, + cista::hash_data h) noexcept { + return h.combine(cista::hash("way_instruction_properties v1")); + } + + template + friend void serialize(Ctx&, way_instruction_properties const*, + cista::offset_t) {} + + template + friend void deserialize(Ctx const&, way_instruction_properties*) {} + + constexpr highway get_highway() const { return static_cast(highway_); } + + constexpr junction get_junction() const { return static_cast(junction_); } + + constexpr bool is_link() const { return is_link_ == 1U; } + + constexpr bool is_footway_crossing() const { return is_footway_crossing_ == 1U; } + + constexpr std::uint8_t lanes_forward() const { return lanes_forward_; } + + constexpr std::uint8_t lanes_backward() const { return lanes_backward_; } + + constexpr bool has_lanes() const { return lanes_forward_ != 0 || lanes_backward_ != 0; } + + constexpr bool is_stairs() const { return is_stairs_up_ == 1U || is_stairs_down_ == 1U; } + + constexpr bool is_stairs_up() const { return is_stairs_up_ == 1U; } + + constexpr bool is_stairs_down() const { return is_stairs_down_ == 1U; } + + constexpr bool has_left_turn_lane(direction const dir) const { + return (static_cast(dir == direction::kForward ? turn_lanes_forward_ : turn_lanes_backward_) & 1U) != 0; + } + + constexpr bool has_through_lane(direction const dir) const { + return (static_cast(dir == direction::kForward ? turn_lanes_forward_ : turn_lanes_backward_) & 2U) != 0; + } + + constexpr bool has_right_turn_lane(direction const dir) const { + return (static_cast(dir == direction::kForward ? turn_lanes_forward_ : turn_lanes_backward_) & 4U) != 0; + } + + std::uint8_t highway_ : 3; + std::uint8_t is_link_ : 1; + std::uint8_t junction_ : 2; + std::uint8_t is_footway_crossing_ : 1; + std::uint8_t is_stairs_down_ : 1; + std::uint8_t is_stairs_up_ : 1; + + /* + * Bitmask representations for turn lane configurations mapping from OSM keys: + * (turn:lanes, turn:lanes:forward, turn:lanes:backward, turn:lanes:both_ways) + * + * Each 3-bit field uses the following layout: + * [ Bit 2 ] [ Bit 1 ] [ Bit 0 ] + * | | | + * | | +-- Leftish turn lane exists (e.g., left, sharp_left, slight_left) + * | +------------ Through lane exists (e.g., through) + * +---------------------- Rightish turn lane exists (e.g., right, sharp_right, slight_right) + * + * Example: 0b101 (5) means there are left and right turn lanes, but no through lane. + */ + std::uint8_t turn_lanes_forward_ : 3; + std::uint8_t turn_lanes_backward_ : 3; + + std::uint8_t reserved_ : 1; + std::uint8_t lanes_forward_ : 4; + std::uint8_t lanes_backward_ : 4; +}; + +static_assert(sizeof(way_instruction_properties) == 3); + struct way_properties { constexpr bool is_accessible() const { return is_car_accessible() || is_bike_accessible() || @@ -203,7 +281,18 @@ struct ways { void compute_turn_bearings(); void build_components(); - std::optional find_way(osm_way_idx_t const i) { + std::optional find_string(std::string const& s) const { + const auto it = + std::find_if(begin(strings_), end(strings_), + [&s](const auto& str) { return str.view() == s; }); + if (it != end(strings_)) { + return std::optional{string_idx_t{std::distance(begin(strings_), it)}}; + } + + return std::nullopt; + } + + std::optional find_way(osm_way_idx_t const i) const { auto const it = std::lower_bound(begin(way_osm_idx_), end(way_osm_idx_), i); return it != end(way_osm_idx_) && *it == i ? std::optional{way_idx_t{ @@ -398,6 +487,7 @@ struct ways { mm_vecvec way_osm_nodes_; mm_vecvec strings_; mm_vec_map way_names_; + mm_vec_map way_instruction_properties_; mm_bitvec way_has_conditional_access_no_; mm_vec> way_conditional_access_no_; diff --git a/src/extract.cc b/src/extract.cc index 962ae091..897961f5 100644 --- a/src/extract.cc +++ b/src/extract.cc @@ -7,6 +7,7 @@ #include "osr/extract/extract.h" #include "boost/thread/tss.hpp" +#include "boost/algorithm/string.hpp" #include "fmt/core.h" #include "fmt/std.h" @@ -117,6 +118,120 @@ speed_limit get_speed_limit(tags const& t) { } } +std::pair get_highway(tags const& t) { + switch (cista::hash(t.highway_)) { + case cista::hash("motorway"): return { motorway, false }; + case cista::hash("motorway_link"): return { motorway, true }; + case cista::hash("trunk"): return { trunk, false }; + case cista::hash("trunk_link"): return { trunk, true }; + case cista::hash("primary"): return { primary, false }; + case cista::hash("primary_link"): return { primary, true }; + case cista::hash("secondary"): return { secondary, false }; + case cista::hash("secondary_link"): return { secondary, true }; + case cista::hash("tertiary"): return { tertiary, false }; + case cista::hash("tertiary_link"): return { tertiary, true }; + case cista::hash("residential"): return { residential, false }; + + case cista::hash("footway"): + case cista::hash("bridleway"): + case cista::hash("steps"): + case cista::hash("corridor"): + case cista::hash("path"): + case cista::hash("via_ferrata"): return { footish, false }; + + default: return { highway_other, false }; + } +} + +std::pair get_lanes(tags const& t) { + if (is_number(t.lanes_forward_) && is_number(t.lanes_backward_)) { + return {static_cast(std::min( + 15U, utl::parse(t.lanes_forward_))), + static_cast(std::min( + 15U, utl::parse(t.lanes_backward_)))}; + } + + if (t.oneway_) { + const auto total_lanes = is_number(t.lanes_forward_) + ? t.lanes_forward_ + : (is_number(t.lanes_) ? t.lanes_ : "0"); + return {static_cast( + std::min(15U, utl::parse(total_lanes))), + 0U}; + } + + // Bidirectional way + + if (is_number(t.lanes_) && (is_number(t.lanes_forward_) || is_number(t.lanes_backward_))) { + const bool is_forward_lanes_defined = is_number(t.lanes_forward_); + const auto total_lanes = utl::parse(t.lanes_); + + const auto lanes_forward = + is_forward_lanes_defined + ? utl::parse(t.lanes_forward_) + : std::max(0U, + total_lanes - utl::parse(t.lanes_backward_)); + + const auto lanes_backward = + !is_forward_lanes_defined + ? utl::parse(t.lanes_backward_) + : std::max(0U, + total_lanes - utl::parse(t.lanes_forward_)); + + return {static_cast(std::min(15U, lanes_forward)), + static_cast(std::min(15U, lanes_backward))}; + } + + // if not specified further, when way is bidirectional it is assumed that + // the total number of lanes split evenly in both directions + if (is_number(t.lanes_)) { + if (const auto total_lanes = utl::parse(t.lanes_); + total_lanes % 2 != 0) { + // this is a weird case and mostly due + // to wrong tagging, so we return 0 in + // both directions + return {0U, 0U}; + } + const auto lanes_both = static_cast( + std::min(15U, utl::parse(t.lanes_) >> 1)); + + return {lanes_both, lanes_both}; + } + + return {0U, 0U}; +} + +std::pair get_stairs(tags const& t) { + if (t.highway_ == "steps") { + if (t.is_incline_down_) { + return {false, true}; + } else { + return {true, false}; + } + } + + return {false, false}; +} + +junction get_junction(tags const& t) { + switch (cista::hash(t.junction_)) { + case cista::hash("roundabout"): return roundabout; + case cista::hash("circular"): return circular; + case cista::hash("jughandle"): return jughandle; + default: return junction_none; + } +} + +bool is_foot_crossing(tags const& t) { + switch (cista::hash(t.footway_)) { + case cista::hash("crossing"): + case cista::hash("traffic_island"): return true; + default: return false; + } +} + + + struct rel_way { way_properties p_; platform_idx_t pl_{platform_idx_t::invalid()}; @@ -128,6 +243,73 @@ std::tuple get_levels(tags const& t) { return get_levels(t.has_level_, t.level_bits_); } +std::uint8_t parse_turn_lanes(std::string_view s) { + if (s.empty()) { + return 0; + } + std::uint8_t mask = 0; + while (!s.empty()) { + auto const pos = s.find('|'); + auto const part = (pos == std::string_view::npos) ? s : s.substr(0, pos); + + auto part_s = part; + while (!part_s.empty()) { + auto const semi_pos = part_s.find(';'); + auto const val = (semi_pos == std::string_view::npos) ? part_s : part_s.substr(0, semi_pos); + + auto const start = val.find_first_not_of(" \t\r\n"); + if (start != std::string_view::npos) { + auto const end = val.find_last_not_of(" \t\r\n"); + auto const trimmed = val.substr(start, end - start + 1); + if (boost::iequals(trimmed, "left") || boost::iequals(trimmed, "sharp_left") || + boost::iequals(trimmed, "slight_left")) { + mask |= 1U; + } else if (boost::iequals(trimmed, "through")) { + mask |= 2U; + } else if (boost::iequals(trimmed, "right") || boost::iequals(trimmed, "sharp_right") || + boost::iequals(trimmed, "slight_right")) { + mask |= 4U; + } + } + + if (semi_pos == std::string_view::npos) { + break; + } + part_s.remove_prefix(semi_pos + 1); + } + + if (pos == std::string_view::npos) { + break; + } + s.remove_prefix(pos + 1); + } + return mask; +} + +way_instruction_properties get_way_instruction_properties(tags const& t) { + auto ip = way_instruction_properties{}; + const auto [h, l] = get_highway(t); + ip.highway_ = h; + ip.is_link_ = l; + ip.junction_ = get_junction(t); + ip.is_footway_crossing_ = ip.highway_ == footish ? is_foot_crossing(t) : false; + + const auto [f, b] = get_lanes(t); + ip.lanes_forward_ = f; + ip.lanes_backward_ = b; + + const auto [is_u, is_d] = get_stairs(t); + ip.is_stairs_down_ = is_d ? 1U : 0U; + ip.is_stairs_up_ = is_u ? 1U : 0U; + + ip.turn_lanes_forward_ = parse_turn_lanes(t.turn_lanes_forward_) | + parse_turn_lanes(t.turn_lanes_) | + parse_turn_lanes(t.turn_lanes_both_ways_); + ip.turn_lanes_backward_ = parse_turn_lanes(t.turn_lanes_backward_) | + parse_turn_lanes(t.turn_lanes_both_ways_); + return ip; +} + way_properties get_way_properties( tags const& t, osm_obj_type const obj_type = osm_obj_type::kWay) { auto const [from, to, _] = get_levels(t); @@ -261,6 +443,8 @@ struct way_handler : public osm::handler::Handler { return; } + auto ip = get_way_instruction_properties(t); + if (!t.has_level_ && it != end(rel_ways_)) { p.from_level_ = it->second.p_.from_level_; p.to_level_ = it->second.p_.to_level_; @@ -307,6 +491,7 @@ struct way_handler : public osm::handler::Handler { w_.way_osm_idx_.push_back(osm_way_idx_t{w.positive_id()}); w_.r_->way_properties_.emplace_back(p); + w_.way_instruction_properties_.emplace_back(ip); w_.way_polylines_.emplace_back(w.nodes() | std::views::transform(get_point)); diff --git a/src/routing/instructions/directions.cc b/src/routing/instructions/directions.cc new file mode 100644 index 00000000..476b953a --- /dev/null +++ b/src/routing/instructions/directions.cc @@ -0,0 +1,78 @@ +#include "osr/routing/instructions/directions.h" + +#include "boost/beast/zlib/zlib.hpp" + +#include "geo/latlng.h" +#include "geo/webmercator.h" + +namespace osr { + +double normalize(double const angle) { + double x = std::fmod(angle + 180.0, 360.0); + if (x < 0) { + x += 360.0; + } + return x - 180.0; +} + +relative_direction get_relative_direction(const double angle) { + bool is_left = angle > 0; + double abs_angle = std::abs(angle); + if (abs_angle <= 10) { + return relative_direction::kStraight; + } + if (abs_angle <= 45) { + return is_left ? relative_direction::kSlightLeft : relative_direction::kSlightRight; + } + if (abs_angle <= 135) { + return is_left ? relative_direction::kLeft : relative_direction::kRight; + } + if (abs_angle < 180) { + return is_left ? relative_direction::kSharpLeft : relative_direction::kSharpRight; + } + + return relative_direction::kTurnAround; +} + +bool is_rightish(relative_direction const direction) { + switch (direction) { + case relative_direction::kSlightRight: + case relative_direction::kRight: + case relative_direction::kSharpRight: + return true; + default: + return false; + } +} + +bool is_leftish(relative_direction const direction) { + switch (direction) { + case relative_direction::kSlightLeft: + case relative_direction::kLeft: + case relative_direction::kSharpLeft: + return true; + default: + return false; + } +} + +bool is_slightish(relative_direction const dir) { + switch (dir) { + case relative_direction::kStraight: + case relative_direction::kSlightRight: + case relative_direction::kSlightLeft: + return true; + default: + return false; + } +} + +double get_angle(geo::latlng const& p1, + geo::latlng const& shared, + geo::latlng const& p2) { + const double b1 = geo::bearing(p1, shared); + const double b2 = geo::bearing(shared, p2); + return normalize(b2 - b1); // [-180,180] +} + +} // namespace osr \ No newline at end of file diff --git a/src/routing/instructions/instruction_annotator.cc b/src/routing/instructions/instruction_annotator.cc new file mode 100644 index 00000000..12405c55 --- /dev/null +++ b/src/routing/instructions/instruction_annotator.cc @@ -0,0 +1,107 @@ +#include "osr/routing/instructions/instruction_annotator.h" + +#include "osr/debug.h" +#include "osr/routing/path.h" +#include "utl/verify.h" + +#include "osr/routing/instructions/directions.h" +#include "osr/routing/instructions/instruction_util.h" +#include "osr/routing/instructions/modules/destination_module.h" +#include "osr/routing/instructions/modules/intersection_module.h" +#include "osr/routing/instructions/modules/motorway_module.h" +#include "osr/routing/instructions/modules/pedestrian_module.h" +#include "osr/routing/instructions/modules/roundabout_module.h" +#include "osr/util/sliding_window.h" + +namespace osr { + +instruction_annotator::instruction_annotator(ways const& w) + : ways_(w) + { + init_chain(); + } + +void instruction_annotator::init_chain() { + auto destination_module_ptr = std::make_shared(); + auto roundabout_module_ptr = std::make_shared(); + auto motorway_module_ptr = std::make_shared(); + auto pedestrian_module_ptr = std::make_shared(); + auto intersection_module_ptr = std::make_shared(); + + destination_module_ptr + ->set_next(roundabout_module_ptr) + ->set_next(motorway_module_ptr) + ->set_next(pedestrian_module_ptr) + // Fallback + ->set_next(intersection_module_ptr); + head_module_ = destination_module_ptr; + modules_.emplace_back(std::move(destination_module_ptr)); + modules_.emplace_back(std::move(roundabout_module_ptr)); + modules_.emplace_back(std::move(motorway_module_ptr)); + modules_.emplace_back(std::move(pedestrian_module_ptr)); + modules_.emplace_back(std::move(intersection_module_ptr)); +} + +bool can_be_annotated(segment_contexts_window const& window) { + if (is_last_segment(window)) { + return true; + } + + const auto& segment_context = *window.focus(); + const auto& next_segment_context = *window[1]; + const auto& segment = *segment_context.src_ptr_; + const auto& next_segment = *next_segment_context.src_ptr_; + + if (segment.to_ == node_idx_t::invalid() || + next_segment.from_ == node_idx_t::invalid() || + segment.way_ == way_idx_t::invalid() || + next_segment.way_ == way_idx_t::invalid() || + !segment_context.traversed_node_hub_.has_value()) { + return false; + } + + if (segment.to_ != next_segment.from_) { + return false; + } + + return true; +} + +void instruction_annotator::annotate(path& path) { + std::vector segment_contexts; + preprocess(path, segment_contexts); + + const auto context_windows = sliding_window<1>(segment_contexts); + for (const auto cw : context_windows) { + if (!can_be_annotated(cw)) { + continue; + } + trace("Matching context window against modules:\n"); + head_module_->process(ways_, path, cw); + } + + for (const auto& m : modules_) { + m->post_process(ways_, path, segment_contexts); + } +} + +void instruction_annotator::preprocess(path& path, + std::vector& meta) { + + auto& segments = path.segments_; + for (std::size_t i = 0; i + 1 < segments.size(); ++i) { + auto const& segment = segments[i]; + auto const& next_segment = segments[i + 1]; + + meta.emplace_back(&segments[i], + get_traversed_node_hub(segment, next_segment, ways_)); + } + + if (segments.size() > 1) { + // Sentinel for the last segment + meta.emplace_back(&segments.back(), + std::nullopt); + } +} + +} // namespace osr diff --git a/src/routing/instructions/instruction_util.cc b/src/routing/instructions/instruction_util.cc new file mode 100644 index 00000000..7fd59dfe --- /dev/null +++ b/src/routing/instructions/instruction_util.cc @@ -0,0 +1,404 @@ +#include "osr/routing/instructions/instruction_util.h" + +#include "osr/routing/instructions/module.h" + +namespace osr { + +bool is_from_motorway(ways const& w, traversed_node_hub const& hub) { + const auto& segment_instruction_properties = + w.way_instruction_properties_[hub.arrive_hub_on_.way_idx_]; + + return is_motorway_or_trunk(w, hub.arrive_hub_on_.way_idx_) && + !segment_instruction_properties.is_link(); +} + +bool is_from_ramp(ways const& w, traversed_node_hub const& hub) { + const auto& segment_instruction_properties = + w.way_instruction_properties_[hub.arrive_hub_on_.way_idx_]; + + return is_motorway_or_trunk(w, hub.arrive_hub_on_.way_idx_) && + segment_instruction_properties.is_link(); +} + +bool is_onto_motorway(ways const& w, traversed_node_hub const& hub) { + const auto& exit_from_hub = hub.get_exit(); + + const auto& segment_instruction_properties = + w.way_instruction_properties_[exit_from_hub.segment_.way_idx_]; + + return is_motorway_or_trunk(w, exit_from_hub.segment_.way_idx_) && + !segment_instruction_properties.is_link(); +} + +bool is_onto_ramp(ways const& w, traversed_node_hub const& hub) { + const auto& exit_from_hub = hub.get_exit(); + + const auto& segment_instruction_properties = + w.way_instruction_properties_[exit_from_hub.segment_.way_idx_]; + + return is_motorway_or_trunk(w, exit_from_hub.segment_.way_idx_) && + segment_instruction_properties.is_link(); +} + + +bool is_last_segment(segment_contexts_window const& window) { + return !window.has(1); +} + +bool ways_have_same_name(way_idx_t const w1, way_idx_t const w2, ways const& w) { + const string_idx_t s1 = w.way_names_[w1]; + if (s1 == string_idx_t::invalid()) { + return false; + } + + const string_idx_t s2 = w.way_names_[w2]; + if (s2 == string_idx_t::invalid()) { + return false; + } + + return s1 == s2; +} + +bool ways_have_same_highway(way_idx_t const w1, + way_idx_t const w2, + ways const& w) { + return w.way_instruction_properties_[w1].get_highway() == + w.way_instruction_properties_[w2].get_highway(); +} + +bool is_roundabout_way(ways const& w, way_idx_t const way) { + if (way == way_idx_t::invalid()) { + return false; + } + const auto junction = w.way_instruction_properties_[way].get_junction(); + return junction == junction::roundabout || + junction == junction::circular; +} + +bool is_link(ways const& w, way_idx_t const way) { + return w.way_instruction_properties_[way].is_link(); +} + +bool is_motorway_or_trunk(ways const& w, way_idx_t const way) { + const auto h = w.way_instruction_properties_[way].get_highway(); + return h == highway::motorway || h == highway::trunk; +} + +bool turn_onto_through_street(ways const& w, traversed_node_hub const& hub) { + + const auto& exit = hub.get_exit(); + for (std::size_t alt_idx = 1U; alt_idx < hub.alternatives_.size(); ++alt_idx) { + if (alt_idx == hub.exit_from_hub_idx_) { + continue; + } + + const auto& alt = hub.alternatives_[alt_idx]; + + const bool is_nearly_straight = std::abs(alt.angle_with_exit_) > 160.0; + const bool same_name = + ways_have_same_name(alt.segment_.way_idx_, + exit.segment_.way_idx_, w); + const bool same_highway = + ways_have_same_highway(alt.segment_.way_idx_, + exit.segment_.way_idx_, w); + + if (is_nearly_straight && same_name && same_highway) { + return true; + } + } + + return false; +} + +bool is_more_important_by(highway const h1, + highway const h2, + unsigned const diff) { + return h1 + diff <= h2; +} + +bool is_segment_mode(path::segment const& segment, mode const m) { + return segment.mode_ == m; +} + +way_idx_t get_way_from(segment_context const& context) { + return context.src_ptr_->way_; +} + +std::pair get_instruction_for_fork( + ways const& w, traversed_node_hub const& hub, size_t const left, size_t const right) { + utl::verify(left < right, "Alternatives are ordered in circular order"); + + const auto& alt_left = hub.alternatives_[left]; + const auto& alt_right = hub.alternatives_[right]; + + const auto alt_left_direction = + get_relative_direction(alt_left.angle_with_arrive_); + const auto alt_right_direction = + get_relative_direction(alt_right.angle_with_arrive_); + + const auto& left_props = + w.way_instruction_properties_[alt_left.segment_.way_idx_]; + const auto& right_props = + w.way_instruction_properties_[alt_right.segment_.way_idx_]; + + const auto left_highway = left_props.get_highway(); + const auto right_highway = right_props.get_highway(); + + if (alt_left_direction == relative_direction::kStraight && + alt_right_direction != relative_direction::kStraight) { + + if (is_more_important_by(right_highway, left_highway, 1)) { + return {stay_instruction{relative_direction::kLeft}, stay_instruction{relative_direction::kRight}}; + } + + return {none_instruction{}, stay_instruction{relative_direction::kRight}}; + } else if (alt_right_direction == relative_direction::kStraight && + alt_left_direction != relative_direction::kStraight) { + + if (is_more_important_by(left_highway, right_highway, 1)) { + return {stay_instruction{relative_direction::kLeft}, stay_instruction{relative_direction::kRight}}; + } + + return {stay_instruction{relative_direction::kLeft}, none_instruction{}}; + } + + return {stay_instruction{relative_direction::kLeft}, stay_instruction{relative_direction::kRight}}; +} + +std::tuple +get_instruction_for_fork(ways const& w, + traversed_node_hub const& hub, + size_t const left, + size_t const center, + size_t const right) { + utl::verify(left < center && center < right, + "Alternatives are ordered in circular order"); + + const auto& alt_left = hub.alternatives_[left]; + const auto& alt_center = hub.alternatives_[center]; + const auto& alt_right = hub.alternatives_[right]; + + if (alt_left.can_exit_hub() && + alt_center.can_exit_hub() && + alt_right.can_exit_hub()) { + + const auto alt_left_direction = + get_relative_direction(alt_left.angle_with_arrive_); + if (alt_left_direction == relative_direction::kStraight) { + return { + stay_instruction{relative_direction::kStraight}, + stay_instruction{relative_direction::kSlightRight}, + stay_instruction{relative_direction::kRight} + }; + } + + const auto alt_right_direction = + get_relative_direction(alt_right.angle_with_arrive_); + if (alt_right_direction == relative_direction::kStraight) { + return { + stay_instruction{relative_direction::kLeft}, + stay_instruction{relative_direction::kSlightLeft}, + stay_instruction{relative_direction::kStraight} + }; + } + + // center is somewhat straight + return { + stay_instruction{relative_direction::kLeft}, + stay_instruction{relative_direction::kStraight}, + stay_instruction{relative_direction::kRight} + }; + } + + if (alt_left.can_exit_hub()) { + if (alt_right.can_exit_hub()) { + const auto fork_instructions = + get_instruction_for_fork(w, hub, left, right); + return { + fork_instructions.first, + none_instruction{}, + fork_instructions.second}; + } + if (alt_center.can_exit_hub()) { + const auto fork_instructions = + get_instruction_for_fork(w, hub, left, center); + return { + fork_instructions.first, + fork_instructions.second, + none_instruction{} + }; + } + + return { + stay_instruction{relative_direction::kLeft}, + none_instruction{}, + none_instruction{} + }; + } + + if (alt_right.can_exit_hub()) { + if (alt_center.can_exit_hub()) { + const auto fork_instructions = + get_instruction_for_fork(w, hub, center, right); + + return { + none_instruction{}, + fork_instructions.first, + fork_instructions.second + }; + } + + return { + none_instruction{}, + none_instruction{}, + stay_instruction{relative_direction::kRight} + }; + } + + + if (alt_center.can_exit_hub()) { + return { + none_instruction{}, + stay_instruction{relative_direction::kStraight}, + none_instruction{} + }; + } + + return { + none_instruction{}, + none_instruction{}, + none_instruction{} + }; +} + +std::optional get_traversed_node_hub( + path::segment const& segment, path::segment const& next_segment, + ways const& w) { + if (segment.way_ == way_idx_t::invalid() || + next_segment.way_ == way_idx_t::invalid()) { + return std::nullopt; + } + + if (segment.from_ == node_idx_t::invalid() || segment.to_ == node_idx_t::invalid() || + next_segment.from_ == node_idx_t::invalid() || next_segment.to_ == node_idx_t::invalid()) { + return std::nullopt; + } + + return traversed_node_hub::from(w, segment.from_, segment.way_, segment.to_, + next_segment.way_, next_segment.to_, + !segment.is_reverse_, !next_segment.is_reverse_, + segment.mode_); +} + +unsigned long number_of_possible_turns_at(traversed_node_hub const& hub, + bool const left) { + constexpr auto is_possible = + [](traversed_node_hub::relative_way_segment const& rel_seg) { + return rel_seg.can_exit_hub_; + }; + + const auto count = + std::ranges::count_if(hub.get_exit_neighbors(left), is_possible); + return static_cast(count); +} + +std::optional get_crossing_street(ways const& w, + traversed_node_hub const& h) { + const auto& exit_segment = h.get_exit(); + + const auto from_way_idx = h.arrive_hub_on_.way_idx_; + const auto to_way_idx = exit_segment.segment_.way_idx_; + + const auto& from_way_instruction_props = + w.way_instruction_properties_[from_way_idx]; + const auto& to_way_instruction_props = + w.way_instruction_properties_[to_way_idx]; + + if (from_way_instruction_props.get_highway() != highway::footish || + to_way_instruction_props.get_highway() != highway::footish) { + return std::nullopt; + } + + const auto left_alts = h.get_exit_neighbors(true); + const auto right_alts = h.get_exit_neighbors(false); + + string_idx_t crossed_street = string_idx_t::invalid(); + for (const auto& left_alt : left_alts) { + const auto& left_way_instruction_props = + w.way_instruction_properties_[left_alt.segment_.way_idx_]; + + if (!is_more_important_by(left_way_instruction_props.get_highway(), footish, + 1)) { + continue; + } + + for (const auto& right_alt : right_alts) { + const auto& right_way_instruction_props = + w.way_instruction_properties_[right_alt.segment_.way_idx_]; + + if (!is_more_important_by(right_way_instruction_props.get_highway(), + footish, 1)) { + continue; + } + + if (!ways_have_same_name(left_alt.segment_.way_idx_, + right_alt.segment_.way_idx_, w)) { + continue; + } + + const auto street_found = w.way_names_[left_alt.segment_.way_idx_]; + if (crossed_street == string_idx_t::invalid()) { + crossed_street = street_found; + } else if (crossed_street != string_idx_t::invalid() && + crossed_street != street_found) { + // crossing multiple streets, cannot give definitive answer + return std::nullopt; + } + } + } + if (crossed_street != string_idx_t::invalid()) { + return std::optional{crossed_street}; + } + + return std::nullopt; +} + +bool is_merge_on_through_street(ways const& w, + traversed_node_hub const& h) { + const auto coming_from_way = h.arrive_hub_on_.way_idx_; + + const auto exit = h.get_exit(); + const auto exit_way = exit.segment_.way_idx_; + if (ways_have_same_name(coming_from_way, exit_way, w)) { + return false; + } + + const bool is_left_merge = exit.angle_with_arrive_ > 0; + + const auto get_opt_exit_predecessor = [&] -> std::optional { + + const auto neighbor_idx_from = is_left_merge ? h.exit_from_hub_idx_ + 1 : 1; + const auto neighbor_idx_to = is_left_merge ? h.alternatives_.size() : h.exit_from_hub_idx_; + for (auto neighbor_idx = neighbor_idx_from; neighbor_idx < neighbor_idx_to; neighbor_idx++) { + const auto neighbor = h.alternatives_[neighbor_idx]; + const auto neighbor_way = neighbor.segment_.way_idx_; + const auto angle_with_exit = h.angle_with_exit_from(w, neighbor_idx); + if (ways_have_same_name(neighbor_way, exit_way, w) && std::abs(angle_with_exit) < 20.0) { + return std::make_optional(h.alternatives_[neighbor_idx]); + } + } + + return std::nullopt; + }; + const auto opt_exit_predecessor = get_opt_exit_predecessor(); + if (opt_exit_predecessor.has_value()) { + return true; + } + return false; +} + +bool is_pedestrian(mode const m) { + return m == mode::kFoot || m == mode::kWheelchair; +} + +} // namespace osr \ No newline at end of file diff --git a/src/routing/instructions/meta_data.cc b/src/routing/instructions/meta_data.cc new file mode 100644 index 00000000..8d3bcc28 --- /dev/null +++ b/src/routing/instructions/meta_data.cc @@ -0,0 +1,568 @@ +#include "osr/routing/instructions/meta_data.h" + +#include "boost/json.hpp" + +#include "osr/routing/instructions/instruction_util.h" +#include "utl/pipes/all.h" +#include "utl/pipes/transform.h" +#include "utl/pipes/vec.h" + +namespace osr { + +using hub_t = traversed_node_hub; +using osm_nodes_range_t = hub_t::way_osm_nodes_idx_range; +using way_segment_t = hub_t::way_segment; +using relative_way_segment_t = hub_t::relative_way_segment; + +osm_nodes_range_t osm_nodes_range_t::flip() const { + return { + .from_ = to_, + .to_ = from_, + }; +} + +bool way_segment_t::is_way_aligned() const { + return osm_node_range_.from_ <= osm_node_range_.to_; +} + +distance_t get_min_exit_segment_distance_for_mode(ways const& w, + way_idx_t const way, + mode const m) { + if (is_pedestrian(m)) { + return 5; + } + const auto highway_type = w.way_instruction_properties_[way].get_highway(); + switch (highway_type) { + case highway::motorway: return 100; + case highway::trunk: return 80; + case highway::primary: + case highway::secondary: return 20; + default: return 10; + } +} + +distance_t get_min_arrival_segment_distance_for_mode(ways const& w, + way_idx_t const way, + mode const m) { + if (is_pedestrian(m)) { + return 0; + } + const auto highway_type = w.way_instruction_properties_[way].get_highway(); + switch (highway_type) { + case highway::motorway: return 30; + case highway::trunk: return 20; + case highway::primary: + case highway::secondary: return 20; + default: return 5; + } +} + +way_segment_t way_segment_t::from(const ways& w, + way_idx_t const way, + osm_node_idx_t const from, + osm_node_idx_t const to, + bool const is_way_aligned) { + + const auto& way_osm_nodes = w.way_osm_nodes_[way]; + + std::uint16_t to_idx; + std::uint16_t from_idx = to_idx = + static_cast(way_osm_nodes.size()); + + const auto first_it = + std::ranges::find(way_osm_nodes, is_way_aligned ? from : to); + const auto second_it = + std::find(first_it, way_osm_nodes.end(), is_way_aligned ? to : from); + + if (first_it != way_osm_nodes.end() && second_it != way_osm_nodes.end()) { + from_idx = static_cast(std::distance( + way_osm_nodes.begin(), is_way_aligned ? first_it : second_it)); + to_idx = static_cast(std::distance( + way_osm_nodes.begin(), is_way_aligned ? second_it : first_it)); + } + + return {.way_idx_ = way, + .osm_node_range_ = { + .from_ = from_idx, + .to_ = to_idx, + }}; +} + +way_segment_t way_segment_t::flip_directions() const { + return {.way_idx_ = way_idx_, .osm_node_range_ = osm_node_range_.flip()}; +} + +osm_node_idx_t way_segment_t::get_from_idx(ways const& w) const { + return w.way_osm_nodes_[way_idx_][osm_node_range_.from_]; +} + +osm_node_idx_t way_segment_t::get_to_idx(ways const& w) const { + return w.way_osm_nodes_[way_idx_][osm_node_range_.to_]; +} + +point way_segment_t::get_from_position(ways const& w) const { + return w.way_polylines_[way_idx_][osm_node_range_.from_]; +} + +point way_segment_t::get_to_position(ways const& w) const { + return w.way_polylines_[way_idx_][osm_node_range_.to_]; +} + + +namespace { + +bool is_accessible(ways const& w, + way_segment_t const& ws, + mode const m) { + + const auto w_props = w.r_->way_properties_[ws.way_idx_]; + switch (m) { + case mode::kBike: + if (!w_props.is_bike_accessible()) return false; + break; + case mode::kCar: + if (!w_props.is_car_accessible()) return false; + break; + case mode::kFerry: + if (!w_props.is_ferry_accessible()) return false; + break; + case mode::kRailway: + if (!w_props.is_railway_accessible()) return false; + break; + case mode::kFoot: + case mode::kWheelchair: + if (!w_props.is_foot_accessible()) return false; + } + + if (m == mode::kFoot || m == mode::kWheelchair) { + return true; + } + + const auto travel_dir = + ws.is_way_aligned() ? direction::kForward : direction::kBackward; + if (m == mode::kBike && w_props.is_oneway_bike() && + travel_dir == direction::kBackward) { + return false; + } + if (m == mode::kCar && w_props.is_oneway_car() && + travel_dir == direction::kBackward) { + return false; + } + + return true; +} + +void emplace_relative_way_segment( + ways const& w, + double const exit_angle, + point const prev_hub, + point const hub, + way_segment_t const& ws, + mode const m, + bool const is_uturn, + std::vector& alternatives) { + const auto& way_polyline = w.way_polylines_[ws.way_idx_]; + + point const to = way_polyline[ws.osm_node_range_.to_]; + double const alt_angle = + get_angle(prev_hub.as_latlng(), hub.as_latlng(), to.as_latlng()); + double const diff = alt_angle - exit_angle; + + bool const can_exit_hub = is_accessible(w, ws, m); + bool const can_enter_hub = is_accessible(w, ws.flip_directions(), m); + double const relative_diff = normalize(diff); + alternatives.emplace_back(relative_diff, alt_angle, can_enter_hub, + can_exit_hub, is_uturn, ws); +} + +struct hub_geometry { + point from_; + point hub_; + point to_; +}; + +std::uint16_t get_next_osm_way_node_idx_or_last(ways const& w, + way_idx_t const way_idx, + std::uint16_t const osm_node_idx, + direction const dir, + distance_t const min_distance = 10) { + const auto polyline = w.way_polylines_[way_idx]; + + if (polyline.size() <= 1) { + return 0; + } + + if (dir == direction::kForward) { + double accumulated_dist = 0.0; + for (std::size_t i = osm_node_idx + 1; i < polyline.size(); ++i) { + accumulated_dist += geo::distance(polyline[i - 1], polyline[i]); + if (accumulated_dist >= min_distance) { + return static_cast(i); + } + } + return static_cast(polyline.size() - 1); + } else { + double accumulated_dist = 0.0; + for (int i = static_cast(osm_node_idx) - 1; i >= 0; --i) { + accumulated_dist += geo::distance(polyline[static_cast(i + 1)], + polyline[static_cast(i)]); + if (accumulated_dist >= min_distance) { + return static_cast(i); + } + } + return 0; + } +} + +hub_geometry get_hub_geometry(ways const& w, + way_segment_t const& arrive, + way_segment_t const& exit, + mode const m) { + const auto& arrive_polyline = w.way_polylines_[arrive.way_idx_]; + const auto& exit_polyline = w.way_polylines_[exit.way_idx_]; + + const point hub = arrive_polyline[arrive.osm_node_range_.to_]; + const auto arrive_prev_idx = get_next_osm_way_node_idx_or_last(w, + arrive.way_idx_, arrive.osm_node_range_.to_, + arrive.is_way_aligned() ? + direction::kBackward : direction::kForward, + get_min_arrival_segment_distance_for_mode(w, arrive.way_idx_, m)); + utl::verify(arrive_prev_idx < arrive_polyline.size(), "out of bounds"); + const point from = arrive_polyline[arrive_prev_idx]; + const auto exit_next_idx = get_next_osm_way_node_idx_or_last(w, + exit.way_idx_, exit.osm_node_range_.from_, + exit.is_way_aligned() ? + direction::kForward : direction::kBackward, + get_min_exit_segment_distance_for_mode(w, exit.way_idx_, m)); + utl::verify(exit_next_idx < exit_polyline.size(), "out of bounds"); + const point to = exit_polyline[exit_next_idx]; + + return {from, hub, to}; +} + +void add_alternatives(ways const& w, + node_idx_t const hub_node, + osm_node_idx_t const osm_hub_node, + way_segment_t const& arrive_hub_on, + way_segment_t const& exit_from_hub, + way_idx_t const exit_way_idx, + double const exit_angle, + point const from_point, + point const hub_point, + mode const m, + std::vector& alternatives) { + const auto& alt_ways = w.r_->node_ways_[hub_node]; + for (const auto alt_way : alt_ways) { + const auto& osm_nodes = w.way_osm_nodes_[alt_way]; + + // Forward Search + const auto forward_it = std::ranges::find(osm_nodes, osm_hub_node); + if (forward_it == osm_nodes.end()) { + continue; + } + + const auto forward_hub_node_idx = + static_cast(std::distance(osm_nodes.begin(), forward_it)); + + if (forward_hub_node_idx + 1 < osm_nodes.size() && + (alt_way != exit_way_idx || !exit_from_hub.is_way_aligned())) { + way_segment_t alt_seg_forw = { + .way_idx_ = alt_way, + .osm_node_range_ = { + .from_ = forward_hub_node_idx, + .to_ = get_next_osm_way_node_idx_or_last( + w, alt_way, forward_hub_node_idx, + direction::kForward, get_min_exit_segment_distance_for_mode(w, alt_way, m))}}; + + const bool is_uturn_alt = + alt_way == arrive_hub_on.way_idx_ && + alt_seg_forw.is_way_aligned() ^ arrive_hub_on.is_way_aligned(); + + emplace_relative_way_segment(w, exit_angle, from_point, hub_point, + alt_seg_forw, m, is_uturn_alt, alternatives); + } + + // Backward search + const auto backward_it = std::find(osm_nodes.rbegin(), osm_nodes.rend(), osm_hub_node); + if (backward_it == osm_nodes.rend()) { + continue; + } + + const auto backward_hub_node_idx = static_cast( + std::distance(osm_nodes.begin(), backward_it.base()) - 1); + + if (backward_hub_node_idx > 0 && + (alt_way != exit_way_idx || exit_from_hub.is_way_aligned())) { + way_segment_t alt_seg_rev = { + .way_idx_ = alt_way, + .osm_node_range_ = { + .from_ = backward_hub_node_idx, + .to_ = get_next_osm_way_node_idx_or_last( + w, alt_way, backward_hub_node_idx, + direction::kBackward, get_min_exit_segment_distance_for_mode(w, alt_way, m))}}; + + const bool is_uturn_alt = + alt_way == arrive_hub_on.way_idx_ && + alt_seg_rev.is_way_aligned() ^ arrive_hub_on.is_way_aligned(); + + emplace_relative_way_segment(w, exit_angle, from_point, hub_point, + alt_seg_rev, m, is_uturn_alt, alternatives); + } + + } +} + +} // namespace + +traversed_node_hub traversed_node_hub::from(ways const& w, + node_idx_t const prev_node, + way_idx_t const arrive_way, + node_idx_t const hub_node, + way_idx_t const depart_way, + node_idx_t const next_node, + bool const is_arrive_way_aligned, + bool const is_exit_way_aligned, + mode const m) { + traversed_node_hub node_hub; + node_hub.hub_node_ = hub_node; + + osm_node_idx_t const osm_hub_node = w.node_to_osm_[node_hub.hub_node_]; + + osm_node_idx_t const osm_prev_hub_node = w.node_to_osm_[prev_node]; + osm_node_idx_t const osm_next_hub_node = w.node_to_osm_[next_node]; + + + + node_hub.arrive_hub_on_ = way_segment::from( + w, arrive_way, osm_prev_hub_node, osm_hub_node, is_arrive_way_aligned); + const auto exit_from_hub = way_segment::from( + w, depart_way, osm_hub_node, osm_next_hub_node, is_exit_way_aligned); + + auto const geo = + get_hub_geometry(w, node_hub.arrive_hub_on_, exit_from_hub, m); + const auto exit_angle = get_angle(geo.from_.as_latlng(), geo.hub_.as_latlng(), + geo.to_.as_latlng()); + + add_alternatives(w, node_hub.hub_node_, osm_hub_node, node_hub.arrive_hub_on_, + exit_from_hub, depart_way, exit_angle, geo.from_, geo.hub_, + m, node_hub.alternatives_); + + const auto u_turn_seg = + std::ranges::find_if(node_hub.alternatives_, [](const auto& rel_way_seg) { + return rel_way_seg.is_opposite_of_arrive_; + }); + + if (u_turn_seg == node_hub.alternatives_.end()) { + utl::fail("U turn segment not found"); + } + + if (u_turn_seg != node_hub.alternatives_.begin()) { + std::iter_swap(node_hub.alternatives_.begin(), u_turn_seg); + } + + std::ranges::sort(node_hub.alternatives_ | std::views::drop(1), + std::ranges::greater{}, + &relative_way_segment::angle_with_arrive_); + + relative_way_segment exit_segment = { + .angle_with_exit_ = 0.0, + .angle_with_arrive_ = exit_angle, + .can_enter_hub_ = is_accessible(w, exit_from_hub.flip_directions(), m), + .can_exit_hub_ = true, + .is_opposite_of_arrive_ = false, + .segment_ = exit_from_hub + }; + + auto iter = std::ranges::upper_bound( + node_hub.alternatives_ | std::views::drop(1), + exit_segment.angle_with_arrive_, std::ranges::greater{}, + &relative_way_segment::angle_with_arrive_); + + auto const inserted_iter = node_hub.alternatives_.insert(iter, exit_segment); + node_hub.exit_from_hub_idx_ = static_cast( + std::distance(node_hub.alternatives_.begin(), inserted_iter)); + + return node_hub; +} + +traversed_node_hub::relative_way_segment traversed_node_hub::get_exit() const { + return alternatives_[exit_from_hub_idx_]; +} + +unsigned long traversed_node_hub::number_of_possible_turns( + bool const consider_uturn) const { + constexpr auto is_possible = [](relative_way_segment_t const& rel_seg) { + return rel_seg.can_exit_hub_; + }; + // drop because we omit the u-turn + const auto count = std::ranges::count_if( + alternatives_ | std::views::drop(consider_uturn ? 0 : 1), is_possible); + return static_cast(count); +} + +unsigned long traversed_node_hub::number_of_visible_turns( + bool const consider_uturn) const { + return static_cast(alternatives_.size() - (consider_uturn ? 0 : 1)); +} + +double traversed_node_hub::angle_with_exit_from( + ways const& w, std::size_t const alt_idx) const { + utl::verify(alt_idx < alternatives_.size(), "Alternative out of bounds"); + if (alt_idx == exit_from_hub_idx_) { + return 0.0; + } + + const auto& from = alternatives_[alt_idx]; + const auto& exit = get_exit(); + + // This must be get_to_idx because the direction + // of alternative way segment at a hub is always from + // hub + const auto from_node_p = from.segment_.get_to_position(w); + const auto hub_node_p = exit.segment_.get_from_position(w); + const auto exit_node_p = exit.segment_.get_to_position(w); + return get_angle(from_node_p.as_latlng(), hub_node_p.as_latlng(), + exit_node_p.as_latlng()); +} + +void traversed_node_hub::print(std::ostream& out, ways const& w) const { + out << "hub_node=" << w.node_to_osm_[hub_node_] + << ", arrive_on=" << w.way_osm_idx_[arrive_hub_on_.way_idx_]; + + auto const print_alts = [&](std::string_view name, + std::vector const& alts) { + out << ", " << name << "=["; + for (auto i = 0U; i < alts.size(); ++i) { + auto const& alt = alts[i]; + out << "{way=" << w.way_osm_idx_[alt.segment_.way_idx_] + << ", angle_with_exit=" << alt.angle_with_exit_ + << ", angle_with_arrive=" << alt.angle_with_arrive_ + << ", can_enter_hub=" << (alt.can_enter_hub_ ? "true" : "false") + << ", can_exit_hub=" << (alt.can_exit_hub_ ? "true" : "false") + << ", is_exit_taken=" << (i == exit_from_hub_idx_ ? "true" : "false") + << "}"; + if (i != alts.size() - 1) { + out << ", "; + } + } + out << "]"; + }; + + print_alts("alternatives", alternatives_); +} + +// TODO +bool traversed_node_hub::is_exit_natural_choice(ways const& w) const { + if (!ways_have_same_name(arrive_hub_on_.way_idx_, + get_exit().segment_.way_idx_, w)) { + return false; + } + + return true; +} + +bool traversed_node_hub::is_end_of_turn_lane(ways const& w, bool left, bool const dedicated) const { + constexpr auto is_dedicated_turn_lane = [](way_instruction_properties const& props, + direction const dir, + bool const l) -> bool { + return (l ? props.has_left_turn_lane(dir) && !props.has_right_turn_lane(dir) + : props.has_right_turn_lane(dir) && !props.has_left_turn_lane(dir)) + && !props.has_through_lane(dir); + }; + + constexpr auto is_turn_lane = [](way_instruction_properties const& props, + direction const dir, + bool const l) -> bool { + return l ? props.has_left_turn_lane(dir) + : props.has_right_turn_lane(dir); + + }; + + const auto applies = dedicated ? is_dedicated_turn_lane : is_turn_lane; + + direction const arrive_dir = arrive_hub_on_.is_way_aligned() ? + direction::kForward : + direction::kBackward; + const auto arrive_props = + w.way_instruction_properties_[arrive_hub_on_.way_idx_]; + const auto is_arrive_dedicated_turn_lane = + applies(arrive_props, arrive_dir, left); + if (!is_arrive_dedicated_turn_lane) { + return false; + } + + const auto& exit = get_exit(); + const auto exit_props = w.way_instruction_properties_[exit.segment_.way_idx_]; + direction const exit_dir = exit.segment_.is_way_aligned() ? + direction::kForward : + direction::kBackward; + return !applies(exit_props,exit_dir , left); +} + +bool traversed_node_hub::does_way_names_change(ways const& w) const { + const auto arrive_way = arrive_hub_on_.way_idx_; + const auto exit_way = get_exit().segment_.way_idx_; + return ! ways_have_same_name(arrive_way, exit_way, w); +} + +std::string traversed_node_hub::to_json(ways const& w) const { + const auto way_segment_to_json = [&w](way_segment const& way_seg) { + if (way_seg.way_idx_ == way_idx_t::invalid()) { + return boost::json::object{{ + "way_id", + 0U, + }, + {"node_range", boost::json::array{0, 0}}}; + } + const auto& way_osm_nodes = w.way_osm_nodes_[way_seg.way_idx_]; + return boost::json::object{ + {"way_id", to_idx(w.way_osm_idx_[way_seg.way_idx_])}, + {"node_range", + boost::json::array{ + to_idx(way_osm_nodes[way_seg.osm_node_range_.from_]), + to_idx(way_osm_nodes[way_seg.osm_node_range_.to_])}}}; + }; + + const auto relative_way_segment_to_json = + [&way_segment_to_json](relative_way_segment const& rel_way_seg) { + return boost::json::object{ + {"segment", way_segment_to_json(rel_way_seg.segment_)}, + {"angle_with_exit", rel_way_seg.angle_with_exit_}, + {"angle_with_arrive", rel_way_seg.angle_with_arrive_}, + {"can_enter_hub", rel_way_seg.can_enter_hub_}, + {"can_exit_hub", rel_way_seg.can_exit_hub_}, + {"is_opposite_of_arrive", rel_way_seg.is_opposite_of_arrive_}}; + }; + + const auto rel_segments_to_json_array = + [&relative_way_segment_to_json]( + std::vector const& rel_segments) { + return utl::all(rel_segments) | + utl::transform([&](relative_way_segment const& rel_way_seg) { + return relative_way_segment_to_json(rel_way_seg); + }) | + utl::emplace_back_to(); + }; + + + return boost::json::serialize(boost::json::object{ + {"arrive_hub_on", way_segment_to_json(arrive_hub_on_)}, + {"hub_node", hub_node_ == node_idx_t::invalid() ? 0U : to_idx(w.node_to_osm_[hub_node_])}, + {"alternatives", rel_segments_to_json_array(alternatives_)}, + {"exit_from_hub_idx", exit_from_hub_idx_} + }); +} + +bool relative_way_segment_t::can_enter_hub() const { + return can_enter_hub_; +} + +bool relative_way_segment_t::can_exit_hub() const { + return can_exit_hub_; +} + +bool relative_way_segment_t::is_opposite_of_arrive() const { + return is_opposite_of_arrive_; +} + +} // namespace osr \ No newline at end of file diff --git a/src/routing/instructions/modules/destination_module.cc b/src/routing/instructions/modules/destination_module.cc new file mode 100644 index 00000000..f434ebfe --- /dev/null +++ b/src/routing/instructions/modules/destination_module.cc @@ -0,0 +1,24 @@ +#include "osr/routing/instructions/modules/destination_module.h" + +#include "osr/debug.h" +#include "osr/routing/instructions/instruction_util.h" + +namespace osr { + +void destination_module::process(ways const& w, + path& p, + segment_contexts_window const& window) { + trace("┃ ╔ DESTINATION MODULE\n"); + if (is_last_segment(window)) { + trace("┃ ╚ inspecting last segment -> annotation=kDestination\n"); + const auto& segment_context = *window.focus(); + segment_context.src_ptr_->instruction_annotation_ = + destination_instruction{}; + return; + } + + trace("┃ ║ not responsible, passing to next module\n"); + instruction_module::process(w, p, window); +} + +} // namespace osr diff --git a/src/routing/instructions/modules/intersection_module.cc b/src/routing/instructions/modules/intersection_module.cc new file mode 100644 index 00000000..633031ea --- /dev/null +++ b/src/routing/instructions/modules/intersection_module.cc @@ -0,0 +1,403 @@ +#include "osr/routing/instructions/modules/intersection_module.h" + +#include +#include + +#include "osr/debug.h" +#include "osr/routing/instructions/directions.h" +#include "osr/routing/instructions/instruction_util.h" +#include "osr/routing/instructions/routing_instruction.h" + +namespace osr { + +using hub_t = traversed_node_hub; +using osm_nodes_range_t = hub_t::way_osm_nodes_idx_range; +using way_segment_t = hub_t::way_segment; +using relative_way_segment_t = hub_t::relative_way_segment; + +bool is_real_turn(relative_direction const dir) { + return dir != relative_direction::kStraight && + dir != relative_direction::kSlightRight && + dir != relative_direction::kSlightLeft && + dir != relative_direction::kInvalid; +} + +routing_instruction turn_action_from(relative_direction dir) { + // Map relative direction to turn instruction + switch (dir) { + case relative_direction::kStraight: + return continue_instruction{}; + case relative_direction::kSlightRight: + case relative_direction::kRight: + case relative_direction::kSharpRight: + case relative_direction::kTurnAround: + case relative_direction::kSharpLeft: + case relative_direction::kLeft: + case relative_direction::kSlightLeft: + return turn_instruction{dir}; + case relative_direction::kInvalid: + return none_instruction{}; + } + return none_instruction{}; +} + +void set_segment_instruction(path::segment& seg, + routing_instruction const action) { + seg.instruction_annotation_ = action; +} + +bool is_simple_u_turn(hub_t const& hub) { + const auto& arrive_on = hub.arrive_hub_on_; + const auto& exit_on = hub.get_exit().segment_; + + return arrive_on.way_idx_ == exit_on.way_idx_ && + (arrive_on.is_way_aligned() ^ exit_on.is_way_aligned()); +} + +std::optional get_next_alternative( + hub_t const& hub, bool const to_left) { + const auto neighbors = hub.get_exit_neighbors(to_left); + if (neighbors.empty()) { + return std::nullopt; + } + + return to_left ? neighbors.back() : neighbors.front(); +} + +std::optional get_other_continue( + hub_t const& hub, double const cutoff_angle) { + std::optional best; + + auto const consider = [&](relative_way_segment_t const& alt) { + if (!alt.can_exit_hub_ || alt.is_opposite_of_arrive_) { + return; + } + double const abs_angle = std::abs(alt.angle_with_arrive_); + if (abs_angle > std::abs(cutoff_angle)) { + return; + } + + if (!best.has_value() || abs_angle < std::abs(best->angle_with_arrive_)) { + best = alt; + } + }; + + for (auto const& alt : hub.get_exit_neighbors(true)) { + consider(alt); + } + for (auto const& alt : hub.get_exit_neighbors(false)) { + consider(alt); + } + + return best; +} + +bool outgoing_edges_are_slower_by_factor(ways const& w, + hub_t const& hub, + double const factor) { + auto const chosen_speed = static_cast( + w.r_->way_properties_[hub.get_exit().segment_.way_idx_] + .max_speed_km_per_h()); + if (chosen_speed <= 0.0) { + return false; + } + + auto const is_relevant = [](relative_way_segment_t const& alt) { + return alt.can_exit_hub_ && !alt.is_opposite_of_arrive_; + }; + + for (auto const& alt : hub.get_exit_neighbors(true)) { + if (!is_relevant(alt)) { + continue; + } + auto const alt_speed = static_cast( + w.r_->way_properties_[alt.segment_.way_idx_].max_speed_km_per_h()); + if (alt_speed >= chosen_speed / factor) { + return false; + } + } + + for (auto const& alt : hub.get_exit_neighbors(false)) { + if (!is_relevant(alt)) { + continue; + } + auto const alt_speed = static_cast( + w.r_->way_properties_[alt.segment_.way_idx_].max_speed_km_per_h()); + if (alt_speed >= chosen_speed / factor) { + return false; + } + } + + return true; +} + +bool same_road_signature(ways const& w, way_idx_t const a, way_idx_t const b) { + if (a == way_idx_t::invalid() || b == way_idx_t::invalid()) { + return false; + } + + if (!ways_have_same_name(a, b, w)) { + return false; + } + + auto const pa = w.way_instruction_properties_[a]; + auto const pb = w.way_instruction_properties_[b]; + return pa.get_highway() == pb.get_highway() && + pa.is_link() == pb.is_link(); +} + +bool is_major_road(way_instruction_properties const props) { + auto const h = props.get_highway(); + return h == motorway || h == trunk || h == primary || h == secondary || + h == tertiary; +} + +routing_instruction handle_real_turn(ways const& w, + segment_context const& seg_context, + segment_context const& next_seg_context) { + const auto& hub = seg_context.traversed_node_hub_.value(); + const relative_direction next_seg_rel_dir = + get_relative_direction(hub.get_exit().angle_with_arrive_); + trace("┃ ║ handling real turn (exit_angle={})\n", + hub.get_exit().angle_with_arrive_); + utl::verify(is_real_turn(next_seg_rel_dir), "Not a real turn"); + + auto& segment = *seg_context.src_ptr_; + const auto& next_segment = *next_seg_context.src_ptr_; + + const routing_instruction potential_turn_type = turn_action_from(next_seg_rel_dir); + + trace("┃ ║ trying to check if a turn instruction is not needed\n"); + + const auto num_possible_turns = + hub.number_of_possible_turns(false); + const auto num_visible_turns = hub.number_of_visible_turns(false); + if (num_visible_turns <= 1) { + trace("┃ ║ number of visible turns ≤ 1 -> no instruction needed!\n"); + return none_instruction{}; + } + + const bool stay_on_same_name = + ways_have_same_name(segment.way_, next_segment.way_, w); + + if (num_possible_turns <= 1) { + if (stay_on_same_name) { + trace( + "┃ ║ number of possible turns ≤ 1 and we continue on same street " + "-> " + "no instruction needed!\n"); + return none_instruction{}; + } else if (!hub.is_end_of_turn_lane(w, true, true) && + !hub.is_end_of_turn_lane(w, false, true)) { + trace( + "┃ ║ number of possible turns ≤ 1 and do not continue on same street " + "-> " + "kContinue is sufficient!\n"); + return continue_instruction{}; + } + } + + // There are viable alternatives when arriving + // at the hub (num_possible_turns > 1) + if (stay_on_same_name && + outgoing_edges_are_slower_by_factor(w, hub, 2.0)) { + trace( + "┃ ║ number of possible turns > 1, continuing on same " + "street, alternatives are less important\n"); + return none_instruction{}; + } + + trace("┃ ║ turn requires instruction\n"); + return potential_turn_type; +} + +routing_instruction handle_slight_turn(ways const& w, + segment_context const& seg_context, + segment_context const& next_seg_context) { + const auto& hub = seg_context.traversed_node_hub_.value(); + trace("┃ ║ handling slight turn (exit_angle={})\n", + hub.get_exit().angle_with_arrive_); + + auto& segment = *seg_context.src_ptr_; + const auto& next_segment = *next_seg_context.src_ptr_; + + const auto next_seg_rel_dir = + get_relative_direction(hub.get_exit().angle_with_arrive_); + const routing_instruction potential_turn_type = + turn_action_from(next_seg_rel_dir); + + trace("┃ ║ trying to check if a turn instruction is not needed\n"); + trace("┃ ║ checking alternatives for a possible more natural continuation\n"); + + constexpr auto continuation_abs_cutoff_angle = 50.; + auto const other_continue = + get_other_continue(hub, continuation_abs_cutoff_angle); + auto const leaving_current_street = + !ways_have_same_name(segment.way_, next_segment.way_, w); + + if (other_continue.has_value()) { + trace( + "┃ ║ found the best alternative continuation in way = {} with degree " + "= {}\n", + other_continue->segment_.way_idx_, other_continue->angle_with_arrive_); + + auto const delta = hub.get_exit().angle_with_arrive_; + auto const other_delta = other_continue->angle_with_arrive_; + + if (std::abs(delta) < std::abs(other_delta) && !leaving_current_street) { + trace( + "┃ ║ the exit is a more natural continuation -> no instruction " + "required!\n"); + return none_instruction{}; + } + + if (ways_have_same_name(other_continue->segment_.way_idx_, segment.way_, + w)) { + trace("┃ ║ found a more natural continuation\n"); + trace("┃ ║ an instruction is needed\n"); + + const bool left_of_other_continuation = other_delta < delta; + trace("┃ ║ exit is to the {} of other continuation\n", + left_of_other_continuation ? "left" : "right"); + trace("┃ ║ we check if there is another alternative further {}\n", + left_of_other_continuation ? "left" : "right"); + + const auto next_alternative = + get_next_alternative(hub, left_of_other_continuation); + + bool relevant_alternative_found = + next_alternative.has_value() && + !next_alternative->is_opposite_of_arrive_; + if (relevant_alternative_found) { + + const auto next_segment_instruction_props = + w.way_instruction_properties_[next_segment.way_]; + + const auto alternative_instruction_props = + w.way_instruction_properties_[next_alternative->segment_.way_idx_]; + + if (is_more_important_by(next_segment_instruction_props.get_highway(), + alternative_instruction_props.get_highway(), + 2)) { + relevant_alternative_found = false; + } + } + + if (!relevant_alternative_found && + (!hub.does_way_names_change(w) || hub.is_end_of_turn_lane(w, left_of_other_continuation, false))) { + trace( + "┃ ║ no other relevant possible turn on the {} and same street -> reside with " + "stay {} " + "instruction\n", + left_of_other_continuation ? "left" : "right", + left_of_other_continuation ? "left" : "right"); + return left_of_other_continuation ? routing_instruction{stay_instruction{relative_direction::kLeft}} + : routing_instruction{stay_instruction{relative_direction::kRight}}; + } + trace("┃ ║ there is another relevant alternative further {} or street change\n", + left_of_other_continuation ? "left" : "right"); + + } + } else { + trace("┃ ║ found no continuation that is more natural than the exit\n"); + trace("┃ ║ check next if this is a merge on through street\n"); + if (is_merge_on_through_street(w, hub)) { + trace("┃ ║ is merge on through street\n"); + if (hub.is_end_of_turn_lane(w, true, true)) { + trace("┃ ║ is merge on through street from dedicated left turn lane -> needs turn annotation\n"); + return turn_instruction{relative_direction::kLeft}; + } else if (hub.is_end_of_turn_lane(w, false, true)) { + trace("┃ ║ is merge on through street from dedicated right turn lane -> needs turn annotation\n"); + return turn_instruction{relative_direction::kRight}; + } + } + + return none_instruction{}; + } + + trace("┃ ║ turn requires turn instruction\n"); + return potential_turn_type; +} + +void intersection_module::process(ways const& w, + path&, + segment_contexts_window const& window) { + trace("┃ ╔ INTERSECTION MODULE\n"); + const auto& segment_context = *window.focus(); + const auto& next_segment_context = *window[1]; + + auto& segment = *segment_context.src_ptr_; + const auto& next_segment = *next_segment_context.src_ptr_; + + trace("┃ ║ -> looking at the next two segments\n"); + trace("┃ ║ Analysing <{}> -- way: {} -> <{}> -- way: {} -> <{}>\n", segment.from_, + segment.way_, segment.to_, next_segment.way_, next_segment.to_); + + const auto& common_node_hub = segment_context.traversed_node_hub_.value(); + + if (is_simple_u_turn(common_node_hub)) { + trace("┃ ║ Detected simple u-turn\n"); + trace("┃ ╚ annotation = kTurnAround\n"); + set_segment_instruction(segment, turn_instruction{relative_direction::kTurnAround}); + return; + } + + const relative_direction next_seg_rel_dir = get_relative_direction(common_node_hub.get_exit().angle_with_arrive_); + if (is_real_turn(next_seg_rel_dir)) { + const auto instruction = handle_real_turn(w, segment_context, next_segment_context); + trace("┃ ╚ annotation = {}\n", + to_string(instruction)); + set_segment_instruction(segment, instruction); + } else if (is_slightish(next_seg_rel_dir)) { + const auto instruction = handle_slight_turn(w, segment_context, next_segment_context); + trace("┃ ╚ annotation = {}\n", + to_string(instruction)); + set_segment_instruction(segment, instruction); + } +} + +void intersection_module::post_process(ways const& w, + path&, + segment_contexts const& segment_contexts) { + constexpr distance_t max_u_turn_bridge = 15U; + + for (auto ctx_it = segment_contexts.begin(); ctx_it != segment_contexts.end(); ++ctx_it) { + if (std::next(ctx_it) == segment_contexts.end()) { + break; + } + + const auto& seg_ctx = *ctx_it; + const auto& next_seg_ctx = *std::next(ctx_it); + if (!seg_ctx.traversed_node_hub_.has_value() || + !next_seg_ctx.traversed_node_hub_.has_value()) { + continue; + } + + auto& seg = *seg_ctx.src_ptr_; + auto& next_seg = *next_seg_ctx.src_ptr_; + if (std::holds_alternative(seg.instruction_annotation_) && + std::holds_alternative(next_seg.instruction_annotation_) && + next_seg.dist_ <= max_u_turn_bridge) { + const auto& first_hub = seg_ctx.traversed_node_hub_.value(); + const auto& second_hub = next_seg_ctx.traversed_node_hub_.value(); + + const auto combined_degree = + std::abs(first_hub.get_exit().angle_with_arrive_ + + second_hub.get_exit().angle_with_arrive_); + + if (combined_degree < 170) { + continue; + } + + if (!ways_have_same_name(first_hub.arrive_hub_on_.way_idx_, + second_hub.get_exit().segment_.way_idx_, w)) { + continue; + } + + seg.instruction_annotation_ = turn_instruction{relative_direction::kTurnAround}; + next_seg.instruction_annotation_ = none_instruction{}; + } + } +} + +} // namespace osr diff --git a/src/routing/instructions/modules/motorway_module.cc b/src/routing/instructions/modules/motorway_module.cc new file mode 100644 index 00000000..3672f409 --- /dev/null +++ b/src/routing/instructions/modules/motorway_module.cc @@ -0,0 +1,237 @@ +#include "osr/routing/instructions/modules/motorway_module.h" + +#include "osr/debug.h" +#include "osr/routing/instructions/instruction_util.h" +#include "osr/routing/instructions/routing_instruction.h" + +namespace osr { + +bool handle_from_motorway(ways const& w, + traversed_node_hub const& hub, + path::segment& seg) { + const auto num_visible_turns = hub.number_of_visible_turns(true); + + const auto get_continue_index = [&](traversed_node_hub const& h) { + for (auto i = 1U; i < h.alternatives_.size(); ++i) { + const auto& alt = h.alternatives_[i]; + + if (!alt.can_exit_hub()) { + continue; + } + + const auto arrive_way = h.arrive_hub_on_.way_idx_; + const auto alt_way = alt.segment_.way_idx_; + + const bool is_same_name = ways_have_same_name(arrive_way, alt_way, w); + const bool is_same_highway = + ways_have_same_highway(arrive_way, alt_way, w); + + if (is_same_name && is_same_highway && !is_link(w, alt_way)) { + return static_cast(i); + } + } + + return -1; + }; + + const auto get_most_likely_continue_index = [&](traversed_node_hub const& h) { + double best = 180.0; + auto best_index = -1; + + for (auto i = 1U; i < h.alternatives_.size(); ++i) { + const auto& alt = h.alternatives_[i]; + const auto alt_way = alt.segment_.way_idx_; + + if (!alt.can_exit_hub() || is_link(w, alt_way) || + !is_motorway_or_trunk(w, alt_way)) { + continue; + } + + if (alt.angle_with_arrive_ < best) { + best = alt.angle_with_arrive_; + best_index = static_cast(i); + } + } + + return best_index; + }; + + const auto get_best_continue_index = [&](traversed_node_hub const& h) { + if (const auto continue_index = get_continue_index(h); + continue_index >= 0) { + return continue_index; + } + + return get_most_likely_continue_index(h); + }; + + const auto best_continue_index = get_best_continue_index(hub); + + if (best_continue_index < 0) { + const auto& alts = hub.alternatives_; + + if (num_visible_turns == 2U) { + // Ramp at the end of the highway + seg.instruction_annotation_ = none_instruction{}; + return true; + } else if (num_visible_turns == 3U) { + if (alts[1].can_exit_hub() && alts[2].can_exit_hub()) { + // splitting Ramp at the end of highway + const auto fork_instructions = get_instruction_for_fork(w, hub, 1, 2); + seg.instruction_annotation_ = hub.exit_from_hub_idx_ == 1 + ? fork_instructions.first + : fork_instructions.second; + } else { + seg.instruction_annotation_ = none_instruction{}; + } + return true; + } else if (num_visible_turns == 4U) { + // triple fork at the end of highway + const auto fork_instruction = get_instruction_for_fork(w, hub, 1, 2, 3); + seg.instruction_annotation_ = hub.exit_from_hub_idx_ == 1 + ? std::get<0>(fork_instruction) + : hub.exit_from_hub_idx_ == 2 ? + std::get<1>(fork_instruction) : + std::get<2>(fork_instruction); + return true; + } + + return false; + } + + const auto& exit = hub.get_exit(); + if (is_link(w, exit.segment_.way_idx_)) { + if (hub.exit_from_hub_idx_ > static_cast(best_continue_index)) { + seg.instruction_annotation_ = ramp_off_instruction{relative_direction::kRight}; + } else { // hub.exit_from_hub_idx_ < best_continue_index + seg.instruction_annotation_ = ramp_off_instruction{relative_direction::kLeft}; + } + return true; + } + + const auto n_exiting_motorways = // >= 1 because continuation exists + std::ranges::count_if(hub.alternatives_, [&](const auto& alt) { + const auto way = alt.segment_.way_idx_; + return alt.can_exit_hub() && is_motorway_or_trunk(w, way) && + !is_link(w, way); + }); + + if (n_exiting_motorways > 1 && + is_motorway_or_trunk(w, exit.segment_.way_idx_)) { + + std::vector exiting_motorways; + + for (size_t i = 1U; i < hub.alternatives_.size(); ++i) { + const auto& candidate = hub.alternatives_[i]; + const auto candidate_way = candidate.segment_.way_idx_; + if (candidate.can_exit_hub() && + is_motorway_or_trunk(w, candidate_way) && + !is_link(w, candidate_way)) { + exiting_motorways.push_back(i); + } + } + + // exit must be in exiting_motorways + if (exiting_motorways.size() == 2U) { + const auto fork_instructions = get_instruction_for_fork( + w, hub, exiting_motorways[0], exiting_motorways[1]); + + if (exiting_motorways[0] == hub.exit_from_hub_idx_) { + seg.instruction_annotation_ = fork_instructions.first; + } else if (exiting_motorways[1] == hub.exit_from_hub_idx_) { + seg.instruction_annotation_ = fork_instructions.second; + } + } else if (exiting_motorways.size() == 3U) { + const auto [il, ic, ir] = + get_instruction_for_fork(w, hub, exiting_motorways[0], + exiting_motorways[1], exiting_motorways[2]); + if (exiting_motorways[0] == hub.exit_from_hub_idx_) { + seg.instruction_annotation_ = il; + } else if (exiting_motorways[1] == hub.exit_from_hub_idx_) { + seg.instruction_annotation_ = ic; + } else if (exiting_motorways[2] == hub.exit_from_hub_idx_) { + seg.instruction_annotation_ = ir; + } + } + + return true; + } + + return false; +} + +bool handle_from_ramp(ways const& w, + traversed_node_hub const& h, + path::segment& seg) { + const auto num_possible_turns = h.number_of_possible_turns(true); + const auto num_visible_turns = h.number_of_visible_turns(true); + + // ramp straight into a motorway/ramp + if (num_visible_turns == 2U && num_possible_turns == 1U) { + seg.instruction_annotation_ = none_instruction{}; + return true; + } else if (num_visible_turns == 3U) { + + if (num_possible_turns == 1U && !is_onto_ramp(w, h)) { + // merging onto a passing highway + if (h.exit_from_hub_idx_ == 2U) { + // exit is second clockwise -> Merge left + seg.instruction_annotation_ = ramp_on_instruction{relative_direction::kLeft}; + } else { + // merge right + seg.instruction_annotation_ = ramp_on_instruction{relative_direction::kRight}; + } + return true; + } else if (num_possible_turns == 2U) { + // num_possible_turns == 2 + // -> Ramp fork + if (h.exit_from_hub_idx_ == 1U) { + seg.instruction_annotation_ = stay_instruction{relative_direction::kLeft}; + } else { + // h.exit_from_hub_idx_ == 2U + seg.instruction_annotation_ = stay_instruction{relative_direction::kRight}; + } + return true; + } + } + + return false; +} + +void motorway_module::process(ways const& w, + path& p, + segment_contexts_window const& window) { + trace("┃ ╔ MOTORWAY MODULE\n"); + if (is_last_segment(window)) { + trace("┃ ║ is last segment, passing to next module\n"); + instruction_module::process(w, p, window); + return; + } + + const auto& segment_context = *window.focus(); + if (!segment_context.traversed_node_hub_.has_value()) { + trace("┃ ║ no hub, cannot annotate, passing to next module\n"); + instruction_module::process(w, p, window); + return; + } + + const auto& hub = segment_context.traversed_node_hub_.value(); + bool annotated = false; + if (is_from_motorway(w, hub) && + (is_onto_motorway(w, hub) || is_onto_ramp(w, hub))) { + annotated = handle_from_motorway(w, hub, *segment_context.src_ptr_); + } + if (is_from_ramp(w, hub) && + (is_onto_motorway(w, hub) || is_onto_ramp(w, hub))) { + annotated = handle_from_ramp(w, hub, *segment_context.src_ptr_); + } + + if (annotated) { + return; + } + + trace("┃ ╚ not responsible, passing to next module\n"); + instruction_module::process(w, p, window); +} + +} // namespace osr diff --git a/src/routing/instructions/modules/pedestrian_module.cc b/src/routing/instructions/modules/pedestrian_module.cc new file mode 100644 index 00000000..b6a27ca2 --- /dev/null +++ b/src/routing/instructions/modules/pedestrian_module.cc @@ -0,0 +1,188 @@ +#include "osr/routing/instructions/modules/pedestrian_module.h" + +#include "osr/debug.h" +#include "osr/routing/instructions/instruction_util.h" + +namespace osr { + +void pedestrian_module::process(ways const& w, + path& p, + segment_contexts_window const& window) { + trace("┃ ╔ PEDESTRIAN MODULE\n"); + if (is_last_segment(window)) { + trace("┃ ║ is last segment, passing to next module\n"); + instruction_module::process(w, p, window); + return; + } + + const auto& segment_context = *window.focus(); + const auto& next_segment_context = *window[1]; + const auto& next_segment = *next_segment_context.src_ptr_; + + if (!is_pedestrian(next_segment.mode_)) { + trace("┃ ║ next segment is not foot or wheelchair, passing to next module\n"); + instruction_module::process(w, p, window); + return; + } + + const auto next_seg_way = get_way_from(next_segment_context); + if (next_seg_way == way_idx_t::invalid()) { + trace("┃ ║ way of next segment is invalid, passing to next module\n"); + instruction_module::process(w, p, window); + return; + } + + const auto& next_seg_instruction_props = + w.way_instruction_properties_[next_seg_way]; + const auto& opt_hub = segment_context.traversed_node_hub_; + + if (next_seg_instruction_props.is_stairs()) { + trace("┃ ║ next segment are stairs\n"); + if (opt_hub.has_value()) { + const auto& hub = opt_hub.value(); + const auto& exit = hub.get_exit(); + + bool const is_in_way_direction = exit.segment_.is_way_aligned(); + bool const is_stairs_up = is_in_way_direction ^ next_seg_instruction_props.is_stairs_down(); + + segment_context.src_ptr_->instruction_annotation_ = + stairs_instruction{ + .direction_ = is_stairs_up ? vertical_direction::kUp : vertical_direction::kDown, + .relative_direction_ = get_relative_direction(exit.angle_with_arrive_), + }; + trace("┃ ╚ annotation = {}\n", to_string(segment_context.src_ptr_->instruction_annotation_)); + return; + } + } + + if (opt_hub.has_value()) { + trace("┃ ║ check if hub is crossing street\n"); + trace("┃ ║ trying to find crossed street\n"); + const auto opt_crossed_street = get_crossing_street(w, opt_hub.value()); + if (opt_crossed_street.has_value()) { + trace("┃ ║ crossed street found, [{}]\n", + w.strings_[opt_crossed_street.value()].view()); + segment_context.src_ptr_->instruction_annotation_ = crossing_instruction{ + .street_ = opt_crossed_street.value()}; + return; + } else { + trace("┃ ║ could not find crossed street\n"); + } + } + + + trace("┃ ║ not responsible, passing to next module\n"); + instruction_module::process(w, p, window); +} + +void pedestrian_module::post_process(ways const& w, + path& p, + segment_contexts const&) { + trace("┃ ╔ PEDESTRIAN MODULE POST PROCESSING\n"); + + constexpr distance_t composite_crossing_cutoff = 25U; + for (auto first_segment_it = p.segments_.begin(); + first_segment_it != p.segments_.end(); ++first_segment_it) { + + if (!std::holds_alternative( + first_segment_it->instruction_annotation_)) { + continue; + } + const auto first_crossing = std::get( + first_segment_it->instruction_annotation_); + const auto first_street = first_crossing.street_; + if (first_street == string_idx_t::invalid()) { + trace("┃ ║ found crossing but street name invalid, continue\n"); + continue; + } + trace("┃ ║ found crossing of {}\n", + w.strings_[first_crossing.street_].view()); + + trace("┃ ║ searching for second crossing\n"); + distance_t dist_to_first = 0U; + for (auto second_segment_it = std::next(first_segment_it); + second_segment_it != p.segments_.end(); ++second_segment_it) { + dist_to_first += second_segment_it->dist_; + if (dist_to_first > composite_crossing_cutoff) { + trace("┃ ║ too far from first, stopping search\n"); + break; + } + + if (!std::holds_alternative( + second_segment_it->instruction_annotation_)) { + continue; + } + const auto second_crossing = std::get( + second_segment_it->instruction_annotation_); + const auto second_street = second_crossing.street_; + if (second_street == string_idx_t::invalid()) { + trace( + "┃ ║ found another crossing but street name invalid, stopping " + "search\n"); + break; + } else if (second_street != first_street) { + trace( + "┃ ║ found another crossing but street name different, stopping " + "search\n"); + break; + } + + trace("┃ ║ found another crossing of {}\n", + w.strings_[second_street].view()); + trace("┃ ║ removing annotation, then continue search\n"); + second_segment_it->instruction_annotation_ = none_instruction{}; + } + } + + constexpr distance_t composite_stairs_cutoff = 10U; + for (auto first_segment_it = p.segments_.begin(); + first_segment_it != p.segments_.end(); ++first_segment_it) { + if (!std::holds_alternative( + first_segment_it->instruction_annotation_)) { + continue; + } + + const auto first_stairs = + std::get(first_segment_it->instruction_annotation_); + + distance_t dist_to_first = 0U; + for (auto second_segment_it = std::next(first_segment_it); + second_segment_it != p.segments_.end(); ++second_segment_it) { + dist_to_first += second_segment_it->dist_; + if (dist_to_first > composite_stairs_cutoff) { + trace("┃ ║ too far from first stairs, stopping search\n"); + break; + } + + if (std::holds_alternative( + second_segment_it->instruction_annotation_)) { + continue; + } + + if (!std::holds_alternative( + second_segment_it->instruction_annotation_)) { + break; + } + + const auto second_stairs = std::get( + second_segment_it->instruction_annotation_); + if (second_stairs.direction_ != first_stairs.direction_) { + trace( + "┃ ║ stairs have different vertical directions -> stopping search\n"); + break; + } + + if (second_stairs.relative_direction_ != relative_direction::kStraight) { + trace( + "┃ ║ second stairs has direction modifier -> stopping search\n"); + break; + } + + trace("┃ ║ found another straight stairs\n"); + trace("┃ ║ removing annotation, then continue search\n"); + second_segment_it->instruction_annotation_ = none_instruction{}; + } + } +} + +} // namespace osr diff --git a/src/routing/instructions/modules/roundabout_module.cc b/src/routing/instructions/modules/roundabout_module.cc new file mode 100644 index 00000000..190007ce --- /dev/null +++ b/src/routing/instructions/modules/roundabout_module.cc @@ -0,0 +1,98 @@ +#include "osr/routing/instructions/modules/roundabout_module.h" + +#include "osr/debug.h" +#include "osr/routing/instructions/instruction_util.h" + +namespace osr { + +void roundabout_module::process(ways const& w, + path& p, + segment_contexts_window const& window) { + trace("┃ ╔ ROUNDABOUT MODULE\n"); + if (is_last_segment(window)) { + trace("┃ ║ is last segment, passing to next module\n"); + instruction_module::process(w, p, window); + return; + } + auto& segment = *window.focus()->src_ptr_; + auto const& next_segment = *window[1]->src_ptr_; + + auto const current_is_roundabout = is_roundabout_way(w, segment.way_); + auto const next_is_roundabout = is_roundabout_way(w, next_segment.way_); + + if (!current_is_roundabout && next_is_roundabout) { + trace("┃ ╚ entering roundabout -> annotation=kEnterRoundabout\n"); + segment.instruction_annotation_ = enter_roundabout_instruction{}; + return; + } + + if (current_is_roundabout && !next_is_roundabout) { + trace("┃ ╚ exiting roundabout -> annotation=kExitRoundabout\n"); + segment.instruction_annotation_ = exit_roundabout_instruction{}; + return; + } + + if (current_is_roundabout && next_is_roundabout) { + segment.instruction_annotation_ = none_instruction{}; + return; + } + + trace("┃ ╚ not responsible, passing to next module\n"); + instruction_module::process(w, p, window); +} + +void roundabout_module::post_process(ways const& w, + path&, + segment_contexts const& contexts) { + + bool in_roundabout = false; + bool is_clockwise = false; + std::uint16_t n_exits_encountered = 0U; + for (const auto& context : contexts) { + auto& current_segment = *context.src_ptr_; + const auto& hub_opt = context.traversed_node_hub_; + if (!hub_opt.has_value()) { + continue; + } + + if (std::holds_alternative( + current_segment.instruction_annotation_)) { + in_roundabout = true; + + const auto& hub = hub_opt.value(); + const auto& exit = hub.get_exit(); + is_clockwise = exit.angle_with_arrive_ > 0; + n_exits_encountered = 0U; + continue; + } + + if (std::holds_alternative( + current_segment.instruction_annotation_)) { + if (!in_roundabout) { + continue; + } + in_roundabout = false; + std::uint16_t const exit = n_exits_encountered + 1U; + current_segment.instruction_annotation_ = + exit_roundabout_instruction{exit}; + continue; + } + + if (in_roundabout && hub_opt.has_value()) { + const auto& hub = hub_opt.value(); + bool has_non_roundabout_exit = false; + for (auto const& alt : hub.get_exit_neighbors(is_clockwise)) { + if (alt.can_exit_hub() && + !is_roundabout_way(w, alt.segment_.way_idx_)) { + has_non_roundabout_exit = true; + break; + } + } + if (has_non_roundabout_exit) { + ++n_exits_encountered; + } + } + } +} + +} // namespace osr diff --git a/src/routing/instructions/routing_instruction.cc b/src/routing/instructions/routing_instruction.cc new file mode 100644 index 00000000..98b0ef4f --- /dev/null +++ b/src/routing/instructions/routing_instruction.cc @@ -0,0 +1,245 @@ +#include "osr/routing/instructions/routing_instruction.h" + +#include +#include "utl/overloaded.h" +#include "osr/ways.h" + +namespace osr { + +std::string direction_to_string(relative_direction const dir) { + switch (dir) { + case relative_direction::kTurnAround: return "turn_around"; + case relative_direction::kSharpRight: return "sharp_right"; + case relative_direction::kRight: return "right"; + case relative_direction::kSlightRight: return "slight_right"; + case relative_direction::kSharpLeft: return "sharp_left"; + case relative_direction::kLeft: return "left"; + case relative_direction::kSlightLeft: return "slight_left"; + case relative_direction::kStraight: return "straight"; + case relative_direction::kInvalid: return "invalid"; + } + return "invalid"; +} + +relative_direction direction_from_string(std::string_view const s) { + if (s == "turn_around") return relative_direction::kTurnAround; + if (s == "sharp_right") return relative_direction::kSharpRight; + if (s == "right") return relative_direction::kRight; + if (s == "slight_right") return relative_direction::kSlightRight; + if (s == "sharp_left") return relative_direction::kSharpLeft; + if (s == "left") return relative_direction::kLeft; + if (s == "slight_left") return relative_direction::kSlightLeft; + if (s == "straight") return relative_direction::kStraight; + return relative_direction::kInvalid; +} + +std::string vertical_direction_to_string(vertical_direction const dir) { + switch (dir) { + case vertical_direction::kUp: return "up"; + case vertical_direction::kDown: return "down"; + } + return "up"; +} + +vertical_direction vertical_direction_from_string(std::string_view const s) { + if (s == "down") return vertical_direction::kDown; + return vertical_direction::kUp; +} + +boost::json::value to_json(routing_instruction const& instruction, ways const& w) { + return std::visit( + utl::overloaded{ + [](none_instruction const&) -> boost::json::value { + return {{"type", "none"}}; + }, + [](destination_instruction const& inst) -> boost::json::value { + return {{"type", "destination"}, {"direction", direction_to_string(inst.direction_)}}; + }, + [](becomes_instruction const&) -> boost::json::value { + return {{"type", "becomes"}}; + }, + [](continue_instruction const&) -> boost::json::value { + return {{"type", "continue"}}; + }, + [](turn_instruction const& inst) -> boost::json::value { + return {{"type", "turn"}, {"direction", direction_to_string(inst.direction_)}}; + }, + [](ramp_on_instruction const& inst) -> boost::json::value { + return {{"type", "ramp_on"}, {"direction", direction_to_string(inst.direction_)}}; + }, + [](ramp_off_instruction const& inst) -> boost::json::value { + return {{"type", "ramp_off"}, {"direction", direction_to_string(inst.direction_)}}; + }, + [](stay_instruction const& inst) -> boost::json::value { + return {{"type", "stay"}, {"direction", direction_to_string(inst.direction_)}}; + }, + [](enter_roundabout_instruction const&) -> boost::json::value { + return {{"type", "enter_roundabout"}}; + }, + [](exit_roundabout_instruction const& inst) -> boost::json::value { + return {{"type", "exit_roundabout"}, {"exit", inst.exit_number_}}; + }, + [](elevator_instruction const& inst) -> boost::json::value { + return {{"type", "elevator"}, + {"direction", vertical_direction_to_string(inst.direction_)}, + {"relative_direction", direction_to_string(inst.relative_direction_)}}; + }, + [](stairs_instruction const& inst) -> boost::json::value { + return {{"type", "stairs"}, + {"direction", vertical_direction_to_string(inst.direction_)}, + {"relative_direction", direction_to_string(inst.relative_direction_)}}; + }, + [&w](crossing_instruction const& inst) -> boost::json::value { + auto const street_name = inst.street_ == string_idx_t::invalid() + ? "" + : w.strings_[inst.street_].view(); + return {{"type", "crossing"}, + {"street", street_name}}; + }}, + instruction); +} + +routing_instruction from_json(boost::json::value const& json, ways const& w) { + if (!json.is_object()) { + return none_instruction{}; + } + auto const& obj = json.as_object(); + if (!obj.contains("type")) { + return none_instruction{}; + } + auto const type_val = obj.at("type").as_string(); + if (type_val == "none") { + return none_instruction{}; + } else if (type_val == "destination") { + relative_direction direction = relative_direction::kInvalid; + if (obj.contains("direction")) { + direction = direction_from_string(obj.at("direction").as_string()); + } + return destination_instruction{direction}; + } else if (type_val == "becomes") { + return becomes_instruction{}; + } else if (type_val == "continue") { + return continue_instruction{}; + } else if (type_val == "turn") { + relative_direction direction = relative_direction::kInvalid; + if (obj.contains("direction")) { + direction = direction_from_string(obj.at("direction").as_string()); + } + return turn_instruction{direction}; + } else if (type_val == "ramp_on") { + relative_direction direction = relative_direction::kInvalid; + if (obj.contains("direction")) { + direction = direction_from_string(obj.at("direction").as_string()); + } + return ramp_on_instruction{direction}; + } else if (type_val == "ramp_off") { + relative_direction direction = relative_direction::kInvalid; + if (obj.contains("direction")) { + direction = direction_from_string(obj.at("direction").as_string()); + } + return ramp_off_instruction{direction}; + } else if (type_val == "stay") { + relative_direction direction = relative_direction::kInvalid; + if (obj.contains("direction")) { + direction = direction_from_string(obj.at("direction").as_string()); + } + return stay_instruction{direction}; + } else if (type_val == "enter_roundabout") { + return enter_roundabout_instruction{}; + } else if (type_val == "exit_roundabout") { + std::uint16_t exit = 0; + if (obj.contains("exit")) { + exit = static_cast(obj.at("exit").as_int64()); + } + return exit_roundabout_instruction{exit}; + } else if (type_val == "elevator") { + vertical_direction direction = vertical_direction::kUp; + relative_direction rel_dir = relative_direction::kInvalid; + if (obj.contains("direction")) { + direction = vertical_direction_from_string(obj.at("direction").as_string()); + } + if (obj.contains("relative_direction")) { + rel_dir = direction_from_string(obj.at("relative_direction").as_string()); + } + return elevator_instruction{direction, rel_dir}; + } else if (type_val == "stairs") { + vertical_direction direction = vertical_direction::kUp; + relative_direction rel_dir = relative_direction::kInvalid; + if (obj.contains("direction")) { + direction = vertical_direction_from_string(obj.at("direction").as_string()); + } + if (obj.contains("relative_direction")) { + rel_dir = direction_from_string(obj.at("relative_direction").as_string()); + } + return stairs_instruction{direction, rel_dir}; + } else if (type_val == "crossing") { + string_idx_t street = string_idx_t::invalid(); + if (obj.contains("street")) { + auto const name = obj.at("street").as_string(); + const auto opt_idx = w.find_string(name.c_str()); + if (opt_idx.has_value()) { + street = opt_idx.value(); + } + } + return crossing_instruction{street}; + } + return none_instruction{}; +} + +std::string to_string(routing_instruction const& instruction) { + return std::visit( + utl::overloaded{ + [](none_instruction const&) -> std::string { return "kNone"; }, + [](destination_instruction const& inst) -> std::string { + if (inst.direction_ == relative_direction::kLeft) return "kDestinationLeft"; + if (inst.direction_ == relative_direction::kRight) return "kDestinationRight"; + return "kDestination"; + }, + [](becomes_instruction const&) -> std::string { return "kBecomes"; }, + [](continue_instruction const&) -> std::string { return "kContinue"; }, + [](turn_instruction const& inst) -> std::string { + switch (inst.direction_) { + case relative_direction::kSlightRight: return "kTurnSlightRight"; + case relative_direction::kRight: return "kTurnRight"; + case relative_direction::kSharpRight: return "kTurnSharpRight"; + case relative_direction::kTurnAround: return "kTurnAround"; + case relative_direction::kSharpLeft: return "kTurnSharpLeft"; + case relative_direction::kLeft: return "kTurnLeft"; + case relative_direction::kSlightLeft: return "kTurnSlightLeft"; + default: return "kContinue"; + } + }, + [](ramp_on_instruction const& inst) -> std::string { + switch (inst.direction_) { + case relative_direction::kLeft: return "kRampLeft"; + case relative_direction::kRight: return "kRampRight"; + default: return "kRampStraight"; + } + }, + [](ramp_off_instruction const& inst) -> std::string { + switch (inst.direction_) { + case relative_direction::kLeft: return "kExitLeft"; + case relative_direction::kRight: return "kExitRight"; + default: return "kExitRight"; + } + }, + [](stay_instruction const& inst) -> std::string { + switch (inst.direction_) { + case relative_direction::kStraight: return "kStayStraight"; + case relative_direction::kSlightLeft: return "kStaySlightLeft"; + case relative_direction::kLeft: return "kStayLeft"; + case relative_direction::kSlightRight: return "kStaySlightRight"; + case relative_direction::kRight: return "kStayRight"; + default: return "kStayStraight"; + } + }, + [](enter_roundabout_instruction const&) -> std::string { return "kEnterRoundabout"; }, + [](exit_roundabout_instruction const&) -> std::string { return "kExitRoundabout"; }, + [](elevator_instruction const&) -> std::string { return "kElevator"; }, + [](stairs_instruction const&) -> std::string { return "kStairs"; }, + [](crossing_instruction const&) -> std::string { return "kCrossing"; }}, + instruction); +} + +} + diff --git a/src/ways.cc b/src/ways.cc index 2898d2f3..b51fcb9d 100644 --- a/src/ways.cc +++ b/src/ways.cc @@ -63,6 +63,7 @@ ways::ways(std::filesystem::path p, cista::mmap::protection const mode) strings_{mm_vec(mm("strings_data.bin")), mm_vec(mm("strings_idx.bin"))}, way_names_{mm("way_names.bin")}, + way_instruction_properties_{mm("way_instruction_properties.bin")}, way_has_conditional_access_no_{ mm_vec(mm("way_has_conditional_access_no"))}, way_conditional_access_no_{mm("way_conditional_access_no")} {} @@ -332,6 +333,7 @@ void ways::sync() { strings_.data_.mmap_.sync(); strings_.bucket_starts_.mmap_.sync(); way_names_.mmap_.sync(); + way_instruction_properties_.mmap_.sync(); } std::optional ways::get_access_restriction( diff --git a/test/biarritz-roundabouts.osm.pbf b/test/biarritz-roundabouts.osm.pbf new file mode 100644 index 0000000000000000000000000000000000000000..c735ed025f9ff01b83d6ffbee19308af96ccc327 GIT binary patch literal 56958 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 literal 0 HcmV?d00001 diff --git "a/test/darmstadt-schlo\303\237-pbf.osm.pbf" "b/test/darmstadt-schlo\303\237-pbf.osm.pbf" new file mode 100644 index 0000000000000000000000000000000000000000..bb8ea635f27386545ac908f7615f8ddce802ad8e GIT binary patch literal 32899 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

gqi0pD6j$ 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

kPqalQ{ee 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 z z{glfQ%GLgGY?6IkR_yH|JCJanF*hH)6ZL~U*LG%sUq?3A^;DU)56%swxs4Q4h7Ed$ z7aJ=Le4DC3%?CQ(U;6Y;3y}QxRhQ>vuDpABP8O2YH4Y8CZl%n5fu#Px^6~|-7n{l! zh_;<6N|_UfWCLE8tw}v7U6}{vd1C&H24?x0_|!Su@P`*?Hb+PwA>npXOgTS@;Uqjc znWgFML}9eG_F((C1~7%x7{ye3?G0Dd-gi~_C-3ydE|@qC>X2O_s@l{z<^el%GX zUHeGva-4E?N&>!-$oFdH`bxWfFG9yPM#qS`e=uSDJH@yt$#aI%-4;vt92n;biWFMI z728VQ<1y0ud~?eGLwsjtwru5z+@s>c4O?GHwp^{uqmCfigrp<1C<_^=js)4^wh6$Jlhk0o${(P3 zez+FId{%qdEanGq?tmG;FFYR3bR)?l`8_iI12*9J)c)fjnxY~6y*cRNC9E|Ovr`1UM; zkEA{BSi0r%dtf$-8*dQ#l~?v4zlG1B{o$s~|sgdRzU*csd^LmEk?YK?atah_djY&$O?1 ziW1fW`-g}>F5kYfdH&_Y+n3L~d%O1Jg3N^VMRNk`_O8F^a{XrKtN(Ag@ReJE4s81Nx&__QhgyF}bKfvYy<{Rl)F`aQ^l!?gr*67Dj9y=X z@FEK7S|pHZagAs%vikLH4Qq?qw#jjI3qGmA4GR$iGoFlWSZW9a3CfnX$CBOy26UPt z92je>5^*r1yE}H>9>*JNVs^z5zJ%ZSw6L!t8gjZK+z zw!b@b*s=2bqb$4U*{$b3+Vr^e)rgXvYe#Uim=t8&I}uo03jE{pyWkLaufM6B(-pI# zZqbqM)cE;S3eq=tox62y?E-Ex)B19`r0*WD(X=Ia>>w5okKS68G%vs=yD#pB5sqX! zuq{mu;b_01M2!A6%oH4H9lZ78wyz+IpG=69C~eH~k`{9;36-W3=(g5QpeL>Y45(>Z zQ(LL1KD_2M$1P!UQZ`8XSnorjOVETuTFPz@M zCgNoZl2eDuF3ichnh-tb43gZg6ZDKb?P@chqKg?y-uY z+}BJq^0Iz@pRsnbCJEUjU%b%8ZWlFC5U1C@JZ7VmLZ-5Zidg1X$S>NW?)zKwkk$87 z>X`GZ3LB+wk(9m6eC1yKg3AvwnQR$;y89hb^mDZgRg|-BhmJmtK`Urb>3LDe{?O zJ)S&B#xn@@nF;&8hRXCk@|9AysT7`f`FUCqzXG7Nwu8PE*Z5vtz4lPaea6hR>KoO;!VRp;CCXJ(w+VQBbYykGnjzF7q-jV}kkHBGF5s(Ut({+$ zBiVs>wvr#|ZTJyG9-*iR{LDGGDU?cnnI7f5A4$Zq7Q4IcNt>MIQ2ZZ0S#P6Mf+1Y) zV+sS%6t46#hJlQWVqJX)%vgJQzInzR9!9k-r}Hznt){LXd%lX|f|!UK&utJP(xkHw9m6ZP;R5^a6HXN!&96609s5v;SA`Q)#E z{#bO3vSSwyvstmOYP0PDB#PfN-%BTM&Ukos%DHqP+bM1yRHe}CfW9^@<`jL5+Jh7z zTh2$90BXH|VuATofkQ#b?d77dsKkf=aWbv;s+jwh*#uo9$J%{RdS6Y#njW(7*I&T+mk&C85n=}`Brh+ z%a`%$_t`bazdW?^%7Krd@ww-_9hA&<>IOyKq!1}6%cydSI0S2@9AMwxYFZ(RdV2Ka z0`5PVTiEzFYQfG5w-1gyzjvEH{Puk9g43&xR?WHf;$qlL=ap#vE(+TROt_rGj#m9;t^W69DUG;qwFgxDHvoz<}4wdG1ieeHd%*^YnB^wydx!yNK#& z%-AOd^;W*tL+7#VTXfv|oJQ%Rn>l$>2yfvHJ)@|iFoMez5pSL*Nu9Iz z*8NRbGEs!p!64!rvR2F%Zz{?;z(9E0acG|dIR}UffU>)k=Lp`IbEwp1o%~$BktYNJnEKigIEl z#9&fJ_ka6}ZO4wzlt613SRytOjirWjBIVCYuyuPy+q-s{hS2RW4JRwFNnGwzt^-=y zkF60Mpl_7kEO9#@URL79jb?U{{;DbJCr(mBO?*I&fQ+QrvcIWB>>P1zwCdpimxq+A zJO+i8a$=er#U%C9#XyEuJgV%@kvea@bKzUn(H)ar9)TSlz(zD^Zx6O0+s_k)oYMbk zIeEIMY{RF}U>`P+fK=lq5V0mHiCEkEh$W52Hu$FA0ipp4R4@5?4<+Q@!Y46cP51L2 zn62r9Gfj2dM6Zvn{afee^Ji?@ySA6uJls@LDrHKN)9wxf$e2PHLC>71hOC{?ileEC zH^k1lS2U`dJ7g}kl&h=)yA==MrZERi(!m1@7q)Kjp}K`Vb-ONa#b|r zoF6zFp6&SVRL47rY!jJ7*s|wnE1nPKJ*oczQI;I_JWEc9j$_hELwwT@rcs7(`tcJf zv0`k}W_}{aGZ$70^J4Q8C##`KDCHAAv^G>10?uq(TQ*;{VN0gSb#KZV(G`3J zAWZVr-lAm_Kkb8CCkZpwZ4d=6DYvEdwMZ+1dDvwwSNy} zwp}Yti>@E0$3YandwXM!^QpSDxCx@{{QMiUk0254D_DKr{m#4NP*#p*k|T)i^*%UK zy!r%0_0-m#y8gCLJ4D$CAo^Ski+;fejH|;L=^IdeWu5X$Ody zn7hG+Tgqf1N6A=%znC5IFBM2y@v;TUIsEx=p-8E6{OLwxVi4r~>eSjb7+RjSXLrK?fV%nl@cNyBx z)wJ85y163pvvcv4`)5E+`(_<)(8G74OG$=0?INi`Y-LAG(T!>H*6WPB3#gSXK*4>t zt|xN=VMByL0|V2+exX--tQ8vCLMV$}ZyA`-ke^o<#z>tbcXv%v?TURxxjci&RDh3X zHCO%xCc7aD9sXnNL9FDvkXY%0O+9%3Hhn*$@vw{=!!$;b`1~=2F`XdB0oK}NVVjE7 z^dRi>)+hh2Hkq6c2hd0i@txB@vX4AWvqb3!2-mX~$x z16od(AKh9otQ3hvM4!XYlSpV8b)&R=mrL&E7cpP1EQMC_t%o1Z$xYeP?iP9i*g=e5 z7mxCMY_79da=LrBd10*ozNn%ZE3Jcv-(32-^7^Sx4~kpBtVb@teolO_m2=|1dxoqU zYvNqDU+pY$D;e;J&UY?MlRt}U${54_z-&OaeGX-qM02pR+xn*$$gdftOz8~?}Sw&_IXnH$gD`%1>?m>6WBB=7Sgi&s=L^_s$c z;Q>xcvN3E_I<-)(lxc6c|LTg%TVxnhu*S7&re&yv|*4ko4I9A&0 zJGN|cOE{SFoKD5Fi}j~poufhO*#Du_k;tp~>>AfiH!tn{`q>R2kC1dCN!j+a#I3F% ztkkXbR$8@NbA5P%8|ZgC_R;q>X#O2${(L}8DjIK`#bTPnI_&4@(e~S4rIv2){4+q! zIONiMJD!)*!HS&hYHZ(nx$L2mo659dQ`?U%-$^11{1%F{Rpi&N-XwLd*q!jX`Fvj- zGP!)Mrb-DlVY?N7`L#n#Y&^C;|B7$j@hhzr*6O;%p5>9Rn0LRXL0m`bc#8EvVx_qr zV57*SKYmn&?K^+HJ%ILp?PIY0Hq!nJrmMH~|7yL6jmE|ar11jg(LQKwf0QEc2#>>; zgz>#jCB7v*bSS7rGs+iVxHa49$uZ0xLhj9L-`7jM6A1DIxbW7zN!Y5ffolWZO$S!>0&VTB=jcnUAXzQaUor%1aLeMRaV zd!uc>>eAgr#-$UIbKUwF=Yo~j0Kd;+HX|!ri??d$k$+IcqlXI`WWTv|I_16XKqR0`4vcB&} zN~2KiVs0_>@KuTfc|EgdA4}Pj2L@QliGSXUhW-%KUj5DsPd>YOGpqcQR4OU->Q%Q* z+kxDVy?RtSa|fPL;yjpI(t*n_BpPc;clZJ9pb$IAtY4Ec`x=tlNS>{0JUyA_^h_Nx z{U037{A)6@e7*T>&F|}T5)S?$7RmbkyBdZaE$qsZBv$P2lx(Tk&?(8@Q6mjsRV~fk zIXM67!*`O()*V@&LNG~fgAQ5qsVeAFX%P?XtevZh$8%N3&)~VLY0M#P5B_1Q%E0@W0^%Uj^wze^~CYe~->(v2k>xAsJ=h0c;U(P-YET%I@2@6Xt z*z{I{traCWwC@Hb+`U+wyP$RbuA6gUKC-RPhtV`2{kN*vODM-mBFA@3VPQsJzp=IO zoB8CmyuE$hW=Q(csQvVn)7epj&moaEosJ)M2j58N7Bc6N<-h)?f~>vmJ|yd0S>eCa z*B@neez7fW^X?Dgkl_9$)M!P>*T#GTfV_WC{*k4RgnwnpL6Mn)r+fEUobHv@hF50~ zr@0wSF=_rQuO?f2F;{Ub_h$9N6_>l3zqwnH_4Esb=c`D1(&`3vR}vbDbBXlrd<<;}{lgz4|oyQ&pjFmnYP|7OfQ&>FbAj{-hN zRD2!raTEaM@)enx^r@oGyX+ zhrN5jfUj(Q93c&TyE}{m7F&OXg^e{9c#?;D+gy|^@4|l+35uC*R#=#VAZuk0_)j-b zil%pYkthKMe_Q%PYi>b`Y zmzn9B*X!sq#ey~q@9Hiu8(d-Let{t_450d-c)^9f+Q)UbH@jgbG4UZ zKj79<%qtW|)=g3GDUq0yFQ-?~X;dgZlmv+ST}g>j=VzC1eWkj2R_3yjcKyeZuHrYe z*nwh2Z#L&#=hkciLNV0)*JnjrPv6V_bQ_Ye^y*J4PGqKX_nt(Tb2UgFAgM({KS4@S zP2}Sx((WA>@`rI7D5e>uk&Fd}h&h?EgmMZ4Nd_@;Md)oVun0tFBONr zTv0F#tok(yBtq3lN+@0!nId`Hu{?=$ZCtgZDy#hn<+6%)9TLBjaPAHK`!)S&q($>DOE|NHxRGoGb7LF7Z$FIDkV^Z!EtF|Mt<(4q5 z{hH!}di&kiXTF}+eRX^|8t-K2PiLjOB@{a2# zMQAHW;8T1Q2!444f4eG=We%&q1BCNu-t_b%m8_w88KDSVdjgEFxpl3{_@+kZfQ;eS zo=8@~A5G_9c_PWZg5U7`Zd7&Lx!Dm&#B}3*_^7{6zT z-Fd!V+ZJ;%N$R}+#ck8p*RZ#T%U{wmnS)Fuk;~+AnM@*C{_tQ0w+adOiela(D~7V6 zBWM*`utXV2ucg11G34#I{cFyaf){T~=vm{-qw-I{7+|K!A>kJp)e*DnkasQNn@eK0|HrD^s}sHG^zJ7K zUUXOc-B_=pu=@9st4MaQS}VzczkxQ#fztPZRN)u;MZ?>|q1+@UsvNz9g0cu{THpRK27e1nLF6`V!bN|k)Z|iS~w*9p}HaZV9^y0!3$-W!+ zC1P<_^TiX~K_rLG-%^q6LxLx-SJ0d*v$4&>h}H{6L@OTFqM@f=GaI^d=Mk9H((nt# zstrg4=cL8lC}xv29+cwH+M8F!&WG#2Fzs7OD~|#X1|s;D-`GNa1zT|V&zH?(wzl=C zkdZ{uPQ(Op(Yz%kK11q!EvsU>s<3($>#~7%{X-xqzjbO34gD< z(`bBUrp>~rqfACkDboANzB~)~*>j7S9hOa^O-&?<6WygSBUdUaO*8Uo7>W?NE>zMQ z87e_-U4zf~>htGRkLyvSlW>_0f7e1ce#VVwc3NSK8wjh~;{d%^>HQlG0 z4^*cTH;7&0Y1aXf$3XGvrJ;$Rq#yyi`HIP~lr(`R{|>Q8aiF3BeCK>kp84M)9+*Q6 zrjxl9z9I1wiYmbmXn(k0d#e^ZC=UB(OR-h->zu|v+D~9qZ>Y{MzZTx z_}!0pAQ2}%eO~i%Zh3T;6ZCS-Qepe}Ns{#+tDU-_wr(hv5IURt^G zB*-whdXJpVUsl7H74R1cf2-gx3jQMCkCl?Q(l$^KiceYEV2arWGyB@0P2vgY^B-bF z24K2*zpSLn4@vnhSg3ClK__1pI3!{Mt&_*>yi30Rz&PEAvZIq+5lbs12p( zSnfWlP$o&H<+8Up<4~nyTQOAON|3}or()oCe>Q;amTS4GC4zwal2j^lNl`RbDqLRZ zLoQu44NFE@Iin%Q{+nZO?`{H0I~f!oWPVER?dNWMjq zZ#^lwd9pIP;>JqcgS$RBF_vF*$981OQp2|0v+KS!0@Tk0*W=wEMI%6wt1DS&%i%YB zggYr})TNA3mE}rY0oF&sNB5kM6S`ltMBsiwYL&^;E+&7u50moW#I)~mqKl~;f+s?M z_GZCLLkKST$o-JisZ)*`j$$ct95PFCF>OY`#g+Byv_y+X&)18~o~R`pjgD6j30amU z+$W^rOgT^gj&gn_0Lf#3JRQgdMF%AuZeICN!`^DIBkx5K4T^8x;HQ-m}HIh&VUj+*fn$U2z_Qjc^-GrIaVy#hAm&(B4rbC%7N701NPGZG( z2~$*jgBqk8!x@uppS7H>{{8MWTW7HEBaUbWKB-e(6B&a84*q! zCcJH&3qv&CqV9v@!2Os^bvb}>q?pX-GWQ>0Og8Gv!*aUR>O>3fl(u43UU>2|4J5+rJAD0Z{X28w=F?+Z}>+U$f)9RVuV&H0ty;8Ft({5jesAr z+=nVcf8&C%&=*Xvb*Eh$ieIz)jb&D3@Nb~QcQ|rV8rJ8?CyYdDa$P&f+HIVCsnxjX zzb1rI-d5%=mTwNhVyd#e=t>JNvpa~f_MZoSbTbH64P74G7*o&q9H5`9^@ zzUe7)WpxqP+I#gVt+gLW+FqrjQscXBh9Yo(Mkh95hJ{3z^{|Kq}G&G5`( zc(#8JwQcd2 ziX~y*{`>pJ9^IY$Mwk4j#zw!2TF05iH##(?1jjk0|wtk^6EkFMF7IX$}O z(t>x<3dtRd(k+gP8x?ZKq^aVx?BSAmkE|K6X-79cmM@v#LkT$u*?caf=lPJ%$q-VL zdxf;{qTHr9Mz4e7ZHa@T=4pYX(#(-LX*OBUWM1vYr1eQ`-7(~4VB4m`c2i8+o3BWWBj!al3wI*F$oYj?UsH*2(cY^|7K+dxT3eK+vq-{QzHc`_<9@keL2`k!?fHr)l@j-V@%`#o%<5l=sE`E$Y zj_^q#_%$l1>KRp}s`xJo{6Ix!cbDowGwZo7lP|>~L?a|1#3IBX6xNh@>n@r3q_gt~ zvnx$a*Ghb*%x@%6i*CJsH@RPt;HqaW4mdTDUN4PcC0pUia*IT>q#lHt+h43Tf{{?@ zv!zm9@e;*VPv#p#?`cfJs?L_}$s8=(L7R%QJ%@4Q{)=!7$)0RV6G62pq^o5Mv(0D9 zGgwKORnq5*DR_24MrKSRo)p0nh7@wYCy~#VFm?UJwIobfJZefqTSqL?%;J@1L6N9u zW3HvfgVsky$XshE%;ME%_|3+p*=gIy1N50!?7opXb&&C}YZ4%LDYg9JwHs-888m}G zHKRXV7(#|rKa&g^;^xOT*{o!#wfPIf>YW?LMf5$ru*Ai--&anQ2hvXHSuNBbPZ^3r z#>_l!9MW5qZE{i-|9VItC^`kDibqIN++Ek_UL!F)4-kW+-8H&;-KEO0aHJS%Ws9;3y4ZXhC_qWS?q=*4FfnpNYlLYy&!HFLyZ+<+C$ z7|a^ri6j}d!1vr{OBrXGRo-xhHNT(RA$YP0IOnG-+>HDtZ)0+V?D)sKeJLnuJ}6~M zZ9+31R%H|wzq;2pwqZ=|BJS|F>u&8$AFm-$^N4c@;_5!H#D`;*?oAK&JS~THjd};X z${vD=pI!Sj?dYQ?W|$}m)4pK9{a2EUET3|8c}Wc`qm9-X$LnqASmQYTxPb123}Sll zu@gZgplUG7-XM9kCl#fG;w`sw=avMa#Jw_8SFspDGXS%E$2ZnP!u>tTuYJZ=LRGli z2Pm9AC13}eSNtUd2o$NsO9Mh7LQi>VfP{OW6k&Y)iW*(n2^9}cRuHLiN-~0irlQ{z zFmg-(9l0V4hxlF7Pe9i4 ze}}BBI$0h2d86>3NX4^dlSmD-H|>#`E4Cc86QVbQSEqZTuG`Mi3JJr<%t(OF@5jtz zZoNY)&lD$txXXWYTqyA_i!n3|4$GvBOK2D@@y*f-w0KSk+}{$*y8m$3YP3_9mv$q@ zI^Iq@6rnP-ti&KA26{G{>7_jI)nt^2`;=H?TDps$BKfcnhZvyI;E!V7nlJL6mLXX{V)L8a4uTXMhcP{WA%nZany$D|VOK8jPmq zb3(CLN8=LvoKPUq;T$QF`Yi0xJXWy^KMO2Y~U{ZUcARnzmrHk)#e@!xgC{C!?NR`sO)T&hMN-fq;h@s%gF|1+OZ9ax~NFj#jw;I34iDX-iWqWN^xBH5k zu)E*;fV)eIc)57j2CR&TFBEEMYB2HJA8=k2nd$U+mO6S#?6zhOb=1`}QC>&CZm`M7 zFi2i1DAO-H^kWi&wBNPJ84nAR?VR)PKc(j# z6EWN;WbaAz_>o?9ku)15WAHB7M+PFmm>}On%`E|HScWxk&?%Kbvs%#veK8XWbh96KPC%EFF)SylI*BjB-fYuTUO&Y zhxgatlVsCjgx^}0W%L*Ly4O+XslEgc9+F zHF+xVcp5Bl0~8*4@*UfHUT#6NAq|hbIjoB*H9SD*#$!*q5ZVz$v?d zbz{BKtL(aLB{1#?IF9r?|EW&3w00MMNo+?ry@T|bMFA5Q zCBh{pGHFDQ_3f_&`v*0)afgpFc^?tWC|*Y={x+;= zzUOJkL>*# zEbrVMRB333!2O!IJPr`6?l@AMZhehh5vP{KC9sl4pR@;xReCq-MpL1JIcFNV!SBao z03k!UW?F{}OOaYIm(wZZbBrpc{t{-8O1RO7+dHqo=PyxvoW0K_z`ki`7oG zpL=0w$SLD@wW|#wzY7SD-_VHZorpAzYzfJII93&@Gc}j7jGe&heu((onV_#-x%!6u zOwgReg?d&p)-)w|2%#PIcx{>5!vmBlA>{emchO%`rPuN;?b@Je{_th)$7KCta!i$) z54l^;PMS&RAkjRee_zPmBOA}kLN^RWhzSPrOaw5P=Z=7f&f7Z_rL7YOnf%X~$!H3F zd;fuc6%7MyK9etr_cEpBtYpq6_!ou;zI}{wHGR)`r_;TM4jat;H666P=kS#af|=#u z;qRtxiX!R-)H^scTi`C?IWI{&JLHL_1RFWX&mE1{HQL(^6b~G3lCKXlfe_HP#XV8n)6};Pfjpikyg|rPPwu{~B7xlvTsDM+$Pp zH~^PO1e$h7-Yy9A|N3VdZPzhX@hEZs`L!-=4RX4~{W%%`4k56)Pu<7WjuG9bs~vCi zQb6Qc*b1d14uS{4IKNm^d#EHcqMy_z$dXfG3@Vbnyrm-qDGOA&RKMWSo4e zBx}r}*mr6A4Jf_S-Rx2q63H)5%_kOkx{{umWY-u%a?1`N{}EYGj|*9mcXb$K;kwJFLEM~^;@QU4MWvJ(&h}K-7=pfs2O^bhDBz^9 zq4)*IVs-vh_lls|+!`8be_1-XgU)Y8WK2$7m4G>SVu#86GpI4=tUMPt>6DDb4PiST zKLnzTem56&&RH*wWi4ItZMTkmcXLx(ewTZXj5tT}i+FC~BH(&j@1p%T+U~fVf^Z(A zj~9j9Kaf$R<9)jcgbgQ~tWt(Yh}hhuS?!ixlh$1m>QdCMN%XFXbl1dp&bHGi#wOkBChN5~ zU;i>iF>$tGg?G8XBongaXbLz+c$x6~XV&6kn^{TBcKdG(!wzbRaT9&-2NTHopwz8R zpQh*W!glcwy@=Per}&3iL`_EN;p&Ur-;zlsjWzS@@wL>&@#7tgW2qwZN@o4EUX*P? z&23koF?%CBgi?Ggsw{8Sk1a;-2fHTMW_L|ic1A&OtM5dHA)gsrFO8(q) z^xayaJspn)1;-{w6To2~q4wA$D!8kRE7H*J@gFY;s^X*=i8d6mF?qUOAX;9I*%iZ0NL=Idr-=ds>j$R=OEW zGTK#%?T14`Nu7V=^M={85tMNoeNU?nx02D3-cGGA!iaDp8wf?WPj=3V^c7oYMe4TB z^4^W`tMBA9k?}s9gdpY=l9Ai;0VvV`)34+sP?5S3=$t^^!nKAfh#*FponKu5iC0v&cYRm^x&IiBV3^dop9gd%WXkvTPdg{pjC?m@nc?G#YGHi@(Wcq7*T}Nc5MU?*oh~S;rju6@+NjxGrSQEc;iJ!oCmmS7?RQO}TiH|2iavRnaje3uu&+E_mcJGVQA|NYHx56b z+gGORznE?c>6UaHmADP^*-MMFrY1UslDQd&>vD5ZYYBy*H4A249)M1dl!%5d(vip_2xxA+0L9^0 zDg5w7;aOV@F9D0+%vDJ^pV(LM<4_v3<-7x5V5)Id0nZC*d6)Y zg-T+f6nyle;Nk^Yv`)fXtUz#w(S|X-r4r%TMGeoD3?vi?UUo(aX$M5GNUhXF8go8U z%^jqj6O0NN?k=%@8WJrltX>0xcEJ@qRaN>lG#X(@BcQYx^w#_|6rw&9>@)Q7XsZ-{ z{30c2#f3rmD+9JzJ6|LADl}^1V7-w>2ij)`rQj16H56~SM?%@}7#)1DJmK=dYBr$e zwjIJzD!@L%2TT>lUx+~IKwWfH;yX!SP~LPCP>doZYUIWLoH!}bOhNcbH01LCR_&opnr zFyfv($6=wQprP$_ucUY@6bRDB_nhv~vtxiT5OPx@ojD=3FLwn}%kB14(yMbA*GgfY z%bn@I0?Kau(CH3^$6%c!$GnbJ$?F*;X7KP!rQov{Dx?l|TVjJfRxhuRH;AVaVZ%l7 zkPM86{(#~>AU;Y2a~H*Qc?=1nFpg-x++dP?l_=*gOi~|GQrxE`P$~GrNn`7s=-DBV zG*??thAVy=#*6eli9eR#Iq2x#U_&Nd9t6TqQ$VF+gBGmBq4~lH9Wn24pM988@Fn>M zr%~)H{IeB(g?1MPr>KR3teV@Pjz}e<<&(-VJuht)NU}nHrP#c)fJ6t?(|Wt`8}Mwr z0%a>oiE`y+AFhA08(5__-H}RV%M2B==jYdXo8Cp_%qbFsv^ugmBl&#MCHZ`j!nca1 z>K3G*W?6;}8IMYPr;Rjd4Y2AoL=5~hvw;`Z2uwwBZp({wBcdz5@IcrLsIkJm2D$7h@5k5TX$nN=#8j*i#iF{E+u#L2pz} z>(NU8Y63#bjM(j2k5nTl$VoDF;)aoLt?0k!C(F#ecgMlVw~ISHInLe7!|E0k$Ja@U zlKxjuN=Lj(i(P|#xgN{CLeeoj4GE-$7X@zOJAMX=MV1otwF_%W0NNdzw6JL3ELh-T~51!04zKe$QF$n%L}`9PF4J?wAbhm@Mv?P}(y)CbMuY z+bOO$6=dRomam5SN)c?Fq&q>SRx||i)i9hQV|5AVC&`53vWihKYKJzv6q97%THr=~ z@AM#%Pza%!7B7o=t`mXrZ(e(OzG>}cB0V@VJlsDrtZA`n7+e_W_*gl zr%(iX2A>@|ZBw|e4uEEa353h-h|X4)bzE%no0thCW9AS=aj_`p^@4O>w>&`Y1WQ&y(p3)zHV; z$kk?(e$m%eRUd8a4*F=LpbsrTvhVU4r_RM2yCo+tR73tNWpXWb4P;QJNrV7XSbYS zVBovtQS_Vj6#$T+N=brS%!vegGRajv8;a`CJ>m!jmR-#=5wg5r#ee30L>iG!eq?~$ zo#LZYb*cJf6vc%DZ7K!BftF_`W{*OE_)8GD!}fwK5~|UZi1#u#O>sXbJCT`CGPdcH zvLRnBAUlrhqSLsp@~3f4AFQ&@M=tg+Q*$HUnOD)%Ffvp6*rav#TrW*kPMQJ8DZa&f z87E>6kp8<)2GbIUoadlX;Nqk?(u@o~B8M^oWNE=~wI_=RE}VJR48i!FE8L>r=I)VW zW%666pjP-P?bI`bLq-jcgV^+`_iSOcR&kP zQQwgab*I5;Ztd0A8xP`?A@^(2=TMBZ=Ko}%P2(Y%=pRu3`u!bR--?oXr&Qe@bZf(F zf8W@kwmNp4%;J`oc*pW7{jiylF4NZL$M~!ZRZ$wQ(Q#kSS;V5womi(m#gzGBSML9u=VMFHnHz6(4~cLRNSHC zV*sHI3pzuHrNMq>)`OLFt~8vU+7p3vT7QU=3d5yB&#T<4B>9x=fR=4Y-_8RIA$Iz6 zLkl;d@gaRrG`0^^ixl?`Nj(jHMDrGK$$nM@D_QZcR161~Ftlgz^qi?fC;-Hfc1m?D ziz8DdjuoWZreNToj-lmypM+xPgUAe4l6xHT`N$IHNhD<{1OD_e(VrffGZ&vdcD2s~>TQS3_@c3&b&vG(WgC|X z{B{}YqMnC_y6aO+D*{wWDlCMT`5f?nMT1DE^qASnw-+DNqp0~<(0 zJ96MxfC%&&Pfn)ZoKrdD#DFh%M;%m1ngx`w?ocRJLkJWMQ+iz#*>A=0)ymf*AF9>l zjG|hxBPBqu2iY{h2gXA~teHmHJ}9e(_D-Q>q%Tb|pQ)2Gz5|7&G>mE+NJndK_)HWy z$DJ|L+aZ)J_Sh(hbk{Hr369*Bc4DiIfXu@6Ok`Lg7fJ>SgaC3tjlYtBl$tB@Wjsff zKxS{-=XcWv0osWf*Ru(t#0%#WB$~p=3UnYv#~7NSv}qUz+?O(Z@2OIybfmcu-t0N3 z0eh`DQxNW^h{J~ATQI3T#$i6Mh=WL5P%;4xqr0dx!Esl?SV2oAE7{oX_}Z}9u~XC7 zmbrJ?y#om1^0&JG=!3x05K;6grJYQ5=@DHSLP=Oe)@8$v_;-!%8L*9zkl@Fp)N{cF zYJ%&gVem8ur&O-o4gg|FJ42?nK_($xK&8pA%E&sGdNmEDMjQt3p)79!`@D1EMXEKG zMDRkf0<@#g1!q-*i+Nqq3*C;X+$;jL_@VB_@*T&GvaK673+Sb+EnCS;nWohS5C-iv z4PA!J4?9DG=?Z24w#U3;uucgX zHDD`nL724#Gi3(B6Cb@0sMMgwZd2%tssoi-s^1`gV`dD5m>Q(=0;iqtEEHDd5(~Fs z|JUq_oX5X`!c-fq=+IFKstj}+V)u^d6iW#1mEj6BuabsfmFnmdiH&jQ;^&5`W2~_& z14GY4$YzRrlQae^q;zBW!#MgEn!qw{2?#i~j5W3}_)u#wwy7I({){yvxNYbt1UOfpwZt}|8zrnHY{%m( z`7G%>dD!Dik3A~>K#jIqc#DHOhDTn|N z(?s*(1@oz3A_9Mh7$wu17N=!kjT&E5)F{Gt0v0_C_frxX^MqRaBH!!AJPz(QtqELp zxLn`lIQ~sTGr+vf^5Q$&HG!LVxIdEY7~UY(#PKvI6kfKX^m%JqmEqm8h!}GrMN!R} zNfvYy0!3wHEO&fK`(*$R$*YKe+FFJtl8OK~p{J^P zxuZ6I<sng_W^ASb7ARAx*HL*c{&z<<= zI+pVcrDa_8k*gWH&q|#JnB2gEn!Y;(kl8|`;1gp!5vt!pQPFT<+c z$!tMdSm5Y$V^O7@tXu6+*7J@CqZT#Gx88XL`rE2=Y-n*_5f;kAjn56++eF5m%ss8B z5{Nd6pOE0*Bef}fD}V`L@Dq~0zHBXPjaAE~ z70-VLGS4c}c>^6vJyW#{{nE}t>}kKG)rOQ*+n~dQkb8s7r4%c66(Yr~DurejQZ(=c zACP$^0yIV(R9gS59e99GQFpmJ)t=`+`P@8D`8ruZNWoldVHkZSikbAxQu#Z+iqF zYB`abSQ{Mu#%9a`Y^S%$%9%9M;wT@-7NMlTr^Z0x^QogGapmRFos`uVWp(p)vU-L{ zpoT~@qwff6^HkF6ix7V8iIHg56t%@0Ia>5r;0Kb8)6(U`@V3}o09qZB8%l*|=?9z1JIOZet&XLmIVy6xCgL5?k!xD9(&j1;+3r>~ zhZzsFf{R*SJWsgPEM1%wchQBQv_}+~B z+Jb2`J_zZmf$!OSz@trr$Aqbcb;X<9$0V?zSk+yrQ+;)%P*U#Us&8ms`j5tsnS0l) zf}z+-?3aUUIf@FsMNK!u9rr^Lg7hl;Edm(%M!nv(xFA*%aL}jNZ^61FD~b!DNL0bo zca0iqdip<(q@$00mo&+K%@A?l+OFZuTm5P|GX&NH@u2T}-uT`HA82>}50Qvr{0le4 zy*=k~ZW|$>#J867L%1aZIqs0j0>v}|Kl^2SS~6bYM!k+9r9lJ&EtMrOKf&31GMCDt?6 zieBK0xT?hZ7hCgSyYkG}1eLlkp4)+DE^K2p*d*06ef2XD^mk>IiY6mO)-vtn;2PuFGQ}EW&ADF4 zg|&J+=uqDw<&|gq?)1o7=nvw3{FNHOh>@@wLr-*Ca1cK|gwF3P&O~zo-Q}#RvA)-+ zW2CW706?p#@+smgKsq0!u*68YUy!OwnO$-TI^|Htin?GJ_Wdb8u#95RzadQ=R;b`r zyYX)xXEwgFQ;`<&AgMiSjw|%-b^Z(P3sQZWf-r_Zv1BIBy^)oa?d3gG>{NZR%ssiC zPRmUgc|;#(mKDFh-?6@aXOD8C`)0;QzghK0UcVee{9wUu#a~mdrQq9kH%2UHa-a^%BI4uIlI^--ljHf?P4ERrP;?mj75O%Cbmje zkZys28_DSLhH;H`Ce)Cc#!7{=ao>{hY{C73k%lC}8r3`om%rjZAuUz1j`fxal)@-R z@9+3-RmDw@zWpjx%W3ba9IEGWQjh7q#6Y{%&&1r%iDk8N<`7j<Si60DglX-ubSc0~2YgOcT=o*U3MJ64~c%Nh5<@sRDbVmu@ovNt=XGc>rb zNl4Av!3Zm!>hm5FN^QqC2Uk^3E(x_D!PNFd0Zz?#KLv%hdnxa!(gVE}L5B66qYg z?3pd9dpJ^$7cUsxd6 z@Xxl0jVr-YNgV=Ri&%wFj!=d`6(SZO9DC$zln+cCJO@_xyYiCQuDs*?GFlbx3E6bUOD-@xuKt64IzNM8I*;##mynK(bxd ztXOyb+Xkc?h_lS4nh|tH5c?5^5XKQ^5QY_ZlL$))^9UOVs|bQUM4Na3?n4r)BzNpd z8>8aj@>(9oAA|x^Gma^=}JGI59l-Zi7!!+MCn4!6|Pt4CCGxrn#A&s@(;FTH$vTS?GP=G77)~ zVH+QV^P0BlqRsAsk2~hlQ%P=fZ}ane*?#Ssla6)XFOGDiluHDIu4zTaFrbP_E;+H| zm~Z(tVnXp+@lGHsSxqWeY_S%1t%V-b?tQ*f`Ys4GG+D99C8vi~R47gX89gd&6G--& z|3qvwkV5$NhIdwrx)8b% znv&eAM4Lx_){-XY21gzD=9+?^yz4jZS^EpFfFi-QCAohW4zL)3zl*L2^%QX5lBQbq>QnzACo2VKbv-jqXLUaqX{y^2R3&<~NfP4# z%IiY5sf~@yTF!bKz>^-R%{nlmx)CR6ICJ#)#kGj2d~aA<;U@T zf6OKBn5LX^~5SxI(G{dBl>`BvL48D~LFV|D~0D`Qe z$JTe!5j@v?*r2AQ$(zX~Rr5Ea>HundR$NICWit-?PsoKAu?TAk06|&sr(lG=41noT z2tvQr;uTkPmu^OELzqo)&$-L}lI%P~LD5w+k{5@$LW=3I$$|qTp9ugii6YT0C8x{4 z#Mkd9F){}(<@@!atmJW0pnO+}1vTYmH%gi}TSkT6R(-i9yHbFI9e7;bY>pO`ECN&_ z?B#Fd3XY35*M(`t0O<%F2%QL&m8E$eWo6ZS{PRU?;1Ea!P)W!t6@j8^@REx#u>`!= z5n$-o*WEHI;QmPBS`@`7S+*|aD7^(FUCRmnRIy|)DCd~YDxaoPvSx>bt-HX1KA7mu zH`ztFdYPun8kURRDn@_`ftPIl9*n?3$-Zvm~Vl(OUzJrK3s?HWhSxbFwic!{! zQs>2EI?mP4l5NPe>iDD}U;0?PGQfT1>#n-kyocFchZzrHz?GfBr^tY#|8$-IEaA4{ zmaBM zkKJ-w#NGt7HC!s6A<@G{O&+5VaK`H^!(2_{4CbDWbkD+!DccAX<-?D2g|Sv>nY=`_ zP#29-|0WMdsYf|DN`*!}b0qu23vAt6Bj({|jJHemw9#bN{EU%ps>>b~ zX*a)v-;}*h)3ZZ^4g})kJsizG?w5~d$r_S(*@?Ix5N`~vw2U*8U&hIZ9i4F*=ZNL$ zGEN;c3!qw#j-U?U2iCL?lCrn?1L@F-fqo{VC*l>D=2r;AhXOB;Ul|5hdTJS`LU+G5 z99Cn9`&@jHOk*3y4FAN(s-drstEgoW6EzWQZSbUpgU8i3xjzs;nZ%j~+6bQJJHR5oh4ItlQ|)ERidx_j zYHzSxuDweY_*KF?KZ+ukw6$M@{0caw375?wt9%D~E&xaPGm}x&@87>0J{3hB!R@t| zegp+JP${?3j+Uw}zFNc2^qqJ<0+&INAS8HN51JR0=f4jr=t+9lc`-TtHI2gszykzo zA90Vr-9_9%u)(<=*Y2L|50m==rZS+|E*_1SK5D@89Ci-?g6>j+z`JvJTZ=D6l*iqW zyE@`4`k{9t?$Y0fI`5fSc4m@=5?h|1WQi(?G-F0_lI0cRa~eEMeQ?nR2G zR_6mdmO@}%0_E>Mf&e^#w19I3?;NaCm|b#aZ0!ViiDn%P)!W~Zytu$u0ZaT zK$wWvECdbhSiA%vIOjpf=h8ox_Q)SWi&*2u7C~^>2WW=3&>G?W5dtOH#EbR{|3LNP zWdwn4MGVD*Tf&}{ki0Sw?L+Qu5|MbeWUE=|V^I!aBk-u4;%NXFctoD&C4bJ2x}{f_ z7xJRbm^|~;q`O|bX-Ri?DLgzO@ocN9QU}=t)Y;#2Uy#CdMI6}|twDOJt9x|&XUTzi z+xN?sQaVi!@e8E?aw7HWb0h16qu~pnCaf>w6?8N4W#V22@Q2yuN}wVvq$* z7kWVp8PMpE{b6xS_wXaml;kOkl5?>rFO4Ca0$vf(isW~8fIK}2k$lozC{l_HpK2YG zSamAx7rq#aP-CsE&(}aejl_+GX*Vw}TJiV%U2JlGp2=_oAo z5=VFS_}yIc^|sP!tn;zb*}la61Ieu{!)SXspC0-2z(4gaKv}P2pRYYrf6QJyu=!wDY5Eed@;fy&Wy=H%EG|9 zfiDBmJlb#ulPTyZVad2O!?)WMnu2^}Nhqz84P8X2r`XP=_Jpqr1iEHKKgMIKD9pvgIF1Nu|6EFjQ^>)a_gQ=@@dH zz>KDc5y$x3{m0We)DeQxOL`P9QwX~V2mD+9miwHPDys_Hyit2J0H@4P4ZxR{cx8>W z`xif$MwmhvMd07fB0&3DR;gU!)$`Ida|B*vNMSw{3S^&=@-t*O6L@HcyT5vu6nnuQjp;(|Q6q(*~RZIPuk*0RGiJuf8ibKk5I+fTV~ zN#)aLg2~wCWVV2gdTf>Q61{3wGHo<43rZDuIWOl>AqZypr%C+F3jdc4e|R3p=M8+O zT`&`T`TY2VyHBc~oENvO+~%f@kCBBG)e$VMDtQouz~=|U{fq=xoi%%0oO&8q$>Z3- z(^mHdvusHG$ZBGzDb+R0L6aiBT-h!jH6G~ad=t!=ovP9FhlRDBX}=CDXzRRRjeg{JX4|_S zv?IL1{hS;jFIINc94E?Sg!xQ}?7NOC&zp5)W#A$A z3v!Ii7>fRu6Mh>&c~bnGiHc8qV|PCgt--yLnl7rK3Z@6U9?a(fzvr~{PZV-RVb z*m*w#)zQ743=-#4WU{5~8NL+{FXH@%#p>z&$3JH@LzEWft6F)DeWe@~nqZ%Ivz%%g z58Z!$In$?<>RE`Ss^Le||0DQz zuWNb04{p~=Jo1fMp%5J9d(Biyk)TnqAqxWa<&l;5QdsH z%eVcuKGBOQ+1UJK+X@t9yHMSEzZd_={ZA6wQ--Hx$XBPHowmKEv^W*@R3e|Zy`*N{ z>m6QGeRf~cv{{Ld^Nqt|0Gb{vfXgsK+NxF4XUPa)Di7_I%gcDF%!18H2CGzEbcz4 zcK{H1H{sS2w*y6-m9jXkRFjl}EPN~7CUJhs{eX|RN_Gw?!#7ZlX8qj)$>c#EW!O-` z7}qek*Qf`^cc20<3@@M0qQnu)nEoY2`Zawq;CqwP)utehg|tF0POXf!8gY0EcUu(a z4PuEDN^RxbS}BYiMwWsVBL}U9teEt70~4Ck?&1We6%uHmn-BVyA@eb(r7wP@SBJY; zT`Ass=W+siBcFP#Eue8yrBRJSYX@m)8ONlSGPw%Mt*8MP*IyU$tChy0j}F1wv#t{w z9x%p@P#G*7fGpw{5Qn{eg>td+Jr{w-Oh2ZA=1-G!v9CBYqF0edIsk#chLEoEkR2C< zJV3TT=l+Q}I6i%z3dNcGn5Q*^r+NBz6mr626a;ivO6Ka7b_9V#X!gIk!;iKvNJ+b! zKi@q=@(@~AD--YHiVa7FYMW#YM#mP4c%TrGBw%d}ie|WXh_hqGnW-E#^n8JUn5yoD zjE9!9fs?wH84-^hLi0vL{zEWLlAV;(OWH8K?Tl>JRh1RTvkF009tcv0h_$cj@TAPuufduaM_y=} z@T@wRKV9#XX--=WtM4`R4w*5-Lv&DYQrCm(spjSfD>EAlcaF1SS6>=$8QT{^@}m3| zn(3159L`Ih2xBFFJ`?g!DqK+c?4)S999q1x;asU{wOxkPRFJV)3RG{A82^)+@;-0F zt5ECmJxl`U z$5j0?z|Vs4)(0U3AsgYw^VbcYH}u8ZNQ5MWUW7OGK7ye}JVq#AGSh=gW^kp=vb%Ix zC<*g#IrUF`Q`!Zwl?2%z3kwl6fBSn;8Qv5lps6ZT7ntgQ(vz)SoOWJ-zGu8yK4iS< zjV!!#EsupB2)I3e3vbpDxW6T_Vd_&))TI7HvzB2qCT?>cQjfrG<=lzSy|ab)b_oBE z@ul}((JsPUFN7F`c7%8Daz7+-VHL_F3r6gAI3{H!ZjIJ&%lEcln`nk8-qd_|AU^tGvchc}a zA3^-aYr^aQ!=MN6`w?y%K7d3fg(>AH-+_-OL5H6gb=u)ym7<`!uL@0~P_%87_;u*| zlaW-mmgP^qjI1 z!2MT}dO5cjxou<2#HU=2x*E3rP6$KY?!U^?)29cC|=d$@R~pCjLlB?-7LnkgfNYeg@0&9 zczz0>M-fu+xe>tvV;{tKBM5ZA;BM7+niETKaiS)PpVC35Y z#*@Oq2r>&gz+EjakxF}MMP~aWW(>ha`Q`By%6myGQv0C1M@|gO%RBMKR;KJRj(scQ zm2FU=Sn74YYkRqGbrj5%jJDMs&13|+E%f+E*ocr40#M}|1F<&L> zD`=yNazs!l0~7@5!e{LDO|WZZL0PriVzX(oJJjN%m1!qInGkg}-&GeT zltjifX`c+LMOAA+=KVVNeX^UN=%lcSWLjepiL#Iv5q2PC46G$6OM3|ly{ii-NocX$<5>#uiEZBlE4=bc7mdm9`SyIK57DDLD z7ee4MND;0_S*&DaukH)OA@h7qV?XNN|LDS{5Ld>cqDF)cR#U@ljX6L$g2mzFFnfFe z5VUyM`n$&n{s=w@5m6bHqELh-2d{sfgkR8VVHO+EXxE~b&^mAS-ndJ;%~w)nncS3X&Gy;Iq>)ye*mt0#{U_X-i^hrd+M%6+$7+B@YoU0FHPc%YFYXOxHKVU!lpDFzW zMpTjSGyTI-1Q>*lJ%jW(U!}UrW(s*qZG9N$vCpSazbp!wP=O z8Fh?%&NxlkqRI(oQs!-}VaOt!m5f!beky18>0a-S8ADOjhP7EEN7I=&^VVRqW^uy@ zCzkf`E&MeZUnlXiaz|~JwQqO(F4){{$6(Mq&YD*$wNaFKxgHz8TBn~I`uJ1EQ_MZh z1B`^Gv+cj+9*~)=$}>yXWaf#c8uP@UqM|-PU~xFyEm*Dcaih!@{ii?J^lGmC2>K15 z?8=kLdt3%1J~8rex=xi5+hJ>O&gjFq-uD73p&BaUiq_FUHabo7yMRvJ(1TsV*l>Tf z|1(gL6tqOUa_-==@@Ju&z=2Lg`l~<}_$+j0*d1?VyvqHE1ZS(u5_Ou?E!p=N7j3je zS?JZ4r%dR>NHAP2u{v|}$^t6Jf3&>zqt?#;s*m>Vd>OE%Bc3{T9jP5K@LtOoc)$+? zk5Nmit}N+p*aK-qrF7D$IMJ`-u^r(rHWatilrT zJ5G<%cO2H!jnCg-k~HL?qd401BlKgd%b#s(^fIyl9w?8VIDB|Io|U8r`8+V}wisuP zKfQO&8<{wobsq^A69eZ7RaF|Bq5)E+KZR6U>ZFR1N%en|4CJ7tbl@tdqa+j0Kv#`K z@5dp7uA{CaVPyhHw1O~?;F<*BgpiS))KBGxG zR0hbpj#%2VBD2N>kwY+sfV`V&tUQ0T>2;-}P1QMmVQrUY5{)S+bhFCDmvjXRV*Tf2 zK1J1>i^?CzH8r$u{WA9#WPZI;c^`#P?C*x(&Mc*;-_Cv%WZhK!8SQRH(S>21B@bM~ zI!YeUH2oN_K_?IKcuhKa$i-^`0u1?Q3#(xq`u1&pnF*(nAnO%Q&W?AVYD{G%NvZ3K zSr>6s*NQnKun&n$d$=16!2JW6Ll#eMEr`S|!5P5Ser@XXGftmvlbN8vXUtsqLXA&= zlj9-r%O)6!noRz61TJ*W>)OkIm_D`X^HmlCJ=(g}_tgXfU5S$G4 zUT*=7;+L0kZ`0L0D7L>b5g48e-QK3akw#ob}3)WGJzp@ z-WeiB+`NfI$8icGjiFJH(XV`(hR_A_(32NLp;3fUq+sX|Ng;-o)tp(`{DSTN@Vr2h z8eb=$>3wbmxzFr7tqLa*lJ)>TFvCTjrAm_FJi>Z^4VcoKyFWLaxo$j%>+P3;l!pGx zvPn4&BGoi}#HS$$BN(*@*lS(QGND_&?0SB-fUs%Vd;D{13(>6&|0Kvv zTAQD)^-J6Q9S0r#z(s$1owDs@fw>koIi8VE8v$;OakuY)D&uTBD3|@y1lMFArfqiB zOp7bD%QMrmFWd;cks6o~bR%x${oR1BzuJPIZEyUvNnt?FzDXAy5a_z2{k%u+&bIcf z%ytbgs>3Gdef0eaU3?8jd*bXxb(^Z@lt=F&)h8{pF~GwJO6t^Z@DPZ*T6>_Uok+6% zp`21juHz5ByoCo}>hUK$MEX{Y2qgiJeNQI^->b2xwPt#$9x5kw ze@KvRw>Tm=>RzQN%bry#4sWPcaJn9xsH4gfgFCxUD6X*Qjbo!EHXSF)kSLT+RoIz@lEb8Nel8&*yrdT zUm=6c>H6`ZTM8>FJ@EXQVWAge{QY~c1xbf9Z>>8ArrgLZZ(pU`iaJ9L;`hu`^e2uZ zwv22lcBYL3$^fLEPKDagvrXA6w6Y}g6uIP&1$iw%sUREVpjPI>5<6~3r^I#Ko^hP- zxKmsMz&TJv>QJv(PqM_XC(#h6+2B%$ts|xH$&dB|`Yf5O`KY4X%}oFu2m*n$)UEKP zYELMJL1s`t77@CV9Je18Cj@){u?zvs`toGB)*#S~pZD(3!!QIYGzs3+g+z6};}8nK z1yaNorFqIGPg`skh38;|?3|v1@n15Ut?Pdg+~{m~-y}wmkUQx4Ar+RIvUFv6$L7FP zcdWYG=|{T=Z<2(txcu+6BZ#iNIvyBSsaY|(+xCE}T?A}GFkb>_m~2eGTW{Btd>1+= zClpU(nc+=p9F(ju{K5u)Voe~P4YmbKWGz$45+OUuptr_-8mpf}{pq&_HMK)$Bp1Tg zS}{4OQ0|AM-$9YRtFl!(4RuS)LP>XUiDEwMYTW-O?LENbI*v8b@0>Yv<_rK5Ly!cA z2cif|q6A7*FeQ=7wqeqiO_7vjQMPpb9Q56^SMPe?`d;t#^6lOQ207=PbIv*EoO8~= zAm^N4)fr$iEovXWZ~mFVbX8Y(S65f}>8{R%*0pcq^=BQ}y<8It;BXOWrxmnoJkH6| zeDZ#wHmh<{5Ej-xN)47cxa(Gg=A~iG<2jXlv9oPhkTfW#j(@tPK>3_pygJ=5uQ3hn!Gz8g6J6D$U2I6d%^+pjwD&cE>1N;EF zueixsZSuG{@e7(=U1tGTdk#D+!9RP8k+{oA`eaT+*t8Rnq&7xAd-@E-I{@lwFM6Q* zdeTaJ-F5cwm<{)*S2k@+ke6K()9Y`LCH=szcfp(&-4~Z~vu8dGR0TR#c*4_jXSD1N z`o(xzi0@fZb<(Yhq+4eOvR2G=M-jMB{RrE3S)RHF2;8R`gb4&HxU=%StEIoWZdYNh zR2PQ42o&bRX~0Dlc?{$c7nLOvh{_i>K%xS_Lb*hj%6+$LuDA_Z)m-*O@T%`h(Qj}h z*nec=5}&@X0xebfLZj2X1&^s6-#=dgFWP;5!Bcm04d4L51HWQaww7%5VW7^cJBAjU z+q?bL*v`FxGTGvp>KCKI3v4SKq4MydG5CeHISnd)Ve?QU_=O8)pPW93TJc@6;L&&; zNsc^+ZP|{MmF+AWzBoE+k3Lo8b92FvdYA7U+S;b)q1A|5HCTJDTJZEBZI2@Du57QDzj|6{zmv4XinM#Ov~lWbB|(tZ z04(Tuo@zm~%)~BjVb>0BbmQ&vZ1~Ofp%xEX9Mi2IKr_zfH7GwNY*foeklGE|%rGF+ zf@;ckwUokxDM&d%@6ceEHxy~P_SP_5dV5kxJQ#xIV<<0m*Y2fw%DsFi#Ca z4!juL)wj>P&E*$e+y?ngCf`3jNSvMqJX&2lh$?uoZ!ob1@)kLeS?>Pcv>8h5SgEx4 zvJi=KLmk0Dzsoeaw8%GL9P(rDLI3uMXJ9xj8$C5Wy|cq>6LsfozEW4gVBiyA)_)eJ>FF8BL`pjw;K(bFn*UO6tQroJ;_gb1g z?XL`u99#3)zcM|@?x{x*O?!PSINKuc?Zv{tBE4v*AWMTV1k%mLwpwV9;DA67M-7n{ zhO3y0;QoV=l@tXzl!e@H-m_=~SF3LI3u7;f1;)gTGCjXE-xOUARpf=Li~{22Tfi3j8dpSt?+p{N!i?m3W1_1 zI#iPXkL?XX`9{-CJ)zIgwt-127?*5Hu2y^r#kpx3@ks<5yHL6Z6#Ks!DW+C>Hf2Ex zWU-*tX}$=xD!1aT1m{dWXxZvbf9<@uEMqv`cxTEf|85GxOeOr3H@BMgPF#Ogis8VV z4^0jO=q%t5(+E^6uZcH_pGLT^e`bHlOe@5-q_|1EM%LFd*GBhET8TD-2-$|hKRb@p zhX}62i&@uf5b);288u!!OC~-%pU#{!WeS zOFZyL=G6$bR5qQAIiAI6o@$8+QKh>62y!toMM3H%MQSTq>MD)YYkQFTw|IT{@^_~e zHp_T(8-G{S+TEIKcY$V@^b3_SHWSR+-jvNRrot1Z9;A*!TLXhtMTRy{C^_qS02%I8 zKphkNh}_3@1gN?-H3nKFru~rtF4(SrcWz85Cgw31xpU*BpK{xFwWJjlVpTL^>vtji z4&>QXWMTUxd6tmu4*L^kOD(aMJf6u!dFVteZXAN}tS`QKapk|oY|93CMc`iUhN8x} zR$5%x@AYfr){-{D#Evr6vuquA{U`EVSVySC-viwa(h1rL!k)qi!v>v%;VE^*^h_x& zP91c5Xna&yr(@y(BDc$`@EvAXGe5qz{LVHbMIz=#l6;J5xu;Hvl~b)zIi0eczF_t- z{lz!c0^BPFeo_u^FQ58p27b~BwFhIG-ZQ^XfWvX1XjAlsG?N?J9)bXK;gjv3L{xUT z+$71WVb=;4CT546Ky3skQUfQ{Te3qKxj zLF|#tSpSZ(Q>1pMp45|Xa}mhMO311VUNHV7*4Y&q<R?vTlze)2|Arc8^9R+ z-U+WZOvm13?2$i3$PSNtP=+UGNJEd;p~J6Ecsw*-i>@F{Zkn>0D3fa$*qDjQ+U$3v z2u}DF#}o&Jn4Ypi)oK)~92tNWy~8+SY9Tfx8HT4t^<=TZy(n+W=Ly5Bek)SXU?j61 zZfyOMadLfnFG$O{dodaVi@9Q0v@v80O-t3GJ#csZ&LQDKHu@}0c-DocnG5R4)$OLqP!Blq3S)4)GsryhWZFb%_3e{~C0!sO^#6Yv2lbD+**S zs~gXLyiKBFL+LgNQDhuA1^>GTXW3x%j{1X9|d86Ogl7$em33=+M_bLe28Cy zKvFkTQI-w_J`WVsSB(iFs@G7^LS%CDRSfO(-KptvOii&LG5#9zY3R%4OiVn9(ljAt zM}Wd5AYkyPQ$zAtJFzGgiC-&3!ZHMQlVAeBM=R@UR#*mMi_JWfJ(zowXxcioGH65~ zh!T7Yr~(JPzW{!-%K{*|gT&#Obr6C*HjE9zR&>=6KPVQ!9<{=4&8Lg4i-fO*2!}*L zIJ}Yds3K$?hrUae$Jf0Otb^gZ1p+yYKMf!pA?zbKTcu~*4BAi1WESlpb>|<)3?zcO7Qh2O49_gt)fIpV|a+{;`&3H=4tNsyQB%Bn&kr6d@pjn_qy}6{^s> zz$a+k`S_CExzB8hfrQ5p2URec!&4$*YLtYiK|{Htv6}EChM@Q)O#r=bOi!`FOJSoG;sigT7@~UgXQVhDjTK>0*!P$iCAmT< zfowhk-2fyD83a6oetD zFGF7jW0a*l_z|KOjkN`TBp4^ca2Y0Bk(fJ$Ha{!ni+vA^eqij{SxB11fY0rT$>$*X z;CPq!t6d0?OO8Ua*eA_29Fg*OU|Dn364RQA&#z!&k`#()nq>HimR25bzcz8s3Va)fpWjtEv9hgX;)6%N|#G7#x? zAaSu;VnWoaxfX+o4IpvJQzTC1Di21PQbpqUCx~%w5Br@n*^2%|7wPL}y!ar{=>osK1^Rmv!bd)6sj3vjNwV5%)38*vTrtppW4~sq6$Ht$wMY%o-d@5Q zTOgdVvLdn$kKdS@0fR$s3#NazAQoSDLXxONdrww@A2%;F}G$R_zF4^g2%&`r86RbJn90eBT7okX;#Y&6p# z(vJ=Vq9shf=nMdkWOanRbu%b#B9LU0GDC?o5|l#n>_t_fA$fyokCdlAkUh+w(KyVm z!##E_tP2~#z^_(O%KWh?8dX3alyU5DFg8&wDti~A)Sl?-9AQez%dQKr{%VMpv(BVs z!A?q5)6y&X}V_vOJ}D9X1i`ZUsx@8CE&h$!24 zKnc2H{c;^^C*%E-fSSatyBVoMuOW& zg{O0BJk9L*Vlyir!Rb<%&bVW+y(ny@#}ZGT@5U(UftFL+bmBS`@wYG(TgS@f>ygDx z*F0ApiAQU4BeTb;qT{9^$}K^P_gF>8w#c{dW>f#lX@P4!9w)5HQ5+`}1@EKAjrO!( zA43p;QBF{!L<12A5%qI=CUnkk0GD{lOqp|7WSzD|g$F-3OY6atnRN?k` z=V+*{RSY}Vz>Z5Y1GA|`$5zEteH`h+EIN<);@JK6SB>)`(|{YGgIOHRF&1c6_MyXU47W|7r3+O&RCucpKi>_)YdrW&$ZFZl5yW;P&YP zse=dJ^%Zd3DUU)gOvFvfKK7e5^i8Q2BEA-)OB@l^?dN>JZ$lvS_x1v59^^ZNER-x? zhwok#Eq2TcH9a+#^+>xE)R6XY76Hf3*%KnpCh$cz_T9~p;b^RUqpW@>63tBZMn9Tu zsE>aLF5w)~Xzax1`~yeKay&_%<$3Fk=JmJSx5v^h*fzqxJ_!UBHx_ck%dFKhVa)i+l0tsbEYVHjb6qa$$}_jaesexc^} z>%9r(ZSTG!(W_)t}zO|uUeuhK4&N+=!80H4>xx2AHa zx|N1hLed|fdzZi62e^l@k8p%AHal!{2P~Jjj2{=VTIQsNtcT4};)BD?)8je%gI4}F zJkQOw6uuh*`#Z)*My0rNN>hq=%|*Vx82a7sc|ippJBt3h$z6DcAK3&w~d>Fj6YrFg-? zM@*Q4w20DP@XJeBO;VINZLMeilT3sN{0akHxQehyACo>hNQuigL$M-+Z=I)F7|`U`Whkii53`!N%*$b}1UOl#K1^Zh7XZVJ?g2L^-}Z=pcgvhE`s8d1^ge%o%r45o|BdPE|a7p zJ%-chvR~Tei={sOFB>UXgS*N{gAO86?1^4-bfv7nWh{1%g{5VB0xtu!MBi&l`oG;FE=_ag{6lSxyd z!-|Mis|d#42B;`f!2Xg+S4oWzuBZL+QRq~<(xcGl&5)p5((Ctm1wwA1^B$3fP>Nr> z5TFS%6}-x|=S***yf@iDGFhtT8gGW&3!}vyz8UhUA0NbHuA!2sy8BL^eZHSS2dP_v z5u_1;B%AQ9Rra|J-#TTV$pn07A2E5Dh3Z`}=zD9#;eI6>^9jb{P^9izDh59#B9Li_ zTxm%%58v2-W%5-mFJF`4FNSfnBL|j2j^I7t^7|$BO>QWDu5ViKeLvg7<_A*zjVwT1 z+l3SvCn;hvMF6H4#NVKgu8wr6#J{qboL}XO3$k+*+iW+Q2F-;{mg#%^S1v>p>4X+r z@9{z3%tyPFuY=Yk)ERUS#qsLD{~MqEA>*z{j>2q z7M*NCh5$$2*BG0LE|rOomU2&y0GVrrdFf3^Z~xutkH#VWS_!6qn<kTmKAH9Vg=aazN4{Q(lP?=c;d zT`F@;+h|Oh?k`Vzskb2-+Pns;k|e24d>_e}-sOXQW>d=Lp|xDZbuMuW6sBak0Exr< z{cOKv|B)$1GNBy-6AUi6v`z(OVDPw-!ia9?8GX&heUrO|iwul{mh-5cE#=Q{63u`1 z?d(o}xM&TKx@xh>PnTm%YtY zEhwp@Ks45{l240^OBJW}E<|=a)-vUXht5CFL0~RjaL4D%7E4_!D_*UUs+~*dUd-h| z@^RbMlA`Kr2yW}3nOTSrEw&1cdS8AHPvBd8DwdTh0Zx-N6;b4m>HGb*Q*IIyjvHAw z@F<6hSfprFO)P;o(wGr2d(T_q+?UHdmiMiZEP{}hkh9IrkY2iEne}LY0l;h#fIP&H z?B6lPYf81Juch|hX|Bkr{O#hHW6@XSfz^7`-PO&3@aH0XYr~(5r~n1)BQ1+7Gw9`= z{0us+oA&IH?D5?Y*uOA!%FJ~|b}jYLjE6Z<@@D*eYYk-c-JqRT>7}u)l$-MiQiK?@ zN6a+2A)Z^d6AK^e{nu( zQcaoamu~}6VSl;g#WVy^)s?kVhvu>Dnq0r($Uwe0H%+QzJocq^4~rA4m7;RXw#>r!9HrJ6XD>t&{BUAZhgQElOPGhci(?0Wh1itS+QNE_ZB z2|j7NN?M_&eZA&u2Wi`9f)bwJjt*VCvVu^BUnQ?dGIpEp9;XAaKW2_MfD<)OfGfi{ zSR`ssCK~GeE{$dZzls~x$Rc@ip#E|~= z)KS{U2L0enNN>?+7KCo0rydMyyzHo8s)dIdAMQ zmpO0D&`7oy#3dZ5);ASYriqZ7c{m_bzmVO{7x_q6!0ilw|`g9zV+b z!gzgpf-z~JO!cZgc0B&R$+N}rkN$YfKEe@*cq3@DM^A!qHguxdstZ3gTa0tUa1Uv- zhWkg-9lKQ&wRd+H29t$g`TCt9mv|w${`D17n(dhOkSL293Aw}ml!YYN1m3uj zL~tSswTUQR@rkqHx%|q#qR8%dZM%hbzq949txpbL!&}LmRLe+eV<6l)inZZ65=J!C zN~szJPiw7k6cR$fjTvtb#C813kA^ibLma_!a2SZbubGOQf+1#tz z#)3*e5U3lM)aEd$P6ok6vw2JRudI%NK_}5gd}Gi=amTehMk_(MZHLY;j9t9acqTJ2 zdZtGL`NlKg^e-T}AcG_RE6d18IZA2>97C9-1EqHiQ2MiA{JmYe zRSeIH8M^Tyz6v+qHV4w~Bqg`pT}NO|7#|naa`_LcmWy^q67;QoF(nTJ^iU`gS8H1u z_JVelrT>uecX?7ZG*g`BE{|wd!&VVc*IWiwh>~Robo?g5U|OcDR$6KC5FGL zSF5h}A+_pSYk{PHWnW^PUAvWIH%||%C5-HWgwKE+$*x>MAA@Ox4#q9S&?388eB2S- zFMr&jyO#~=eXn`maJm6RrEM8tDb;n@usAhr#1uN?p}SgH&@XF~G=lHf zRJQT4@d|XU7O)l^j}2J*VWJo2&NoO+NsCwf2;o>{?{L7G64`hXa+r-R=fX&;pg-GF9Vos#YV@gOTH4 zaB;1bU0mS~UZ!joP%dEaFs@@gr)PBe1B5IVuFV8`piXuQ5A>PbnM@m=POoRu*E?n9 z{a@5|FK0e-j1T*IKQ8QR=u~cMTyXri+nNcd#aWS3c~F;3Wa5C26FrpDw^FhgwgEes zem_c{{+W0wq;Irz{n~aUruH^(q(3M8o!)(yuOr}J?B|RpGEoV@-bTs7kZDGxe8G1b zc!f?jer^Y^%lbRn+xL#)MM;DWM2LWIY%2&6uwOA=$Wyld(=OW<*|MLzL5a75Dk$S| zKO>V4%Jj`O|ptfep5e`W$?vYf8c2sCT-P9WBh*Bba-99bZ-4wAXhoQYRxnz$ zq7_-C0>$*&_`Olo2`Zz#tNV5YaEHzxt|k!11<_K?hStcYKQZj<22kNM{k!A$#tt|J z5gJlZnl&#@MDl!~DB2spN7!PWIB`|-E)%I-n>|mi&2nUsh(zypaZUE`Ow@Na`KMc4 zr{LOi2$48DOw3{1pPj<5GYBpy&IrM_`VfeV5r4~KV2B7MAkEE*N&J(&I14HcrXTWyr>X(BhA7A55oY8LjkJr6Ih`KOro;1 zxV9gy8R*p{9j%Z)z11^(uL)k4FYDyeFnPXWNv-k(qVp1Jn^#Qx(MIe&CRLqZq$a;> zog6CJuy%L{Rl3$PzfPD zS@jqJBu_C+^~+WfHT2midKJpt8jLEI78uO8-(85hpI6mt^RW#cJSs%ZB&k1;?)1HI_F-w~X;^9Ae@EV|d1*D%KlxBF3 z&nI*qzfle^n2?kz+4bHNyWXLGIncQoEOR^RS~D5I>B@UdnHH_ZI=An|;##>XG~R3( zsMj*Xzy#-napPm9x?yNh&+^4YEYBcjImPKXnt><;;Uu=6E!l_Gfi-2Sl}gY@89X7H zI-8HmJ{Wk=d)LZ$BlkAdG2IozEC;6pk6TQQ5|93qS~ye}Nne62O0mC0p-02sXX-T? z=x_AhH6(xbxvc!-H+J%l-+1SW&ax{3>~XMW4H@|^0mp-2 zXrn%CDDuoCzKsL{0FSPx;!%v1(~l%J2;>p6*hjbqj(xWlGp#*hyZ8u4zMWz4q^kU_ zq-WX^I##X^`HtKJGtu*uzRWn5Clp8i{UkfPkADh7Vy}9=)~na6NhxNW9tRb-j#b!? zN*_#4k#_ij2*+y9K^Ge4e|;yG^W*?fSb={RCC)7JAdKxjc_xFDsh}8@t_~L?`_+mr zn-*y6E5dw~dyCj6aJ!+3an>?{ITwxouRS_fXQ-eF9MXQmjA@t^Z8x+v;^1l)3EI2V z5pVM`8P$+#^YMP7Y-TW_u*E~NNk{Vz7SE?qQ9R)ST8VB4P}vWeNv#Fc))mhkU>6wo z4=ADa{=>-)-e9&ir6lsui4D*&vjTT)9N{NmIj1#j24Ay?=Yr=UefY-U@%<}Q#5%mO zZ!oiplJ&?!uC6#YTJyyYne+7N!8slOOp8ikN_lf3jjK*-HV*UBu(O7HsQNpBSe@R> zwjc9SGQis6p@;=VhQqR>3WHk{t(15o|KVv((#cqpxD>RgRuA0n{Dfkt`4UH8dCk-5 zSP{D5y(~S!25NITu2`ao|D}`oy%q6S8iw4*7jON5=TAfs-^LQ}vJaVMl_4Bg#d?0aC^&}1pg&R`hFw@&O?3%mS2R7m#s%&Mw?DA49_zB`E3U{8GZO%xGMIFB}demK(j zc@{C(4!&W>=)Er|0kS$r?}d{Qq#5Z%{!Tj9_<0As*bkU>H4Q=^bXao{@VqDL&?Gu} zOX-exD|(@z>@S#&?=kimIisy+5{P(mi1^fx_|4zN6X8@GUK%de z9dot}H}~^cK5p%o^(ajq7d%nuNu1Z^Nei|ggv@1tc6`E^jVoGZoHBR<^$QC~U5Eu#bVJO2(hU)?JK6bDoJqlQj|(EjwuMZZj6+n(8I7Sv{u2 z_72nh(+btM#@bl3=qlB5I_NCb0TXMbL^yGht;Q&O&K0e}!8kPZ(!cg_lkXofwn~(f zC*zOCv_jmA<6LYIboZV0nV&iOIxb&4=G^)B89OBgJ=_YQHY5VtK_(KQx9X}STQ~KDbw&LZ zuD{_FbD5iGe#p2f(ftkgat>={1#4w19lT3w8J$Czjku4iEr@80jvvlpbqN0aU-|!; zjcWmM2sXq=x09D}WgrSM79j%R#?4y%-3}pwc>MpeKWDtgpWdcjPQ(Jft(Pg-q|FFF z;s+N^C4y!8ipf>>hm5y|%JD=w8iSb75vz1uFdzVb!$*mv^<>;D*B}vOVy*)?Q2J|8 z5r?U;UP|2JQ%)GSCh|>s2~&DfwsQFq6ELpsH9nzBFQIo*N>t)H4sR9F3*(OmY7wwZ zQ@~1Y^%GAh2C1o`Ru9UP8^BNtf64@NIn3kZPJ>06XQE}*d$?_Gnc~^ZX3Y@J2s~HM zyvAQqZiwugOvw0m*l1BWIsyFd=!tv5#CFWYJ+RNAr$n8yr(1;)euI=aI)3eRN35_N zt8t*`7|;2JjjIkhn2n~Zwty51=);CrMM*w4K8m*S37MT=0tX@_H&}i9BJ$I-4rYH zD?Z1gEqaqJ9Zh#eWSOlCW621zmfMtn88fSh7<@j;@@FW66SW?#ad4r<-WeIUPoDhIm515r+We4- zU+Yoqq2X)Rxc)+K4ou1%p`oj|*1pATttt03N|WY%U_a0hM8NZbs47ti?2j4AhSIE& z5{2Y0j2E_6(c+EW&d-cn9J_Q(Yx7c}xk zwP6^hz93U6Og$Yxl!LAKJ~O@9qyDs!5&4f*y3=Bpu)}wZLw#2XlR3il+zN{5K2)C~ z(B&Tv!yD-L%%-Y-YuogvpNLtdN{o`*bQ(27J$2v_`mLAa8p$0#bCKP9XFg0q!FieXqmV;;(;|x&SNk{qLf$NI#WrlOlC>co*1z7L zYhU@&whlD!un-`5xiOZWmIBN&`C)TSccYR3ELMi?2=)(5*S3<0InRhip$k}}wfXWI z{h&D{*M=uaSlZ?L%`NWovuE0Xvm0lfP%}R9{J?<`Sg#w;SRCLKzreqj$KK7jAno{doRlYcZo)3qofn;NZ$QFkptt zkV=53P zI9IJEa|5v;&|#|g)a)egz1EQa9Zp@wYe3HuP~-ALAjd3($qqi5@R=mOrIbGu2M|1O zHp}lB0|-Cr>%%GQ;GTBvLO0kUX5f$#S0q;RjR$=7OqM89J+6)0#WP1MmOAWjn614Y zm7RPVqP^{oqE$D7RCU-7*8D)KWdxEW=b}4H`4cf9SMn@~)TNN?w@l`~id@Uory3mDrpIkgxyR8}5ce?Qhl(mdOAH)#uC5ADY`0(cQl2TB98w%w*{ z*=UAZz_7QKp>_X|NkS3|Y{g@i55~fi(7q@3LUAon21>wynIkN?_jciBv1^CQ9-Y=q z&-sr4>0mVER}lqZcphAcjYCzf*W84g7~@{_HjLlP)qPnvBa7>{ZzXImm*G7Y7Dp<+ zl1AfPh{v7rMH?NZ{5>hy*=+<2u5P6u#7$~iMu0!A9K+DjY16uWYqu)0=Iz}6NXPRo zfvtrXxUs;&CMM{PHNsAqS;V<*93=J-qRIf`sbC_Xs>H@3{V;hTLeW(A#*g;R1N!)W zmscWjKGKL{@ZP+R^DKkgTz%KBMDFs%k=Yq9pDa$C-N+m0A#Ia~Uat*l*}eq>cgK<1 zz^%pc(%GAas!l)HYD8`5I#PF-HGMtZbiDJYV7js5K1L(xK9Z01*i*EmH=BVRc$r9m z+iEdA_2zZ%K)-=38&b=O0O67^jI8^^0W5e)2S=y9pSmsU{949}3tL!}!AbLB!~D_d z<<}B|>Uw?#)lg#ItA4hTCmK{g+sKUKfi%yMtGLNk8%4P~h3-~Vo(<0>&PjE;le=c9w$zDH0x#aN>Qz2w<$UC^K#8}~TjfWalNW*i z+z_rXBLInyeecOR2kKiR4_OOo9&`|9O9p$$ap~~u;0MIp_ntKAw@)OXeP{D!lZq}( ztObP*_Sy$K4i&&gCpf^Hf%$%e=mcP`+HBt6&#m##Y<zK=# zG^M}V3gu@%V;r4MTmSLNHGi79ykh3OcudBo6cj!pqgsGhECM-#2W7?)$dTaiyoW8W zeinFRPoxu9fp1-Xd<%THcMP^D*)(UQb;OGn7nRg2-3w~j1{GMC;B27}20RK0DdH-( z9~8(0++62af)!S(QemYBb@m1a3BDn>*L$$SZZSQIa-1AGTFY|-x;FE1CA#os$Zlp~ zHt4+w1knDWQ##q@7^G-dlZ;+LvJap|mt@VNJQ<@z<~2xB;;fvJ>nczj%|RZ0Q<%}a z%!)SB<7!RP_AMaIN2;MQB)!e-p30~=QI+ecF=f>Eoezupuwkjk|CQY6-oocG4!X8H zd+d=^qC)C;fO?z=RT+f9{+w}g?p1N!H7-kj!4^*j1-pt#($TMepWm1tn13s-O`7$A zuNQo+@BzT6rqN1_&{Q0?mw~B>=m}9AN=>&d1P=lU@|~PgZ+J!aB-{jFJjPqKNex7! z6B_RKmDYqJa3XY;LclkgLa@?tx9#ua=U4!+pE60_ik=imoD2;bkylJ4>6@3R;-i{n za-mX^Oox@lei1fge>omrb?}NFw!gd$?|*<DyaPvojXt^u^>ZWJh?nPs}@m0zsnlOFY z86A%tbW8WpE!{^5*BNeI_q!Rgyq0>S3jNe!{2ffErBAPl>qKdKGH153K(^wKNOyB6 zC;K&H?W0s2N}C6BYbG8@I)j^ZJO4>eG5`$xRhl_bqE7Xk=z1i?<$`LBT$-0wz~yPQ8aQ=% z&WB^ctw#n^DZR^vXGezN1L*MBF;Wr~%WEQJ!Qsc}QwI3rG55GDC)vE+X>VrBduFYy zr&X9V@FQu%)Vh(?!Erx9T60)p@3U}rvaqcA97fy6m_+@a@p^1N!EAaChzxX&2;!K) z*!DbD&x|xD6Nx=4ohKnVPa|zVDwq~W_VmiHe~=KlxGKKm?I9r!4y^uE?Pb@08N(9b zdpSagyGt#bj*x&ryCPoT{_BijgAiF}H_nD2P?ODNteI_X4cnHn*2j`$H@g|Zrx zkVc$~p-K3hFA}QvLt`S%{lTyx;pvdc{6LJd(CEcD@^>3 zoAa;1#Jk|B#leTg>B-a3W76uwzBPzB?*P`6k2Zvj&MGwf6zxk?Z1NH$^_&vB& zqN+^fKHVheex`pm-VP&$lIGRG&xv4)zXwAdQPp^9BrUddtUG1+NoiS9!*j%LW6$tK zNoRMnk#$!z!y^c*_OY%P*4h9ZGGgN_BYHqFoS}=7&Oj+V^TXv=Ddi>))_m6F=-2kZtajSK9A2OYlJ(W^dv8~6LkZaR zq1pw7U0?G(J|go|M@~I+5G5dFAfw^YQ6+dhB(^ z2Kg%81s1y%&_;D?{olrk>m$#0v{ z%=%(}RH!5GuxnkHTsT;5W@iy}!TDUYSW`ULK9uc-gpp$&W8myo$z$L=yHf&HQAqU1 zTBg3>B&`~_M%p9x;r9%jK~MCSpHmz#vn078etXkwf-kOLIJ|l)2-E78;=>!@>*FIq zbrRIe1e+abu(85F7prVmps%#f1saCp!b9og!%Uo%I!m z4|vmQ2YsJs+S&AfPVj_!KKKFpuxFoK6J=M5;ZjKHdWs8Q?7ZZ{$ZzM(UGDNdTat7O z4+CqGkXlKw+siJCic=+#IRKiymo7#U18|A${3|t0%fuEEtSAxaZeVxM&U+;d%)}2F zd!$n99ylUIX*8_Fk!#qWG7efu@JyqFW{)zA#ip?!?6D`sh59w=4h644Px^py)RdMK zN!!%>#rbGtAf!f-j2uCv*#E^eEO691S6SY-=VaTG%qG-nzbr(FSFr2OCj*2c1R;#k zYuSNTMB!2YzAz7A0>AdsR4o4bav55HBmCDA{y2}YcL?CenSnb@qbz%cE#j^k(kwn( z?i+r#x2Mt$yb>a5eE*stR?2zLCFmLTzE;0)?n^8@H?7xeI`N3Mr@@vhLS z(WAG?gwfmV=gj&VCpuag{I6 z=u|E%7(30p+Rt%;1$d7w_#As}MH<8+&0&!?ISqZEksuvK{1tks04U}CbY~(C`r3kj zfV{8i_abp==3c381p;e9Fl!w^{nVEmrAqO3;yfS4?ZiJR4$SrE#qDl9PregAY1?%z z0)Zxk^{XvT&r~50(fF?vgk*#Sghc!$1%aI;m<^Od`@E0VGVe<#dLv=tNA?BO6kj2T z6`bgi>xje-;x6~m(Hka#7q`6tar+HniQg;cO4nGPu)eUNmnGT|dA0bj^`yA6xRTTk%ik$RaBqPLd4_vC!YtpNv(SrPkpJy_f;BUG@*m7BbVEqw}@R(QnSJ z_|#spD}drr%71v(U3)(Kw+Vq-STZlaf;Gh_&%$(m8*|XhAht>3@>{yB-WihBF)$Pv zePi(I`3tXePh_U*yI{IE8sG5~_?UfQF-6#v3C0#6~i=?yF`s&;4KQo6)|SWXRDG z85o_^d2Ks(J@*>>Yv%ZSbTqyemKSTWqmg7y#MTA>gW9#5K?v+`8QadMXRK{`gUwtD zs=ad5<6^<*k$hr;8m7nzD#I+L;wn2xFfLEc{ybwKO7AOzW}RBCIh~686OLs^Hayb5 z%)I3J#eyQ|=W+EUFE$b8g?iL!ha#nmZjxR6!9VKR%bhp>&n{Q%m%XTIR~#x?@?pH%1ZwW~=86d4=7UvQ263FD5X z(*@gpqT%4n8iw0>_|{`m}kVAGQLQogG+O7g^|2l6nn;u zyKVCw8@?rJAY;+Dh8NNX9w;uP)vl2lh748We!!)?4OumH9=(br{vlS z@?It09z1#|EoX-i6raWs2<~ILYstX96og6cpR)h5H<%#Dj&q8qO5ApG_24;z;DIuK zo(>-23&zx(-%NquEZ_>XSF#gCi&v8?J~AGd=wVERrgSS3Fffe>m8X}_+6Yl^S_m|M z){MOQ1=*OMrr7rw%ha)RT==H9u=GL$zL6_=GT$ae!Kq$DlsLKMm@wV~N?S0>);ZE3 zUc`>`b@qQSR!A#bwiNJPPbU*RQQlEA7|q7s{!^p*V7$0zgN(74@aOC#{AqX%!)pLu z?eJ=WS0%j4;6>&FWWbA#1&Dx`9(|Syl|=WlWR#~}|K;_?!2g7qw)K<6rbJn;%TPgE zzQrG%o@$}(QEZ&1+9+hEL1w`dNpu{MB)p}*^%vm0+aj6pMAJ}BPW9|m%Yt(7rn+P6 zAtfzC1~w@pFSGA3c1TYnHHs^veKILyYiqNPh6V(-S1G9gN=jRj3}@PdmXr7S;(got zSB$gm1SWQTQ`!^rByeA;qMQ_;7BJjsrqM9E?wH=(((N_K>mK8XME^frIAJf!ecY1I z125ExE3!6o)Nxb<`ncEfUrzN=*lh!J)mT-ZGtNk-ZjoATg0lGH+|}xHr|Xc{15xw} zpy{;V>ty3>0TK~9@GH!H@GSuU0oKNaYrZxDrTHr^GZ>;g_WV=!$-_~Fw0Pa=@DusC z8;b0Mm;B?|00fvdxoQeViP9_WyTG${^^>pBUkOJ_FEjtwq8qxFu3<9@^(^qC9^Pkf zMlep3>*u(Y%LdhomaSYiD%bQA;_Q4-X_wVaI!E}V3mg!(vSYd*ts_XI;Ohj!(pW4p z4=*yXqrjd%u+12FSmOZj5!NwEaFKIO8q}N<_B`jCG^(s&b0+z~AagTT7Xb*bkWL<-Kz!H%n398vTdh z2_d)6JHz~Ya;7swFa2Or@@d3WUiNQcqB(m)eU+o;&K*)(X5PA!ID1b|s{R;^^Y58C zq|zmHF6+WzY^;Bu$LfmC85!KU`)9*T50QtS770vtYMgZ>Hcd^WbIow;R|(At!M{yL zu)wco2vPXe80u^OyD~VVC4=Y8YMphQk;POsFq=ULnXGjEZ6Lx}=TzHyQ1=C7Eg*pJ zRec`Ie0%3^Az^SyR&8ymy`Ergd~Dy7S6g~hi;Yfgc>BUf^hiE`d%AJqBXDRIIr%t; z=7f>1!M8@=ATPrcUfpfTYcg5EOXt8>`iM8vT@d^+6mc^A=$ygXU;pMhE(f3a>gv~j z_X>|a=fF2GbmSWuUVHI(2EYG<6CZworeB@Kha3;|_sZKB{%~Jx-(ubS(%NE+ z|0_d<-D{s;*5OIy|Cz=AyqS#OOAuaohy8}h#7q^z@r~}tlyAebJeC%_q}BfPv@UMv zw$C^kk>puYmm+vVLgRAmo|Z2O-@@^JZaqN0wLYE3R46w+W;`q zcOjD}Xo^saX};{6QJct>XxJR>G(4i06HwBX(m)%&ah5{K}$En)q87^F5ld4Nb0}+8Ho2XABK*{7PnK1pBgW z{&j&kR}Joz&sERVmuz0L8&2c#;uD*B?9UlbD^j&ia_ubNNI$CJ+dzBF0Xoy4;*3*6${ zxj6kac6rs|T77b$MWz*7BZ9F!g&GQbekm4PDSy@!X5GB$Qxt|dl#J3sJ< zvTu2f4mfrwxrz?*_PER4etXaUn{#8aTSioqU6R8Cl5FjZb$HN#&_C#(CbURC?$ryN zu1@+4CM&;UdU_(yt3=$IQI9Y1x-SMniN{zFO&AGf4P!r4k~tW6q!j}Z)kK`e97u1>bL-&Ew+!B6 zKVb$`rRIqaG@>OPVDyJv6zH=&%x1On_>FF9LL5DX;gX^e3c_STsH*y9;+|fhp{YF2 zZWVcS@DiO1GwD?XR~LY!oR>npx}(a?%{{gR)Y-no7`6eH;b zVm%ExH6`+sT>+Z78vBgNLUJCVL&7}s+yM22@#A`6nr8>^7kBhN{G!{LaC0GS|3B8= z13a$dNErNHnt1?7VhEDpU`UBjqCknFL{U_*B~t=LiL^vQvP1>1?On_EzrNLalmGpE z%l+?u#Ip>^n&N+vxdNY_A;0-0{?xc@}c{5$r)z#JA)%~ifs|cei;-&ki zKN6lxobOsWH;CZsuU`hG_Uq+HDrNdm)w1W(bKRP$x!T59#=Irk;;!?6bDGcrflCuS zmi9EoGLo;^03~AGPbBtg098P$zcBKb*abL!n7GLm=}>kE-4W1k2| z$EB)S;n}%FARLQ?Js&TBWV>Ct`oPEIamg?Jd`&m#M&urZ7H{jl9AG2@x*Jocbyp!t19oEID0{T1Z5MOgTKg+<+`eeK4MJRT0v!L?g^yNq z3zwM!M|es>V2|H-ccUP$vndnGx<-nIt1$CILV+Ul!pW9(_hu@~AGUjw0R)VutVLxM zTGX^;)kce3+d>H4MJIJVcLw$ggC5P4=?%Sz8?a6kE*`F8rTSYQSv(5@?#j93y47w#fUONJS%yLU0G4)ixAE5 z_!79!dp1)~L)o<>W#{;1SFr3$V9E_7g~|J<8w>liIMY&*M&^QJWo$EL|Ay5Y zzHfNE5&cHQ8ygl~D{4lT05HrxJ?xOslIw5+vh7k#Kqm{z;+mo-FE(5rK=Bj%|~BC?jf1;GTvx< z<3YkmW17(eBh!g^OtI75oqI5|c1g8IMbq15ZhQ!S)hA2m zuoG7#3=E#x`%rR)9g68VqqLlcdLLaF1WUaogA^%wzz$qYR5XT&GX8+D0 zJTHc`knK9%I~cKFp8rMN*5++W&zsSI&d?I@hCGu)&j)z{*y;8OK5tlI-*;*;%4}7q zbTicE1m;{<(DGq8-?yd$8L2+B3n zC2g7(*VLCD*eOD5Btg)U4_LQD&E^tI?WM;E#IC!>cjU2Zj##_{YxHe%u6?I+)^qWt zn2>10%LZSQ$=zCRIC0R9< z5PH7Oz%DQ$PphaQK2M7zYw@chZ=*5V9>3rox4hu7jr+YGpC$L$0AxVx=-Xo$D54`C z#?n#3=RnYc9H@baf{@ff8cEnqzO2i>&ymj1(H*%!Fv)XTL2w8O*6ege5zPq3vdo4B&-CX; zKV}|h7dQ|dQ+dW8xy3d3--TH)T1rqBJ%k+c3F?KrXByGYIZdq}x*(`(2=HU85yT>} z_l?Ya*KVe~^+U-j!TMMmo|Cx<9|$mjkRM6Qd(oE>YH>+{ypr)IaL3h>gAGg)5gKc< zPd@Ci-Et?Ah=HKc#OF;zYlE*8YR5zwro7&6SHG^kv^za?ej0(RQLy(5vxWdZpbI>s zV(t|?RyW@#JvV|PX%__X2u@@mY+ALmxwyCuSiPI@ID%jh!B~Th&Bf+w$Ka<%mc#Rz z5)Xf4jbV2H0p$8R{BDTYS5pw0WBJGUsm!sV<7s2(mUc|@xaw$rPO&q?P2ohebFDyJ zw3YQxx4dLPUC*4*f7{-Dds{CuZ6M=ar@g?sPZkV4QUojIQN!#a0&;k9)aYW-V~5e_ zaf6oR+OhpYM@_uvQ~08~IJM`TmKwpmr{)fZMOsC~nX|>*0n!;(LliW&SPg5(`oxz9 z*M&Md*r}U0xX+U?U9_xuYaiGWVU*OCNU1gl(XWLh9Ee^rhR)Sw^h{a6{p!8MET%El zW%OgigsONNcF?Uzg6E;lBXVhqBjTG@6>z_Dr##@k>n?yO1esAt={DP@f)b;G9oLY= zF?Ki_kd{(P0`712%`d){Vb>maj)3{QT}nh9tX|j!1xgoC9*t+0IBxJiXKa=Og7XrZ ze(v(6XKDI{m*^{!ci1jvhP)_Q(`v0ZOBnIY@Y=b9t8N!YcK67&-m>{imBFr-l7E$a z%l2}pR@`M^e#|3(=2?~37QW_P2z(e~%>Sx6fWE|}D7vg|b@^6d!EnQc)J5}u^BSBt zdBG!nO0zd`A(94@u@6ZrHpaYgOwD+t8SWer@L>o7$xXH&Q4~q0gref+h(gR76mM`a zM~RZX2D^Vz_&8+ar8NJp7)`vPYT$59F$q<{jJUMWVD1fLarOqx zk)e3qJa-!U*4tXzvh)D_xP6TV4!<#Srj&q%XN;2>-c>IVNUy5r@a&s969wYsnT(I+ z$z`}3%G_K+%&wCfl3%kEhihFqpclaCzm>W$nnBa(pF)#{&DEA~ zZ#MzpzL>*LlhVgA{1a#wUU|x7V6pL|o07j{6OjCYiUl%H()ri98un5^=hFj>x^7q} z@3^1yYKZN4;95PBNf??{1l%{m@65vC*N`|IP@l3%%EX^Mpq?v1;<4#Cp!NaXzJA;N zoD+iav>MB|^U{#oCu|CjRkV&)O;%z-92HG>bi<1ignB`YzHSrJ^N$C#nYP`9yKBaA z#x%W*Fn7~!>8=_K(^MoTn|OkmCrmug4I!cAL?D#e3WRb~CMT|i8_qWB>`&Tu-G~^^ z1IBK#>B@|SQ%`E9wr5A^7<;A0-)iyhnNB}|NgRRSvYALg00i(1P>B5C5g^XibLQB( zFr^g%9g_9oBuLtjWPrpvNR3{nJ-G=6ickPUdfc)ER7Lq^M zeSkscRkF*7s}~oq>JFy9tQW%QpNmG4j`_8gZ>P-8HR`mM$686wf|Rm(Qc_dZeTY3V z1`JtGgIJz}VvvIb%<|2JGyS={-JU%vu?=XeQca^4e@^#Nypyj;Al#JSiFJiB%ZG z^&5}OD^=J&nk7kB>*P4v2?5O8f{i{HL#qf#va@M2lSoGZvt7P)$f5xoF148XQ}ztf z9BJrFe_9Y1Q89l>a-S_Yo*F%GxCE%y*#8^Y|8}M@_6S>q-JDWkM@YV63#H@~3lW#! zjX!x@-9lDKQm9Un(Ty-cL?Af#a%?}eY+TwrBf^v*$-n&$Zw@L|v@U|-7NnY^tvfrn z4L#U{GIvRGw3Ms|rj9dU$d)PfS|lS)#Sm?T3Q$w7tN?w;(HIJ6YQk;$^~OA7W4aB& zaD36qry*!}R49>(VzgBEoVG8HIQ1#ll*PMeyKAB2w_~y6-)F0iaH0}jX8mLAQU%b{=0; z=OeM}>r9}H;V7-MwK$RW;=Q>&NA+1H0UhHNPMg2}H7tIA|36rk{@eeeX*;S5?^^9u zDQ;}a@LVc1rN2_%lna(fClZD2K(u3brQ&Ql%}uEf*`eb%NzWZAIV0i(HYRL6uH!+` z+Gr**WC&xnADd~y>BF1suuLs6nm>m53uh~2rA`G2#I5@=@+?KC7VxI_y4a$7R^09G z|GLk*~?m5c2}DB8v;L>f2FuCWser75JjQ=w7+=uTSP6<#lYmBj8~ zb^>&9dzYP55&)(%Kminn+Ls8#wsT{j>3UB+tCvXWpRKaWZ}@Cr!#hPZ+LvVf8xKwl zZ?Q8+YNJKQHO;Mzc%Um;?vr)e+=8oZ&316*h4I|jVHPaMWd&lr^q|nx&1;bn&uv;< z)}62TXT1;fb<)>C=mpg<`Zx1}hc2zm1P)zVP4)87g~?z;Svs*&D@uhbNCE>uI$;qY zn-<)75Ze`0wf)w@-7*^H|IOnOc|J4ZaLdp1sbm{dRE z(Z`76iz1(vCrQ!F+W;ACt@e28ts{W-#l(ag;5sKrT}mSS{=$b_q_#9!cTyDk5rruE z5owkodRa=9!}X|=#}%(juCit(O087UiRuH0VvQ!M&!dE^a#WR25c3?v}%dw0&*eG9d z9I3uBZkkDFHg>mbgLPV~gp}}Pq>CIn9s z72dh(&Vj(QeOmnpmqMqZM*L$bbgFPo-iULleNY{k+@S~kYSmry6L{dKSkT<@+uqje zbT72OSYr!7^3QCWqZ7>{y8u2+JEr%Xf(dKzhe@7p~bq; z>USYFx#Ri{Rjx4@6cZadEk2Y32qQeFMlp|PdLNpXV z&_j!D7d8(vAPGEe>^Erv6dvUj9_AJH$HJ$f@X9d?4_HItw}qZoixjA314|i zze>O_mat3#ej)iswr+7ttaT2QLYnaBkYb!g#lZNWw_u7=iVg$u~4x zyM<;{U3kXmgF*y`dxfh6hHwd17dy8J$v156$hKHZ%*}wZ+(L)y(&lDCS!G9N!t}&> z&~De%$BGw`O@nURbh|?}9!XF3Me8WK7T*fxPcN4X#Eng}zdF#}XT2NiJava`T~|-! zW@Xvxk+5lLGfQmwv|vBM_B1SP6sq6UAxfwu4GjUkw0L9OkUUV5f)KFj)g`a8(?4EV zy$lQcarW|6c7{XXj3XzCLufpTARHRn+#@qShHcy|mR5RqWI_p_&^B=*+Su8S!L0Lo zUEk@JoI=wFmHUpve=qqNJEy4Ap5lD@`1ogQkjq%Bfq~z4<^gVfm4A;WY(eJ{7v|Md zU<+naro1Y@t?tc7cz{sKC@|LQH?e3^B1E{`+7A85@xnHzn_|iz?es zi`pEfTm<4a(^|PR!pTf*f1FD&8w&qm>RCEo_3Dv*+k51|;&kszAa8S%Vu_Zz-n+6W zz)KjaBKl72l@~6*Dh&p4HA+tui2H`a<#B+Tf$pu|jPv$t)vuN-2fDw;ymv_DL<)g) z-rzh}B^p{t=mO`s%B`4uLV{2vM1d`1i}-37t}6|=WwjL%w`wXd&*YU)scm58Nl7aU zU*>zxOp%h`vn5_d7v-Z`<8YQ9Zd79+lyt(6l_u)JQxJ=qs0M*Jr_1eY-G=-|LeGlU z*G{#L-Y3&bGoAiuv*J*3k01i-BP%76->?Pdl^1zIIZ=feE#zuiE{_(vVTvJt3r%bJ zBE#KCD|Iv?XX^thB^wAxG9uPJfat3RkcI(|6a zhX+w)x4e5JE1tSGJ1|xxnOjMIEZUn+u~HWZjb`8v$vuo`%ywxsARtHac>=-d)Td^H z2fB1%hggIx95aR5C0|Tq)?;6o^PEY^de~(mVyeVe;%Tz!@WP^Js)>f=uWa#8Xb~f7 zja-H~uPG&4KIdHzwz60z%_lJ~USo9v{&-@HJl(Nix4?8F@Zf^zy%E-9^^$MdlAlni zP(@_%d4KG_+UX=snx?zBi2G)QFhI*V@eo}07?!aowdEN)wxfI#1mcF&j*oOp`pwk! z9AGB2#{jipzv)Mmfw5)z7+YpWl4V@HS*bMYj3f*2 zLoNbivj$gPjQ6U*dd?gk26CfYc@W4JHZ^{r-p|XB@kFbgxTlg3aA^o)@lzavfxTFA z5dINFRg}BcgWkeY+Xp-DJEOqI1C?0(-d(6TgxkSy%4~%U5A**n@NgEnHX6W zlf!g5{7rf+IbxQ&O4^qW zm_M*WASBP3=iBZx{x!~Czop0kn*h&0gd!lxIQ(P1u=#wiUDk6^L-~ZdIXsxaKZZO5 zU3v=sotFLe%t&s2IRZgh%R}Q~tA=sSfICrFB<*Q>;V?JuFXkCxPlWw*~RMIdeoZaq)fdV{e-t9p1$3WUekFMw6I zf0&{w&IOrBQ6zbntuuwfiujlBp8XrQGZl!exnS|xetEFCsK(qWOh^rtCOB%D*jD@L zfZ=0ix`bj10HcseVx&hw{OcYUjAPP-Q!kY4=NAcT*8!B}mS$1`(*VE(a6uY0afv&5 z*GiHe+{GFnxo7mL8gy@7LtpF0t?VjdQ?rE0G0mwWj5zn}pR+AU=HMa~CK=d~URcq} z+Zk&%L;^qlz6nmG3j)b?w*3%t3Wtnrm>y+AP?89^CnPu7sl!dj(!5&|HM=sQbYy>` zp?EtAFGsx2T9_S?7^%YDRGquDJ+#3r<^#zWtZO=;{8VQ~ehjU8az=9E&Gud6?N=lQ zY(5hG2|={{(>M+Dyo5Ai57A7d;K^$f5>#@Ja-FO#@-=Imoa>pU0Vms?_!BoO->Hz^FzzKyOlVdhwR<2|R*xw+3kdz_tl zbiVshI;V`cg2m2AAq{B(J24!YD+k6fkkRJ&k(1F-#g6X|u(Qz{+Vvbeue>Mp7E>(zMqWBoI$7 z2FsnVM@+iYgd^^imiIQx=c+!Qt?SAqU`Ju?vZ8nNrqiXPK_^e`;H7_=ct!W>idhxm zMLW}LtMDO-yBGdvY*63YOR^o@4#h3??oFNOADqxHzb!Rz+htgo6Bg(rT=u-7GVF&XkJi1or8cCyvOLC ze$kXL_|1FIJSTaL4OOs^DjlM+770KlB}PF-eJE$igvyLg>Zf7yDK1$*z(|vxvX>-v z0n=e4a;CKnM?!{$-DADI^txJ^MO`mF9GyCZZ)VC6S($4>6v(UZa@HuI2a^tz`ZxaM zr!LH!CFDPOk|DwZGO8e@pH43ZFpEjKDiyq>NDotZ0z5r70mO`*Csu^hnPp8UB8AZE z8U@C)O)4Rw?PVQPw+sj5xHQMsdxv=FSk*W#v=cPlvnv z4xqFe57mSgbYXy7tU&CL7JWyz*`iNP&x_VS8;%X0aIek1KV6^Ore{^|F#bHwGdwnf zd29-6P}Z)r4_5e{b!5K(z0EKHX2N*#_wh0C$tDWG zue?bIVR9UNiowS}^^m%r5%8gS-f!oAS8-o2ZAiiR?Nad9Cw-C4Qw5z36u))Yg8#iq zpJby469^_v77YzR8@l=05X#pEW2ErU7IQ`Ybo3;EGV+%p^bLQqfqH3`t|I@KK%`K0 z_;!2%$tm6Joi zwrf2GzyM(%4S(FC0C*xGBYf(1?&rM?bGZgJ3%B1y}}T*3_gk>pohi|xZSzEM8Z4LF9&w$m&aad_C4+%VA`7zB>X zaY#DO0)S2H^f4NGe+?DIo9w}cE{6grXZ~14nqx~=u`5UB3x{aeSa@_mF=UY)*wTC~ z{>7`Uj4%G;g}?ZdmIQS9BEQQc_+4Hx4z*s)C3lGm@;Bb3k1&t?GLL-IiTSVcY*42lc+;C)iqyxd1ewg5;Yo^qu!NPp@=D_B|y#4C>pbMo&cU$H}ca?U(*uZ|5P zB3`3m}w7PX7#k>9y=;6esIe* zDJpMWo~FfK^)&~p{|ml@!2K&(R3O-$m%4GR#x4PfAl|YhejY}=XHUmbe}g4r3`rfC zw(zus&$;Fb3Z$qNINon=@B9*Mm~jQ$+{{6XytC0VA9j^n=4V?FE4C@zl^Ds{%F&)o zT&zD2%f$qu9&fqG!+xzKdg7w|?)66j@FDM&P&<+EDP#whg!FpofIHrlZ!~;UjRoHL zc_)z=10Oo^tLHm0arfjA)gwf1JP~UIqSV&sKzT^eZ+{m#N~RRWstr-5mG#@WB6mbs zywpF8;YA_Gz)-VAj5F#N(U=cKgoEVlgvgptKd-gdkm?JY0FImqHY`Vl*wFtj*}}U{ zAYR+ERGeb`(Kx+iMCczE;QqVT1OOcf<~yvmzMDZ{k_?Z=2r{sU4c)_x#lVN=SO853 zR^tKWP;O)$7VyF+PXzgi0K%!4NcDtI#aLvV7(;)I1Ri59JjPDeB|}YJOf_t-67k~t6a~^8#hqc8?uUb|Ws?@K z@l$$N9G(hz7jnr|DuR5k&~9>oZm|bo zL{IM?h5?KYt{+A{m;6wbiC%jO`C5D)peyXj$P z^-#g#HlFc>h8&5x@aoIO{2fW)>*@8-2;=6=P9JHOmPgj^B7R8 z!9I0l9^*TxBA%@I2mnf zUY23hNf|P%Nd@|KJ4#B{6y9w}32BKV!CGQ@MR#C7Mt6F_5Lxb38X|w*E1nz`y2cH- z{>~x+z;Kb%C_S~fxcOaJEIbB~rG#}Ne3*{`Fo$3p%Qh2U!~}kyf=|f^G7vo-K`#C< zMFo*DL?V84!=FJyR*Dw1J*fqPvO?hJZ<6m>Yb<@>3Mi7f0;;ekKS(bCjAUw|YSZUl zZw-JTVve#RQwdihfy^M%YvC(0qYj`eHA|Qg-uSW6*U0F>UcJRAU5%d3HVW1XpTwG` ze<@VdzhpN`x6A{;`#)^?LLMqZArCev3HeX<*r>l+Q^SM}v1iuq`a8DW7+_in2s^qE zKofpBY6M^c!Kw*>4Fvi4gDagx4&aj;K6!Ekrm@^(Di|Ng2!zlKJ6-Src1Ez@Gtku`F1-zJ>y%L7qfN%S#jdKQirTq?JD)K zu}zmD6~70<)>ac=(!#m)csO~8qki!fF*>=Ao332dqOafqBKnzhN?-OCabAPrN?wDP z%q{xUE|CocL996WmZ=fdwI&m~rkOc`rw6BVinPH@npQ!I6j}3pS~a(7)?L^Tvu#(V z!85$_DVQi{RifJRPz9FA1tocdU9?n%VZ*~vZ?Oc7&gQY8^RQ>A3#_{)J1u>bC3UcD zX(bP4aj(U{{7ZCHR7Oek` zu^ZQp5yII?2&E@m1=|?Hx!_%TKR~)s&Bhz2 zXmLV$*1^4D>h9JdMx=GuPO$(`hE$+@8pdrle=#}}z4L{2&{oO2BxzZbm~kG~`CyI)=X3cemytRuo39`cWXw)4B`=GG(;)7P6;x2Ox#p@eqd#rUNFSDVDLEcdEu4(n|2GPt_X3M4M z-45i{V5$x~QkWFYuB^?{;-;xddC+`3^77}KP&%AfdTl8b_z4`A^CR>}(otwJMf^A; zLXHtXGzTNGG<^eaR>pDmwsa*}=U*})bVQtDjJu5D)zEgd2DYXZN;eT&cx~^G7Z>hf zabHYF8^dEr<#mecTZl2Xv}^l5R1tfOD%KEz#Fs^J$8ED<0Q=zofZmP&@d^a#C?LFZ zIYDI;GS{#P8M%rkBqBnSueTjGA(2-@yXtOpAtbliBrGksQA^-B7ijCsW=NW^)8}`v z-SLGFsw8wIirAQHE zVfT1myjx>A$cTNL;}lnlo*l>-&r(b3FG&%Y_BYME6f`&y^8!dc_3)5dII8fP$yn8P z_GAIGfB@#DG-VW30^uf)OhRH#u<6QW1)@=33_Es+mWLhxF%-+T`GK?ti%je8j9#9~ zov6Jt-&7TFYYBmw@nr3tmXguhJ9cejwRap5c;J=o6-nfZNm2csfYJ{8_jkvq3z*z< z0hCp@pU^RAsO`?Gd1?KfmT#+i%(fWG`)r1^^Py)XH1-QO)9|ecW zi%7$kTluSA??~Qbqf6^wJ$7tC1zi|ZnD&EZ~EwTA@Ch) z9$+!yUMZHQ3A`+lf#R||%vUp_iv(ihr3C}swy0%wz324>p;C(P)}$!)R2MIv`meeo;E=M^Fu!;!K3qo zeSc>(BMxbtKXouaG$5~zRz|s}VG}ZVjMiz^AVw@!IE__9T_eY=%NF_Vu$0y{ew?~y zur7P7%Z(G{&)CT$Xtb(}2c5B^0pzZGc+>Q`?e?zvt9ZMuNGnamQqzJi?>3o~F#&&0?rGk+LwZMbk0Vj_cB1iC9`9r5C%^iY>? zT2Yy9vJ1x+cQm$sJX@+ui#%Ogrl+ejkkxJZZ|dF z9&NlG-E`Zo>GnwD?cK)PxY^8KL&hU2blGj|-+#;KCl%VYG_b5NS;qAzmsM7aGJ@>lEG1&n~x;itiH zUy@ZIJNN73(HFWdLh1j$Au(XLv8=F^lt#MiLq3i(}Nw zgJYcqY!?DQZD;KvFX+b)S<`jp)={FQ&4vY9JT&Y;>-syN*UM-0bvI&bEY-an%FKxE z{)AR09n%KeP^CmgNZ_-(K|tjVcEqj>v;i~ogBm^hj-!;(KMK3azTOaBdG?LKj)ejC z4)yv?hEkLKfgMFGfi$DPgoz`hm_m`mVh$KPg$w?l9{5+kW!esynrC0Tu~6Yw{Y6yM zQphXQ^T839PbGHrg%NF&>0!T`E`wk8oC2B+nwEuKk z)X>4?iYH`~h^Lguh!o}Y)qrU7;}oLNH0=hYTo4fJy$e9{E<1&2457pMd_B70 zM`#PV*YF-bxfQUza(DScH=xv2LobQY*X(P}&|!-L`@FxI^$2S=fU!Hxt2CQesi2^L z0mtso*coYQdD<+YiV<+uxfe=*9<~MSt>w zx(&!>D}XSPN`}f_Q{Dnw72r_XS%#rBaY1j2(ig_sSq-wLLJ)QBkCjy`a)q)+CwtU@ za^sQG);!7u7E;P@u)RuUu?xMc(FtwRS>c2xvJQOwm^PiLkD$ZV;sj0Vl3%ckhiV{2 z#oHLZ<`XXuU%Rkj4K+BB&c0S1AD21-Sf@wSnrz|2J;?{`+7WzS_}kMQF6jXJD}#`7Bb8I?<;N zHJT6qh^RDeQNA0do%^3OI|3%uXn&-}y_5#PS;`EM*SIqe;^}f(%DmsZVcGTZju#*n zbJ*9}{M_;h5!;^#l!S!NrBi4yu#F^4M}dSi8#zBRQM+ru(2R1ADD7pe$$`eoo?Bkc0B|2W zC?%w>bAq!x@D&ZxL2EC=8-v)aYUDv|-wd=^r0JyGbXnhT6qUsqHi^9A0Oa9gCxRga z4hUxO*Qgi(S#zP8M?KW82Z=zYr`t&*T60Gq@Ju}?+Uo^@M~5y&YrH zuynTuAM+734FPBfgde8yhdq4sLa;Ch;LB?K=#2$ok{d`-j2U-II%ZZfam-W}$;XUF zY?$RR+uLh1!l3)YFyctxGX+vldJE7H3MeD1OP;zgGS{-3gOUIVD0BK>NE0bwH>(a6}_Cvvr=F@l9K1{tj%-4Jqb-lJ~jW z#V}UqsVE2=Q3bk`G09CMuxa$Z+iGBcKcH7KuIF7Fs7V++L$L1$vzQWo!GDuD$=XK_Z; z<>p3AKqH$H1S*cSF7IGgwLVOvb@9t@wXgl&rOSPcnd<}~G$;P^o7dknv5}@6T13L~ zzyq1oJ10>p{R*jwLa~9##2+4f{n_t7eE5H2bjUJd9%R%|k+I~$65{;X5p#@nVyd!0 zOj_1HW!rV*e@k9rSEK^rVgO{-b{(x&=!t2{PW=@&2WzVMqU~?2c4ddB>el~<1(?n0aqRAftg zHWE{c{nIV?jpPvhY6SmiPe!i8U%O2JAHl5nlVYi1=+GmmdxR`SG{UeQJfj zVBRw%tD-N2s``SXxl+;D@t|_2z2kvl5&;{GYNT*5vQ((mMelZK6TN|x!zL<|H)c(1 z+(=lwYl#VcY7XP`M&`vjlt~C_8(_6~*AEje`XboHG+B=%`fN&v>K3RvJU?rUiPt=9 zeJv#m$jbEgV!(Zg0h`wGMB%Cu#M8#BK*pBPc=J^&vWiTt%5A-b`<^8HVDPW7{$(OT z#e9LLQ0+$cA|uY<^SLbFpUxGGX6wb(021sZaynF~h(lgM3nLy6+?O1zvu9QiiJ(HT zuA2^IEb)&&gMM^el}i!L*@nSjUs$@b#@^HQNL-@yiW&WjW0;A{N-!D<6ZTfV>*&Xn zMFGGnE;r{dSm)Id{+v~KG#it45oTj5rd{bYVv72@Twn;nr2C25 z7^vMAQxeZm>qI>Lb%MYl9G;r+`&PWpE>PNEhq8;QlGmO;P&FkgFyE;QCa7D$^rz6G zP=1Tt`7Ij27Da?(i~f-fLllNkKZQ;n%xUdF=>aQ$m+)>C)*375BsxGt{%;p%9Q(Kl z+f$3c7kSubwcumbP|S6~Zq3B6sv*G{82Z)jSS;e}_H zId015t1JD%6}ppV)_v#W;$u2lsMi?rr5)lS-5`Z~*fucY9FGbed1@^4E~wGX*>{>5 z+eln|j+A`InpUhIR#QYxZLR=r&3E_SKDcD*ovHT0^^Zw%e7C~x)?I6aB+ zX7SJaiP8s$J@|8W4 z)JuW)-s)U5+FWmn-n)B8TU}HA^(#~8tN^|4i$v%foFACB%*%lg^&LHH60RYB1UiuT zAqMAl#Bf=@50f58Uw+QRw6B}K&v#2ssscXT}+`_=R+82vM;36U!g%RQ$|?x%viN1uJ`CA{K0 zNM4`z6YJy7(0qr&H6`z`!B}2#d0Zv)sEQemf$r>NnwnlUqi;ma8M+x!9)mrEYs&62bFVxZAm&*n$uq9eDV2Xm?nWWp zL%5B=zQi%<^@Y)3&nvB!i)DY;fq>3lPiuXchk)E(1GtAE1fS1jA*{txTa93xwQ+^W z-WB-5KioO)O;|`mw-c{xX(*zD@lHk21+8aZxcnSmXn^s#X(n#&0&zqBu)-n!?2KK4 z2epv0)58=EScWo_9gZF+BzM_pq;^tIPVPORcgmEIQ`F{2o)Fa=Bgt81k{TmO(iBMw zVf8LiK&HEW~uy=zZ?)P+ZY+4(c)0HtNFnl^=1ODJ^=f1(~hg}hQFICjJ*G{EIMp^iR z(?50Xy4(w#(C&uu$#6=<~N_tyjAfhRsuu%Mb1ZqPr zfD;3=1|S357F;G8$!XXuG{E4CCjSlku( z%Px($UZRVck?Pt`m7^BpLN2GTL6ILClkL^#d` z*1yR{Dw_C6W*jW>a&>4XV;iSDtT*Vv-1G%?^e0oQxPxn{3O=>VoB=P49BpZgW#-xe zn8ixt`F&QEo7x~xt&x?2!t(Nv3rn*L({d!Hk2T(lKmbDaJ%roH;c}4%{42{e8!$0P z-F&gLRxtvYW&&2%t}C0RxNez@MlCa9(@fVF57y)}{;nZLWadCX_#0{2(*sxY;}$-G zK^ut3LiAwZUPGV@!@-Q^W+B`;Bh1Zr)jCcrF{9X85`+cn)Q?w(A12 zT1#$_FJtkA=@wLhFL4_+0SogC6dn#cR~>GoHcmVM!ze2d~uZhur(Gs!D zi813h?Tp_ni+y(yf*7^$q=?HG9)vKzAm~`h728*yTi@5z-&t4Not$dqnwY`82VpcW7B!%cX;L9(T8ho8OmQ}A0Md8Bh`h~ zOR$w8DJENtLoeD*01&(rCVMGvwab<E3p-YhW`oeCB3~*j!Cq#>Jtr-IGYVg`G53V>@ZwoLt zQL}4_C!T`oY8^3z((2Lv=jxYvi}IT*=&EivQe$9yyoq?s4Gv4FEk{!2c=b#)-Zh># zliS9aL9N&41|6~ta#zIfB9)#qd*+Ha5-M}|z+O<+isH>oJJ2DICq>^T zbHK*v@!2p%HXeKjdNYPd(wB_%qbKw50>?ve##)j=Xil-vsHH@h)|k_5u#;5&Oj*uE zl0kkp0AOPL_)L@_6EBir?@b^Qd*iJuT=0?PL@ZIkWriC+@U`S)i^AJy_DR=(sMLql zE?4)@*(oF=A3H*A=z6Rkx6UOg=-%45Gj`zKdNL4efBMby40ZF>U!yDS@fmkS?fYB= zNHfPr^5lB{b;*CRv#J%HRe|+sPh*eCon?1W&=n_8?%ah~M}qso3sw}eXjTO(HLM^`jAeQ2EqGRGsR zA*3W|1bF~&K#;#T11&AB79yAASm29Q(15hm!B!qdB;gI&%ptv$4L`L>*^5ncPpx z=DcG_eu$I&b#~Lr_VuIZ&xr+IU`DmOHpquTsIZiF{DE3I(UJ`o zQa+kVc?gVbnQfe+V7ukR5tG`#jIKwSkHd~`+I+>aJV-NkF;bA@NF*5rpbo5Z_GSb zqRtcs`|o@J%m;AHON}p9ItW~zWU^@{*ZQS?GaV1j4qusyd|&cD8+gDx=X9?o8-Y($ zVNG|`f|@GOf_wyEOawitEBN6T&s8A%{nb^`23-gO5CkI_tpJd0znN$NbAB*VK+#Q*l@Kkt4yYD9hF3Wbb6Owz)#@l{}agVl$dnoys4MBRW6>$T% zwa`P&jP|1zM#iU_D(C1xT;TJfHY2Vs#TvO@ad>R9`?AEAU_({6Rj8t^f4_vLwf|mF zvcdQ+fH4G=6F$2lU>_sQM9_|40D;>+{*0hKwOu%iO_@Q^2T#*>IdKo>5ZI)wJ7_}R zg>&3UcMBMTGcHZP&eyneRX7CLfAu5>iM;rL!1JSV06=*nev0xGpz<{1s=v2{%JU00 zN~%1{8-^d4K~4puRBbE0Oa$-fy5RLrF`U-RcUI%lW9z&{oJYp}8s$#3$%xof28g!g za~OLOx2ZJ!$k6hSq6w3+2hs>I^5Uiac1db0X~~#mL^Ug!Spu=Qho3y6Kqn999{+H+ z-JcJx4S2sihQKNe9%0H(MluJED5Pj95!VK{eZ|_KnTdkltAZ{Y9_a{wDEXRA;aGhO zE3P1Fi6>eauejpQ$al-%;o)wkQMZAK-{t_*vRXT;-HM=SxWHJDj3&6pKy2GDVEs-- z!iP4CvT1`Kr*o<+5ZKBfCc$*L^ua68bLmg)IaQ!lxjG`t-4)R11m1Z01L&j*jTa|9UCdu1+(SV6@uqgS2RCeQN1TGCx8Ns9?95c$c=k7OxO+Pp zNJf!ML^cKi7jb=dut`vmP^A#(=C}k<=sE{GmdvS5TTgsMaYs9l@Mh%`pLnDK{6Y zJ!)l2NZI5;shB*pH;_UZF@;O+C@w%`3Hn7{XKQ(Lz!NqxEjXI3@N_@O-05{pZghpv z;gTC^e}AEYlKT4aH9>u)#W9(zu*z-}NM2*Dt1WK8I{OG~RaC1+j`yg%cGYhSK0Me_Z!M@Y)KVwYz3Cw8(Uy$Ls2?g zTAH8KLw&-`+k&!hYji-2%|jSC^fH`gF==vhm;4}c1`!g?Gn@pNGik)#_r~FiL~7?2 z0HemNTRvDLgOa_}L>lNJSeTUwQkurQrfIDMuJ~=xp2A8BOcLA$>J3iGeU}Iix51Sc zfIv>t$PElfBVIaj>5+uhdep{zs4ctq-MJr?qr^{XWifVG3Q^nW_H#5?MgS{AU+2Ud z&`&xz!F+!q@CiqsnkB3GX=<@<2D^B0+4av|R@`J^$IS)d?EZ?iB-5B90! zh!zon;5xO+7v&02P}jMq{6~DIdPKI zgn3i@`%>b=J3+*Gsc*eUP({2zoa>eJk#4RVrT3!#sUj3;nt#e)oQ7i;7?`o9kphGA zye|=SGLO1s?-F=@A@10={c53hckkl>WT-2|BawB9L9UEYpDnSFh7k6#npTwZ{4*ag7@%C)f?S`h?rOPQ%bVkZr2EoOzZ#3R^YP#)( zABV6o!NtLo&en|!j6;&yJPp0KjC`m`<$g&j_%BfI_{tfVpy^h0VKpvSa$)5pf2p#) zG+*F9Y3X+dR`?aA-n#^oENJ1Gvp_@|qr#`5wzb^fP6`H>F#FH?VFlvlve249-FF;& z+{~iHt%mrtpJSeH09p)*#+Rg zyy){y2mf`2l1WXU+7`9pHw-M3PMwZjnnR7Svxb|_x^yab%&ZW zbSCGSzKoRIyV=eokHyO=l_swRuYiyv5P+>|8hD6eAM<_x4^Vv385r@z-iyKB8^Ye( zU9xMv6K7pIK~7=sEplD>32TOg70af~BbMK`XEISRYCF3TzPFm}OnNnID_fJltU)k{ z-So3dlHamcNbC&%@QlXTP^Hr|9KW(#OZYWuH(^Z#*ZHFeoQGCB9#E2>vDSgoo{&xg z7Y;(YRP+hST*yxsxBX=x(wL8{AZP38p&f%_6hgO|Y@atJt`E@XAdz<-` zd_=|}gyH2F?{ZU1BL!sq#(|TP*7p~_`|yslY{g(jW6_Jid%>21_p>t?!98Xd*le&o zZdye34;62I4jUdPBzBUEo|lt5p>>#^nhJU+`jFlfM$bq7RpLjmE=Y(Wz=FdG5$!i_ zJ=IXr0sl7EY@Mx^Y-6(dV0Zg*vw`6b0Llud6-NZqTi!`m<`4*+|~Ze^ZKXvMc;j) z19oLu7ogLP1Z*UkI6}IWq(pU1>BRzZ^g{Y)2j>Upnlc>=Z*fu7CvuZQc5a?Ye5&{< z$?I%z&(Zn`QD_;m>}{rCS-mNAwnXjSSJ_i|KS0Q_a9GD5Im~|6u(1~+8oVsN=j9vf~wjE@|N8&gbt|@NK+n$I8I6P z5u}*&j*P|Wh^4zR5o@hhir~&Q;iY%~Aovm%gh&-K3FFB`s}3m$3Gr(u4XBgXKKjo; ze=hk4HkuR9l^+*RNdI_@K%C<5aYwh^cvztKzW#HONHBB~m~o44%hH<4sw*bP5fml* zO|y;0?RyNUaqJQ9@QoqQt4UCXv@S}1!N&25t8jukKZ3>2y?W}*yV`G^TwKqX6AU4M z6)r)AFv5Al5M?5PpRt!NeRfj&72>o8^l#$-PyIWBT2oRF{dDb> zo2NT=of>h6X4=nhf_df9COjKoj2c1zOnBqsn_vIxv^IVFMU8*?fY$&0Wzh$h-#+)j zXXk+dGafBc)Ub`on%9()HERr^t5tH6?VU>>fN5>60;!&dbRu*j)q?Wv&de21>XHvw z3mz6FY9DW@VZ^5Osp5l61$D|CpeoN)+dI#{!-&u5-#DxP>d$|zL*5a>LTGs`ZZ%6L z=V#UZ!i=McOVmm7G;BnzREW%iC$iIHD6)R!*t!S6tC+aN`dE!U>xqqxMbwj8=coq` zh!3K&Ii9Gx#sS+AamcG+OegP8DzFBm3G`P>=H?l3yHCLj^4tcVh7DzEiNrjH`=zKr zX(>gNNM8lY^XA5Y^7(%~^LYswN50}qs^t^RGqGeP=}1%%mBe%ZlQJSG2xp8N@2gNv{o1*`b(NHRYf3z(u&J3tmck|&ju4uNnU1?j})Kc z)2_&Z;xr~IEG$3F40ppi-{(*(G;qFLhY0I-H4=UB3;!th2tx8PTXX~&&o+2+&<%~8 zUOyR}5$-QCNabIv*EoO2Ff&N=4;?f$`Aad(f*Qw_l3xPc8 zI$_UWuB<2e4pSoyx{nSU4R#QmI?^Hyx=JPnKJ4DKO}zpcry9i@#1cvc3@uhFU&3)fxAh&*&Oto4j%WRl)xh8l^%#@Mo}5goE;C-)@Exv^=!Vle7be#&QZz; zZyr8D>BsBef@fEcLJU=LGFCRC*+e%}8l%S#Mh~XCyr2dm_8Yq4e5xBL=`7n&l%9;q zo^z;4mKV~IU2z;^Pt?!NyFcrlemwKc!cu)bx8KvP@@KZ~xg9@`t4#7H+q%7Ce*tx9 z6Pt2cnPV4+<%~7iV~>1N(Vo!L-j`MTJHMEGaJc-;(IKeV^#>L3EL-(H%l~AbB~Mh7 zi*k0Y3pCHt6`!SdZDR(mZ0$m}P{n4=5vr0+X^erMmX z(_jW+AHjbFpsY1?)1cV8X8G>iKv@PZF&Sh{)8r|^xh%!klclcO9)QzDhSy`p|n>tAfkn+^7q^O)Ooc|gH; zwaeGdkv17u5*?=H5-hd7(@F3Il=T(o!s=VbZYZnp>*Y|H5#t^xyz=qF1EnDRDsz{v zer#BQtPR4J5>CW(%(8j15w+8w;MLJQ=1ef`cPSEA?MYY4&8BGn* zbVi@@obt&3c|)6g;C3y-?m0Gi@%?PVE7jEZw51X zcbo+Pg3?fs=G0G0(Qc@o|`};X3>a$gZ{qLXxVqqd1}-*Fn6;#P3kO|+6?Y^uWbXM zlt0Z~=LRQNcD&b_2*CV3osDut7thLNOfDQFd`rKdyl)?6fr4CITNV=t5X|o!8Fl2l z=8peYZtSTORe}Ib*g@37eFZ&5@o~X{Sh>ZsDjQF&X^M2w?5z>l4nRfGI$e^@ha5bD zM4ZAR#frUtO^dbjJW0if+`?kN_lo5>o+n!XHuSn|0O2Eg@lxs1Gby*>3_SGc|1b#? zV~1Nq#Bc&-kVK0J%#Z1sF_1%Tq9m|+1{Ye`ldL$eZuFoVbExs4dvhuSENEQ^W(y|s z2xUX}a2r?Qc6kZKeL$}}MZd#tufe0^V>n{7Tl&wuXNrBZddY#{Vb9;T^d_z_QiQPX z$?4xb34NdqZ7Ic%mSS-_oNUcW?g1J}PWFL_rjz3R4^r`mIt1o5I?)+qsRpfZl*_L; zWt%IhuTA1woV;#1!m%=q?wPdaj3npJaF-FDxdTr!32BN=D*rsJ+^rwI=rO^QWJ}|3 zD3`j5X1am-@!W7v%X7;J@cIXa1-`33|CTTM`h!7^a!Nz@SXNr*>}tcQDZUN7pudLa z=mI>OlH1I$>GcNL2Y-bdHJ%A%+2mT^X#w1zxk~P z_Fhayg^jaNIhNWdePPi&dEIiBXSGFC_qmh^rESqoobKkJC6mpPB;!`wsy&lY{FX78 zY#ex)Z0x>&aB8$4e0XY<1ivK0C%SZ`nXdD(8>DkzvX^BJ(|Ivj!*IWmkZk-AKE;8q zgLH#zx|v>tZwv70OLc0aGrAzu0DL3H0mk6d51*Zgl0B2C1Mel1c!UImUif`m{X3@t zzShI120jxp$;QDAvsu?kr*Vg-YxW4l@fhF{!r8&d+|{kw)EREt?D!IAGcnnCsyt_y zE<@mu&@`>;fK;QEgGkW45t)l$xN`NyC)ssv^BIvYl*Fs1?Ny7Ed1FgQ9*(~3?vma? z9^FrqXD0=NPc#2WA0-Waf=y(_ng@d(4m6Q^73(d8dR9HW-e@~ENH&&A=N@z-ct@nB zQPvy%%iqqFHg=hIhXfppV{J!*iG$flGRV<-6vQ0 zD)TRL;uLorNI#r+0mu%GoHt;;q@`Nyd3LIp5}h6g!`o>epq}V`A#t;RP1up*w)s-p zNpbAUD{D)|f_mqGR;C6ad%Sk;rG(bBhXL2gG#+O_Ut0H4|xZfui$oK8bveoouggK(jGi0=-zfXzNJ z7ys~?XMZIAlx^l2iTYBog?6gd0=`*Z*4=23uvD38;206RNuC~d?|$eIv@`cHF*NsH4|5aKn^4KkuLU!75d!QOpdd@a?#elHh&l{%g5L)ZzODqG z)xp=?bbu@bl36F{YSg9shP&x|!$qR$O#e~uOTYBOBZ-Q@50RXCBNLw$TUVfjn!uH2itLe=jwS`0B z0!=SR_uWsl-3|_N6jNKeRfjgV* z-(miVPD5das&|X+lxy#mXD1exhoR-?zL2WULa*dz*w4}d4b!dk>BIg7QpWYma$O}! z>yv;^+72PLFrOP+HP=eduX)Y!+KEzJ5={vmd-SY6OSP!zJP+3T(S@swmLwfB8h z8EckX*}qAyXEx811Tp6}KTpi%+B?6>{9km&IEYc~9p~}fNj`2JHxPAsmc&t#`h7Q* z@0pLhE2NvGy*y;#0~-V`sruuR(uW~+_m>XIqlUir6+ee7Z^0)`56u9N}GW+i{_vtZ| zAW&ukw!^N>zpCt}Ys9tM&W>P<;QI7gIs}2(Ug^o8lZS_2gX(Y!`d;HDS5U|bwpJJ$#M zf^8GJBx2POeV|o!Y&d|d<`oaSpOhiM)968w^Z`K#Q;C~@#-(_RymUg0&2=M@S8aJK zB`MDI{ZeU+Aa^dS@8i75V&8Y5W6-CtUeUkBG1bK=e<+HY+GkWXxoN0$-&#}~RNVWf zkj$7y+E3|zq!}iGN+Zz8S>iE*Wge*g&`iu8-gE>*8i_?9(3t>fD2QiIrggzuK?ifFENYWCHDv^2kW zc6%yI(JArW28GnyNUqx~}~qZB9K)$14~^c_oa z;v6Kjmm1XLn$fi3rgN4NqEVMj;0#y9@hlEIEG)gbR{RwY*Jfcl!Q7?OFA<#1_k`d# zK1C0ESvujzbix}(dO`R&;y+Ac@NLS~p^WQV)PpMiQ38d@q_px=bwTc=C`>8c!t}}L zhtL|WDTUH2cQ}8D$v_~v=)PwTB`DGi$0+(*)|PmZXgZpM7JlsJ*9mu<6`7tTpsGhOJ-wain~oUO@^UPdY$5X)*6>MS+a-A1ht! zko$HAeBZM0TYku~T;*Ar_-+Ha0E^msw3tca&_#B2sCA9UaMyVoJl3CQOpI4BC0TYG zd)vZu$C_`s$+J2klbuV~g}!HpjlzMJ4B5RJDL{-Iz7``modT3vA2kYNYyg~X0d938 zE+J(UAsoN<PY&ZZ zIT{d#Vit*X3_XqDiy`Whvt;)=6Hxq*SgIZpU39D{iw{{X+9Ah37)Y{DSSq6k;KV}Hv;S!sCpRu~~idK%K3k;Gav z(VSHDZU!dlII9662ub#K0ITF7s)u*I0w0v-6)f3nl|$wYEmXgPCbdrRgkFc*lv>iU({Ptj2Py2^i$F-XzI%j;?b6-ro z@*Hs!4^~lZo=~n&)Ex-EQdpFm{aV6A%jzAU=DZCmd+_WY6gojD<1daNo2-ndzWnDrl1GOH&n5q8IAsEQp8rCx zJG6dw*&3M^6&&NhQS-QF;OO>($EqEtXM4@xFv5Gw+HfksJJrDJz^&4Nd)i;$^`Vpf zw(QmY#>OoX$-GMEPgQ>|=E8I0px=XbwgW(jA`WC{TuHI>B2TqSN#NV<*laXk5F^C{ z!8{g#rC8kGr;J{7u?6*L1$gSkmcBUIIBfyT)lG}FvF_4rv}w~1tXJrX zEnN$BIfe(w;V!m>gK^K%;hCO4)q20YOJb~flHrmqo`t;=&r-&-qUK~!dYUlr(vcWc zJ>uS^m`czstFP8#Sv}a5HgB+97@BG3Q3}9(N=GX-k;;MPp#GUHo@BKkN4+D&atfFE z`96%O7o-QdT0a*N2#`C`n#Iou4wDIz$5+dqKbapbVC(Zl-!H|y9s>6s^AuZ;vARiZ zpMu)Fdg|ySi~30ifu$ET91_d33iwL|ywfvC!lorxy{Sw$SDPpHob8z`4d;8m@9HPZ z=lk?+=0EU9;G*ka*V3RbRnb6=dM4bjh2yMw_3TuqVOmU3wOJ-Y8GeQOF|aNEOYMoD zjJ{gPcaARZntWGW-+O4(-?McfVD8XC7s6-igy)B1cncHem-Iwd-UDsprgK-)A&q;= zO)T;catTWZ((1Lf#4b-`=iRP7p##Fk4!|M8DFT;R-ckKZdSQU#wBS=A^Y8SemTW8q zeL`^J#%EnKar2WI6#cDGWSyV@Il@DPZG`56iP*a>2&}#X1VR&#Lr&vmg8g|DktreQ zsdG`H^hL>!klWjwkvl=rj*>G}PRS9yt-Uj#B^558ybvGMc6OE3aS#^5Dh@p}$l z3KhSTWLdB8uFxT_l9=0Nf2qSuGXlXq>w*96AXMQGJ-e*&tmfmmp>V^YPFbjg871gx zE!(kad>Fl%&y$RYl$%;4+_Bu^SrrjuVKENoY#Idbs*}7gwvu>a1Qj$O@GWxjLJT5~ zA&~4X8-nB#(|A>UYeA5*rXkcKbRzVyVQUcU+1qi%8H5uAIYJ&P9|Glt_|4Hfl^`7e zoZ(Y2Qw}MJKL=nSCYhjp^0l7~S2W?%4^QS~u~745Y>5HP61D&LP~FslFsL4&-nJFf z(*ZA@2n2@=!|Q}K0GC|F%Lc+U!kjf5Jj4br;RtRBo(SAC{GTn}k{*cO2pT>agx}4e z9e-G;Z7C_5(#=DHaNKu4!alhd>9xXg1))ztsPpUsf^S2C79ks-Ttl1Rt`G?8DuVLG zYdz`&LVATZVWrc<+gRS>0fcFS-arNyDn~3%Gl*6!zYIhh4my4n3y3`=?%9mWg$1?% zk-GubrtE5237LoY^>tuG6+$fn*?`!JK(N2E|0l`yTDZs%*Z|G!uVskI7z-i=F|&;g zOLpS5hy9X;n5+0bp-mN>JZS~A#@iMIDMD+Cts9qwEXilPPgUnrv0hIq#!<+?{|fdq&V}WO4t(MYcoOfdW>fVBz-`QXm3DRI zCeVT2fa;r>wBMfXMiyJvoipM>PtXD!6ubx8Fp{K)CM-uRO|6Ml$D zt6F(&__VW4$(FuN$deYRgneotrEwAXQeW?hc5TUyipbMeDXCv=f*Ua%F9uq>)yPb_% z3kDJVcNqkjIF&v3ScNobc+6 z5Zx3`7F2Jx@Y8dmJNW{VM-Y(LuH3*pE+C(_Bsl_t%cEc84;HoaoeNLsmZ2!QuqPg< z<8Ampy-x3;X{z>sSs&4_I8G_dH@lUREOfYkX))-rB(U6u?q_68kf*szYouJr{EXgL zMv3jN@+cL!2-oLrSVL7k|d|S;y}MI!ZAkT6u}3- zqSxF5t)#*NK~Irm(A>S`Zthjw&c~Bjw8CS%B)+b#1giPr5wSWuuLO5{8pqpW>3fGh zI&XJ%1lsM>s%1C-bnn2&_$qE#-kH{uI9ySRp2S%S33D(nnT>deee-?faiENXzInQ$ znXJdIq53%Qn+cwYry|CUppT{-&%HBxO2U80EIjcs?q1j=*wTCuO~?_|u4wqAorS|A&JaPG8tQqRT;lOvo!v9^nx`CBIhXzw>4j6Tq6@AvpzTsThI z_MHS6lgtZr>*In7oG~cHCuk1j;2@{5b7|e?rxU)u@if4AbT2Z%ka?Rf^c#C{aVf2X z&N}uhBe7=z#xWCVPsK$oO8}x z^Cy0@b?6bc9LZcDL*D_ok780o$i(-*LML{l=pb;-ktdOjY*MO`H)=o;{`+*Lp48A? z)i2q`@J)~!>zEo72q%dx&{6n+uA5jnSK|2F>YVg`GhDV1#7P|MZ8zf{HiWes%9dVt zBmF1mq=r7@0L(9Fj}?$2v}C7WjYxLyhLM@b)Li_`vk!S@iU|P|(NSO#^!kQk!#}k+ z?scUtKexI$P?NSpuiICz&_s4Z;}YrBS3gZ!XVlG-K1cN{B=a%tiJ}FT?0oD^6fCqS z@C3PMo>lvR9?Dv%q9pdS()$*ndrp+44`C&8oyplI>(@3C44>qQ2%3TV&Fd0In(7(r zH+L_~-XWdPo*=IGDO^JPx-0Id^#mq=j$6u5?1gREE&%P~I$6j}Xh6!t= z6pifklf@Y_&(r>EE9YK^vCd?8n0cq6>W4`O9z_Qm-;|g@Xz2!oJ~vD|-+eJWWuG1s zY|MwOTsFG;fSoQf!kx3CuOS5$b3Wsaj%Adj=&(o~W#h=$d?1O0e0#592~OQ}rataYX$Yiuz1>^hW&Rsop1XdoXqVaOTRSOuqKUoWhdfFAi0gMO)(=*>mb*Nw zYwjEU!NwcjV-A+9p{XlRv`9^>I+I^u>bRsS{Z~hBKa?i8qcqsv5|!iS|{CkK+3Ps}TCyK%5;~ zGO(KyCWgYLP)jg2O@|H-;T>IzjJ8rv%swM^j0!gPKYH_}*I)R_7r|&x4N4hsu=|Z` zTARDY!n9}p)67S--vLNcPrqBR)9+u1zxBa~e^gGt8|s@yoa%sgxoV=s+OVgwChTSA zhjhRJ`>e>DT!#10e==)OB(v?p9z3b$jWErbn>TkRhJ%esdMVpI@y4OUn5%Fyf!wsu z3=@ACu*C@{p}O-pT|d`((cP76G*uAq#M$xitM~=<-k1!64$lq!>Td>X3YPjmr$;Lf0tJ-NFFBmiiupE1vYof zQS?lz?J@85XC`XX-98>h`0__DeNoyIFXa{>L=$E-)s~jM!-Ev9ESdO9ae@ffOf{O_ zsxTy4wxS*HQ?qN|XDo~F6A6^=!v=N7Bp(to`B2dsO+LRrP=XC!$Nv^?_u6)tzDlD4*k8>VB!+5y0Mq&H{j2GMt*;A!5i@ zqLKX3(s;4&J5dt=$p{YYih!Tcb-o}0pI!)({*Cr*R7=So zbmjV87Svt2>+-mX=$k1n`%6sf(tMx5KE}siL~@p+;lg%a0mbbT))kb^UjOQCLd1dmZJ=`F@*A z}r0a-4m?O8G-jSVQx}==0LSWqXTE4`{eYw@$IOXXP95nhsaSpi2^QLmB!SM%Xkw1 z{B`x%&g;Q#PD9U!9(ZNa4Ou-tT2g6ohkqP(?ZKed%wsHq>xL$$RK&Z8u)yX^kIv7&K@?;Bt`3$X-=! z^0=)01dnQvA3t=gnNM0cavL&%mcskAWAgEDwHtYD!Sz!-Nl{qvO?B(#slc?EZ4&%@ zIQi|16L%q}y(3?`uFfX>c)slH?8kmY(8Srjsp^6d($~L4`US@eF&H5wYH#VwsKJ9D zrNgK40Kedbb})jVZoX{)e%?x61tnbuI5~D)r=tCOUkrgya*^CG>nRPZ~+VmF+z#bT$@b1sFFY&?wo zK<(&^mPuERO{|G`neWqi&XvDo*VeIXLve52*WxQzs|fL<*9*>sEIjDRDorvm&A@7Eb^6WzsZ|-EI2=f&iC_Q zh+nw%qWGQ}|Ab)IepX#vQf_9O=b1#hT94F!R@50k___R8>dluw3rV&h?fji~4$<{6 zV&IP+Mi_!iGau5hTi|*iOv4@YvrnL{v#HN3l`!dX6cCS++i9TW-ch^ z-1=~ch{@lBoG-*mIeR=dD#sV2axJ?v&RUc(>KMVVbY1Kgon%hs8_d`EESbRj>xy#K zPgL(w-Ugvg`Mab;$0CpUfOgXtonM`c4jK_1d%*}nIT{hsYI|(L+^5}9ia;ghCgh8M zKoMegWB~g^UKjaHrt8cg=@@?O_u1h<$?E%pZA7<004T#eP@dseS~eN}11nBt5m(nD zsv0daf;f31Tc{l;M)>zidr$zo@S`DSB8ieLZU_88?HnZ^1#FE#x_$_8@_J;-h_zG3 z?V=r53sH(-e@afBP|gh<`kj`mrJl}F zcyl_B;mt|BYk9!4;-9wdTZ^800-cu1hkvKth17LTDfUM9nma^W>iCgFIJP|>C1R}T zcH{}!&DY8vF=Hr3&n1cl>5o_|F9>}YVIyh{sL99N*?}@Hy+&6)H3yBj^_BeZX%=&C zgEUVf+Mz%8JCMIRQJ!HpaR9x=o9sEUhGywRHz^h?J>T*4m;~i?=n8GdyIE#ew}3v# z`&lW3K(o$XDC!{CmCDMVzJb2o@6z?^E9nm7>n48-h2cs6$nO+`1-DgRsBpOOE{+$n zA_RK2!AQJoR}BWbtM*L{MpL63DPsESHy*44vnyzu{LtnUmJP%$M($8)YEOoeUL!l$0I&@MEyErF-Fb%8jbp4?wk1RV)2DqUj+_ z|C9wy`kNee?4Od^H9_`9X$Z_)^rVm9*P3P*whfl{Hlb}`=a{5v8(gUlhj!~!|KaTI zafF)GIUI>kFAM*gJ!z9&Oizgwi|KhHFVC!bo@8Wa$HHQ>`ClyGw-R+VX0+Yf52~*c zb9$2lyRdbYfn-BXe&jL&Han{JTTpuTTTmUD%WfheJo8M2YSu3sznlEpjw@Ciq0;NW z;zvm;o!d1#Mq&?Y95|7MNsdNj?rfwhQ-A>GXQ2%Jn?1OClnX{sd4C?rVP2)Pk*wSS znm{PdN3$!f>f=c&7EjeD2n(BW*{N+}RwReUrCm8%tTT>c$7ynxy$es$+#95N*@f(` zk{(n<<2D_;s_?HhH4#49yrp4Kv_9mde&?T9C^`w?`rF25f19Y17L`hp24|D;tVMey zt2WCXlkAJG&l$uM?9%-mhu#djWf}N{TSR*+x)gLl0TiY*yQSf4JC34>Lg{Ow$kQQz zC0B2|8yS<#AL(YBh_5eSUU<2jKz==OsMZXu4%s|(6H%>&yMcy81!6gS+lwf9W{Uk1 z*E73f))ltVYY5$uPSmK~(5)%S;7J_DyELnU02g@Bq9AIw=A_K1x?FWbGblb0Q z|L?SmSzDcA_GBFN<)GcVf6^=yL?c{uXK+N$yX8ryV}mCZG_MyC zO7;*WYT53tOEdLGS|1W9a+u}4OozGJ{tw7hxYWCkuqVyg##hzDEH9qKbHj^PH@>QU zvVu5u!}V8i(NDOB)czMp|0jJ$zGV8atG(NpU!J>fZCHVDlmqbQpDOSoL)b#tK=}0= zFWo7@8zQhQ%*HSTf#855BGVxnZix)MxbL4>8>SK^2XKLZMdCFEp%meLksDqb<{GZx zVYioyp5UM+D%dzbdc2Fnd_>z##rzNL@oC=^+!=Uyq}dsGYb2p;-PAojvgby_PWC=z zae^Zl4GcD&gU=iFs}X@Bc+KrE$jM%h^9DK1M{lT)MxGjNUgw9jjfNu$@3*B&KZ=D~W7Z4GPtf{!%AqYqOD$@!XsDss+c zqUmSQa2Y^J0%hYL+y3m{v|AvCzppqNLU%=|$!RV${cm**_TDRM>1`*OAJK!XLF%bC zMJEC+x`mAj{vnUGsCFGirSxk=nfBm0)Ty&M^0x^h0xw|G5DL36Z>Ny<%(H(~P1_0e zjM@uA?Is3Ehh14C30CoP&dfV@sQdPK^fe{JJ+h{*8U= z^NK|rWgDrHlw|gBfv z-2A2gkMzxg`ny9h`hM1KVKPPJ_>G|WBrZMa6@ zwH*Ib!v352Io+Vw4320yIu^`WX&X?R@%$Q^u`N$_5o{um>@Bg*-m`y8><_bu%y;RP zJ)i%=6Sw8OS6^40z#)F~gvY)yf$94ZlqATt?mdgq*+JUU03I<8kj9-`Om#j5p-maSYXDiOnTK+PJf1{dfp@fhwmiskkk-F;Xl>^`jA&Fb8* z##aHLN4t(xl6W1*Zch}0Qd7E`yipSl%4}RJI6Kmd>oPVk6}(&_{T?mD;2Z+d3QBBD zD6At6bZ6_RUEtt3g7IbHNqnJ^CSX`K($@ zan#C=pXsFd75Cs+Vvbq%3q7QRBsTI`)^OK5L_Aoc7{z1AF;Y{T<*nwt9C?(!P@`%;8D1jv#l=Oy6y zgU_~2JSFk=&rmHsyyCghIDVDllH8Hauxv>`0<;4*+xmg3b*QSZYhNrS@pK+n53lb9 z%j`Ind9BlCA$cv+W{?+$H=Ugccx(OxTHN1QQ;OVQ8DDNoN!CgO?^z5?uW>DHD66aX zaq&)^(4y0VcLEYUGPwUfv>&IsuPEoSO}da{-DMMg-3b9=c+fQIMrh~!va--fo@Cao-q2!g^1m!? zDJ$c-WO(P|yGtFewB)A!9!N)*B_$%M9Z9d#$1I5?46#okW^=vkRDByI*>~&v(!whs zhhw=!SQ)z}0?)P&c-;!#i7wCcQ9OI(^(%O%y1c_lU0y1#VO{74-mrpqrpw!Z6mJQ6 z+hjc8NFTYPKfDOa65Voi6V;e#Qg-Q z@_hP-)K#9bJ?;{3^_fe*g7q6%98+HAP2jOoXY8h*cEz|XA*v5;j^;_+cin{+N$&q@ zX-8QJ+}*vm&4LK5pLHo{&w^De`nF?L6E$PUhx>7&p(44}9o? z{t?&5gN>&G_vb#W!f)jW!|2Q2Wjiv_01Bucr=So*%vUFlB5mxcR)s^ToMTL!_(4tL z(8<|;A-^HkH0d2(tbJO3It^4me*CQOVC#I*0Xx2!ia z&6o#tcPsKu)B`kk-ZkO46O8He=3)=x?laGN5@Ig`8i?<(rwy-0`iD}IO3$%()XUGr z2Z1^H*Ti8-arp*ZVzeoE$%OfY?qkJ@v_{45DCCNtH~$(WD+Qxm9E|c0Mt3ze*&25> zRCo}GeVX|p-LJ6loG6eax*+Ktc7)Q!cLvJ5xx67&nI~A;^spACqjk*B=s{MNk(OH) zkYvKfRm&o*adZS-3q*sG{G1BRvTHZ2KdY$=_rLGF?&FV(tBc1`u4=oi1I4~j1uhYG zl*GYj;+}>4IDup7NLdL39ZJ`QE4aV29{1*zT#_f~u+PuGmVrA&p|&W!B+IN72T2Za zqi7--#!2KnyNtU?na}7lR>I}oS8+wz3p-Jiq$H?Zvx>vj0c^T^?Ok-%SaC^{t|sDU z)SVO7q>lg#_GJz!ATpa9!pj z^MGo)Hlts20$B1PbVrQrwsMH)G5PcHnYW6q0t0 zd6yn%C91~hZmK;>&^G`~*u^j#Bb@#iW^Hn3AJAOlja9 zyeA{ahofkc&dd3!^7pRiVYyTUB@fZ?Ye?%0{#t-XKGQSNd^ME!!nkyT->Uh zUo%#CKys#Vf^9+37u8*Y%QQPo7TomP+={6#cbIHrs*M?R5)Au-BbGFeLzMK$O3`%6v(0D`SX$XLRm8w#MqkAf+uKnu)G(l z$k7^87@@W$>{!0;Q#3BF@f4(^au+lM3XgqO5Ifcm2?J?O>q~1%ASTSS@t6_@Bw1T` zRL!YEV17VXt%XHn98w9A3st?@pBfZZy?Y40PQja+RCqG`_^|0(LuyyGS?8-uexnt? z@asxVzyD__fvS~4UcLP~m!ZCS^RBo-aa5G96e<^`5X?{MnwIcr_Nj6iE^nUo(Ljjo z)3+hzoLpm#EgBAk2uoMW%Cg7Dq4}C}RH1IOrrV5;MP$Ec;GGdwj2Fm%5v?dw<)nhL zS4thsK&eURq>kh|g4DC4k|8tb7Qi1!8^LcRZli+hv*ZMRg@$(&D^;-syPjkv4(Uo1 zEEGY*EgGrJT{`+w9BK%yxQA<1E~jG$bu74+f(}T*R;?6VRK~R<6IuD^;_BSws7%4` z__}VhSKi6Riy}qK6t|^#fwHZobv2x?J?lGcI$fZDFg1{d6hXT zg!X)@g*<5_!z`p3K#)^F^c{9rn=voYQ>+k81?V<8oXV5Lb#JO(dcg>uhT}u>K6rt7 zo}Old<61}cp@BLKYHGDFf}tVw%w&(n*#mbvR#HiwLxke!y;(8^gg-ami+C#8!~-NY8`AZNB{(t!cnmi61F zqe-xhtV!0k59n3pa~0f#^3YV#xzke~n%5%fohv3+#5W{AxN7qH3&F9G)jv!_fPPcJ zT2BI@*>QnFHUr!zp;#*K(JajtuSBFeaiT~vxIb;)AOL~+1%2velS*ih{50t93w@o6mP0=SNg+vLi41#*DvZ@M1=y4Ux)#oa9 z4PDH-6yFA7)uV`deat$ekJ+-k=Yd%BS7}^9jdew+vHq{pxZ?`Mr~*7Aqr<;56*C-k zwivEhY@;ZGYjk%gQU}q^6<0_mnWXz!4uwa*zs8=T%O3k~)_ zP<9Fb&@cz{e<4cKZRg($$*W)cYR<9N>Dn{`dq>V9E+AxQhm(Fq6E2ExBpW8S&d-)8 zZ62)e1ymh#C4{H>Y&M-yTzg658F zL0sqpqeIs7G5dDn576rxWK)WVDaD?O&L))dbX(p1&o`?vnUwVtS-apxcEg8I|1lrY zLrQ^c$}3&)v?%7&bmcu6i1JXD4Muwk0mS?cUaDbMj>adIp3SnNy~Z$4b8@jWRxS+1 zeZ^3_kE>{;@=dJO%_wwNm_jRakDjkpH^gCa-y3flD6T(jHpS? z!VD@Jy%vzni?na6mU67=bW=#M5I#OgW}en%NSHgc-{T1s>*4^T=HJ?RzQptF>Vv3- z^lABe5ZI#l^qIme3Do%ktrrrbQn!qhB!+|hS=>9n#QLP*P~;Zg;JW^xiz?IimOwz0 zkJb+A-`Bb<95azne3JV9b^=$ZE%@mD=P!PxxVCskJ4&Po_g>H&5C<}XSz{FY9>n6l zN5)8C?Et0zQ3yzbaw_B;OBoHjv0h+}W@)9I(NQF%LvTj|5dt4j7kZJ1&nGN?OvaOh z4z8)!cN@x)_gW3B?j9X>Nh7HPq;a9*4rdwX#^rV0D45trL2$3rp(cJYZqJ9xGvYiC z^;GHV5uc(SXm%6a5HBzh?wIe=MPcLTGlq?Bf?VlAW;!H>)>HULy7&^*_xI50LuBLL zK6&~=wkHihX|k3N4;**X%RryDPkAXF)q77P@e36~9LEqG7eEfW2F`?_n!Ds1kvdt%NQLBUKV>%UT`}`R`@zR+ zLQnf)e-~+y#oB4%90N20+KRp`MbVOeboiGXG5o2lr-@J6YysLMI3PG9kZyZ>uXDoH<(Cv>5ZIF(kOJ=qSNYjRmh4X1@?>mguW=XMD znl|DycMLcpCwu>Zhk!L+Bsu7kgtD<5C-aHkKaBSNfdiH`u^g>M@Ep-R>jtM<+YJtX z4&6*ZIgmrp@&4<&<>N-8*Bno>;gql5O6o*JcLX?_Z)We1%fV0pEg|qJ4mpZ90|*?l z6E9K(q5+XxjaY_I%Kn;%c!cg%SRX6w9jSFo9^yr=4!}J?B)H`>NA6cMjzayO=RzAK znKhY$tb;?i{B%OB^bMo8;*CeUNoJI!Aw&8!w10=f%IUJbi|7tf-S6IAak$3@AZ6@z6LAe;8DWVHLQLajioG9I1Rual zFG3GOr{dREyfh&+Du`8hsYED4C}n>wU<2nOW+7xEq_MIvb9W+iD6)JLoB!((YuMXL z#MoV1gYkv_E`BL~D`Nja=Hexby-!z=6Yvs`5Q7kn5TOW+D=AKT-O|pz6REmw48Au`XoyjR21m!0;o?#oN!YAf@;`Q5X zLQ>=|YZV)U)`WKG_0%}0V<*nmMx$G$R^lbrPIy9n0*zZXG+Szaqda|S z$G#S-YOfqkRV_-#;2E(~UJ^19k$IbL2}((0M~j3%#?d145B^or=ihKBfnsoFXGya> z;%L#nm|Hp^J@~?7Z7J?u(Avt9xdaJZ{ydSz`&XrIUA7> z=5zWe1!-E+ONBS|$7A_QgL9#D zM`v%BQ_`VQa`aaysa7dDzMPUig_1XD`K7{}_@a_#Rte2xlkDVjislsg>Mrfns(N$h z6`|W2F?6q&cCK2$(6vQ)Mu}foleT=UD;BEUu!ytn(VWB8R~eFE-nU=5@lH3w%tF|X zc-uSf=(()5q$u2&x#zu_d#=D3aDJH0lgtHIi!^Gp8?cPe#zB~U?eJK|I7BYHQ<4~I z&g<%zEb`#wl#Gn4af*A6?Yd?s{0yldR3|J)vAI_=N8s7#QB}5PFR)KCAAh zdJ&*NKUPzf4W&Wd#Gw4^Kqb1LkzY(YJ)sQ)+0csO`5t|835p;XDXhC)<_=w4d|G&J z?Olb}UM^3PxnrXqoS=p}vR9wNhGfa(1M^qd!`9$`;a;)Tlg(1i+#g32TC^TVNs2t=G~{di^n`@%5Qzk({#EbUobjOlB5>z}i4@yz$-xf%!h& zaD;;OY(dan`+p_(qLx5*xK`JCq+9D8*Z9*u!^1cLN4u@qzf0*WY5s)y740TJmppm}yxt?P zao~7QY-E~kdQ>$&Ac0^#+rSI)@UOr@9^y6DpS>A7>#y?; z8ZD(Rw|qYBGq(83EEgBjhF+v$j<7x338W+;GViz5<4M9;e~+2#GhD(YW%n8sSV=5T ztGJ(UZ<*ssq_J)4@gzgrD4-CVIns{n&}uD7sHq^%x!$Ng+@0k~PWF@46ya2DY3@_i zy?KQMMCui~^a6*}!!gPX+*rcAx>lGIWy-umKU`0&B*gS8LCASnf*FX{2`|c+dk{(t9jh<%+m~Xk5bCqynL?CB@GJwb{`7HA<5X+Hh&isHr`U^Vs zrm2WM6?dW;(v);)0A${$j~|gLe$=Do7*?i&oIoi^xCxm-{#Rv&5j6h}^ATr~p{QZl^xCYf3u5qHdS$euM&0z&>l@>VwZx|U8*Dl7@rQ_qvaNb^=6m$2 zHdX(sdL}xFWW+!vbrR|NUot57r(pKop1qu4+v>S<&k(?Ltu;Ks`c&xHd^; zKK!*c2Gp8Eg}Cu})#jl{d`oYE2raP9$4e0Ipah|sBD(~|Gg)ozYe3n$1SJ=>{1Y-F zaF$^E@f71oq&O?5+CGP8=`yB2P4(so5u2o*93&UWj_UDsvY+`Y1Y9kbX+0B)B1!J_ z$58p(XFJwvZ?)NMDT6k*%}k@JZlQyR^U80KP_4X8cWt;eLUGtl1XAexE}h+O!4V}N zZFo?Ul<_rnpFory;AelcRW-55#Wke8ESdGzOqwZ(Hi3sw?6c!~^58-q&lb$VT!g&D21 zeZG{EJgm$5)FLaLW0}jfGM(5SDY!|JwT;nE?^Yo&x9N??YNO^@8id_^eAop=*jH)U z`LLuYZW+((Dd@0V%Yo(u8Tb@Odx?R7BoTk?AUWO&B=&qG?-o#$}$a7<4yvzWo<$a@kt~n+oC=)Xv1?3j*ez z9GhwE<})wSeiy^*#KF)y7==$Y6?DG@3j7~yjlk8mtI^;nzKxCNgt=r`_XO`9{hOW?h4_r(1F_+_Pq0aN0-DSp2R!n__oS<{*v<~ z1kcXj_Ap0_h7T{~pbecx|AHahW#4w<*k}Nah!K{+3C4mrgi^joBW|u8JW0gPw!}hu z=FhPVrL0Wck3o@idtroXL4c<)dUzo+;msJC<6zBG@I(^%lnEbqLXYWFHLORKFS3eJ zOWwTi82aTKzZk8P3EZvIm#EpT!}n)(aUqqb9%~pC&ISgfrY{@+NMz)qQCV#KZ__i6 zR}-yLGke*%$08#VHH5KhUZm$P@kry5Rm(oo+w}b7?MhVHwQ$+!CnF;jO-fQmfAON4 z2pu))NW%3JgK}k9<;F_gttf^gm@7X&8NoQbOb@XH^)MxhFKI#X$sw9D$~9sNOC0>; zG4Ih4k$r7i6F5zZ4*GG2)RB^`EF8RSkvLgNS%y(oSLAEk(?}GMT&^i;%;6C{D19UK z@JZ3CE}wE;M?O%Z^ip>9P&`$XXuXsJJrrLBTo1XBjbeI)@ukfyh7~VP(0a zQbK%{b@+PT-76Oz`HJJud3#mN&J<>EMo|*~{1VNA$gzOUU9jM1bOkH#(oTeQMO~Rd zQQg5AvZsedGL){b*|TX$)-sVyFktZV>odsHl1LF=sXA}?RZ8I#Bz zd5YzVV|bo2(3&pN&e|?I6cXj43nm{`16PP!ds{Ekbo~&0PwsboY}s3rK1-9 z`%)6un3FfvzBr9qBhsunnFEQzI6?#E#O6hfjyf6zV*#LXI0lq4AJ8(Ez-13-!V#*k z6)WC#auH*@15uMAi)=%jIt&beY6SpF!R_-&LyG!V<3R0ULyWmC4M^O6;4+)n`Wo{BoyAgAi$V!eimh)2PvROnaK)m2B$cp?q^#)N-0dU_d(d!~ z&Q@wr43s{Cz%NddCt0wg#Yd%yUFYVTVs$40Ok!~;zZM7os}P_UXH$kW^^QEf(>%tN zlY!0Gm%NFAVj%IMtgyWVOSG5Vkz;XMJT`88h(JKHEoBsU5$6wzB1I2}@Cb}NU(FF1 zbnKK^MePk?fXu8 zJc+|@tPsrx2t8+gTunxDS7hqS6JG6Zq5P8W$Sz}O(ht;XsHj%=zz&l&7uS4?^0u%p z;}Qhsr}WwY8_!kj2Z+}dyF_&de{c7M%@2G$U|Tm~(o|p6_t~|CmY`WGaiQwSJS#Xk z=n490KRx`7(uSsC8q%)3D7N?9OG%2Vj|<}|i7d21mF9*$XUC^xp!37k>zF47OOc{A zt6CI_;}kAZ^*Dv;jD4*GXKglp9$x)y*KKcHlATj|K@%Z5ay_nuhTO96Rpsk%x`V{7 zrHuLO%#$I@c=>O1Zsp_jJ>9&%xuUGDk{!0Z={N-VVqb7_c8|0}gt8$|TM+xOBe6(1 zsL>QDPsq2YjxAN2Wj?f-k)a$Y-Ro=489|6#+|l+CjqQff-l=C~XhtKZ(m&D-H5a0* z$L{yLkg}5w6!&@g*}ax5_f1PKpCFP7K(EJ7ynmvqwI8{O;tt(-(K6SImhqFlWh)l4 z7ofOssJ#%lkqx}A32Y#1ktxy=a>shD&NH*~K!WXxCf?QPAG5GO6CO5n28Qb{Xz*tV zE*b*0Hi8Qj|QW^D12kyl;ClWfE#UbWZ>?09s+vXtSq zmPF_yB=!Q~6$`M`@Y@>$yK=+gDJd)y+;SE@qb15=axV(B|frZ{Q8(u4W&Df-F z@+3W-;p(j=CY9D}Cl*y1pr953N`i!VEf!lK=c5jfcr6`9Y>Zm_fPv5DHr;3E*?%sP z*K%b*YU;^TC-U5Kx7)W!$o2h?4QsZ6OT@umBlLVzETvLq)gd@wg)idA*q}ugFuYi0DYf$3}vO!F`& zk3BZDK(-0BWaCLm9S5qqaW*`^2hWalviM_;&EEnG0lF8!~B+BT~8g-u86Sm)8lsKjpCBnrf>Cy9~a!{ zMu?eotGp3Rx{t#pu`|VC3f;Xp^^%{brw-cT)L$)@sx1#K5s0SU`%>o;!Qy2;Q+rdUPTK9*rviwwbZ3%dM&owj={L7eQ9 zzd%Rlcsny3k{-2f-n@x3ERW^!n^6&4Jvcl*aECJRyR_^1!2cg|A{&2~@d-8sF}y=Ql|J!g<}j)k0a z&N&rw&N=6t3OVonZ>3iOWKqp?_!kQJzwiDx=l^OsW_4{2lvk2`7vEk4u?Aup1oJWN zst(skeABfJ@!FdXT|{paN`np%2D9)C0z$jJ8toIcze%n{A$`X#1U>FVg0k--P(0mV z9nWn=qIkSo`B0(k`D$gWYPqu4tCbyO%8zMpwlcJPqVh`A?#)M@DP30Y!$}7}E0sh z#~KhhsvF6#rWSYr_3Tt=D-We(z@i#?RXC7uE-2HnE3FBq;|FwXN6oa{bqU3bprkH^ z;AOJLXv#EUrC+`Xe{n6Vcb&XQ3ruJMT?RASI2M%8b0YCXKr7bJDidM#dHNg+T7U$S6@#xC~5GV(C;d4v&1r`hvS>|zh6raY<&NS$5 zV7kx*@4nB2KybMfmzwJyp3_% zZjmk-9bouR!1Ir8M;Yx*cQv63Ky9UvHk@JVb1$^17u6O&zenm_>Gnd&01 zF)Z?0A@=uD3HCxSU&})8t>VtXibqK!&d2`p5uWYDrcuJLu*>DhtYUP;zK&RHgZmFHmK1`7>i3n3vc70 zcldDA;lmIRsFzr7P{Wd%C0k#Vi|VjTPkn=Y(5lQmbcpskuUu+tdp-KoG*e&K+H;T6_~b%`T%_RPK!pf&E`Phb5naCpqd`8 zBcH%6B%<*4D1hNXIE>;T6l%~BNIQlW0p=pkmB@aLT+z^{QbC`OCIV3kZEmZ4ZlR&h zPX=`^i7HgIF8Wt;L0@C#;$u2S15IkKkzDDMqPePQOFDZ{BW9_q5cGyJ=o_(OSokQOTIBxV;Ko(fgxjI0oRDf`qPw0ek6>V7KFK`_|^*&Y{ z{Hd8sdOv9%MOj`=Pm7eA*|&A-^maE09Lx9V#Bq(9tZ^*JC==kuIEfl_#67|NBB7HPjIrvNnf&mC3nKwnw`;Alcf*3H>!n?s)15KYd@ zqZg=}Mf`m@>7=@&2`Z+r(h1x}fIIL`LV1_q(txmYDz)oLW-hZH1%lxa}qE za&PRwsnvjZQtP>wbOYWE(hVzUvfFpy1c;ka;-U6R1Ekf*-?hq!u>G5Bq1knpns;2? z^y=0p_ntf2^u_!Y^CvnNbHF*{X9uM0oV543M};4x=C(Ts4y_S32w2FqH6#h{DtuIC zO?&EZv7pHe&V1drS zftIk`Ka|)HSw9iL3SOZUh@vBRD9#a9We2*h-8klv_*{Sdxo5`> z#yos-|3K!{w^=`dw~fj)BE=OBU|7G(b%2JH7AL`62r7cP){S*PLdb&@Y3$^0RzPyN zWdm}RoqmQ6q6$Y&{7&fp<9-iO>qS)hC)$!v@w^N>MyI8drdbY-rGG#IJg*WqsF*DX zMhZ{s-kKbW|6q)&Lu{Kc(SB+#g+x*s@Hx@4DJSPGs=P%bzp+E~>~ zO+e$q8jRo**oUzp!xtL;m&?Zg^(vkpC(Ug(Q>I6I3%`>=uLU?n@q(j{XXxVc4jZm* z-08YrCdVZ|6Go-As$oO=?JV~6@J#I&?3G8F%B#|v-`ub4I^vLMEa@QujGoMevLPCm z%6urxeDlnvfnRgaDy3g@rm3t24ew9$`fq1NdiCESybdG%Zf;C&ZkfOWm4uas5c_cT zg>Zgbi4DXabvVT~Ue+Z0>~mb8TL;gyG_c{CJi&j|SDCi)mc7kz4bi^aoBC!0h>E5p zuN&T}si72jI>jW?tLTB8b7%|)fTn6cbMyB8i0cd-tSZ+9C)lVzJ|$-W$NYDCBcaEZ zG}5~#Pc25@1f^CXaoMn1Q3iLLHA=8RTlz$Emw;E zTMuB@5<5B`ML72b{~;O#Y3-VF@Qob^a&;?XhvN|{a-&;7(KFjK-Y zujW}A)ubJSe#IsE&2zq!x5Hy>Ea0g9*;bA_$zDj*7^h#(9E_?nhx&Eg&>VX&OVXP9 zCF&|y+A2IrcGJh;`9Whbf4PLti{ zy-m_3d}HS>xgKp}L9~Ir@W$RG8x6xt%{_9a4pxY# zcs%B{G;b~-U`1jYU)Qr@GUB|D+gqKy> zeM8g&wgv=M50d$Sp4TyS!vzT422dp%6DaU6=tU{C6*iyDWSxd4&@4aIY3jTG!66Gm z5q7R_&-2zah-OF0!rgek9N02gW=8|c=II(7_G+kC9QNW%Ab7m6zw&D3eTDMctCde> z%5T#fva|pf?Yw=`NIQU9a|m|ifWAaG{SB%9GkOQ>Qv{huJ9diQ6gm|^|_Kc*H=QB`V0+!C4Y?bE33S<%Vv@wj{xo&h}?n5jb||+ zR^V%KxzEs}2>42NINOa7dmuc5(O>r9&w9K*SL;Qx3WWZ}o6J{qsC5?#T&R3|4opWK zrO=LmcVOWeSQ9&VU<8$PfiTqt4#2Lm55Ve`PG(8SUw-!UPnqxN?tlOhsk_$?@d`Xz zQ4*wlwBlBLURTOpj~LrFv-z+@?;B_)I|iS__zTL!KhxIX5XNQMvZ?wp+gJito>amS zXbI;^q37TUu^r%RLu`T|$&Su}e??jD<Cbud`!T7FkpaZ8de^D!>qUah+`hi zv!qH>_O0&2kTRp#I*eo=BqN0}&2X=0O3b>~Q@-Km@llWaTKXHkA?Yqp@XIiDR%LOh z`y=E-6M@i3jQZMY@EZs(oJ6XRj`ZjJeC=*o?BuPx+(1o3bWuwZYK~C%c?^$@B~#Mz zZ0@d22W6U6X8j+`3fBAe%u^^!bvw>$@fBKcUiFr36^N+Nr?(yMj3E-|n0SchTe*5@y z_jDxM9PCc+p4BBy(>8F-wiUjX{tT6JAKk;z_89RSq2v3lH(P6u+n8jxqCAs3SLwv8 z6>mdd5K;YQdEhlaHuyD?OY4)z#jA_1!YJ?4ZGEeqDeD`k0~;@OOqQ3`8uFY&c!q8r zg~tyL8`m5;dmsSUl$S;-PTy&DR(`28!@ksFW^6U;{Yen`B$t0^u?)w<6{&SmGRiZx zEeclpCl~ldRPT~QHeq%57z^4tzL*sdA#7Ozz+^ECzz;2*EVaN*zssw&sc_Kd!X$IA zK8+Q3(61ZVMf&UWAuRp1?(uR9Ah$ZMSJ(~-)$C#|;hARnR4E1~{6m+CatnM&$oiGa z)G;VisQIdjY(TnvXW}V-e?+gFXR=E4@a8$VmPs;m(E!T-Y)*N|uyT94+`_)xukg*T zqFq_^!9GOfkuyF%&yWLX}SmzVoGj&k?qNY7!W9r zr*bra&6+1A=RD`iEw0S^d z8o`yf%24vNBO0$am`NPEOE_))@wWGf<17cKyL%vVZ5GBkl^NlQZ@`Suv$Ih>Pp7T- zP@aaLu<}$82`3$UoC}NYAx!_62BzHsF!^U}%s@0MmL4gE4fo*S*ntMd$rUi8)}cy_ zzC&$uDAy}8C)ym0i`NMxh|lS_5D%rw^&%Ta=JSU zf}8_64FcI|W#6P8WQsckxoyL?6CXS5DD&*mhYYlG*8pvL0I1uR1v2P@nPPU3UFAKz zVmss6l=kvj%B5^b_CxE6B7}&uK_AG%1|N;UroAArUOTphy8vxU0Vqnz=AkKdkYwr@ zfes78St+@3w0la9#JN`AL)E=!S_88=4VaEX7KX}nvKCvwNUu*f{am^JfNuJQa{VFQ z^h>4sPig;k4gI(o(BEO}>#x9hg51>9u6qC)*ir#OwrFg9UPz6Tta2iAe0t2eQh#AS z)9N90EVqKN$?>eLKP*OBKU7dN za*z2V?YohiuIwK;!g#0EM9MVccbU=ghB-6oV9rDe%N(i$=;7{cpllp9}i%e1w~B`q`i_gv-+jo$C6f?Ey%CekXy| zW`$N)Zqqj7Geftb&9W`l08MoQ$ZL-c8iR%|bER|q9vq(=obOC$_mdiTR|FF=J3FMP zAb;>4nko7Eb*a`zjpL3tDz_8n=#FxSMd@zqsrbzC?hyzQdp*i3>q=*ja^~im&?slE zJx;kyB~IIO;CR?17Vx4ge7)}=E3IvY)7kBk#%&LQ%>XI|!Om%&_t4O7&VE=mB}k!t z!NCO2G-WR7mLeq#vx`tli1V#a?sxBGhJy3aw(b%2Bpja#L`fK0k;tl++t4Df_$^M{ zLqqfBWerU2EMOWdSs1=gL{*0cPJxkq4S?M|07|P^0DT{*`wN>Z6ZhbB`lwDI>M%vz zfd}2$cB3jar+opG)5UD%!Zn$4j;_jF=9hGd|7f~O*Qo8VpAQr=zg+v1`!>;i<=4-m zkeIg)2ql(4;GbYx(-=Og9;=0A2wPOcPCJLtIute}LlX-iyWXG$K)C<_+S!z`hz$7} zM1Zs;thsNvQl{=x`_B~*y9#2VB5kZ^PTvM+V_}gQYDP6l;!zk?8R^O}E=)lb!<}Ll z?n#dlIaB~lIfrUH2Fzp*3&XdHu^q55zJwy;T%im^77;A~$`1fAws3h3eJ--btxj%@ zG)v1*Ksh{@ZB2Bm-GFrdci5z=ZFdIRu6b*i76ddq z4p?l8tGb{*?v6yM8jmJ7d6nzPp5gerX6-duT=RJ@nl2}W4OsY0yD#!RL7-T~jz_5m zwHgLN&DXFEI~@)K!z}1HowdOoY|=uMN}TheKzXT-9gAJ4gEr#E1*qujUeT(Flm>vp z7B(RMsMemdkTHs){Vu&77R@e5c$;#vX@+MSWYwaa2&P)a4Orx6m3NR?AP{axCtN1r zvH_BTaX+D>2UD}y23nU$kb#NIjYcs^=?3wJ~%n@jkF{-R-cu;{gJt(a40V304(g zg7+%R1c4j0o?e+{&i4^uR9AqH3^0ZPDz#G!h95fTb6~-RHfCHmKsW#>*k=tG>qY>5 zLLgnny=cf`41{fj(T&T-H;qj2b|+uU9c{y4Ntm@TAgOZU)83i&-rq1E(t(&s+WH)k z=iKeS?BapCE^lLr`~LFHbr6Tp6$RHhXRDd*IN>_ZGp&thJxV8-gLBIcQ}*8X5hmm{ zFisfrj84dN$!2H3vIGF$=`4U@<)Fy!VQ+Dw)%^hws5wf+D3y@304Xs5Arq|1l%Z&y zSQzw`qD=1Ss`0yz=Th4_uGwnsU62dB$=6cA4#2@F0RnhNZ#TMT%UfUVr=EmM;mMAi zJ}0Y_dtC_MGRm#9*zTcEV_g~T2?8Z@l%Kl{ z^PV*C%kU$HZR|j{?W^n_x=){=K%UaO88U!$G{@DPT^R=SSKB=t$nQA0-Dux-{51;2 zxx$^5m0B){8cf)T?K$b>wzJ(CO#K3K0@V{)17o-Z>lAL`DYM@sh}~!5oOPfMFu?-A zmWIPnq5K)$-57)r+)e^vcxi@*rej>jk{1d&#@4iCLjwvNHO^iWQpN)=4#k3#ttQaQ+~f-@DJZVyLOCYh?aPtl>J>#a1Q^dO7KY!o zHV8q$3d$-5upb|DTme8=0XvXr*w%IS8Lktexy0eBS}e36`1_+%IEc6DgMAH~2G;@L zSi}NQYo0R*fJ{2X`W%AfFkD^)$;b6dvr#F9c;^p#pm={mrzK6OniRYPA=sC&Lbw)Q zkZi^Aur6~~<|UZ}UlBn%CQx-);=G{YmczskIMP`h?U>+0dS`M%v+9sSx70*u%5-O@ z;U^O^R_k!pFk#LaO^8~i6r<@DfC2TFY28AmL6|usd zN~#^eIkP2lDO5>ihXl~hk7a2a99FaJZ~l!`da5>ccq3n{&>o zhikdH<3kTy_7feS*A{q9|7C2yZS0ck-b9=bjj6gZ1F97l86K~YV|U&f(2oj%Bo|0h zj@+mJ(w4j#NQ~v4cHCLbubRKh{3G3inJ7Yl4+ijfm!#(cv>m7TV8X7g;tS8b{PGtb zAP9np=vbR!!a<-fA@CV2`{E6snX)e^9}gxp(r6_C(kMa1&c`WODsM|&8NLrK-XR7l z%cB;A03*5p0q<~ZXoTXD2AG{-c22l?%|cE*q7QbI`m$kBWCrL@hOqSMCh`1`tPwuc z3Bhjx1O*LVtyhw|NyDNx1UQg{uuN(Z&yGBV<%|Vy4gH)T&=1>U>FbZcHqcsI^c+s8 zv5+K{gmMkXh#eL};F5->DkJtQqfimk!f+_4r6-NPKd0~roI2)59$Jg4ya?taI%*OS zT;di!&StdB<>S-KHnuMCoZLF=*tcP5?8eB$Xgf*E^#~9!{G3WsPc_d_+x^C`Q5S8Ubo<9Pn%69Y!DGauc$y5ys>a zgwY+sju8e>F#D|DPF8Iscv`Z^BzMZK`Y+Rt-Zg)&eYkz*HvN~h(T$0}pg7g2!f~-% zf$%y)*>Oq^bR2y+FY+9_&-^W2E5isFl6MJ5DcF0-mol|=XjQ!V{QfC40&tmTwQh>3 z1cAN;L3f^QhF-$;ncE z|NSKp9DH$P3x1pfff^O)E1j}Z)GN!z2{4|;vCCEAna3#ZvtlNt`tY)rtX~h#DnJGJ z(0*H4fCWvnC61gS|H0n-Xk<6p;!>o(Kfkt)!WgniP==vbnOL@ntwxz0KLHSBbzIm5 zeOm{Xz93RkvG}l}WPIZeibwlVV3Atsh-lhIn1ZTARy_QigO?vdqtc<9zDTP7gify# zsmI}91oRskSo#9H;;1@vyMF69IA`DACsK(-)hqy9TG#-|T6Vid@vZ zw`p-ijCw5c!(d(6Z-lk3OdY#6uHdH8F*!y(7TuAcpE%0W*N;6wJ;Kmz*D7urQ_^Eq ztlG~5#P)0wyAOfULyPnFGE5cI`@P5EKNhK~kUc zaD$=Sc>l`7rir-r`}H7D3d~Q$s;7Xp7(!cFVy8fh`v|1K19~_nP9-ueZJ?aC!B$R; zn*rr_Y5$(MBDGPF<{1dX{kFxGhqi4A^YRzRmXyDG~|vQ24K#R}g3*7ZnB!XqExDq0D5H4NBN&w~c#LV%NfNxRKkk49xjF}?X`Ru$#0LSC)HjyK-$?5y2&+q z`=Rv4pJaDLJtx-&+SYic4r9xA6vZ(hDrWoP!jZ2(H46e}j1{BmAr-VjNLGjJOzCh- zg-m&mUZ@^buZx=D2p77MdT^tQKjjYsnxlahjev5xA)vk^c0k*sI3Nq!v29c}#Yv%4 zJY2ZT4pv;aqlypGwsEQ7>>O38x?%l5-E_>R?uky{#_fAgpN1);gP@;t!q(63%h<-_ zrQW_#^$gUa&(8;aJYLGS_b!16#2F#Gp~w|3_ihwZrZ)AtUn!mtk#wSdu%RzL`sWL0 zbHSI-L{kNCGcg1mE%qtV`3N9acsv0|09TikM*#n>6#V{GdVwqdUN2$*{ormT9u`g& z?$=x(F6s%Huj!3wZIRN%+};OFvDdbhegTM5#ZMj}oI#-YZbq|>FnI|f9}|wjfFkjD zw?bvZXE+im2cJ2asU4L%J~&x;fB*#>p_OdFqF*Kg)E{`T05x!gucfp#9jcAkH=??aQ?az)QmIyLx_c^-erZ^MnOOiwK)AnCY!=tNglB1Z3O!f0 zXQh?&!$4(!*Q1FNU{pDvPz$@F8Il%^UTJLpHr)E=p(?tDAuNxU=YTHx9Jv+H z`AJD-Z;@mXe88rnj$o<err#&kN4?amP16^HvZ*v@AJBQPMo?pb0Pnp8x|uU4HRl0cqysrthG)%7RFp~K z;XG{dCN8qJc!evVT-3Z!bg2{s$$UZ=B%~o2`_8JiXRNL!&PZ(D$t;j`UrPglA|DH% z%)inDNkE{lc#tTCVDzO=5~Wia_$a@gwi~S<)xnEK!Mz=|LRSz}54;q01mdl0MqZ+W zk`MhsxFvCelDH-p4)@wKF4@DwQCDbG+9SmfDwlZn{ky0|dB27{;o%l#Nn@~Qn4Gd} z^NuwP_U!P8?=k9+(yCO37TR!vRKVF|$VYUX?%`zu&J{KnT<{LVV>(4MJS~ILbOjDt z%*A{~ZbFu5aU(DR{s4-=|3D`8-T#=DV36E5CIqADMnE6?E+B{-((^#YWt|YOS^#m3 zaMw-NQL6U4$pXovU}w5N0l1}WVYXhU2GZ;fzzXAcn4kVJA>SwA-`^XHiV*z&>*=x=RwoEpdfGr|0dc1oQ>FzP7^D1u-p6I6Tf*>_4y{ka)E zvJs=VSH5IcUf3V{EBAaP+(5+4Z|~hBhl!nMn5hqpaKY>p6FPLie@vDy9ph6j-mRv*WP zjyk?IX}2|Zcfmi+>)W)nz^rfUd(xpQxJR#7Xx4;=Oxll*$NFi3WTXMt+x9BR!2hz}>_A zPV20RPefAg?>$Qwvc5&LJzLB}1JASPoOc-m8PofS%IKU64T8k}l{0btDf&b!9UeSo$kWwBy@M_X;Of)z1SK9eTlzPUr;#i6~~{L z8C&`>bDz$@2zj%lO`j6gtb;k9(3x0QK0?T(&U29-X06mT-mwwFCCtGH>V}y+$ zoZ&a9x5-oIfr!>jLqrb)Sp}|dNaFbppL>D%oVG2OLfF#^j__!_%^i&zd&d+nw=w&} zRlyu_NY2g!2PeBs6OMgsL7e4+ZQQ`8%ui^0RTf!;?Sj4fgbyja`WPny$?qOhkACA5 zikRww4wXyCat*t=T5K>0AD@$a9vtcOH5pam?M9Kq4U!lkxQ;B9%!}D0t+4^`Ri0^Y zh|3+bD3>L!c{UorHie&_l77AAk&o^~`L0+?-55QhSA7=6Y9qk9^)!@XU44~iW?~p+ z=TMe(Oa64&I~2aTyQUL@>H-9Q1Vbl%J`Off&+QBKSnzgQ}ttY0J($8}K5Sw)oiWOF89|F+otH)#mAiUJ9iv?pbZuhu^TbjSy zJ;*s{4Fc^3PFXJ{yaRqvylo30R_c#CYx5m>#m#v$@tq?1yUrvT3Jxt%%J^Uojy(^C z|JKs6>ERiic3gB-o_5slh_i0ESq^Ym`Ep9~tWoP|>`PY>X6bNHf#G*qPv*UYj}5zE zePyqqsVrEF$(*AXMl;*r0*3~*lQpE8cN=Xf(Xk°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 literal 0 HcmV?d00001 diff --git a/test/routing/instructions/routing_instruction_tests.cc b/test/routing/instructions/routing_instruction_tests.cc new file mode 100644 index 00000000..a56ff59f --- /dev/null +++ b/test/routing/instructions/routing_instruction_tests.cc @@ -0,0 +1,14 @@ +#include "osr/routing/instructions/routing_instructions_test_fixture.h" + +using namespace osr::test; + +const std::filesystem::path test_data_dir = TEST_DATA_DIR; + +INSTANTIATE_TEST_SUITE_P( + JsonRoutingTests, + routing_instructions_test_fixture, + testing::ValuesIn(load_from_json(test_data_dir / "instruction-test-cases.json", test_data_dir)), + [](const testing::TestParamInfo& info) { + return info.param.test_name; + }); + diff --git a/test/routing/instructions/routing_instructions_input.cc b/test/routing/instructions/routing_instructions_input.cc new file mode 100644 index 00000000..894ca25e --- /dev/null +++ b/test/routing/instructions/routing_instructions_input.cc @@ -0,0 +1,87 @@ +#include "osr/routing/instructions/routing_instructions_input.h" +#include +#include +#include + +#include "boost/json/parse.hpp" + +namespace osr::test { + +search_profile profile_from_string(std::string_view const s) { + if (s == "foot") return search_profile::kFoot; + if (s == "car") return search_profile::kCar; + if (s == "bike") return search_profile::kBike; + if (s == "wheelchair") return search_profile::kWheelchair; + if (s == "bike_elevation_low") return search_profile::kBikeElevationLow; + if (s == "bike_elevation_high") return search_profile::kBikeElevationHigh; + return search_profile::kFoot; +} + +direction direction_from_string(std::string_view const s) { + if (s == "backward") return direction::kBackward; + return direction::kForward; +} + +routing_algorithm routing_algo_from_string(std::string_view const s) { + if (s == "bidirectional") return routing_algorithm::kAStarBi; + return routing_algorithm::kDijkstra; +} + +std::vector load_from_json( + std::filesystem::path const& test_cases_path, + std::filesystem::path const& osm_pbf_dir_path) { + std::ifstream ifs(test_cases_path); + std::string content((std::istreambuf_iterator(ifs)), + std::istreambuf_iterator()); + + auto value = boost::json::parse(content); + auto& arr = value.as_array(); + std::vector cases; + + for (auto& item : arr) { + auto& test_case_obj = item.as_object(); + + // Parse Start/End + auto& s = test_case_obj.at("start").as_object(); + location const start = { + static_cast(s.at("lat").as_double()), + static_cast(s.at("lng").as_double()), + level_t{static_cast(s.at("lvl").as_int64())}}; + + auto& e = test_case_obj.at("end").as_object(); + location const end = {static_cast(e.at("lat").as_double()), + static_cast(e.at("lng").as_double()), + level_t{static_cast(e.at("lvl").as_int64())}}; + + // Parse Profile + const auto profile = + profile_from_string(test_case_obj.at("profile").as_string()); + + // Parse Direction + const auto direction = + direction_from_string(test_case_obj.at("direction").as_string()); + + // Parse routing algorithm + const auto algo = + routing_algo_from_string(test_case_obj.at("routing_algo").as_string()); + + // Parse Actions Array + std::vector expected_actions; + for (auto& act : test_case_obj.at("expected_actions").as_array()) { + expected_actions.push_back(act); + } + + cases.emplace_back( + test_case_obj.at("name").as_string().c_str(), + osm_pbf_dir_path / test_case_obj.at("osm_file").as_string().c_str(), + start, end, profile, direction, algo, std::move(expected_actions)); + } + std::stable_sort(cases.begin(), cases.end(), + [](routing_instructions_input const& a, + routing_instructions_input const& b) { + return a.osm_file < b.osm_file; + }); + return cases; +} + +} \ No newline at end of file diff --git a/test/routing_instructions_test_fixture.cc b/test/routing_instructions_test_fixture.cc new file mode 100644 index 00000000..68192795 --- /dev/null +++ b/test/routing_instructions_test_fixture.cc @@ -0,0 +1,91 @@ +#include "osr/routing/instructions/routing_instructions_test_fixture.h" + +#include +#include +#include + +#include "osr/extract/extract.h" +#include "osr/lookup.h" +#include "osr/routing/instructions/instruction_annotator.h" +#include "osr/routing/routing_test_util.h" + +namespace fs = std::filesystem; + +namespace osr::test { + +struct cached_dataset { + fs::path dir_; + std::unique_ptr w_; + std::unique_ptr l_; +}; + +static std::mutex g_cache_mutex; +static std::unordered_map> g_dataset_cache; + +std::shared_ptr get_dataset(fs::path const& pbf_path) { + std::lock_guard lock(g_cache_mutex); + auto const key = pbf_path.string(); + auto it = g_dataset_cache.find(key); + if (it == g_dataset_cache.end()) { + auto const dir = fmt::format("/tmp/osr_test/{}", pbf_path.filename().string()); + auto ec = std::error_code{}; + fs::remove_all(dir, ec); + fs::create_directories(dir, ec); + extract(false, pbf_path, dir, {}); + + auto dataset = std::make_shared(); + dataset->dir_ = dir; + dataset->w_ = std::make_unique(dir, cista::mmap::protection::READ); + dataset->l_ = std::make_unique(*dataset->w_, dir, cista::mmap::protection::READ); + g_dataset_cache[key] = dataset; + return dataset; + } + return it->second; +} + +void test_instructions( + fs::path const& pbf_path, + location const& from, + location const& to, + search_profile const sp, + routing_algorithm const algo, + direction const direction, + std::vector const& expected_actions_json) { + try { + auto const dataset = get_dataset(pbf_path); + const auto& w = *dataset->w_; + const auto& l = *dataset->l_; + + auto p = route(w, l, from, to, osr::get_parameters(sp), sp, direction, algo); + ASSERT_TRUE(p.has_value()); + instruction_annotator annotator(w); + annotator.annotate(p.value()); + + std::vector expected_actions; + expected_actions.reserve(expected_actions_json.size()); + for (auto const& val : expected_actions_json) { + expected_actions.push_back(from_json(val, w)); + } + + std::vector actions; + actions.reserve(p->segments_.size()); + for (auto const& s : p->segments_) { + actions.push_back(s.instruction_annotation_); + } + + EXPECT_EQ(expected_actions, actions); + } catch (...) { + GTEST_SKIP(); + } +} + +TEST_P(routing_instructions_test_fixture, ValidatesInstructions) { + const auto& test_params = GetParam(); + + test_instructions(test_params.osm_file, test_params.start, test_params.end, + test_params.profile, test_params.routing_algo, + test_params.direction, test_params.expected_actions); +} + +} + diff --git a/test/routing_test_util.cc b/test/routing_test_util.cc new file mode 100644 index 00000000..88c62de1 --- /dev/null +++ b/test/routing_test_util.cc @@ -0,0 +1,65 @@ +#include "osr/routing/routing_test_util.h" + +#include "osr/extract/extract.h" + +namespace osr::test { + +std::optional route(ways const& w, + lookup const& l, + location const& from, + location const& to, + profile_parameters const& params, + search_profile const sp, + direction const dir, + routing_algorithm const algo) { + return osr::route(params, w, l, sp, from, {to}, 900, dir, + 250.0, nullptr, nullptr, nullptr, algo); +} + +std::optional extract_and_route(std::string_view path, + location const& from, + location const& to, + profile_parameters const& params, + search_profile const sp, + direction const dir, + routing_algorithm const algo) { + auto const directory = fmt::format("/tmp/{}", path); + auto ec = std::error_code{}; + std::filesystem::remove_all(directory, ec); + std::filesystem::create_directories(directory, ec); + + extract(false, path, directory, {}); + + const auto w = ways{directory, cista::mmap::protection::READ}; + const auto l = lookup{w, directory, cista::mmap::protection::READ}; + + auto const p = route(w, l, from, to, params, sp, dir, algo); + utl::verify(p.has_value(), "{}: from={} to={} -> no route", path, + fmt::streamed(from), fmt::streamed(to)); + return p; +} + +std::string extract_route_to_feature(std::string_view path, + location const& from, + location const& to, + profile_parameters const& params, + search_profile const sp, + direction const dir, + routing_algorithm const algo) { + auto const directory = fmt::format("/tmp/{}", path); + auto ec = std::error_code{}; + std::filesystem::remove_all(directory, ec); + std::filesystem::create_directories(directory, ec); + + extract(false, path, directory, {}); + + const auto w = ways{directory, cista::mmap::protection::READ}; + const auto l = lookup{w, directory, cista::mmap::protection::READ}; + + auto const p = route(w, l, from, to, params, sp, dir, algo); + utl::verify(p.has_value(), "{}: from={} to={} -> no route", path, + fmt::streamed(from), fmt::streamed(to)); + return to_featurecollection(w, *p, false); +} + +} diff --git a/test/routing_tests.cc b/test/routing_tests.cc index 502895d1..fba5f5ff 100644 --- a/test/routing_tests.cc +++ b/test/routing_tests.cc @@ -3,45 +3,22 @@ #include "gtest/gtest.h" #include "osr/geojson.h" +#include "include/osr/routing/routing_test_util.h" #include "osr/extract/extract.h" #include "osr/lookup.h" #include "osr/routing/profiles/foot.h" #include "osr/routing/route.h" #include "osr/ways.h" -namespace fs = std::filesystem; - -std::string extract_and_route( - std::string_view path, - osr::location const& from, - osr::location const& to, - osr::profile_parameters const& params = - osr::foot::parameters{}, - osr::search_profile const profile = osr::search_profile::kFoot) { - auto const dir = fs::temp_directory_path() / path; - auto ec = std::error_code{}; - fs::remove_all(dir, ec); - fs::create_directories(dir, ec); - - osr::extract(false, path, dir, {}); - - auto w = osr::ways{dir, cista::mmap::protection::READ}; - auto l = osr::lookup{w, dir, cista::mmap::protection::READ}; - - auto const p = osr::route(params, w, l, profile, from, {to}, 900, - osr::direction::kForward, 250.0, nullptr, nullptr, - nullptr, osr::routing_algorithm::kDijkstra); - utl::verify(p.has_value(), "{}: from={} to={} -> no route", path, - fmt::streamed(from), fmt::streamed(to)); - return osr::to_featurecollection(w, *p, false); -} - TEST(routing, foot_island) { auto const from = osr::location{49.872715, 8.651534, osr::level_t{0.F}}; auto const to = osr::location{49.873023, 8.651523, osr::level_t{0.F}}; EXPECT_EQ( - R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":3,"distance":3},"geometry":{"type":"LineString","coordinates":[[8.651514431787469E0,4.987274386418564E1],[8.6515174E0,4.98727447E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551426,"cost":3,"distance":3},"geometry":{"type":"LineString","coordinates":[[8.6515174E0,4.98727447E1],[8.6515563E0,4.98727556E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":22937760,"cost":2,"distance":2},"geometry":{"type":"LineString","coordinates":[[8.6515563E0,4.98727556E1],[8.6515406E0,4.98727706E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":22937760,"cost":10,"distance":10},"geometry":{"type":"LineString","coordinates":[[8.6515406E0,4.98727706E1],[8.6514528E0,4.98728367E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":847710844,"cost":6,"distance":7},"geometry":{"type":"LineString","coordinates":[[8.6514528E0,4.98728367E1],[8.6514754E0,4.98728959E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":23511479,"cost":8,"distance":8},"geometry":{"type":"LineString","coordinates":[[8.6514754E0,4.98728959E1],[8.651539E0,4.98729497E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":23511479,"cost":2,"distance":2},"geometry":{"type":"LineString","coordinates":[[8.651539E0,4.98729497E1],[8.6515596E0,4.98729618E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":8,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.6515596E0,4.98729618E1],[8.651493334251755E0,4.987300334757231E1]]}}]})", - extract_and_route("test/luisenplatz-darmstadt.osm.pbf", from, to)); + R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":3,"distance":3},"geometry":{"type":"LineString","coordinates":[[8.651514431787469E0,4.987274386418564E1],[8.6515174E0,4.98727447E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551426,"cost":3,"distance":3},"geometry":{"type":"LineString","coordinates":[[8.6515174E0,4.98727447E1],[8.6515563E0,4.98727556E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":22937760,"cost":12,"distance":12},"geometry":{"type":"LineString","coordinates":[[8.6515563E0,4.98727556E1],[8.6515406E0,4.98727706E1],[8.6514528E0,4.98728367E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":847710844,"cost":6,"distance":7},"geometry":{"type":"LineString","coordinates":[[8.6514528E0,4.98728367E1],[8.6514754E0,4.98728959E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":23511479,"cost":10,"distance":10},"geometry":{"type":"LineString","coordinates":[[8.6514754E0,4.98728959E1],[8.651539E0,4.98729497E1],[8.6515596E0,4.98729618E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":8,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.6515596E0,4.98729618E1],[8.651493334251755E0,4.987300334757231E1]]}}]})", + osr::test::extract_route_to_feature( + "test/luisenplatz-darmstadt.osm.pbf", from, to, + osr::foot::parameters{}, osr::search_profile::kFoot, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } TEST(routing, foot_ferry) { @@ -49,7 +26,10 @@ TEST(routing, foot_ferry) { auto const to = osr::location{41.921436, 8.740166, osr::level_t{0.F}}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":84,"distance":101},"geometry":{"type":"LineString","coordinates":[[8.7415295E0,4.19221369E1],[8.7415321E0,4.19222147E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":147,"distance":177},"geometry":{"type":"LineString","coordinates":[[8.7415321E0,4.19222147E1],[8.7408991E0,4.19222267E1],[8.7400905E0,4.19218375E1]]}}]})", - extract_and_route("test/ajaccio-ferry.osm.pbf", from, to)); + osr::test::extract_route_to_feature( + "test/ajaccio-ferry.osm.pbf", from, to, + osr::foot::parameters{}, osr::search_profile::kFoot, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } TEST(routing, foot_sidewalk_separate) { @@ -57,7 +37,10 @@ TEST(routing, foot_sidewalk_separate) { auto const to = osr::location{46.17249, 8.800507, osr::level_t{0.F}}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":9,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.799938095816453E0,4.617140034140192E1],[8.7999968E0,4.61714749E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":313626022,"cost":52,"distance":52},"geometry":{"type":"LineString","coordinates":[[8.7999968E0,4.61714749E1],[8.8001826E0,4.61717214E1],[8.8002241E0,4.61717698E1],[8.8002659E0,4.61718363E1],[8.8002881E0,4.61718996E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":37078706,"cost":157,"distance":22},"geometry":{"type":"LineString","coordinates":[[8.8002881E0,4.61718996E1],[8.800417E0,4.61718962E1],[8.8005511E0,4.61719431E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":352238316,"cost":10,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.8005511E0,4.61719431E1],[8.8005367E0,4.61720098E1],[8.8005388E0,4.61720441E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":352238316,"cost":29,"distance":32},"geometry":{"type":"LineString","coordinates":[[8.8005388E0,4.61720441E1],[8.8005458E0,4.61721137E1],[8.8005774E0,4.61723293E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1214507783,"cost":9,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.8005774E0,4.61723293E1],[8.8006558E0,4.61724109E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1214515049,"cost":15,"distance":15},"geometry":{"type":"LineString","coordinates":[[8.8006558E0,4.61724109E1],[8.8004622E0,4.61724207E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":144,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.8004622E0,4.61724207E1],[8.8004859E0,4.61724675E1],[8.800498396766157E0,4.6172492096108655E1]]}}]})", - extract_and_route("test/locarno.osm.pbf", from, to)); + osr::test::extract_route_to_feature( + "test/locarno.osm.pbf", from, to, osr::foot::parameters{}, + osr::search_profile::kFoot, osr::direction::kForward, + osr::routing_algorithm::kDijkstra)); } TEST(routing, foot_corridor) { @@ -67,7 +50,10 @@ TEST(routing, foot_corridor) { osr::location{51.547004658329, -0.05694437499428773, osr::level_t{0.F}}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":1,"distance":1},"geometry":{"type":"LineString","coordinates":[[-5.6227579350404025E-2,5.154663151628954E1],[-5.62413E-2,5.15466308E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1057782512,"cost":6,"distance":6},"geometry":{"type":"LineString","coordinates":[[-5.62413E-2,5.15466308E1],[-5.62459E-2,5.15466862E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":881103497,"cost":3,"distance":4},"geometry":{"type":"LineString","coordinates":[[-5.62459E-2,5.15466862E1],[-5.62474E-2,5.15467056E1],[-5.62483E-2,5.15467228E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":881103497,"cost":6,"distance":7},"geometry":{"type":"LineString","coordinates":[[-5.62483E-2,5.15467228E1],[-5.62524E-2,5.15467815E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1079378708,"cost":5,"distance":6},"geometry":{"type":"LineString","coordinates":[[-5.62524E-2,5.15467815E1],[-5.62531E-2,5.15468061E1],[-5.62538E-2,5.15468316E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1079378709,"cost":3,"distance":4},"geometry":{"type":"LineString","coordinates":[[-5.62538E-2,5.15468316E1],[-5.62546E-2,5.15468484E1],[-5.62621E-2,5.15468663E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":881103498,"cost":3,"distance":4},"geometry":{"type":"LineString","coordinates":[[-5.62621E-2,5.15468663E1],[-5.62628E-2,5.15469052E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1063762150,"cost":1,"distance":1},"geometry":{"type":"LineString","coordinates":[[-5.62628E-2,5.15469052E1],[-5.6263E-2,5.15469163E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1063762149,"cost":2,"distance":3},"geometry":{"type":"LineString","coordinates":[[-5.6263E-2,5.15469163E1],[-5.62635E-2,5.1546946E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":881103496,"cost":7,"distance":9},"geometry":{"type":"LineString","coordinates":[[-5.62635E-2,5.1546946E1],[-5.62657E-2,5.15470109E1],[-5.62908E-2,5.15470107E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":41,"distance":49},"geometry":{"type":"LineString","coordinates":[[-5.62908E-2,5.15470107E1],[-5.62911E-2,5.1547031E1],[-5.66186E-2,5.15470287E1],[-5.69331E-2,5.15470277E1],[-5.694401949978242E-2,5.1547027764967275E1]]}}]})", - extract_and_route("test/london-corridor.osm.pbf", from, to)); + osr::test::extract_route_to_feature( + "test/london-corridor.osm.pbf", from, to, + osr::foot::parameters{}, osr::search_profile::kFoot, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } TEST(routing, foot_stop_area) { @@ -77,7 +63,10 @@ TEST(routing, foot_stop_area) { osr::location{48.725480463902784, 2.2588322597458728, osr::level_t{0.F}}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":13,"distance":13},"geometry":{"type":"LineString","coordinates":[[2.261314500627132E0,4.8725266362834425E1],[2.2613838E0,4.87253219E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1290289280,"cost":6,"distance":6},"geometry":{"type":"LineString","coordinates":[[2.2613838E0,4.87253219E1],[2.2613206E0,4.87253586E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1290289280,"cost":5,"distance":5},"geometry":{"type":"LineString","coordinates":[[2.2613206E0,4.87253586E1],[2.2612721E0,4.87253867E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1290289280,"cost":3,"distance":3},"geometry":{"type":"LineString","coordinates":[[2.2612721E0,4.87253867E1],[2.2612448E0,4.87254022E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":892871341,"cost":6,"distance":7},"geometry":{"type":"LineString","coordinates":[[2.2612448E0,4.87254022E1],[2.2611731E0,4.87254412E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1419149027,"cost":7,"distance":9},"geometry":{"type":"LineString","coordinates":[[2.2611731E0,4.87254412E1],[2.2610764E0,4.87254927E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1419149026,"cost":16,"distance":19},"geometry":{"type":"LineString","coordinates":[[2.2610764E0,4.87254927E1],[2.260814E0,4.87254962E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1359929257,"cost":20,"distance":24},"geometry":{"type":"LineString","coordinates":[[2.260814E0,4.87254962E1],[2.2605996E0,4.87253278E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1429030767,"cost":10,"distance":12},"geometry":{"type":"LineString","coordinates":[[2.2605996E0,4.87253278E1],[2.2604973E0,4.87252419E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1429030769,"cost":2,"distance":2},"geometry":{"type":"LineString","coordinates":[[2.2604973E0,4.87252419E1],[2.2604761E0,4.87252248E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1429030768,"cost":7,"distance":8},"geometry":{"type":"LineString","coordinates":[[2.2604761E0,4.87252248E1],[2.2604036E0,4.87251661E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1359929257,"cost":22,"distance":26},"geometry":{"type":"LineString","coordinates":[[2.2604036E0,4.87251661E1],[2.2602208E0,4.87250223E1],[2.2601787E0,4.87249893E1]]}},{"type":"Feature","properties":{"level":1E0,"osm_way_id":222040526,"cost":25,"distance":30},"geometry":{"type":"LineString","coordinates":[[2.2601787E0,4.87249893E1],[2.2600672E0,4.87250507E1],[2.2600272E0,4.87250721E1],[2.2598576E0,4.87251608E1]]}},{"type":"Feature","properties":{"level":1E0,"osm_way_id":222040526,"cost":11,"distance":13},"geometry":{"type":"LineString","coordinates":[[2.2598576E0,4.87251608E1],[2.2597231E0,4.87252337E1]]}},{"type":"Feature","properties":{"level":1E0,"osm_way_id":222040526,"cost":4,"distance":5},"geometry":{"type":"LineString","coordinates":[[2.2597231E0,4.87252337E1],[2.2596673E0,4.87252638E1]]}},{"type":"Feature","properties":{"level":1E0,"osm_way_id":222040526,"cost":93,"distance":112},"geometry":{"type":"LineString","coordinates":[[2.2596673E0,4.87252638E1],[2.2596292E0,4.8725284E1],[2.2584789E0,4.87258964E1]]}},{"type":"Feature","properties":{"level":1E0,"osm_way_id":222040526,"cost":13,"distance":16},"geometry":{"type":"LineString","coordinates":[[2.2584789E0,4.87258964E1],[2.2583131E0,4.87259901E1]]}},{"type":"Feature","properties":{"level":1E0,"osm_way_id":642263621,"cost":8,"distance":10},"geometry":{"type":"LineString","coordinates":[[2.2583131E0,4.87259901E1],[2.2582647E0,4.87259491E1],[2.2582257E0,4.8725916E1]]}},{"type":"Feature","properties":{"level":1E0,"osm_way_id":642578765,"cost":2,"distance":3},"geometry":{"type":"LineString","coordinates":[[2.2582257E0,4.8725916E1],[2.2581937E0,4.87259329E1]]}},{"type":"Feature","properties":{"level":1E0,"osm_way_id":642263625,"cost":6,"distance":7},"geometry":{"type":"LineString","coordinates":[[2.2581937E0,4.87259329E1],[2.2581458E0,4.87258947E1],[2.2581625E0,4.87258856E1]]}},{"type":"Feature","properties":{"level":1E0,"osm_way_id":642578757,"cost":7,"distance":8},"geometry":{"type":"LineString","coordinates":[[2.2581625E0,4.87258856E1],[2.2582443E0,4.87258411E1]]}},{"type":"Feature","properties":{"level":5E-1,"osm_way_id":642263631,"cost":12,"distance":14},"geometry":{"type":"LineString","coordinates":[[2.2582443E0,4.87258411E1],[2.2581285E0,4.87257422E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1192127892,"cost":1,"distance":1},"geometry":{"type":"LineString","coordinates":[[2.2581285E0,4.87257422E1],[2.2581167E0,4.87257321E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1192127892,"cost":2,"distance":2},"geometry":{"type":"LineString","coordinates":[[2.2581167E0,4.87257321E1],[2.2581393E0,4.87257206E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":55,"distance":66},"geometry":{"type":"LineString","coordinates":[[2.2581393E0,4.87257206E1],[2.2582250818254357E0,4.872579309702946E1]]}}]})", - extract_and_route("test/station-border.osm.pbf", from, to)); + osr::test::extract_route_to_feature( + "test/station-border.osm.pbf", from, to, + osr::foot::parameters{}, osr::search_profile::kFoot, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } TEST(routing, bus_private_gate) { @@ -85,14 +74,17 @@ TEST(routing, bus_private_gate) { auto const to = osr::location{49.1020397, 8.4332380, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":14,"distance":76},"geometry":{"type":"LineString","coordinates":[[8.438033588333512E0,4.9113532427453805E1],[8.4377581E0,4.91128665E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":849584375,"cost":4,"distance":24},"geometry":{"type":"LineString","coordinates":[[8.4377581E0,4.91128665E1],[8.4376667E0,4.91126578E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":137079241,"cost":8,"distance":46},"geometry":{"type":"LineString","coordinates":[[8.4376667E0,4.91126578E1],[8.4375677E0,4.91124791E1],[8.4374778E0,4.91122613E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":849584376,"cost":5,"distance":28},"geometry":{"type":"LineString","coordinates":[[8.4374778E0,4.91122613E1],[8.437396E0,4.91121011E1],[8.4373648E0,4.91120195E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":851838931,"cost":61,"distance":5},"geometry":{"type":"LineString","coordinates":[[8.4373648E0,4.91120195E1],[8.4373498E0,4.91119765E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":849584369,"cost":68,"distance":6},"geometry":{"type":"LineString","coordinates":[[8.4373498E0,4.91119765E1],[8.4373272E0,4.91119262E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":310571714,"cost":8,"distance":17},"geometry":{"type":"LineString","coordinates":[[8.4373272E0,4.91119262E1],[8.4372649E0,4.91117757E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":310571711,"cost":52,"distance":108},"geometry":{"type":"LineString","coordinates":[[8.4372649E0,4.91117757E1],[8.4369716E0,4.91110229E1],[8.4369164E0,4.91108317E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":3498959,"cost":28,"distance":57},"geometry":{"type":"LineString","coordinates":[[8.4369164E0,4.91108317E1],[8.4367049E0,4.91103396E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":3498959,"cost":4,"distance":8},"geometry":{"type":"LineString","coordinates":[[8.4367049E0,4.91103396E1],[8.4366731E0,4.91102697E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":3498959,"cost":4,"distance":10},"geometry":{"type":"LineString","coordinates":[[8.4366731E0,4.91102697E1],[8.4366345E0,4.91101859E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":3498959,"cost":44,"distance":89},"geometry":{"type":"LineString","coordinates":[[8.4366345E0,4.91101859E1],[8.4363175E0,4.91094145E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":3498959,"cost":4,"distance":5},"geometry":{"type":"LineString","coordinates":[[8.4363175E0,4.91094145E1],[8.4363014E0,4.91093749E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":3498959,"cost":4,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.4363014E0,4.91093749E1],[8.4362712E0,4.91093008E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":3498959,"cost":20,"distance":45},"geometry":{"type":"LineString","coordinates":[[8.4362712E0,4.91093008E1],[8.4361122E0,4.91089107E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":3498959,"cost":40,"distance":83},"geometry":{"type":"LineString","coordinates":[[8.4361122E0,4.91089107E1],[8.4358119E0,4.9108187E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":3498959,"cost":36,"distance":79},"geometry":{"type":"LineString","coordinates":[[8.4358119E0,4.9108187E1],[8.4355482E0,4.91075004E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":851838936,"cost":112,"distance":232},"geometry":{"type":"LineString","coordinates":[[8.4355482E0,4.91075004E1],[8.4354366E0,4.91072387E1],[8.4347732E0,4.91056838E1],[8.4346938E0,4.91054924E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":155843105,"cost":36,"distance":75},"geometry":{"type":"LineString","coordinates":[[8.4346938E0,4.91054924E1],[8.4344235E0,4.91048453E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":155843105,"cost":36,"distance":74},"geometry":{"type":"LineString","coordinates":[[8.4344235E0,4.91048453E1],[8.4341525E0,4.91042005E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":155843105,"cost":52,"distance":107},"geometry":{"type":"LineString","coordinates":[[8.4341525E0,4.91042005E1],[8.4337533E0,4.91032736E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":155843105,"cost":4,"distance":12},"geometry":{"type":"LineString","coordinates":[[8.4337533E0,4.91032736E1],[8.4337108E0,4.91031653E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":155843105,"cost":40,"distance":83},"geometry":{"type":"LineString","coordinates":[[8.4337108E0,4.91031653E1],[8.4333945E0,4.91024469E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":24,"distance":46},"geometry":{"type":"LineString","coordinates":[[8.4333945E0,4.91024469E1],[8.433240399498114E0,4.910203931113488E1]]}}]})", - extract_and_route("test/karlsruhe-kit-nord.osm.pbf", from, to, - osr::bus::parameters{}, osr::search_profile::kBus)); + osr::test::extract_route_to_feature( + "test/karlsruhe-kit-nord.osm.pbf", from, to, osr::bus::parameters{}, + osr::search_profile::kBus, osr::direction::kForward, + osr::routing_algorithm::kDijkstra)); // car profile should not be allowed to pass through the private gate -> // expect no route - EXPECT_ANY_THROW(extract_and_route("test/karlsruhe-kit-nord.osm.pbf", from, - to, osr::car::parameters{}, - osr::search_profile::kCar)); + EXPECT_ANY_THROW(osr::test::extract_route_to_feature( + "test/karlsruhe-kit-nord.osm.pbf", from, to, osr::car::parameters{}, + osr::search_profile::kCar, osr::direction::kForward, + osr::routing_algorithm::kDijkstra)); } TEST(routing, ferry_route) { @@ -100,8 +92,10 @@ TEST(routing, ferry_route) { auto const to = osr::location{53.540747, 9.974202, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":0,"distance":3},"geometry":{"type":"LineString","coordinates":[[9.9715663E0,5.35447076E1],[9.9715663E0,5.35447076E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":25445781,"cost":40,"distance":403},"geometry":{"type":"LineString","coordinates":[[9.9715663E0,5.35447076E1],[9.9714744E0,5.35445564E1],[9.971377E0,5.3544327E1],[9.9713103E0,5.35440655E1],[9.971313E0,5.35437668E1],[9.9713504E0,5.35434353E1],[9.9714368E0,5.35431238E1],[9.9716401E0,5.35427136E1],[9.9717758E0,5.35425032E1],[9.9720512E0,5.35422903E1],[9.9724062E0,5.3542125E1],[9.9733279E0,5.35417842E1],[9.973563E0,5.3541663E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1372460184,"cost":11,"distance":115},"geometry":{"type":"LineString","coordinates":[[9.973563E0,5.3541663E1],[9.9739284E0,5.35413931E1],[9.9741339E0,5.35412257E1],[9.9742222E0,5.35410764E1],[9.9742233E0,5.35409368E1],[9.9741898E0,5.35407539E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":0,"distance":1},"geometry":{"type":"LineString","coordinates":[[9.9741898E0,5.35407539E1],[9.974193272653226E0,5.3540755204448416E1]]}}]})", - extract_and_route("test/hamburg-hafen-ferry.osm.pbf", from, to, - osr::ferry::parameters{}, osr::search_profile::kFerry)); + osr::test::extract_route_to_feature( + "test/hamburg-hafen-ferry.osm.pbf", from, to, + osr::ferry::parameters{}, osr::search_profile::kFerry, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } TEST(routing, tram_junction) { @@ -112,9 +106,10 @@ TEST(routing, tram_junction) { auto const to = osr::location{49.002328, 8.395582, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":14,"distance":14},"geometry":{"type":"LineString","coordinates":[[8.394302960176601E0,4.900197169592092E1],[8.3943169E0,4.90020954E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":404384687,"cost":5,"distance":5},"geometry":{"type":"LineString","coordinates":[[8.3943169E0,4.90020954E1],[8.3943189E0,4.90021148E1],[8.3943214E0,4.90021421E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":145048133,"cost":14,"distance":12},"geometry":{"type":"LineString","coordinates":[[8.3943214E0,4.90021421E1],[8.3943347E0,4.9002237E1],[8.3943377E0,4.90022509E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":145048133,"cost":20,"distance":14},"geometry":{"type":"LineString","coordinates":[[8.3943377E0,4.90022509E1],[8.3943474E0,4.90022723E1],[8.3943902E0,4.90023232E1],[8.3944341E0,4.90023612E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":145048133,"cost":17,"distance":7},"geometry":{"type":"LineString","coordinates":[[8.3944341E0,4.90023612E1],[8.3944564E0,4.9002373E1],[8.3944881E0,4.90023898E1],[8.3945052E0,4.90023989E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":145048133,"cost":15,"distance":6},"geometry":{"type":"LineString","coordinates":[[8.3945052E0,4.90023989E1],[8.3945345E0,4.90024088E1],[8.3945768E0,4.90024214E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":145048133,"cost":23,"distance":13},"geometry":{"type":"LineString","coordinates":[[8.3945768E0,4.90024214E1],[8.3946412E0,4.90024284E1],[8.3946882E0,4.90024286E1],[8.3947562E0,4.90024251E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":150939191,"cost":26,"distance":21},"geometry":{"type":"LineString","coordinates":[[8.3947562E0,4.90024251E1],[8.3950429E0,4.90023862E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":150939191,"cost":21,"distance":21},"geometry":{"type":"LineString","coordinates":[[8.3950429E0,4.90023862E1],[8.3953208E0,4.90023485E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":150939191,"cost":3,"distance":3},"geometry":{"type":"LineString","coordinates":[[8.3953208E0,4.90023485E1],[8.3953654E0,4.90023425E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":17,"distance":17},"geometry":{"type":"LineString","coordinates":[[8.3953654E0,4.90023425E1],[8.3955258E0,4.90023205E1],[8.395577741913971E0,4.900231379781756E1]]}}]})", - extract_and_route("test/tram-junction.osm.pbf", from, to, - osr::railway::parameters{}, - osr::search_profile::kRailway)); + osr::test::extract_route_to_feature( + "test/tram-junction.osm.pbf", from, to, osr::railway::parameters{}, + osr::search_profile::kRailway, osr::direction::kForward, + osr::routing_algorithm::kDijkstra)); } TEST(routing, incline_oneway_combination) { @@ -123,8 +118,10 @@ TEST(routing, incline_oneway_combination) { auto const to = osr::location{54.467231, 18.509283, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":2,"distance":34},"geometry":{"type":"LineString","coordinates":[[1.850720928395522E1,5.446895820930245E1],[1.85072976E1,5.44689494E1],[1.85077098E1,5.44688994E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":84736865,"cost":1,"distance":14},"geometry":{"type":"LineString","coordinates":[[1.85077098E1,5.44688994E1],[1.85079268E1,5.44688676E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1466304642,"cost":1,"distance":18},"geometry":{"type":"LineString","coordinates":[[1.85079268E1,5.44688676E1],[1.85081972E1,5.4468828E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":129959871,"cost":3,"distance":38},"geometry":{"type":"LineString","coordinates":[[1.85081972E1,5.4468828E1],[1.85087622E1,5.44687431E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":516453827,"cost":1,"distance":14},"geometry":{"type":"LineString","coordinates":[[1.85087622E1,5.44687431E1],[1.85087959E1,5.44687377E1],[1.85089192E1,5.44687181E1],[1.85089688E1,5.44687102E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":400398318,"cost":11,"distance":9},"geometry":{"type":"LineString","coordinates":[[1.85089688E1,5.44687102E1],[1.85089596E1,5.44686839E1],[1.8508959E1,5.4468627E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":328595159,"cost":5,"distance":65},"geometry":{"type":"LineString","coordinates":[[1.8508959E1,5.4468627E1],[1.8508973E1,5.44685687E1],[1.8509001E1,5.44684687E1],[1.85090447E1,5.44683137E1],[1.85091248E1,5.44680547E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":328595159,"cost":1,"distance":14},"geometry":{"type":"LineString","coordinates":[[1.85091248E1,5.44680547E1],[1.85091577E1,5.4467934E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":6,"distance":79},"geometry":{"type":"LineString","coordinates":[[1.85091577E1,5.4467934E1],[1.85092136E1,5.44677472E1],[1.85092609E1,5.44675879E1],[1.85092683E1,5.44675629E1],[1.85092941E1,5.44674731E1],[1.85093025E1,5.4467404E1],[1.85093033E1,5.4467355E1],[1.85092973E1,5.44673081E1],[1.850927727479884E1,5.4467231505553535E1]]}}]})", - extract_and_route("test/gdynia-kariny.osm.pbf", from, to, - osr::bus::parameters{}, osr::search_profile::kBus)); + osr::test::extract_route_to_feature( + "test/gdynia-kariny.osm.pbf", from, to, osr::bus::parameters{}, + osr::search_profile::kBus, osr::direction::kForward, + osr::routing_algorithm::kDijkstra)); } TEST(routing, darmstadt_willy_luisenplatz_highway_busway) { @@ -133,9 +130,10 @@ TEST(routing, darmstadt_willy_luisenplatz_highway_busway) { auto const to = osr::location{49.876042, 8.650119, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":2,"distance":22},"geometry":{"type":"LineString","coordinates":[[8.651250568496865E0,4.98730858444102E1],[8.6513009E0,4.98731323E1],[8.6513615E0,4.9873198E1],[8.651378E0,4.98732369E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551428,"cost":0,"distance":6},"geometry":{"type":"LineString","coordinates":[[8.651378E0,4.98732369E1],[8.6514002E0,4.98732894E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551427,"cost":0,"distance":3},"geometry":{"type":"LineString","coordinates":[[8.6514002E0,4.98732894E1],[8.6514025E0,4.98733198E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551427,"cost":1,"distance":7},"geometry":{"type":"LineString","coordinates":[[8.6514025E0,4.98733198E1],[8.6514047E0,4.9873348E1],[8.6513988E0,4.98733841E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551427,"cost":0,"distance":4},"geometry":{"type":"LineString","coordinates":[[8.6513988E0,4.98733841E1],[8.65139E0,4.98734211E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551424,"cost":5,"distance":70},"geometry":{"type":"LineString","coordinates":[[8.65139E0,4.98734211E1],[8.6513679E0,4.9873488E1],[8.6512738E0,4.98737519E1],[8.6511757E0,4.98740344E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551424,"cost":1,"distance":7},"geometry":{"type":"LineString","coordinates":[[8.6511757E0,4.98740344E1],[8.6511536E0,4.98740994E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201687302,"cost":4,"distance":52},"geometry":{"type":"LineString","coordinates":[[8.6511536E0,4.98740994E1],[8.6510817E0,4.98743116E1],[8.651003E0,4.98745578E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551432,"cost":8,"distance":113},"geometry":{"type":"LineString","coordinates":[[8.651003E0,4.98745578E1],[8.6509721E0,4.98746543E1],[8.650876E0,4.98749577E1],[8.6507742E0,4.98752626E1],[8.6506871E0,4.98755414E1],[8.6506832E0,4.98755571E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551432,"cost":2,"distance":28},"geometry":{"type":"LineString","coordinates":[[8.6506832E0,4.98755571E1],[8.6506755E0,4.98755876E1],[8.6506056E0,4.98758015E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1207456799,"cost":0,"distance":4},"geometry":{"type":"LineString","coordinates":[[8.6506056E0,4.98758015E1],[8.6505953E0,4.98758329E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1207456800,"cost":1,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.6505953E0,4.98758329E1],[8.6505628E0,4.98759322E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551421,"cost":0,"distance":4},"geometry":{"type":"LineString","coordinates":[[8.6505628E0,4.98759322E1],[8.6505329E0,4.98759607E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551421,"cost":0,"distance":3},"geometry":{"type":"LineString","coordinates":[[8.6505329E0,4.98759607E1],[8.6505177E0,4.98759759E1],[8.6505132E0,4.98759797E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551421,"cost":0,"distance":6},"geometry":{"type":"LineString","coordinates":[[8.6505132E0,4.98759797E1],[8.6504785E0,4.98760087E1],[8.6504544E0,4.98760219E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551421,"cost":1,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.6504544E0,4.98760219E1],[8.6504304E0,4.98760352E1],[8.6503651E0,4.98760535E1],[8.6503173E0,4.98760631E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551421,"cost":1,"distance":8},"geometry":{"type":"LineString","coordinates":[[8.6503173E0,4.98760631E1],[8.6502623E0,4.98760632E1],[8.6501998E0,4.98760604E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":0,"distance":6},"geometry":{"type":"LineString","coordinates":[[8.6501998E0,4.98760604E1],[8.650117720690279E0,4.98760447944274E1]]}}]})", - extract_and_route( + osr::test::extract_route_to_feature( "test/darmstadt-willy-luisenplatz-highway-busway.osm.pbf", from, to, - osr::bus::parameters{}, osr::search_profile::kBus)); + osr::bus::parameters{}, osr::search_profile::kBus, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } TEST(routing, darmstadt_hbf_busses_not_on_rails) { @@ -144,8 +142,10 @@ TEST(routing, darmstadt_hbf_busses_not_on_rails) { auto const to = osr::location{49.870393, 8.633510, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":1,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.631508562388836E0,4.9872686182346236E1],[8.6315313E0,4.9872604E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":230340028,"cost":1,"distance":8},"geometry":{"type":"LineString","coordinates":[[8.6315313E0,4.9872604E1],[8.6315505E0,4.98725343E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":230340028,"cost":1,"distance":18},"geometry":{"type":"LineString","coordinates":[[8.6315505E0,4.98725343E1],[8.6315682E0,4.98724307E1],[8.6315773E0,4.98723775E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":973475460,"cost":0,"distance":5},"geometry":{"type":"LineString","coordinates":[[8.6315773E0,4.98723775E1],[8.6315847E0,4.98723341E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":973475460,"cost":0,"distance":4},"geometry":{"type":"LineString","coordinates":[[8.6315847E0,4.98723341E1],[8.6315902E0,4.98723017E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":973478659,"cost":2,"distance":21},"geometry":{"type":"LineString","coordinates":[[8.6315902E0,4.98723017E1],[8.6316178E0,4.98721392E1],[8.6316226E0,4.98721109E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":230340027,"cost":2,"distance":28},"geometry":{"type":"LineString","coordinates":[[8.6316226E0,4.98721109E1],[8.6316407E0,4.98720468E1],[8.6316658E0,4.98719811E1],[8.6317024E0,4.98719202E1],[8.6317402E0,4.98718677E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":992498844,"cost":1,"distance":18},"geometry":{"type":"LineString","coordinates":[[8.6317402E0,4.98718677E1],[8.6318654E0,4.98717225E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":973477991,"cost":2,"distance":22},"geometry":{"type":"LineString","coordinates":[[8.6318654E0,4.98717225E1],[8.6320127E0,4.98715538E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":973485144,"cost":2,"distance":21},"geometry":{"type":"LineString","coordinates":[[8.6320127E0,4.98715538E1],[8.6321536E0,4.98713891E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1113008801,"cost":1,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.6321536E0,4.98713891E1],[8.6322163E0,4.98713158E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":973477394,"cost":1,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.6322163E0,4.98713158E1],[8.6322781E0,4.98712435E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":230340026,"cost":5,"distance":72},"geometry":{"type":"LineString","coordinates":[[8.6322781E0,4.98712435E1],[8.6323387E0,4.98711721E1],[8.6327576E0,4.98706785E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":281583585,"cost":0,"distance":4},"geometry":{"type":"LineString","coordinates":[[8.6327576E0,4.98706785E1],[8.632783E0,4.98706484E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":281583585,"cost":2,"distance":22},"geometry":{"type":"LineString","coordinates":[[8.632783E0,4.98706484E1],[8.6329395E0,4.9870473E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551444,"cost":1,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.6329395E0,4.9870473E1],[8.632991E0,4.98704372E1],[8.6330466E0,4.98704073E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551443,"cost":0,"distance":2},"geometry":{"type":"LineString","coordinates":[[8.6330466E0,4.98704073E1],[8.633068E0,4.98703983E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551449,"cost":1,"distance":10},"geometry":{"type":"LineString","coordinates":[[8.633068E0,4.98703983E1],[8.633114E0,4.98703832E1],[8.6331557E0,4.98703735E1],[8.633201E0,4.98703665E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551447,"cost":1,"distance":8},"geometry":{"type":"LineString","coordinates":[[8.633201E0,4.98703665E1],[8.6333066E0,4.98703645E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551445,"cost":0,"distance":5},"geometry":{"type":"LineString","coordinates":[[8.6333066E0,4.98703645E1],[8.6333799E0,4.98703738E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":1,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.6333799E0,4.98703738E1],[8.633510410792013E0,4.9870391759984216E1]]}}]})", - extract_and_route("test/da_hbf_2.osm.pbf", from, to, - osr::bus::parameters{}, osr::search_profile::kBus)); + osr::test::extract_route_to_feature( + "test/da_hbf_2.osm.pbf", from, to, osr::bus::parameters{}, + osr::search_profile::kBus, osr::direction::kForward, + osr::routing_algorithm::kDijkstra)); } TEST(routing, a17_access_yes_barrier) { @@ -154,12 +154,16 @@ TEST(routing, a17_access_yes_barrier) { auto const to = osr::location{51.01311341142, 13.717227005180, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":3,"distance":43},"geometry":{"type":"LineString","coordinates":[[1.3726364319752435E1,5.1008833043882724E1],[1.37258517E1,5.10090094E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":233629713,"cost":1,"distance":14},"geometry":{"type":"LineString","coordinates":[[1.37258517E1,5.10090094E1],[1.37256789E1,5.10090685E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":505372075,"cost":2,"distance":41},"geometry":{"type":"LineString","coordinates":[[1.37256789E1,5.10090685E1],[1.3725181E1,5.10092599E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":318372932,"cost":8,"distance":136},"geometry":{"type":"LineString","coordinates":[[1.3725181E1,5.10092599E1],[1.37248222E1,5.10093998E1],[1.37241306E1,5.10097037E1],[1.37235956E1,5.10099611E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":10682579,"cost":10,"distance":159},"geometry":{"type":"LineString","coordinates":[[1.37235956E1,5.10099611E1],[1.37231133E1,5.10102182E1],[1.37227302E1,5.10104277E1],[1.3722152E1,5.10107639E1],[1.37219044E1,5.10109094E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":318372935,"cost":13,"distance":219},"geometry":{"type":"LineString","coordinates":[[1.37219044E1,5.10109094E1],[1.3721322E1,5.10112584E1],[1.37201667E1,5.1011907E1],[1.37195582E1,5.10122109E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":10682549,"cost":4,"distance":67},"geometry":{"type":"LineString","coordinates":[[1.37195582E1,5.10122109E1],[1.37191778E1,5.10123852E1],[1.37189568E1,5.10124808E1],[1.37187802E1,5.10125572E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":8,"distance":127},"geometry":{"type":"LineString","coordinates":[[1.37187802E1,5.10125572E1],[1.3718396E1,5.10127141E1],[1.37180063E1,5.1012866E1],[1.3717246938023868E1,5.101313563118154E1]]}}]})", - extract_and_route("test/a17-barrier-access-yes.osm.pbf", from, to, - osr::bus::parameters{}, osr::search_profile::kBus)); + osr::test::extract_route_to_feature( + "test/a17-barrier-access-yes.osm.pbf", from, to, + osr::bus::parameters{}, osr::search_profile::kBus, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":3,"distance":43},"geometry":{"type":"LineString","coordinates":[[1.3726364319752435E1,5.1008833043882724E1],[1.37258517E1,5.10090094E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":233629713,"cost":1,"distance":14},"geometry":{"type":"LineString","coordinates":[[1.37258517E1,5.10090094E1],[1.37256789E1,5.10090685E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":505372075,"cost":2,"distance":41},"geometry":{"type":"LineString","coordinates":[[1.37256789E1,5.10090685E1],[1.3725181E1,5.10092599E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":318372932,"cost":8,"distance":136},"geometry":{"type":"LineString","coordinates":[[1.3725181E1,5.10092599E1],[1.37248222E1,5.10093998E1],[1.37241306E1,5.10097037E1],[1.37235956E1,5.10099611E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":10682579,"cost":10,"distance":159},"geometry":{"type":"LineString","coordinates":[[1.37235956E1,5.10099611E1],[1.37231133E1,5.10102182E1],[1.37227302E1,5.10104277E1],[1.3722152E1,5.10107639E1],[1.37219044E1,5.10109094E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":318372935,"cost":13,"distance":219},"geometry":{"type":"LineString","coordinates":[[1.37219044E1,5.10109094E1],[1.3721322E1,5.10112584E1],[1.37201667E1,5.1011907E1],[1.37195582E1,5.10122109E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":10682549,"cost":4,"distance":67},"geometry":{"type":"LineString","coordinates":[[1.37195582E1,5.10122109E1],[1.37191778E1,5.10123852E1],[1.37189568E1,5.10124808E1],[1.37187802E1,5.10125572E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":8,"distance":127},"geometry":{"type":"LineString","coordinates":[[1.37187802E1,5.10125572E1],[1.3718396E1,5.10127141E1],[1.37180063E1,5.1012866E1],[1.3717246938023868E1,5.101313563118154E1]]}}]})", - extract_and_route("test/a17-barrier-access-yes.osm.pbf", from, to, - osr::car::parameters{}, osr::search_profile::kCar)); + osr::test::extract_route_to_feature( + "test/a17-barrier-access-yes.osm.pbf", from, to, + osr::car::parameters{}, osr::search_profile::kCar, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } TEST(routing, rome_bus_highway_service) { @@ -168,8 +172,10 @@ TEST(routing, rome_bus_highway_service) { auto const to = osr::location{41.893381, 12.509254, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":1,"distance":14},"geometry":{"type":"LineString","coordinates":[[1.2499583294345202E1,4.1898267708640205E1],[1.24996984E1,4.18981975E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":178469121,"cost":0,"distance":1},"geometry":{"type":"LineString","coordinates":[[1.24996984E1,4.18981975E1],[1.24997079E1,4.1898192E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":779566386,"cost":1,"distance":13},"geometry":{"type":"LineString","coordinates":[[1.24997079E1,4.1898192E1],[1.24997354E1,4.18981718E1],[1.24997634E1,4.18981526E1],[1.24997908E1,4.18981316E1],[1.24998169E1,4.18981104E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":108571049,"cost":1,"distance":17},"geometry":{"type":"LineString","coordinates":[[1.24998169E1,4.18981104E1],[1.24998609E1,4.18980917E1],[1.24998802E1,4.18980828E1],[1.24998985E1,4.18980731E1],[1.2499988E1,4.18980283E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":108571049,"cost":2,"distance":27},"geometry":{"type":"LineString","coordinates":[[1.2499988E1,4.18980283E1],[1.25000658E1,4.18979802E1],[1.25001825E1,4.18979098E1],[1.25002358E1,4.18978772E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":108571049,"cost":7,"distance":97},"geometry":{"type":"LineString","coordinates":[[1.25002358E1,4.18978772E1],[1.25004759E1,4.18977302E1],[1.250114E1,4.18973194E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":108571049,"cost":8,"distance":118},"geometry":{"type":"LineString","coordinates":[[1.250114E1,4.18973194E1],[1.25022394E1,4.18966473E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":108571049,"cost":0,"distance":5},"geometry":{"type":"LineString","coordinates":[[1.25022394E1,4.18966473E1],[1.25022909E1,4.18966163E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":108571049,"cost":8,"distance":110},"geometry":{"type":"LineString","coordinates":[[1.25022909E1,4.18966163E1],[1.2503157E1,4.1896087E1],[1.25033143E1,4.18959856E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":108571049,"cost":0,"distance":3},"geometry":{"type":"LineString","coordinates":[[1.25033143E1,4.18959856E1],[1.2503338E1,4.18959696E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":169787522,"cost":6,"distance":90},"geometry":{"type":"LineString","coordinates":[[1.2503338E1,4.18959696E1],[1.25035415E1,4.18958431E1],[1.25037819E1,4.18957071E1],[1.25039436E1,4.18956151E1],[1.2504202E1,4.18954714E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":169787522,"cost":2,"distance":34},"geometry":{"type":"LineString","coordinates":[[1.2504202E1,4.18954714E1],[1.25045271E1,4.18952903E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":169787522,"cost":2,"distance":33},"geometry":{"type":"LineString","coordinates":[[1.25045271E1,4.18952903E1],[1.25048483E1,4.18951093E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":169787522,"cost":2,"distance":25},"geometry":{"type":"LineString","coordinates":[[1.25048483E1,4.18951093E1],[1.25050911E1,4.18949781E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":169787522,"cost":2,"distance":25},"geometry":{"type":"LineString","coordinates":[[1.25050911E1,4.18949781E1],[1.25053286E1,4.18948431E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":169787522,"cost":6,"distance":87},"geometry":{"type":"LineString","coordinates":[[1.25053286E1,4.18948431E1],[1.25060572E1,4.18944366E1],[1.25061337E1,4.18943935E1],[1.25061656E1,4.18943746E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":169787522,"cost":1,"distance":11},"geometry":{"type":"LineString","coordinates":[[1.25061656E1,4.18943746E1],[1.25062563E1,4.18943343E1],[1.25062818E1,4.1894324E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":131476998,"cost":0,"distance":6},"geometry":{"type":"LineString","coordinates":[[1.25062818E1,4.1894324E1],[1.25063202E1,4.1894308E1],[1.25063444E1,4.18943007E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":131476998,"cost":0,"distance":6},"geometry":{"type":"LineString","coordinates":[[1.25063444E1,4.18943007E1],[1.25063711E1,4.18942925E1],[1.25064095E1,4.18942807E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":131476998,"cost":7,"distance":101},"geometry":{"type":"LineString","coordinates":[[1.25064095E1,4.18942807E1],[1.25064528E1,4.1894266E1],[1.25066818E1,4.18941938E1],[1.25072008E1,4.18940218E1],[1.25075235E1,4.18939205E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":131476998,"cost":8,"distance":105},"geometry":{"type":"LineString","coordinates":[[1.25075235E1,4.18939205E1],[1.25086902E1,4.18935413E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":131476998,"cost":2,"distance":22},"geometry":{"type":"LineString","coordinates":[[1.25086902E1,4.18935413E1],[1.25089339E1,4.18934636E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":2,"distance":30},"geometry":{"type":"LineString","coordinates":[[1.25089339E1,4.18934636E1],[1.2509243277334367E1,4.1893362769664456E1]]}}]})", - extract_and_route("test/rome-piazza-vittorio-emanuele.osm.pbf", from, to, - osr::bus::parameters{}, osr::search_profile::kBus)); + osr::test::extract_route_to_feature( + "test/rome-piazza-vittorio-emanuele.osm.pbf", from, to, + osr::bus::parameters{}, osr::search_profile::kBus, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } TEST(routing, switzerland_motorway_shortcut) { @@ -178,8 +184,10 @@ TEST(routing, switzerland_motorway_shortcut) { auto const to = osr::location{47.31075422405, 9.575005944968, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":10,"distance":284},"geometry":{"type":"LineString","coordinates":[[9.561901310876577E0,4.730307704630513E1],[9.5622401E0,4.73032964E1],[9.5631905E0,4.73039245E1],[9.5638819E0,4.73043897E1],[9.564557E0,4.73048612E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":345464997,"cost":3,"distance":89},"geometry":{"type":"LineString","coordinates":[[9.564557E0,4.73048612E1],[9.5649083E0,4.73051131E1],[9.5653714E0,4.73054411E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":345464989,"cost":25,"distance":706},"geometry":{"type":"LineString","coordinates":[[9.5653714E0,4.73054411E1],[9.5662414E0,4.73060697E1],[9.5670476E0,4.73066468E1],[9.5678211E0,4.73071787E1],[9.5683852E0,4.73075441E1],[9.5689533E0,4.7307885E1],[9.5697104E0,4.73083001E1],[9.5704498E0,4.73086789E1],[9.5713228E0,4.73090933E1],[9.5719851E0,4.73093937E1],[9.5724251E0,4.73095851E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":345464996,"cost":5,"distance":130},"geometry":{"type":"LineString","coordinates":[[9.5724251E0,4.73095851E1],[9.573867E0,4.73102321E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":4,"distance":104},"geometry":{"type":"LineString","coordinates":[[9.573867E0,4.73102321E1],[9.575011315268094E0,4.7310748756107586E1]]}}]})", - extract_and_route("test/switzerland-motorway-shortcut.osm.pbf", from, to, - osr::car::parameters{}, osr::search_profile::kCar)); + osr::test::extract_route_to_feature( + "test/switzerland-motorway-shortcut.osm.pbf", from, to, + osr::car::parameters{}, osr::search_profile::kCar, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } TEST(routing, ballwil_shortcut) { @@ -189,8 +197,10 @@ TEST(routing, ballwil_shortcut) { auto const to = osr::location{47.15347392750, 8.316863681682, osr::kNoLevel}; EXPECT_EQ( R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":12,"distance":104},"geometry":{"type":"LineString","coordinates":[[8.315623672478951E0,4.715570128880367E1],[8.315628E0,4.71556617E1],[8.3156385E0,4.71556178E1],[8.3156641E0,4.71555631E1],[8.3157083E0,4.71554997E1],[8.3158538E0,4.71552882E1],[8.3160479E0,4.71549502E1],[8.3161126E0,4.71548364E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":30743688,"cost":10,"distance":80},"geometry":{"type":"LineString","coordinates":[[8.3161126E0,4.71548364E1],[8.316494E0,4.71541641E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":30743688,"cost":6,"distance":51},"geometry":{"type":"LineString","coordinates":[[8.316494E0,4.71541641E1],[8.3167335E0,4.71537386E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":4,"distance":32},"geometry":{"type":"LineString","coordinates":[[8.3167335E0,4.71537386E1],[8.316879613965764E0,4.715347805943454E1]]}}]})", - extract_and_route("test/ballwill-shortcut.osm.pbf", from, to, - osr::car::parameters{}, osr::search_profile::kCar)); + osr::test::extract_route_to_feature( + "test/ballwill-shortcut.osm.pbf", from, to, osr::car::parameters{}, + osr::search_profile::kCar, osr::direction::kForward, + osr::routing_algorithm::kDijkstra)); } TEST(routing, bus_platform) { @@ -198,6 +208,9 @@ TEST(routing, bus_platform) { auto const from = osr::location{49.8755750, 8.6472192, osr::kNoLevel}; auto const to = osr::location{49.8761539, 8.6503118, osr::kNoLevel}; EXPECT_EQ( - R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":0,"distance":1},"geometry":{"type":"LineString","coordinates":[[8.647215893993957E0,4.987558480274741E1],[8.6472223E0,4.98755857E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551411,"cost":0,"distance":6},"geometry":{"type":"LineString","coordinates":[[8.6472223E0,4.98755857E1],[8.6473042E0,4.98755972E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551411,"cost":1,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.6473042E0,4.98755972E1],[8.6473987E0,4.98756104E1],[8.6474599E0,4.98756205E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551411,"cost":0,"distance":8},"geometry":{"type":"LineString","coordinates":[[8.6474599E0,4.98756205E1],[8.647511E0,4.98756289E1],[8.6475641E0,4.98756376E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551411,"cost":1,"distance":17},"geometry":{"type":"LineString","coordinates":[[8.6475641E0,4.98756376E1],[8.6477018E0,4.98756603E1],[8.6477364E0,4.98756669E1],[8.6477912E0,4.98756773E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551413,"cost":1,"distance":15},"geometry":{"type":"LineString","coordinates":[[8.6477912E0,4.98756773E1],[8.6479897E0,4.98757129E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551413,"cost":1,"distance":15},"geometry":{"type":"LineString","coordinates":[[8.6479897E0,4.98757129E1],[8.6480341E0,4.9875721E1],[8.64819E0,4.98757429E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551413,"cost":1,"distance":12},"geometry":{"type":"LineString","coordinates":[[8.64819E0,4.98757429E1],[8.6483493E0,4.98757643E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551413,"cost":0,"distance":5},"geometry":{"type":"LineString","coordinates":[[8.6483493E0,4.98757643E1],[8.6484161E0,4.9875773E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551412,"cost":1,"distance":14},"geometry":{"type":"LineString","coordinates":[[8.6484161E0,4.9875773E1],[8.648613E0,4.9875798E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551412,"cost":1,"distance":20},"geometry":{"type":"LineString","coordinates":[[8.648613E0,4.9875798E1],[8.6488875E0,4.9875833E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551412,"cost":0,"distance":4},"geometry":{"type":"LineString","coordinates":[[8.6488875E0,4.9875833E1],[8.648948E0,4.98758407E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551412,"cost":1,"distance":8},"geometry":{"type":"LineString","coordinates":[[8.648948E0,4.98758407E1],[8.6490562E0,4.98758544E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551422,"cost":3,"distance":41},"geometry":{"type":"LineString","coordinates":[[8.6490562E0,4.98758544E1],[8.6495122E0,4.98759191E1],[8.6496122E0,4.9875934E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551422,"cost":1,"distance":10},"geometry":{"type":"LineString","coordinates":[[8.6496122E0,4.9875934E1],[8.6497483E0,4.9875948E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551417,"cost":1,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.6497483E0,4.9875948E1],[8.6498691E0,4.9875976E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551417,"cost":1,"distance":17},"geometry":{"type":"LineString","coordinates":[[8.6498691E0,4.9875976E1],[8.6500904E0,4.98760396E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551418,"cost":1,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.6500904E0,4.98760396E1],[8.6502086E0,4.98760764E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551418,"cost":1,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.6502086E0,4.98760764E1],[8.6502881E0,4.9876129E1],[8.6503107E0,4.98761538E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":0,"distance":0},"geometry":{"type":"LineString","coordinates":[[8.6503107E0,4.98761538E1],[8.650311050022971E0,4.98761541839459E1]]}}]})", extract_and_route( - "test/darmstadt-bismarckstr.osm.pbf", from, to, osr::bus::parameters{}, osr::search_profile::kBus)); + R"({"type":"FeatureCollection","metadata":{},"features":[{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":0,"distance":1},"geometry":{"type":"LineString","coordinates":[[8.647215893993957E0,4.987558480274741E1],[8.6472223E0,4.98755857E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551411,"cost":0,"distance":6},"geometry":{"type":"LineString","coordinates":[[8.6472223E0,4.98755857E1],[8.6473042E0,4.98755972E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551411,"cost":1,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.6473042E0,4.98755972E1],[8.6473987E0,4.98756104E1],[8.6474599E0,4.98756205E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551411,"cost":0,"distance":8},"geometry":{"type":"LineString","coordinates":[[8.6474599E0,4.98756205E1],[8.647511E0,4.98756289E1],[8.6475641E0,4.98756376E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551411,"cost":1,"distance":17},"geometry":{"type":"LineString","coordinates":[[8.6475641E0,4.98756376E1],[8.6477018E0,4.98756603E1],[8.6477364E0,4.98756669E1],[8.6477912E0,4.98756773E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551413,"cost":1,"distance":15},"geometry":{"type":"LineString","coordinates":[[8.6477912E0,4.98756773E1],[8.6479897E0,4.98757129E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551413,"cost":1,"distance":15},"geometry":{"type":"LineString","coordinates":[[8.6479897E0,4.98757129E1],[8.6480341E0,4.9875721E1],[8.64819E0,4.98757429E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551413,"cost":1,"distance":12},"geometry":{"type":"LineString","coordinates":[[8.64819E0,4.98757429E1],[8.6483493E0,4.98757643E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551413,"cost":0,"distance":5},"geometry":{"type":"LineString","coordinates":[[8.6483493E0,4.98757643E1],[8.6484161E0,4.9875773E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551412,"cost":1,"distance":14},"geometry":{"type":"LineString","coordinates":[[8.6484161E0,4.9875773E1],[8.648613E0,4.9875798E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551412,"cost":1,"distance":20},"geometry":{"type":"LineString","coordinates":[[8.648613E0,4.9875798E1],[8.6488875E0,4.9875833E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551412,"cost":0,"distance":4},"geometry":{"type":"LineString","coordinates":[[8.6488875E0,4.9875833E1],[8.648948E0,4.98758407E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551412,"cost":1,"distance":8},"geometry":{"type":"LineString","coordinates":[[8.648948E0,4.98758407E1],[8.6490562E0,4.98758544E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551422,"cost":3,"distance":41},"geometry":{"type":"LineString","coordinates":[[8.6490562E0,4.98758544E1],[8.6495122E0,4.98759191E1],[8.6496122E0,4.9875934E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551422,"cost":1,"distance":10},"geometry":{"type":"LineString","coordinates":[[8.6496122E0,4.9875934E1],[8.6497483E0,4.9875948E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551417,"cost":1,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.6497483E0,4.9875948E1],[8.6498691E0,4.9875976E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551417,"cost":1,"distance":17},"geometry":{"type":"LineString","coordinates":[[8.6498691E0,4.9875976E1],[8.6500904E0,4.98760396E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551418,"cost":1,"distance":9},"geometry":{"type":"LineString","coordinates":[[8.6500904E0,4.98760396E1],[8.6502086E0,4.98760764E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":1201551418,"cost":1,"distance":11},"geometry":{"type":"LineString","coordinates":[[8.6502086E0,4.98760764E1],[8.6502881E0,4.9876129E1],[8.6503107E0,4.98761538E1]]}},{"type":"Feature","properties":{"level":0E0,"osm_way_id":0,"cost":0,"distance":0},"geometry":{"type":"LineString","coordinates":[[8.6503107E0,4.98761538E1],[8.650311050022971E0,4.98761541839459E1]]}}]})", + osr::test::extract_route_to_feature( + "test/darmstadt-bismarckstr.osm.pbf", from, to, + osr::bus::parameters{}, osr::search_profile::kBus, + osr::direction::kForward, osr::routing_algorithm::kDijkstra)); } diff --git a/test/sliding_window_test.cc b/test/sliding_window_test.cc new file mode 100644 index 00000000..f0fc38e0 --- /dev/null +++ b/test/sliding_window_test.cc @@ -0,0 +1,147 @@ +#include "gtest/gtest.h" +#include +#include +#include "osr/util/sliding_window.h" + +#include "utl/enumerate.h" + +TEST(sliding_window, basic1) { + std::vector v(5); + std::iota(v.begin(), v.end(), 0); + + // Radius 1: width 3. + // Windows centered at 0, 1, 2, 3, 4. + // [null, 0, 1] + // [0, 1, 2] + // [1, 2, 3] + // [2, 3, 4] + // [3, 4, null] + + auto count = 0; + + const auto window_range = osr::sliding_window<1>(v); + for (const auto& [i, w] : utl::enumerate(window_range)) { + if (i == 0U) { + EXPECT_EQ(w[-2], v.end()); + EXPECT_EQ(w[-1], v.end()); + EXPECT_EQ(*w.focus(), 0); + EXPECT_EQ(*w[1], 1); + EXPECT_EQ(w[2], v.end()); + } else if (i == 1U) { + EXPECT_EQ(w[-2], v.end()); + EXPECT_EQ(*w[-1], 0); + EXPECT_EQ(*w.focus(), 1); + EXPECT_EQ(*w[1], 2); + EXPECT_EQ(w[2], v.end()); + } else if (i == 2U) { + EXPECT_EQ(w[-2], v.end()); + EXPECT_EQ(*w[-1], 1); + EXPECT_EQ(*w.focus(), 2); + EXPECT_EQ(*w[1], 3); + EXPECT_EQ(w[2], v.end()); + } else if (i == 3U) { + EXPECT_EQ(w[-2], v.end()); + EXPECT_EQ(*w[-1], 2); + EXPECT_EQ(*w.focus(), 3); + EXPECT_EQ(*w[1], 4); + EXPECT_EQ(w[2], v.end()); + } else if (i == 4U) { + EXPECT_EQ(w[-2], v.end()); + EXPECT_EQ(*w[-1], 3); + EXPECT_EQ(*w.focus(), 4); + EXPECT_EQ(w[1], v.end()); + EXPECT_EQ(w[2], v.end()); + } + count++; + } + EXPECT_EQ(count, 5); +} + +TEST(sliding_window, empty) { + std::vector v; + + const auto window_range = osr::sliding_window<1>(v); + EXPECT_EQ(window_range.begin(), window_range.end()); +} + +TEST(sliding_window, singleton) { + std::vector v = { 1 }; + const auto window_range = osr::sliding_window<1>(v); + auto iter = window_range.begin(); + + EXPECT_NE(iter, window_range.end()); + const auto w = *iter; + + // Radius 1: width 3. + // Expected [null, 1, null] + EXPECT_EQ(w[-2], v.end()); + EXPECT_EQ(w[-1], v.end()); + EXPECT_EQ(*w.focus(), 1); + EXPECT_EQ(w[1], v.end()); + EXPECT_EQ(w[2], v.end()); + + ++iter; + EXPECT_EQ(iter, window_range.end()); +} + +TEST(sliding_window, basic2) { + std::vector v(5); + std::iota(v.begin(), v.end(), 0); + std::reverse(v.begin(), v.end()); + // Radius 2: width 5. + // Windows centered at 4, 3, 2, 1, 0. + // [null, null, 4, 3, 2] + // [null, 4, 3, 2, 1] + // [4, 3, 2, 1, 0] + // [3, 2, 1, 0, null] + // [2, 1, 0, null, null] + + auto count = 0; + + const auto window_range = osr::sliding_window<2>(v); + for (const auto& [i, w] : utl::enumerate(window_range)) { + if (i == 0U) { + EXPECT_EQ(w[-3], v.end()); + EXPECT_EQ(w[-2], v.end()); + EXPECT_EQ(w[-1], v.end()); + EXPECT_EQ(*w.focus(), 4); + EXPECT_EQ(*w[1], 3); + EXPECT_EQ(*w[2], 2); + EXPECT_EQ(w[3], v.end()); + } else if (i == 1U) { + EXPECT_EQ(w[-3], v.end()); + EXPECT_EQ(w[-2], v.end()); + EXPECT_EQ(*w[-1], 4); + EXPECT_EQ(*w.focus(), 3); + EXPECT_EQ(*w[1], 2); + EXPECT_EQ(*w[2], 1); + EXPECT_EQ(w[3], v.end()); + } else if (i == 2U) { + EXPECT_EQ(w[-3], v.end()); + EXPECT_EQ(*w[-2], 4); + EXPECT_EQ(*w[-1], 3); + EXPECT_EQ(*w.focus(), 2); + EXPECT_EQ(*w[1], 1); + EXPECT_EQ(*w[2], 0); + EXPECT_EQ(w[3], v.end()); + } else if (i == 3U) { + EXPECT_EQ(w[-3], v.end()); + EXPECT_EQ(*w[-2], 3); + EXPECT_EQ(*w[-1], 2); + EXPECT_EQ(*w.focus(), 1); + EXPECT_EQ(*w[1], 0); + EXPECT_EQ(w[2], v.end()); + EXPECT_EQ(w[3], v.end()); + } else if (i == 4U) { + EXPECT_EQ(w[-3], v.end()); + EXPECT_EQ(*w[-2], 2); + EXPECT_EQ(*w[-1], 1); + EXPECT_EQ(*w.focus(), 0); + EXPECT_EQ(w[1], v.end()); + EXPECT_EQ(w[2], v.end()); + EXPECT_EQ(w[3], v.end()); + } + count++; + } + EXPECT_EQ(count, 5); +} diff --git a/test/spessartring-fiedlerweg-darmstadt-pbf.osm.pbf b/test/spessartring-fiedlerweg-darmstadt-pbf.osm.pbf new file mode 100644 index 0000000000000000000000000000000000000000..152ed6f24a0e065ebad7f890600359deac2057fd GIT binary patch literal 28908 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%0Ab4t(A)GDATY5(Eh% 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 L5%2#4f6PZ##9mjT literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html index 134b6c5f..3b775b93 100644 --- a/web/index.html +++ b/web/index.html @@ -12,8 +12,8 @@ -G -

- - - - -
- Test +
+ G + +
+ + + + +
+ Test +
+
+
+ + + -
\ No newline at end of file From 4dfa8c1fae2a36d5770a395c903cba2c7c5da076 Mon Sep 17 00:00:00 2001 From: Hendrik Siemund Date: Fri, 10 Jul 2026 11:31:48 +0200 Subject: [PATCH 2/2] make gcc build --- src/routing/instructions/meta_data.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routing/instructions/meta_data.cc b/src/routing/instructions/meta_data.cc index 8d3bcc28..659d2117 100644 --- a/src/routing/instructions/meta_data.cc +++ b/src/routing/instructions/meta_data.cc @@ -264,7 +264,7 @@ void add_alternatives(ways const& w, const auto forward_hub_node_idx = static_cast(std::distance(osm_nodes.begin(), forward_it)); - if (forward_hub_node_idx + 1 < osm_nodes.size() && + if (forward_hub_node_idx + 1U < osm_nodes.size() && (alt_way != exit_way_idx || !exit_from_hub.is_way_aligned())) { way_segment_t alt_seg_forw = { .way_idx_ = alt_way,

v!|U;0taq*!yB_*#ch$y=Cc=opygN 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 literal 0 HcmV?d00001 diff --git a/test/include/osr/routing/instructions/routing_instructions_input.h b/test/include/osr/routing/instructions/routing_instructions_input.h new file mode 100644 index 00000000..ce0f324c --- /dev/null +++ b/test/include/osr/routing/instructions/routing_instructions_input.h @@ -0,0 +1,28 @@ +#pragma once + +#include +#include + +#include "osr/location.h" +#include "osr/routing/algorithms.h" +#include "boost/json.hpp" +#include "osr/routing/profile.h" + +namespace osr::test { + +struct routing_instructions_input { + std::string test_name; + std::string osm_file; + location start; + location end; + search_profile profile; + direction direction; + routing_algorithm routing_algo; + std::vector expected_actions; +}; + +std::vector load_from_json( + std::filesystem::path const& test_cases_path, + std::filesystem::path const& osm_pbf_dir_path); + +} diff --git a/test/include/osr/routing/instructions/routing_instructions_test_fixture.h b/test/include/osr/routing/instructions/routing_instructions_test_fixture.h new file mode 100644 index 00000000..aab9effe --- /dev/null +++ b/test/include/osr/routing/instructions/routing_instructions_test_fixture.h @@ -0,0 +1,11 @@ +#pragma once + +#include "gtest/gtest.h" +#include "osr/routing/instructions/routing_instructions_input.h" + +namespace osr::test { + +class routing_instructions_test_fixture + : public testing::TestWithParam {}; + +} // namespace osr diff --git a/test/include/osr/routing/routing_test_util.h b/test/include/osr/routing/routing_test_util.h new file mode 100644 index 00000000..6dfb6498 --- /dev/null +++ b/test/include/osr/routing/routing_test_util.h @@ -0,0 +1,29 @@ +#pragma once + +#include + +#include "osr/routing/path.h" +#include "osr/location.h" +#include "osr/geojson.h" +#include "osr/lookup.h" +#include "osr/routing/route.h" + +namespace osr::test { + +std::optional route(ways const& w, lookup const& l, location const& from, + location const& to, profile_parameters const& params, + search_profile sp, direction dir, + routing_algorithm algo); + +std::optional extract_and_route(std::string_view path, + location const& from, location const& to, + profile_parameters const& params, + search_profile sp, direction dir, + routing_algorithm algo); + +std::string extract_route_to_feature(std::string_view path, + location const& from, location const& to, + profile_parameters const& params, + search_profile sp, direction dir, + routing_algorithm algo); +} // namespace osr::test \ No newline at end of file diff --git a/test/instruction-test-cases.json b/test/instruction-test-cases.json new file mode 100644 index 00000000..baf7e950 --- /dev/null +++ b/test/instruction-test-cases.json @@ -0,0 +1,3860 @@ +[ + { + "name": "intersection_right_turn", + "osm_file": "komponistenviertel-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.9883621E1, + "lng": 8.677029E0, + "lvl": 0 + }, + "end": { + "lat": 4.9885453E1, + "lng": 8.67891E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "turn", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_left_turn", + "osm_file": "komponistenviertel-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.988452E1, + "lng": 8.675994E0, + "lvl": 0 + }, + "end": { + "lat": 4.9884308E1, + "lng": 8.674567E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_continue", + "osm_file": "komponistenviertel-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.9883621E1, + "lng": 8.677029E0, + "lvl": 0 + }, + "end": { + "lat": 4.9884755E1, + "lng": 8.675667E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_composition_1", + "osm_file": "komponistenviertel-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.9882061E1, + "lng": 8.679368E0, + "lvl": 0 + }, + "end": { + "lat": 4.9883765E1, + "lng": 8.679143E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_composition_2", + "osm_file": "komponistenviertel-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.9880222E1, + "lng": 8.67336E0, + "lvl": 0 + }, + "end": { + "lat": 4.9886988E1, + "lng": 8.677882E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "turning_at_crossing_islands_1", + "osm_file": "spessartring-fiedlerweg-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.9879340086605566E1, + "lng": 8.670534089302151E0, + "lvl": 0 + }, + "end": { + "lat": 4.987437815260495E1, + "lng": 8.669649757714751E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "turning_at_crossing_islands_2", + "osm_file": "spessartring-fiedlerweg-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.9879340086605566E1, + "lng": 8.670534089302151E0, + "lvl": 0 + }, + "end": { + "lat": 4.987560632642536E1, + "lng": 8.671821524609669E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "turning_at_crossing_islands_3", + "osm_file": "spessartring-fiedlerweg-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.9877715328501154E1, + "lng": 8.67073281287631E0, + "lvl": 0 + }, + "end": { + "lat": 4.987669864589475E1, + "lng": 8.671015668239875E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_with_turn_lanes_1", + "osm_file": "darmstadt-schloß-pbf.osm.pbf", + "start": { + "lat": 4.9873222391166394E1, + "lng": 8.657688853205684E0, + "lvl": 0 + }, + "end": { + "lat": 4.987455729158083E1, + "lng": 8.65503993885622E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "slight_left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_with_turn_lanes_2", + "osm_file": "darmstadt-schloß-pbf.osm.pbf", + "start": { + "lat": 4.9873222391166394E1, + "lng": 8.657688853205684E0, + "lvl": 0 + }, + "end": { + "lat": 4.9874871763009025E1, + "lng": 8.657660442236391E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_with_turn_lanes_3", + "osm_file": "darmstadt-schloß-pbf.osm.pbf", + "start": { + "lat": 4.987239907237583E1, + "lng": 8.657115581934875E0, + "lvl": 0 + }, + "end": { + "lat": 4.9873198674651206E1, + "lng": 8.658650183543898E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_1", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.34646489450472E1, + "lng": -1.500705396949627E0, + "lvl": 0 + }, + "end": { + "lat": 4.346430727226817E1, + "lng": -1.4990421475397682E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "exit_roundabout", + "exit": 1 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_2", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.346470404546079E1, + "lng": -1.5005710994199433E0, + "lvl": 0 + }, + "end": { + "lat": 4.346615038341835E1, + "lng": -1.4989085541240286E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 2 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_3", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.346585363422E1, + "lng": -1.4990140852794411E0, + "lvl": 0 + }, + "end": { + "lat": 4.3467167907318725E1, + "lng": -1.4974530267344903E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "exit_roundabout", + "exit": 1 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_4", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.346585363422E1, + "lng": -1.4990140852794411E0, + "lvl": 0 + }, + "end": { + "lat": 4.346832448276325E1, + "lng": -1.496589681324906E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 2 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_5", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.346706617279216E1, + "lng": -1.4985351188039715E0, + "lvl": 0 + }, + "end": { + "lat": 4.346859985122825E1, + "lng": -1.4975925480058834E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 3 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_6", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.346706617279216E1, + "lng": -1.4985351188039715E0, + "lvl": 0 + }, + "end": { + "lat": 4.3468176797315294E1, + "lng": -1.4982018514449464E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 4 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_7", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.346630474302367E1, + "lng": -1.4962553803228502E0, + "lvl": 0 + }, + "end": { + "lat": 4.3466354944983266E1, + "lng": -1.493485413059943E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 2 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_8", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.346630474302367E1, + "lng": -1.4962553803228502E0, + "lvl": 0 + }, + "end": { + "lat": 4.3464433743023335E1, + "lng": -1.4954871908480527E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "exit_roundabout", + "exit": 1 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_9", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.346630474302367E1, + "lng": -1.4962553803228502E0, + "lvl": 0 + }, + "end": { + "lat": 4.346700961219898E1, + "lng": -1.4944559790516792E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 3 + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "right_hand_roundabout_10", + "osm_file": "biarritz-roundabouts.osm.pbf", + "start": { + "lat": 4.346374948220381E1, + "lng": -1.4956169045163392E0, + "lvl": 0 + }, + "end": { + "lat": 4.346335939417662E1, + "lng": -1.4955744422604766E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 4 + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "left_hand_roundabout_1", + "osm_file": "milton-keynes-roundabouts.osm.pbf", + "start": { + "lat": 5.2039354635275714E1, + "lng": -7.772930495326875E-1, + "lvl": 0 + }, + "end": { + "lat": 5.2041241498726606E1, + "lng": -7.75970513089419E-1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 1 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "left_hand_roundabout_2", + "osm_file": "milton-keynes-roundabouts.osm.pbf", + "start": { + "lat": 5.2039354635275714E1, + "lng": -7.772930495326875E-1, + "lvl": 0 + }, + "end": { + "lat": 5.2040781024380635E1, + "lng": -7.723610680176307E-1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 2 + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "left_hand_roundabout_3", + "osm_file": "milton-keynes-roundabouts.osm.pbf", + "start": { + "lat": 5.2039354635275714E1, + "lng": -7.772930495326875E-1, + "lvl": 0 + }, + "end": { + "lat": 5.203890113249673E1, + "lng": -7.73495153167147E-1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 3 + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "left_hand_roundabout_4", + "osm_file": "milton-keynes-roundabouts.osm.pbf", + "start": { + "lat": 5.2039354635275714E1, + "lng": -7.772930495326875E-1, + "lvl": 0 + }, + "end": { + "lat": 5.2039493532197355E1, + "lng": -7.7593470859685E-1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 4 + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "left_hand_roundabout_5", + "osm_file": "milton-keynes-roundabouts.osm.pbf", + "start": { + "lat": 5.204037336020693E1, + "lng": -7.740829714938968E-1, + "lvl": 0 + }, + "end": { + "lat": 5.204300520333831E1, + "lng": -7.669083325009467E-1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 2 + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "left_hand_roundabout_6", + "osm_file": "milton-keynes-roundabouts.osm.pbf", + "start": { + "lat": 5.204038475959783E1, + "lng": -7.73959673387111E-1, + "lvl": 0 + }, + "end": { + "lat": 5.204254352110402E1, + "lng": -7.69589585974046E-1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "exit_roundabout", + "exit": 1 + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "left_hand_roundabout_7", + "osm_file": "milton-keynes-roundabouts.osm.pbf", + "start": { + "lat": 5.203836485381317E1, + "lng": -7.797354417295708E-1, + "lvl": 0 + }, + "end": { + "lat": 5.2036357996390535E1, + "lng": -7.847691437542608E-1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 2 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "left_hand_roundabout_8", + "osm_file": "milton-keynes-roundabouts.osm.pbf", + "start": { + "lat": 5.203836485381317E1, + "lng": -7.797354417295708E-1, + "lvl": 0 + }, + "end": { + "lat": 5.203870177607047E1, + "lng": -7.844374519932558E-1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 3 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "left_hand_roundabout_9", + "osm_file": "milton-keynes-roundabouts.osm.pbf", + "start": { + "lat": 5.203836485381317E1, + "lng": -7.797354417295708E-1, + "lvl": 0 + }, + "end": { + "lat": 5.203611157903134E1, + "lng": -7.794884245121523E-1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "exit_roundabout", + "exit": 1 + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_through", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.0032259584389806E1, + "lng": 8.594255760472038E0, + "lvl": 0 + }, + "end": { + "lat": 5.0066827716208735E1, + "lng": 8.611192523278106E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_ramp_off_1", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.0032259584389806E1, + "lng": 8.594255760472038E0, + "lvl": 0 + }, + "end": { + "lat": 5.005214683967307E1, + "lng": 8.615370911321406E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "ramp_off", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_ramp_off_2", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.0032259584389806E1, + "lng": 8.594255760472038E0, + "lvl": 0 + }, + "end": { + "lat": 5.0053401543938634E1, + "lng": 8.604829706814456E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "ramp_off", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_ramp_off_and_on", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.0032259584389806E1, + "lng": 8.594255760472038E0, + "lvl": 0 + }, + "end": { + "lat": 5.005324599915372E1, + "lng": 8.573831432075764E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "ramp_off", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "ramp_on", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_ramp_on_1", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.005791941387463E1, + "lng": 8.597273495597165E0, + "lvl": 0 + }, + "end": { + "lat": 5.0040185174932475E1, + "lng": 8.597645010598825E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "ramp_off", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "ramp_on", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_ramp_on_2", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.005791941387463E1, + "lng": 8.597273495597165E0, + "lvl": 0 + }, + "end": { + "lat": 5.006094038408136E1, + "lng": 8.60827006018394E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "ramp_off", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "ramp_on", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_through_2", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.005791941387463E1, + "lng": 8.597273495597165E0, + "lvl": 0 + }, + "end": { + "lat": 5.005650844189552E1, + "lng": 8.612083847258845E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_through_on_off_with_roundabout", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.005982174092185E1, + "lng": 8.607222060350068E0, + "lvl": 0 + }, + "end": { + "lat": 5.005773535792088E1, + "lng": 8.60029967017067E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "enter_roundabout" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "exit_roundabout", + "exit": 2 + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "ramp_on", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_off_on_2", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.005375527478981E1, + "lng": 8.584174924930267E0, + "lvl": 0 + }, + "end": { + "lat": 5.004362118438965E1, + "lng": 8.599316744996656E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "ramp_off", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "ramp_on", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "motorway_u_turn", + "osm_file": "frankfurter-kreuz.osm.pbf", + "start": { + "lat": 5.004744288897024E1, + "lng": 8.601198624659474E0, + "lvl": 0 + }, + "end": { + "lat": 5.003679995654403E1, + "lng": 8.596481031787249E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "ramp_off", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "stairs_left", + "osm_file": "komponistenviertel-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.988533175489982E1, + "lng": 8.683276613884857E0, + "lvl": 0 + }, + "end": { + "lat": 4.988439095168064E1, + "lng": 8.683106421215285E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "stairs", + "direction": "up", + "relative_direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "stairs_right", + "osm_file": "komponistenviertel-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.988459264152897E1, + "lng": 8.681981351700415E0, + "lvl": 0 + }, + "end": { + "lat": 4.988439095168064E1, + "lng": 8.683106421215285E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stairs", + "direction": "up", + "relative_direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "stairs_down", + "osm_file": "komponistenviertel-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.9884459199029465E1, + "lng": 8.683079285543727E0, + "lvl": 0 + }, + "end": { + "lat": 4.988526918808148E1, + "lng": 8.683190993508731E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "stairs", + "direction": "down", + "relative_direction": "straight" + }, + { + "type": "turn", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "stairs_down_and_up", + "osm_file": "komponistenviertel-darmstadt-pbf.osm.pbf", + "start": { + "lat": 4.9884459199029465E1, + "lng": 8.683079285543727E0, + "lvl": 0 + }, + "end": { + "lat": 4.988447930041048E1, + "lng": 8.682549015845979E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "stairs", + "direction": "down", + "relative_direction": "straight" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "stairs", + "direction": "up", + "relative_direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "street_crossing_elbchausee", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.354926853152634E1, + "lng": 9.851434038791496E0, + "lvl": 0 + }, + "end": { + "lat": 5.354945176982216E1, + "lng": 9.85129625321474E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "crossing", + "street": "Elbchaussee" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "crossing", + "street": "Elbschloßstraße" + }, + { + "type": "stairs", + "direction": "up", + "relative_direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "street_crossing_margarete_mrosek", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.348542436090705E1, + "lng": 1.0158613381862892E1, + "lvl": 0 + }, + "end": { + "lat": 5.348528766950329E1, + "lng": 1.0158048845331647E1, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "crossing", + "street": "Margarete-Mrosek-Bogen" + }, + { + "type": "turn", + "direction": "right" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "crossing_two_streets", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.357453883137305E1, + "lng": 9.975295334461606E0, + "lvl": 0 + }, + "end": { + "lat": 5.357423557112031E1, + "lng": 9.97678766010128E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "crossing", + "street": "Gustav-Falke-Straße" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "crossing", + "street": "Helene-Lange-Straße" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "crossing_seperated_street", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.358082827090095E1, + "lng": 9.946933387458444E0, + "lvl": 0 + }, + "end": { + "lat": 5.3580722911095506E1, + "lng": 9.94754014675354E0, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "crossing", + "street": "Methfesselstraße" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "crossing_grevenweg_1", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.355532025058787E1, + "lng": 1.0040549876621697E1, + "lvl": 0 + }, + "end": { + "lat": 5.355536300039128E1, + "lng": 1.0041125323237653E1, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "crossing", + "street": "Grevenweg" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "crossing_grevenweg_2", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.3555346282446635E1, + "lng": 1.0040344299203184E1, + "lvl": 0 + }, + "end": { + "lat": 5.355536300039128E1, + "lng": 1.0041125323237653E1, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "crossing", + "street": "Grevenweg" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "crossing_grevenweg_3", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.3555346282446635E1, + "lng": 1.0040344299203184E1, + "lvl": 0 + }, + "end": { + "lat": 5.3555322385464706E1, + "lng": 1.0040759455062217E1, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "crossing", + "street": "Grevenweg" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "crossing_grevenweg_4", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.355532135066002E1, + "lng": 1.0040550447383566E1, + "lvl": 0 + }, + "end": { + "lat": 5.3555341601387425E1, + "lng": 1.0040846537930436E1, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "crossing", + "street": "Grevenweg" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "composite_u_turn_1", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.3561102591275045E1, + "lng": 1.005151327969824E1, + "lvl": 0 + }, + "end": { + "lat": 5.35609894766971E1, + "lng": 1.0051235830037626E1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "turn_around" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "stay_left_turn_left", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.3556758465188295E1, + "lng": 1.0039910326929828E1, + "lvl": 0 + }, + "end": { + "lat": 5.3558383129953256E1, + "lng": 1.0036018930616391E1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "stay_left_turn_left_2", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.3560623055010154E1, + "lng": 1.0037864819539578E1, + "lvl": 0 + }, + "end": { + "lat": 5.356032080557574E1, + "lng": 1.0040984991173955E1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "big_intersection_turn_left_1", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.357429942480792E1, + "lng": 1.0036827067467044E1, + "lvl": 0 + }, + "end": { + "lat": 5.357416443364653E1, + "lng": 1.0034304088026772E1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "big_intersection_turn_left_2", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.3557272288340954E1, + "lng": 1.002546915365616E1, + "lvl": 0 + }, + "end": { + "lat": 5.3557330143608766E1, + "lng": 1.0020487217420223E1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "big_intersection_turn_left_3", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.361274298566116E1, + "lng": 1.0154556417747528E1, + "lvl": 0 + }, + "end": { + "lat": 5.3615740687498146E1, + "lng": 1.015249083766247E1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "big_intersection_turn_left_4", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.357907965720637E1, + "lng": 1.0043865197252217E1, + "lvl": 0 + }, + "end": { + "lat": 5.357870015546928E1, + "lng": 1.0039238473899218E1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_right_with_link", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.360003006503504E1, + "lng": 1.0067684180553924E1, + "lvl": 0 + }, + "end": { + "lat": 5.359933162630392E1, + "lng": 1.007024955066612E1, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "double_straight_stairs_1", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.3550030210691034E1, + "lng": 1.0008959192290888E1, + "lvl": 0 + }, + "end": { + "lat": 5.3550137138556806E1, + "lng": 1.000913396144952E1, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "stairs", + "direction": "down", + "relative_direction": "straight" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "double_straight_stairs_2", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.35502005770816E1, + "lng": 1.0008965449658264E1, + "lvl": 0 + }, + "end": { + "lat": 5.355019553096648E1, + "lng": 1.0008780141530394E1, + "lvl": 0 + }, + "profile": "foot", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "stairs", + "direction": "up", + "relative_direction": "straight" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "dedicated_left_turn_lane_intersection", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.347114602553626E1, + "lng": 9.942823168020368E0, + "lvl": 0 + }, + "end": { + "lat": 5.3477578761622226E1, + "lng": 9.927004897337952E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_left_turn_1", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.347541933495617E1, + "lng": 9.945460062546658E0, + "lvl": 0 + }, + "end": { + "lat": 5.347501565683655E1, + "lng": 9.949633334064655E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "intersection_left_turn_2", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.3459557738719525E1, + "lng": 9.985788515205968E0, + "lvl": 0 + }, + "end": { + "lat": 5.346064181114801E1, + "lng": 9.986372512856748E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "turn_right_with_dedicated_turn_lane_1", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.352002314782041E1, + "lng": 9.985766631838914E0, + "lvl": 0 + }, + "end": { + "lat": 5.352090677060616E1, + "lng": 9.98193479434994E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "stay", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "right" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + }, + { + "name": "follow_street_with_left_turn", + "osm_file": "hamburg.osm.pbf", + "start": { + "lat": 5.3512154935914765E1, + "lng": 9.973060365558496E0, + "lvl": 0 + }, + "end": { + "lat": 5.351626618908929E1, + "lng": 9.968133436474716E0, + "lvl": 0 + }, + "profile": "car", + "direction": "forward", + "routing_algo": "dijkstra", + "expected_actions": [ + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "none" + }, + { + "type": "turn", + "direction": "left" + }, + { + "type": "none" + }, + { + "type": "destination", + "direction": "invalid" + } + ] + } +] \ No newline at end of file diff --git a/test/komponistenviertel-darmstadt-pbf.osm.pbf b/test/komponistenviertel-darmstadt-pbf.osm.pbf new file mode 100644 index 0000000000000000000000000000000000000000..54cb3fcc2c204c78f1625767ba5bf623704115eb GIT binary patch literal 21681 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 MG-jXw55=T0uv|^zX#fBK literal 0 HcmV?d00001 diff --git a/test/milton-keynes-roundabouts.osm.pbf b/test/milton-keynes-roundabouts.osm.pbf new file mode 100644 index 0000000000000000000000000000000000000000..75285896b2bcb7198910b295b84cbe84f8860655 GIT binary patch literal 315158 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≫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