From 3a6155b0bdb306abefc6fbe008208425cb23f0cb Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Mon, 8 Jun 2026 23:57:10 -0700 Subject: [PATCH 01/20] Enable live catalog with region-aware fallback engine --- sdk_v2/cpp/CMakeLists.txt | 35 +- .../cpp/src/catalog/azure_catalog_client.cc | 407 + sdk_v2/cpp/src/catalog/azure_catalog_client.h | 84 + sdk_v2/cpp/src/catalog/azure_model_catalog.cc | 21 +- sdk_v2/cpp/src/catalog/azure_model_catalog.h | 13 +- sdk_v2/cpp/src/catalog/catalog_client.cc | 32 - sdk_v2/cpp/src/catalog/catalog_client.h | 26 +- .../cpp/src/catalog/catalog_snapshot_data.cc | 11022 ---------------- .../cpp/src/catalog/catalog_snapshot_data.h | 14 - .../src/catalog/live_catalog_client_stub.cc | 37 - .../cpp/src/catalog/static_catalog_client.cc | 86 - sdk_v2/cpp/src/download/download_manager.cc | 32 +- sdk_v2/cpp/src/download/download_manager.h | 11 +- .../cpp/src/download/model_registry_client.cc | 70 +- .../cpp/src/download/model_registry_client.h | 41 +- sdk_v2/cpp/src/http/http_client.cc | 38 +- sdk_v2/cpp/src/http/http_client.h | 25 + sdk_v2/cpp/src/manager.cc | 18 +- sdk_v2/cpp/src/model_info.cc | 9 + sdk_v2/cpp/src/model_info.h | 5 + sdk_v2/cpp/src/util/region_fallback.cc | 216 + sdk_v2/cpp/src/util/region_fallback.h | 66 + sdk_v2/cpp/test/CMakeLists.txt | 25 +- .../test/internal_api/azure_catalog_test.cc | 530 +- sdk_v2/cpp/test/internal_api/c_api_test.cc | 7 +- .../test/internal_api/catalog_cache_test.cc | 20 + sdk_v2/cpp/test/internal_api/download_test.cc | 258 +- .../cpp/test/internal_api/model_info_test.cc | 27 + .../test/internal_api/region_fallback_test.cc | 194 + .../test/internal_api/static_catalog_test.cc | 229 - sdk_v2/cpp/test/sdk_api/shared_test_env.h | 4 - .../cpp/tools/catalog_snapshot/CMakeLists.txt | 25 - sdk_v2/cpp/tools/catalog_snapshot/main.cc | 219 - 33 files changed, 1907 insertions(+), 11939 deletions(-) create mode 100644 sdk_v2/cpp/src/catalog/azure_catalog_client.cc create mode 100644 sdk_v2/cpp/src/catalog/azure_catalog_client.h delete mode 100644 sdk_v2/cpp/src/catalog/catalog_snapshot_data.cc delete mode 100644 sdk_v2/cpp/src/catalog/catalog_snapshot_data.h delete mode 100644 sdk_v2/cpp/src/catalog/live_catalog_client_stub.cc delete mode 100644 sdk_v2/cpp/src/catalog/static_catalog_client.cc create mode 100644 sdk_v2/cpp/src/util/region_fallback.cc create mode 100644 sdk_v2/cpp/src/util/region_fallback.h create mode 100644 sdk_v2/cpp/test/internal_api/region_fallback_test.cc delete mode 100644 sdk_v2/cpp/test/internal_api/static_catalog_test.cc delete mode 100644 sdk_v2/cpp/tools/catalog_snapshot/CMakeLists.txt delete mode 100644 sdk_v2/cpp/tools/catalog_snapshot/main.cc diff --git a/sdk_v2/cpp/CMakeLists.txt b/sdk_v2/cpp/CMakeLists.txt index e9b046e76..4d47eb491 100644 --- a/sdk_v2/cpp/CMakeLists.txt +++ b/sdk_v2/cpp/CMakeLists.txt @@ -42,7 +42,6 @@ endif() # -------------------------------------------------------------------------- option(FOUNDRY_LOCAL_BUILD_TESTS "Build unit tests" ON) option(FOUNDRY_LOCAL_BUILD_EXAMPLES "Build example programs" ON) -option(FOUNDRY_LOCAL_BUILD_TOOLS "Build internal build-time tools (catalog_snapshot, ...)" ON) option(FOUNDRY_LOCAL_BUILD_SERVICE "Build web service support (requires oat++)" ON) option(FOUNDRY_LOCAL_USE_WINML "Use WinML/WindowsAppSDK.ML for OnnxRuntime instead of standalone ORT" OFF) option(FOUNDRY_LOCAL_ENABLE_ASAN "Enable AddressSanitizer + UndefinedBehaviorSanitizer (Linux only)" OFF) @@ -50,7 +49,6 @@ option(FOUNDRY_LOCAL_ENABLE_ASAN "Enable AddressSanitizer + UndefinedBehaviorSan # Android: interactive examples and host tools don't run on device if(ANDROID) set(FOUNDRY_LOCAL_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) - set(FOUNDRY_LOCAL_BUILD_TOOLS OFF CACHE BOOL "" FORCE) endif() # -------------------------------------------------------------------------- @@ -115,16 +113,6 @@ if(ANDROID) list(APPEND FOUNDRY_LOCAL_PLATFORM_SOURCES src/platform/android/ssl_cert_checker.cc) endif() -# Auto-detect whether the live Azure catalog client source is present in the tree. -# When absent, the build links a stub that throws if a non-"static" catalog URL is configured. -if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/catalog/azure_catalog_client.cc") - set(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT ON) - message(STATUS "Live Azure catalog client: enabled.") -else() - set(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT OFF) - message(STATUS "Live Azure catalog client: not present — using embedded snapshot only.") -endif() - set(FOUNDRY_LOCAL_SOURCES src/c_api.cc src/items/item.cc @@ -132,12 +120,11 @@ set(FOUNDRY_LOCAL_SOURCES src/items/message_item.cc src/catalog/base_model_catalog.cc src/catalog/azure_model_catalog.cc + src/catalog/azure_catalog_client.cc src/catalog/azure_catalog_models.cc src/catalog/catalog_cache.cc src/catalog/catalog_client.cc - src/catalog/catalog_snapshot_data.cc src/catalog/local_model_scanner.cc - src/catalog/static_catalog_client.cc src/inferencing/generative/audio/audio_generator.cc src/inferencing/generative/audio/audio_session.cc src/inferencing/generative/audio/onnx_audio_generator.cc @@ -195,20 +182,13 @@ set(FOUNDRY_LOCAL_SOURCES src/util/file_lock.cc src/http/http_download.cc src/util/path_safety.cc + src/util/region_fallback.cc src/util/sha256.cc src/util/zip_extract.cc ${FOUNDRY_LOCAL_PLATFORM_SOURCES} ${FOUNDRY_LOCAL_INTERNAL_HEADERS} ) -# Append either the live Azure catalog client or a stub that throws. -# The two define the same MakeLiveCatalogClient symbol; exactly one is linked. -if(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) - list(APPEND FOUNDRY_LOCAL_SOURCES src/catalog/azure_catalog_client.cc) -else() - list(APPEND FOUNDRY_LOCAL_SOURCES src/catalog/live_catalog_client_stub.cc) -endif() - # Organize headers into filters matching the directory structure in Visual Studio source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Source" FILES ${FOUNDRY_LOCAL_SOURCES}) source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/include" PREFIX "Public Headers" FILES ${FOUNDRY_LOCAL_PUBLIC_HEADERS}) @@ -315,9 +295,6 @@ foundry_local_configure_target(foundry_local_objects PUBLIC) # points compile without __declspec(dllimport/dllexport). The DLL gets its # exports from the .def file instead. target_compile_definitions(foundry_local_objects PRIVATE FL_STATIC_LIBRARY=1) -if(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) - target_compile_definitions(foundry_local_objects PRIVATE FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT=1) -endif() # -------------------------------------------------------------------------- # Shared library — for releases and public API consumers. @@ -515,11 +492,3 @@ if(FOUNDRY_LOCAL_BUILD_EXAMPLES) target_link_options(embeddings_example PRIVATE -Wl,--disable-new-dtags) endif() endif() - -# -------------------------------------------------------------------------- -# Tools (build-time helpers — not part of the shipped SDK) -# -------------------------------------------------------------------------- -if(FOUNDRY_LOCAL_BUILD_TOOLS AND FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) - add_subdirectory(tools/catalog_snapshot) - set_target_properties(catalog_snapshot PROPERTIES FOLDER "Tools") -endif() diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc new file mode 100644 index 000000000..bfdd1b02d --- /dev/null +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -0,0 +1,407 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +#include "catalog/azure_catalog_client.h" + +#include "http/http_client.h" +#include "utils.h" + +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace fl { + +namespace { + +constexpr const char* kEntitiesPath = "/entities/crossRegion"; +constexpr int kPageSize = 50; + +// Region detection probe. +constexpr const char* kRegionProbeUrl = "https://api.catalog.azureml.ms/asset-gallery/v1.0/models"; +constexpr const char* kRegionProbeBody = R"({"filters":[],"pageSize":1})"; +constexpr const char* kServedByClusterHeader = "azureml-served-by-cluster"; +constexpr const char* kDefaultRegion = "eastus"; + +/// Strip leading/trailing whitespace. +std::string Trim(const std::string& s) { + const auto begin = s.find_first_not_of(" \t\r\n"); + if (begin == std::string::npos) { + return {}; + } + + const auto end = s.find_last_not_of(" \t\r\n"); + return s.substr(begin, end - begin + 1); +} + +/// Strip all leading/trailing single quotes. +std::string TrimSingleQuotes(const std::string& s) { + const auto begin = s.find_first_not_of('\''); + if (begin == std::string::npos) { + return {}; + } + + const auto end = s.find_last_not_of('\''); + return s.substr(begin, end - begin + 1); +} + +/// Build the values for the foundryLocal tag filter from the override string. +/// Empty override → {""} (public models). Otherwise split on ',', drop entries +/// that are empty after whitespace-trimming, then strip surrounding quotes so a +/// caller can request an explicit empty value via "''". +std::vector CreateModelFilter(const std::string& filter_override) { + if (filter_override.empty()) { + return {std::string{}}; + } + + std::vector values; + std::size_t start = 0; + while (start <= filter_override.size()) { + const auto comma = filter_override.find(',', start); + const auto count = (comma == std::string::npos) ? std::string::npos : comma - start; + const auto entry = Trim(filter_override.substr(start, count)); + + if (!entry.empty()) { + values.push_back(TrimSingleQuotes(entry)); + } + + if (comma == std::string::npos) { + break; + } + + start = comma + 1; + } + + return values; +} + +CatalogFilter MakeFilter(std::string field, std::vector values) { + CatalogFilter f; + f.field = std::move(field); + f.op = "eq"; + f.values = std::move(values); + return f; +} + +/// Extract the region from an `azureml-served-by-cluster` header value such as +/// "vienna-eastus-01" → "eastus". Returns "" if the value doesn't match. +std::string ExtractRegionFromClusterHeader(const std::string& header_value) { + static const std::regex pattern(R"(vienna-(\w+)-\d+)"); + std::smatch match; + if (std::regex_search(header_value, match, pattern)) { + return match[1].str(); + } + + return {}; +} + +/// Split a catalog URL of the form `https://{host}/api/{region}/{suffix}` into +/// its prefix ("https://{host}/api/") and suffix ("/{suffix}"). Returns false if +/// the URL doesn't match that shape, in which case it must be used verbatim. +bool TryParseRegionalCatalogUrl(const std::string& url, std::string* prefix, std::string* suffix) { + static const std::string kApiMarker = "/api/"; + const auto api_pos = url.find(kApiMarker); + if (api_pos == std::string::npos) { + return false; + } + + const auto region_start = api_pos + kApiMarker.size(); + const auto region_end = url.find('/', region_start); + if (region_end == std::string::npos || region_end == region_start) { + return false; + } + + *prefix = url.substr(0, region_start); + *suffix = url.substr(region_end); + return true; +} + +bool UsesRegionalRouting(bool regional_template, const std::string& region) { + return regional_template && !region.empty(); +} + +/// Detect the Azure region by POSTing a probe to the catalog gallery and reading +/// the `azureml-served-by-cluster` response header. Returns "eastus" on failure. +std::string DetectRegion(const AzureCatalogClient::HttpPostResponseFn& http_post_response, ILogger& logger) { + http::HttpResponse response = http_post_response(kRegionProbeUrl, kRegionProbeBody); + + std::string region = kDefaultRegion; + if (response.status >= 200 && response.status < 300) { + auto it = response.headers.find(kServedByClusterHeader); + if (it != response.headers.end()) { + auto parsed = ExtractRegionFromClusterHeader(it->second); + if (!parsed.empty()) { + region = parsed; + } + } + } else { + logger.Log(LogLevel::Warning, + "Region detection probe failed (status " + std::to_string(response.status) + "); defaulting to '" + + kDefaultRegion + "'."); + } + + logger.Log(LogLevel::Information, "Detected catalog region: '" + region + "'."); + return region; +} + +std::string BuildRegionalUrl(const std::string& url_prefix, const std::string& url_suffix, const std::string& region) { + return url_prefix + region + url_suffix + kEntitiesPath; +} + +std::string BuildRequestUrl(const std::string& base_url, + bool regional, + const std::string& region, + const std::string& url_prefix, + const std::string& url_suffix) { + if (regional) { + return BuildRegionalUrl(url_prefix, url_suffix, region); + } + + return base_url + kEntitiesPath; +} + +std::string BuildRequestBody(const std::vector& filters, + const std::optional& skip, + const std::optional& continuation_token) { + AzureCatalogRequest request; + request.resource_ids.push_back({"azureml", "Registry"}); + request.index_entities_request.filters = filters; + request.index_entities_request.page_size = kPageSize; + request.index_entities_request.skip = skip; + request.index_entities_request.continuation_token = continuation_token; + + const nlohmann::json body = request; + return body.dump(); +} + +std::vector ToModelInfos(const std::vector& raw_models, const std::string& region) { + std::vector infos; + for (const auto& model : raw_models) { + if (auto info = CatalogModelToModelInfo(model)) { + info->detected_region = region; + infos.push_back(std::move(*info)); + } + } + + return infos; +} + +std::vector> BuildSearchFilters(const IEpDetector& ep_detector, + const std::vector& model_filter) { + std::vector> filter_sets; + + // One filter set per detected device. The catalog API matches on the + // (device, execution provider) pair, so we keep the EPs grouped by device. + for (const auto& [device, eps] : ep_detector.GetAvailableDevicesToEPs()) { + std::vector filters; + filters.push_back(MakeFilter("type", {"models"})); + filters.push_back(MakeFilter("kind", {"Versioned"})); + filters.push_back(MakeFilter("labels", {"latest"})); + filters.push_back(MakeFilter("annotations/tags/foundryLocal", model_filter)); + filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/device", {to_lower(device)})); + filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/executionProvider", eps)); + filter_sets.push_back(std::move(filters)); + } + + return filter_sets; +} + +std::vector BuildModelIdFilters(const std::vector& model_filter, + const std::vector& model_ids) { + // Looking up specific IDs: no labels=latest (we want exact versions) and no + // device/EP filters (the IDs already pin the variant). + std::vector filters; + filters.push_back(MakeFilter("type", {"models"})); + filters.push_back(MakeFilter("kind", {"Versioned"})); + filters.push_back(MakeFilter("annotations/tags/foundryLocal", model_filter)); + filters.push_back(MakeFilter("properties/id", model_ids)); + return filters; +} + +} // namespace + +AzureCatalogClient::AzureCatalogClient(const std::string& base_url, + const std::string& filter_override, + const IEpDetector& ep_detector, + ILogger& logger, + HttpPostResponseFn http_post, + std::string catalog_region, + bool region_fallback_enabled) + : base_url_(base_url), + model_filter_(CreateModelFilter(filter_override)), + ep_detector_(ep_detector), + logger_(logger), + http_post_response_(std::move(http_post)), + region_fallback_(logger, region_fallback_enabled) { + if (!http_post_response_) { + http_post_response_ = [](const std::string& url, const std::string& body) { + return http::HttpPostWithResponse(url, body); + }; + } + + // Normalize away a single trailing slash so URL composition is predictable. + if (!base_url_.empty() && base_url_.back() == '/') { + base_url_.pop_back(); + } + + regional_template_ = TryParseRegionalCatalogUrl(base_url_, &url_prefix_, &url_suffix_); + + // An explicit region is a hard override. Empty/"auto" means detect the region, + // but only for Azure URLs that can be rewritten per region. + const auto normalized_catalog_region = to_lower(catalog_region); + if (!normalized_catalog_region.empty() && normalized_catalog_region != "auto") { + region_ = normalized_catalog_region; + } else if (regional_template_) { + region_ = DetectRegion(http_post_response_, logger_); + } +} + +std::optional AzureCatalogClient::FetchFilterSet( + const std::vector& filters) { + const bool regional = UsesRegionalRouting(regional_template_, region_); + + FetchedFilterSet result; + result.region = region_; + + std::optional skip; + std::optional continuation_token; + std::optional pinned_region; // region that served page 1 (regional mode) + + while (true) { + const std::string body = BuildRequestBody(filters, skip, continuation_token); + + http::HttpResponse response; + if (regional && !pinned_region) { + // Page 1: run through region fallback starting from the sticky region (last known-good) or the active region. + // Exhaustion means every candidate had a retryable region-health failure, so fail just this filter set. + const std::string start = + region_fallback_.StickyRegion().value_or(region_); + try { + auto fallback_result = region_fallback_.Execute(start, [&](const std::string& r) { + return http_post_response_(BuildRegionalUrl(url_prefix_, url_suffix_, r), body); + }); + response = std::move(fallback_result.response); + pinned_region = fallback_result.region; + result.region = fallback_result.region; + region_ = fallback_result.region; // active region biases later filter sets + } catch (const std::exception& ex) { + logger_.Log(LogLevel::Warning, + std::string("catalog: filter set failed across all regions: ") + ex.what()); + return std::nullopt; + } + } else if (regional) { + // Subsequent pages are pinned to the region that served page 1 — a filter set + // never mixes regions (continuation tokens are region-specific). + response = http_post_response_(BuildRegionalUrl(url_prefix_, url_suffix_, *pinned_region), body); + } else { + // Non-regional / custom URL: single verbatim attempt, no fallback. + response = http_post_response_(BuildRequestUrl(base_url_, regional, region_, url_prefix_, url_suffix_), body); + } + + if (response.status == 0 || response.status < 200 || response.status >= 300) { + if (regional && IsRegionRetryableStatus(response.status)) { + // Region-health failure (including mid-pagination on the pinned region): fail this filter set only. Because + // models are committed atomically below, a later page failure cannot leak a partial filter-set result. + logger_.Log(LogLevel::Warning, + "catalog: filter set failed (HTTP " + std::to_string(response.status) + + "); skipping this filter set."); + return std::nullopt; + } + + const std::string url = regional && pinned_region + ? BuildRegionalUrl(url_prefix_, url_suffix_, *pinned_region) + : BuildRequestUrl(base_url_, regional, region_, url_prefix_, url_suffix_); + FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + "HTTP " + std::to_string(response.status) + " from catalog " + url); + } + + const auto parsed = nlohmann::json::parse(response.body).get(); + if (!parsed.index_entities_response) { + break; + } + + const auto& page = *parsed.index_entities_response; + if (page.models.empty()) { + break; + } + + result.models.insert(result.models.end(), page.models.begin(), page.models.end()); + + // Advance pagination. A non-positive nextSkip and an empty token mean "done". + skip = (page.next_skip && *page.next_skip > 0) ? page.next_skip : std::nullopt; + continuation_token = (page.continuation_token && !page.continuation_token->empty()) + ? page.continuation_token + : std::nullopt; + + if (!skip && !continuation_token) { + break; + } + } + + return result; +} + +std::vector AzureCatalogClient::FetchAllFilterSets() { + std::vector results; + for (const auto& filters : BuildSearchFilters(ep_detector_, model_filter_)) { + if (auto result = FetchFilterSet(filters)) { + results.push_back(std::move(*result)); + } + } + + return results; +} + +std::vector AzureCatalogClient::FetchAllModels() { + std::vector models; + for (auto& set : FetchAllFilterSets()) { + models.insert(models.end(), std::make_move_iterator(set.models.begin()), + std::make_move_iterator(set.models.end())); + } + + return models; +} + +std::vector AzureCatalogClient::FetchAllModelInfos() { + std::vector infos; + for (const auto& set : FetchAllFilterSets()) { + auto batch = ToModelInfos(set.models, set.region); + infos.insert(infos.end(), std::make_move_iterator(batch.begin()), std::make_move_iterator(batch.end())); + } + + return infos; +} + +std::vector AzureCatalogClient::FetchModelsByIds( + const std::vector& model_ids) { + if (model_ids.empty()) { + return {}; + } + + auto result = FetchFilterSet(BuildModelIdFilters(model_filter_, model_ids)); + if (!result) { + return {}; + } + + return ToModelInfos(result->models, result->region); +} + +std::unique_ptr MakeCatalogClient( + const std::string& base_url, + const std::string& filter_override, + const IEpDetector& ep_detector, + ILogger& logger, + const std::string& /*cache_directory*/, + const std::string& catalog_region, + bool disable_region_fallback) { + return std::make_unique(base_url, filter_override, ep_detector, logger, + AzureCatalogClient::HttpPostResponseFn{}, + catalog_region, !disable_region_fallback); +} + +} // namespace fl diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.h b/sdk_v2/cpp/src/catalog/azure_catalog_client.h new file mode 100644 index 000000000..b90de09b0 --- /dev/null +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.h @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +#pragma once + +#include "catalog/azure_catalog_models.h" +#include "catalog/catalog_client.h" +#include "ep_detection/ep_detector.h" +#include "http/http_client.h" +#include "logger.h" +#include "model_info.h" +#include "util/region_fallback.h" + +#include +#include +#include +#include + +namespace fl { + +/// Live Azure Foundry catalog client. Queries the catalog REST API +/// (`{base_url}/entities/crossRegion`) for the models available to the local +/// hardware, paginating through results and converting each entry to ModelInfo. +/// +/// Uses one filter set per detected device, page size 50, and pagination via +/// skip + continuationToken. +class AzureCatalogClient : public ICatalogClient { + public: + /// Response-aware HTTP POST. Used for region detection, catalog fetches, and regional fallback. + using HttpPostResponseFn = + std::function; + + /// @param base_url Catalog base URL, e.g. "https://ai.azure.com/api/eastus/ux/v1.0". + /// @param filter_override Foundry Local tag filter. "" means public models; "''" means a single empty value. + /// @param ep_detector Reports available device and execution-provider pairs. + /// @param logger Logger. + /// @param http_post HTTP POST implementation. The default uses `http::HttpPostWithResponse`. + /// @param catalog_region Catalog region. Empty or "auto" detects from Azure headers; any other value is explicit. + /// @param region_fallback_enabled Enables retries through nearby regions when a regional endpoint is unhealthy. + AzureCatalogClient(const std::string& base_url, + const std::string& filter_override, + const IEpDetector& ep_detector, + ILogger& logger, + HttpPostResponseFn http_post = {}, + std::string catalog_region = "", + bool region_fallback_enabled = true); + + /// Fetch every catalog model entry visible to the local hardware (raw form, + /// before conversion to ModelInfo). One filter set per device, fully paginated. + std::vector FetchAllModels(); + + std::vector FetchAllModelInfos() override; + + std::vector FetchModelsByIds(const std::vector& model_ids) override; + + private: + struct FetchedFilterSet { + std::vector models; + std::string region; + }; + + /// Run all pages of one filter set. In regional mode the first page goes through region fallback and later pages are + /// pinned to the serving region; a retryable region-health failure fails just this filter set (others continue). + std::optional FetchFilterSet(const std::vector& filters); + + /// Fetch every device filter set, dropping the ones that failed their region-health checks. + std::vector FetchAllFilterSets(); + + std::string base_url_; + std::vector model_filter_; // foundryLocal tag values + const IEpDetector& ep_detector_; + ILogger& logger_; + HttpPostResponseFn http_post_response_; + RegionFallback region_fallback_; + + // Region state. region_ is the active region (empty = use base_url verbatim). + // When base_url matches the https://{host}/api/{region}/{suffix} template, + // url_prefix_/url_suffix_ let us synthesize per-region URLs. + std::string region_; + std::string url_prefix_; + std::string url_suffix_; + bool regional_template_ = false; +}; + +} // namespace fl diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc index 61da8ffd7..430e348a4 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc @@ -18,14 +18,18 @@ AzureModelCatalog::AzureModelCatalog(std::vector AzureModelCatalog::FetchModels() const { } std::vector models; + std::vector fetched_infos; const std::string& cache_dir = cache_dir_; logger_.Log(LogLevel::Information, @@ -82,7 +87,8 @@ std::vector AzureModelCatalog::FetchModels() const { auto fetch_from = [&](const std::string& url, const std::optional& filter) { // Preserve byte-identical behavior for the "no override" case (previously stored as ""), // while letting callers explicitly request "" as a real filter override. - auto client = MakeCatalogClient(url, filter.value_or(""), ep_detector_, logger_, cache_dir); + auto client = MakeCatalogClient(url, filter.value_or(""), ep_detector_, logger_, cache_dir, + catalog_region_, disable_region_fallback_); auto model_infos = FetchAllModelInfosWithCachedModels(*client, cached_model_ids, logger_); for (const auto& info : model_infos) { @@ -93,6 +99,7 @@ std::vector AzureModelCatalog::FetchModels() const { local_path = it->second; } + fetched_infos.push_back(info); models.push_back(model_factory_(ModelInfo(info), std::move(local_path))); } }; @@ -120,6 +127,14 @@ std::vector AzureModelCatalog::FetchModels() const { logger_.Log(LogLevel::Information, fmt::format("Populated model info for {} models.", models.size())); + // Save the fetched catalog for cache-only mode. This is best-effort: Save handles + // its own errors and freshness checks. If nothing was fetched, leave the existing + // cache untouched. + if (!fetched_infos.empty()) { + CatalogCache cache(cache_dir_, logger_); + cache.Save(fetched_infos); + } + return models; } diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.h b/sdk_v2/cpp/src/catalog/azure_model_catalog.h index dbc7502a6..315bc36f2 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.h @@ -26,20 +26,16 @@ class AzureModelCatalog : public BaseModelCatalog { ModelFactory model_factory, const IEpDetector& ep_detector, ILogger& logger, - bool cache_only = false); + bool cache_only = false, + std::string catalog_region = "", + bool disable_region_fallback = false); ~AzureModelCatalog() override; protected: std::vector FetchModels() const override; private: -#if defined(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) static constexpr const char* kDefaultCatalogUrl = "https://ai.azure.com/api/eastus/ux/v1.0"; -#else - // Live Azure catalog client was excluded from this build; default to the - // embedded snapshot so the SDK works out of the box without a custom config. - static constexpr const char* kDefaultCatalogUrl = "static"; -#endif static constexpr const char* kDefaultCatalogFilter = "''"; std::vector>> catalog_urls_; @@ -48,6 +44,9 @@ class AzureModelCatalog : public BaseModelCatalog { const IEpDetector& ep_detector_; ILogger& logger_; bool cache_only_; + // Configured Azure region: empty/"auto" → auto-detect, explicit → hard override. + std::string catalog_region_; + bool disable_region_fallback_; }; } // namespace fl diff --git a/sdk_v2/cpp/src/catalog/catalog_client.cc b/sdk_v2/cpp/src/catalog/catalog_client.cc index 31ae5c3ab..6f0a51e38 100644 --- a/sdk_v2/cpp/src/catalog/catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/catalog_client.cc @@ -1,48 +1,16 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #include "catalog/catalog_client.h" -#include "ep_detection/ep_detector.h" #include "utils.h" #include #include -#include #include namespace fl { -// Implemented in static_catalog_client.cc (always linked). -std::unique_ptr MakeStaticCatalogClient( - const IEpDetector& ep_detector, ILogger& logger); - -// Implemented in azure_catalog_client.cc (private repo only). -std::unique_ptr MakeLiveCatalogClient( - const std::string& base_url, - const std::string& filter_override, - const IEpDetector& ep_detector, - ILogger& logger, - const std::string& cache_directory); - -std::unique_ptr MakeCatalogClient( - const std::string& base_url, - const std::string& filter_override, - const IEpDetector& ep_detector, - ILogger& logger, - const std::string& cache_directory) { - if (base_url == "static") { - if (!filter_override.empty()) { - logger.Log(LogLevel::Information, - fmt::format("static catalog: ignoring filter '{}'", filter_override)); - } - - return MakeStaticCatalogClient(ep_detector, logger); - } - - return MakeLiveCatalogClient(base_url, filter_override, ep_detector, logger, cache_directory); -} - std::vector FetchAllModelInfosWithCachedModels( ICatalogClient& client, const std::vector& cached_model_ids, diff --git a/sdk_v2/cpp/src/catalog/catalog_client.h b/sdk_v2/cpp/src/catalog/catalog_client.h index d560cbe59..7e4930de8 100644 --- a/sdk_v2/cpp/src/catalog/catalog_client.h +++ b/sdk_v2/cpp/src/catalog/catalog_client.h @@ -12,8 +12,8 @@ namespace fl { -/// Abstract catalog client. Two implementations exist: the live Azure catalog -/// client (private repo) and a snapshot-based static client (public repo). +/// Abstract catalog client. Implemented by the live Azure catalog client, +/// which queries the Azure Foundry catalog REST API. class ICatalogClient { public: virtual ~ICatalogClient() = default; @@ -23,8 +23,8 @@ class ICatalogClient { virtual std::vector FetchAllModelInfos() = 0; /// Look up specific model IDs (e.g., older versions present in the local - /// cache that aren't in the latest catalog). Implementations that have no - /// way to resolve arbitrary IDs (e.g., the static snapshot client) return {}. + /// cache that aren't in the latest catalog). Returns {} for IDs that cannot + /// be resolved. virtual std::vector FetchModelsByIds( const std::vector& model_ids) = 0; }; @@ -36,19 +36,19 @@ std::vector FetchAllModelInfosWithCachedModels( const std::vector& cached_model_ids, ILogger& logger); -/// Construct a catalog client. Dispatches based on `base_url`: -/// - "static" -> returns a client backed by the embedded snapshot. Ignores -/// `filter_override` and `cache_directory`. Filters models by the -/// (device, execution_provider) pairs reported by `ep_detector`. -/// - anything else -> returns the live Azure catalog client. -/// -/// "static" is a temporary magic value to enable the public-repo build that -/// ships without the live client implementation. +/// Construct a client for the live Azure Foundry catalog. +/// - `ep_detector` limits results to models supported by this machine. +/// - `filter_override` sets the foundryLocal tag filter. +/// - `catalog_region` controls regional routing: empty/"auto" means detect it, +/// any other value is an explicit region. +/// - `disable_region_fallback` disables cross-region retries. std::unique_ptr MakeCatalogClient( const std::string& base_url, const std::string& filter_override, const IEpDetector& ep_detector, ILogger& logger, - const std::string& cache_directory); + const std::string& cache_directory, + const std::string& catalog_region = "", + bool disable_region_fallback = false); } // namespace fl diff --git a/sdk_v2/cpp/src/catalog/catalog_snapshot_data.cc b/sdk_v2/cpp/src/catalog/catalog_snapshot_data.cc deleted file mode 100644 index 679585065..000000000 --- a/sdk_v2/cpp/src/catalog/catalog_snapshot_data.cc +++ /dev/null @@ -1,11022 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -// GENERATED FILE — DO NOT EDIT BY HAND. -// Generated by tools/catalog_snapshot. -// filter: '', 'test' -// url: https://ai.azure.com/api/eastus/ux/v1.0 -// models: 173 -// -// clang-format off -#include "catalog/catalog_snapshot_data.h" - -namespace fl { - -const unsigned char kCatalogSnapshotJson[] = { - 0x7b, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x34, 0x36, 0x39, 0x32, 0x36, 0x33, 0x30, 0x33, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x30, 0x34, 0x30, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x31, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x30, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x36, 0x32, 0x39, 0x31, 0x30, 0x38, 0x38, 0x37, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x38, 0x32, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, - 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x30, 0x39, 0x36, 0x39, 0x36, 0x34, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, - 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x36, 0x32, - 0x38, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, - 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, - 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, - 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x68, 0x69, 0x2c, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x49, 0x20, - 0x6d, 0x61, 0x74, 0x68, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, - 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x2e, 0x20, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x35, 0x38, 0x34, 0x35, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x38, 0x32, 0x32, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, - 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x35, - 0x38, 0x37, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x31, 0x38, 0x32, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, - 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, - 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, - 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, - 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, - 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x37, 0x32, 0x33, 0x39, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, - 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x38, 0x32, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, - 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, - 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, - 0x69, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x36, 0x33, 0x31, 0x31, 0x30, 0x39, 0x34, 0x39, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x39, 0x31, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x3a, 0x35, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, - 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, - 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x35, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, - 0x33, 0x31, 0x31, 0x32, 0x33, 0x38, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, - 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x31, 0x33, 0x32, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, - 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x32, 0x34, 0x39, 0x31, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x31, 0x31, 0x33, 0x32, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, - 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, - 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x42, - 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, - 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, - 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, - 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, - 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, - 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, - 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, - 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x36, 0x33, 0x31, 0x31, 0x33, 0x30, 0x38, 0x38, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x36, 0x33, 0x30, 0x37, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, - 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, - 0x64, 0x65, 0x72, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, - 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, - 0x31, 0x33, 0x34, 0x36, 0x33, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x36, 0x33, 0x30, 0x37, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x34, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, - 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, - 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, - 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, - 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x67, 0x70, 0x74, 0x2d, - 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x34, 0x38, 0x30, 0x38, 0x37, 0x34, 0x37, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x67, - 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x32, 0x35, 0x35, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, - 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2f, 0x67, 0x70, 0x74, - 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x6f, - 0x73, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, - 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x39, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, - 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, - 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x37, 0x35, 0x35, 0x37, 0x34, 0x37, 0x30, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x36, 0x30, 0x30, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, - 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, - 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, - 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x31, 0x33, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, - 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, - 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x22, 0x2c, - 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, - 0x35, 0x37, 0x35, 0x36, 0x34, 0x35, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x35, 0x39, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, - 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, - 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, - 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x36, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, - 0x2d, 0x34, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x36, 0x38, 0x39, 0x35, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x30, 0x34, 0x30, 0x33, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x70, - 0x68, 0x69, 0x2d, 0x34, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x37, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, - 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, - 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, - 0x38, 0x36, 0x34, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, - 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x36, 0x35, 0x38, 0x34, 0x2c, 0x22, - 0x69, 0x64, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, - 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, - 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, - 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, - 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, - 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, - 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, - 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, - 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, - 0x2d, 0x37, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, - 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, - 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, 0x75, - 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, - 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, - 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, - 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, - 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, - 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, - 0x37, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, - 0x35, 0x35, 0x37, 0x38, 0x37, 0x37, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, - 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x35, 0x39, 0x30, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, - 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, - 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, - 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, - 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x35, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, - 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, - 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x62, 0x2d, - 0x76, 0x30, 0x2e, 0x32, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x30, 0x38, 0x31, 0x31, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, - 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x31, 0x36, 0x37, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, - 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, - 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, - 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, - 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x2f, 0x73, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, 0x5b, 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x2c, 0x22, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x73, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, 0x5b, 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, - 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x31, 0x31, 0x37, 0x32, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, - 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x31, 0x37, 0x38, 0x36, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, - 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, - 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, - 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, - 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, - 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, - 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, - 0x46, 0x46, 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, - 0x30, 0x30, 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, - 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, - 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x34, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x38, 0x35, 0x38, - 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x32, 0x37, 0x39, 0x37, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x76, 0x6c, 0x2d, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, - 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x56, 0x4c, 0x2d, 0x34, 0x42, - 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, - 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, - 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, - 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, - 0x6c, 0x2d, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, - 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, - 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, - 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x39, - 0x35, 0x39, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, 0x35, 0x33, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, - 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, - 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, - 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x39, 0x30, 0x31, 0x34, 0x37, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x31, 0x33, 0x35, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, - 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, - 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x37, 0x35, 0x35, 0x39, 0x30, 0x36, 0x37, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, - 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x33, 0x37, 0x34, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x56, 0x4c, 0x2d, 0x32, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, - 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, - 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, - 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, - 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, - 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, - 0x74, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, - 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x32, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, - 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, - 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x37, 0x35, 0x35, 0x39, 0x31, 0x31, 0x32, 0x36, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, - 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x37, 0x36, - 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, - 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x42, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, - 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, - 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, - 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x39, 0x31, 0x34, 0x36, 0x32, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x39, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, - 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, - 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x39, 0x31, 0x35, 0x34, 0x37, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x35, 0x38, 0x30, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, - 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, - 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, - 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, - 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, - 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, - 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, - 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, - 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, - 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x38, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x39, 0x32, 0x33, 0x39, 0x37, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x38, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x30, 0x38, 0x31, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x38, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x56, 0x4c, 0x2d, 0x38, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x38, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x38, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, - 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, - 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, - 0x22, 0x2c, 0x22, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x3a, 0x74, 0x72, - 0x75, 0x65, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, - 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, - 0x6c, 0x2d, 0x38, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x37, 0x36, 0x36, 0x39, 0x32, - 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x62, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, 0x30, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x62, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x42, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x30, 0x2e, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x30, 0x2e, 0x38, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, - 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x62, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x37, 0x36, 0x36, 0x39, - 0x39, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x34, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, - 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x42, 0x2f, 0x62, 0x6c, 0x6f, - 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, - 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x62, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x37, 0x35, 0x37, 0x37, 0x30, 0x30, 0x36, 0x33, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x33, 0x38, - 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, - 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x34, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, - 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, - 0x35, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, - 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, - 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, - 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x37, 0x37, 0x30, 0x31, 0x36, 0x32, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x38, 0x30, 0x37, 0x37, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, - 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, - 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, - 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, - 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x39, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x36, 0x38, 0x32, 0x38, 0x35, 0x34, 0x36, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, - 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x39, 0x35, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, - 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, - 0x30, 0x2e, 0x36, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, - 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, - 0x2e, 0x36, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x66, 0x61, 0x6c, 0x73, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x65, 0x6d, - 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, - 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x36, 0x38, 0x33, 0x31, - 0x37, 0x35, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x35, 0x37, 0x37, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, - 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x2d, 0x38, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, - 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x66, 0x61, 0x6c, 0x73, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x73, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x6e, 0x65, 0x6d, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x2d, 0x73, 0x70, 0x65, 0x65, - 0x63, 0x68, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x2d, 0x65, 0x6e, 0x2d, - 0x30, 0x2e, 0x36, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x37, 0x37, 0x39, 0x34, 0x36, 0x31, 0x33, 0x31, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6e, 0x65, 0x6d, 0x6f, - 0x74, 0x72, 0x6f, 0x6e, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x2d, 0x65, 0x6e, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x36, 0x39, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x6e, 0x65, 0x6d, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, - 0x68, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x2d, 0x65, 0x6e, 0x2d, 0x30, - 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, - 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, - 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x2f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x2d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x73, 0x2f, 0x6e, 0x65, 0x6d, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x2d, 0x73, 0x70, 0x65, - 0x65, 0x63, 0x68, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x64, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6e, 0x65, 0x6d, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x2d, 0x73, - 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x2d, - 0x65, 0x6e, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6e, 0x65, 0x6d, 0x6f, 0x74, - 0x72, 0x6f, 0x6e, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x69, 0x6e, 0x67, 0x2d, 0x65, 0x6e, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, - 0x22, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, - 0x68, 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6e, 0x65, 0x6d, 0x6f, 0x74, 0x72, - 0x6f, 0x6e, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x69, 0x6e, 0x67, 0x2d, 0x65, 0x6e, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, 0x69, 0x73, 0x70, - 0x65, 0x72, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x38, 0x35, 0x33, 0x36, 0x35, 0x33, 0x35, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, - 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x62, 0x61, - 0x73, 0x65, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x30, 0x35, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, - 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, - 0x74, 0x6d, 0x6c, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, - 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, - 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x62, 0x61, - 0x73, 0x65, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x6f, 0x66, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x7c, 0x3e, - 0x20, 0x3c, 0x7c, 0x65, 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, - 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0x3a, 0x22, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, - 0x63, 0x68, 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, - 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, - 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, - 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2d, 0x76, 0x33, 0x2d, 0x74, - 0x75, 0x72, 0x62, 0x6f, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x37, 0x38, 0x35, 0x33, 0x36, 0x35, 0x35, 0x32, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, - 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, - 0x2d, 0x76, 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x36, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6f, - 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6c, 0x61, - 0x72, 0x67, 0x65, 0x2d, 0x76, 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, - 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, - 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, - 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, - 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, - 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2d, 0x76, - 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, - 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2d, - 0x76, 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x6f, 0x66, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x65, 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, - 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, - 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, - 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2d, 0x76, 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, - 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x22, 0x2c, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x38, 0x35, 0x33, - 0x36, 0x35, 0x36, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, - 0x65, 0x72, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x32, 0x37, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6f, - 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6d, 0x65, - 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, - 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, - 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, - 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, - 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x6f, 0x66, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x7c, 0x3e, 0x20, 0x3c, - 0x7c, 0x65, 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, - 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, - 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, - 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, - 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x38, 0x35, 0x33, 0x36, - 0x35, 0x37, 0x35, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, - 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x34, 0x39, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, - 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, - 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, - 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x73, 0x6d, 0x61, - 0x6c, 0x6c, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, - 0x73, 0x70, 0x65, 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x6f, 0x66, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x65, 0x6e, 0x7c, 0x3e, 0x20, - 0x3c, 0x7c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x7c, 0x3e, 0x20, 0x3c, - 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x7c, 0x3e, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x69, 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, - 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, - 0x69, 0x6e, 0x79, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x3a, 0x31, 0x37, 0x37, 0x38, 0x35, 0x33, 0x36, 0x35, 0x39, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, - 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x33, 0x31, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, - 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, - 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, - 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, - 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x6f, 0x66, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x65, - 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, - 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x72, - 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, - 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, - 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x34, 0x36, 0x39, 0x32, 0x34, 0x37, 0x33, - 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x38, 0x35, 0x38, 0x31, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, - 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, - 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, - 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x63, - 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, - 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x34, 0x36, 0x39, 0x32, 0x38, 0x32, - 0x38, 0x33, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x38, 0x35, 0x38, 0x31, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, - 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, - 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, - 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, - 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, - 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x35, - 0x34, 0x34, 0x30, 0x36, 0x35, 0x36, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, - 0x30, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, 0x38, 0x38, 0x32, 0x2c, 0x22, - 0x69, 0x64, 0x22, 0x3a, 0x22, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, - 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x55, 0x73, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, - 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2c, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x32, 0x2e, 0x30, 0x2c, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, - 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, - 0x6f, 0x73, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x70, 0x74, 0x2d, 0x6f, - 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, - 0x32, 0x30, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x30, 0x39, 0x35, 0x39, 0x31, 0x36, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x32, 0x32, 0x35, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, - 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x6c, 0x6f, - 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, 0x6f, 0x75, - 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x68, 0x69, 0x2c, 0x20, 0x61, - 0x6e, 0x20, 0x41, 0x49, 0x20, 0x6d, 0x61, 0x74, 0x68, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, - 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x20, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, - 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x36, 0x33, 0x30, 0x39, 0x37, 0x39, 0x34, 0x38, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x32, 0x32, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, - 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, - 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x7c, 0x3e, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, - 0x68, 0x69, 0x2c, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x49, 0x20, 0x6d, 0x61, 0x74, 0x68, 0x20, 0x65, - 0x78, 0x70, 0x65, 0x72, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x20, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, - 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x30, 0x39, 0x38, 0x39, - 0x38, 0x38, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x32, 0x35, 0x33, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, - 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, - 0x6f, 0x75, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x68, 0x69, 0x2c, - 0x20, 0x61, 0x6e, 0x20, 0x41, 0x49, 0x20, 0x6d, 0x61, 0x74, 0x68, 0x20, 0x65, 0x78, 0x70, 0x65, - 0x72, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x20, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, - 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, - 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x35, 0x36, 0x38, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x32, 0x38, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, - 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, - 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, - 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, - 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, - 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, - 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, - 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, - 0x30, 0x35, 0x36, 0x38, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x31, 0x32, 0x38, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, - 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, - 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, - 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, - 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, - 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, - 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, - 0x33, 0x31, 0x30, 0x35, 0x38, 0x32, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x32, 0x38, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, - 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x30, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x35, 0x39, 0x39, 0x36, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x35, 0x32, 0x38, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, - 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, - 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, - 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x36, 0x33, 0x31, 0x30, 0x36, 0x30, 0x30, 0x35, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x37, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, - 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, - 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, - 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, - 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x36, 0x31, - 0x30, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x31, 0x35, 0x34, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, - 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, - 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, - 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x30, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x36, 0x31, 0x36, 0x37, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x36, 0x36, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, - 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, - 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, - 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, - 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, - 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x36, 0x31, 0x38, - 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, - 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x36, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, - 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, - 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, - 0x36, 0x32, 0x39, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, - 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x30, 0x31, 0x39, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, - 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, - 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, - 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x36, 0x33, 0x39, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, - 0x32, 0x38, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, - 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, - 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, - 0x52, 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, - 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, - 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, - 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, - 0x36, 0x34, 0x36, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x35, 0x32, 0x38, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, - 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, - 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, - 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x36, 0x37, 0x38, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x32, 0x38, 0x30, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, - 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, - 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, - 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, - 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, - 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, - 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, - 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, - 0x33, 0x31, 0x30, 0x37, 0x30, 0x31, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x32, 0x38, 0x30, 0x2c, 0x22, - 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, - 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, - 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, - 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, - 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, - 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, - 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x38, 0x31, 0x32, 0x34, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x31, 0x32, 0x38, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, - 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, - 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, - 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x39, 0x30, 0x34, - 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, - 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x30, 0x31, 0x38, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, - 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, - 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, - 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, - 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, - 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, - 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, - 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x39, - 0x39, 0x36, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x36, - 0x38, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, - 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x35, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, - 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, - 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, - 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x35, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x30, 0x38, 0x37, 0x33, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x31, 0x32, 0x38, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, - 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, - 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, - 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, - 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, - 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x31, 0x30, 0x36, 0x34, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, - 0x30, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, - 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, - 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, - 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, - 0x31, 0x31, 0x31, 0x31, 0x31, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x39, 0x30, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x42, 0x2d, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, - 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, - 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, - 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x31, 0x39, 0x39, 0x38, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x38, 0x30, 0x39, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x3a, 0x35, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, - 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, - 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x35, 0x22, - 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x7b, 0x22, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x32, 0x30, 0x37, 0x30, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, - 0x3a, 0x34, 0x38, 0x34, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, - 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x32, 0x34, - 0x31, 0x33, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x38, 0x34, - 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, - 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, - 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, - 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, - 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, - 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x32, 0x39, 0x31, 0x35, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, - 0x32, 0x30, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, - 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, - 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, - 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, - 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, - 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, - 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, - 0x33, 0x31, 0x31, 0x33, 0x38, 0x37, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, - 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, 0x35, 0x32, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, - 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, - 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, - 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, - 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, - 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, - 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x34, 0x30, 0x30, 0x33, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, 0x30, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, - 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x34, 0x35, 0x35, 0x35, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x34, 0x38, 0x34, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, - 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, - 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, - 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, - 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, - 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, - 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x34, 0x37, 0x35, 0x34, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x33, 0x32, 0x34, 0x2c, 0x22, - 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, - 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, - 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x36, 0x33, 0x31, 0x31, 0x35, 0x34, 0x32, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x39, 0x30, 0x33, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, - 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, - 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, - 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, - 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, - 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, - 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, - 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x36, 0x33, 0x31, 0x31, 0x35, 0x36, 0x39, 0x38, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, 0x32, - 0x39, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, - 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, - 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x35, 0x37, 0x32, 0x36, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, - 0x39, 0x31, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, - 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, - 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, - 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, - 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, - 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x35, 0x38, 0x33, 0x30, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, - 0x39, 0x30, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x42, 0x2d, 0x49, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x36, - 0x39, 0x35, 0x39, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, - 0x3a, 0x39, 0x30, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, - 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, - 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, - 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, - 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, - 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, - 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x36, 0x33, 0x31, 0x31, 0x37, 0x31, 0x31, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, 0x30, 0x30, - 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, - 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x31, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, - 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x34, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, - 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, - 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, - 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, - 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, - 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x37, 0x38, - 0x35, 0x33, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, - 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, - 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x38, 0x34, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, - 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, - 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, - 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, - 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, - 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, - 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, - 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x38, 0x38, 0x31, 0x37, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x36, 0x32, 0x33, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, - 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, - 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, - 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6c, 0x61, - 0x72, 0x67, 0x65, 0x2d, 0x76, 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x22, 0x2c, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x36, 0x31, - 0x33, 0x37, 0x39, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, - 0x65, 0x72, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2d, 0x76, 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, - 0x6f, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, 0x30, 0x30, 0x30, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, - 0x65, 0x72, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2d, 0x76, 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, - 0x6f, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, - 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, - 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, - 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, - 0x2d, 0x76, 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, - 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2d, 0x76, - 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x6f, 0x66, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x65, 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, - 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, - 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2d, 0x76, 0x33, 0x2d, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x2d, 0x63, - 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x67, 0x70, 0x74, 0x2d, 0x6f, - 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x33, 0x38, 0x31, 0x36, 0x38, 0x35, 0x32, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x67, 0x70, - 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x32, 0x30, 0x36, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, - 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2f, 0x67, 0x70, 0x74, 0x2d, - 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x67, - 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, 0x2d, 0x32, 0x30, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x6f, 0x73, - 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, - 0x2d, 0x32, 0x30, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x31, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, - 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x70, 0x74, 0x2d, 0x6f, 0x73, 0x73, - 0x2d, 0x32, 0x30, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, - 0x32, 0x38, 0x6b, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x34, 0x36, 0x38, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, - 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, - 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, - 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x33, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, - 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, - 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, - 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2e, - 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x34, 0x36, 0x38, 0x35, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, - 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, - 0x39, 0x39, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, - 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, - 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, - 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, - 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, - 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, - 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, - 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, - 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, - 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, - 0x35, 0x37, 0x34, 0x36, 0x39, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, - 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, - 0x2e, 0x35, 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, - 0x33, 0x35, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, - 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, - 0x65, 0x6e, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, - 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, - 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, - 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, - 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, - 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x2e, 0x35, 0x42, - 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, - 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x2e, - 0x35, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, - 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, - 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, 0x75, 0x30, - 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, - 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, - 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, - 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, - 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, - 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, - 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, - 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x34, 0x36, 0x39, 0x35, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, - 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x32, 0x30, 0x36, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, - 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, - 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, - 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, - 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, - 0x35, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, - 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, - 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, - 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, - 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, - 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x34, 0x37, 0x31, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, - 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, - 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x34, 0x32, 0x39, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, - 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, - 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, - 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, - 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, - 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, - 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, - 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, - 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, - 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, - 0x75, 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, - 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, - 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, - 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, - 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x37, 0x62, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x37, 0x35, 0x35, 0x37, 0x34, 0x37, 0x32, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, - 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, - 0x2d, 0x37, 0x42, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x34, 0x30, - 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, - 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, - 0x2d, 0x37, 0x42, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, - 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, - 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, - 0x2d, 0x37, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, - 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, - 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, - 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, - 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, - 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, - 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, - 0x6e, 0x2d, 0x37, 0x42, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, - 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, - 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x44, - 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, - 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, - 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x34, 0x37, 0x33, - 0x33, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, - 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x74, - 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x34, 0x36, 0x34, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, - 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x2e, 0x35, 0x42, - 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, - 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x2e, - 0x35, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, - 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, - 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, - 0x65, 0x6e, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, - 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, - 0x65, 0x6e, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, - 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, - 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, - 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, - 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, - 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, - 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, - 0x37, 0x34, 0x37, 0x36, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, - 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, - 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x38, 0x30, 0x35, - 0x37, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, - 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, - 0x2d, 0x31, 0x34, 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, - 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, - 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, - 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, - 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, - 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x44, - 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, - 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, - 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, - 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, - 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, - 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, - 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, - 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, - 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, - 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, - 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, - 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, - 0x6b, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x37, 0x35, 0x35, 0x37, 0x35, 0x35, 0x38, 0x36, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, - 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, - 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, - 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, - 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x31, 0x33, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, - 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, - 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x35, 0x39, 0x33, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, - 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, - 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, - 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, - 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x62, - 0x2d, 0x76, 0x30, 0x2e, 0x32, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x36, 0x33, 0x32, 0x38, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, - 0x3a, 0x34, 0x33, 0x37, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, - 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, - 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x76, 0x30, 0x2d, 0x32, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x36, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x2f, 0x73, 0x3e, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, 0x5b, 0x2f, 0x49, 0x4e, - 0x53, 0x54, 0x5d, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, - 0x73, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, 0x53, - 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, 0x5b, - 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, - 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x36, 0x34, - 0x32, 0x39, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, - 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, - 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x33, 0x32, 0x38, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, - 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, - 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, - 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, - 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, - 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, - 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x33, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, - 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, - 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, - 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, - 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, - 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x36, 0x36, 0x36, 0x37, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, - 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, - 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x31, 0x30, 0x30, 0x36, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, - 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, - 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, - 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, - 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, - 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, - 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, - 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, - 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, - 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, - 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, - 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x5c, 0x75, 0x46, 0x46, - 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, - 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, - 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, - 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, - 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, - 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, - 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x34, 0x6b, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x36, 0x37, 0x32, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, - 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, - 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x35, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, - 0x34, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x37, 0x35, 0x35, 0x37, 0x37, 0x30, 0x39, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x38, 0x35, 0x37, 0x30, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x70, 0x68, 0x69, - 0x2d, 0x34, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, - 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x37, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, - 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, - 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, - 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x22, 0x2c, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, - 0x37, 0x34, 0x34, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, - 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, - 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, - 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, - 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, - 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x35, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, - 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, - 0x72, 0x31, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x37, 0x38, 0x32, 0x39, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, - 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, - 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x30, 0x35, 0x31, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, - 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, - 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, - 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x42, 0x2f, - 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, - 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, - 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, - 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, - 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, - 0x31, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, - 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, - 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, 0x75, - 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, - 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, - 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, - 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, - 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, - 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, - 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, - 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x38, - 0x31, 0x32, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x38, 0x35, 0x37, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, - 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, - 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, - 0x69, 0x2d, 0x34, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x37, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, - 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x63, - 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, - 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x38, 0x37, 0x31, 0x30, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, - 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, - 0x32, 0x31, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, - 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, - 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x39, 0x30, 0x39, 0x31, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, - 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x74, 0x72, 0x74, - 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x36, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, - 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x74, - 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, - 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, - 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x42, 0x2f, - 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, - 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, - 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, - 0x31, 0x34, 0x62, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, - 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, - 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, - 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, - 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, - 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, - 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, - 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, - 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, - 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, - 0x2d, 0x72, 0x31, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x39, 0x34, 0x32, 0x35, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, - 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, - 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, - 0x3a, 0x35, 0x34, 0x30, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, - 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, - 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, - 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, - 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, - 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, - 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, - 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, - 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, - 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, - 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, - 0x6e, 0x2d, 0x37, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, - 0x46, 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, - 0x75, 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, - 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, - 0x30, 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, - 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, - 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, - 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, - 0x22, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x22, 0x2c, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, - 0x37, 0x39, 0x36, 0x33, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, - 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x31, 0x31, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, - 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x63, 0x75, - 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, - 0x74, 0x6d, 0x6c, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, - 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x63, 0x75, 0x64, 0x61, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, - 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x6f, - 0x66, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, - 0x65, 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, - 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, - 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x63, 0x75, 0x64, - 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x22, 0x2c, - 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, - 0x35, 0x37, 0x39, 0x37, 0x32, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x74, 0x72, 0x74, 0x72, - 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x38, 0x35, 0x37, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, - 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, - 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, - 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, - 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, - 0x2d, 0x34, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x37, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, - 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, - 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, - 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x62, 0x2d, 0x76, 0x30, - 0x2e, 0x32, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x39, 0x39, 0x39, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x31, 0x36, 0x37, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, - 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, - 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x2f, 0x73, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x5b, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x5c, 0x6e, 0x5b, 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x2c, 0x22, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x73, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, 0x5b, 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, - 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, - 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, - 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x30, 0x35, 0x35, 0x36, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, - 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x37, 0x31, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, - 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, - 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, - 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, - 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, - 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, - 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x55, 0x73, - 0x65, 0x72, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, - 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, - 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, - 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, - 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, - 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x37, 0x35, 0x35, 0x38, 0x30, 0x35, 0x35, 0x36, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, 0x2c, 0x22, - 0x69, 0x64, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, - 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, - 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, - 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x33, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, - 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, - 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, - 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, - 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, - 0x37, 0x62, 0x2d, 0x76, 0x30, 0x2e, 0x32, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x30, 0x36, 0x32, 0x34, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6d, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, - 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, - 0x32, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x30, 0x37, 0x35, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, - 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, - 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, - 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, - 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x2f, 0x73, - 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, - 0x53, 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, - 0x5b, 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x73, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x5b, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x5c, 0x6e, 0x5b, 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, - 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x62, 0x2d, 0x76, 0x30, 0x2e, 0x32, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x37, 0x35, 0x35, 0x38, 0x30, 0x36, 0x38, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, - 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, - 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x30, 0x37, 0x37, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6d, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, - 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, - 0x32, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, - 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, - 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, - 0x2d, 0x32, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x2f, 0x73, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, 0x53, - 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, 0x5b, - 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x3a, 0x22, 0x3c, 0x73, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x5b, - 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x5c, 0x6e, 0x5b, 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, - 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, - 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x74, 0x72, 0x74, - 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, 0x69, 0x73, 0x70, - 0x65, 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x31, 0x30, 0x32, 0x35, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x73, - 0x6d, 0x61, 0x6c, 0x6c, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x34, 0x32, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, - 0x73, 0x70, 0x65, 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, - 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, - 0x70, 0x65, 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, - 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x6f, 0x66, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x65, - 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, - 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, - 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, - 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2d, 0x63, 0x75, 0x64, - 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, - 0x2d, 0x62, 0x61, 0x73, 0x65, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x31, 0x38, 0x30, 0x33, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, - 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x62, 0x61, 0x73, 0x65, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x39, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, - 0x2d, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, - 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, - 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x62, - 0x61, 0x73, 0x65, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, - 0x65, 0x72, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x6f, 0x66, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x65, 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, - 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, - 0x62, 0x61, 0x73, 0x65, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, - 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x22, 0x2c, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, - 0x38, 0x32, 0x38, 0x32, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, - 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, - 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x70, - 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x3a, - 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, - 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, - 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, - 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, 0x65, 0x6e, 0x73, 0x6f, - 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x70, 0x68, - 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x33, 0x31, 0x38, 0x37, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, - 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x39, 0x30, 0x34, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, - 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, - 0x34, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x37, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, - 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, - 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, - 0x69, 0x6e, 0x6f, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, 0x69, 0x73, 0x70, - 0x65, 0x72, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x33, 0x36, 0x33, - 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, - 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x35, - 0x36, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, - 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x63, - 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, - 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, - 0x68, 0x74, 0x6d, 0x6c, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, - 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x63, - 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, - 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6d, 0x65, - 0x64, 0x69, 0x75, 0x6d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x6f, 0x66, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x65, 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x73, - 0x70, 0x65, 0x65, 0x63, 0x68, 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, - 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x6d, 0x65, 0x64, - 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x22, 0x2c, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, - 0x38, 0x34, 0x30, 0x32, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, - 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, - 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, 0x67, 0x70, - 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, - 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, - 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, - 0x74, 0x78, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, - 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x35, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4e, 0x76, 0x54, - 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x54, 0x52, 0x54, 0x58, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x74, 0x72, 0x74, 0x72, 0x74, 0x78, 0x2d, - 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, - 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x37, 0x35, 0x35, 0x38, 0x38, 0x30, 0x31, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, - 0x2e, 0x37, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x33, 0x31, 0x38, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, - 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x42, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, - 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, - 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x38, 0x32, 0x34, 0x31, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, - 0x33, 0x30, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, - 0x31, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, - 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x42, 0x2f, - 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, - 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, - 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, - 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, - 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x39, 0x30, 0x38, 0x30, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x34, 0x39, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, - 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, - 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, - 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, - 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, - 0x2e, 0x36, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, - 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, - 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x39, 0x31, 0x32, - 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x36, 0x31, 0x34, 0x38, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x38, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, - 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, - 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, - 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, - 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, - 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, - 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, - 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, - 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, - 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x37, 0x35, 0x35, 0x38, 0x39, 0x33, 0x37, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, - 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x32, - 0x39, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, - 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, - 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, - 0x36, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, - 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, - 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, - 0x36, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, - 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, - 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, - 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, - 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, - 0x76, 0x6c, 0x2d, 0x38, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, 0x2c, - 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, - 0x35, 0x38, 0x39, 0x35, 0x33, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x38, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x36, 0x31, 0x33, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x38, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x56, 0x4c, 0x2d, 0x38, 0x42, 0x2d, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x38, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x38, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, - 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, - 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, - 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, - 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x3a, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, - 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, - 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x76, 0x6c, 0x2d, 0x38, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x39, 0x37, 0x30, 0x35, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x36, 0x39, 0x32, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, - 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, - 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, - 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x22, 0x2c, - 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, - 0x35, 0x39, 0x30, 0x30, 0x30, 0x36, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x34, 0x32, 0x31, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, - 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x42, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, - 0x37, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, - 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, - 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, - 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x2e, 0x37, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, - 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x37, 0x35, 0x35, 0x39, 0x30, 0x33, 0x31, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x36, 0x37, 0x34, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, - 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, - 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, - 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x38, 0x62, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, - 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, - 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, - 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, - 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, - 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x38, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x39, 0x31, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x36, 0x31, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, - 0x56, 0x4c, 0x2d, 0x32, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x32, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x76, 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, - 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, - 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, - 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x65, 0x73, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x32, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x39, 0x31, - 0x34, 0x31, 0x39, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x30, 0x31, 0x37, 0x32, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, - 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, - 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, - 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x31, 0x34, 0x62, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x39, 0x31, 0x34, 0x34, 0x31, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x32, 0x39, 0x33, 0x39, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x34, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, - 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, - 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, - 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x34, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x39, 0x31, 0x38, - 0x33, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x34, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x35, - 0x36, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, - 0x6c, 0x2d, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, - 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x56, 0x4c, 0x2d, 0x34, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, - 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, - 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, - 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, - 0x22, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x76, 0x6c, 0x2d, - 0x34, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x63, 0x75, 0x64, 0x61, - 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, - 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x32, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x37, 0x35, 0x37, 0x36, 0x35, 0x39, 0x35, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, - 0x35, 0x2d, 0x32, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x32, 0x30, 0x31, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, - 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x42, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, - 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, - 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x62, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, - 0x35, 0x37, 0x36, 0x36, 0x30, 0x30, 0x35, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, - 0x2e, 0x38, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x33, 0x35, 0x30, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, - 0x38, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, - 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, - 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, - 0x2d, 0x30, 0x2e, 0x38, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, - 0x38, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, - 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, - 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x62, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x37, 0x36, 0x37, 0x38, 0x33, 0x38, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x33, 0x34, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x62, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x38, 0x42, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x30, 0x2e, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x30, 0x2e, 0x38, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, - 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, - 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x30, - 0x2e, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x22, 0x2c, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x37, - 0x36, 0x37, 0x39, 0x31, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x32, 0x30, 0x31, 0x2c, 0x22, - 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, - 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x42, 0x2f, - 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, - 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, - 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, - 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, - 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, - 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x32, 0x62, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x37, 0x36, 0x38, 0x37, 0x37, 0x38, 0x2c, 0x22, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x39, 0x36, 0x35, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, - 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, - 0x39, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, - 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, - 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, - 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, - 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, - 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, - 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x37, 0x35, 0x37, 0x36, 0x38, 0x39, 0x32, 0x39, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, - 0x2d, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x34, 0x38, 0x36, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x62, - 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, - 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x42, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x62, 0x2d, - 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, - 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, - 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, - 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2e, 0x35, 0x2d, 0x34, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x22, 0x2c, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x37, 0x37, - 0x31, 0x31, 0x33, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x39, 0x36, 0x35, 0x33, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x42, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, - 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, - 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x39, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2e, 0x35, 0x2d, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x37, 0x37, 0x31, 0x31, 0x34, 0x30, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, - 0x22, 0x3a, 0x35, 0x34, 0x38, 0x36, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, - 0x67, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2e, 0x35, 0x2d, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, - 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, - 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, - 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, - 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x63, 0x68, - 0x61, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2e, - 0x35, 0x2d, 0x34, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x36, 0x38, 0x32, 0x38, 0x33, 0x35, 0x31, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, - 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x37, 0x38, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x42, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, - 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x66, 0x61, - 0x6c, 0x73, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x73, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, - 0x2e, 0x36, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, - 0x38, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x37, 0x36, 0x38, 0x32, 0x39, 0x34, 0x34, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, - 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2d, 0x63, 0x75, 0x64, - 0x61, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x36, 0x34, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, - 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, - 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x2d, 0x38, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, - 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, - 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, - 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x43, 0x55, 0x44, 0x41, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, - 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x73, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, - 0x38, 0x62, 0x2d, 0x63, 0x75, 0x64, 0x61, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, - 0x2e, 0x36, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x3a, 0x31, 0x37, 0x37, 0x37, 0x30, 0x37, 0x39, 0x39, 0x39, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x31, 0x35, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, - 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x66, 0x61, 0x6c, 0x73, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x65, 0x6d, - 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x67, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, - 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x37, 0x30, 0x38, 0x30, - 0x31, 0x34, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x36, 0x31, 0x34, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, - 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, - 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x2d, 0x38, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, - 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x67, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, - 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x57, 0x65, 0x62, 0x47, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x65, 0x6d, 0x62, - 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x2d, 0x38, 0x62, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x67, - 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x31, 0x37, - 0x35, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, - 0x38, 0x34, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x76, - 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, - 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, - 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, - 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x50, 0x68, 0x69, 0x2c, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x49, 0x20, 0x6d, 0x61, - 0x74, 0x68, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x2e, 0x20, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x56, 0x69, 0x74, 0x69, 0x73, 0x41, 0x49, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, - 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, - 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x76, 0x69, 0x74, 0x69, - 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x36, - 0x36, 0x31, 0x36, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, - 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x32, 0x38, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, - 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, - 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, - 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, - 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, - 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, 0x69, 0x74, 0x69, 0x73, 0x41, 0x49, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, - 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, - 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x36, 0x33, 0x31, 0x30, 0x36, 0x36, 0x34, 0x37, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, - 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x38, 0x34, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, - 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, - 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, 0x6f, 0x75, 0x20, 0x61, 0x72, 0x65, 0x20, 0x51, - 0x77, 0x65, 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x49, 0x20, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x41, 0x6c, 0x69, 0x62, 0x61, 0x62, 0x61, 0x2e, 0x20, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x51, 0x4e, 0x4e, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x30, 0x36, 0x36, 0x38, 0x34, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x32, 0x38, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, - 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, - 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, - 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, 0x69, 0x74, 0x69, 0x73, 0x41, 0x49, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, - 0x33, 0x31, 0x31, 0x31, 0x38, 0x37, 0x39, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, - 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x31, 0x32, 0x38, 0x30, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, - 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, - 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, - 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, - 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, - 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, - 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, 0x69, 0x74, 0x69, - 0x73, 0x41, 0x49, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, - 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, - 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, - 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x34, 0x39, 0x33, 0x32, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x36, 0x38, 0x36, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, - 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, - 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, 0x69, 0x74, 0x69, 0x73, 0x41, 0x49, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, - 0x31, 0x37, 0x38, 0x39, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, - 0x38, 0x34, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, 0x6e, - 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, 0x6f, 0x75, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x51, 0x77, 0x65, 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x49, 0x20, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x41, 0x6c, 0x69, 0x62, 0x61, 0x62, 0x61, 0x2e, 0x20, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x51, 0x4e, 0x4e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x38, - 0x39, 0x39, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, - 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x38, 0x34, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, - 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, - 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, - 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, - 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, 0x69, - 0x74, 0x69, 0x73, 0x41, 0x49, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, - 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, - 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x3a, 0x31, 0x37, 0x36, 0x33, 0x31, 0x31, 0x39, 0x38, 0x36, 0x33, 0x2c, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x33, 0x32, 0x34, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, - 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, 0x69, 0x74, 0x69, 0x73, 0x41, 0x49, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, - 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, - 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x37, 0x34, 0x30, 0x32, 0x35, 0x30, 0x30, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, - 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x38, 0x39, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, - 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, - 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, - 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, - 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, - 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, - 0x37, 0x62, 0x2d, 0x76, 0x30, 0x2e, 0x32, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x34, 0x30, 0x33, 0x38, 0x35, 0x35, 0x32, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, - 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x33, 0x36, 0x39, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x4d, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, - 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, - 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, - 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, - 0x6c, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, - 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x36, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, - 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x2f, 0x73, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, 0x53, 0x54, - 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, 0x5b, 0x2f, - 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, - 0x22, 0x3c, 0x73, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x5b, 0x49, - 0x4e, 0x53, 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, - 0x6e, 0x5b, 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x6f, 0x70, 0x65, - 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, - 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x37, 0x34, 0x30, 0x33, 0x38, 0x37, 0x30, 0x36, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x32, 0x30, 0x36, 0x2c, 0x22, 0x69, - 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, - 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, - 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, - 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, - 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x50, 0x68, 0x69, 0x2c, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x49, 0x20, 0x6d, 0x61, - 0x74, 0x68, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x2e, 0x20, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, - 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2d, 0x6f, 0x70, 0x65, - 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, - 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x34, 0x30, 0x33, 0x38, 0x38, 0x37, 0x35, 0x2c, - 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, - 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x32, - 0x30, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, - 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, - 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, - 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, - 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, - 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, - 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x70, - 0x68, 0x69, 0x2d, 0x34, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, - 0x34, 0x30, 0x34, 0x30, 0x37, 0x39, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, - 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, - 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x38, 0x38, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, - 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, - 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, - 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, - 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, - 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, - 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x31, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x34, 0x30, 0x34, - 0x32, 0x34, 0x36, 0x36, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, - 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x62, 0x22, 0x3a, 0x34, 0x32, 0x37, 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x33, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, - 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, - 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, - 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, - 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, - 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, - 0x37, 0x34, 0x30, 0x34, 0x36, 0x39, 0x32, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, - 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, - 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x33, 0x31, 0x2c, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, - 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, - 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, - 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, - 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, - 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, - 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, - 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, - 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, - 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, - 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, - 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x3e, - 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x34, 0x30, 0x34, 0x39, 0x37, 0x32, 0x33, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, - 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x33, 0x33, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, - 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, 0x35, 0x62, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, - 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x34, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, - 0x35, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, - 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x2d, 0x30, 0x2e, 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, - 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, - 0x4e, 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x30, 0x2e, - 0x35, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, - 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x34, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x34, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x6d, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x62, 0x2d, 0x76, 0x30, 0x2e, 0x32, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x34, - 0x37, 0x33, 0x34, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x76, 0x69, 0x74, 0x69, - 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x31, 0x36, 0x37, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x4d, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, - 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, - 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3e, - 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x76, 0x69, - 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x61, 0x69, 0x2d, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, - 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x30, 0x2d, - 0x32, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x2f, 0x73, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, 0x5b, 0x2f, 0x49, 0x4e, 0x53, 0x54, 0x5d, - 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x73, 0x3e, 0x22, - 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x5b, 0x49, 0x4e, 0x53, 0x54, 0x5d, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x6e, 0x5b, 0x2f, 0x49, 0x4e, - 0x53, 0x54, 0x5d, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, - 0x69, 0x74, 0x69, 0x73, 0x41, 0x49, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x4d, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x6c, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x76, 0x30, 0x2d, 0x32, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, - 0x6b, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, - 0x37, 0x37, 0x35, 0x35, 0x37, 0x35, 0x38, 0x33, 0x31, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, - 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, - 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, - 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, - 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, - 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x50, - 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x35, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, - 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, - 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x37, 0x62, 0x22, 0x2c, - 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, - 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, - 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, - 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x32, 0x37, - 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, - 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, - 0x2d, 0x37, 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, - 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, - 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, - 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, - 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, - 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, - 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, - 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, - 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, - 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, - 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, - 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, - 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, - 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x2c, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, - 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x5c, 0x75, 0x46, 0x46, - 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, - 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, - 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, - 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, - 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, - 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, 0x4f, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, - 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, 0x6f, 0x70, 0x65, - 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, - 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x37, - 0x30, 0x30, 0x33, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, - 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, 0x76, - 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x35, 0x37, 0x31, 0x33, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, - 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, 0x76, 0x69, - 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, - 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, - 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2f, 0x62, 0x6c, 0x6f, - 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, - 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, - 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, - 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, - 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, - 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, - 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, - 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, - 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, - 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, - 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, - 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, 0x69, 0x74, 0x69, - 0x73, 0x41, 0x49, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, - 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x42, 0x2d, - 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, - 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x37, 0x37, 0x37, - 0x30, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, - 0x3a, 0x32, 0x31, 0x38, 0x31, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, - 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, - 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, - 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, - 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, - 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, - 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, - 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x3a, 0x22, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x35, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, - 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, - 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, 0x69, 0x74, 0x69, 0x73, 0x41, 0x49, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, - 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, - 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, - 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x31, 0x34, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x30, - 0x32, 0x30, 0x39, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, - 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, - 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x37, 0x32, 0x39, 0x30, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, - 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x71, 0x6e, - 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, - 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, - 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, - 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, - 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, - 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, - 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, - 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x5c, 0x5c, 0x75, 0x30, - 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x5c, - 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, - 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x5c, 0x75, 0x46, - 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, - 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x51, 0x4e, 0x4e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, - 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x31, 0x34, 0x62, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, - 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, - 0x72, 0x31, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x31, 0x32, 0x38, 0x35, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, - 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, - 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, - 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x33, - 0x38, 0x30, 0x32, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, - 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, - 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, - 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, - 0x65, 0x65, 0x6b, 0x2d, 0x61, 0x69, 0x2f, 0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x65, 0x6b, 0x2d, - 0x52, 0x31, 0x2d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x51, 0x77, 0x65, 0x6e, 0x2d, - 0x37, 0x42, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, - 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, - 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, - 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, - 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, - 0x2d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x7b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, - 0x22, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x55, - 0x73, 0x65, 0x72, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, - 0x45, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, - 0x43, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x5c, 0x5c, 0x75, 0x46, 0x46, 0x35, 0x43, 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x45, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, - 0x22, 0x2c, 0x22, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x3e, 0x22, 0x2c, 0x22, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x51, 0x4e, 0x4e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x64, 0x65, 0x65, 0x70, 0x73, 0x65, 0x65, 0x6b, 0x2d, 0x72, 0x31, 0x2d, - 0x64, 0x69, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x2d, 0x71, 0x77, 0x65, 0x6e, 0x2d, 0x37, 0x62, 0x2d, - 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, 0x7d, - 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, - 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x31, 0x36, 0x33, 0x33, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x38, 0x34, - 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, - 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, - 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, - 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x70, 0x68, - 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, - 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, - 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, - 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, - 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x31, 0x35, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, - 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, - 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x68, 0x69, 0x2c, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x49, - 0x20, 0x6d, 0x61, 0x74, 0x68, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, 0x20, 0x64, 0x65, 0x76, - 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x2e, 0x20, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, - 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x51, 0x4e, 0x4e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x70, 0x68, - 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x34, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x22, - 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, - 0x35, 0x35, 0x38, 0x31, 0x39, 0x34, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, - 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x38, 0x34, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, - 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, - 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, - 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, - 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, - 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x31, 0x33, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, - 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x68, 0x69, 0x2c, 0x20, 0x61, 0x6e, 0x20, 0x41, - 0x49, 0x20, 0x6d, 0x61, 0x74, 0x68, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, 0x20, 0x64, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x20, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, - 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, - 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x51, 0x4e, 0x4e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x70, - 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, - 0x38, 0x6b, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, - 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x32, 0x38, 0x36, 0x30, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x31, 0x38, 0x31, 0x2c, - 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, - 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, - 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, - 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, - 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, - 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, - 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, - 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x33, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, - 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, - 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x5c, 0x6e, 0x7b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, - 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, - 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x56, 0x69, 0x74, 0x69, 0x73, - 0x41, 0x49, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, - 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2d, - 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x31, 0x32, 0x38, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x76, 0x69, 0x74, 0x69, 0x73, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, - 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x22, 0x2c, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, - 0x35, 0x39, 0x39, 0x39, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, - 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, - 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, - 0x32, 0x38, 0x34, 0x34, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, 0x2d, 0x33, - 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x4d, 0x49, 0x54, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, - 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, - 0x70, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, - 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, - 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x70, 0x68, 0x69, - 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2f, 0x50, 0x68, 0x69, 0x2d, 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x36, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, 0x3e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, 0x64, 0x7c, 0x3e, - 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, 0x73, - 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x3c, 0x7c, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x7c, - 0x3e, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7c, 0x3e, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x50, 0x68, 0x69, 0x2c, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x49, 0x20, 0x6d, - 0x61, 0x74, 0x68, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, - 0x6f, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, - 0x74, 0x2e, 0x20, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x75, - 0x73, 0x65, 0x72, 0x7c, 0x3e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, - 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, - 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x51, 0x4e, 0x4e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x70, 0x68, 0x69, 0x2d, - 0x33, 0x2e, 0x35, 0x2d, 0x6d, 0x69, 0x6e, 0x69, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x2d, 0x71, 0x6e, 0x6e, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, - 0x32, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, - 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x22, 0x2c, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, - 0x38, 0x38, 0x30, 0x34, 0x32, 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, - 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x34, 0x32, 0x37, 0x35, 0x2c, 0x22, - 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, - 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, - 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x2f, - 0x51, 0x77, 0x65, 0x6e, 0x2f, 0x51, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x43, 0x6f, 0x64, - 0x65, 0x72, 0x2d, 0x37, 0x42, 0x2d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x3e, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, - 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x71, 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, - 0x72, 0x2d, 0x37, 0x62, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5c, 0x6e, - 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, - 0x64, 0x7c, 0x3e, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, - 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, - 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, - 0x6e, 0x64, 0x7c, 0x3e, 0x5c, 0x6e, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x7c, 0x3e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x2c, 0x22, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x7c, 0x3e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x2c, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x7c, 0x3e, 0x75, 0x73, 0x65, 0x72, 0x5c, 0x6e, 0x7b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x7d, 0x3c, 0x7c, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, - 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4e, - 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4f, 0x70, 0x65, 0x6e, 0x56, 0x49, 0x4e, - 0x4f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2c, - 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, - 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x3c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, - 0x6c, 0x3e, 0x22, 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x71, - 0x77, 0x65, 0x6e, 0x32, 0x2e, 0x35, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2d, 0x37, 0x62, 0x2d, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x76, 0x69, 0x6e, - 0x6f, 0x2d, 0x6e, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, - 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, - 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, - 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x3a, 0x31, 0x37, 0x36, 0x31, 0x38, 0x36, 0x36, 0x35, 0x30, 0x32, 0x2c, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, - 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, - 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x32, 0x35, 0x2c, 0x22, - 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, - 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x32, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x22, 0x2c, 0x22, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, - 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, - 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, - 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, - 0x6c, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, - 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, - 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, - 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, 0x22, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x7b, 0x22, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x6f, 0x66, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x7c, 0x3e, 0x20, 0x3c, - 0x7c, 0x65, 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x46, 0x6f, 0x75, - 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x2c, 0x22, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3a, - 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x3a, 0x22, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, - 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, - 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, - 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x32, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x32, - 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x77, 0x68, 0x69, 0x73, - 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x22, 0x2c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x35, 0x35, 0x38, 0x31, 0x39, 0x30, 0x34, - 0x2c, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, - 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, - 0x69, 0x6e, 0x79, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0x3a, 0x32, 0x32, - 0x35, 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, - 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x33, 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x22, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, - 0x22, 0x2c, 0x22, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x20, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, - 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, - 0x68, 0x74, 0x6d, 0x6c, 0x2e, 0x22, 0x2c, 0x22, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x34, 0x38, 0x2c, 0x22, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, - 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, - 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x6d, 0x6c, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, - 0x69, 0x6e, 0x79, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x31, 0x22, 0x2c, - 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x7b, 0x22, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x22, 0x3a, 0x22, 0x3c, 0x7c, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x6f, 0x66, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x7c, - 0x3e, 0x20, 0x3c, 0x7c, 0x65, 0x6e, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x7c, 0x3e, 0x20, 0x3c, 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x7c, 0x3e, 0x22, 0x7d, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x22, 0x2c, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x22, 0x3a, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x22, - 0x2c, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x22, 0x2c, 0x22, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0x3a, 0x22, 0x43, 0x50, 0x55, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x61, 0x73, 0x6b, - 0x22, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x73, 0x70, 0x65, - 0x65, 0x63, 0x68, 0x2d, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x2c, 0x22, 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x6d, 0x6c, 0x3a, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x6d, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, - 0x61, 0x69, 0x2d, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x2d, 0x74, 0x69, 0x6e, 0x79, 0x2d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x33, 0x22, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x7b, 0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x3a, 0x22, 0x71, - 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, - 0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, - 0x62, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x3a, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4f, 0x4e, 0x4e, 0x58, 0x22, 0x2c, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x71, 0x77, 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, - 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, 0x22, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x22, 0x2c, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x3a, 0x22, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x3a, 0x2f, 0x2f, 0x71, 0x77, - 0x65, 0x6e, 0x33, 0x2d, 0x30, 0x2e, 0x36, 0x62, 0x2d, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x70, 0x75, 0x22, 0x2c, - 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x31, 0x7d, 0x5d, 0x2c, 0x22, 0x73, - 0x61, 0x76, 0x65, 0x64, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x37, 0x37, 0x38, - 0x37, 0x32, 0x36, 0x39, 0x35, 0x37, 0x2c, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x31, 0x7d, -}; - -const std::size_t kCatalogSnapshotJsonSize = sizeof(kCatalogSnapshotJson); - -} // namespace fl diff --git a/sdk_v2/cpp/src/catalog/catalog_snapshot_data.h b/sdk_v2/cpp/src/catalog/catalog_snapshot_data.h deleted file mode 100644 index 285e3c3d5..000000000 --- a/sdk_v2/cpp/src/catalog/catalog_snapshot_data.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -#pragma once - -#include - -namespace fl { - -/// Embedded catalog snapshot bytes. Generated by the catalog_snapshot tool; -/// the .cc file is checked in, and this header simply exposes the symbols. -extern const unsigned char kCatalogSnapshotJson[]; -extern const std::size_t kCatalogSnapshotJsonSize; - -} // namespace fl diff --git a/sdk_v2/cpp/src/catalog/live_catalog_client_stub.cc b/sdk_v2/cpp/src/catalog/live_catalog_client_stub.cc deleted file mode 100644 index 4a56a3bc8..000000000 --- a/sdk_v2/cpp/src/catalog/live_catalog_client_stub.cc +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -// Stub implementation of MakeLiveCatalogClient. Compiled in builds where -// the live Azure catalog client source files (azure_catalog_client.{h,cc}) -// are not present — typically the public-repo build that ships only the -// embedded snapshot. -// -// The stub causes any non-"static" base_url to throw, which surfaces a -// clear error message instead of silently falling back to something -// unexpected. -#include "catalog/catalog_client.h" -#include "exception.h" - -#include - -#include - -#include -#include - -namespace fl { - -std::unique_ptr MakeLiveCatalogClient( - const std::string& base_url, - const std::string& /*filter_override*/, - const IEpDetector& /*ep_detector*/, - ILogger& /*logger*/, - const std::string& /*cache_directory*/) { - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, - fmt::format("Live Azure catalog client is not available in this build " - "(requested url='{}'). Configure the catalog url to \"static\" " - "to use the embedded snapshot.", - base_url)); -} - -} // namespace fl diff --git a/sdk_v2/cpp/src/catalog/static_catalog_client.cc b/sdk_v2/cpp/src/catalog/static_catalog_client.cc deleted file mode 100644 index af9ebb5f6..000000000 --- a/sdk_v2/cpp/src/catalog/static_catalog_client.cc +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -#include "catalog/catalog_cache.h" -#include "catalog/catalog_client.h" -#include "catalog/catalog_snapshot_data.h" -#include "ep_detection/ep_detector.h" -#include "logger.h" -#include "model_info.h" -#include "utils.h" - -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace fl { - -std::unique_ptr MakeStaticCatalogClient( - const IEpDetector& ep_detector, ILogger& logger); - -namespace { - -class StaticCatalogClient : public ICatalogClient { - public: - StaticCatalogClient(const IEpDetector& ep_detector, ILogger& logger) - : ep_detector_(ep_detector), logger_(logger) {} - - std::vector FetchAllModelInfos() override { - std::string_view json{ - reinterpret_cast(kCatalogSnapshotJson), - kCatalogSnapshotJsonSize}; - - auto parsed = ParseCatalogSnapshot(json, "embedded snapshot", logger_); - if (!parsed) { - logger_.Log(LogLevel::Warning, "static catalog: embedded snapshot failed to parse"); - return {}; - } - - auto models = std::move(*parsed); - - // Build the set of allowed (device, EP) pairs (lowercased) from the - // detector. OpenVINO can target CPU/GPU/NPU but only NPU-capable machines - // should see the NPU variants — match on the pair, not on EP alone. - const auto& devices_to_eps = ep_detector_.GetAvailableDevicesToEPs(); - std::set> allowed; - for (const auto& [device, eps] : devices_to_eps) { - for (const auto& ep : eps) { - allowed.emplace(to_lower(device), to_lower(ep)); - } - } - - auto removed = std::remove_if(models.begin(), models.end(), - [&](const ModelInfo& m) { - auto device_str = DeviceTypeToString(m.device_type); - return allowed.count({to_lower(device_str), to_lower(m.execution_provider)}) == 0; - }); - models.erase(removed, models.end()); - - return models; - } - - std::vector FetchModelsByIds( - const std::vector& /*model_ids*/) override { - // The snapshot is a fixed point in time; we cannot resolve arbitrary - // older versions. Return empty so the caller falls through to BYO synthesis. - return {}; - } - - private: - const IEpDetector& ep_detector_; - ILogger& logger_; -}; - -} // namespace - -std::unique_ptr MakeStaticCatalogClient( - const IEpDetector& ep_detector, ILogger& logger) { - return std::make_unique(ep_detector, logger); -} - -} // namespace fl diff --git a/sdk_v2/cpp/src/download/download_manager.cc b/sdk_v2/cpp/src/download/download_manager.cc index df5059a35..bd3553f7d 100644 --- a/sdk_v2/cpp/src/download/download_manager.cc +++ b/sdk_v2/cpp/src/download/download_manager.cc @@ -4,6 +4,8 @@ #include "download/inference_model_writer.h" #include "exception.h" #include "util/path_safety.h" +#include "util/region_fallback.h" +#include "utils.h" #include @@ -20,6 +22,7 @@ namespace { const char* kDownloadSignalFileName = "download.tmp"; const char* kGenAIConfigFileName = "genai_config.json"; const char* kInferenceModelFileName = "inference_model.json"; +const char* kDefaultRegistryRegion = "eastus"; /// Check whether inference_model.json exists at the root or in any immediate /// subdirectory. This is the definitive proof that a download completed @@ -148,13 +151,33 @@ std::string SanitizeForPathSegment(std::string_view name) { return std::string(name); } +std::string NormalizeConfiguredRegion(const std::string& catalog_region) { + const auto normalized = to_lower(catalog_region); + return normalized == "auto" ? "" : normalized; +} + +std::string ResolveRegion(const std::string& config_region, const ModelInfo& info) { + // Explicit configured region always wins; then the model's detected region; then the default registry region. + if (!config_region.empty()) { + return config_region; + } + + if (!info.detected_region.empty()) { + return info.detected_region; + } + + return kDefaultRegistryRegion; +} + } // anonymous namespace DownloadManager::DownloadManager(std::string cache_directory, std::string catalog_region, int max_concurrency, - ILogger& logger) + ILogger& logger, bool disable_region_fallback) : cache_directory_(std::move(cache_directory)), + config_region_(NormalizeConfiguredRegion(catalog_region)), max_concurrency_(max_concurrency), - registry_client_(std::make_unique(std::move(catalog_region), logger)), + registry_client_(std::make_unique( + kDefaultRegistryRegion, logger, std::make_unique(logger, !disable_region_fallback))), blob_downloader_(std::make_unique()) {} DownloadManager::~DownloadManager() = default; @@ -253,8 +276,9 @@ std::string DownloadManager::DownloadModel(const ModelInfo& info, } try { - // Step 1: Resolve SAS URI - auto container = registry_client_->ResolveModelContainer(info.uri); + // Step 1: Resolve SAS URI from the region that served this model's catalog entry + // (or the explicit override / eastus fallback). + auto container = registry_client_->ResolveModelContainer(info.uri, ResolveRegion(config_region_, info)); if (container.blob_sas_uri.empty()) { FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, "model registry returned empty SAS URI for: " + info.uri); diff --git a/sdk_v2/cpp/src/download/download_manager.h b/sdk_v2/cpp/src/download/download_manager.h index 42a4e69b7..04f482d3e 100644 --- a/sdk_v2/cpp/src/download/download_manager.h +++ b/sdk_v2/cpp/src/download/download_manager.h @@ -25,13 +25,17 @@ class DownloadManager { public: /// Construct with the model cache directory path. /// @param cache_directory Local directory where models are cached. - /// @param catalog_region Azure region for the model registry endpoint (e.g. "eastus"). + /// @param catalog_region Explicit Azure region override for the model registry endpoint, + /// or "auto"/empty to use each model's detected region (falling back to the default registry region). /// @param max_concurrency Per-blob chunk parallelism (default 64). /// @param logger Logger forwarded to the registry client for retry diagnostics. + /// @param disable_region_fallback When true, the registry uses a single region attempt + /// with no cross-region fallback. DownloadManager(std::string cache_directory, std::string catalog_region, int max_concurrency, - ILogger& logger); + ILogger& logger, + bool disable_region_fallback = false); ~DownloadManager(); /// Override the model registry client (for testing). @@ -64,6 +68,9 @@ class DownloadManager { std::string ComputeModelPath(const ModelInfo& info) const; std::string cache_directory_; + // Explicit registry region override. Empty (or "auto") means "use the model's + // detected_region, falling back to eastus" — set at construction from config. + std::string config_region_; int max_concurrency_; std::unique_ptr registry_client_; std::unique_ptr blob_downloader_; diff --git a/sdk_v2/cpp/src/download/model_registry_client.cc b/sdk_v2/cpp/src/download/model_registry_client.cc index b33629588..cef224877 100644 --- a/sdk_v2/cpp/src/download/model_registry_client.cc +++ b/sdk_v2/cpp/src/download/model_registry_client.cc @@ -4,10 +4,13 @@ #include #include +#include #include "exception.h" #include "http/http_client.h" #include "logger.h" +#include "util/region_fallback.h" +#include "utils.h" namespace fl { namespace { @@ -40,39 +43,70 @@ constexpr const char* kUserAgent = "AzureAiStudio"; } // anonymous namespace -ModelRegistryClient::ModelRegistryClient(std::string region, ILogger& logger) - : base_url_(BuildBaseUrl(region)) { - // Wire the default HTTP GET to the retry-capable helper. The catalog endpoint is hosted - // and known to occasionally serve 5xx during deployments — a bounded retry hides that. - http_get_ = [&logger](const std::string& url) { - return http::HttpGetWithRetry(url, kUserAgent, logger); - }; -} - -void ModelRegistryClient::SetHttpGet(HttpGetFn fn) { - http_get_ = std::move(fn); +ModelRegistryClient::ModelRegistryClient(std::string region, + ILogger& /*logger*/, + std::unique_ptr fallback, + HttpGetResponseFn http_get) + : default_region_(std::move(region)), http_get_(std::move(http_get)), fallback_(std::move(fallback)) { + // Default transport: status-aware GET (non-throwing) so the fallback engine can + // classify region-health failures. Cross-region fallback provides resilience + // in place of in-region retries when enabled. + if (!http_get_) { + http_get_ = [](const std::string& url) { + return http::HttpGetWithResponse(url, kUserAgent); + }; + } } -ModelContainer ModelRegistryClient::ResolveModelContainer(const std::string& asset_id) { +ModelContainer ModelRegistryClient::ResolveModelContainer(const std::string& asset_id, + const std::string& region) { if (asset_id.empty()) { FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, "cannot resolve model container: empty asset_id"); } - std::string url = base_url_ + UrlEncode(asset_id); - std::string response_str = http_get_(url); + const bool has_per_call_region = !region.empty(); + const std::string resolved_region = to_lower(has_per_call_region ? region : default_region_); + const std::string encoded = UrlEncode(asset_id); + + auto attempt = [&](const std::string& r) -> http::HttpResponse { + return http_get_(BuildBaseUrl(r) + encoded); + }; + + // A per-call region comes from explicit config or the model's detected catalog region and must take precedence. + // Sticky only biases calls that fall back to the client's default region. + const std::string start = has_per_call_region ? resolved_region : fallback_->StickyRegion().value_or(resolved_region); + http::HttpResponse response = fallback_->Execute(start, attempt).response; + + if (response.status == 0) { + FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + "transport failure from model registry API for asset_id: " + asset_id); + } + + if (response.status < 200 || response.status >= 300) { + FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + "HTTP " + std::to_string(response.status) + " from model registry API for asset_id: " + + asset_id); + } + + return ParseContainer(response.body, asset_id); +} - if (response_str.empty()) { - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, "empty response from model registry API for asset_id: " + asset_id); +ModelContainer ModelRegistryClient::ParseContainer(const std::string& body, + const std::string& asset_id) const { + if (body.empty()) { + FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + "empty response from model registry API for asset_id: " + asset_id); } try { - auto j = nlohmann::json::parse(response_str); + auto j = nlohmann::json::parse(body); ModelContainer result; if (j.contains("blobSasUri") && j["blobSasUri"].is_string()) { result.blob_sas_uri = j["blobSasUri"].get(); } else { - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, "model registry response missing blobSasUri for asset_id: " + asset_id); + FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + "model registry response missing blobSasUri for asset_id: " + asset_id); } if (j.contains("modelEntity") && j["modelEntity"].is_object()) { diff --git a/sdk_v2/cpp/src/download/model_registry_client.h b/sdk_v2/cpp/src/download/model_registry_client.h index f33dea7dd..347281582 100644 --- a/sdk_v2/cpp/src/download/model_registry_client.h +++ b/sdk_v2/cpp/src/download/model_registry_client.h @@ -2,15 +2,20 @@ // Licensed under the MIT License. #pragma once +#include "http/http_client.h" + #include +#include #include namespace fl { class ILogger; +class RegionFallback; -/// HTTP GET function signature for dependency injection / testing. -using HttpGetFn = std::function; +/// Response-aware HTTP GET (status + headers + body) — lets the region-fallback +/// engine classify region-health failures by status code. +using HttpGetResponseFn = std::function; /// Result from resolving a model's asset ID against the Azure model registry. struct ModelContainer { @@ -22,23 +27,31 @@ struct ModelContainer { /// Resolves a model's asset_id to a Blob Storage SAS URI for downloading. class ModelRegistryClient { public: - /// @param region Azure region for the model registry endpoint (e.g. "eastus"). - /// Used to construct https://{region}.api.azureml.ms/modelregistry/... - /// @param logger Logger used by the retry helper to report transient failures. Tests that - /// override `SetHttpGet` with a synchronous fake can pass a sink logger. - ModelRegistryClient(std::string region, ILogger& logger); - - /// Override the HTTP GET function (for testing). - void SetHttpGet(HttpGetFn fn); + /// @param region Default Azure region for the model registry endpoint (e.g. "eastus"). + /// Used when ResolveModelContainer is called without a per-call region. + /// @param logger Logger used for diagnostics. Tests that override the HTTP seam with a + /// synchronous fake can pass a sink logger. + /// @param fallback Region-fallback engine. It can be constructed as disabled when only one region should be tried. + /// @param http_get HTTP GET implementation. The default uses `http::HttpGetWithResponse`. + ModelRegistryClient(std::string region, + ILogger& logger, + std::unique_ptr fallback, + HttpGetResponseFn http_get = {}); /// Resolve a model's asset_id (URI) to a blob storage SAS URI. - /// Uses anonymous access (no token) for FoundryLocal models. + /// Uses anonymous access (no token) for FoundryLocal models. When `region` is + /// non-empty it selects the regional registry endpoint for this call; otherwise + /// the default region from construction is used. /// Throws fl::Exception on failure. - ModelContainer ResolveModelContainer(const std::string& asset_id); + ModelContainer ResolveModelContainer(const std::string& asset_id, const std::string& region = ""); private: - std::string base_url_; - HttpGetFn http_get_; + /// Parse a registry response body into a ModelContainer. Throws on empty/invalid input. + ModelContainer ParseContainer(const std::string& body, const std::string& asset_id) const; + + std::string default_region_; + HttpGetResponseFn http_get_; + std::unique_ptr fallback_; }; } // namespace fl diff --git a/sdk_v2/cpp/src/http/http_client.cc b/sdk_v2/cpp/src/http/http_client.cc index badc337e9..c5162f694 100644 --- a/sdk_v2/cpp/src/http/http_client.cc +++ b/sdk_v2/cpp/src/http/http_client.cc @@ -2,6 +2,7 @@ // Licensed under the MIT License. #include "http/http_client.h" #include "exception.h" +#include "utils.h" #include #include @@ -22,15 +23,17 @@ namespace http { namespace { struct HttpRawResult { - int status = 0; // 0 indicates a transport-level failure (no HTTP response) - std::string body; // response body or transport error message when status==0 + int status = 0; // 0 indicates a transport-level failure (no HTTP response) + std::string body; // response body or transport error message when status==0 + std::map headers; // response headers, keys lowercased }; HttpRawResult HttpRequestRaw(const Azure::Core::Http::HttpMethod& method, const std::string& url, const std::string& body, const std::string& user_agent, - bool close_connection) { + bool close_connection, + std::chrono::milliseconds timeout = std::chrono::seconds(30)) { using namespace Azure::Core; using namespace Azure::Core::Http; @@ -54,9 +57,8 @@ HttpRawResult HttpRequestRaw(const Azure::Core::Http::HttpMethod& method, request.SetHeader("Content-Type", "application/json"); } - // 30 second timeout Context context = Context{}.WithDeadline( - Azure::DateTime(std::chrono::system_clock::now() + std::chrono::seconds(30))); + Azure::DateTime(std::chrono::system_clock::now() + timeout)); std::unique_ptr response; try { @@ -64,12 +66,17 @@ HttpRawResult HttpRequestRaw(const Azure::Core::Http::HttpMethod& method, } catch (const std::exception& e) { // Transport-level failure (DNS, connect, timeout, TLS, etc.). Surface as status==0 // with the message so the retry layer can classify this as a transient error. - return HttpRawResult{0, std::string("transport error: ") + e.what()}; + return HttpRawResult{0, std::string("transport error: ") + e.what(), {}}; } HttpRawResult result; result.status = static_cast(response->GetStatusCode()); + // Copy response headers with lowercased keys for case-insensitive lookup. + for (const auto& [key, value] : response->GetHeaders()) { + result.headers[to_lower(key)] = value; + } + // Read the response body — prefer the stream if available, otherwise use the buffered body. auto response_stream = response->ExtractBodyStream(); @@ -116,6 +123,25 @@ std::string HttpGet(const std::string& url, const std::string& user_agent, bool return HttpRequest(Azure::Core::Http::HttpMethod::Get, url, "", user_agent, close_connection); } +HttpResponse HttpPostWithResponse(const std::string& url, + const std::string& json_body, + const std::string& user_agent, + std::chrono::milliseconds timeout, + bool close_connection) { + auto raw = HttpRequestRaw(Azure::Core::Http::HttpMethod::Post, url, json_body, user_agent, + close_connection, timeout); + return HttpResponse{raw.status, std::move(raw.headers), std::move(raw.body)}; +} + +HttpResponse HttpGetWithResponse(const std::string& url, + const std::string& user_agent, + std::chrono::milliseconds timeout, + bool close_connection) { + auto raw = HttpRequestRaw(Azure::Core::Http::HttpMethod::Get, url, "", user_agent, + close_connection, timeout); + return HttpResponse{raw.status, std::move(raw.headers), std::move(raw.body)}; +} + std::string HttpPost(const std::string& url, const std::string& json_body, const std::string& user_agent, bool close_connection) { return HttpRequest(Azure::Core::Http::HttpMethod::Post, url, json_body, user_agent, close_connection); diff --git a/sdk_v2/cpp/src/http/http_client.h b/sdk_v2/cpp/src/http/http_client.h index e6884b6e6..1d09947fa 100644 --- a/sdk_v2/cpp/src/http/http_client.h +++ b/sdk_v2/cpp/src/http/http_client.h @@ -6,11 +6,36 @@ #include #include +#include #include namespace fl { namespace http { +/// Full HTTP response. `status == 0` indicates a transport-level failure (no HTTP +/// response received), in which case `body` carries the transport error message. +/// Header keys are lowercased for case-insensitive lookup. +struct HttpResponse { + int status = 0; + std::map headers; + std::string body; +}; + +/// Perform an HTTP POST and return status, headers, and body without throwing on non-2xx responses. +/// Transport failures are returned as `status == 0` with the error message in `body`. +HttpResponse HttpPostWithResponse(const std::string& url, + const std::string& json_body, + const std::string& user_agent = "", + std::chrono::milliseconds timeout = std::chrono::seconds(30), + bool close_connection = false); + +/// Perform an HTTP GET and return status, headers, and body without throwing on non-2xx responses. +/// Transport failures are returned as `status == 0` with the error message in `body`. +HttpResponse HttpGetWithResponse(const std::string& url, + const std::string& user_agent = "", + std::chrono::milliseconds timeout = std::chrono::seconds(30), + bool close_connection = false); + /// Perform an HTTP GET request. Returns the response body. /// Throws fl::Exception on HTTP errors or connection failures. std::string HttpGet(const std::string& url, diff --git a/sdk_v2/cpp/src/manager.cc b/sdk_v2/cpp/src/manager.cc index 6ec8dbed5..5fcf3205b 100644 --- a/sdk_v2/cpp/src/manager.cc +++ b/sdk_v2/cpp/src/manager.cc @@ -278,11 +278,21 @@ Manager::Manager(const Configuration& config) } } + // Read whether cross-region fallback should be disabled (default: enabled). + // Accepts case-insensitive true/1/yes. + bool disable_region_fallback = false; + const auto fallback_it = config_.additional_options.find("DisableRegionFallback"); + if (fallback_it != config_.additional_options.cend()) { + const auto value = to_lower(fallback_it->second); + disable_region_fallback = (value == "true" || value == "1" || value == "yes"); + } + download_manager_ = std::make_unique( *config_.model_cache_dir, - config_.catalog_region.value_or("eastus"), + config_.catalog_region.value_or("auto"), download_concurrency, - *logger_); + *logger_, + disable_region_fallback); model_load_manager_ = std::make_unique(*ep_detector_, *logger_); session_manager_ = std::make_unique(*logger_); telemetry_ = std::make_unique(config_.app_name, *logger_); @@ -293,7 +303,9 @@ Manager::Manager(const Configuration& config) return CreateModel(std::move(info), std::move(local_path)); }, *ep_detector_, *logger_, - config_.external_service_url.has_value()); + config_.external_service_url.has_value(), + config_.catalog_region.value_or("auto"), + disable_region_fallback); } Manager::~Manager() { diff --git a/sdk_v2/cpp/src/model_info.cc b/sdk_v2/cpp/src/model_info.cc index 9924d8791..cc2f68f16 100644 --- a/sdk_v2/cpp/src/model_info.cc +++ b/sdk_v2/cpp/src/model_info.cc @@ -102,6 +102,10 @@ ModelInfo ModelInfoFromJson(const nlohmann::json& j) { info.uri = j["uri"].get(); } + if (j.contains("detectedRegion") && j["detectedRegion"].is_string()) { + info.detected_region = j["detectedRegion"].get(); + } + // String properties — named top-level fields → string_properties map ReadStringProp(j, "providerType", info.string_properties, FOUNDRY_LOCAL_MODEL_PROP_MODEL_PROVIDER_STR); ReadStringProp(j, "modelType", info.string_properties, FOUNDRY_LOCAL_MODEL_PROP_MODEL_TYPE_STR); @@ -199,6 +203,11 @@ nlohmann::json ModelInfoToJson(const ModelInfo& info) { j["alias"] = info.alias; j["uri"] = info.uri; + // detectedRegion — only emit when set so BYO models and pre-region caches are unaffected. + if (!info.detected_region.empty()) { + j["detectedRegion"] = info.detected_region; + } + // providerType — required in C#, defaults to empty const auto* provider = info.GetPropertyStr(FOUNDRY_LOCAL_MODEL_PROP_MODEL_PROVIDER_STR); j["providerType"] = provider ? *provider : ""; diff --git a/sdk_v2/cpp/src/model_info.h b/sdk_v2/cpp/src/model_info.h index 22b093f96..09f279545 100644 --- a/sdk_v2/cpp/src/model_info.h +++ b/sdk_v2/cpp/src/model_info.h @@ -40,6 +40,11 @@ struct ModelInfo { std::string execution_provider; // e.g. "WebGPUExecutionProvider", empty if not set std::string task; + // Azure region the catalog was served from (auto-detected from cluster headers). + // Empty for non-Azure / BYO models. Used to target the matching regional model + // registry when downloading. Round-trips through the on-disk catalog cache. + std::string detected_region; + KeyValuePairs prompt_templates; KeyValuePairs model_settings; diff --git a/sdk_v2/cpp/src/util/region_fallback.cc b/sdk_v2/cpp/src/util/region_fallback.cc new file mode 100644 index 000000000..fae88016f --- /dev/null +++ b/sdk_v2/cpp/src/util/region_fallback.cc @@ -0,0 +1,216 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +#include "util/region_fallback.h" + +#include "exception.h" +#include "utils.h" + +#include + +#include +#include +#include +#include +#include +#include + +namespace fl { + +namespace { + +/// Build the proximal-region map once. +std::map> BuildProximalRegions() { + std::map> map = { + // Americas: United States + {"eastus", {"eastus2", "centralus", "southcentralus", "westus2", "westeurope"}}, + {"eastus2", {"eastus", "centralus", "southcentralus", "westus2", "westeurope"}}, + {"centralus", {"southcentralus", "northcentralus", "eastus", "westus2", "westeurope"}}, + {"northcentralus", {"centralus", "southcentralus", "eastus", "westus2", "westeurope"}}, + {"southcentralus", {"centralus", "northcentralus", "eastus", "westus2", "westeurope"}}, + {"westus", {"westus2", "westus3", "westcentralus", "centralus", "eastus", "westeurope"}}, + {"westus2", {"westus3", "westus", "westcentralus", "centralus", "eastus", "westeurope"}}, + {"westus3", {"westus2", "westus", "westcentralus", "centralus", "eastus", "westeurope"}}, + {"westcentralus", {"westus2", "westus3", "westus", "centralus", "eastus", "westeurope"}}, + + // Americas: Canada + {"canadacentral", {"canadaeast", "eastus", "eastus2", "westeurope"}}, + {"canadaeast", {"canadacentral", "eastus", "eastus2", "westeurope"}}, + + // Americas: Brazil + {"brazilsouth", {"southcentralus", "eastus", "westeurope"}}, + + // Europe: Western + {"westeurope", + {"northeurope", "francecentral", "germanywestcentral", "uksouth", "swedencentral", "eastus"}}, + {"northeurope", {"westeurope", "uksouth", "francecentral", "swedencentral", "eastus"}}, + {"francecentral", + {"westeurope", "northeurope", "germanywestcentral", "switzerlandnorth", "eastus"}}, + {"germanywestcentral", + {"westeurope", "francecentral", "switzerlandnorth", "polandcentral", "northeurope", "eastus"}}, + {"switzerlandnorth", + {"switzerlandwest", "germanywestcentral", "francecentral", "westeurope", "italynorth", "eastus"}}, + {"switzerlandwest", + {"switzerlandnorth", "francecentral", "italynorth", "germanywestcentral", "westeurope", "eastus"}}, + {"italynorth", {"switzerlandnorth", "francecentral", "westeurope", "spaincentral", "eastus"}}, + {"spaincentral", {"francecentral", "westeurope", "italynorth", "eastus"}}, + + // Europe: UK + {"uksouth", {"ukwest", "northeurope", "westeurope", "francecentral", "eastus"}}, + {"ukwest", {"uksouth", "northeurope", "westeurope", "francecentral", "eastus"}}, + + // Europe: Nordics + {"swedencentral", {"norwayeast", "northeurope", "westeurope", "eastus"}}, + {"norwayeast", {"swedencentral", "northeurope", "westeurope", "eastus"}}, + + // Europe: Eastern + {"polandcentral", + {"germanywestcentral", "swedencentral", "westeurope", "northeurope", "eastus"}}, + + // Middle East + {"uaenorth", {"qatarcentral", "israelcentral", "westeurope", "northeurope", "eastus"}}, + {"qatarcentral", {"uaenorth", "israelcentral", "westeurope", "northeurope", "eastus"}}, + {"israelcentral", {"uaenorth", "qatarcentral", "westeurope", "northeurope", "eastus"}}, + + // Africa + {"southafricanorth", {"westeurope", "northeurope", "uaenorth", "eastus"}}, + + // Asia Pacific: East Asia + {"japaneast", {"japanwest", "koreacentral", "taiwannorth", "eastasia", "southeastasia", "westus2"}}, + {"japanwest", {"japaneast", "koreacentral", "taiwannorth", "eastasia", "southeastasia", "westus2"}}, + {"koreacentral", {"japaneast", "japanwest", "taiwannorth", "eastasia", "southeastasia", "westus2"}}, + {"eastasia", {"taiwannorth", "southeastasia", "japaneast", "koreacentral", "australiaeast", "westus2"}}, + {"taiwannorth", {"eastasia", "japaneast", "koreacentral", "southeastasia", "westus2"}}, + + // Asia Pacific: Southeast Asia + {"southeastasia", {"malaysiawest", "eastasia", "japaneast", "australiaeast", "centralindia", "westus2"}}, + {"malaysiawest", {"southeastasia", "eastasia", "centralindia", "japaneast", "westus2"}}, + + // Asia Pacific: India + {"centralindia", {"southindia", "jioindiawest", "southeastasia", "uaenorth", "westeurope", "eastus"}}, + {"southindia", {"centralindia", "jioindiawest", "southeastasia", "uaenorth", "westeurope", "eastus"}}, + {"jioindiawest", {"centralindia", "southindia", "southeastasia", "uaenorth", "westeurope", "eastus"}}, + + // Oceania + {"australiaeast", {"australiasoutheast", "southeastasia", "japaneast", "westus2"}}, + {"australiasoutheast", {"australiaeast", "southeastasia", "japaneast", "westus2"}}, + }; + + return map; +} + +/// Proximal-region lookup table, built once on first use. +const std::map>& ProximalRegions() { + static const std::map> kMap = BuildProximalRegions(); + return kMap; +} + +std::string DescribeStatus(int status) { + return status == 0 ? "transport failure" : ("HTTP " + std::to_string(status)); +} + +} // namespace + +bool IsRegionRetryableStatus(int status) { + return status == 0 || status == 408 || status == 429 || status == 500 || status == 502 || + status == 503 || status == 504; +} + +RegionFallback::RegionFallback(ILogger& logger, bool enabled, RandomPicker random_picker) + : logger_(logger), enabled_(enabled), random_picker_(std::move(random_picker)) { + if (random_picker_) { + return; + } + + // Default RNG: per-instance, seeded from a clock. Jitter need not be strong. + auto rng = std::make_shared( + static_cast(std::random_device{}())); + random_picker_ = [rng](std::size_t count) -> std::size_t { + if (count == 0) { + return 0; + } + + return static_cast((*rng)() % count); + }; +} + +std::vector BuildRegionFallbackChain(const std::string& start_region, + const RegionFallback::RandomPicker& picker) { + std::vector chain; + std::set seen; + + auto add = [&](const std::string& region) { + if (region.empty()) { + return; + } + + auto normalized = to_lower(region); + if (seen.insert(normalized).second) { + chain.push_back(normalized); + } + }; + + const auto start = to_lower(start_region); + add(start); + + const auto& proximal_map = ProximalRegions(); + auto it = proximal_map.find(start); + if (it != proximal_map.end()) { + for (const auto& p : it->second) { + add(p); + } + } + + // Last-ditch: one random known public region not already in the chain. + std::vector remaining; + for (const auto& [region, _] : proximal_map) { + if (seen.find(region) == seen.end()) { + remaining.push_back(region); + } + } + + if (!remaining.empty() && picker) { + add(remaining[picker(remaining.size())]); + } + + return chain; +} + +FallbackResult RegionFallback::Execute(const std::string& start_region, const AttemptFn& attempt) { + const auto normalized_start = to_lower(start_region); + + if (!enabled_) { + return FallbackResult{attempt(normalized_start), normalized_start}; + } + + const auto chain = BuildRegionFallbackChain(normalized_start, random_picker_); + std::string failure_summary; + + for (const auto& region : chain) { + http::HttpResponse response = attempt(region); + + if (!IsRegionRetryableStatus(response.status)) { + // Non-retryable: a 2xx success OR a permanent error (e.g. 404). Either way, stop here and let the caller + // inspect the status. Record the sticky region only on success so a permanent error doesn't pin a bad region. + if (response.status >= 200 && response.status < 300) { + sticky_ = region; + } + + return FallbackResult{std::move(response), region}; + } + + if (!failure_summary.empty()) { + failure_summary += ", "; + } + + failure_summary += region + "(" + DescribeStatus(response.status) + ")"; + logger_.Log(LogLevel::Warning, + "RegionFallback: region '" + region + "' unhealthy (" + + DescribeStatus(response.status) + "); trying next candidate."); + } + + FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + "region fallback exhausted all " + std::to_string(chain.size()) + + " candidate region(s): " + failure_summary); +} + +} // namespace fl diff --git a/sdk_v2/cpp/src/util/region_fallback.h b/sdk_v2/cpp/src/util/region_fallback.h new file mode 100644 index 000000000..6f7cbf85d --- /dev/null +++ b/sdk_v2/cpp/src/util/region_fallback.h @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +#pragma once + +#include "http/http_client.h" +#include "logger.h" + +#include +#include +#include +#include + +namespace fl { + +/// Outcome of a fallback run: the response and the region that produced it. +struct FallbackResult { + http::HttpResponse response; + std::string region; +}; + +/// True for statuses that indicate a region-health failure (retryable): +/// 0 (transport), 408, 429, 500, 502, 503, 504. +bool IsRegionRetryableStatus(int status); + +/// Build the ordered fallback chain: [start] + proximal[start] + one random unused public region. +/// Deduplicated in order; all regions lowercased. +std::vector BuildRegionFallbackChain(const std::string& start_region, + const std::function& picker); + +/// Executes a regional HTTP operation against an ordered chain of candidate Azure +/// regions when the preferred region is unhealthy. Classifies failures by HTTP +/// status; status==0 means a transport failure before any HTTP response arrived. +/// +/// The sticky region (last success) and the RNG are per-instance state (no global mutable state). +class RegionFallback { + public: + /// Performs one HTTP attempt against `region`, returning the full response + /// (status==0 means transport failure). + using AttemptFn = std::function; + + /// Picks an index in [0, count) — injected for deterministic tests. + using RandomPicker = std::function; + + /// @param logger Diagnostics for fallback decisions. + /// @param enabled When false, runs a single attempt against the start region with no fallback. + /// @param random_picker Picks the last-ditch random region. The default uses a per-instance RNG. + explicit RegionFallback(ILogger& logger, bool enabled = true, RandomPicker random_picker = {}); + + /// Execute `attempt` across the candidate chain for `start_region`. + /// - First non-retryable response (2xx or a permanent error like 404) is returned + /// immediately along with its region; the caller inspects the status. + /// - Retryable responses (status 0/408/429/5xx) advance to the next candidate. + /// - If every candidate is retryable-failed, throws fl::Exception with the chain. + FallbackResult Execute(const std::string& start_region, const AttemptFn& attempt); + + /// Last region that successfully served a request, if any. + std::optional StickyRegion() const { return sticky_; } + + private: + ILogger& logger_; + bool enabled_; + RandomPicker random_picker_; + std::optional sticky_; +}; + +} // namespace fl diff --git a/sdk_v2/cpp/test/CMakeLists.txt b/sdk_v2/cpp/test/CMakeLists.txt index e14a9fc4d..6d0dc9077 100644 --- a/sdk_v2/cpp/test/CMakeLists.txt +++ b/sdk_v2/cpp/test/CMakeLists.txt @@ -43,8 +43,9 @@ add_executable(foundry_local_tests internal_api/responses_json_test.cc internal_api/session_manager_test.cc internal_api/sha256_test.cc + internal_api/region_fallback_test.cc internal_api/sse_stream_body_test.cc - internal_api/static_catalog_test.cc + internal_api/azure_catalog_test.cc internal_api/telemetry_test.cc internal_api/tensor_test.cc internal_api/chat/search_options_test.cc @@ -56,18 +57,6 @@ add_executable(foundry_local_tests internal_api/zip_extract_test.cc ) -# Tests that depend on the live Azure catalog client are only compiled when -# the live client source is present (private-repo build). The download test -# also has a live-catalog-only EndToEndTest that is gated via the -# FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT compile definition below. -if(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) - target_sources(foundry_local_tests PRIVATE - internal_api/azure_catalog_test.cc - ) - target_compile_definitions(foundry_local_tests PRIVATE - FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT=1 - ) -endif() target_compile_options(foundry_local_tests PRIVATE ${FOUNDRY_LOCAL_COMPILE_OPTIONS}) target_link_libraries(foundry_local_tests @@ -191,16 +180,6 @@ else() ) endif() -# Match foundry_local_tests: when the live Azure catalog client is built, -# enable the test environment's live-catalog code path so newer (test-tagged) -# models that aren't in the embedded static snapshot — e.g. vision-language -# models — are visible. -if(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) - target_compile_definitions(sdk_integration_tests PRIVATE - FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT=1 - ) -endif() - # Register as a single CTest entry — NOT per-test discovery. # SharedTestEnv performs expensive one-time setup (CUDA EP registration, # catalog fetch, model download+load) that must happen once per process. diff --git a/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc b/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc index f02815129..afa0a5dce 100644 --- a/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc +++ b/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc @@ -6,10 +6,6 @@ // - Response JSON parsing works with realistic data // - Live integration test fetches models from ai.azure.com // -// NOTE: Tests for the static catalog client live in static_catalog_test.cc -// so that they remain available when the live Azure catalog client source -// files have been removed (public-repo build). -// #include "catalog/azure_catalog_client.h" #include "catalog/azure_catalog_models.h" #include "catalog/catalog_client.h" @@ -24,6 +20,17 @@ using namespace fl; +namespace { + +http::HttpResponse MakeOkResponse(std::string body) { + http::HttpResponse response; + response.status = 200; + response.body = std::move(body); + return response; +} + +} // namespace + // ======================================================================== // Test EP detector that returns all three devices (matching .http fixture) // ======================================================================== @@ -49,6 +56,16 @@ class CpuOnlyEpDetector : public IEpDetector { } }; +class CpuGpuEpDetector : public IEpDetector { + public: + std::map> GetAvailableDevicesToEPs() const override { + return { + {"CPU", {"CPUExecutionProvider"}}, + {"GPU", {"CUDAExecutionProvider"}}, + }; + } +}; + // ======================================================================== // Request format tests // ======================================================================== @@ -58,19 +75,19 @@ class CpuOnlyEpDetector : public IEpDetector { TEST(AzureCatalogClientTest, RequestFormatMatchesKnownGood) { AllDevicesEpDetector ep; StderrLogger logger; - // filter_override: "", "test" — matches the .http file's foundryLocal filter values - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "''", ep, logger); - - // Capture the request body via the HttpPostFn hook. std::vector captured_urls; std::vector captured_bodies; - client.SetHttpPost([&](const std::string& url, const std::string& body) -> std::string { - captured_urls.push_back(url); - captured_bodies.push_back(nlohmann::json::parse(body)); - // Return a valid empty response so pagination stops - return R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"; - }); + // filter_override: "", "test" — matches the .http file's foundryLocal filter values + AzureCatalogClient client( + "https://ai.azure.com/api/eastus/ux/v1.0", "''", ep, logger, + [&](const std::string& url, const std::string& body) { + captured_urls.push_back(url); + captured_bodies.push_back(nlohmann::json::parse(body)); + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }, + "eastus"); client.FetchAllModels(); @@ -82,7 +99,7 @@ TEST(AzureCatalogClientTest, RequestFormatMatchesKnownGood) { } // Verify the first request (cpu) matches the expected structure. - // The .http file combines all devices; our C# pattern splits per device. + // The .http file combines all devices; the client splits requests per device. // We verify the structure, field names, and operators match. const auto& cpu_req = captured_bodies[0]; @@ -135,17 +152,20 @@ TEST(AzureCatalogClientTest, RequestFormatMatchesKnownGood) { EXPECT_EQ(filters[5]["operator"], "eq"); } -// Verify page size default is 50 (matching C#) and can be set. +// Verify page size default is 50. TEST(AzureCatalogClientTest, DefaultPageSizeIs50) { AllDevicesEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger); - nlohmann::json captured; - client.SetHttpPost([&](const std::string&, const std::string& body) -> std::string { - captured = nlohmann::json::parse(body); - return R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"; - }); + + AzureCatalogClient client( + "https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string&, const std::string& body) { + captured = nlohmann::json::parse(body); + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }, + "eastus"); client.FetchAllModels(); EXPECT_EQ(captured["indexEntitiesRequest"]["pageSize"], 50); @@ -158,7 +178,6 @@ TEST(AzureCatalogClientTest, DefaultPageSizeIs50) { TEST(AzureCatalogClientTest, ParsesModelResponseCorrectly) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); // Realistic single-model response matching the Azure catalog schema const char* mock_response = R"({ @@ -205,9 +224,10 @@ TEST(AzureCatalogClientTest, ParsesModelResponseCorrectly) { } })"; - client.SetHttpPost([&](const std::string&, const std::string&) -> std::string { - return mock_response; - }); + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string&) { + return MakeOkResponse(mock_response); + }); auto model_infos = client.FetchAllModelInfos(); ASSERT_EQ(model_infos.size(), 1u); @@ -244,7 +264,6 @@ TEST(AzureCatalogClientTest, ParsesModelResponseCorrectly) { TEST(AzureCatalogClientTest, SkipsInvalidModels) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); // Response with one valid model and one missing assetId const char* mock_response = R"({ @@ -274,9 +293,10 @@ TEST(AzureCatalogClientTest, SkipsInvalidModels) { } })"; - client.SetHttpPost([&](const std::string&, const std::string&) -> std::string { - return mock_response; - }); + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string&) { + return MakeOkResponse(mock_response); + }); auto infos = client.FetchAllModelInfos(); ASSERT_EQ(infos.size(), 1u); @@ -295,16 +315,15 @@ TEST(AzureCatalogClientTest, FollowsPagination) { } single_ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", single_ep, logger); - int call_count = 0; - client.SetHttpPost([&](const std::string&, const std::string& body) -> std::string { - call_count++; - auto req = nlohmann::json::parse(body); - - if (call_count == 1) { - // First page — return nextSkip to trigger page 2 - return R"({ + AzureCatalogClient client("https://test.com", "", single_ep, logger, + [&](const std::string&, const std::string& body) { + call_count++; + auto req = nlohmann::json::parse(body); + + if (call_count == 1) { + // First page — return nextSkip to trigger page 2 + return MakeOkResponse(R"({ "indexEntitiesResponse": { "totalCount": 2, "value": [{ @@ -316,13 +335,14 @@ TEST(AzureCatalogClientTest, FollowsPagination) { "nextSkip": 1, "continuationToken": "token123" } - })"; - } else { - // Second page — no more - // Verify skip/token were passed - EXPECT_EQ(req["indexEntitiesRequest"]["skip"], 1); - EXPECT_EQ(req["indexEntitiesRequest"]["continuationToken"], "token123"); - return R"({ + })"); + } + + // Second page — no more + // Verify skip/token were passed + EXPECT_EQ(req["indexEntitiesRequest"]["skip"], 1); + EXPECT_EQ(req["indexEntitiesRequest"]["continuationToken"], "token123"); + return MakeOkResponse(R"({ "indexEntitiesResponse": { "totalCount": 2, "value": [{ @@ -334,9 +354,8 @@ TEST(AzureCatalogClientTest, FollowsPagination) { "nextSkip": 0, "continuationToken": "" } - })"; - } - }); + })"); + }); auto models = client.FetchAllModels(); EXPECT_EQ(call_count, 2); @@ -348,7 +367,7 @@ TEST(AzureCatalogClientTest, FollowsPagination) { // Disabled by default. Run with: --gtest_also_run_disabled_tests // ======================================================================== -TEST(AzureCatalogClientTest, LiveFetchModelsFromAzure) { +TEST(AzureCatalogClientTest, DISABLED_LiveFetchModelsFromAzure) { AllDevicesEpDetector ep; StderrLogger logger; AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "''", ep, logger); @@ -387,13 +406,14 @@ TEST(AzureCatalogClientTest, LiveFetchModelsFromAzure) { TEST(AzureCatalogClientTest, BuildModelIdFiltersProducesCorrectStructure) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); - nlohmann::json captured; - client.SetHttpPost([&](const std::string&, const std::string& body) -> std::string { - captured = nlohmann::json::parse(body); - return R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"; - }); + + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string& body) { + captured = nlohmann::json::parse(body); + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }); client.FetchModelsByIds({"phi-4-mini:3", "llama-3:1"}); @@ -429,13 +449,14 @@ TEST(AzureCatalogClientTest, BuildModelIdFiltersProducesCorrectStructure) { TEST(AzureCatalogClientTest, FetchModelsByIdsEmptyReturnsEmptyNoHttp) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); - bool http_called = false; - client.SetHttpPost([&](const std::string&, const std::string&) -> std::string { - http_called = true; - return R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"; - }); + + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string&) { + http_called = true; + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }); auto result = client.FetchModelsByIds({}); EXPECT_TRUE(result.empty()); @@ -479,13 +500,13 @@ static std::string MakeMockCatalogResponse( TEST(AzureCatalogClientTest, WithCachedModels_NoCachedIds_BehavesLikeRegularFetch) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); - int http_call_count = 0; - client.SetHttpPost([&](const std::string&, const std::string&) -> std::string { - http_call_count++; - return MakeMockCatalogResponse({{"phi-4-mini", 3}}); - }); + + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string&) { + http_call_count++; + return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); + }); auto result = FetchAllModelInfosWithCachedModels(client, {}, logger); @@ -498,13 +519,13 @@ TEST(AzureCatalogClientTest, WithCachedModels_NoCachedIds_BehavesLikeRegularFetc TEST(AzureCatalogClientTest, WithCachedModels_AlreadyInCatalog_NoExtraFetch) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); - int http_call_count = 0; - client.SetHttpPost([&](const std::string&, const std::string&) -> std::string { - http_call_count++; - return MakeMockCatalogResponse({{"phi-4-mini", 3}}); - }); + + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string&) { + http_call_count++; + return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); + }); // The cached ID matches what's already in the catalog — no extra fetch needed. auto result = FetchAllModelInfosWithCachedModels(client, {"phi-4-mini:3"}, logger); @@ -517,15 +538,14 @@ TEST(AzureCatalogClientTest, WithCachedModels_AlreadyInCatalog_NoExtraFetch) { TEST(AzureCatalogClientTest, WithCachedModels_UnresolvedId_TriggersSecondFetch) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); - int http_call_count = 0; - client.SetHttpPost([&](const std::string&, const std::string& body) -> std::string { + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string& body) { http_call_count++; if (http_call_count == 1) { // Primary catalog fetch — returns phi-4-mini only. - return MakeMockCatalogResponse({{"phi-4-mini", 3}}); + return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); } else { // Second fetch — looking up the unresolved model by ID. auto req = nlohmann::json::parse(body); @@ -542,7 +562,7 @@ TEST(AzureCatalogClientTest, WithCachedModels_UnresolvedId_TriggersSecondFetch) EXPECT_TRUE(has_id_filter); - return MakeMockCatalogResponse({{"old-model", 1}}); + return MakeOkResponse(MakeMockCatalogResponse({{"old-model", 1}})); } }); @@ -571,18 +591,18 @@ TEST(AzureCatalogClientTest, WithCachedModels_UnresolvedId_TriggersSecondFetch) TEST(AzureCatalogClientTest, WithCachedModels_FullyUnresolved_CreatesBYOEntry) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); - int http_call_count = 0; - client.SetHttpPost([&](const std::string&, const std::string&) -> std::string { + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string&) { http_call_count++; if (http_call_count == 1) { // Primary catalog — returns nothing matching. - return MakeMockCatalogResponse({{"phi-4-mini", 3}}); + return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); } else { // FetchModelsByIds — also returns nothing for the custom model. - return R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"; + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); } }); @@ -614,7 +634,6 @@ TEST(AzureCatalogClientTest, WithCachedModels_FullyUnresolved_CreatesBYOEntry) { TEST(AzureCatalogClientTest, ParsesReasoningFieldsCorrectly) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); const char* mock_response = R"({ "indexEntitiesResponse": { @@ -655,9 +674,10 @@ TEST(AzureCatalogClientTest, ParsesReasoningFieldsCorrectly) { } })"; - client.SetHttpPost([&](const std::string&, const std::string&) -> std::string { - return mock_response; - }); + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string&) { + return MakeOkResponse(mock_response); + }); auto model_infos = client.FetchAllModelInfos(); ASSERT_EQ(model_infos.size(), 1u); @@ -681,14 +701,14 @@ TEST(AzureCatalogClientTest, ParsesReasoningFieldsCorrectly) { TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { AllDevicesEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://test.com", "", ep, logger); // Three models with mixed-case device strings ("GpU", "NPU", "Cpu") and mixed-case // bool strings ("TRUE", "False", "tRuE") to exercise the case-insensitive paths in // ParseDeviceType and the bool-tag parser. // Each request carries a device filter — return only the matching model so the // 3 per-device requests (AllDevicesEpDetector) produce exactly 3 results total. - client.SetHttpPost([&](const std::string&, const std::string& body) -> std::string { + AzureCatalogClient client("https://test.com", "", ep, logger, + [&](const std::string&, const std::string& body) { auto req = nlohmann::json::parse(body); std::string device_filter; @@ -700,7 +720,7 @@ TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { } if (device_filter == "gpu") { - return R"({ + return MakeOkResponse(R"({ "indexEntitiesResponse": { "totalCount": 1, "value": [{ @@ -718,11 +738,11 @@ TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { "nextSkip": 0, "continuationToken": "" } - })"; + })"); } if (device_filter == "npu") { - return R"({ + return MakeOkResponse(R"({ "indexEntitiesResponse": { "totalCount": 1, "value": [{ @@ -740,11 +760,11 @@ TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { "nextSkip": 0, "continuationToken": "" } - })"; + })"); } // cpu - return R"({ + return MakeOkResponse(R"({ "indexEntitiesResponse": { "totalCount": 1, "value": [{ @@ -762,7 +782,7 @@ TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { "nextSkip": 0, "continuationToken": "" } - })"; + })"); }); auto model_infos = client.FetchAllModelInfos(); @@ -785,3 +805,321 @@ TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { EXPECT_EQ(by_id["m-cpu:1"]->device_type, DeviceType::kCPU); EXPECT_EQ(by_id["m-cpu:1"]->int_properties.at(FOUNDRY_LOCAL_MODEL_PROP_SUPPORTS_REASONING_INT), 1); } + +// ======================================================================== +// Region detection tests +// ======================================================================== + +namespace { + +// Build an HTTP response with a single cluster header and the given status. +http::HttpResponse MakeProbeResponse(int status, const std::string& cluster_header) { + http::HttpResponse resp; + resp.status = status; + if (!cluster_header.empty()) { + resp.headers["azureml-served-by-cluster"] = cluster_header; + } + resp.body = R"({"value":[]})"; + return resp; +} + +} // namespace + +TEST(AzureCatalogClientTest, DetectRegionParsesClusterHeader) { + CpuOnlyEpDetector ep; + StderrLogger logger; + std::string probe_url; + std::string catalog_url; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string& url, const std::string&) { + if (url == "https://api.catalog.azureml.ms/asset-gallery/v1.0/models") { + probe_url = url; + return MakeProbeResponse(200, "vienna-westus2-01"); + } + + catalog_url = url; + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }); + + client.FetchAllModels(); + EXPECT_EQ(probe_url, "https://api.catalog.azureml.ms/asset-gallery/v1.0/models"); + EXPECT_EQ(catalog_url, "https://ai.azure.com/api/westus2/ux/v1.0/entities/crossRegion"); +} + +TEST(AzureCatalogClientTest, DetectRegionMissingHeaderDefaultsToEastus) { + CpuOnlyEpDetector ep; + StderrLogger logger; + std::string catalog_url; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string& url, const std::string&) { + if (url == "https://api.catalog.azureml.ms/asset-gallery/v1.0/models") { + return MakeProbeResponse(200, /*cluster_header=*/""); + } + + catalog_url = url; + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }); + + client.FetchAllModels(); + EXPECT_EQ(catalog_url, "https://ai.azure.com/api/eastus/ux/v1.0/entities/crossRegion"); +} + +TEST(AzureCatalogClientTest, DetectRegionMalformedHeaderDefaultsToEastus) { + CpuOnlyEpDetector ep; + StderrLogger logger; + std::string catalog_url; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string& url, const std::string&) { + if (url == "https://api.catalog.azureml.ms/asset-gallery/v1.0/models") { + return MakeProbeResponse(200, "not-a-cluster-name"); + } + + catalog_url = url; + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }); + + client.FetchAllModels(); + EXPECT_EQ(catalog_url, "https://ai.azure.com/api/eastus/ux/v1.0/entities/crossRegion"); +} + +TEST(AzureCatalogClientTest, DetectRegionProbeFailureDefaultsToEastus) { + CpuOnlyEpDetector ep; + StderrLogger logger; + std::string catalog_url; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string& url, const std::string&) { + if (url == "https://api.catalog.azureml.ms/asset-gallery/v1.0/models") { + return MakeProbeResponse(503, "vienna-westus2-01"); + } + + catalog_url = url; + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }); + + client.FetchAllModels(); + EXPECT_EQ(catalog_url, "https://ai.azure.com/api/eastus/ux/v1.0/entities/crossRegion"); +} + +TEST(AzureCatalogClientTest, ExplicitRegionOverridesDetection) { + CpuOnlyEpDetector ep; + StderrLogger logger; + bool probe_called = false; + std::string catalog_url; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string& url, const std::string&) { + if (url == "https://api.catalog.azureml.ms/asset-gallery/v1.0/models") { + probe_called = true; + } + + catalog_url = url; + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }, + "westeurope"); + + client.FetchAllModels(); + EXPECT_FALSE(probe_called); + EXPECT_EQ(catalog_url, "https://ai.azure.com/api/westeurope/ux/v1.0/entities/crossRegion"); +} + +// ======================================================================== +// Region-aware catalog URL tests +// ======================================================================== + +TEST(AzureCatalogClientTest, ActiveRegionDrivesCatalogUrl) { + CpuOnlyEpDetector ep; + StderrLogger logger; + std::string captured_url; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string& url, const std::string&) { + captured_url = url; + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }, + "westus2"); + + client.FetchAllModels(); + EXPECT_EQ(captured_url, "https://ai.azure.com/api/westus2/ux/v1.0/entities/crossRegion"); +} + +TEST(AzureCatalogClientTest, NonRegionalUrlUsedVerbatimEvenWithRegion) { + CpuOnlyEpDetector ep; + StderrLogger logger; + std::string captured_url; + AzureCatalogClient client("https://custom.example.com/catalog", "", ep, logger, + [&](const std::string& url, const std::string&) { + captured_url = url; + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + }, + "westus2"); + + client.FetchAllModels(); + EXPECT_EQ(captured_url, "https://custom.example.com/catalog/entities/crossRegion"); +} + +TEST(AzureCatalogClientTest, DetectedRegionStampedOnModels) { + CpuOnlyEpDetector ep; + StderrLogger logger; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string&, const std::string&) { + return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); + }, + "westus2"); + + auto infos = client.FetchAllModelInfos(); + ASSERT_EQ(infos.size(), 1u); + EXPECT_EQ(infos[0].detected_region, "westus2"); +} + +TEST(AzureCatalogClientTest, RegionStampedPerFilterSetAfterFallback) { + CpuGpuEpDetector ep; + StderrLogger logger; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string& url, const std::string& body) { + http::HttpResponse resp; + if (body.find("\"cpu\"") != std::string::npos && url.find("/api/eastus/") != std::string::npos) { + resp.status = 503; + return resp; + } + + if (body.find("\"cpu\"") != std::string::npos && url.find("/api/eastus2/") != std::string::npos) { + resp.status = 200; + resp.body = MakeMockCatalogResponse({{"cpu-model", 1}}); + return resp; + } + + if (body.find("\"gpu\"") != std::string::npos && url.find("/api/eastus2/") != std::string::npos) { + resp.status = 503; + return resp; + } + + if (body.find("\"gpu\"") != std::string::npos && url.find("/api/eastus/") != std::string::npos) { + resp.status = 200; + resp.body = MakeMockCatalogResponse({{"gpu-model", 1}}); + return resp; + } + + resp.status = 500; + return resp; + }, "eastus"); + + auto infos = client.FetchAllModelInfos(); + ASSERT_EQ(infos.size(), 2u); + + std::map region_by_id; + for (const auto& info : infos) { + region_by_id[info.model_id] = info.detected_region; + } + + EXPECT_EQ(region_by_id["cpu-model:1"], "eastus2"); + EXPECT_EQ(region_by_id["gpu-model:1"], "eastus"); +} + +// ======================================================================== +// Catalog region fallback +// ======================================================================== + +TEST(AzureCatalogClientTest, Fallback_RetriesNextRegionAndPinsPagination) { + CpuOnlyEpDetector ep; + StderrLogger logger; + std::vector attempted_urls; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string& url, const std::string&) { + attempted_urls.push_back(url); + http::HttpResponse resp; + // First attempt (eastus) is region-unhealthy; subsequent regions are healthy. + if (attempted_urls.size() == 1) { + resp.status = 503; + return resp; + } + resp.status = 200; + resp.body = R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"; + return resp; + }, "eastus"); + + auto models = client.FetchAllModels(); + ASSERT_GE(attempted_urls.size(), 2u); + EXPECT_TRUE(attempted_urls[0].find("/api/eastus/") != std::string::npos); + EXPECT_TRUE(attempted_urls[1].find("/api/eastus2/") != std::string::npos) + << "Expected fallback to the first proximal region. Got: " << attempted_urls[1]; +} + +TEST(AzureCatalogClientTest, Fallback_DisabledDoesNotRetry) { + CpuOnlyEpDetector ep; + StderrLogger logger; + int calls = 0; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string&, const std::string&) { + ++calls; + http::HttpResponse resp; + resp.status = 503; // unhealthy, but fallback is off → no retry, filter set is skipped + return resp; + }, "eastus", /*region_fallback_enabled=*/false); + + auto models = client.FetchAllModels(); + EXPECT_EQ(calls, 1); + EXPECT_TRUE(models.empty()); +} + +TEST(AzureCatalogClientTest, Fallback_PermanentCatalogErrorThrows) { + CpuOnlyEpDetector ep; + StderrLogger logger; + int calls = 0; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string&, const std::string&) { + ++calls; + http::HttpResponse resp; + resp.status = 404; + return resp; + }, "eastus"); + + EXPECT_THROW(client.FetchAllModels(), fl::Exception); + EXPECT_EQ(calls, 1); +} + +TEST(AzureCatalogClientTest, Fallback_MidPaginationFailureDoesNotCommitPartialFilterSet) { + CpuOnlyEpDetector ep; + StderrLogger logger; + int calls = 0; + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, + [&](const std::string&, const std::string&) { + ++calls; + http::HttpResponse resp; + if (calls == 1) { + resp.status = 200; + resp.body = R"({ + "indexEntitiesResponse": { + "totalCount": 1, + "value": [{ + "assetId": "azureml://registries/azureml/models/page-one-model/versions/1", + "entityId": "page-one-model:1", + "annotations": {"tags": {"alias": "page-one-model"}}, + "properties": { + "name": "page-one-model", + "version": 1, + "variantInfo": { + "parents": [], + "variantMetadata": {"device": "cpu", "executionProvider": "CPUExecutionProvider"} + } + } + }], + "nextSkip": 50, + "continuationToken": "next" + } + })"; + return resp; + } + + resp.status = 503; + return resp; + }, "eastus"); + + auto models = client.FetchAllModels(); + EXPECT_EQ(calls, 2); + EXPECT_TRUE(models.empty()); +} diff --git a/sdk_v2/cpp/test/internal_api/c_api_test.cc b/sdk_v2/cpp/test/internal_api/c_api_test.cc index a8f072410..35d926573 100644 --- a/sdk_v2/cpp/test/internal_api/c_api_test.cc +++ b/sdk_v2/cpp/test/internal_api/c_api_test.cc @@ -287,8 +287,11 @@ TEST(CApiTest, GetModelsFromCatalog) { EXPECT_NE(models, nullptr); if (models) { - size_t count = api->ModelList_Size(models); - EXPECT_GT(count, 0u); // Catalog is populated from Azure during Manager_Create + // The catalog is now always fetched live from Azure during Manager_Create. + // The exact model count depends on network/region availability, so we only + // verify the C-API plumbing returns a usable list rather than asserting a + // populated catalog (which would make this unit test network-dependent). + (void)api->ModelList_Size(models); api->ModelList_Release(models); } diff --git a/sdk_v2/cpp/test/internal_api/catalog_cache_test.cc b/sdk_v2/cpp/test/internal_api/catalog_cache_test.cc index ace4d29a4..c46cd4dc5 100644 --- a/sdk_v2/cpp/test/internal_api/catalog_cache_test.cc +++ b/sdk_v2/cpp/test/internal_api/catalog_cache_test.cc @@ -117,6 +117,26 @@ TEST_F(CatalogCacheTest, SaveAndLoadRoundTrip) { } } +TEST_F(CatalogCacheTest, DetectedRegionRoundTrip) { + ModelInfo model = MakeTestModel("phi-4-mini:3", 3); + model.detected_region = "westus2"; + + { + CatalogCache cache(test_dir_, logger_); + cache.Save({model}); + } + + { + CatalogCache cache(test_dir_, logger_); + cache.Load(); + auto loaded = cache.GetCachedModels(); + + ASSERT_TRUE(loaded.has_value()); + ASSERT_EQ(loaded->size(), 1u); + EXPECT_EQ((*loaded)[0].detected_region, "westus2"); + } +} + TEST_F(CatalogCacheTest, EmptyModelListRoundTrip) { std::vector empty_models; diff --git a/sdk_v2/cpp/test/internal_api/download_test.cc b/sdk_v2/cpp/test/internal_api/download_test.cc index 66f189a98..cf3519dc8 100644 --- a/sdk_v2/cpp/test/internal_api/download_test.cc +++ b/sdk_v2/cpp/test/internal_api/download_test.cc @@ -6,9 +6,7 @@ // - InferenceModelWriter (inference_model.json) // - FixVariantInferenceModelJson (variant fixup) // - DownloadManager (full flow orchestration) -#if defined(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) #include "catalog/azure_catalog_client.h" -#endif #include "catalog/azure_catalog_models.h" #include "download/blob_downloader.h" #include "download/download_manager.h" @@ -20,6 +18,7 @@ #include "model_info.h" #include "test_helpers.h" #include "util/path_safety.h" +#include "util/region_fallback.h" #include #include #include @@ -69,6 +68,13 @@ std::string ReadFile(const fs::path& path) { return ss.str(); } +http::HttpResponse MakeRegistryResponse(std::string body, int status = 200) { + http::HttpResponse response; + response.status = status; + response.body = std::move(body); + return response; +} + /// Mock blob downloader for testing download orchestration. class MockBlobDownloader : public IBlobDownloader { public: @@ -184,7 +190,6 @@ class CancelCheckingMockDownloader : public IBlobDownloader { } }; -#if defined(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) /// EP detector returning all device types so the catalog returns the full model list. class AllDevicesEpDetector : public IEpDetector { public: @@ -196,7 +201,6 @@ class AllDevicesEpDetector : public IEpDetector { }; } }; -#endif // FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT } // anonymous namespace @@ -205,16 +209,16 @@ class AllDevicesEpDetector : public IEpDetector { // ======================================================================== TEST(ModelRegistryClientTest, ResolvesModelContainerFromJson) { - ModelRegistryClient client("eastus", fl::test::NullLog()); - client.SetHttpGet([](const std::string& url) -> std::string { - // Verify the URL is correctly formed + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [](const std::string& url) { EXPECT_TRUE(url.find("assetId=") != std::string::npos); - return R"({ + return MakeRegistryResponse(R"({ "blobSasUri": "https://storage.blob.core.windows.net/container?sv=2023-01-01&sig=abc", "modelEntity": { "description": "A test model" } - })"; + })"); }); auto container = client.ResolveModelContainer("azureml://registries/test/models/phi-3"); @@ -224,34 +228,39 @@ TEST(ModelRegistryClientTest, ResolvesModelContainerFromJson) { } TEST(ModelRegistryClientTest, ThrowsOnEmptyAssetId) { - ModelRegistryClient client("eastus", fl::test::NullLog()); + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false)); EXPECT_THROW(client.ResolveModelContainer(""), fl::Exception); } TEST(ModelRegistryClientTest, ThrowsOnMissingSasUri) { - ModelRegistryClient client("eastus", fl::test::NullLog()); - client.SetHttpGet([](const std::string&) -> std::string { - return R"({"modelEntity": {"description": "no sas uri"}})"; + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [](const std::string&) { + return MakeRegistryResponse(R"({"modelEntity": {"description": "no sas uri"}})"); }); EXPECT_THROW(client.ResolveModelContainer("azureml://test"), fl::Exception); } TEST(ModelRegistryClientTest, ThrowsOnEmptyResponse) { - ModelRegistryClient client("eastus", fl::test::NullLog()); - client.SetHttpGet([](const std::string&) -> std::string { return ""; }); + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [](const std::string&) { return MakeRegistryResponse(""); }); EXPECT_THROW(client.ResolveModelContainer("azureml://test"), fl::Exception); } TEST(ModelRegistryClientTest, ThrowsOnMalformedJson) { - ModelRegistryClient client("eastus", fl::test::NullLog()); - client.SetHttpGet([](const std::string&) -> std::string { return "not json"; }); + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [](const std::string&) { return MakeRegistryResponse("not json"); }); EXPECT_THROW(client.ResolveModelContainer("azureml://test"), fl::Exception); } TEST(ModelRegistryClientTest, HandlesOptionalDescription) { - ModelRegistryClient client("eastus", fl::test::NullLog()); - client.SetHttpGet([](const std::string&) -> std::string { - return R"({"blobSasUri": "https://example.com/blob?sig=x"})"; + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [](const std::string&) { + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob?sig=x"})"); }); auto container = client.ResolveModelContainer("azureml://test"); EXPECT_EQ(container.blob_sas_uri, "https://example.com/blob?sig=x"); @@ -259,11 +268,12 @@ TEST(ModelRegistryClientTest, HandlesOptionalDescription) { } TEST(ModelRegistryClientTest, UrlEncodesAssetId) { - ModelRegistryClient client("eastus", fl::test::NullLog()); std::string captured_url; - client.SetHttpGet([&captured_url](const std::string& url) -> std::string { + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [&captured_url](const std::string& url) { captured_url = url; - return R"({"blobSasUri": "https://example.com/blob"})"; + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); }); client.ResolveModelContainer("azureml://registries/test models/v1"); // Spaces should be encoded as %20 @@ -272,29 +282,125 @@ TEST(ModelRegistryClientTest, UrlEncodesAssetId) { } TEST(ModelRegistryClientTest, Region_DefaultIsEastUs) { - ModelRegistryClient client("eastus", fl::test::NullLog()); std::string captured_url; - client.SetHttpGet([&captured_url](const std::string& url) -> std::string { + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [&captured_url](const std::string& url) { captured_url = url; - return R"({"blobSasUri": "https://example.com/blob"})"; + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); }); client.ResolveModelContainer("azureml://test"); EXPECT_TRUE(captured_url.find("eastus.api.azureml.ms") != std::string::npos) << "Expected URL to target eastus region by default. Got: " << captured_url; } -TEST(ModelRegistryClientTest, Region_CustomRegion) { - ModelRegistryClient client("westeurope", fl::test::NullLog()); +TEST(ModelRegistryClientTest, Region_PerCallOverridesDefault) { std::string captured_url; - client.SetHttpGet([&captured_url](const std::string& url) -> std::string { + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [&captured_url](const std::string& url) { captured_url = url; - return R"({"blobSasUri": "https://example.com/blob"})"; + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); }); - client.ResolveModelContainer("azureml://test"); - EXPECT_TRUE(captured_url.find("westeurope.api.azureml.ms") != std::string::npos) - << "Expected URL to target westeurope region. Got: " << captured_url; + // A non-empty per-call region selects that regional endpoint instead of the default. + client.ResolveModelContainer("azureml://test", "westus2"); + EXPECT_TRUE(captured_url.find("westus2.api.azureml.ms") != std::string::npos) + << "Expected per-call region to target westus2. Got: " << captured_url; EXPECT_TRUE(captured_url.find("eastus.api.azureml.ms") == std::string::npos) - << "Expected URL to NOT contain eastus. Got: " << captured_url; + << "Expected per-call region to override the eastus default. Got: " << captured_url; +} + +TEST(ModelRegistryClientTest, Region_EmptyPerCallUsesDefault) { + std::string captured_url; + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [&captured_url](const std::string& url) { + captured_url = url; + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); + }); + client.ResolveModelContainer("azureml://test", ""); + EXPECT_TRUE(captured_url.find("eastus.api.azureml.ms") != std::string::npos) + << "Expected empty per-call region to fall back to the default. Got: " << captured_url; +} + +TEST(ModelRegistryClientTest, Fallback_RetriesNextRegionOnRegionHealthFailure) { + auto fallback = + std::make_unique(fl::test::NullLog(), true, [](std::size_t) { return std::size_t{0}; }); + auto* fallback_observer = fallback.get(); + + std::vector attempted_urls; + ModelRegistryClient client("eastus", fl::test::NullLog(), std::move(fallback), [&](const std::string& url) { + attempted_urls.push_back(url); + http::HttpResponse resp; + if (attempted_urls.size() == 1) { + resp.status = 503; // first region (eastus) unhealthy + return resp; + } + resp.status = 200; // proximal region recovers + resp.body = R"({"blobSasUri": "https://example.com/blob"})"; + return resp; + }); + + auto container = client.ResolveModelContainer("azureml://test", "eastus"); + EXPECT_EQ(container.blob_sas_uri, "https://example.com/blob"); + ASSERT_EQ(attempted_urls.size(), 2u); + EXPECT_TRUE(attempted_urls[0].find("eastus.api.azureml.ms") != std::string::npos); + EXPECT_TRUE(attempted_urls[1].find("eastus2.api.azureml.ms") != std::string::npos) + << "Expected fallback to the first proximal region. Got: " << attempted_urls[1]; + + // The healthy region becomes sticky for subsequent registry calls. + auto sticky = fallback_observer->StickyRegion(); + ASSERT_TRUE(sticky.has_value()); + EXPECT_EQ(*sticky, "eastus2"); +} + +TEST(ModelRegistryClientTest, Fallback_PermanentErrorThrowsWithoutRetry) { + auto fallback = + std::make_unique(fl::test::NullLog(), true, [](std::size_t) { return std::size_t{0}; }); + + int calls = 0; + ModelRegistryClient client("eastus", fl::test::NullLog(), std::move(fallback), [&](const std::string&) { + ++calls; + http::HttpResponse resp; + resp.status = 404; // permanent — must not trigger cross-region retries + return resp; + }); + + EXPECT_THROW(client.ResolveModelContainer("azureml://test", "eastus"), fl::Exception); + EXPECT_EQ(calls, 1); +} + +TEST(ModelRegistryClientTest, Fallback_PerCallRegionOverridesStickyRegion) { + auto fallback = + std::make_unique(fl::test::NullLog(), true, [](std::size_t) { return std::size_t{0}; }); + auto* fallback_observer = fallback.get(); + + std::vector attempted_urls; + ModelRegistryClient client("eastus", fl::test::NullLog(), std::move(fallback), [&](const std::string& url) { + attempted_urls.push_back(url); + http::HttpResponse resp; + if (attempted_urls.size() == 1) { + resp.status = 503; + return resp; + } + + resp.status = 200; + resp.body = R"({"blobSasUri": "https://example.com/blob"})"; + return resp; + }); + + client.ResolveModelContainer("azureml://first", "eastus"); + auto sticky = fallback_observer->StickyRegion(); + ASSERT_TRUE(sticky.has_value()); + EXPECT_EQ(*sticky, "eastus2"); + + attempted_urls.clear(); + client.ResolveModelContainer("azureml://second", "westeurope"); + + ASSERT_FALSE(attempted_urls.empty()); + EXPECT_TRUE(attempted_urls.front().find("westeurope.api.azureml.ms") != std::string::npos) + << "Expected explicit per-call region to start at westeurope despite sticky region. Got: " + << attempted_urls.front(); } // ======================================================================== @@ -641,10 +747,12 @@ TEST(DownloadManagerTest, FullDownloadFlow) { auto manager = std::make_unique(tmpdir.string(), "eastus", 64, fl::test::NullLog()); // Mock the registry client - auto registry = std::make_unique("eastus", fl::test::NullLog()); - registry->SetHttpGet([](const std::string&) -> std::string { - return R"({"blobSasUri": "https://storage.blob.core.windows.net/container?sig=test"})"; - }); + auto registry = std::make_unique( + "eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), + [](const std::string&) { + return MakeRegistryResponse( + R"({"blobSasUri": "https://storage.blob.core.windows.net/container?sig=test"})"); + }); manager->SetModelRegistryClient(std::move(registry)); // Mock the blob downloader @@ -681,6 +789,64 @@ TEST(DownloadManagerTest, FullDownloadFlow) { EXPECT_FALSE(progress_values.empty()); } +// --- Region resolution: detected region drives the download endpoint --- + +// Run one download and return the registry URL the manager hit. +static std::string CaptureRegistryUrlForDownload(const std::string& config_region, + const std::string& detected_region) { + TempDir tmpdir; + auto manager = + std::make_unique(tmpdir.string(), config_region, 64, fl::test::NullLog()); + + std::string captured_url; + auto registry = std::make_unique( + "eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), + [&captured_url](const std::string& url) { + captured_url = url; + return MakeRegistryResponse( + R"({"blobSasUri": "https://storage.blob.core.windows.net/container?sig=test"})"); + }); + manager->SetModelRegistryClient(std::move(registry)); + + auto mock_downloader = std::make_unique(); + mock_downloader->expected_sas_uri = "https://storage.blob.core.windows.net/container?sig=test"; + mock_downloader->blobs_to_return = {{"config.json", 100}}; + manager->SetBlobDownloader(std::move(mock_downloader)); + + ModelInfo info; + info.model_id = "test-model:1"; + info.name = "test-model"; + info.uri = "azureml://registries/test/models/test-model/versions/1"; + info.string_properties[FOUNDRY_LOCAL_MODEL_PROP_PUBLISHER_STR] = "TestPublisher"; + info.detected_region = detected_region; + + manager->DownloadModel(info, nullptr); + return captured_url; +} + +TEST(DownloadManagerTest, Region_UsesDetectedRegionWhenConfigIsAuto) { + auto url = CaptureRegistryUrlForDownload(/*config_region=*/"auto", /*detected_region=*/"westus2"); + EXPECT_TRUE(url.find("westus2.api.azureml.ms") != std::string::npos) << url; +} + +TEST(DownloadManagerTest, Region_ExplicitConfigOverridesDetectedRegion) { + auto url = CaptureRegistryUrlForDownload(/*config_region=*/"westeurope", + /*detected_region=*/"westus2"); + EXPECT_TRUE(url.find("westeurope.api.azureml.ms") != std::string::npos) << url; + EXPECT_TRUE(url.find("westus2.api.azureml.ms") == std::string::npos) << url; +} + +TEST(DownloadManagerTest, Region_AutoConfigIsCaseInsensitive) { + auto url = CaptureRegistryUrlForDownload(/*config_region=*/"AUTO", /*detected_region=*/"westus2"); + EXPECT_TRUE(url.find("westus2.api.azureml.ms") != std::string::npos) << url; + EXPECT_TRUE(url.find("auto.api.azureml.ms") == std::string::npos) << url; +} + +TEST(DownloadManagerTest, Region_FallsBackToEastusWhenNoConfigAndNoDetected) { + auto url = CaptureRegistryUrlForDownload(/*config_region=*/"auto", /*detected_region=*/""); + EXPECT_TRUE(url.find("eastus.api.azureml.ms") != std::string::npos) << url; +} + TEST(DownloadManagerTest, SkipsAlreadyCachedModel) { TempDir tmpdir; auto manager = std::make_unique(tmpdir.string(), "eastus", 64, fl::test::NullLog()); @@ -809,10 +975,11 @@ TEST(DownloadManagerTest, ConcurrentDownloadsOfSameModelSerialize) { TempDir tmpdir; DownloadManager manager(tmpdir.string(), "eastus", 64, fl::test::NullLog()); - auto registry = std::make_unique("eastus", fl::test::NullLog()); - registry->SetHttpGet([](const std::string&) -> std::string { - return R"({"blobSasUri": "https://storage.blob.core.windows.net/c?sig=test"})"; - }); + auto registry = std::make_unique( + "eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), + [](const std::string&) { + return MakeRegistryResponse(R"({"blobSasUri": "https://storage.blob.core.windows.net/c?sig=test"})"); + }); manager.SetModelRegistryClient(std::move(registry)); // Counting mock — increments an atomic on every DownloadBlob call. @@ -909,13 +1076,11 @@ TEST(DownloadManagerTest, IsModelCachedReturnsFalseWhenPathIsRegularFile) { } // ======================================================================== -// End-to-end integration test — fetches catalog then downloads smallest model -// Only built when the live Azure catalog client is present in the source tree. +// End-to-end integration test — fetches catalog then downloads smallest model. // Disabled by default. Run with: --gtest_also_run_disabled_tests // ======================================================================== -#if defined(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) -TEST(EndToEndTest, LiveCatalogAndDownload) { +TEST(EndToEndTest, DISABLED_LiveCatalogAndDownload) { // 1. Fetch the full model list from the Azure catalog AllDevicesEpDetector ep; StderrLogger logger; @@ -1023,7 +1188,6 @@ TEST(EndToEndTest, LiveCatalogAndDownload) { << "\nProgress callbacks: " << progress_values.size() << "\n====================================\n"; } -#endif // FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT // ======================================================================== // Path-injection hardening (H9) — DownloadManager::ComputeModelPath must diff --git a/sdk_v2/cpp/test/internal_api/model_info_test.cc b/sdk_v2/cpp/test/internal_api/model_info_test.cc index b7cddbcec..b8672e5c4 100644 --- a/sdk_v2/cpp/test/internal_api/model_info_test.cc +++ b/sdk_v2/cpp/test/internal_api/model_info_test.cc @@ -15,6 +15,33 @@ using namespace fl; // Reasoning fields round-trip // ======================================================================== +TEST(ModelInfoRoundTrip, DetectedRegionSurvivesRoundTrip) { + ModelInfo original; + original.model_id = "test-model:1"; + original.name = "test-model"; + original.detected_region = "westus2"; + + nlohmann::json j = ModelInfoToJson(original); + EXPECT_EQ(j["detectedRegion"], "westus2"); + + ModelInfo restored = ModelInfoFromJson(j); + EXPECT_EQ(restored.detected_region, "westus2"); +} + +TEST(ModelInfoRoundTrip, MissingDetectedRegionOmittedFromJsonAndParsesEmpty) { + ModelInfo original; + original.model_id = "test-model:1"; + original.name = "test-model"; + // detected_region left empty (e.g. BYO model or pre-region cache file). + + nlohmann::json j = ModelInfoToJson(original); + EXPECT_FALSE(j.contains("detectedRegion")); + + // An old cache document without the field must still parse with an empty region. + ModelInfo restored = ModelInfoFromJson(j); + EXPECT_TRUE(restored.detected_region.empty()); +} + TEST(ModelInfoRoundTrip, ReasoningFieldsSurviveRoundTrip) { ModelInfo original; original.model_id = "test-model:1"; diff --git a/sdk_v2/cpp/test/internal_api/region_fallback_test.cc b/sdk_v2/cpp/test/internal_api/region_fallback_test.cc new file mode 100644 index 000000000..e7ec6809d --- /dev/null +++ b/sdk_v2/cpp/test/internal_api/region_fallback_test.cc @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// +// Tests for the region-fallback engine: +// - candidate-chain construction (start + proximal + random tail, deduped) +// - retryable vs permanent status classification +// - sticky-region recording per endpoint +// - fallback to the next healthy region, and exhaustion behavior +// +#include "util/region_fallback.h" + +#include "exception.h" +#include "http/http_client.h" +#include "logger.h" + +#include + +#include +#include +#include + +using namespace fl; + +namespace { + +http::HttpResponse Resp(int status) { + http::HttpResponse r; + r.status = status; + r.body = "{}"; + return r; +} + +// Deterministic picker: always selects the first remaining region. +RegionFallback::RandomPicker FirstPicker() { + return [](std::size_t) -> std::size_t { return 0; }; +} + +} // namespace + +// ======================================================================== +// Candidate chain +// ======================================================================== + +TEST(RegionFallbackTest, ChainStartsWithStartThenProximalThenRandom) { + auto chain = BuildRegionFallbackChain("eastus", FirstPicker()); + + ASSERT_FALSE(chain.empty()); + EXPECT_EQ(chain.front(), "eastus"); + // eastus proximal: eastus2, centralus, southcentralus, westus2, westeurope + EXPECT_EQ(chain[1], "eastus2"); + EXPECT_EQ(chain[2], "centralus"); + // The last element is the random tail (a known public region not already present). + EXPECT_GE(chain.size(), 7u); +} + +TEST(RegionFallbackTest, ChainIsDedupedAndLowercased) { + auto chain = BuildRegionFallbackChain("EastUS", FirstPicker()); + EXPECT_EQ(chain.front(), "eastus"); + + std::set unique(chain.begin(), chain.end()); + EXPECT_EQ(unique.size(), chain.size()) << "chain must contain no duplicates"; +} + +TEST(RegionFallbackTest, UnknownStartRegionStillProducesChain) { + auto chain = BuildRegionFallbackChain("madeupregion", FirstPicker()); + ASSERT_FALSE(chain.empty()); + EXPECT_EQ(chain.front(), "madeupregion"); + // No proximal entry, but the random tail still appends one known region. + EXPECT_GE(chain.size(), 2u); +} + +// ======================================================================== +// Status classification +// ======================================================================== + +TEST(RegionFallbackTest, RetryableStatusClassification) { + for (int s : {0, 408, 429, 500, 502, 503, 504}) { + EXPECT_TRUE(IsRegionRetryableStatus(s)) << "status " << s << " should be retryable"; + } + + for (int s : {200, 201, 400, 401, 403, 404}) { + EXPECT_FALSE(IsRegionRetryableStatus(s)) << "status " << s << " should be permanent"; + } +} + +// ======================================================================== +// Execute +// ======================================================================== + +TEST(RegionFallbackTest, SuccessOnFirstRegionRecordsSticky) { + StderrLogger logger; + RegionFallback fallback(logger, true, FirstPicker()); + + std::vector attempted; + auto result = fallback.Execute("eastus", + [&](const std::string& region) { + attempted.push_back(region); + return Resp(200); + }); + + EXPECT_EQ(result.region, "eastus"); + EXPECT_EQ(result.response.status, 200); + ASSERT_EQ(attempted.size(), 1u); + EXPECT_EQ(attempted[0], "eastus"); + + auto sticky = fallback.StickyRegion(); + ASSERT_TRUE(sticky.has_value()); + EXPECT_EQ(*sticky, "eastus"); +} + +TEST(RegionFallbackTest, FallsThroughToNextHealthyRegion) { + StderrLogger logger; + RegionFallback fallback(logger, true, FirstPicker()); + + std::vector attempted; + auto result = fallback.Execute("eastus", + [&](const std::string& region) { + attempted.push_back(region); + // First region 503, second succeeds. + return Resp(attempted.size() == 1 ? 503 : 200); + }); + + EXPECT_EQ(result.response.status, 200); + EXPECT_EQ(result.region, "eastus2"); // second candidate in eastus chain + EXPECT_EQ(attempted[0], "eastus"); + EXPECT_EQ(attempted[1], "eastus2"); + + auto sticky = fallback.StickyRegion(); + ASSERT_TRUE(sticky.has_value()); + EXPECT_EQ(*sticky, "eastus2"); +} + +TEST(RegionFallbackTest, PermanentErrorStopsImmediatelyAndDoesNotPinSticky) { + StderrLogger logger; + RegionFallback fallback(logger, true, FirstPicker()); + + int calls = 0; + auto result = fallback.Execute("eastus", + [&](const std::string&) { + ++calls; + return Resp(404); + }); + + EXPECT_EQ(result.response.status, 404); + EXPECT_EQ(calls, 1) << "a permanent error must not try other regions"; + EXPECT_FALSE(fallback.StickyRegion().has_value()); +} + +TEST(RegionFallbackTest, ExhaustingAllRegionsThrows) { + StderrLogger logger; + RegionFallback fallback(logger, true, FirstPicker()); + + int calls = 0; + EXPECT_THROW( + { + fallback.Execute("eastus", + [&](const std::string&) { + ++calls; + return Resp(503); + }); + }, + fl::Exception); + + EXPECT_GE(calls, 7) << "every candidate region should have been attempted"; +} + +TEST(RegionFallbackTest, DisabledRunsSingleAttemptNoFallback) { + StderrLogger logger; + RegionFallback fallback(logger, /*enabled=*/false); + + int calls = 0; + auto result = fallback.Execute("eastus", + [&](const std::string& region) { + ++calls; + EXPECT_EQ(region, "eastus"); + return Resp(503); // even a retryable failure isn't retried + }); + + EXPECT_EQ(calls, 1); + EXPECT_EQ(result.response.status, 503); + EXPECT_EQ(result.region, "eastus"); +} + +TEST(RegionFallbackTest, StickyUpdatesToLastSuccessfulRegion) { + StderrLogger logger; + RegionFallback fallback(logger, true, FirstPicker()); + + fallback.Execute("eastus", [&](const std::string&) { return Resp(200); }); + ASSERT_TRUE(fallback.StickyRegion().has_value()); + EXPECT_EQ(*fallback.StickyRegion(), "eastus"); + + fallback.Execute("westus2", [&](const std::string&) { return Resp(200); }); + EXPECT_EQ(*fallback.StickyRegion(), "westus2"); +} diff --git a/sdk_v2/cpp/test/internal_api/static_catalog_test.cc b/sdk_v2/cpp/test/internal_api/static_catalog_test.cc deleted file mode 100644 index 068599d4e..000000000 --- a/sdk_v2/cpp/test/internal_api/static_catalog_test.cc +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -// Tests for the static catalog client (embedded snapshot path via -// MakeCatalogClient("static")). These tests are independent of the live -// Azure catalog client and must continue to compile when the live client -// source files have been removed from the build. -// -#include -#include - -#include -#include -#include - -#include "catalog/azure_catalog_models.h" -#include "catalog/catalog_client.h" -#include "ep_detection/ep_detector.h" -#include "internal_api/test_helpers.h" -#include "logger.h" -#include "model_info.h" - -using namespace fl; - -namespace { - -// Returns all models from the static client for a given EP detector. -std::vector FetchStaticModels(const IEpDetector& ep_detector) { - StderrLogger logger; - auto client = MakeCatalogClient("static", "", ep_detector, logger, ""); - return client->FetchAllModelInfos(); -} - -// True if every model in `models` passes `predicate`. -template -bool AllModels(const std::vector& models, Pred predicate) { - for (const auto& m : models) { - if (!predicate(m)) { - return false; - } - } - return true; -} - -// True if any model in `models` passes `predicate`. -template -bool AnyModel(const std::vector& models, Pred predicate) { - for (const auto& m : models) { - if (predicate(m)) { - return true; - } - } - return false; -} - -} // namespace - -// CPU-only machine: only CPU-device models should appear. -TEST(StaticCatalogClientTest, CpuOnly_FiltersOutGpuAndNpuModels) { - StderrLogger logger; - fl::test::CpuOnlyEpDetector ep; - auto client = MakeCatalogClient("static", "", ep, logger, ""); - auto models = client->FetchAllModelInfos(); - - // The snapshot has models — a CPU-only machine should get at least some. - EXPECT_GT(models.size(), 0u) << "expected at least one CPU model in the snapshot"; - - // Every returned model must target CPU. - EXPECT_TRUE(AllModels(models, [](const ModelInfo& m) { - return m.device_type == DeviceType::kCPU; - })) << "CPU-only detector returned a non-CPU model"; -} - -// GPU machine (CUDA): should see CPU + CUDA GPU models, not NPU. -TEST(StaticCatalogClientTest, GpuCuda_IncludesCpuAndGpuExcludesNpu) { - class CpuAndCudaEpDetector : public IEpDetector { - public: - std::map> GetAvailableDevicesToEPs() const override { - return { - {"CPU", {"CPUExecutionProvider"}}, - {"GPU", {"CUDAExecutionProvider"}}, - }; - } - } ep; - - auto models = FetchStaticModels(ep); - - EXPECT_GT(models.size(), 0u); - - // No NPU models should appear. - EXPECT_FALSE(AnyModel(models, [](const ModelInfo& m) { - return m.device_type == DeviceType::kNPU; - })) << "GPU detector should not return NPU models"; - - // Must have at least one GPU model (the snapshot contains CUDA variants). - EXPECT_TRUE(AnyModel(models, [](const ModelInfo& m) { - return m.device_type == DeviceType::kGPU; - })) << "expected at least one GPU model for a CUDA-capable machine"; -} - -// OpenVINO on CPU only: should not leak NPU variants even though OpenVINO -// supports both CPU and NPU. The (device, EP) pair match prevents this. -TEST(StaticCatalogClientTest, OpenVinoCpuOnly_DoesNotReturnNpuVariants) { - class OpenVinoCpuEpDetector : public IEpDetector { - public: - std::map> GetAvailableDevicesToEPs() const override { - return { - {"CPU", {"CPUExecutionProvider", "OpenVINOExecutionProvider"}}, - }; - } - } ep; - - auto models = FetchStaticModels(ep); - - EXPECT_FALSE(AnyModel(models, [](const ModelInfo& m) { - return m.device_type == DeviceType::kNPU; - })) << "OpenVINO+CPU-only detector must not return NPU variants"; - - EXPECT_FALSE(AnyModel(models, [](const ModelInfo& m) { - return m.device_type == DeviceType::kGPU; - })) << "OpenVINO+CPU-only detector must not return GPU variants"; -} - -// OpenVINO with CPU + NPU: NPU variants should appear, GPU should not. -TEST(StaticCatalogClientTest, OpenVinoCpuAndNpu_ReturnsNpuVariants) { - class OpenVinoCpuNpuEpDetector : public IEpDetector { - public: - std::map> GetAvailableDevicesToEPs() const override { - return { - {"CPU", {"CPUExecutionProvider", "OpenVINOExecutionProvider"}}, - {"NPU", {"OpenVINOExecutionProvider"}}, - }; - } - } ep; - - auto models = FetchStaticModels(ep); - - // The snapshot should contain OpenVINO NPU variants; they must appear here. - // (If the snapshot has none, this assertion still passes — the test is about - // not incorrectly *excluding* them.) - EXPECT_FALSE(AnyModel(models, [](const ModelInfo& m) { - return m.device_type == DeviceType::kGPU; - })) << "OpenVINO+CPU+NPU detector must not return GPU variants"; -} - -// Static client never makes network calls — FetchModelsByIds returns empty. -// This ensures BYO model synthesis works correctly via FetchAllModelInfosWithCachedModels. -TEST(StaticCatalogClientTest, FetchModelsByIds_AlwaysReturnsEmpty) { - StderrLogger logger; - fl::test::CpuOnlyEpDetector ep; - auto client = MakeCatalogClient("static", "", ep, logger, ""); - auto result = client->FetchModelsByIds({"phi-4-mini:3", "custom-model:0"}); - EXPECT_TRUE(result.empty()) << "static client must return empty from FetchModelsByIds"; -} - -// BYO synthesis: a locally cached model ID not in the snapshot is synthesized -// into a basic Local-provider entry by FetchAllModelInfosWithCachedModels. -TEST(StaticCatalogClientTest, BYOModel_SynthesizedWhenNotInSnapshot) { - StderrLogger logger; - fl::test::CpuOnlyEpDetector ep; - auto client = MakeCatalogClient("static", "", ep, logger, ""); - auto result = FetchAllModelInfosWithCachedModels(*client, {"my-custom-model:0"}, logger); - - const ModelInfo* byo = nullptr; - for (const auto& m : result) { - if (m.model_id == "my-custom-model:0") { - byo = &m; - } - } - - ASSERT_NE(byo, nullptr) << "BYO model entry should have been synthesized"; - EXPECT_EQ(byo->name, "my-custom-model"); - EXPECT_EQ(byo->uri, "local://my-custom-model"); - EXPECT_EQ(byo->string_properties.at(FOUNDRY_LOCAL_MODEL_PROP_MODEL_PROVIDER_STR), "Local"); -} - -// Verify that CatalogModelToModelInfo handles mixed-case device strings and bool tags -// case-insensitively. Lives in static_catalog_test.cc (always compiled) so we have -// coverage in public-repo builds where azure_catalog_test.cc is excluded. -TEST(CatalogModelToModelInfoTest, ParsesTagsCaseInsensitively) { - auto build_model = [](const char* entity_id, const char* device, const char* tool_calling, - const char* reasoning) { - CatalogLocalModel m; - m.asset_id = std::string("azureml://registries/azureml/models/") + entity_id; - m.entity_id = entity_id; - - CatalogTags tags; - tags.alias = entity_id; - if (tool_calling != nullptr) { - tags.supports_tool_calling = tool_calling; - } - if (reasoning != nullptr) { - tags.supports_reasoning = reasoning; - } - - CatalogAnnotations ann; - ann.tags = tags; - m.annotations = ann; - - VariantMetadata vm; - vm.device = device; - vm.execution_provider = "CPUExecutionProvider"; - VariantInfo vi; - vi.variant_metadata = vm; - - CatalogProperties props; - props.name = entity_id; - props.version = 1; - props.variant_info = vi; - m.properties = props; - - return m; - }; - - auto gpu = CatalogModelToModelInfo(build_model("m-gpu:1", "GpU", "TRUE", nullptr)); - ASSERT_TRUE(gpu.has_value()); - EXPECT_EQ(gpu->device_type, DeviceType::kGPU); - EXPECT_EQ(gpu->int_properties.at(FOUNDRY_LOCAL_MODEL_PROP_SUPPORTS_TOOL_CALLING_INT), 1); - - auto npu = CatalogModelToModelInfo(build_model("m-npu:1", "NPU", "False", nullptr)); - ASSERT_TRUE(npu.has_value()); - EXPECT_EQ(npu->device_type, DeviceType::kNPU); - EXPECT_EQ(npu->int_properties.at(FOUNDRY_LOCAL_MODEL_PROP_SUPPORTS_TOOL_CALLING_INT), 0); - - auto cpu = CatalogModelToModelInfo(build_model("m-cpu:1", "Cpu", nullptr, "tRuE")); - ASSERT_TRUE(cpu.has_value()); - EXPECT_EQ(cpu->device_type, DeviceType::kCPU); - EXPECT_EQ(cpu->int_properties.at(FOUNDRY_LOCAL_MODEL_PROP_SUPPORTS_REASONING_INT), 1); -} diff --git a/sdk_v2/cpp/test/sdk_api/shared_test_env.h b/sdk_v2/cpp/test/sdk_api/shared_test_env.h index 8247f7f54..5c968d97f 100644 --- a/sdk_v2/cpp/test/sdk_api/shared_test_env.h +++ b/sdk_v2/cpp/test/sdk_api/shared_test_env.h @@ -278,11 +278,7 @@ class SharedTestEnv : public ::testing::Environment { // surface during test runs and end up in the rotating log file. config.SetDefaultLogLevel(FOUNDRY_LOCAL_LOG_INFO); -#if defined(FOUNDRY_LOCAL_HAVE_LIVE_CATALOG_CLIENT) config.AddCatalogUrl("https://ai.azure.com/api/eastus/ux/v1.0"); -#else - config.AddCatalogUrl("static"); -#endif // Point the model cache at the shared test data directory when available. auto cache_dir = fl::test::SafeGetEnv("FOUNDRY_TEST_DATA_DIR"); diff --git a/sdk_v2/cpp/tools/catalog_snapshot/CMakeLists.txt b/sdk_v2/cpp/tools/catalog_snapshot/CMakeLists.txt deleted file mode 100644 index dfb3bdac9..000000000 --- a/sdk_v2/cpp/tools/catalog_snapshot/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) Microsoft. All rights reserved. - -# Links against foundry_local_static (not foundry_local_cpp) because the tool -# uses internal SDK symbols (MakeCatalogClient, ModelInfoToJson, IEpDetector, -# StderrLogger) that aren't part of the public C++ wrapper. -add_executable(catalog_snapshot main.cc) -target_link_libraries(catalog_snapshot - PRIVATE - foundry_local_static - nlohmann_json::nlohmann_json -) - -# Internal headers live under src/. -target_include_directories(catalog_snapshot - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/../../src -) - -# Ensure ORT/GenAI runtime DLLs are present alongside the executable — -# the live catalog client transitively pulls in ORT initialization paths. -add_dependencies(catalog_snapshot foundry_local) - -if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - target_link_options(catalog_snapshot PRIVATE -Wl,--disable-new-dtags) -endif() diff --git a/sdk_v2/cpp/tools/catalog_snapshot/main.cc b/sdk_v2/cpp/tools/catalog_snapshot/main.cc deleted file mode 100644 index 014137853..000000000 --- a/sdk_v2/cpp/tools/catalog_snapshot/main.cc +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -// catalog_snapshot — fetches the live Azure model catalog and emits a -// catalog_snapshot_data.cc file ready to drop into src/catalog/. -// -// This is a build-time tool, not part of the SDK runtime. It reaches into -// internal SDK symbols (MakeCatalogClient, ModelInfoToJson, IEpDetector) -// rather than the public C++ wrapper. - -#include "catalog/catalog_client.h" -#include "ep_detection/ep_detector.h" -#include "logger.h" -#include "model_info.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace { - -// Default Azure catalog endpoint. Mirrors kDefaultCatalogUrl in -// AzureModelCatalog. Duplicating one URL string is acceptable for a -// throwaway tool — keeping a shared constant would require exposing a -// new header. -constexpr const char* kDefaultCatalogUrl = "https://ai.azure.com/api/eastus/ux/v1.0"; - -// Snapshot envelope version. Must match CatalogCache::kCacheVersion and the -// kSnapshotVersion constant in catalog_cache.cc. Hard-coded here because -// neither constant is exposed in a public header. -constexpr int kSnapshotVersion = 1; - -/// Pretends every (device, EP) combination we want to ship is available, so -/// the catalog returns the union of all variants for every supported runtime. -class AllEpsDetector : public fl::IEpDetector { - public: - std::map> GetAvailableDevicesToEPs() const override { - return { - {"CPU", {"CPUExecutionProvider", "OpenVINOExecutionProvider"}}, - {"GPU", {"DmlExecutionProvider", "CUDAExecutionProvider", "NvTensorRTRTXExecutionProvider", "OpenVINOExecutionProvider", "QNNExecutionProvider", "VitisAIExecutionProvider", "WebGpuExecutionProvider"}}, - {"NPU", {"OpenVINOExecutionProvider", "QNNExecutionProvider", "VitisAIExecutionProvider"}}, - }; - } -}; - -void PrintUsage() { - std::cerr << "Usage: catalog_snapshot --output \n" - " [--filter ]\n" - " [--url ]\n" - "\n" - " --output REQUIRED. Path to the .cc file to write.\n" - " --filter Catalog filter. Defaults to empty (public-only models).\n" - " --url Catalog endpoint. Defaults to the Azure eastus catalog.\n"; -} - -struct Args { - std::string output; - std::string filter; - std::string url = kDefaultCatalogUrl; -}; - -/// Returns false on parse error; prints usage to stderr in that case. -bool ParseArgs(int argc, char** argv, Args& out) { - for (int i = 1; i < argc; ++i) { - std::string_view a = argv[i]; - - auto take_value = [&](std::string& dest) -> bool { - if (i + 1 >= argc) { - std::cerr << "error: missing value for " << a << "\n"; - return false; - } - dest = argv[++i]; - return true; - }; - - if (a == "--output") { - if (!take_value(out.output)) { - return false; - } - } else if (a == "--filter") { - if (!take_value(out.filter)) { - return false; - } - } else if (a == "--url") { - if (!take_value(out.url)) { - return false; - } - } else if (a == "--help" || a == "-h") { - PrintUsage(); - return false; - } else { - std::cerr << "error: unknown argument: " << a << "\n"; - return false; - } - } - - if (out.output.empty()) { - std::cerr << "error: --output is required\n"; - return false; - } - - return true; -} - -/// Writes `bytes` as a C array literal, 16 bytes per line, lowercase hex -/// (xxd convention). No null terminator — the byte count is the size. -void WriteByteArray(std::ostream& os, const std::string& bytes) { - constexpr std::size_t kPerLine = 16; - char buf[8]; - - for (std::size_t i = 0; i < bytes.size(); ++i) { - if (i % kPerLine == 0) { - os << " "; - } - - std::snprintf(buf, sizeof(buf), "0x%02x,", static_cast(static_cast(bytes[i]))); - os << buf; - - if (i + 1 == bytes.size() || (i + 1) % kPerLine == 0) { - os << "\n"; - } else { - os << " "; - } - } -} - -void WriteSnapshotFile(const std::string& path, - const std::string& json, - const Args& args, - std::size_t model_count) { - std::ofstream out(path, std::ios::binary | std::ios::trunc); - if (!out) { - throw std::runtime_error("failed to open output file: " + path); - } - - out << "// Copyright (c) Microsoft Corporation. All rights reserved.\n" - << "// Licensed under the MIT License.\n" - << "//\n" - << "// GENERATED FILE \xE2\x80\x94 DO NOT EDIT BY HAND.\n" - << "// Generated by tools/catalog_snapshot.\n" - << "// filter: " << args.filter << "\n" - << "// url: " << args.url << "\n" - << "// models: " << model_count << "\n" - << "//\n" - << "// clang-format off\n" - << "#include \"catalog/catalog_snapshot_data.h\"\n" - << "\n" - << "namespace fl {\n" - << "\n" - << "const unsigned char kCatalogSnapshotJson[] = {\n"; - - WriteByteArray(out, json); - - out << "};\n" - << "\n" - << "const std::size_t kCatalogSnapshotJsonSize = sizeof(kCatalogSnapshotJson);\n" - << "\n" - << "} // namespace fl\n"; - - if (!out) { - throw std::runtime_error("failed while writing output file: " + path); - } -} - -} // namespace - -int main(int argc, char** argv) { - Args args; - if (!ParseArgs(argc, argv, args)) { - PrintUsage(); - return 1; - } - - try { - fl::StderrLogger logger; - AllEpsDetector ep_detector; - - // Empty cache_directory disables the on-disk cache write-through; - // we only want the in-memory model list to serialize. - auto client = fl::MakeCatalogClient(args.url, args.filter, ep_detector, logger, - /*cache_directory=*/""); - - const auto model_infos = fl::FetchAllModelInfosWithCachedModels(*client, /*cached_model_ids=*/{}, logger); - - nlohmann::json root; - root["version"] = kSnapshotVersion; - root["savedAtUnix"] = std::chrono::duration_cast( - std::chrono::system_clock::now().time_since_epoch()) - .count(); - - nlohmann::json models = nlohmann::json::array(); - for (const auto& info : model_infos) { - models.push_back(fl::ModelInfoToJson(info)); - } - root["models"] = std::move(models); - - // Compact dump — no pretty-printing — to minimize the embedded size. - const std::string json_str = root.dump(); - - WriteSnapshotFile(args.output, json_str, args, model_infos.size()); - - std::cerr << "wrote " << model_infos.size() << " models to " << args.output - << " (" << json_str.size() << " bytes)\n"; - return 0; - } catch (const std::exception& ex) { - std::cerr << "catalog_snapshot failed: " << ex.what() << "\n"; - return 2; - } -} From cc1e22f184f52b5542e916d599f314c099307870 Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Wed, 10 Jun 2026 22:37:51 -0700 Subject: [PATCH 02/20] Add AzureAiStudio User-Agent --- sdk_v2/cpp/src/catalog/azure_catalog_client.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc index bfdd1b02d..379cc8943 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -28,6 +28,9 @@ constexpr const char* kRegionProbeBody = R"({"filters":[],"pageSize":1})"; constexpr const char* kServedByClusterHeader = "azureml-served-by-cluster"; constexpr const char* kDefaultRegion = "eastus"; +// The catalog and registry gateways reject requests without this User-Agent (HTTP 400). +constexpr const char* kUserAgent = "AzureAiStudio"; + /// Strip leading/trailing whitespace. std::string Trim(const std::string& s) { const auto begin = s.find_first_not_of(" \t\r\n"); @@ -240,7 +243,7 @@ AzureCatalogClient::AzureCatalogClient(const std::string& base_url, region_fallback_(logger, region_fallback_enabled) { if (!http_post_response_) { http_post_response_ = [](const std::string& url, const std::string& body) { - return http::HttpPostWithResponse(url, body); + return http::HttpPostWithResponse(url, body, kUserAgent); }; } From a827ec86ae85d9d4134d08c3df38288b0ff54ae1 Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Thu, 11 Jun 2026 21:20:39 -0700 Subject: [PATCH 03/20] Address pr review comments --- sdk_v2/cpp/src/catalog/azure_catalog_client.cc | 5 ++--- sdk_v2/cpp/src/download/model_registry_client.cc | 11 +++-------- sdk_v2/cpp/src/http/http_client.cc | 14 ++++++++++++++ sdk_v2/cpp/src/http/http_client.h | 6 ++++++ sdk_v2/cpp/src/util/region_fallback.cc | 2 +- 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc index 379cc8943..4ece7a52f 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -311,8 +311,7 @@ std::optional AzureCatalogClient::FetchFil // Region-health failure (including mid-pagination on the pinned region): fail this filter set only. Because // models are committed atomically below, a later page failure cannot leak a partial filter-set result. logger_.Log(LogLevel::Warning, - "catalog: filter set failed (HTTP " + std::to_string(response.status) + - "); skipping this filter set."); + "catalog: filter set failed (" + http::DescribeFailure(response) + "); skipping this filter set."); return std::nullopt; } @@ -320,7 +319,7 @@ std::optional AzureCatalogClient::FetchFil ? BuildRegionalUrl(url_prefix_, url_suffix_, *pinned_region) : BuildRequestUrl(base_url_, regional, region_, url_prefix_, url_suffix_); FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, - "HTTP " + std::to_string(response.status) + " from catalog " + url); + "catalog request to " + url + " failed: " + http::DescribeFailure(response)); } const auto parsed = nlohmann::json::parse(response.body).get(); diff --git a/sdk_v2/cpp/src/download/model_registry_client.cc b/sdk_v2/cpp/src/download/model_registry_client.cc index cef224877..33034fa39 100644 --- a/sdk_v2/cpp/src/download/model_registry_client.cc +++ b/sdk_v2/cpp/src/download/model_registry_client.cc @@ -77,15 +77,10 @@ ModelContainer ModelRegistryClient::ResolveModelContainer(const std::string& ass const std::string start = has_per_call_region ? resolved_region : fallback_->StickyRegion().value_or(resolved_region); http::HttpResponse response = fallback_->Execute(start, attempt).response; - if (response.status == 0) { + if (response.status == 0 || response.status < 200 || response.status >= 300) { FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, - "transport failure from model registry API for asset_id: " + asset_id); - } - - if (response.status < 200 || response.status >= 300) { - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, - "HTTP " + std::to_string(response.status) + " from model registry API for asset_id: " + - asset_id); + "model registry API request failed for asset_id " + asset_id + ": " + + http::DescribeFailure(response)); } return ParseContainer(response.body, asset_id); diff --git a/sdk_v2/cpp/src/http/http_client.cc b/sdk_v2/cpp/src/http/http_client.cc index c5162f694..e30358960 100644 --- a/sdk_v2/cpp/src/http/http_client.cc +++ b/sdk_v2/cpp/src/http/http_client.cc @@ -142,6 +142,20 @@ HttpResponse HttpGetWithResponse(const std::string& url, return HttpResponse{raw.status, std::move(raw.headers), std::move(raw.body)}; } +std::string DescribeFailure(const HttpResponse& response, std::size_t max_body_chars) { + std::string detail = response.status == 0 ? "transport failure" : "HTTP " + std::to_string(response.status); + + if (!response.body.empty()) { + if (response.body.size() > max_body_chars) { + detail += ": " + response.body.substr(0, max_body_chars) + "... (truncated)"; + } else { + detail += ": " + response.body; + } + } + + return detail; +} + std::string HttpPost(const std::string& url, const std::string& json_body, const std::string& user_agent, bool close_connection) { return HttpRequest(Azure::Core::Http::HttpMethod::Post, url, json_body, user_agent, close_connection); diff --git a/sdk_v2/cpp/src/http/http_client.h b/sdk_v2/cpp/src/http/http_client.h index 1d09947fa..4facbbf1b 100644 --- a/sdk_v2/cpp/src/http/http_client.h +++ b/sdk_v2/cpp/src/http/http_client.h @@ -36,6 +36,12 @@ HttpResponse HttpGetWithResponse(const std::string& url, std::chrono::milliseconds timeout = std::chrono::seconds(30), bool close_connection = false); +/// Human-readable, length-bounded description of a failed response for error messages. +/// `status == 0` becomes "transport failure"; otherwise "HTTP ". When the body is +/// non-empty it is appended (truncated to `max_body_chars`) so server-side or transport +/// diagnostics are preserved without bloating logs. +std::string DescribeFailure(const HttpResponse& response, std::size_t max_body_chars = 512); + /// Perform an HTTP GET request. Returns the response body. /// Throws fl::Exception on HTTP errors or connection failures. std::string HttpGet(const std::string& url, diff --git a/sdk_v2/cpp/src/util/region_fallback.cc b/sdk_v2/cpp/src/util/region_fallback.cc index fae88016f..0403b237d 100644 --- a/sdk_v2/cpp/src/util/region_fallback.cc +++ b/sdk_v2/cpp/src/util/region_fallback.cc @@ -121,7 +121,7 @@ RegionFallback::RegionFallback(ILogger& logger, bool enabled, RandomPicker rando return; } - // Default RNG: per-instance, seeded from a clock. Jitter need not be strong. + // Default RNG: per-instance, seeded from std::random_device. Jitter need not be strong. auto rng = std::make_shared( static_cast(std::random_device{}())); random_picker_ = [rng](std::size_t count) -> std::size_t { From a75bb3645a8e38cc23cd828a5ff95541bf05f47c Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Sun, 14 Jun 2026 23:46:18 -0700 Subject: [PATCH 04/20] integrate get model versions into cpp core --- .../include/foundry_local/foundry_local_c.h | 10 + .../include/foundry_local/foundry_local_cpp.h | 8 + .../foundry_local/foundry_local_cpp.inline.h | 11 + sdk_v2/cpp/src/c_api.cc | 25 ++ sdk_v2/cpp/src/catalog.h | 16 ++ .../cpp/src/catalog/azure_catalog_client.cc | 45 ++++ sdk_v2/cpp/src/catalog/azure_catalog_client.h | 7 + sdk_v2/cpp/src/catalog/azure_model_catalog.cc | 120 ++++++++- sdk_v2/cpp/src/catalog/azure_model_catalog.h | 2 + sdk_v2/cpp/src/catalog/base_model_catalog.cc | 175 +++++++++++++ sdk_v2/cpp/src/catalog/base_model_catalog.h | 27 ++ sdk_v2/cpp/src/catalog/catalog_client.h | 16 ++ sdk_v2/cpp/test/internal_api/c_api_test.cc | 247 ++++++++++++++++++ .../internal_api/web_service_test_helpers.h | 16 ++ 14 files changed, 724 insertions(+), 1 deletion(-) diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h index a32c686fc..14e3ae9b0 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h @@ -868,6 +868,16 @@ struct flCatalogApi { FL_API_STATUS(GetCachedModels, _In_ const flCatalog* catalog, _Outptr_ flModelList** out_models); FL_API_STATUS(GetLoadedModels, _In_ const flCatalog* catalog, _Outptr_ flModelList** out_models); + /// Get all versions of a model, optionally narrowed to a specific variant. + /// @param model_alias Alias of the model (e.g. "phi-4-mini"). May be NULL to return + /// all versions of all models (subject to device/EP filtering). + /// @param variant_name Optional variant name (e.g. "Phi-4-generic-gpu"). NULL returns + /// every variant. + /// Returned list contains existing flModel handles owned by the catalog; releasing + /// the list does not invalidate the underlying model handles. + FL_API_STATUS(GetModelVersions, _In_ const flCatalog* catalog, _In_opt_ const char* model_alias, + _In_opt_ const char* variant_name, _Outptr_ flModelList** out_models); + // End V1 }; diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h index d8ab4e0a4..1fd509597 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h @@ -729,6 +729,12 @@ class ICatalog { virtual std::unique_ptr GetModel(const std::string& alias) const = 0; virtual std::unique_ptr GetModelVariant(const std::string& model_id) const = 0; virtual std::unique_ptr GetLatestVersion(const IModel& model) const = 0; + + /// Get all versions of a model. `model_alias` may be empty to return all + /// versioned models. `variant_name` optionally narrows the result to a + /// single variant; empty returns every variant. + virtual ModelList GetModelVersions(const std::string& model_alias, + const std::string& variant_name = {}) = 0; }; // =========================================================================== @@ -751,6 +757,8 @@ class Catalog final : public ICatalog { std::unique_ptr GetModel(const std::string& alias) const override; std::unique_ptr GetModelVariant(const std::string& model_id) const override; std::unique_ptr GetLatestVersion(const IModel& model) const override; + ModelList GetModelVersions(const std::string& model_alias, + const std::string& variant_name = {}) override; private: detail::Base handle_; diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h index 80402185e..9aae75233 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h @@ -611,6 +611,17 @@ inline std::unique_ptr Catalog::GetLatestVersion(const IModel& model) co return std::make_unique(*m); } +inline ModelList Catalog::GetModelVersions(const std::string& model_alias, + const std::string& variant_name) { + flModelList* models = nullptr; + Check(detail::catalog_api()->GetModelVersions( + handle_.get(), + model_alias.empty() ? nullptr : model_alias.c_str(), + variant_name.empty() ? nullptr : variant_name.c_str(), + &models)); + return ModelList(*models); +} + // =========================================================================== // Item // =========================================================================== diff --git a/sdk_v2/cpp/src/c_api.cc b/sdk_v2/cpp/src/c_api.cc index 26fb647a9..1f7b316e4 100644 --- a/sdk_v2/cpp/src/c_api.cc +++ b/sdk_v2/cpp/src/c_api.cc @@ -685,6 +685,30 @@ FL_API_STATUS_IMPL(Catalog_GetNameImpl, const flCatalog* catalog, const char** o API_IMPL_END } +FL_API_STATUS_IMPL(Catalog_GetModelVersionsImpl, const flCatalog* catalog, + const char* model_alias, const char* variant_name, + flModelList** out_models) { + API_IMPL_BEGIN + if (!catalog || !out_models) { + return MakeStatus(FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT, "null argument"); + } + + std::string alias = model_alias ? model_alias : std::string{}; + std::string variant = variant_name ? variant_name : std::string{}; + + auto models = catalog->impl.GetModelVersions(alias, variant); + auto list = std::make_unique(); + list->items.reserve(models.size()); + + for (auto* m : models) { + list->items.push_back(AsHandle(m)); + } + + *out_models = list.release(); + return nullptr; + API_IMPL_END +} + static const flCatalogApi g_catalog_api = { Catalog_GetNameImpl, Catalog_GetModelsImpl, @@ -693,6 +717,7 @@ static const flCatalogApi g_catalog_api = { Catalog_GetLatestVersionImpl, Catalog_GetCachedModelsImpl, Catalog_GetLoadedModelsImpl, + Catalog_GetModelVersionsImpl, }; // ======================================================================== diff --git a/sdk_v2/cpp/src/catalog.h b/sdk_v2/cpp/src/catalog.h index 8379aa3c1..aaf00dc60 100644 --- a/sdk_v2/cpp/src/catalog.h +++ b/sdk_v2/cpp/src/catalog.h @@ -31,6 +31,22 @@ class ICatalog { /// Gets the latest version of a model. Returns nullptr if not found. virtual Model* GetLatestVersion(const Model* model) const = 0; + /// Lists all known versions of a model (by alias), optionally filtered to a + /// specific variant name. Bypasses the "latest only" filter the regular + /// catalog refresh applies — new versions discovered by this call are + /// integrated into the catalog's storage so the returned pointers remain + /// valid for the lifetime of the catalog. + /// + /// `model_alias` is the alias of the model (e.g. "phi-4-mini"). When empty, + /// implementations may return all versioned models from the underlying + /// source (still subject to device/EP filtering). + /// `variant_name` optionally narrows results to a specific variant (e.g. + /// "Phi-4-generic-gpu"). Pass an empty string to return every variant. + /// + /// Maps to C# `IModelCatalog.GetModelVersionsAsync`. + virtual std::vector GetModelVersions(const std::string& model_alias, + const std::string& variant_name) = 0; + /// Lists only models that are cached locally. virtual std::vector GetCachedModels() const = 0; diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc index 4ece7a52f..3bdaa7a67 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -214,6 +214,33 @@ std::vector> BuildSearchFilters(const IEpDetector& ep return filter_sets; } +/// Build per-device filter sets for an all-versions query. +/// Same shape as `BuildSearchFilters` minus the `labels=latest` filter +/// (so older versions are included). When `model_alias` is non-empty an +/// `annotations/tags/alias` filter scopes the result to that one alias; when +/// empty, no alias filter is added and every versioned model the local hardware +/// can run is returned across all its versions. +std::vector> BuildAllVersionsFilters(const IEpDetector& ep_detector, + const std::vector& model_filter, + const std::string& model_alias) { + std::vector> filter_sets; + + for (const auto& [device, eps] : ep_detector.GetAvailableDevicesToEPs()) { + std::vector filters; + filters.push_back(MakeFilter("type", {"models"})); + filters.push_back(MakeFilter("kind", {"Versioned"})); + filters.push_back(MakeFilter("annotations/tags/foundryLocal", model_filter)); + if (!model_alias.empty()) { + filters.push_back(MakeFilter("annotations/tags/alias", {model_alias})); + } + filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/device", {to_lower(device)})); + filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/executionProvider", eps)); + filter_sets.push_back(std::move(filters)); + } + + return filter_sets; +} + std::vector BuildModelIdFilters(const std::vector& model_filter, const std::vector& model_ids) { // Looking up specific IDs: no labels=latest (we want exact versions) and no @@ -393,6 +420,24 @@ std::vector AzureCatalogClient::FetchModelsByIds( return ToModelInfos(result->models, result->region); } +std::vector AzureCatalogClient::FetchAllVersionsByAlias(const std::string& model_alias) { + // Empty alias → list every versioned model the local hardware can run, across + // all of their versions (i.e. `FetchAllModelInfos` minus the `labels=latest` + // filter). Non-empty alias → same query, scoped to that alias. + std::vector infos; + for (const auto& filters : BuildAllVersionsFilters(ep_detector_, model_filter_, model_alias)) { + auto result = FetchFilterSet(filters); + if (!result) { + continue; + } + + auto batch = ToModelInfos(result->models, result->region); + infos.insert(infos.end(), std::make_move_iterator(batch.begin()), std::make_move_iterator(batch.end())); + } + + return infos; +} + std::unique_ptr MakeCatalogClient( const std::string& base_url, const std::string& filter_override, diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.h b/sdk_v2/cpp/src/catalog/azure_catalog_client.h index b90de09b0..ebea19e2a 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.h +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.h @@ -52,6 +52,13 @@ class AzureCatalogClient : public ICatalogClient { std::vector FetchModelsByIds(const std::vector& model_ids) override; + /// Fetch every version of `model_alias` from the live catalog by issuing the + /// per-device search with `labels=latest` removed and an alias filter added. + /// When `model_alias` is empty the alias filter is also omitted, so this + /// returns every versioned model the local hardware can run, across all of + /// their versions. + std::vector FetchAllVersionsByAlias(const std::string& model_alias) override; + private: struct FetchedFilterSet { std::vector models; diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc index 430e348a4..22b3087d7 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc @@ -11,6 +11,9 @@ #include #include +#include +#include + namespace fl { AzureModelCatalog::AzureModelCatalog(std::vector>> catalog_urls, @@ -77,7 +80,7 @@ std::vector AzureModelCatalog::FetchModels() const { auto local_models = ScanLocalModels(cache_dir, logger_); std::vector cached_model_ids; cached_model_ids.reserve(local_models.size()); - for (const auto& [id, path] : local_models) { + for (const auto& [Qid, path] : local_models) { cached_model_ids.push_back(id); } @@ -138,4 +141,119 @@ std::vector AzureModelCatalog::FetchModels() const { return models; } +namespace { + +// Build a flat list of (url, filter) endpoints to query for direct-lookup +// helpers (FetchModelVersions / FetchModelsByIds). Honours the configured +// catalog_urls_; falls back to the default URL when none are configured. +std::vector>> EnumerateEndpoints( + const std::vector>>& configured, + const char* default_url, + const char* default_filter) { + if (!configured.empty()) { + return configured; + } + + return {{default_url, std::optional(default_filter)}}; +} + +} // namespace + +std::vector AzureModelCatalog::FetchModelVersions(const std::string& model_alias) const { + if (cache_only_) { + // In cache-only mode we have no remote source to query for older versions. + logger_.Log(LogLevel::Debug, + "FetchModelVersions skipped: catalog is in cache-only mode."); + return {}; + } + + // Scan local models so any version already on disk is reported as cached. + auto local_models = ScanLocalModels(cache_dir_, logger_); + + std::vector models; + const auto endpoints = EnumerateEndpoints(catalog_urls_, kDefaultCatalogUrl, kDefaultCatalogFilter); + + for (const auto& [url, filter] : endpoints) { + try { + auto client = MakeCatalogClient(url, filter.value_or(""), ep_detector_, logger_, cache_dir_, + catalog_region_, disable_region_fallback_); + auto model_infos = client->FetchAllVersionsByAlias(model_alias); + + models.reserve(models.size() + model_infos.size()); + for (auto& info : model_infos) { + std::string local_path; + auto it = local_models.find(info.model_id); + if (it != local_models.end()) { + local_path = it->second; + } + + models.push_back(model_factory_(std::move(info), std::move(local_path))); + } + } catch (const std::exception& ex) { + logger_.Log(LogLevel::Error, + fmt::format("FetchModelVersions: failed to query {} — {}", url, ex.what())); + } + } + + logger_.Log(LogLevel::Information, + fmt::format("FetchModelVersions('{}') returned {} variant(s).", + model_alias, models.size())); + + return models; +} + +std::vector AzureModelCatalog::FetchModelsByIds(const std::vector& model_ids) const { + if (model_ids.empty()) { + return {}; + } + + if (cache_only_) { + logger_.Log(LogLevel::Debug, + "FetchModelsByIds skipped: catalog is in cache-only mode."); + return {}; + } + + auto local_models = ScanLocalModels(cache_dir_, logger_); + + std::vector models; + const auto endpoints = EnumerateEndpoints(catalog_urls_, kDefaultCatalogUrl, kDefaultCatalogFilter); + + // Track which IDs are still unresolved so we can stop calling further + // endpoints once everything has been found. + std::vector remaining(model_ids); + + for (const auto& [url, filter] : endpoints) { + if (remaining.empty()) { + break; + } + + try { + auto client = MakeCatalogClient(url, filter.value_or(""), ep_detector_, logger_, cache_dir_, + catalog_region_, disable_region_fallback_); + auto model_infos = client->FetchModelsByIds(remaining); + + for (auto& info : model_infos) { + std::string local_path; + auto it = local_models.find(info.model_id); + if (it != local_models.end()) { + local_path = it->second; + } + + // Drop this id from the remaining list now that it's resolved. + auto rit = std::find(remaining.begin(), remaining.end(), info.model_id); + if (rit != remaining.end()) { + remaining.erase(rit); + } + + models.push_back(model_factory_(std::move(info), std::move(local_path))); + } + } catch (const std::exception& ex) { + logger_.Log(LogLevel::Error, + fmt::format("FetchModelsByIds: failed to query {} — {}", url, ex.what())); + } + } + + return models; +} + } // namespace fl diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.h b/sdk_v2/cpp/src/catalog/azure_model_catalog.h index 315bc36f2..413b63e5f 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.h @@ -33,6 +33,8 @@ class AzureModelCatalog : public BaseModelCatalog { protected: std::vector FetchModels() const override; + std::vector FetchModelVersions(const std::string& model_alias) const override; + std::vector FetchModelsByIds(const std::vector& model_ids) const override; private: static constexpr const char* kDefaultCatalogUrl = "https://ai.azure.com/api/eastus/ux/v1.0"; diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index af8b78cf9..726e92f2d 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -9,6 +9,7 @@ #include #include #include +#include namespace fl { @@ -162,6 +163,84 @@ void BaseModelCatalog::PopulateModels(std::vector variants) const { populated_ = true; } +void BaseModelCatalog::IntegrateVariantsLocked(std::vector variants) const { + if (variants.empty()) { + return; + } + + // Sort the incoming variants so newly-added ones land in priority order + // within their alias group (matches the sort applied by PopulateModels). + std::stable_sort(variants.begin(), variants.end(), CompareModelsForSort); + + // Build a lookup of existing aliases -> containers so we can merge new + // variants in O(1) per incoming variant. + std::unordered_map alias_to_existing; + for (auto& m : models_) { + alias_to_existing[m->Alias()] = m.get(); + } + + // Track existing model_ids in a single set so the dedup check is O(1) and + // doesn't require walking each container's variants per incoming variant. + std::unordered_set existing_ids; + for (auto& m : models_) { + for (auto* v : m->Variants()) { + existing_ids.insert(v->Info().model_id); + } + } + + size_t added_variants = 0; + size_t added_aliases = 0; + + // Collect-by-alias the variants that are actually new (not already known). + std::map> new_by_alias; + for (auto& v : variants) { + const auto& info = v.Info(); + if (info.model_id.empty() || info.alias.empty() || info.name.empty()) { + logger_.Log(LogLevel::Debug, + fmt::format("IntegrateVariants: skipping model with missing required fields: " + "id='{}', name='{}', alias='{}'.", + info.model_id, info.name, info.alias)); + continue; + } + + if (existing_ids.count(info.model_id) > 0) { + continue; + } + + existing_ids.insert(info.model_id); + new_by_alias[info.alias].push_back(std::move(v)); + } + + for (auto& [alias, alias_variants] : new_by_alias) { + auto it = alias_to_existing.find(alias); + if (it != alias_to_existing.end()) { + for (auto& v : alias_variants) { + it->second->AddVariant(std::move(v)); + ++added_variants; + } + } else { + // New alias: build a container in priority order (best first). + auto first = std::move(alias_variants.front()); + auto container = Model::MakeContainer(std::move(first)); + for (size_t i = 1; i < alias_variants.size(); ++i) { + container.AddVariant(std::move(alias_variants[i])); + } + + models_.push_back(std::make_unique(std::move(container))); + ++added_aliases; + added_variants += alias_variants.size(); + } + } + + if (added_variants > 0 || added_aliases > 0) { + logger_.Log(LogLevel::Information, + fmt::format("Catalog '{}' integrated {} new variant(s) across {} new alias(es). " + "{} total alias container(s).", + name_, added_variants, added_aliases, models_.size())); + RebuildIndex(); + } +} + void BaseModelCatalog::RebuildIndex() const { auto new_index = std::make_shared(); @@ -276,6 +355,45 @@ Model* BaseModelCatalog::GetModelVariant(const std::string& model_id) const { return id_it->second; } + // Not in cached indices — try a direct catalog lookup. Only attempt this when + // the input looks like a Model Id (Name + ":" + Version). Plain names and + // aliases would not succeed via FetchModelsByIds and just cost a network call. + // Mirrors C# BaseModelCatalog.GetModelInfoAsync direct-fetch fallback. + if (model_id.find(':') != std::string::npos) { + logger_.Log(LogLevel::Information, + fmt::format("GetModelVariant: '{}' not in cache, fetching from catalog source.", + model_id)); + + std::vector fetched; + try { + fetched = FetchModelsByIds({model_id}); + } catch (const std::exception& ex) { + logger_.Log(LogLevel::Warning, + fmt::format("GetModelVariant: direct fetch for '{}' failed — {}", + model_id, ex.what())); + return nullptr; + } catch (...) { + logger_.Log(LogLevel::Warning, + fmt::format("GetModelVariant: direct fetch for '{}' failed — unknown error", + model_id)); + return nullptr; + } + + if (!fetched.empty()) { + { + std::lock_guard lock(mutex_); + IntegrateVariantsLocked(std::move(fetched)); + } + + // Look up again from the refreshed index. + idx = GetIndex(); + auto id_it2 = idx->id_index.find(model_id); + if (id_it2 != idx->id_index.end()) { + return id_it2->second; + } + } + } + logger_.Log(LogLevel::Information, fmt::format("GetModelVariant: '{}' not found in the catalog.", model_id)); @@ -329,4 +447,61 @@ std::vector BaseModelCatalog::GetLoadedModels() const { return result; } +std::vector BaseModelCatalog::GetModelVersions(const std::string& model_alias, + const std::string& variant_name) { + // Make sure the regular "latest only" catalog is populated first so the + // existing alias container exists to merge into. + EnsurePopulated(); + + std::vector fetched; + try { + fetched = FetchModelVersions(model_alias); + } catch (const std::exception& ex) { + logger_.Log(LogLevel::Warning, + fmt::format("GetModelVersions: fetch for alias '{}' failed — {}", + model_alias, ex.what())); + return {}; + } catch (...) { + logger_.Log(LogLevel::Warning, + fmt::format("GetModelVersions: fetch for alias '{}' failed — unknown error", + model_alias)); + return {}; + } + + if (!fetched.empty()) { + std::lock_guard lock(mutex_); + IntegrateVariantsLocked(std::move(fetched)); + } + + auto idx = GetIndex(); + std::vector result; + + if (!model_alias.empty()) { + auto alias_it = idx->alias_index.find(model_alias); + if (alias_it == idx->alias_index.end()) { + logger_.Log(LogLevel::Information, + fmt::format("GetModelVersions: alias '{}' not found in catalog.", model_alias)); + return {}; + } + + for (auto* variant : alias_it->second->Variants()) { + if (variant_name.empty() || variant->Info().name == variant_name) { + result.push_back(variant); + } + } + } else { + // No alias filter: walk all alias containers. + std::lock_guard lock(mutex_); + for (auto& m : models_) { + for (auto* variant : m->Variants()) { + if (variant_name.empty() || variant->Info().name == variant_name) { + result.push_back(variant); + } + } + } + } + + return result; +} + } // namespace fl diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.h b/sdk_v2/cpp/src/catalog/base_model_catalog.h index ad74d2f89..7235e033a 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.h @@ -38,6 +38,8 @@ class BaseModelCatalog : public ICatalog { Model* GetLatestVersion(const Model* model) const override; std::vector GetCachedModels() const override; std::vector GetLoadedModels() const override; + std::vector GetModelVersions(const std::string& model_alias, + const std::string& variant_name) override; void InvalidateCache() override; protected: @@ -46,6 +48,24 @@ class BaseModelCatalog : public ICatalog { /// Maps to C# FetchModelInfoAsync. virtual std::vector FetchModels() const = 0; + /// Derived classes implement this to fetch all versions of a model from the + /// underlying catalog source, bypassing the "latest only" filter. + /// Returns the variants (in any order; the base class sorts/indexes them). + /// Default implementation returns `{}` (no remote source — local-only catalogs). + /// Maps to C# `BaseModelCatalog.GetModelVersionsAsync` -> derived overrides. + virtual std::vector FetchModelVersions(const std::string& /*model_alias*/) const { + return {}; + } + + /// Derived classes implement this to look up specific model versions by ID + /// from the underlying catalog source (e.g., older versions not in the + /// latest catalog). Empty list if `model_ids` is empty. + /// Default implementation returns `{}` (no remote source — local-only catalogs). + /// Maps to C# `BaseModelCatalog.FetchLocalModelsAsync`. + virtual std::vector FetchModelsByIds(const std::vector& /*model_ids*/) const { + return {}; + } + private: /// Lookup indices into the stable models_ storage. /// Rebuilt on refresh. Does not own any Model instances. @@ -79,6 +99,13 @@ class BaseModelCatalog : public ICatalog { /// Populate or refresh the catalog (under lock). Groups variants, builds indices. void PopulateModels(std::vector variants) const; + /// Merge new variants into the catalog's stable storage (under lock). For an + /// existing alias container, appends any variants whose model_id isn't already + /// present. For new aliases, creates a new container. Rebuilds the lookup + /// index when the model set actually changed. + /// Caller must hold `mutex_`. + void IntegrateVariantsLocked(std::vector variants) const; + /// Build lookup indices from the current models_ collection. /// Builds a complete new ModelIndex locally, then atomically swaps it into index_. void RebuildIndex() const; diff --git a/sdk_v2/cpp/src/catalog/catalog_client.h b/sdk_v2/cpp/src/catalog/catalog_client.h index 7e4930de8..fa2df4ccb 100644 --- a/sdk_v2/cpp/src/catalog/catalog_client.h +++ b/sdk_v2/cpp/src/catalog/catalog_client.h @@ -27,6 +27,22 @@ class ICatalogClient { /// be resolved. virtual std::vector FetchModelsByIds( const std::vector& model_ids) = 0; + + /// Fetch all known versions of a model (by alias), bypassing the "latest only" + /// filter that `FetchAllModelInfos` applies. Maps to C# + /// `IAzureFoundryApiService.FetchAllModelVersionsAsync`. + /// + /// `model_alias` is optional — when empty, implementations may return all + /// available versioned models (still subject to device/EP filtering). + /// Implementations that cannot list older versions return whatever they have + /// locally (typically just the latest visible to them). + /// + /// Provided with a default `{}` body so an implementation that has not yet + /// overridden it still compiles. + virtual std::vector FetchAllVersionsByAlias( + const std::string& /*model_alias*/) { + return {}; + } }; /// Production helper that combines a catalog fetch with locally cached model diff --git a/sdk_v2/cpp/test/internal_api/c_api_test.cc b/sdk_v2/cpp/test/internal_api/c_api_test.cc index 35d926573..50851fb5b 100644 --- a/sdk_v2/cpp/test/internal_api/c_api_test.cc +++ b/sdk_v2/cpp/test/internal_api/c_api_test.cc @@ -5,7 +5,10 @@ #include #include #include +#include +#include #include +#include // All tests go through the vtable obtained from FoundryLocalGetApi(). // Error handling: C API functions return flStatus* where nullptr == success (non-null == error with code + message). @@ -299,6 +302,250 @@ TEST(CApiTest, GetModelsFromCatalog) { api->Manager_Release(mgr); } +TEST(CApiTest, GetModelVersionsNullCatalogFails) { + const flApi* api = GetApi(); + ASSERT_NE(api, nullptr); + const flCatalogApi* catalog_api = api->GetCatalogApi(); + + flModelList* models = nullptr; + flStatus* status = catalog_api->GetModelVersions(nullptr, "alias", nullptr, &models); + ASSERT_NE(status, nullptr); + EXPECT_EQ(api->Status_GetErrorCode(status), FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT); + api->Status_Release(status); +} + +TEST(CApiTest, GetModelVersionsNullOutputFails) { + const flApi* api = GetApi(); + ASSERT_NE(api, nullptr); + const flCatalogApi* catalog_api = api->GetCatalogApi(); + + flConfiguration* config = CreateTestConfig(api); + ASSERT_NE(config, nullptr); + + flManager* mgr = nullptr; + ASSERT_FL_OK(api, api->Manager_Create(config, &mgr)); + flCatalog* cat = nullptr; + ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); + + flStatus* status = catalog_api->GetModelVersions(cat, "alias", nullptr, nullptr); + ASSERT_NE(status, nullptr); + EXPECT_EQ(api->Status_GetErrorCode(status), FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT); + api->Status_Release(status); + + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); +} + +TEST(CApiTest, GetModelVersionsUnknownAliasReturnsEmptyList) { + const flApi* api = GetApi(); + ASSERT_NE(api, nullptr); + const flCatalogApi* catalog_api = api->GetCatalogApi(); + + flConfiguration* config = CreateTestConfig(api); + ASSERT_NE(config, nullptr); + + flManager* mgr = nullptr; + flStatus* status = api->Manager_Create(config, &mgr); + if (!IsOk(status)) { + // Manager creation may fail if catalog is unreachable — skip gracefully. + api->Status_Release(status); + api->GetConfigurationApi()->Configuration_Release(config); + GTEST_SKIP() << "Manager creation failed (catalog may be unreachable)"; + } + flCatalog* cat = nullptr; + ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); + + flModelList* models = nullptr; + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, "definitely-not-a-real-alias", nullptr, &models)); + ASSERT_NE(models, nullptr); + EXPECT_EQ(api->ModelList_Size(models), 0u); + api->ModelList_Release(models); + + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); +} + +TEST(CApiTest, GetModelVersionsForPhi3ReturnsAllVersions) { + // The canonical phi-3 family alias in the live Azure catalog is "phi-3-mini-4k", which is published + // with multiple versions (e.g. generic-gpu:2, generic-cpu:3). FetchAllVersionsByAlias drops the + // `labels=latest` filter, so this end-to-end call should return at least one variant tagged with that + // alias. The test is network-dependent and skips gracefully if the catalog is unreachable. + const flApi* api = GetApi(); + ASSERT_NE(api, nullptr); + const flCatalogApi* catalog_api = api->GetCatalogApi(); + const flModelApi* model_api = api->GetModelApi(); + + flConfiguration* config = CreateTestConfig(api); + ASSERT_NE(config, nullptr); + + flManager* mgr = nullptr; + flStatus* status = api->Manager_Create(config, &mgr); + if (!IsOk(status)) { + api->Status_Release(status); + api->GetConfigurationApi()->Configuration_Release(config); + GTEST_SKIP() << "Manager creation failed (catalog may be unreachable)"; + } + flCatalog* cat = nullptr; + ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); + + constexpr const char* kPhi3Alias = "phi-3-mini-4k"; + flModelList* models = nullptr; + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, &models)); + ASSERT_NE(models, nullptr); + + const size_t count = api->ModelList_Size(models); + if (count == 0) { + api->ModelList_Release(models); + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); + GTEST_SKIP() << "Catalog returned no variants for '" << kPhi3Alias + << "' (catalog may be unreachable or the alias has been retired)"; + } + + // Every returned model must belong to the requested alias, and across the result set we expect to see + // more than one distinct version (the whole point of FetchAllVersionsByAlias is to bypass labels=latest). + // Print every (model_id, version) pair so failures and successes both show the live catalog content. + std::cout << "[ ] GetModelVersions('" << kPhi3Alias << "') returned " << count + << " variant(s):\n"; + std::set distinct_versions; + for (size_t i = 0; i < count; ++i) { + flModel* model = api->ModelList_GetAt(models, i); + ASSERT_NE(model, nullptr); + const flModelInfo* info = nullptr; + ASSERT_FL_OK(api, model_api->GetInfo(model, &info)); + ASSERT_NE(info, nullptr); + + const char* alias = model_api->Info_GetAlias(info); + ASSERT_NE(alias, nullptr); + EXPECT_STREQ(alias, kPhi3Alias) << "Model at index " << i << " has unexpected alias"; + + const int version = model_api->Info_GetVersion(info); + EXPECT_GT(version, 0) << "Model at index " << i << " has non-positive version"; + distinct_versions.insert(version); + + const char* model_id = model_api->Info_GetId(info); + + // GetModelVersions is a metadata-only catalog query — by design it must NOT pull any model bits into + // the local cache. Verify each returned variant is reported as un-cached. + int cached = -1; + ASSERT_FL_OK(api, model_api->IsCached(model, &cached)); + EXPECT_EQ(cached, 0) << "Model at index " << i << " (model_id='" + << (model_id ? model_id : "(null)") + << "') unexpectedly appears in the local cache after GetModelVersions"; + + std::cout << "[" << i << "] model_id='" << (model_id ? model_id : "(null)") + << "' version=" << version << " cached=" << cached << "\n"; + } + + EXPECT_GE(distinct_versions.size(), 2u) + << "Expected at least two distinct versions for '" << kPhi3Alias + << "', got " << distinct_versions.size(); + + api->ModelList_Release(models); + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); +} + +// Disabled by default: actually downloads a multi-GB model from Azure. Run manually with +// --gtest_also_run_disabled_tests when you need to exercise the Download code path against the live +// catalog. Skipped automatically in CI per the C++ test policy (no model downloads in CI). +TEST(CApiTest, DISABLED_DownloadPhi3MiniCpuV1) { + // Target the explicit ':1' variant ID: GetModelVariant uses the ID-fallback path that returns a single + // pinned variant rather than the alias' latest-labeled default. + constexpr const char* kPhi3Alias = "phi-3-mini-4k"; + constexpr const char* kVariantId = "Phi-3-mini-4k-instruct-generic-cpu:1"; + constexpr int kExpectedVersion = 1; + + const flApi* api = GetApi(); + ASSERT_NE(api, nullptr); + const flCatalogApi* catalog_api = api->GetCatalogApi(); + const flModelApi* model_api = api->GetModelApi(); + + flConfiguration* config = CreateTestConfig(api); + ASSERT_NE(config, nullptr); + + flManager* mgr = nullptr; + flStatus* status = api->Manager_Create(config, &mgr); + if (!IsOk(status)) { + api->Status_Release(status); + api->GetConfigurationApi()->Configuration_Release(config); + GTEST_SKIP() << "Manager creation failed (catalog may be unreachable)"; + } + flCatalog* cat = nullptr; + ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); + + flModel* model = nullptr; + ASSERT_FL_OK(api, catalog_api->GetModelVariant(cat, kVariantId, &model)); + ASSERT_NE(model, nullptr); + + // Sanity-check the variant we got back matches what we asked for. + const flModelInfo* info = nullptr; + ASSERT_FL_OK(api, model_api->GetInfo(model, &info)); + ASSERT_NE(info, nullptr); + EXPECT_STREQ(model_api->Info_GetId(info), kVariantId); + EXPECT_STREQ(model_api->Info_GetAlias(info), kPhi3Alias); + EXPECT_EQ(model_api->Info_GetVersion(info), kExpectedVersion); + + std::cout << "[ ] Target variant: model_id='" << kVariantId << "' alias='" + << kPhi3Alias << "' version=" << kExpectedVersion << "\n"; + + // Force a clean download path: if the model is already cached from a previous run, evict it first so + // we exercise the full network code path and get a meaningful progress stream. + int cached = -1; + ASSERT_FL_OK(api, model_api->IsCached(model, &cached)); + if (cached) { + std::cout << "[ ] Pre-existing cache entry detected; calling RemoveFromCache to force a " + "fresh download.\n"; + ASSERT_FL_OK(api, model_api->RemoveFromCache(model)); + ASSERT_FL_OK(api, model_api->IsCached(model, &cached)); + ASSERT_EQ(cached, 0) << "RemoveFromCache did not clear the cache entry"; + } + + // C ABI uses a plain function-pointer callback; route through a file-scope static vector via the + // user-data pointer so we can capture progress values from inside the C trampoline. + std::vector progress_values; + auto progress_cb = +[](float value, void* user_data) -> int { + static_cast*>(user_data)->push_back(value); + return 0; // continue + }; + + std::cout << "[ ] Downloading " << kVariantId + << " (this may take a while; multi-GB transfer)...\n"; + ASSERT_FL_OK(api, model_api->Download(model, progress_cb, &progress_values)); + + // Confirm the cache flipped 0 -> 1 across Download. + ASSERT_FL_OK(api, model_api->IsCached(model, &cached)); + EXPECT_EQ(cached, 1) << "Model should be cached after a successful Download"; + + // A real download produces multiple progress callbacks, with the final at 100% and the sequence + // monotonically non-decreasing. + ASSERT_FALSE(progress_values.empty()) << "Download produced no progress callbacks"; + EXPECT_FLOAT_EQ(progress_values.back(), 100.0f); + for (size_t i = 1; i < progress_values.size(); ++i) { + EXPECT_GE(progress_values[i], progress_values[i - 1]) + << "Progress went backwards at index " << i; + } + std::cout << "[ ] Download complete: " << progress_values.size() + << " progress callbacks, final value=" << progress_values.back() << "\n"; + + // Spot-check that GetPath now returns a usable filesystem path under the test cache dir. + const char* path = nullptr; + ASSERT_FL_OK(api, model_api->GetPath(model, &path)); + ASSERT_NE(path, nullptr); + EXPECT_GT(std::strlen(path), 0u); + EXPECT_TRUE(std::filesystem::exists(path)) << "Reported model path does not exist: " << path; + std::cout << "[ ] GetPath -> '" << path << "'\n"; + + // Clean up so re-running the test from a fresh cache continues to exercise the download path, and so + // we don't litter the developer's disk with model bits after a manual run. + ASSERT_FL_OK(api, model_api->RemoveFromCache(model)); + ASSERT_FL_OK(api, model_api->IsCached(model, &cached)); + EXPECT_EQ(cached, 0) << "RemoveFromCache failed to evict the just-downloaded model"; + + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); +} + // ======================================================================== // ModelList API // ======================================================================== diff --git a/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h b/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h index ade2bd529..99040489c 100644 --- a/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h +++ b/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h @@ -80,6 +80,22 @@ class MockCatalog : public ICatalog { return result; } + std::vector GetModelVersions(const std::string& model_alias, + const std::string& variant_name) override { + std::vector result; + for (auto& m : models_) { + if (!model_alias.empty() && m.Alias() != model_alias) { + continue; + } + for (auto* v : m.Variants()) { + if (variant_name.empty() || v->Info().name == variant_name) { + result.push_back(v); + } + } + } + return result; + } + /// Add a model variant. Groups variants by alias into container models, /// matching BaseModelCatalog behavior. void AddModel(Model model) { From fd865f39d17c1cf2fa0d8e694d9721439742a190 Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Mon, 15 Jun 2026 15:27:36 -0700 Subject: [PATCH 05/20] Default registry region to centralus, httprequestoptions, and config parsing --- .../include/foundry_local/foundry_local_c.h | 2 +- .../include/foundry_local/foundry_local_cpp.h | 2 +- .../cpp/src/catalog/azure_catalog_client.cc | 4 +- sdk_v2/cpp/src/configuration.h | 2 +- sdk_v2/cpp/src/download/download_manager.cc | 4 +- sdk_v2/cpp/src/download/download_manager.h | 3 +- .../cpp/src/download/model_registry_client.cc | 4 +- .../ep_detection/webgpu_ep_bootstrapper.cc | 4 +- sdk_v2/cpp/src/http/http_client.cc | 47 +++++++------------ sdk_v2/cpp/src/http/http_client.h | 29 +++++------- sdk_v2/cpp/src/manager.cc | 30 +++++------- sdk_v2/cpp/test/internal_api/download_test.cc | 42 ++++++++--------- .../cpp/test/internal_api/web_service_test.cc | 15 ++++-- 13 files changed, 92 insertions(+), 96 deletions(-) diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h index a32c686fc..807dc4985 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h @@ -826,7 +826,7 @@ struct flConfigurationApi { _In_opt_ const char* filter_override); /// Optional. Azure region for the model registry download endpoint /// (https://{region}.api.azureml.ms/modelregistry/...). Resolves a model's - /// asset_id to a downloadable blob storage URL. Defaults to "eastus" when not set. + /// asset_id to a downloadable blob storage URL. Defaults to "centralus" when not set. FL_API_STATUS(SetCatalogRegion, _In_ flConfiguration* config, _In_ const char* region); /// Optional. Add a web service endpoint to bind to. /// Defaults to "http://127.0.0.1:0" (ephemeral port) if none added. diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h index d8ab4e0a4..94e2a1dcb 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h @@ -266,7 +266,7 @@ class Configuration { Configuration& SetExternalServiceUrl(const std::string& url); /// Optional. Azure region for the model registry download endpoint. - /// Defaults to "eastus" when not set. + /// Defaults to "centralus" when not set. Configuration& SetCatalogRegion(const std::string& region); const flConfiguration* native_handle() const noexcept { return handle_.get(); } diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc index 4ece7a52f..2555ff7dc 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -243,7 +243,9 @@ AzureCatalogClient::AzureCatalogClient(const std::string& base_url, region_fallback_(logger, region_fallback_enabled) { if (!http_post_response_) { http_post_response_ = [](const std::string& url, const std::string& body) { - return http::HttpPostWithResponse(url, body, kUserAgent); + http::HttpRequestOptions options; + options.user_agent = kUserAgent; + return http::HttpPostWithResponse(url, body, options); }; } diff --git a/sdk_v2/cpp/src/configuration.h b/sdk_v2/cpp/src/configuration.h index 82e4a9acd..761fe4065 100644 --- a/sdk_v2/cpp/src/configuration.h +++ b/sdk_v2/cpp/src/configuration.h @@ -30,7 +30,7 @@ struct Configuration { /// Azure region for the model registry download endpoint /// (https://{catalog_region}.api.azureml.ms/modelregistry/...). /// Resolves a model's asset_id to a downloadable blob storage URL. - /// Defaults to "eastus" when not set. + /// Defaults to "centralus" when not set. std::optional catalog_region; /// Web service endpoints to bind to (e.g. "http://127.0.0.1:0"). diff --git a/sdk_v2/cpp/src/download/download_manager.cc b/sdk_v2/cpp/src/download/download_manager.cc index bd3553f7d..5a43a9447 100644 --- a/sdk_v2/cpp/src/download/download_manager.cc +++ b/sdk_v2/cpp/src/download/download_manager.cc @@ -22,7 +22,7 @@ namespace { const char* kDownloadSignalFileName = "download.tmp"; const char* kGenAIConfigFileName = "genai_config.json"; const char* kInferenceModelFileName = "inference_model.json"; -const char* kDefaultRegistryRegion = "eastus"; +const char* kDefaultRegistryRegion = "centralus"; /// Check whether inference_model.json exists at the root or in any immediate /// subdirectory. This is the definitive proof that a download completed @@ -277,7 +277,7 @@ std::string DownloadManager::DownloadModel(const ModelInfo& info, try { // Step 1: Resolve SAS URI from the region that served this model's catalog entry - // (or the explicit override / eastus fallback). + // (or the explicit override / default registry-region fallback). auto container = registry_client_->ResolveModelContainer(info.uri, ResolveRegion(config_region_, info)); if (container.blob_sas_uri.empty()) { diff --git a/sdk_v2/cpp/src/download/download_manager.h b/sdk_v2/cpp/src/download/download_manager.h index 04f482d3e..3b637ba16 100644 --- a/sdk_v2/cpp/src/download/download_manager.h +++ b/sdk_v2/cpp/src/download/download_manager.h @@ -69,7 +69,8 @@ class DownloadManager { std::string cache_directory_; // Explicit registry region override. Empty (or "auto") means "use the model's - // detected_region, falling back to eastus" — set at construction from config. + // detected_region, falling back to default registry region" — set at construction + // from config. std::string config_region_; int max_concurrency_; std::unique_ptr registry_client_; diff --git a/sdk_v2/cpp/src/download/model_registry_client.cc b/sdk_v2/cpp/src/download/model_registry_client.cc index 33034fa39..e72643ad3 100644 --- a/sdk_v2/cpp/src/download/model_registry_client.cc +++ b/sdk_v2/cpp/src/download/model_registry_client.cc @@ -53,7 +53,9 @@ ModelRegistryClient::ModelRegistryClient(std::string region, // in place of in-region retries when enabled. if (!http_get_) { http_get_ = [](const std::string& url) { - return http::HttpGetWithResponse(url, kUserAgent); + http::HttpRequestOptions options; + options.user_agent = kUserAgent; + return http::HttpGetWithResponse(url, options); }; } } diff --git a/sdk_v2/cpp/src/ep_detection/webgpu_ep_bootstrapper.cc b/sdk_v2/cpp/src/ep_detection/webgpu_ep_bootstrapper.cc index afdb7da9f..9aafb8382 100644 --- a/sdk_v2/cpp/src/ep_detection/webgpu_ep_bootstrapper.cc +++ b/sdk_v2/cpp/src/ep_detection/webgpu_ep_bootstrapper.cc @@ -68,7 +68,9 @@ struct ManifestPackageInfo { ManifestPackageInfo FetchManifest(fl::ILogger& logger) { logger.Log(fl::LogLevel::Debug, fmt::format("WebGPU EP: fetching manifest from {}", kManifestUrl)); - auto body = fl::http::HttpGetWithRetry(kManifestUrl, kUserAgent, logger); + fl::http::HttpRequestOptions options; + options.user_agent = kUserAgent; + auto body = fl::http::HttpGetWithRetry(kManifestUrl, logger, options); auto manifest = nlohmann::json::parse(body); if (!manifest.contains("packages") || !manifest["packages"].is_object()) { diff --git a/sdk_v2/cpp/src/http/http_client.cc b/sdk_v2/cpp/src/http/http_client.cc index e30358960..67a08f5ab 100644 --- a/sdk_v2/cpp/src/http/http_client.cc +++ b/sdk_v2/cpp/src/http/http_client.cc @@ -31,9 +31,7 @@ struct HttpRawResult { HttpRawResult HttpRequestRaw(const Azure::Core::Http::HttpMethod& method, const std::string& url, const std::string& body, - const std::string& user_agent, - bool close_connection, - std::chrono::milliseconds timeout = std::chrono::seconds(30)) { + const HttpRequestOptions& options) { using namespace Azure::Core; using namespace Azure::Core::Http; @@ -47,9 +45,9 @@ HttpRawResult HttpRequestRaw(const Azure::Core::Http::HttpMethod& method, ? Request(method, Url(url)) : Request(method, Url(url), &body_stream); - request.SetHeader("User-Agent", user_agent); + request.SetHeader("User-Agent", options.user_agent); - if (close_connection) { + if (options.close_connection) { request.SetHeader("Connection", "close"); } @@ -58,7 +56,7 @@ HttpRawResult HttpRequestRaw(const Azure::Core::Http::HttpMethod& method, } Context context = Context{}.WithDeadline( - Azure::DateTime(std::chrono::system_clock::now() + timeout)); + Azure::DateTime(std::chrono::system_clock::now() + options.timeout)); std::unique_ptr response; try { @@ -94,9 +92,8 @@ HttpRawResult HttpRequestRaw(const Azure::Core::Http::HttpMethod& method, std::string HttpRequest(const Azure::Core::Http::HttpMethod& method, const std::string& url, const std::string& body, - const std::string& user_agent, - bool close_connection) { - auto raw = HttpRequestRaw(method, url, body, user_agent, close_connection); + const HttpRequestOptions& options) { + auto raw = HttpRequestRaw(method, url, body, options); if (raw.status == 0) { FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, "HTTP request failed for " + url + " (" + raw.body + ")"); @@ -119,26 +116,19 @@ bool IsTransientStatus(int status) { } // anonymous namespace -std::string HttpGet(const std::string& url, const std::string& user_agent, bool close_connection) { - return HttpRequest(Azure::Core::Http::HttpMethod::Get, url, "", user_agent, close_connection); +std::string HttpGet(const std::string& url, const HttpRequestOptions& options) { + return HttpRequest(Azure::Core::Http::HttpMethod::Get, url, "", options); } HttpResponse HttpPostWithResponse(const std::string& url, const std::string& json_body, - const std::string& user_agent, - std::chrono::milliseconds timeout, - bool close_connection) { - auto raw = HttpRequestRaw(Azure::Core::Http::HttpMethod::Post, url, json_body, user_agent, - close_connection, timeout); + const HttpRequestOptions& options) { + auto raw = HttpRequestRaw(Azure::Core::Http::HttpMethod::Post, url, json_body, options); return HttpResponse{raw.status, std::move(raw.headers), std::move(raw.body)}; } -HttpResponse HttpGetWithResponse(const std::string& url, - const std::string& user_agent, - std::chrono::milliseconds timeout, - bool close_connection) { - auto raw = HttpRequestRaw(Azure::Core::Http::HttpMethod::Get, url, "", user_agent, - close_connection, timeout); +HttpResponse HttpGetWithResponse(const std::string& url, const HttpRequestOptions& options) { + auto raw = HttpRequestRaw(Azure::Core::Http::HttpMethod::Get, url, "", options); return HttpResponse{raw.status, std::move(raw.headers), std::move(raw.body)}; } @@ -157,12 +147,12 @@ std::string DescribeFailure(const HttpResponse& response, std::size_t max_body_c } std::string HttpPost(const std::string& url, const std::string& json_body, - const std::string& user_agent, bool close_connection) { - return HttpRequest(Azure::Core::Http::HttpMethod::Post, url, json_body, user_agent, close_connection); + const HttpRequestOptions& options) { + return HttpRequest(Azure::Core::Http::HttpMethod::Post, url, json_body, options); } -std::string HttpDelete(const std::string& url, const std::string& user_agent, bool close_connection) { - return HttpRequest(Azure::Core::Http::HttpMethod::Delete, url, "", user_agent, close_connection); +std::string HttpDelete(const std::string& url, const HttpRequestOptions& options) { + return HttpRequest(Azure::Core::Http::HttpMethod::Delete, url, "", options); } std::string RetryWithBackoff(const std::function& op, @@ -243,12 +233,11 @@ std::string RetryWithBackoff(const std::function& op, } std::string HttpGetWithRetry(const std::string& url, - const std::string& user_agent, ILogger& logger, - bool close_connection, + const HttpRequestOptions& options, const RetryConfig& config) { auto op = [&]() -> RetryAttempt { - auto raw = HttpRequestRaw(Azure::Core::Http::HttpMethod::Get, url, "", user_agent, close_connection); + auto raw = HttpRequestRaw(Azure::Core::Http::HttpMethod::Get, url, "", options); RetryAttempt attempt; diff --git a/sdk_v2/cpp/src/http/http_client.h b/sdk_v2/cpp/src/http/http_client.h index 4facbbf1b..f1dacfcb7 100644 --- a/sdk_v2/cpp/src/http/http_client.h +++ b/sdk_v2/cpp/src/http/http_client.h @@ -21,20 +21,21 @@ struct HttpResponse { std::string body; }; +struct HttpRequestOptions { + std::string user_agent; + std::chrono::milliseconds timeout = std::chrono::seconds(30); + bool close_connection = false; +}; + /// Perform an HTTP POST and return status, headers, and body without throwing on non-2xx responses. /// Transport failures are returned as `status == 0` with the error message in `body`. HttpResponse HttpPostWithResponse(const std::string& url, const std::string& json_body, - const std::string& user_agent = "", - std::chrono::milliseconds timeout = std::chrono::seconds(30), - bool close_connection = false); + const HttpRequestOptions& options = {}); /// Perform an HTTP GET and return status, headers, and body without throwing on non-2xx responses. /// Transport failures are returned as `status == 0` with the error message in `body`. -HttpResponse HttpGetWithResponse(const std::string& url, - const std::string& user_agent = "", - std::chrono::milliseconds timeout = std::chrono::seconds(30), - bool close_connection = false); +HttpResponse HttpGetWithResponse(const std::string& url, const HttpRequestOptions& options = {}); /// Human-readable, length-bounded description of a failed response for error messages. /// `status == 0` becomes "transport failure"; otherwise "HTTP ". When the body is @@ -44,22 +45,17 @@ std::string DescribeFailure(const HttpResponse& response, std::size_t max_body_c /// Perform an HTTP GET request. Returns the response body. /// Throws fl::Exception on HTTP errors or connection failures. -std::string HttpGet(const std::string& url, - const std::string& user_agent = "", - bool close_connection = false); +std::string HttpGet(const std::string& url, const HttpRequestOptions& options = {}); /// Perform an HTTP POST request with a JSON body. Returns the response body. /// Throws fl::Exception on HTTP errors or connection failures. std::string HttpPost(const std::string& url, const std::string& json_body, - const std::string& user_agent = "", - bool close_connection = false); + const HttpRequestOptions& options = {}); /// Perform an HTTP DELETE request. Returns the response body. /// Throws fl::Exception on HTTP errors or connection failures. -std::string HttpDelete(const std::string& url, - const std::string& user_agent = "", - bool close_connection = false); +std::string HttpDelete(const std::string& url, const HttpRequestOptions& options = {}); // ------------------------------------------------------------------ // Retry primitive — used by registry resolution to ride out transient @@ -99,9 +95,8 @@ std::string RetryWithBackoff(const std::function& op, /// Convenience wrapper: HTTP GET with retry on transient 5xx / network errors. /// 4xx responses are treated as permanent failures (no retry). std::string HttpGetWithRetry(const std::string& url, - const std::string& user_agent, ILogger& logger, - bool close_connection = false, + const HttpRequestOptions& options = {}, const RetryConfig& config = {}); } // namespace http diff --git a/sdk_v2/cpp/src/manager.cc b/sdk_v2/cpp/src/manager.cc index 5fcf3205b..f921235ca 100644 --- a/sdk_v2/cpp/src/manager.cc +++ b/sdk_v2/cpp/src/manager.cc @@ -6,9 +6,7 @@ #include #include -#include #include -#include #include #include "catalog.h" @@ -59,6 +57,16 @@ bool IsGenAIVerboseLoggingEnabled() { return lowered == "1" || lowered == "true"; } +bool IsTruthyConfigValue(const std::string& value) { + const auto lowered = to_lower(value); + return lowered == "true" || lowered == "1" || lowered == "yes"; +} + +bool IsAdditionalOptionEnabled(const Configuration& config, const std::string& option_name) { + const auto it = config.additional_options.find(option_name); + return it != config.additional_options.cend() && IsTruthyConfigValue(it->second); +} + OrtLoggingLevel GetDefaultOrtLoggingLevel(bool genai_verbose_logging_enabled) { // If someone explicitly enables ORTGENAI_ORT_VERBOSE_LOGGING, treat this as // a debug scenario and default ORT logging to verbose as well. @@ -280,12 +288,7 @@ Manager::Manager(const Configuration& config) // Read whether cross-region fallback should be disabled (default: enabled). // Accepts case-insensitive true/1/yes. - bool disable_region_fallback = false; - const auto fallback_it = config_.additional_options.find("DisableRegionFallback"); - if (fallback_it != config_.additional_options.cend()) { - const auto value = to_lower(fallback_it->second); - disable_region_fallback = (value == "true" || value == "1" || value == "yes"); - } + const bool disable_region_fallback = IsAdditionalOptionEnabled(config_, "DisableRegionFallback"); download_manager_ = std::make_unique( *config_.model_cache_dir, @@ -367,7 +370,7 @@ Manager& Manager::Create(const Configuration& config) { "Manager already created. Call Destroy() first."); } - // Optional Windows App SDK bootstrap. When the caller passes Bootstrap=true in + // Optional Windows App SDK bootstrap. When the caller enables Bootstrap in // additional_options we initialize the WinAppSDK framework package for this process. This // must run before the Manager constructor so that WinML EP discovery (inside // Manager::Manager) can resolve Microsoft.Windows.AI.MachineLearning.dll. We use a @@ -377,14 +380,7 @@ Manager& Manager::Create(const Configuration& config) { // configuration TryInitializeWindowsAppSdk is a no-op stub. #if defined(FOUNDRY_LOCAL_USE_WINML) && FOUNDRY_LOCAL_USE_WINML { - auto it = config.additional_options.find("Bootstrap"); - constexpr std::string_view kTrue = "true"; - if (it != config.additional_options.end() && it->second.size() == kTrue.size() && - std::equal(it->second.begin(), it->second.end(), kTrue.begin(), - [](char a, char b) { - return std::tolower(static_cast(a)) == - std::tolower(static_cast(b)); - })) { + if (IsAdditionalOptionEnabled(config, "Bootstrap")) { StderrLogger bootstrap_logger; TryInitializeWindowsAppSdk(bootstrap_logger); } diff --git a/sdk_v2/cpp/test/internal_api/download_test.cc b/sdk_v2/cpp/test/internal_api/download_test.cc index cf3519dc8..e107a04b2 100644 --- a/sdk_v2/cpp/test/internal_api/download_test.cc +++ b/sdk_v2/cpp/test/internal_api/download_test.cc @@ -212,14 +212,14 @@ TEST(ModelRegistryClientTest, ResolvesModelContainerFromJson) { ModelRegistryClient client("eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [](const std::string& url) { - EXPECT_TRUE(url.find("assetId=") != std::string::npos); - return MakeRegistryResponse(R"({ + EXPECT_TRUE(url.find("assetId=") != std::string::npos); + return MakeRegistryResponse(R"({ "blobSasUri": "https://storage.blob.core.windows.net/container?sv=2023-01-01&sig=abc", "modelEntity": { "description": "A test model" } })"); - }); + }); auto container = client.ResolveModelContainer("azureml://registries/test/models/phi-3"); EXPECT_EQ(container.blob_sas_uri, @@ -237,8 +237,8 @@ TEST(ModelRegistryClientTest, ThrowsOnMissingSasUri) { ModelRegistryClient client("eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [](const std::string&) { - return MakeRegistryResponse(R"({"modelEntity": {"description": "no sas uri"}})"); - }); + return MakeRegistryResponse(R"({"modelEntity": {"description": "no sas uri"}})"); + }); EXPECT_THROW(client.ResolveModelContainer("azureml://test"), fl::Exception); } @@ -260,8 +260,8 @@ TEST(ModelRegistryClientTest, HandlesOptionalDescription) { ModelRegistryClient client("eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [](const std::string&) { - return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob?sig=x"})"); - }); + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob?sig=x"})"); + }); auto container = client.ResolveModelContainer("azureml://test"); EXPECT_EQ(container.blob_sas_uri, "https://example.com/blob?sig=x"); EXPECT_TRUE(container.description.empty()); @@ -272,9 +272,9 @@ TEST(ModelRegistryClientTest, UrlEncodesAssetId) { ModelRegistryClient client("eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [&captured_url](const std::string& url) { - captured_url = url; - return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); - }); + captured_url = url; + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); + }); client.ResolveModelContainer("azureml://registries/test models/v1"); // Spaces should be encoded as %20 EXPECT_TRUE(captured_url.find("%20") != std::string::npos); @@ -286,9 +286,9 @@ TEST(ModelRegistryClientTest, Region_DefaultIsEastUs) { ModelRegistryClient client("eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [&captured_url](const std::string& url) { - captured_url = url; - return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); - }); + captured_url = url; + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); + }); client.ResolveModelContainer("azureml://test"); EXPECT_TRUE(captured_url.find("eastus.api.azureml.ms") != std::string::npos) << "Expected URL to target eastus region by default. Got: " << captured_url; @@ -299,9 +299,9 @@ TEST(ModelRegistryClientTest, Region_PerCallOverridesDefault) { ModelRegistryClient client("eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [&captured_url](const std::string& url) { - captured_url = url; - return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); - }); + captured_url = url; + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); + }); // A non-empty per-call region selects that regional endpoint instead of the default. client.ResolveModelContainer("azureml://test", "westus2"); EXPECT_TRUE(captured_url.find("westus2.api.azureml.ms") != std::string::npos) @@ -315,9 +315,9 @@ TEST(ModelRegistryClientTest, Region_EmptyPerCallUsesDefault) { ModelRegistryClient client("eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [&captured_url](const std::string& url) { - captured_url = url; - return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); - }); + captured_url = url; + return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); + }); client.ResolveModelContainer("azureml://test", ""); EXPECT_TRUE(captured_url.find("eastus.api.azureml.ms") != std::string::npos) << "Expected empty per-call region to fall back to the default. Got: " << captured_url; @@ -842,9 +842,9 @@ TEST(DownloadManagerTest, Region_AutoConfigIsCaseInsensitive) { EXPECT_TRUE(url.find("auto.api.azureml.ms") == std::string::npos) << url; } -TEST(DownloadManagerTest, Region_FallsBackToEastusWhenNoConfigAndNoDetected) { +TEST(DownloadManagerTest, Region_FallsBackToDefaultRegistryRegionWhenNoConfigAndNoDetected) { auto url = CaptureRegistryUrlForDownload(/*config_region=*/"auto", /*detected_region=*/""); - EXPECT_TRUE(url.find("eastus.api.azureml.ms") != std::string::npos) << url; + EXPECT_TRUE(url.find("centralus.api.azureml.ms") != std::string::npos) << url; } TEST(DownloadManagerTest, SkipsAlreadyCachedModel) { diff --git a/sdk_v2/cpp/test/internal_api/web_service_test.cc b/sdk_v2/cpp/test/internal_api/web_service_test.cc index de7a40521..4b33be0a3 100644 --- a/sdk_v2/cpp/test/internal_api/web_service_test.cc +++ b/sdk_v2/cpp/test/internal_api/web_service_test.cc @@ -37,16 +37,25 @@ using json = nlohmann::json; namespace { std::string TestHttpGet(const std::string& url, const std::string& user_agent = "") { - return http::HttpGet(url, user_agent, true); + http::HttpRequestOptions options; + options.user_agent = user_agent; + options.close_connection = true; + return http::HttpGet(url, options); } std::string TestHttpPost(const std::string& url, const std::string& json_body, const std::string& user_agent = "") { - return http::HttpPost(url, json_body, user_agent, true); + http::HttpRequestOptions options; + options.user_agent = user_agent; + options.close_connection = true; + return http::HttpPost(url, json_body, options); } std::string TestHttpDelete(const std::string& url, const std::string& user_agent = "") { - return http::HttpDelete(url, user_agent, true); + http::HttpRequestOptions options; + options.user_agent = user_agent; + options.close_connection = true; + return http::HttpDelete(url, options); } } // namespace From 22f5b0f04209ead52adfb6bac7f947edaf9b96b5 Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Tue, 16 Jun 2026 00:43:42 -0700 Subject: [PATCH 06/20] Address pull-request review comments --- .../cpp/docs/CodingConventionsAndStandards.md | 2 +- .../include/foundry_local/foundry_local_c.h | 1 + .../cpp/src/catalog/azure_catalog_client.cc | 17 +- .../cpp/src/catalog/azure_catalog_models.cc | 4 +- sdk_v2/cpp/src/download/blob_downloader.cc | 19 +-- sdk_v2/cpp/src/download/download_manager.cc | 6 +- sdk_v2/cpp/src/download/download_manager.h | 3 +- .../cpp/src/download/model_registry_client.cc | 4 +- sdk_v2/cpp/src/exception.h | 2 +- sdk_v2/cpp/src/http/http_client.cc | 12 +- sdk_v2/cpp/src/http/http_download.cc | 2 +- .../openresponses/response_converter.cc | 11 +- sdk_v2/cpp/src/manager.cc | 4 +- sdk_v2/cpp/src/util/make_string.h | 17 -- sdk_v2/cpp/src/util/region_fallback.cc | 6 +- sdk_v2/cpp/src/util/string_utils.h | 51 ++++++ sdk_v2/cpp/src/utils.h | 10 +- sdk_v2/cpp/test/CMakeLists.txt | 1 + .../test/internal_api/azure_catalog_test.cc | 7 +- .../internal_api/chat/chat_session_test.cc | 4 +- sdk_v2/cpp/test/internal_api/download_test.cc | 23 ++- .../cpp/test/internal_api/http_retry_test.cc | 15 ++ .../cpp/test/internal_api/test_model_cache.h | 4 +- sdk_v2/cpp/test/sdk_api/catalog_live_test.cc | 157 ++++++++++++++++++ sdk_v2/cpp/test/sdk_api/responses_test.cc | 4 +- sdk_v2/cpp/test/sdk_api/shared_test_env.h | 8 +- .../cpp/test/sdk_api/streaming_audio_test.cc | 4 +- .../cpp/test/sdk_api/vision_session_test.cc | 4 +- sdk_v2/cpp/test/utils/string_utils.h | 6 +- sdk_v2/cs/src/Detail/NativeMethods.cs | 1 + sdk_v2/js/src/detail/errors.ts | 1 + .../foundry_local_sdk/_native/build_cffi.py | 1 + 32 files changed, 306 insertions(+), 105 deletions(-) delete mode 100644 sdk_v2/cpp/src/util/make_string.h create mode 100644 sdk_v2/cpp/src/util/string_utils.h create mode 100644 sdk_v2/cpp/test/sdk_api/catalog_live_test.cc diff --git a/sdk_v2/cpp/docs/CodingConventionsAndStandards.md b/sdk_v2/cpp/docs/CodingConventionsAndStandards.md index aed1bb7da..0fc28bc41 100644 --- a/sdk_v2/cpp/docs/CodingConventionsAndStandards.md +++ b/sdk_v2/cpp/docs/CodingConventionsAndStandards.md @@ -162,7 +162,7 @@ The root `flApi` struct provides accessors to five domain-specific sub-API vtabl * Functions that can fail return `flStatus*` (typedef'd as `flStatusPtr`). `nullptr` = success, non-null = error. * Error status is created via `Status_Create(flErrorCode, message)` and released via `Status_Release`. -* `flErrorCode` enum: `FOUNDRY_LOCAL_OK`, `_NOT_IMPLEMENTED`, `_INTERNAL`, `_INVALID_ARGUMENT`, `_INVALID_USAGE`. +* `flErrorCode` enum: `FOUNDRY_LOCAL_OK`, `_NOT_IMPLEMENTED`, `_INTERNAL`, `_INVALID_ARGUMENT`, `_INVALID_USAGE`, `_OPERATION_CANCELLED`, `_NETWORK`. * All API functions are `noexcept` (`FL_NO_EXCEPTION`). Exceptions must be caught in the implementation and converted to status. ### Function Pointer Macros diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h index 807dc4985..ea8dfb4aa 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h @@ -182,6 +182,7 @@ typedef enum flErrorCode { FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT = 3, FOUNDRY_LOCAL_ERROR_INVALID_USAGE = 4, FOUNDRY_LOCAL_ERROR_OPERATION_CANCELLED = 5, + FOUNDRY_LOCAL_ERROR_NETWORK = 6, } flErrorCode; typedef enum flLogLevel { diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc index 2555ff7dc..ae261a5ba 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -31,17 +31,6 @@ constexpr const char* kDefaultRegion = "eastus"; // The catalog and registry gateways reject requests without this User-Agent (HTTP 400). constexpr const char* kUserAgent = "AzureAiStudio"; -/// Strip leading/trailing whitespace. -std::string Trim(const std::string& s) { - const auto begin = s.find_first_not_of(" \t\r\n"); - if (begin == std::string::npos) { - return {}; - } - - const auto end = s.find_last_not_of(" \t\r\n"); - return s.substr(begin, end - begin + 1); -} - /// Strip all leading/trailing single quotes. std::string TrimSingleQuotes(const std::string& s) { const auto begin = s.find_first_not_of('\''); @@ -206,7 +195,7 @@ std::vector> BuildSearchFilters(const IEpDetector& ep filters.push_back(MakeFilter("kind", {"Versioned"})); filters.push_back(MakeFilter("labels", {"latest"})); filters.push_back(MakeFilter("annotations/tags/foundryLocal", model_filter)); - filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/device", {to_lower(device)})); + filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/device", {ToLower(device)})); filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/executionProvider", eps)); filter_sets.push_back(std::move(filters)); } @@ -258,7 +247,7 @@ AzureCatalogClient::AzureCatalogClient(const std::string& base_url, // An explicit region is a hard override. Empty/"auto" means detect the region, // but only for Azure URLs that can be rewritten per region. - const auto normalized_catalog_region = to_lower(catalog_region); + const auto normalized_catalog_region = ToLower(catalog_region); if (!normalized_catalog_region.empty() && normalized_catalog_region != "auto") { region_ = normalized_catalog_region; } else if (regional_template_) { @@ -320,7 +309,7 @@ std::optional AzureCatalogClient::FetchFil const std::string url = regional && pinned_region ? BuildRegionalUrl(url_prefix_, url_suffix_, *pinned_region) : BuildRequestUrl(base_url_, regional, region_, url_prefix_, url_suffix_); - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + FL_THROW(FOUNDRY_LOCAL_ERROR_NETWORK, "catalog request to " + url + " failed: " + http::DescribeFailure(response)); } diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_models.cc b/sdk_v2/cpp/src/catalog/azure_catalog_models.cc index fcdf4617e..47f806ce7 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_models.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_models.cc @@ -58,7 +58,7 @@ int64_t ParseIso8601ToUnix(const std::string& iso_str) { } DeviceType ParseDeviceType(const std::string& device) { - const auto lower = to_lower(device); + const auto lower = ToLower(device); if (lower == "cpu") { return DeviceType::kCPU; } @@ -338,7 +338,7 @@ std::optional CatalogModelToModelInfo(const CatalogLocalModel& cm) { return; } - const auto v = to_lower(*tag); + const auto v = ToLower(*tag); if (v == "true") { info.int_properties[key] = 1; } else if (v == "false") { diff --git a/sdk_v2/cpp/src/download/blob_downloader.cc b/sdk_v2/cpp/src/download/blob_downloader.cc index 73b41b173..1d5c2981e 100644 --- a/sdk_v2/cpp/src/download/blob_downloader.cc +++ b/sdk_v2/cpp/src/download/blob_downloader.cc @@ -3,6 +3,7 @@ #include "download/blob_downloader.h" #include "exception.h" #include "util/path_safety.h" +#include "util/string_utils.h" #include #include @@ -39,7 +40,7 @@ std::vector AzureBlobDownloader::ListBlobs(const std::string& sas_ return items; } catch (const Azure::Core::RequestFailedException& e) { - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + FL_THROW(FOUNDRY_LOCAL_ERROR_NETWORK, std::string("failed to list blobs: ") + e.what()); } } @@ -216,7 +217,7 @@ void AzureBlobDownloader::DownloadBlob(const std::string& sas_uri, } catch (const Azure::Core::OperationCancelledException&) { FL_THROW(FOUNDRY_LOCAL_ERROR_OPERATION_CANCELLED, "download cancelled"); } catch (const Azure::Core::RequestFailedException& e) { - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + FL_THROW(FOUNDRY_LOCAL_ERROR_NETWORK, std::string("failed to download blob '") + blob_name + "': " + e.what()); } } @@ -246,18 +247,6 @@ std::string ComputeRelativePath(const std::string& prefix, const std::string& bl return blob_name.substr(trim); } -bool EndsWith(const std::string& str, const std::string& suffix) { - if (suffix.size() > str.size()) { - return false; - } - - return std::equal(suffix.rbegin(), suffix.rend(), str.rbegin(), - [](char a, char b) { - return std::tolower(static_cast(a)) == - std::tolower(static_cast(b)); - }); -} - } // anonymous namespace void DownloadBlobsToDirectory(IBlobDownloader& downloader, @@ -301,7 +290,7 @@ void DownloadBlobsToDirectory(IBlobDownloader& downloader, // Step 3: Filter out inference_model.json (matching C# AzureBlobDownloadClientProvider filter) blobs_to_download.erase(std::remove_if(blobs_to_download.begin(), blobs_to_download.end(), [](const auto& pair) { - return EndsWith(pair.first.name, "inference_model.json"); + return EndsWithIgnoreCase(pair.first.name, "inference_model.json"); }), blobs_to_download.end()); diff --git a/sdk_v2/cpp/src/download/download_manager.cc b/sdk_v2/cpp/src/download/download_manager.cc index 5a43a9447..6e3bd64cd 100644 --- a/sdk_v2/cpp/src/download/download_manager.cc +++ b/sdk_v2/cpp/src/download/download_manager.cc @@ -151,8 +151,8 @@ std::string SanitizeForPathSegment(std::string_view name) { return std::string(name); } -std::string NormalizeConfiguredRegion(const std::string& catalog_region) { - const auto normalized = to_lower(catalog_region); +std::string NormalizeConfiguredRegion(std::string_view catalog_region) { + const auto normalized = ToLower(std::string(catalog_region)); return normalized == "auto" ? "" : normalized; } @@ -171,7 +171,7 @@ std::string ResolveRegion(const std::string& config_region, const ModelInfo& inf } // anonymous namespace -DownloadManager::DownloadManager(std::string cache_directory, std::string catalog_region, int max_concurrency, +DownloadManager::DownloadManager(std::string cache_directory, std::string_view catalog_region, int max_concurrency, ILogger& logger, bool disable_region_fallback) : cache_directory_(std::move(cache_directory)), config_region_(NormalizeConfiguredRegion(catalog_region)), diff --git a/sdk_v2/cpp/src/download/download_manager.h b/sdk_v2/cpp/src/download/download_manager.h index 3b637ba16..c552101b4 100644 --- a/sdk_v2/cpp/src/download/download_manager.h +++ b/sdk_v2/cpp/src/download/download_manager.h @@ -10,6 +10,7 @@ #include #include #include +#include namespace fl { @@ -32,7 +33,7 @@ class DownloadManager { /// @param disable_region_fallback When true, the registry uses a single region attempt /// with no cross-region fallback. DownloadManager(std::string cache_directory, - std::string catalog_region, + std::string_view catalog_region, int max_concurrency, ILogger& logger, bool disable_region_fallback = false); diff --git a/sdk_v2/cpp/src/download/model_registry_client.cc b/sdk_v2/cpp/src/download/model_registry_client.cc index e72643ad3..334b7da75 100644 --- a/sdk_v2/cpp/src/download/model_registry_client.cc +++ b/sdk_v2/cpp/src/download/model_registry_client.cc @@ -67,7 +67,7 @@ ModelContainer ModelRegistryClient::ResolveModelContainer(const std::string& ass } const bool has_per_call_region = !region.empty(); - const std::string resolved_region = to_lower(has_per_call_region ? region : default_region_); + const std::string resolved_region = ToLower(has_per_call_region ? region : default_region_); const std::string encoded = UrlEncode(asset_id); auto attempt = [&](const std::string& r) -> http::HttpResponse { @@ -80,7 +80,7 @@ ModelContainer ModelRegistryClient::ResolveModelContainer(const std::string& ass http::HttpResponse response = fallback_->Execute(start, attempt).response; if (response.status == 0 || response.status < 200 || response.status >= 300) { - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + FL_THROW(FOUNDRY_LOCAL_ERROR_NETWORK, "model registry API request failed for asset_id " + asset_id + ": " + http::DescribeFailure(response)); } diff --git a/sdk_v2/cpp/src/exception.h b/sdk_v2/cpp/src/exception.h index dfbe8f500..1bf3164b4 100644 --- a/sdk_v2/cpp/src/exception.h +++ b/sdk_v2/cpp/src/exception.h @@ -5,8 +5,8 @@ #include #include "util/code_location.h" -#include "util/make_string.h" #include "util/stacktrace.h" +#include "util/string_utils.h" #include #include diff --git a/sdk_v2/cpp/src/http/http_client.cc b/sdk_v2/cpp/src/http/http_client.cc index 67a08f5ab..76b994ff3 100644 --- a/sdk_v2/cpp/src/http/http_client.cc +++ b/sdk_v2/cpp/src/http/http_client.cc @@ -72,7 +72,7 @@ HttpRawResult HttpRequestRaw(const Azure::Core::Http::HttpMethod& method, // Copy response headers with lowercased keys for case-insensitive lookup. for (const auto& [key, value] : response->GetHeaders()) { - result.headers[to_lower(key)] = value; + result.headers[ToLower(key)] = value; } // Read the response body — prefer the stream if available, otherwise use the buffered body. @@ -96,12 +96,12 @@ std::string HttpRequest(const Azure::Core::Http::HttpMethod& method, auto raw = HttpRequestRaw(method, url, body, options); if (raw.status == 0) { - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, "HTTP request failed for " + url + " (" + raw.body + ")"); + FL_THROW(FOUNDRY_LOCAL_ERROR_NETWORK, "HTTP request failed for " + url + " (" + raw.body + ")"); } if (raw.status < 200 || raw.status >= 300) { - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, "HTTP " + std::to_string(raw.status) + " from " + url + - ": " + raw.body); + FL_THROW(FOUNDRY_LOCAL_ERROR_NETWORK, "HTTP " + std::to_string(raw.status) + " from " + url + + ": " + raw.body); } return raw.body; @@ -186,7 +186,7 @@ std::string RetryWithBackoff(const std::function& op, if (result.decision == RetryDecision::FailPermanent) { logger.Log(LogLevel::Warning, "Operation failed permanently (no retry): " + last_error); - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, last_error); + FL_THROW(FOUNDRY_LOCAL_ERROR_NETWORK, last_error); } // Transient. Decide whether we have budget for another attempt. @@ -228,7 +228,7 @@ std::string RetryWithBackoff(const std::function& op, logger.Log(LogLevel::Warning, "Operation failed after " + std::to_string(total_attempts) + " attempts: " + last_error); - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + FL_THROW(FOUNDRY_LOCAL_ERROR_NETWORK, "operation failed after " + std::to_string(total_attempts) + " attempts: " + last_error); } diff --git a/sdk_v2/cpp/src/http/http_download.cc b/sdk_v2/cpp/src/http/http_download.cc index 3b20ec88e..f0986a233 100644 --- a/sdk_v2/cpp/src/http/http_download.cc +++ b/sdk_v2/cpp/src/http/http_download.cc @@ -3,7 +3,7 @@ #include "http/http_download.h" #include "logger.h" -#include "util/make_string.h" +#include "util/string_utils.h" #include #include diff --git a/sdk_v2/cpp/src/inferencing/generative/openresponses/response_converter.cc b/sdk_v2/cpp/src/inferencing/generative/openresponses/response_converter.cc index 13550e5b8..25781b397 100644 --- a/sdk_v2/cpp/src/inferencing/generative/openresponses/response_converter.cc +++ b/sdk_v2/cpp/src/inferencing/generative/openresponses/response_converter.cc @@ -497,22 +497,15 @@ std::string ExtractResponsesToolDefinitions(const ResponseCreateParams& params, // which uses StringComparer.OrdinalIgnoreCase). Applied after tool_choice so a ForcedFunction // that names a tool excluded by allowed_tools collapses to an empty set — same strict semantics. if (params.allowed_tools.has_value()) { - auto to_lower = [](std::string s) { - for (auto& ch : s) { - ch = static_cast(std::tolower(static_cast(ch))); - } - return s; - }; - std::unordered_set allowed; allowed.reserve(params.allowed_tools->size()); for (const auto& name : *params.allowed_tools) { - allowed.insert(to_lower(name)); + allowed.insert(ToLower(name)); } std::vector intersected; for (const auto& tool : filtered) { - if (allowed.count(to_lower(tool.function.name)) > 0) { + if (allowed.count(ToLower(tool.function.name)) > 0) { intersected.push_back(tool); } } diff --git a/sdk_v2/cpp/src/manager.cc b/sdk_v2/cpp/src/manager.cc index f921235ca..8d7e9753c 100644 --- a/sdk_v2/cpp/src/manager.cc +++ b/sdk_v2/cpp/src/manager.cc @@ -53,12 +53,12 @@ bool IsGenAIVerboseLoggingEnabled() { return false; } - std::string lowered = to_lower(*env); + std::string lowered = ToLower(*env); return lowered == "1" || lowered == "true"; } bool IsTruthyConfigValue(const std::string& value) { - const auto lowered = to_lower(value); + const auto lowered = ToLower(value); return lowered == "true" || lowered == "1" || lowered == "yes"; } diff --git a/sdk_v2/cpp/src/util/make_string.h b/sdk_v2/cpp/src/util/make_string.h deleted file mode 100644 index c63562842..000000000 --- a/sdk_v2/cpp/src/util/make_string.h +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -#pragma once - -#include -#include - -namespace fl { - -template -std::string MakeString(Args&&... args) { - std::ostringstream out; - (out << ... << std::forward(args)); - return out.str(); -} - -} // namespace fl diff --git a/sdk_v2/cpp/src/util/region_fallback.cc b/sdk_v2/cpp/src/util/region_fallback.cc index 0403b237d..76d6a49aa 100644 --- a/sdk_v2/cpp/src/util/region_fallback.cc +++ b/sdk_v2/cpp/src/util/region_fallback.cc @@ -143,13 +143,13 @@ std::vector BuildRegionFallbackChain(const std::string& start_regio return; } - auto normalized = to_lower(region); + auto normalized = ToLower(region); if (seen.insert(normalized).second) { chain.push_back(normalized); } }; - const auto start = to_lower(start_region); + const auto start = ToLower(start_region); add(start); const auto& proximal_map = ProximalRegions(); @@ -176,7 +176,7 @@ std::vector BuildRegionFallbackChain(const std::string& start_regio } FallbackResult RegionFallback::Execute(const std::string& start_region, const AttemptFn& attempt) { - const auto normalized_start = to_lower(start_region); + const auto normalized_start = ToLower(start_region); if (!enabled_) { return FallbackResult{attempt(normalized_start), normalized_start}; diff --git a/sdk_v2/cpp/src/util/string_utils.h b/sdk_v2/cpp/src/util/string_utils.h new file mode 100644 index 000000000..14ed30a79 --- /dev/null +++ b/sdk_v2/cpp/src/util/string_utils.h @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +#pragma once + +#include +#include +#include +#include +#include + +namespace fl { + +template +std::string MakeString(Args&&... args) { + std::ostringstream out; + (out << ... << std::forward(args)); + return out.str(); +} + +/// Lowercase a string (ASCII). Returns a new string. +inline std::string ToLower(std::string s) { + std::transform(s.begin(), s.end(), s.begin(), + [](unsigned char c) { return std::tolower(c); }); + return s; +} + +/// Strip leading/trailing ASCII whitespace (space, tab, CR, LF). Returns a new string. +inline std::string Trim(const std::string& s) { + const auto begin = s.find_first_not_of(" \t\r\n"); + if (begin == std::string::npos) { + return {}; + } + + const auto end = s.find_last_not_of(" \t\r\n"); + return s.substr(begin, end - begin + 1); +} + +/// Case-insensitive (ASCII) suffix test. +inline bool EndsWithIgnoreCase(const std::string& str, const std::string& suffix) { + if (suffix.size() > str.size()) { + return false; + } + + return std::equal(suffix.rbegin(), suffix.rend(), str.rbegin(), + [](char a, char b) { + return std::tolower(static_cast(a)) == + std::tolower(static_cast(b)); + }); +} + +} // namespace fl diff --git a/sdk_v2/cpp/src/utils.h b/sdk_v2/cpp/src/utils.h index 7ae0b5669..260203c91 100644 --- a/sdk_v2/cpp/src/utils.h +++ b/sdk_v2/cpp/src/utils.h @@ -5,22 +5,14 @@ #include #include "exception.h" +#include "util/string_utils.h" -#include -#include #include #include #include namespace fl { -/// Lowercase a string (ASCII). Returns a new string. -inline std::string to_lower(std::string s) { - std::transform(s.begin(), s.end(), s.begin(), - [](unsigned char c) { return std::tolower(c); }); - return s; -} - class ILogger; struct Utils { diff --git a/sdk_v2/cpp/test/CMakeLists.txt b/sdk_v2/cpp/test/CMakeLists.txt index 6d0dc9077..ab5bc5a50 100644 --- a/sdk_v2/cpp/test/CMakeLists.txt +++ b/sdk_v2/cpp/test/CMakeLists.txt @@ -202,6 +202,7 @@ set_tests_properties(sdk_integration_tests PROPERTIES TIMEOUT 1200) # ========================================================================== add_executable(cache_only_tests sdk_api/cache_only_test.cc + sdk_api/catalog_live_test.cc sdk_api/manager_web_service_test.cc ) diff --git a/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc b/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc index afa0a5dce..3e59680ac 100644 --- a/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc +++ b/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc @@ -1078,7 +1078,12 @@ TEST(AzureCatalogClientTest, Fallback_PermanentCatalogErrorThrows) { return resp; }, "eastus"); - EXPECT_THROW(client.FetchAllModels(), fl::Exception); + try { + client.FetchAllModels(); + FAIL() << "Expected fl::Exception for permanent catalog HTTP failure"; + } catch (const fl::Exception& e) { + EXPECT_EQ(e.code(), FOUNDRY_LOCAL_ERROR_NETWORK); + } EXPECT_EQ(calls, 1); } diff --git a/sdk_v2/cpp/test/internal_api/chat/chat_session_test.cc b/sdk_v2/cpp/test/internal_api/chat/chat_session_test.cc index 61e508714..891aa9d6a 100644 --- a/sdk_v2/cpp/test/internal_api/chat/chat_session_test.cc +++ b/sdk_v2/cpp/test/internal_api/chat/chat_session_test.cc @@ -185,7 +185,7 @@ TEST_F(ChatSessionTest, RunWithStreaming) { EXPECT_FALSE(text.empty()); // Lowercase the final text for case-insensitive substring matches. - std::string lower = fl::test::to_lower(text); + std::string lower = fl::test::ToLower(text); const std::vector uk_countries = {"england", "scotland", "wales", "ireland"}; int found = 0; @@ -223,7 +223,7 @@ TEST_F(ChatSessionTest, RunWithStreaming) { EXPECT_FALSE(text2.empty()); - std::string lower2 = fl::test::to_lower(text2); + std::string lower2 = fl::test::ToLower(text2); const std::vector uk_capitals = {"london", "edinburgh", "cardiff", "belfast"}; int found2 = 0; diff --git a/sdk_v2/cpp/test/internal_api/download_test.cc b/sdk_v2/cpp/test/internal_api/download_test.cc index e107a04b2..c90d9b6f5 100644 --- a/sdk_v2/cpp/test/internal_api/download_test.cc +++ b/sdk_v2/cpp/test/internal_api/download_test.cc @@ -233,13 +233,34 @@ TEST(ModelRegistryClientTest, ThrowsOnEmptyAssetId) { EXPECT_THROW(client.ResolveModelContainer(""), fl::Exception); } +TEST(ModelRegistryClientTest, ThrowsNetworkOnHttpFailure) { + ModelRegistryClient client("eastus", fl::test::NullLog(), + std::make_unique(fl::test::NullLog(), false), + [](const std::string&) { + return MakeRegistryResponse("upstream error", 500); + }); + try { + client.ResolveModelContainer("azureml://test"); + FAIL() << "expected fl::Exception"; + } catch (const fl::Exception& e) { + EXPECT_EQ(e.code(), FOUNDRY_LOCAL_ERROR_NETWORK); + } +} + TEST(ModelRegistryClientTest, ThrowsOnMissingSasUri) { ModelRegistryClient client("eastus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [](const std::string&) { return MakeRegistryResponse(R"({"modelEntity": {"description": "no sas uri"}})"); }); - EXPECT_THROW(client.ResolveModelContainer("azureml://test"), fl::Exception); + // A 2xx response with a malformed/incomplete payload is a server-contract error, not a + // transport failure — it stays INTERNAL. + try { + client.ResolveModelContainer("azureml://test"); + FAIL() << "expected fl::Exception"; + } catch (const fl::Exception& e) { + EXPECT_EQ(e.code(), FOUNDRY_LOCAL_ERROR_INTERNAL); + } } TEST(ModelRegistryClientTest, ThrowsOnEmptyResponse) { diff --git a/sdk_v2/cpp/test/internal_api/http_retry_test.cc b/sdk_v2/cpp/test/internal_api/http_retry_test.cc index 7b92054cd..8746b3dd4 100644 --- a/sdk_v2/cpp/test/internal_api/http_retry_test.cc +++ b/sdk_v2/cpp/test/internal_api/http_retry_test.cc @@ -93,6 +93,21 @@ TEST(RetryWithBackoffTest, GivesUpAfterMaxRetries) { EXPECT_EQ(call_count, 4); } +TEST(RetryWithBackoffTest, ThrowsNetworkCodeOnExhaustion) { + RecordingLogger logger; + auto op = []() -> RetryAttempt { + return RetryAttempt{RetryDecision::RetryTransient, "", "503 Service Unavailable"}; + }; + auto noop_sleep = [](std::chrono::milliseconds) {}; + + try { + RetryWithBackoff(op, FastConfig(), logger, noop_sleep); + FAIL() << "expected fl::Exception"; + } catch (const fl::Exception& e) { + EXPECT_EQ(e.code(), FOUNDRY_LOCAL_ERROR_NETWORK); + } +} + TEST(RetryWithBackoffTest, DoesNotRetryPermanentFailure) { RecordingLogger logger; int call_count = 0; diff --git a/sdk_v2/cpp/test/internal_api/test_model_cache.h b/sdk_v2/cpp/test/internal_api/test_model_cache.h index 1b7041b94..7f95e6bc0 100644 --- a/sdk_v2/cpp/test/internal_api/test_model_cache.h +++ b/sdk_v2/cpp/test/internal_api/test_model_cache.h @@ -73,8 +73,8 @@ inline fs::path GetTestModelCacheDir() { /// Mirrors the C# helper: TF_BUILD=True (Azure DevOps) or /// GITHUB_ACTIONS=true (GitHub Actions), case-insensitive. inline bool IsRunningInCI() { - return to_lower(SafeGetEnv("TF_BUILD")) == "true" || - to_lower(SafeGetEnv("GITHUB_ACTIONS")) == "true"; + return ToLower(SafeGetEnv("TF_BUILD")) == "true" || + ToLower(SafeGetEnv("GITHUB_ACTIONS")) == "true"; } /// Get the effective model path — the directory containing genai_config.json. diff --git a/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc b/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc new file mode 100644 index 000000000..01acbab16 --- /dev/null +++ b/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// +// End-to-end tests against the LIVE Azure model catalog using only the public C++ API. +// +// Lifetime / singleton note: GoogleTest runs the tests in a binary sequentially in a single +// process. Manager is a process-wide singleton ("at most one alive at a time"), so each test +// constructs its own Manager as a local - its destructor runs Manager::Destroy() at scope exit, +// before the next test starts, so no two Managers ever overlap. This binary (cache_only_tests) +// has no SharedTestEnv, so nothing else holds the singleton. This mirrors cache_only_test.cc. + +#include "internal_api/test_model_cache.h" // fl::test::IsRunningInCI + +#include +#include + +#include +#include +#include +#include +#include +#include + +#ifdef _WIN32 +#define NOMINMAX +#include +#else +#include +#endif + +namespace { + +namespace fs = std::filesystem; + +// The live catalog endpoint and an explicit region. Setting the region exercises the public +// Configuration::SetCatalogRegion() override path; it matches the URL template so routing stays +// consistent. +constexpr const char* kLiveCatalogUrl = "https://ai.azure.com/api/eastus/ux/v1.0"; +constexpr const char* kLiveCatalogRegion = "eastus"; + +// A small model the repo already standardizes on (see SharedTestEnv). Used by the download test. +constexpr const char* kSmallModelAlias = "qwen2.5-0.5b"; + +#ifdef _WIN32 +unsigned long CurrentPid() { return ::GetCurrentProcessId(); } +#else +pid_t CurrentPid() { return ::getpid(); } +#endif + +// Removes its directory on destruction so live tests stay hermetic and never pollute the user's +// default model cache. Declared before the Manager in each test so the Manager (which may hold the +// cache open) is destroyed first. +struct TempDirGuard { + fs::path path; + + explicit TempDirGuard(std::string tag) + : path(fs::temp_directory_path() / ("fl_live_" + tag + "_" + std::to_string(CurrentPid()))) { + fs::create_directories(path); + } + + ~TempDirGuard() { + std::error_code ec; + fs::remove_all(path, ec); + } + + TempDirGuard(const TempDirGuard&) = delete; + TempDirGuard& operator=(const TempDirGuard&) = delete; +}; + +foundry_local::Configuration MakeLiveConfig(const std::string& app_name, const fs::path& cache_dir) { + foundry_local::Configuration config(app_name); + config.SetDefaultLogLevel(FOUNDRY_LOCAL_LOG_WARNING) + .AddCatalogUrl(kLiveCatalogUrl) + .SetCatalogRegion(kLiveCatalogRegion) + .SetModelCacheDir(cache_dir.string()); + return config; +} + +} // namespace + +// Fetches the entire live catalog and prints every model so the catalog is visible in CI logs. +TEST(CatalogLiveTest, DumpLiveCatalog) { + TempDirGuard cache("dump"); + + foundry_local::Manager manager(MakeLiveConfig("catalog_live_dump", cache.path)); + foundry_local::ModelList models = manager.GetCatalog().GetModels(); + auto list = models.Models(); + + ASSERT_FALSE(list.empty()) << "Live catalog returned no models."; + + std::cout << "\n=== Live model catalog (" << list.size() << " models, region=" << kLiveCatalogRegion + << ") ===\n"; + for (const auto& model : list) { + auto info = model->GetInfo(); + std::cout << " - alias=" << info.Alias() << " id=" << info.Id() << " name=" << info.Name() << "\n"; + EXPECT_FALSE(info.Id().empty()) << "every catalog model must expose a non-empty id"; + } + std::cout << "=== end catalog ===\n"; +} + +// Downloads a real model end-to-end through the public API. Disabled in CI (network + large I/O). +TEST(CatalogLiveTest, DownloadRealModel) { + if (fl::test::IsRunningInCI()) { + GTEST_SKIP() << "Real model download is disabled in CI (network + large I/O); runs locally."; + } + + TempDirGuard cache("download"); + + try { + foundry_local::Manager manager(MakeLiveConfig("catalog_live_download", cache.path)); + auto& catalog = manager.GetCatalog(); + + auto model = catalog.GetModel(kSmallModelAlias); + if (!model) { + GTEST_SKIP() << "Model '" << kSmallModelAlias << "' is not in the live catalog."; + } + + // Pick the smallest CPU variant to keep the download fast. + std::string smallest_id; + int64_t smallest_mb = std::numeric_limits::max(); + foundry_local::ModelList variants = model->GetVariants(); + for (const auto& variant : variants.Models()) { + auto info = variant->GetInfo(); + if (info.DeviceType() != FOUNDRY_LOCAL_DEVICE_CPU) { + continue; + } + int64_t mb = info.FilesizeMb().value_or(std::numeric_limits::max()); + if (smallest_id.empty() || mb < smallest_mb) { + smallest_mb = mb; + smallest_id = std::string(info.Id()); + } + } + + if (smallest_id.empty()) { + GTEST_SKIP() << "No CPU variant available for '" << kSmallModelAlias << "' in the live catalog."; + } + + auto download = catalog.GetModelVariant(smallest_id); + ASSERT_NE(download, nullptr) << "GetModelVariant should resolve the selected variant id"; + ASSERT_FALSE(download->IsCached()) << "the temp cache dir should start empty"; + + std::cout << "\nDownloading " << smallest_id << " (" + << (smallest_mb == std::numeric_limits::max() ? std::string("size unknown") + : std::to_string(smallest_mb) + " MB") + << ") to " << cache.path.string() << " ...\n"; + + download->Download(); + + // Re-query the catalog to confirm the variant is now reported as cached. + auto verify = catalog.GetModelVariant(smallest_id); + ASSERT_NE(verify, nullptr); + EXPECT_TRUE(verify->IsCached()) << "the model should be cached after Download()"; + } catch (const foundry_local::Error& e) { + GTEST_SKIP() << "Live download could not complete (offline or catalog/registry unreachable): " + << e.what(); + } +} diff --git a/sdk_v2/cpp/test/sdk_api/responses_test.cc b/sdk_v2/cpp/test/sdk_api/responses_test.cc index 427e33348..0fbd481d4 100644 --- a/sdk_v2/cpp/test/sdk_api/responses_test.cc +++ b/sdk_v2/cpp/test/sdk_api/responses_test.cc @@ -6,7 +6,7 @@ #include "utils/string_utils.h" -using fl::test::to_lower; +using fl::test::ToLower; // Find the first output item with the given "type" value, or nullptr if not found. static const json* FindOutputByType(const json& output, const std::string& type) { @@ -394,7 +394,7 @@ TEST_F(WebServiceIntegrationTest, ResponsesCreateStreaming) { EXPECT_TRUE(got_completed) << "Stream should contain response.completed event"; EXPECT_GT(event_count, 0) << "Should have received at least one SSE event"; EXPECT_FALSE(assembled_text.empty()) << "Assembled streaming text should not be empty"; - std::string lower_text = to_lower(assembled_text); + std::string lower_text = ToLower(assembled_text); EXPECT_NE(lower_text.find("hello"), std::string::npos) << "Expected 'hello' (case-insensitive) in streaming output. Got: " << assembled_text; diff --git a/sdk_v2/cpp/test/sdk_api/shared_test_env.h b/sdk_v2/cpp/test/sdk_api/shared_test_env.h index 5c968d97f..94375eaa2 100644 --- a/sdk_v2/cpp/test/sdk_api/shared_test_env.h +++ b/sdk_v2/cpp/test/sdk_api/shared_test_env.h @@ -90,8 +90,8 @@ inline bool MatchesNameTaskDevice(const foundry_local::ModelInfo& info, const ch } } - std::string name = fl::test::to_lower(std::string(info.Name())); - std::string needle = fl::test::to_lower(std::string(name_substring)); + std::string name = fl::test::ToLower(std::string(info.Name())); + std::string needle = fl::test::ToLower(std::string(name_substring)); return name.find(needle) != std::string::npos; } @@ -238,10 +238,10 @@ inline foundry_local::IModel* FindReasoningModel(foundry_local::ModelList& model /// Find a model by exact name prefix (case-insensitive). /// Returns nullptr if not found. inline foundry_local::IModel* FindModelByName(foundry_local::ModelList& models, const char* name_prefix) { - std::string needle = fl::test::to_lower(std::string(name_prefix)); + std::string needle = fl::test::ToLower(std::string(name_prefix)); for (const auto& m : models) { - std::string name = fl::test::to_lower(std::string(m->GetInfo().Name())); + std::string name = fl::test::ToLower(std::string(m->GetInfo().Name())); if (name.find(needle) == 0) { return m.get(); diff --git a/sdk_v2/cpp/test/sdk_api/streaming_audio_test.cc b/sdk_v2/cpp/test/sdk_api/streaming_audio_test.cc index 290604838..c891d7290 100644 --- a/sdk_v2/cpp/test/sdk_api/streaming_audio_test.cc +++ b/sdk_v2/cpp/test/sdk_api/streaming_audio_test.cc @@ -17,7 +17,7 @@ #include #include -using fl::test::to_lower; +using fl::test::ToLower; // ======================================================================== // StreamingAudioFixture — exercises AudioItem + ItemQueue with a nemotron @@ -72,7 +72,7 @@ class StreamingAudioFixture : public ::testing::Test { /// Verify that the transcription contains key phrases from the expected output. static void ExpectTranscriptionContent(const std::string& text) { - std::string lower = to_lower(text); + std::string lower = ToLower(text); static const char* key_phrases[] = { "give people", diff --git a/sdk_v2/cpp/test/sdk_api/vision_session_test.cc b/sdk_v2/cpp/test/sdk_api/vision_session_test.cc index 505fdbd4a..191d919fa 100644 --- a/sdk_v2/cpp/test/sdk_api/vision_session_test.cc +++ b/sdk_v2/cpp/test/sdk_api/vision_session_test.cc @@ -11,7 +11,7 @@ #include "utils/string_utils.h" -using fl::test::to_lower; +using fl::test::ToLower; namespace { @@ -69,7 +69,7 @@ TEST_F(VisionFixture, ChatSessionWithImageProducesDescriptiveOutput) { << "Response should contain at least one output item"; std::string output_text = CollectResponseText(response); - std::string lower = to_lower(output_text); + std::string lower = ToLower(output_text); // The image shows bottles of Taittinger champagne. EXPECT_NE(lower.find("bottle"), std::string::npos) diff --git a/sdk_v2/cpp/test/utils/string_utils.h b/sdk_v2/cpp/test/utils/string_utils.h index b5a635e15..2909ee7eb 100644 --- a/sdk_v2/cpp/test/utils/string_utils.h +++ b/sdk_v2/cpp/test/utils/string_utils.h @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Tiny string helpers shared across all test targets. Mirrors fl::to_lower -// in src/utils.h, but lives under test/utils/ because sdk_integration_tests +// Tiny string helpers shared across all test targets. Mirrors fl::ToLower +// in src/util/string_utils.h, but lives under test/utils/ because sdk_integration_tests // deliberately walls itself off from internal SDK headers. #pragma once @@ -12,7 +12,7 @@ namespace fl::test { /// Lowercase a string (ASCII). Returns a new string. -inline std::string to_lower(std::string s) { +inline std::string ToLower(std::string s) { std::transform(s.begin(), s.end(), s.begin(), [](unsigned char c) { return std::tolower(c); }); return s; diff --git a/sdk_v2/cs/src/Detail/NativeMethods.cs b/sdk_v2/cs/src/Detail/NativeMethods.cs index 2f4577032..3f913715a 100644 --- a/sdk_v2/cs/src/Detail/NativeMethods.cs +++ b/sdk_v2/cs/src/Detail/NativeMethods.cs @@ -67,6 +67,7 @@ public enum FlErrorCode InvalidArgument = 3, InvalidUsage = 4, OperationCancelled = 5, + Network = 6, } public enum FlLogLevel diff --git a/sdk_v2/js/src/detail/errors.ts b/sdk_v2/js/src/detail/errors.ts index 501b4f204..751dd8c5e 100644 --- a/sdk_v2/js/src/detail/errors.ts +++ b/sdk_v2/js/src/detail/errors.ts @@ -17,6 +17,7 @@ export const FlErrorCode = Object.freeze({ InvalidArgument: 3, InvalidUsage: 4, OperationCancelled: 5, + Network: 6, } as const); export type FlErrorCode = (typeof FlErrorCode)[keyof typeof FlErrorCode]; diff --git a/sdk_v2/python/src/foundry_local_sdk/_native/build_cffi.py b/sdk_v2/python/src/foundry_local_sdk/_native/build_cffi.py index ea28644ef..d8dcce88e 100644 --- a/sdk_v2/python/src/foundry_local_sdk/_native/build_cffi.py +++ b/sdk_v2/python/src/foundry_local_sdk/_native/build_cffi.py @@ -60,6 +60,7 @@ FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT = 3, FOUNDRY_LOCAL_ERROR_INVALID_USAGE = 4, FOUNDRY_LOCAL_ERROR_OPERATION_CANCELLED = 5, + FOUNDRY_LOCAL_ERROR_NETWORK = 6, } flErrorCode; typedef enum flLogLevel { From d4b61f3d133045fbeb8b5db7c10f79d58d301d12 Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Tue, 16 Jun 2026 13:07:10 -0700 Subject: [PATCH 07/20] Address pull-request review comments --- sdk_v2/cpp/test/sdk_api/catalog_live_test.cc | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc b/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc index 01acbab16..bbd0b0812 100644 --- a/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc +++ b/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc @@ -9,8 +9,6 @@ // before the next test starts, so no two Managers ever overlap. This binary (cache_only_tests) // has no SharedTestEnv, so nothing else holds the singleton. This mirrors cache_only_test.cc. -#include "internal_api/test_model_cache.h" // fl::test::IsRunningInCI - #include #include @@ -98,12 +96,8 @@ TEST(CatalogLiveTest, DumpLiveCatalog) { std::cout << "=== end catalog ===\n"; } -// Downloads a real model end-to-end through the public API. Disabled in CI (network + large I/O). -TEST(CatalogLiveTest, DownloadRealModel) { - if (fl::test::IsRunningInCI()) { - GTEST_SKIP() << "Real model download is disabled in CI (network + large I/O); runs locally."; - } - +// Downloads a real model end-to-end through the public API. Disabled by default because it performs large network I/O. +TEST(CatalogLiveTest, DISABLED_DownloadRealModel) { TempDirGuard cache("download"); try { From 673987467b64e37d3bfeb5819bb779e1bff0ff8d Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Tue, 16 Jun 2026 18:40:06 -0700 Subject: [PATCH 08/20] add max_version and continuation token --- .../include/foundry_local/foundry_local_c.h | 16 +- .../include/foundry_local/foundry_local_cpp.h | 20 +- .../foundry_local/foundry_local_cpp.inline.h | 9 +- sdk_v2/cpp/src/c_api.cc | 18 +- sdk_v2/cpp/src/catalog.h | 19 +- .../cpp/src/catalog/azure_catalog_client.cc | 261 ++++++++++++++---- sdk_v2/cpp/src/catalog/azure_catalog_client.h | 35 ++- sdk_v2/cpp/src/catalog/azure_model_catalog.cc | 34 ++- sdk_v2/cpp/src/catalog/azure_model_catalog.h | 4 +- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 60 ++-- sdk_v2/cpp/src/catalog/base_model_catalog.h | 25 +- sdk_v2/cpp/src/catalog/catalog_client.h | 23 +- sdk_v2/cpp/test/internal_api/c_api_test.cc | 98 ++++++- .../internal_api/web_service_test_helpers.h | 13 +- 14 files changed, 516 insertions(+), 119 deletions(-) diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h index 14e3ae9b0..397656148 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h @@ -596,6 +596,14 @@ typedef struct flApi { size_t FL_API_T(ModelList_Size, _In_ const flModelList* models); flModel* FL_API_T(ModelList_GetAt, _In_ const flModelList* models, size_t idx); + /// Returns the continuation token associated with this model list. The pointer + /// is owned by the list and remains valid until the list is released. NULL + /// when no continuation token was set (e.g. the list came from GetModels(), + /// or GetModelVersions has walked the underlying source to exhaustion). + /// Callers can pass the returned string back as `continuation_token` to + /// resume pagination. + const char* FL_API_T(ModelList_GetContinuationToken, _In_ const flModelList* models); + /* EP detection */ /// Get discoverable execution providers. Returns a pointer to an internal @@ -873,10 +881,16 @@ struct flCatalogApi { /// all versions of all models (subject to device/EP filtering). /// @param variant_name Optional variant name (e.g. "Phi-4-generic-gpu"). NULL returns /// every variant. + /// @param max_versions Soft upper bound on the number of variants returned. + /// Pass 0 (or any negative value) for no cap. + /// @param continuation_token Opaque cursor returned by a previous call used to resume + /// pagination from the underlying catalog source. NULL or empty starts from + /// the beginning. Implementations that do not paginate ignore this argument. /// Returned list contains existing flModel handles owned by the catalog; releasing /// the list does not invalidate the underlying model handles. FL_API_STATUS(GetModelVersions, _In_ const flCatalog* catalog, _In_opt_ const char* model_alias, - _In_opt_ const char* variant_name, _Outptr_ flModelList** out_models); + _In_opt_ const char* variant_name, int32_t max_versions, + _In_opt_ const char* continuation_token, _Outptr_ flModelList** out_models); // End V1 }; diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h index 1fd509597..b2f6dfb4a 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h @@ -710,9 +710,15 @@ class ModelList { auto begin() const noexcept { return models_.begin(); } auto end() const noexcept { return models_.end(); } + /// Continuation token for paginated queries (e.g. `Catalog::GetModelVersions`). + /// Empty when no further pages are available, or when this list did not come + /// from a paginated query. Pass back as `continuation_token` to resume. + std::string_view NextContinuationToken() const noexcept { return next_continuation_token_; } + private: detail::Base handle_; std::vector> models_; + std::string next_continuation_token_; }; // =========================================================================== @@ -732,9 +738,15 @@ class ICatalog { /// Get all versions of a model. `model_alias` may be empty to return all /// versioned models. `variant_name` optionally narrows the result to a - /// single variant; empty returns every variant. + /// single variant; empty returns every variant. `max_versions` caps the + /// number of variants returned (defaults to 50, matching the web service + /// contract); pass 0 or a negative value for no cap. `continuation_token` + /// is an opaque cursor returned by a previous call used to resume pagination + /// from the underlying source; empty starts from the beginning. virtual ModelList GetModelVersions(const std::string& model_alias, - const std::string& variant_name = {}) = 0; + const std::string& variant_name = {}, + int max_versions = 50, + const std::string& continuation_token = {}) = 0; }; // =========================================================================== @@ -758,7 +770,9 @@ class Catalog final : public ICatalog { std::unique_ptr GetModelVariant(const std::string& model_id) const override; std::unique_ptr GetLatestVersion(const IModel& model) const override; ModelList GetModelVersions(const std::string& model_alias, - const std::string& variant_name = {}) override; + const std::string& variant_name = {}, + int max_versions = 50, + const std::string& continuation_token = {}) override; private: detail::Base handle_; diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h index 9aae75233..b3dd1b1a3 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h @@ -545,6 +545,9 @@ inline ModelList::ModelList(flModelList& model_list) for (size_t i = 0; i < count; ++i) { models_.push_back(std::make_unique(*detail::api()->ModelList_GetAt(handle_.get(), i))); } + if (const char* token = detail::api()->ModelList_GetContinuationToken(handle_.get())) { + next_continuation_token_ = token; + } } inline gsl::span> ModelList::Models() const noexcept { @@ -612,12 +615,16 @@ inline std::unique_ptr Catalog::GetLatestVersion(const IModel& model) co } inline ModelList Catalog::GetModelVersions(const std::string& model_alias, - const std::string& variant_name) { + const std::string& variant_name, + int max_versions, + const std::string& continuation_token) { flModelList* models = nullptr; Check(detail::catalog_api()->GetModelVersions( handle_.get(), model_alias.empty() ? nullptr : model_alias.c_str(), variant_name.empty() ? nullptr : variant_name.c_str(), + max_versions, + continuation_token.empty() ? nullptr : continuation_token.c_str(), &models)); return ModelList(*models); } diff --git a/sdk_v2/cpp/src/c_api.cc b/sdk_v2/cpp/src/c_api.cc index 1f7b316e4..7936c06a3 100644 --- a/sdk_v2/cpp/src/c_api.cc +++ b/sdk_v2/cpp/src/c_api.cc @@ -59,6 +59,7 @@ struct flStatus { // --- ModelList --- struct flModelList { std::vector items; // non-owning pointers into catalog + std::string next_continuation_token; // empty unless populated by GetModelVersions }; // --- Catalog --- @@ -467,6 +468,13 @@ static flModel* FL_API_CALL ModelList_GetAtImpl(const flModelList* models, size_ return models->items[idx]; } +static const char* FL_API_CALL ModelList_GetContinuationTokenImpl(const flModelList* models) FL_NO_EXCEPTION { + if (!models || models->next_continuation_token.empty()) { + return nullptr; + } + return models->next_continuation_token.c_str(); +} + // ======================================================================== // EP Detection API // ======================================================================== @@ -687,6 +695,7 @@ FL_API_STATUS_IMPL(Catalog_GetNameImpl, const flCatalog* catalog, const char** o FL_API_STATUS_IMPL(Catalog_GetModelVersionsImpl, const flCatalog* catalog, const char* model_alias, const char* variant_name, + int32_t max_versions, const char* continuation_token, flModelList** out_models) { API_IMPL_BEGIN if (!catalog || !out_models) { @@ -695,14 +704,16 @@ FL_API_STATUS_IMPL(Catalog_GetModelVersionsImpl, const flCatalog* catalog, std::string alias = model_alias ? model_alias : std::string{}; std::string variant = variant_name ? variant_name : std::string{}; + std::string token = continuation_token ? continuation_token : std::string{}; - auto models = catalog->impl.GetModelVersions(alias, variant); + auto page = catalog->impl.GetModelVersions(alias, variant, max_versions, token); auto list = std::make_unique(); - list->items.reserve(models.size()); + list->items.reserve(page.models.size()); - for (auto* m : models) { + for (auto* m : page.models) { list->items.push_back(AsHandle(m)); } + list->next_continuation_token = std::move(page.next_continuation_token); *out_models = list.release(); return nullptr; @@ -1836,6 +1847,7 @@ static const flApi g_api_v1 = { ModelList_ReleaseImpl, ModelList_SizeImpl, ModelList_GetAtImpl, + ModelList_GetContinuationTokenImpl, /* EP detection */ Manager_GetDiscoverableEpsImpl, diff --git a/sdk_v2/cpp/src/catalog.h b/sdk_v2/cpp/src/catalog.h index aaf00dc60..41564b5fa 100644 --- a/sdk_v2/cpp/src/catalog.h +++ b/sdk_v2/cpp/src/catalog.h @@ -9,6 +9,14 @@ namespace fl { +/// One page of model variants returned by `ICatalog::GetModelVersions`. +/// `next_continuation_token` is empty when there are no more pages; otherwise +/// callers pass it back to retrieve the next page. +struct ModelVersionsPage { + std::vector models; + std::string next_continuation_token; +}; + /// Abstract catalog interface for querying available models. /// Mirrors the C API's flCatalogApi surface. class ICatalog { @@ -42,10 +50,17 @@ class ICatalog { /// source (still subject to device/EP filtering). /// `variant_name` optionally narrows results to a specific variant (e.g. /// "Phi-4-generic-gpu"). Pass an empty string to return every variant. + /// `max_versions` caps the number of variants returned; 0 or negative means + /// no cap. + /// `continuation_token` is an opaque cursor returned by a previous call to + /// resume pagination from the underlying source. Empty starts from the + /// beginning. Implementations that do not paginate ignore it. /// /// Maps to C# `IModelCatalog.GetModelVersionsAsync`. - virtual std::vector GetModelVersions(const std::string& model_alias, - const std::string& variant_name) = 0; + virtual ModelVersionsPage GetModelVersions(const std::string& model_alias, + const std::string& variant_name, + int max_versions = 0, + const std::string& continuation_token = {}) = 0; /// Lists only models that are cached locally. virtual std::vector GetCachedModels() const = 0; diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc index 3bdaa7a67..f8d8921b1 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -5,8 +5,11 @@ #include "http/http_client.h" #include "utils.h" +#include #include +#include +#include #include #include #include @@ -170,11 +173,12 @@ std::string BuildRequestUrl(const std::string& base_url, std::string BuildRequestBody(const std::vector& filters, const std::optional& skip, - const std::optional& continuation_token) { + const std::optional& continuation_token, + int page_size) { AzureCatalogRequest request; request.resource_ids.push_back({"azureml", "Registry"}); request.index_entities_request.filters = filters; - request.index_entities_request.page_size = kPageSize; + request.index_entities_request.page_size = page_size; request.index_entities_request.skip = skip; request.index_entities_request.continuation_token = continuation_token; @@ -253,6 +257,78 @@ std::vector BuildModelIdFilters(const std::vector& m return filters; } +// ---- Continuation-token codec ---- +// +// Format: base64(JSON) of: +// {"v":1,"d":,"s":,"t":"","r":""} +// `d` is the index into the per-device filter sets where pagination resumes. +// `s` and `t` are the server's `skip` and `continuationToken` for the current +// filter set; either or both may be absent. `r` is the pinned region (empty +// when the first page hasn't run region fallback yet). +struct ContinuationState { + size_t device_idx = 0; + std::optional skip; + std::optional inner_token; + std::string region; // empty = not pinned yet +}; + +std::string EncodeContinuation(const ContinuationState& state) { + nlohmann::json j; + j["v"] = 1; + j["d"] = state.device_idx; + if (state.skip) { + j["s"] = *state.skip; + } else { + j["s"] = nullptr; + } + if (state.inner_token) { + j["t"] = *state.inner_token; + } else { + j["t"] = ""; + } + j["r"] = state.region; + const std::string payload = j.dump(); + std::vector bytes(payload.begin(), payload.end()); + return Azure::Core::Convert::Base64Encode(bytes); +} + +// Returns the decoded state, or nullopt if the token is malformed. +std::optional DecodeContinuation(const std::string& token) { + if (token.empty()) { + return std::nullopt; + } + std::vector bytes; + try { + bytes = Azure::Core::Convert::Base64Decode(token); + } catch (...) { + return std::nullopt; + } + std::string payload(bytes.begin(), bytes.end()); + nlohmann::json j; + try { + j = nlohmann::json::parse(payload); + } catch (...) { + return std::nullopt; + } + ContinuationState state; + if (j.contains("d") && j["d"].is_number_unsigned()) { + state.device_idx = j["d"].get(); + } + if (j.contains("s") && j["s"].is_number_integer()) { + state.skip = j["s"].get(); + } + if (j.contains("t") && j["t"].is_string()) { + auto t = j["t"].get(); + if (!t.empty()) { + state.inner_token = std::move(t); + } + } + if (j.contains("r") && j["r"].is_string()) { + state.region = j["r"].get(); + } + return state; +} + } // namespace AzureCatalogClient::AzureCatalogClient(const std::string& base_url, @@ -291,26 +367,41 @@ AzureCatalogClient::AzureCatalogClient(const std::string& base_url, } } -std::optional AzureCatalogClient::FetchFilterSet( - const std::vector& filters) { +AzureCatalogClient::FilterSetWalk AzureCatalogClient::FetchFilterSetWithState( + const std::vector& filters, + std::optional skip, + std::optional inner_token, + std::string region_in, + int max_count) { const bool regional = UsesRegionalRouting(regional_template_, region_); - FetchedFilterSet result; - result.region = region_; - - std::optional skip; - std::optional continuation_token; - std::optional pinned_region; // region that served page 1 (regional mode) + FilterSetWalk result; + result.region = region_in; + std::optional pinned_region; + if (!region_in.empty()) { + pinned_region = region_in; // resuming a previously-pinned filter set + } while (true) { - const std::string body = BuildRequestBody(filters, skip, continuation_token); + int requested_page_size = kPageSize; + if (max_count > 0) { + const int still_needed = max_count - static_cast(result.models.size()); + if (still_needed <= 0) { + // Cap reached at a page boundary on a previous iteration: should not + // happen because we check after each page below, but be defensive. + result.next_skip = skip; + result.next_inner_token = inner_token; + return result; + } + requested_page_size = std::min(still_needed, kPageSize); + } + + const std::string body = BuildRequestBody(filters, skip, inner_token, requested_page_size); http::HttpResponse response; if (regional && !pinned_region) { - // Page 1: run through region fallback starting from the sticky region (last known-good) or the active region. - // Exhaustion means every candidate had a retryable region-health failure, so fail just this filter set. - const std::string start = - region_fallback_.StickyRegion().value_or(region_); + // Page 1 fresh start: run region fallback starting from the sticky/active region. + const std::string start = region_fallback_.StickyRegion().value_or(region_); try { auto fallback_result = region_fallback_.Execute(start, [&](const std::string& r) { return http_post_response_(BuildRegionalUrl(url_prefix_, url_suffix_, r), body); @@ -318,30 +409,26 @@ std::optional AzureCatalogClient::FetchFil response = std::move(fallback_result.response); pinned_region = fallback_result.region; result.region = fallback_result.region; - region_ = fallback_result.region; // active region biases later filter sets + region_ = fallback_result.region; // bias later filter sets } catch (const std::exception& ex) { logger_.Log(LogLevel::Warning, std::string("catalog: filter set failed across all regions: ") + ex.what()); - return std::nullopt; + result.aborted = true; + return result; } } else if (regional) { - // Subsequent pages are pinned to the region that served page 1 — a filter set - // never mixes regions (continuation tokens are region-specific). response = http_post_response_(BuildRegionalUrl(url_prefix_, url_suffix_, *pinned_region), body); } else { - // Non-regional / custom URL: single verbatim attempt, no fallback. response = http_post_response_(BuildRequestUrl(base_url_, regional, region_, url_prefix_, url_suffix_), body); } if (response.status == 0 || response.status < 200 || response.status >= 300) { if (regional && IsRegionRetryableStatus(response.status)) { - // Region-health failure (including mid-pagination on the pinned region): fail this filter set only. Because - // models are committed atomically below, a later page failure cannot leak a partial filter-set result. logger_.Log(LogLevel::Warning, "catalog: filter set failed (" + http::DescribeFailure(response) + "); skipping this filter set."); - return std::nullopt; + result.aborted = true; + return result; } - const std::string url = regional && pinned_region ? BuildRegionalUrl(url_prefix_, url_suffix_, *pinned_region) : BuildRequestUrl(base_url_, regional, region_, url_prefix_, url_suffix_); @@ -351,35 +438,45 @@ std::optional AzureCatalogClient::FetchFil const auto parsed = nlohmann::json::parse(response.body).get(); if (!parsed.index_entities_response) { - break; + result.done = true; + return result; } const auto& page = *parsed.index_entities_response; if (page.models.empty()) { - break; + result.done = true; + return result; } result.models.insert(result.models.end(), page.models.begin(), page.models.end()); // Advance pagination. A non-positive nextSkip and an empty token mean "done". skip = (page.next_skip && *page.next_skip > 0) ? page.next_skip : std::nullopt; - continuation_token = (page.continuation_token && !page.continuation_token->empty()) - ? page.continuation_token - : std::nullopt; + inner_token = (page.continuation_token && !page.continuation_token->empty()) + ? page.continuation_token + : std::nullopt; + + const bool stream_done = !skip && !inner_token; + if (stream_done) { + result.done = true; + return result; + } - if (!skip && !continuation_token) { - break; + if (max_count > 0 && static_cast(result.models.size()) >= max_count) { + // Cap hit and more data is available — emit cursor. + result.next_skip = skip; + result.next_inner_token = inner_token; + return result; } } - - return result; } -std::vector AzureCatalogClient::FetchAllFilterSets() { - std::vector results; +std::vector AzureCatalogClient::FetchAllFilterSets() { + std::vector results; for (const auto& filters : BuildSearchFilters(ep_detector_, model_filter_)) { - if (auto result = FetchFilterSet(filters)) { - results.push_back(std::move(*result)); + auto result = FetchFilterSetWithState(filters, std::nullopt, std::nullopt, std::string{}, /*max_count=*/0); + if (!result.aborted) { + results.push_back(std::move(result)); } } @@ -412,30 +509,98 @@ std::vector AzureCatalogClient::FetchModelsByIds( return {}; } - auto result = FetchFilterSet(BuildModelIdFilters(model_filter_, model_ids)); - if (!result) { + auto result = FetchFilterSetWithState(BuildModelIdFilters(model_filter_, model_ids), + std::nullopt, std::nullopt, std::string{}, /*max_count=*/0); + if (result.aborted) { return {}; } - return ToModelInfos(result->models, result->region); + return ToModelInfos(result.models, result.region); } -std::vector AzureCatalogClient::FetchAllVersionsByAlias(const std::string& model_alias) { +PagedModelInfos AzureCatalogClient::FetchAllVersionsByAlias(const std::string& model_alias, + int max_versions, + const std::string& continuation_token) { // Empty alias → list every versioned model the local hardware can run, across // all of their versions (i.e. `FetchAllModelInfos` minus the `labels=latest` // filter). Non-empty alias → same query, scoped to that alias. - std::vector infos; - for (const auto& filters : BuildAllVersionsFilters(ep_detector_, model_filter_, model_alias)) { - auto result = FetchFilterSet(filters); - if (!result) { + // + // Pagination model: each call walks one logical position in the upstream + // stream and returns up to `max_versions` items. The opaque + // `continuation_token` encodes which per-device filter set we're in plus the + // server's (skip, token, region) for that filter set. When `max_versions` + // is hit mid-set we emit a cursor to resume from the same position; when a + // set finishes naturally we either continue into the next set (if budget + // allows) or emit a cursor pointing to the start of the next set. + const auto filter_sets = BuildAllVersionsFilters(ep_detector_, model_filter_, model_alias); + + ContinuationState in_state; + if (!continuation_token.empty()) { + if (auto decoded = DecodeContinuation(continuation_token)) { + in_state = std::move(*decoded); + } else { + logger_.Log(LogLevel::Warning, "catalog: ignoring malformed continuation token; restarting from the beginning."); + } + } + + size_t device_idx = in_state.device_idx; + std::optional skip = in_state.skip; + std::optional inner_token = in_state.inner_token; + std::string region_in = in_state.region; + + PagedModelInfos result; + const int cap = max_versions > 0 ? max_versions : 0; // 0 = unbounded + + while (device_idx < filter_sets.size()) { + if (cap > 0 && static_cast(result.models.size()) >= cap) { + break; + } + + const int remaining = (cap > 0) ? cap - static_cast(result.models.size()) : 0; + auto walk = FetchFilterSetWithState(filter_sets[device_idx], skip, inner_token, region_in, remaining); + + if (walk.aborted) { + // Skip this filter set entirely; reset state and advance. + ++device_idx; + skip.reset(); + inner_token.reset(); + region_in.clear(); continue; } - auto batch = ToModelInfos(result->models, result->region); - infos.insert(infos.end(), std::make_move_iterator(batch.begin()), std::make_move_iterator(batch.end())); + auto batch = ToModelInfos(walk.models, walk.region); + result.models.insert(result.models.end(), + std::make_move_iterator(batch.begin()), + std::make_move_iterator(batch.end())); + + if (!walk.done) { + // Cap was reached mid-filter-set; emit cursor pointing here. + ContinuationState out; + out.device_idx = device_idx; + out.skip = walk.next_skip; + out.inner_token = walk.next_inner_token; + out.region = walk.region; + result.next_continuation_token = EncodeContinuation(out); + return result; + } + + // Set complete; advance to the next. + ++device_idx; + skip.reset(); + inner_token.reset(); + region_in.clear(); } - return infos; + // Loop exited because either (a) cap was reached on a filter-set boundary, or + // (b) we walked every filter set. If filter sets remain, encode a cursor that + // resumes at the start of the next set so the caller sees a stable page size. + if (cap > 0 && static_cast(result.models.size()) >= cap && device_idx < filter_sets.size()) { + ContinuationState out; + out.device_idx = device_idx; + result.next_continuation_token = EncodeContinuation(out); + } + + return result; } std::unique_ptr MakeCatalogClient( diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.h b/sdk_v2/cpp/src/catalog/azure_catalog_client.h index ebea19e2a..1cddb4d5a 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.h +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.h @@ -57,20 +57,41 @@ class AzureCatalogClient : public ICatalogClient { /// When `model_alias` is empty the alias filter is also omitted, so this /// returns every versioned model the local hardware can run, across all of /// their versions. - std::vector FetchAllVersionsByAlias(const std::string& model_alias) override; + /// Honours `max_versions` as a soft upper bound and `continuation_token` as + /// an opaque cursor. Each call returns up to `max_versions` items from a + /// single logical position in the upstream stream; a non-empty + /// `next_continuation_token` is set when more data is available. + PagedModelInfos FetchAllVersionsByAlias(const std::string& model_alias, + int max_versions = 0, + const std::string& continuation_token = {}) override; private: - struct FetchedFilterSet { + /// Per-page result of walking one filter set with explicit pagination state. + struct FilterSetWalk { std::vector models; - std::string region; + std::string region; // pinned region that served the page(s) + std::optional next_skip; // server's next skip (when not done) + std::optional next_inner_token; // server's next continuation token + bool done = false; // true when the underlying stream is exhausted + bool aborted = false; // true when a retryable region failure happened }; - /// Run all pages of one filter set. In regional mode the first page goes through region fallback and later pages are - /// pinned to the serving region; a retryable region-health failure fails just this filter set (others continue). - std::optional FetchFilterSet(const std::vector& filters); + /// Walks pages of one filter set with explicit pagination state. + /// - `skip` / `inner_token`: starting cursor (nullopt for a fresh start). + /// - `region_in`: pinned region for resuming (empty triggers page-1 region fallback). + /// - `max_count`: soft cap; 0 means walk to exhaustion. + /// On success, returns `done=true` if the stream was exhausted, or `done=false` + /// with `next_skip`/`next_inner_token` populated when stopped by the cap. + /// On a retryable region failure, returns `aborted=true` (partial results discarded). + FilterSetWalk FetchFilterSetWithState(const std::vector& filters, + std::optional skip, + std::optional inner_token, + std::string region_in, + int max_count); /// Fetch every device filter set, dropping the ones that failed their region-health checks. - std::vector FetchAllFilterSets(); + /// Used for unbounded "latest only" / by-id queries. + std::vector FetchAllFilterSets(); std::string base_url_; std::vector model_filter_; // foundryLocal tag values diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc index 22b3087d7..ca1ae9638 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc @@ -80,7 +80,7 @@ std::vector AzureModelCatalog::FetchModels() const { auto local_models = ScanLocalModels(cache_dir, logger_); std::vector cached_model_ids; cached_model_ids.reserve(local_models.size()); - for (const auto& [Qid, path] : local_models) { + for (const auto& [id, path] : local_models) { cached_model_ids.push_back(id); } @@ -159,35 +159,46 @@ std::vector>> EnumerateEndpoin } // namespace -std::vector AzureModelCatalog::FetchModelVersions(const std::string& model_alias) const { +BaseModelCatalog::FetchedModelVersions AzureModelCatalog::FetchModelVersions( + const std::string& model_alias, + int max_versions, + const std::string& continuation_token) const { + FetchedModelVersions out; if (cache_only_) { // In cache-only mode we have no remote source to query for older versions. logger_.Log(LogLevel::Debug, "FetchModelVersions skipped: catalog is in cache-only mode."); - return {}; + return out; } // Scan local models so any version already on disk is reported as cached. auto local_models = ScanLocalModels(cache_dir_, logger_); - std::vector models; const auto endpoints = EnumerateEndpoints(catalog_urls_, kDefaultCatalogUrl, kDefaultCatalogFilter); + // Pagination cursors are scoped to a single underlying client. When multiple + // endpoints are configured we surface only the first endpoint's token so the + // caller's resume call lands back on the same source. Endpoints past that + // are walked unbounded on each call (this is an uncommon test-only setup). for (const auto& [url, filter] : endpoints) { try { auto client = MakeCatalogClient(url, filter.value_or(""), ep_detector_, logger_, cache_dir_, catalog_region_, disable_region_fallback_); - auto model_infos = client->FetchAllVersionsByAlias(model_alias); + auto page = client->FetchAllVersionsByAlias(model_alias, max_versions, continuation_token); - models.reserve(models.size() + model_infos.size()); - for (auto& info : model_infos) { + out.models.reserve(out.models.size() + page.models.size()); + for (auto& info : page.models) { std::string local_path; auto it = local_models.find(info.model_id); if (it != local_models.end()) { local_path = it->second; } - models.push_back(model_factory_(std::move(info), std::move(local_path))); + out.models.push_back(model_factory_(std::move(info), std::move(local_path))); + } + + if (out.next_continuation_token.empty() && !page.next_continuation_token.empty()) { + out.next_continuation_token = std::move(page.next_continuation_token); } } catch (const std::exception& ex) { logger_.Log(LogLevel::Error, @@ -196,10 +207,11 @@ std::vector AzureModelCatalog::FetchModelVersions(const std::string& mode } logger_.Log(LogLevel::Information, - fmt::format("FetchModelVersions('{}') returned {} variant(s).", - model_alias, models.size())); + fmt::format("FetchModelVersions('{}') returned {} variant(s){}.", + model_alias, out.models.size(), + out.next_continuation_token.empty() ? "" : " (more pages available)")); - return models; + return out; } std::vector AzureModelCatalog::FetchModelsByIds(const std::vector& model_ids) const { diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.h b/sdk_v2/cpp/src/catalog/azure_model_catalog.h index 413b63e5f..5f2c01acb 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.h @@ -33,7 +33,9 @@ class AzureModelCatalog : public BaseModelCatalog { protected: std::vector FetchModels() const override; - std::vector FetchModelVersions(const std::string& model_alias) const override; + FetchedModelVersions FetchModelVersions(const std::string& model_alias, + int max_versions, + const std::string& continuation_token) const override; std::vector FetchModelsByIds(const std::vector& model_ids) const override; private: diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index 726e92f2d..ca830e2c7 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -447,15 +447,17 @@ std::vector BaseModelCatalog::GetLoadedModels() const { return result; } -std::vector BaseModelCatalog::GetModelVersions(const std::string& model_alias, - const std::string& variant_name) { +ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_alias, + const std::string& variant_name, + int max_versions, + const std::string& continuation_token) { // Make sure the regular "latest only" catalog is populated first so the // existing alias container exists to merge into. EnsurePopulated(); - std::vector fetched; + FetchedModelVersions fetched; try { - fetched = FetchModelVersions(model_alias); + fetched = FetchModelVersions(model_alias, max_versions, continuation_token); } catch (const std::exception& ex) { logger_.Log(LogLevel::Warning, fmt::format("GetModelVersions: fetch for alias '{}' failed — {}", @@ -468,36 +470,44 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ return {}; } - if (!fetched.empty()) { + // Capture fetch order before moving so we can return models in the order the + // underlying source produced them — important for stable pagination. + std::vector fetched_ids; + fetched_ids.reserve(fetched.models.size()); + for (const auto& m : fetched.models) { + fetched_ids.push_back(m.Info().model_id); + } + + if (!fetched.models.empty()) { std::lock_guard lock(mutex_); - IntegrateVariantsLocked(std::move(fetched)); + IntegrateVariantsLocked(std::move(fetched.models)); } + ModelVersionsPage result; + result.next_continuation_token = std::move(fetched.next_continuation_token); + auto idx = GetIndex(); - std::vector result; + for (const auto& id : fetched_ids) { + if (max_versions > 0 && result.models.size() >= static_cast(max_versions)) { + break; + } + auto id_it = idx->id_index.find(id); + if (id_it == idx->id_index.end()) { + continue; + } + Model* variant = id_it->second; + if (!variant_name.empty() && variant->Info().name != variant_name) { + continue; + } + result.models.push_back(variant); + } - if (!model_alias.empty()) { + if (!model_alias.empty() && fetched_ids.empty() && result.next_continuation_token.empty()) { + // Source returned nothing AND no more pages — log when the alias was unknown. auto alias_it = idx->alias_index.find(model_alias); if (alias_it == idx->alias_index.end()) { logger_.Log(LogLevel::Information, fmt::format("GetModelVersions: alias '{}' not found in catalog.", model_alias)); - return {}; - } - - for (auto* variant : alias_it->second->Variants()) { - if (variant_name.empty() || variant->Info().name == variant_name) { - result.push_back(variant); - } - } - } else { - // No alias filter: walk all alias containers. - std::lock_guard lock(mutex_); - for (auto& m : models_) { - for (auto* variant : m->Variants()) { - if (variant_name.empty() || variant->Info().name == variant_name) { - result.push_back(variant); - } - } } } diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.h b/sdk_v2/cpp/src/catalog/base_model_catalog.h index 7235e033a..013acc636 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.h @@ -38,8 +38,10 @@ class BaseModelCatalog : public ICatalog { Model* GetLatestVersion(const Model* model) const override; std::vector GetCachedModels() const override; std::vector GetLoadedModels() const override; - std::vector GetModelVersions(const std::string& model_alias, - const std::string& variant_name) override; + ModelVersionsPage GetModelVersions(const std::string& model_alias, + const std::string& variant_name, + int max_versions = 0, + const std::string& continuation_token = {}) override; void InvalidateCache() override; protected: @@ -50,17 +52,30 @@ class BaseModelCatalog : public ICatalog { /// Derived classes implement this to fetch all versions of a model from the /// underlying catalog source, bypassing the "latest only" filter. - /// Returns the variants (in any order; the base class sorts/indexes them). + /// Returns the variants (in any order; the base class sorts/indexes them) + /// plus a `next_continuation_token` that resumes pagination on the next call + /// (empty when the underlying source has no more data). + /// `max_versions` is a soft upper bound (0 or negative = no cap); the base + /// class also caps the final result. `continuation_token` is forwarded + /// straight from the public API and is ignored by sources that do not + /// paginate. /// Default implementation returns `{}` (no remote source — local-only catalogs). /// Maps to C# `BaseModelCatalog.GetModelVersionsAsync` -> derived overrides. - virtual std::vector FetchModelVersions(const std::string& /*model_alias*/) const { + struct FetchedModelVersions { + std::vector models; + std::string next_continuation_token; + }; + + virtual FetchedModelVersions FetchModelVersions(const std::string& /*model_alias*/, + int /*max_versions*/, + const std::string& /*continuation_token*/) const { return {}; } /// Derived classes implement this to look up specific model versions by ID /// from the underlying catalog source (e.g., older versions not in the /// latest catalog). Empty list if `model_ids` is empty. - /// Default implementation returns `{}` (no remote source — local-only catalogs). + /// Default implementation returns `{}`. /// Maps to C# `BaseModelCatalog.FetchLocalModelsAsync`. virtual std::vector FetchModelsByIds(const std::vector& /*model_ids*/) const { return {}; diff --git a/sdk_v2/cpp/src/catalog/catalog_client.h b/sdk_v2/cpp/src/catalog/catalog_client.h index fa2df4ccb..bfda64d22 100644 --- a/sdk_v2/cpp/src/catalog/catalog_client.h +++ b/sdk_v2/cpp/src/catalog/catalog_client.h @@ -12,6 +12,14 @@ namespace fl { +/// One page of model infos returned by `ICatalogClient::FetchAllVersionsByAlias`. +/// `next_continuation_token` is empty when the underlying source is exhausted; +/// otherwise callers pass it back to retrieve the next page. +struct PagedModelInfos { + std::vector models; + std::string next_continuation_token; +}; + /// Abstract catalog client. Implemented by the live Azure catalog client, /// which queries the Azure Foundry catalog REST API. class ICatalogClient { @@ -34,13 +42,20 @@ class ICatalogClient { /// /// `model_alias` is optional — when empty, implementations may return all /// available versioned models (still subject to device/EP filtering). - /// Implementations that cannot list older versions return whatever they have - /// locally (typically just the latest visible to them). + /// `max_versions` is a soft upper bound on the number of variants to return + /// (0 or negative = no cap). `continuation_token` is an opaque cursor from a + /// previous call used to resume pagination; empty starts from the beginning. + /// On return, `PagedModelInfos::next_continuation_token` is set when more + /// data is available; an empty value means the underlying source has been + /// fully walked. Implementations that cannot list older versions return + /// whatever they have locally with an empty token. /// /// Provided with a default `{}` body so an implementation that has not yet /// overridden it still compiles. - virtual std::vector FetchAllVersionsByAlias( - const std::string& /*model_alias*/) { + virtual PagedModelInfos FetchAllVersionsByAlias( + const std::string& /*model_alias*/, + int /*max_versions*/ = 0, + const std::string& /*continuation_token*/ = {}) { return {}; } }; diff --git a/sdk_v2/cpp/test/internal_api/c_api_test.cc b/sdk_v2/cpp/test/internal_api/c_api_test.cc index 50851fb5b..09482b507 100644 --- a/sdk_v2/cpp/test/internal_api/c_api_test.cc +++ b/sdk_v2/cpp/test/internal_api/c_api_test.cc @@ -308,7 +308,7 @@ TEST(CApiTest, GetModelVersionsNullCatalogFails) { const flCatalogApi* catalog_api = api->GetCatalogApi(); flModelList* models = nullptr; - flStatus* status = catalog_api->GetModelVersions(nullptr, "alias", nullptr, &models); + flStatus* status = catalog_api->GetModelVersions(nullptr, "alias", nullptr, 0, nullptr, &models); ASSERT_NE(status, nullptr); EXPECT_EQ(api->Status_GetErrorCode(status), FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT); api->Status_Release(status); @@ -327,7 +327,7 @@ TEST(CApiTest, GetModelVersionsNullOutputFails) { flCatalog* cat = nullptr; ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); - flStatus* status = catalog_api->GetModelVersions(cat, "alias", nullptr, nullptr); + flStatus* status = catalog_api->GetModelVersions(cat, "alias", nullptr, 0, nullptr, nullptr); ASSERT_NE(status, nullptr); EXPECT_EQ(api->Status_GetErrorCode(status), FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT); api->Status_Release(status); @@ -356,7 +356,7 @@ TEST(CApiTest, GetModelVersionsUnknownAliasReturnsEmptyList) { ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); flModelList* models = nullptr; - ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, "definitely-not-a-real-alias", nullptr, &models)); + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, "definitely-not-a-real-alias", nullptr, 0, nullptr, &models)); ASSERT_NE(models, nullptr); EXPECT_EQ(api->ModelList_Size(models), 0u); api->ModelList_Release(models); @@ -390,7 +390,7 @@ TEST(CApiTest, GetModelVersionsForPhi3ReturnsAllVersions) { constexpr const char* kPhi3Alias = "phi-3-mini-4k"; flModelList* models = nullptr; - ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, &models)); + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, 0, nullptr, &models)); ASSERT_NE(models, nullptr); const size_t count = api->ModelList_Size(models); @@ -446,6 +446,96 @@ TEST(CApiTest, GetModelVersionsForPhi3ReturnsAllVersions) { api->Manager_Release(mgr); } +// Walk phi-3 versions one variant at a time using continuation tokens and verify +// the paginated walk returns exactly the same set as a single un-paginated call: +// every page respects max_versions, tokens chain to exhaustion, and there are no +// duplicates or gaps. +TEST(CApiTest, GetModelVersionsPaginatedMatchesUnpaginated) { + const flApi* api = GetApi(); + ASSERT_NE(api, nullptr); + const flCatalogApi* catalog_api = api->GetCatalogApi(); + const flModelApi* model_api = api->GetModelApi(); + + flConfiguration* config = CreateTestConfig(api); + ASSERT_NE(config, nullptr); + + flManager* mgr = nullptr; + flStatus* status = api->Manager_Create(config, &mgr); + if (!IsOk(status)) { + api->Status_Release(status); + api->GetConfigurationApi()->Configuration_Release(config); + GTEST_SKIP() << "Manager creation failed (catalog may be unreachable)"; + } + flCatalog* cat = nullptr; + ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); + + constexpr const char* kPhi3Alias = "phi-3-mini-4k"; + + // Reference: one un-paginated call (no cap, no token). + flModelList* baseline = nullptr; + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, 0, nullptr, &baseline)); + ASSERT_NE(baseline, nullptr); + const size_t baseline_count = api->ModelList_Size(baseline); + if (baseline_count == 0) { + api->ModelList_Release(baseline); + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); + GTEST_SKIP() << "Catalog returned no variants for '" << kPhi3Alias << "'"; + } + + std::set baseline_ids; + for (size_t i = 0; i < baseline_count; ++i) { + flModel* m = api->ModelList_GetAt(baseline, i); + ASSERT_NE(m, nullptr); + const flModelInfo* info = nullptr; + ASSERT_FL_OK(api, model_api->GetInfo(m, &info)); + baseline_ids.insert(model_api->Info_GetId(info)); + } + api->ModelList_Release(baseline); + + // Now walk one variant per page using continuation tokens. + std::set walked_ids; + std::string token; + size_t pages = 0; + constexpr size_t kSafetyCap = 64; // hard guard against an infinite loop if the cursor never terminates + while (pages < kSafetyCap) { + ++pages; + flModelList* page_list = nullptr; + ASSERT_FL_OK(api, + catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, /*max_versions=*/1, + token.empty() ? nullptr : token.c_str(), &page_list)); + ASSERT_NE(page_list, nullptr); + const size_t page_size = api->ModelList_Size(page_list); + EXPECT_LE(page_size, 1u) << "page " << pages << " exceeded max_versions=1"; + + for (size_t i = 0; i < page_size; ++i) { + flModel* m = api->ModelList_GetAt(page_list, i); + ASSERT_NE(m, nullptr); + const flModelInfo* info = nullptr; + ASSERT_FL_OK(api, model_api->GetInfo(m, &info)); + const char* id = model_api->Info_GetId(info); + ASSERT_NE(id, nullptr); + const auto [_, inserted] = walked_ids.emplace(id); + EXPECT_TRUE(inserted) << "duplicate model_id across pages: " << id; + } + + const char* next = api->ModelList_GetContinuationToken(page_list); + token = next ? std::string(next) : std::string{}; + api->ModelList_Release(page_list); + + if (token.empty()) { + break; + } + } + + EXPECT_LT(pages, kSafetyCap) << "pagination did not terminate"; + EXPECT_EQ(walked_ids, baseline_ids) + << "paginated walk produced a different set than the un-paginated call"; + + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); +} + // Disabled by default: actually downloads a multi-GB model from Azure. Run manually with // --gtest_also_run_disabled_tests when you need to exercise the Download code path against the live // catalog. Skipped automatically in CI per the C++ test policy (no model downloads in CI). diff --git a/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h b/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h index 99040489c..9499d4c78 100644 --- a/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h +++ b/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h @@ -80,16 +80,21 @@ class MockCatalog : public ICatalog { return result; } - std::vector GetModelVersions(const std::string& model_alias, - const std::string& variant_name) override { - std::vector result; + ModelVersionsPage GetModelVersions(const std::string& model_alias, + const std::string& variant_name, + int max_versions = 0, + const std::string& /*continuation_token*/ = {}) override { + ModelVersionsPage result; for (auto& m : models_) { if (!model_alias.empty() && m.Alias() != model_alias) { continue; } for (auto* v : m.Variants()) { + if (max_versions > 0 && result.models.size() >= static_cast(max_versions)) { + return result; + } if (variant_name.empty() || v->Info().name == variant_name) { - result.push_back(v); + result.models.push_back(v); } } } From f0fb73ca638c15641f190ee0688f62b2157f30c3 Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Tue, 16 Jun 2026 22:04:38 -0700 Subject: [PATCH 09/20] Change all defaults to centralus --- sdk_v2/cpp/docs/MigrationPlan_20260505.md | 4 +- .../cpp/src/catalog/azure_catalog_client.cc | 4 +- sdk_v2/cpp/src/catalog/azure_catalog_client.h | 2 +- sdk_v2/cpp/src/catalog/azure_model_catalog.h | 2 +- .../cpp/src/download/model_registry_client.h | 2 +- .../test/internal_api/azure_catalog_test.cc | 171 ++++++++---------- sdk_v2/cpp/test/internal_api/download_test.cc | 18 +- sdk_v2/cpp/test/sdk_api/catalog_live_test.cc | 4 +- sdk_v2/cpp/test/sdk_api/shared_test_env.h | 2 +- sdk_v2/cs/src/Configuration.cs | 2 +- 10 files changed, 94 insertions(+), 117 deletions(-) diff --git a/sdk_v2/cpp/docs/MigrationPlan_20260505.md b/sdk_v2/cpp/docs/MigrationPlan_20260505.md index c67993048..8b5360055 100644 --- a/sdk_v2/cpp/docs/MigrationPlan_20260505.md +++ b/sdk_v2/cpp/docs/MigrationPlan_20260505.md @@ -168,7 +168,7 @@ All 5 "Migrate" items from [MigrationPlan.md](MigrationPlan.md) are **done**: | **C# Files** | `AzureExtensions.cs`, `Configuration.cs`, `FoundryLocalCore.cs` | **What changed in C#:** -- `Configuration` gains `ModelRegistryRegion` property (default `"eastus"`), read from +- `Configuration` gains `ModelRegistryRegion` property (default `"centralus"`), read from config key `"CatalogRegion"`. - `AzureExtensions.ModelRegistryRegion` is set from configuration during init. - The hardcoded `https://eastus.api.azureml.ms/modelregistry/...` URL becomes @@ -179,7 +179,7 @@ All 5 "Migrate" items from [MigrationPlan.md](MigrationPlan.md) are **done**: - `Configuration` has no region field. **Migration work:** -- Add `catalog_region` field to `Configuration` (default `"eastus"`). +- Add `catalog_region` field to `Configuration` (default `"centralus"`). - Expose via C ABI configuration setter. - `ModelRegistryClient` uses `configuration.catalog_region` to construct the URL. - ~15 lines across 3 files. diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc index ae261a5ba..f39f66b4b 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -26,7 +26,7 @@ constexpr int kPageSize = 50; constexpr const char* kRegionProbeUrl = "https://api.catalog.azureml.ms/asset-gallery/v1.0/models"; constexpr const char* kRegionProbeBody = R"({"filters":[],"pageSize":1})"; constexpr const char* kServedByClusterHeader = "azureml-served-by-cluster"; -constexpr const char* kDefaultRegion = "eastus"; +constexpr const char* kDefaultRegion = "centralus"; // The catalog and registry gateways reject requests without this User-Agent (HTTP 400). constexpr const char* kUserAgent = "AzureAiStudio"; @@ -118,7 +118,7 @@ bool UsesRegionalRouting(bool regional_template, const std::string& region) { } /// Detect the Azure region by POSTing a probe to the catalog gallery and reading -/// the `azureml-served-by-cluster` response header. Returns "eastus" on failure. +/// the `azureml-served-by-cluster` response header. Returns "centralus" on failure. std::string DetectRegion(const AzureCatalogClient::HttpPostResponseFn& http_post_response, ILogger& logger) { http::HttpResponse response = http_post_response(kRegionProbeUrl, kRegionProbeBody); diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.h b/sdk_v2/cpp/src/catalog/azure_catalog_client.h index b90de09b0..63df17ffd 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.h +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.h @@ -29,7 +29,7 @@ class AzureCatalogClient : public ICatalogClient { using HttpPostResponseFn = std::function; - /// @param base_url Catalog base URL, e.g. "https://ai.azure.com/api/eastus/ux/v1.0". + /// @param base_url Catalog base URL, e.g. "https://ai.azure.com/api/centralus/ux/v1.0". /// @param filter_override Foundry Local tag filter. "" means public models; "''" means a single empty value. /// @param ep_detector Reports available device and execution-provider pairs. /// @param logger Logger. diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.h b/sdk_v2/cpp/src/catalog/azure_model_catalog.h index 315bc36f2..9d8375666 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.h @@ -35,7 +35,7 @@ class AzureModelCatalog : public BaseModelCatalog { std::vector FetchModels() const override; private: - static constexpr const char* kDefaultCatalogUrl = "https://ai.azure.com/api/eastus/ux/v1.0"; + static constexpr const char* kDefaultCatalogUrl = "https://ai.azure.com/api/centralus/ux/v1.0"; static constexpr const char* kDefaultCatalogFilter = "''"; std::vector>> catalog_urls_; diff --git a/sdk_v2/cpp/src/download/model_registry_client.h b/sdk_v2/cpp/src/download/model_registry_client.h index 347281582..6527baade 100644 --- a/sdk_v2/cpp/src/download/model_registry_client.h +++ b/sdk_v2/cpp/src/download/model_registry_client.h @@ -27,7 +27,7 @@ struct ModelContainer { /// Resolves a model's asset_id to a Blob Storage SAS URI for downloading. class ModelRegistryClient { public: - /// @param region Default Azure region for the model registry endpoint (e.g. "eastus"). + /// @param region Default Azure region for the model registry endpoint (e.g. "centralus"). /// Used when ResolveModelContainer is called without a per-call region. /// @param logger Logger used for diagnostics. Tests that override the HTTP seam with a /// synchronous fake can pass a sink logger. diff --git a/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc b/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc index 3e59680ac..96df77366 100644 --- a/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc +++ b/sdk_v2/cpp/test/internal_api/azure_catalog_test.cc @@ -541,30 +541,30 @@ TEST(AzureCatalogClientTest, WithCachedModels_UnresolvedId_TriggersSecondFetch) int http_call_count = 0; AzureCatalogClient client("https://test.com", "", ep, logger, [&](const std::string&, const std::string& body) { - http_call_count++; - - if (http_call_count == 1) { - // Primary catalog fetch — returns phi-4-mini only. - return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); - } else { - // Second fetch — looking up the unresolved model by ID. - auto req = nlohmann::json::parse(body); - const auto& filters = req["indexEntitiesRequest"]["filters"]; - - // Verify the second call uses properties/id filter. - bool has_id_filter = false; - for (const auto& f : filters) { - if (f["field"] == "properties/id") { - has_id_filter = true; - EXPECT_EQ(f["values"], nlohmann::json({"old-model:1"})); - } - } - - EXPECT_TRUE(has_id_filter); + http_call_count++; - return MakeOkResponse(MakeMockCatalogResponse({{"old-model", 1}})); - } - }); + if (http_call_count == 1) { + // Primary catalog fetch — returns phi-4-mini only. + return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); + } else { + // Second fetch — looking up the unresolved model by ID. + auto req = nlohmann::json::parse(body); + const auto& filters = req["indexEntitiesRequest"]["filters"]; + + // Verify the second call uses properties/id filter. + bool has_id_filter = false; + for (const auto& f : filters) { + if (f["field"] == "properties/id") { + has_id_filter = true; + EXPECT_EQ(f["values"], nlohmann::json({"old-model:1"})); + } + } + + EXPECT_TRUE(has_id_filter); + + return MakeOkResponse(MakeMockCatalogResponse({{"old-model", 1}})); + } + }); auto result = FetchAllModelInfosWithCachedModels(client, {"old-model:1"}, logger); @@ -594,17 +594,17 @@ TEST(AzureCatalogClientTest, WithCachedModels_FullyUnresolved_CreatesBYOEntry) { int http_call_count = 0; AzureCatalogClient client("https://test.com", "", ep, logger, [&](const std::string&, const std::string&) { - http_call_count++; - - if (http_call_count == 1) { - // Primary catalog — returns nothing matching. - return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); - } else { - // FetchModelsByIds — also returns nothing for the custom model. - return MakeOkResponse( - R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); - } - }); + http_call_count++; + + if (http_call_count == 1) { + // Primary catalog — returns nothing matching. + return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); + } else { + // FetchModelsByIds — also returns nothing for the custom model. + return MakeOkResponse( + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); + } + }); auto result = FetchAllModelInfosWithCachedModels(client, {"custom-model:0"}, logger); @@ -709,18 +709,18 @@ TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { // 3 per-device requests (AllDevicesEpDetector) produce exactly 3 results total. AzureCatalogClient client("https://test.com", "", ep, logger, [&](const std::string&, const std::string& body) { - auto req = nlohmann::json::parse(body); + auto req = nlohmann::json::parse(body); - std::string device_filter; - for (const auto& f : req["indexEntitiesRequest"]["filters"]) { - if (f["field"] == "properties/variantInfo/variantMetadata/device") { - device_filter = f["values"][0].get(); - break; - } - } + std::string device_filter; + for (const auto& f : req["indexEntitiesRequest"]["filters"]) { + if (f["field"] == "properties/variantInfo/variantMetadata/device") { + device_filter = f["values"][0].get(); + break; + } + } - if (device_filter == "gpu") { - return MakeOkResponse(R"({ + if (device_filter == "gpu") { + return MakeOkResponse(R"({ "indexEntitiesResponse": { "totalCount": 1, "value": [{ @@ -739,10 +739,10 @@ TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { "continuationToken": "" } })"); - } + } - if (device_filter == "npu") { - return MakeOkResponse(R"({ + if (device_filter == "npu") { + return MakeOkResponse(R"({ "indexEntitiesResponse": { "totalCount": 1, "value": [{ @@ -761,10 +761,10 @@ TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { "continuationToken": "" } })"); - } + } - // cpu - return MakeOkResponse(R"({ + // cpu + return MakeOkResponse(R"({ "indexEntitiesResponse": { "totalCount": 1, "value": [{ @@ -783,7 +783,7 @@ TEST(AzureCatalogClientTest, ParsesTagsCaseInsensitively) { "continuationToken": "" } })"); - }); + }); auto model_infos = client.FetchAllModelInfos(); ASSERT_EQ(model_infos.size(), 3u); @@ -847,7 +847,7 @@ TEST(AzureCatalogClientTest, DetectRegionParsesClusterHeader) { EXPECT_EQ(catalog_url, "https://ai.azure.com/api/westus2/ux/v1.0/entities/crossRegion"); } -TEST(AzureCatalogClientTest, DetectRegionMissingHeaderDefaultsToEastus) { +TEST(AzureCatalogClientTest, DetectRegionMissingHeaderDefaultsToCentralUs) { CpuOnlyEpDetector ep; StderrLogger logger; std::string catalog_url; @@ -863,10 +863,10 @@ TEST(AzureCatalogClientTest, DetectRegionMissingHeaderDefaultsToEastus) { }); client.FetchAllModels(); - EXPECT_EQ(catalog_url, "https://ai.azure.com/api/eastus/ux/v1.0/entities/crossRegion"); + EXPECT_EQ(catalog_url, "https://ai.azure.com/api/centralus/ux/v1.0/entities/crossRegion"); } -TEST(AzureCatalogClientTest, DetectRegionMalformedHeaderDefaultsToEastus) { +TEST(AzureCatalogClientTest, DetectRegionMalformedHeaderDefaultsToCentralUs) { CpuOnlyEpDetector ep; StderrLogger logger; std::string catalog_url; @@ -882,10 +882,10 @@ TEST(AzureCatalogClientTest, DetectRegionMalformedHeaderDefaultsToEastus) { }); client.FetchAllModels(); - EXPECT_EQ(catalog_url, "https://ai.azure.com/api/eastus/ux/v1.0/entities/crossRegion"); + EXPECT_EQ(catalog_url, "https://ai.azure.com/api/centralus/ux/v1.0/entities/crossRegion"); } -TEST(AzureCatalogClientTest, DetectRegionProbeFailureDefaultsToEastus) { +TEST(AzureCatalogClientTest, DetectRegionProbeFailureDefaultsToCentralUs) { CpuOnlyEpDetector ep; StderrLogger logger; std::string catalog_url; @@ -901,7 +901,7 @@ TEST(AzureCatalogClientTest, DetectRegionProbeFailureDefaultsToEastus) { }); client.FetchAllModels(); - EXPECT_EQ(catalog_url, "https://ai.azure.com/api/eastus/ux/v1.0/entities/crossRegion"); + EXPECT_EQ(catalog_url, "https://ai.azure.com/api/centralus/ux/v1.0/entities/crossRegion"); } TEST(AzureCatalogClientTest, ExplicitRegionOverridesDetection) { @@ -909,17 +909,14 @@ TEST(AzureCatalogClientTest, ExplicitRegionOverridesDetection) { StderrLogger logger; bool probe_called = false; std::string catalog_url; - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, - [&](const std::string& url, const std::string&) { + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, [&](const std::string& url, const std::string&) { if (url == "https://api.catalog.azureml.ms/asset-gallery/v1.0/models") { probe_called = true; } catalog_url = url; return MakeOkResponse( - R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); - }, - "westeurope"); + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); }, "westeurope"); client.FetchAllModels(); EXPECT_FALSE(probe_called); @@ -934,13 +931,10 @@ TEST(AzureCatalogClientTest, ActiveRegionDrivesCatalogUrl) { CpuOnlyEpDetector ep; StderrLogger logger; std::string captured_url; - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, - [&](const std::string& url, const std::string&) { + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, [&](const std::string& url, const std::string&) { captured_url = url; return MakeOkResponse( - R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); - }, - "westus2"); + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); }, "westus2"); client.FetchAllModels(); EXPECT_EQ(captured_url, "https://ai.azure.com/api/westus2/ux/v1.0/entities/crossRegion"); @@ -950,13 +944,10 @@ TEST(AzureCatalogClientTest, NonRegionalUrlUsedVerbatimEvenWithRegion) { CpuOnlyEpDetector ep; StderrLogger logger; std::string captured_url; - AzureCatalogClient client("https://custom.example.com/catalog", "", ep, logger, - [&](const std::string& url, const std::string&) { + AzureCatalogClient client("https://custom.example.com/catalog", "", ep, logger, [&](const std::string& url, const std::string&) { captured_url = url; return MakeOkResponse( - R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); - }, - "westus2"); + R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"); }, "westus2"); client.FetchAllModels(); EXPECT_EQ(captured_url, "https://custom.example.com/catalog/entities/crossRegion"); @@ -965,11 +956,7 @@ TEST(AzureCatalogClientTest, NonRegionalUrlUsedVerbatimEvenWithRegion) { TEST(AzureCatalogClientTest, DetectedRegionStampedOnModels) { CpuOnlyEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, - [&](const std::string&, const std::string&) { - return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); - }, - "westus2"); + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, [&](const std::string&, const std::string&) { return MakeOkResponse(MakeMockCatalogResponse({{"phi-4-mini", 3}})); }, "westus2"); auto infos = client.FetchAllModelInfos(); ASSERT_EQ(infos.size(), 1u); @@ -979,8 +966,7 @@ TEST(AzureCatalogClientTest, DetectedRegionStampedOnModels) { TEST(AzureCatalogClientTest, RegionStampedPerFilterSetAfterFallback) { CpuGpuEpDetector ep; StderrLogger logger; - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, - [&](const std::string& url, const std::string& body) { + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, [&](const std::string& url, const std::string& body) { http::HttpResponse resp; if (body.find("\"cpu\"") != std::string::npos && url.find("/api/eastus/") != std::string::npos) { resp.status = 503; @@ -1005,8 +991,7 @@ TEST(AzureCatalogClientTest, RegionStampedPerFilterSetAfterFallback) { } resp.status = 500; - return resp; - }, "eastus"); + return resp; }, "eastus"); auto infos = client.FetchAllModelInfos(); ASSERT_EQ(infos.size(), 2u); @@ -1028,8 +1013,7 @@ TEST(AzureCatalogClientTest, Fallback_RetriesNextRegionAndPinsPagination) { CpuOnlyEpDetector ep; StderrLogger logger; std::vector attempted_urls; - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, - [&](const std::string& url, const std::string&) { + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, [&](const std::string& url, const std::string&) { attempted_urls.push_back(url); http::HttpResponse resp; // First attempt (eastus) is region-unhealthy; subsequent regions are healthy. @@ -1039,8 +1023,7 @@ TEST(AzureCatalogClientTest, Fallback_RetriesNextRegionAndPinsPagination) { } resp.status = 200; resp.body = R"({"indexEntitiesResponse":{"totalCount":0,"value":[],"nextSkip":0,"continuationToken":""}})"; - return resp; - }, "eastus"); + return resp; }, "eastus"); auto models = client.FetchAllModels(); ASSERT_GE(attempted_urls.size(), 2u); @@ -1053,13 +1036,11 @@ TEST(AzureCatalogClientTest, Fallback_DisabledDoesNotRetry) { CpuOnlyEpDetector ep; StderrLogger logger; int calls = 0; - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, - [&](const std::string&, const std::string&) { + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, [&](const std::string&, const std::string&) { ++calls; http::HttpResponse resp; resp.status = 503; // unhealthy, but fallback is off → no retry, filter set is skipped - return resp; - }, "eastus", /*region_fallback_enabled=*/false); + return resp; }, "eastus", /*region_fallback_enabled=*/false); auto models = client.FetchAllModels(); EXPECT_EQ(calls, 1); @@ -1070,13 +1051,11 @@ TEST(AzureCatalogClientTest, Fallback_PermanentCatalogErrorThrows) { CpuOnlyEpDetector ep; StderrLogger logger; int calls = 0; - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, - [&](const std::string&, const std::string&) { + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, [&](const std::string&, const std::string&) { ++calls; http::HttpResponse resp; resp.status = 404; - return resp; - }, "eastus"); + return resp; }, "eastus"); try { client.FetchAllModels(); @@ -1091,8 +1070,7 @@ TEST(AzureCatalogClientTest, Fallback_MidPaginationFailureDoesNotCommitPartialFi CpuOnlyEpDetector ep; StderrLogger logger; int calls = 0; - AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, - [&](const std::string&, const std::string&) { + AzureCatalogClient client("https://ai.azure.com/api/eastus/ux/v1.0", "", ep, logger, [&](const std::string&, const std::string&) { ++calls; http::HttpResponse resp; if (calls == 1) { @@ -1121,8 +1099,7 @@ TEST(AzureCatalogClientTest, Fallback_MidPaginationFailureDoesNotCommitPartialFi } resp.status = 503; - return resp; - }, "eastus"); + return resp; }, "eastus"); auto models = client.FetchAllModels(); EXPECT_EQ(calls, 2); diff --git a/sdk_v2/cpp/test/internal_api/download_test.cc b/sdk_v2/cpp/test/internal_api/download_test.cc index c90d9b6f5..38215c6c0 100644 --- a/sdk_v2/cpp/test/internal_api/download_test.cc +++ b/sdk_v2/cpp/test/internal_api/download_test.cc @@ -302,22 +302,22 @@ TEST(ModelRegistryClientTest, UrlEncodesAssetId) { EXPECT_TRUE(captured_url.find(" ") == std::string::npos); } -TEST(ModelRegistryClientTest, Region_DefaultIsEastUs) { +TEST(ModelRegistryClientTest, Region_DefaultIsCentralUs) { std::string captured_url; - ModelRegistryClient client("eastus", fl::test::NullLog(), + ModelRegistryClient client("centralus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [&captured_url](const std::string& url) { captured_url = url; return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); }); client.ResolveModelContainer("azureml://test"); - EXPECT_TRUE(captured_url.find("eastus.api.azureml.ms") != std::string::npos) - << "Expected URL to target eastus region by default. Got: " << captured_url; + EXPECT_TRUE(captured_url.find("centralus.api.azureml.ms") != std::string::npos) + << "Expected URL to target centralus region by default. Got: " << captured_url; } TEST(ModelRegistryClientTest, Region_PerCallOverridesDefault) { std::string captured_url; - ModelRegistryClient client("eastus", fl::test::NullLog(), + ModelRegistryClient client("centralus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [&captured_url](const std::string& url) { captured_url = url; @@ -327,20 +327,20 @@ TEST(ModelRegistryClientTest, Region_PerCallOverridesDefault) { client.ResolveModelContainer("azureml://test", "westus2"); EXPECT_TRUE(captured_url.find("westus2.api.azureml.ms") != std::string::npos) << "Expected per-call region to target westus2. Got: " << captured_url; - EXPECT_TRUE(captured_url.find("eastus.api.azureml.ms") == std::string::npos) - << "Expected per-call region to override the eastus default. Got: " << captured_url; + EXPECT_TRUE(captured_url.find("centralus.api.azureml.ms") == std::string::npos) + << "Expected per-call region to override the centralus default. Got: " << captured_url; } TEST(ModelRegistryClientTest, Region_EmptyPerCallUsesDefault) { std::string captured_url; - ModelRegistryClient client("eastus", fl::test::NullLog(), + ModelRegistryClient client("centralus", fl::test::NullLog(), std::make_unique(fl::test::NullLog(), false), [&captured_url](const std::string& url) { captured_url = url; return MakeRegistryResponse(R"({"blobSasUri": "https://example.com/blob"})"); }); client.ResolveModelContainer("azureml://test", ""); - EXPECT_TRUE(captured_url.find("eastus.api.azureml.ms") != std::string::npos) + EXPECT_TRUE(captured_url.find("centralus.api.azureml.ms") != std::string::npos) << "Expected empty per-call region to fall back to the default. Got: " << captured_url; } diff --git a/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc b/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc index bbd0b0812..559e14cd1 100644 --- a/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc +++ b/sdk_v2/cpp/test/sdk_api/catalog_live_test.cc @@ -33,8 +33,8 @@ namespace fs = std::filesystem; // The live catalog endpoint and an explicit region. Setting the region exercises the public // Configuration::SetCatalogRegion() override path; it matches the URL template so routing stays // consistent. -constexpr const char* kLiveCatalogUrl = "https://ai.azure.com/api/eastus/ux/v1.0"; -constexpr const char* kLiveCatalogRegion = "eastus"; +constexpr const char* kLiveCatalogUrl = "https://ai.azure.com/api/centralus/ux/v1.0"; +constexpr const char* kLiveCatalogRegion = "centralus"; // A small model the repo already standardizes on (see SharedTestEnv). Used by the download test. constexpr const char* kSmallModelAlias = "qwen2.5-0.5b"; diff --git a/sdk_v2/cpp/test/sdk_api/shared_test_env.h b/sdk_v2/cpp/test/sdk_api/shared_test_env.h index 94375eaa2..482d3c76f 100644 --- a/sdk_v2/cpp/test/sdk_api/shared_test_env.h +++ b/sdk_v2/cpp/test/sdk_api/shared_test_env.h @@ -278,7 +278,7 @@ class SharedTestEnv : public ::testing::Environment { // surface during test runs and end up in the rotating log file. config.SetDefaultLogLevel(FOUNDRY_LOCAL_LOG_INFO); - config.AddCatalogUrl("https://ai.azure.com/api/eastus/ux/v1.0"); + config.AddCatalogUrl("https://ai.azure.com/api/centralus/ux/v1.0"); // Point the model cache at the shared test data directory when available. auto cache_dir = fl::test::SafeGetEnv("FOUNDRY_TEST_DATA_DIR"); diff --git a/sdk_v2/cs/src/Configuration.cs b/sdk_v2/cs/src/Configuration.cs index 57cfe8833..83f8cac28 100644 --- a/sdk_v2/cs/src/Configuration.cs +++ b/sdk_v2/cs/src/Configuration.cs @@ -53,7 +53,7 @@ public class Configuration /// /// Optional. Azure region for the model registry download endpoint /// (https://{region}.api.azureml.ms/modelregistry/...). - /// Defaults to "eastus" when not set. + /// Defaults to "centralus" when not set. /// public string? CatalogRegion { get; init; } From 859d927283a097be79f8b532a2c0263b02cc5360 Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Tue, 16 Jun 2026 22:23:25 -0700 Subject: [PATCH 10/20] Address pull-request review comments --- sdk_v2/cpp/src/http/http_client.h | 2 +- sdk_v2/cpp/src/manager.cc | 13 ++++++------- sdk_v2/cpp/src/util/region_fallback.cc | 2 +- .../test/internal_api/region_fallback_test.cc | 19 ++++++++++--------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/sdk_v2/cpp/src/http/http_client.h b/sdk_v2/cpp/src/http/http_client.h index f1dacfcb7..5bdcc64da 100644 --- a/sdk_v2/cpp/src/http/http_client.h +++ b/sdk_v2/cpp/src/http/http_client.h @@ -84,7 +84,7 @@ struct RetryConfig { /// Execute `op` up to (config.max_retries + 1) times. Between attempts, sleep for /// `base_delay * 2^attempt + rand(0..base_delay)`, capped so that total elapsed time stays /// inside `max_total`. On Success returns `body`. On exhausted retries or FailPermanent -/// throws fl::Exception with FOUNDRY_LOCAL_ERROR_INTERNAL. +/// throws fl::Exception with FOUNDRY_LOCAL_ERROR_NETWORK. /// /// `sleep_fn` is injected for tests so they don't block on real wall-clock delays. std::string RetryWithBackoff(const std::function& op, diff --git a/sdk_v2/cpp/src/manager.cc b/sdk_v2/cpp/src/manager.cc index 8d7e9753c..464b63a9d 100644 --- a/sdk_v2/cpp/src/manager.cc +++ b/sdk_v2/cpp/src/manager.cc @@ -47,19 +47,18 @@ namespace { std::atomic s_oga_logger{nullptr}; +bool IsTruthyConfigValue(const std::string& value) { + const auto lowered = ToLower(value); + return lowered == "true" || lowered == "1" || lowered == "yes"; +} + bool IsGenAIVerboseLoggingEnabled() { auto env = Utils::GetEnv("ORTGENAI_ORT_VERBOSE_LOGGING"); if (!env.has_value()) { return false; } - std::string lowered = ToLower(*env); - return lowered == "1" || lowered == "true"; -} - -bool IsTruthyConfigValue(const std::string& value) { - const auto lowered = ToLower(value); - return lowered == "true" || lowered == "1" || lowered == "yes"; + return IsTruthyConfigValue(*env); } bool IsAdditionalOptionEnabled(const Configuration& config, const std::string& option_name) { diff --git a/sdk_v2/cpp/src/util/region_fallback.cc b/sdk_v2/cpp/src/util/region_fallback.cc index 76d6a49aa..ee6e4d46d 100644 --- a/sdk_v2/cpp/src/util/region_fallback.cc +++ b/sdk_v2/cpp/src/util/region_fallback.cc @@ -208,7 +208,7 @@ FallbackResult RegionFallback::Execute(const std::string& start_region, const At DescribeStatus(response.status) + "); trying next candidate."); } - FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + FL_THROW(FOUNDRY_LOCAL_ERROR_NETWORK, "region fallback exhausted all " + std::to_string(chain.size()) + " candidate region(s): " + failure_summary); } diff --git a/sdk_v2/cpp/test/internal_api/region_fallback_test.cc b/sdk_v2/cpp/test/internal_api/region_fallback_test.cc index e7ec6809d..d649bf931 100644 --- a/sdk_v2/cpp/test/internal_api/region_fallback_test.cc +++ b/sdk_v2/cpp/test/internal_api/region_fallback_test.cc @@ -151,15 +151,16 @@ TEST(RegionFallbackTest, ExhaustingAllRegionsThrows) { RegionFallback fallback(logger, true, FirstPicker()); int calls = 0; - EXPECT_THROW( - { - fallback.Execute("eastus", - [&](const std::string&) { - ++calls; - return Resp(503); - }); - }, - fl::Exception); + try { + fallback.Execute("eastus", + [&](const std::string&) { + ++calls; + return Resp(503); + }); + FAIL() << "expected fl::Exception"; + } catch (const fl::Exception& e) { + EXPECT_EQ(e.code(), FOUNDRY_LOCAL_ERROR_NETWORK); + } EXPECT_GE(calls, 7) << "every candidate region should have been attempted"; } From 7a3d08900cbcf0bdc3bfe0dd4cfd570d1a5068fb Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:45:20 -0700 Subject: [PATCH 11/20] add a new test with empty alias and sort the results --- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 48 +++++++++++++ sdk_v2/cpp/test/internal_api/c_api_test.cc | 73 ++++++++++++++++++++ 2 files changed, 121 insertions(+) diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index ca830e2c7..2a9612f2c 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -87,6 +87,52 @@ bool CompareModelsForSort(const Model& m1, const Model& m2) { return created1 > created2; } +int CompareCaseInsensitive(const std::string& lhs, const std::string& rhs) { + const size_t common = std::min(lhs.size(), rhs.size()); + for (size_t i = 0; i < common; ++i) { + const auto l = static_cast(lhs[i]); + const auto r = static_cast(rhs[i]); + const char l_lower = static_cast(std::tolower(l)); + const char r_lower = static_cast(std::tolower(r)); + if (l_lower < r_lower) { + return -1; + } + if (l_lower > r_lower) { + return 1; + } + } + + if (lhs.size() < rhs.size()) { + return -1; + } + if (lhs.size() > rhs.size()) { + return 1; + } + return 0; +} + +// Deterministic API output order: alias alpha, then name alpha, then version asc. +bool CompareModelPointersForVersionList(const Model* lhs, const Model* rhs) { + const auto& l = lhs->Info(); + const auto& r = rhs->Info(); + + const int alias_cmp = CompareCaseInsensitive(l.alias, r.alias); + if (alias_cmp != 0) { + return alias_cmp < 0; + } + + const int name_cmp = CompareCaseInsensitive(l.name, r.name); + if (name_cmp != 0) { + return name_cmp < 0; + } + + if (l.version != r.version) { + return l.version < r.version; + } + + return l.model_id < r.model_id; +} + } // anonymous namespace BaseModelCatalog::BaseModelCatalog(std::string name, ILogger& logger) @@ -511,6 +557,8 @@ ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_al } } + std::stable_sort(result.models.begin(), result.models.end(), CompareModelPointersForVersionList); + return result; } diff --git a/sdk_v2/cpp/test/internal_api/c_api_test.cc b/sdk_v2/cpp/test/internal_api/c_api_test.cc index 09482b507..f0dba7c7b 100644 --- a/sdk_v2/cpp/test/internal_api/c_api_test.cc +++ b/sdk_v2/cpp/test/internal_api/c_api_test.cc @@ -365,6 +365,79 @@ TEST(CApiTest, GetModelVersionsUnknownAliasReturnsEmptyList) { api->Manager_Release(mgr); } +TEST(CApiTest, DISABLED_GetAllVersionsNoAliasWithZeroMaxReturnsExhaustedPage) { + const flApi* api = GetApi(); + ASSERT_NE(api, nullptr); + const flCatalogApi* catalog_api = api->GetCatalogApi(); + const flModelApi* model_api = api->GetModelApi(); + + flConfiguration* config = CreateTestConfig(api); + ASSERT_NE(config, nullptr); + + flManager* mgr = nullptr; + flStatus* status = api->Manager_Create(config, &mgr); + if (!IsOk(status)) { + api->Status_Release(status); + api->GetConfigurationApi()->Configuration_Release(config); + GTEST_SKIP() << "Manager creation failed (catalog may be unreachable)"; + } + flCatalog* cat = nullptr; + ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); + + flModelList* models = nullptr; + ASSERT_FL_OK(api, catalog_api->GetModelVersions( + cat, + /*model_alias=*/nullptr, + /*variant_name=*/nullptr, + /*max_versions=*/0, + /*continuation_token=*/nullptr, + &models)); + ASSERT_NE(models, nullptr); + + const size_t count = api->ModelList_Size(models); + if (count == 0) { + api->ModelList_Release(models); + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); + GTEST_SKIP() << "Catalog returned no versions for no-alias query"; + } + + std::cout << "[ ] GetModelVersions(no alias, max_versions=0) returned " << count + << " variant(s):\n"; + + // Unbounded query (max_versions=0) should return one fully exhausted page. + const char* next = api->ModelList_GetContinuationToken(models); + EXPECT_TRUE(next == nullptr || std::strlen(next) == 0u) + << "Expected no continuation token for unbounded no-alias query"; + + // Spot-check basic model metadata on the returned set. + for (size_t i = 0; i < count; ++i) { + flModel* model = api->ModelList_GetAt(models, i); + ASSERT_NE(model, nullptr); + + const flModelInfo* info = nullptr; + ASSERT_FL_OK(api, model_api->GetInfo(model, &info)); + ASSERT_NE(info, nullptr); + + const char* model_id = model_api->Info_GetId(info); + ASSERT_NE(model_id, nullptr); + EXPECT_GT(std::strlen(model_id), 0u); + + const char* alias = model_api->Info_GetAlias(info); + ASSERT_NE(alias, nullptr); + EXPECT_GT(std::strlen(alias), 0u); + + std::cout << "[" << i << "] alias='" << alias << "' model_id='" << model_id + << "' version=" << model_api->Info_GetVersion(info) << "\n"; + + EXPECT_GT(model_api->Info_GetVersion(info), 0); + } + + api->ModelList_Release(models); + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); +} + TEST(CApiTest, GetModelVersionsForPhi3ReturnsAllVersions) { // The canonical phi-3 family alias in the live Azure catalog is "phi-3-mini-4k", which is published // with multiple versions (e.g. generic-gpu:2, generic-cpu:3). FetchAllVersionsByAlias drops the From 2a37f6510501127db5c59d076b3d56c253baee9e Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Mon, 22 Jun 2026 23:28:01 -0700 Subject: [PATCH 12/20] Resolve all the comments --- .../include/foundry_local/foundry_local_c.h | 23 +- .../include/foundry_local/foundry_local_cpp.h | 22 +- .../foundry_local/foundry_local_cpp.inline.h | 6 +- sdk_v2/cpp/src/c_api.cc | 19 +- sdk_v2/cpp/src/catalog.h | 20 +- .../cpp/src/catalog/azure_catalog_client.cc | 210 +++--------------- sdk_v2/cpp/src/catalog/azure_catalog_client.h | 16 +- sdk_v2/cpp/src/catalog/azure_model_catalog.cc | 22 +- sdk_v2/cpp/src/catalog/azure_model_catalog.h | 3 +- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 42 +++- sdk_v2/cpp/src/catalog/base_model_catalog.h | 17 +- sdk_v2/cpp/src/catalog/catalog_client.h | 28 +-- sdk_v2/cpp/test/internal_api/c_api_test.cc | 162 ++++++-------- .../internal_api/web_service_test_helpers.h | 3 +- 14 files changed, 195 insertions(+), 398 deletions(-) diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h index 35355f029..5e527f766 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h @@ -601,8 +601,6 @@ typedef struct flApi { /// is owned by the list and remains valid until the list is released. NULL /// when no continuation token was set (e.g. the list came from GetModels(), /// or GetModelVersions has walked the underlying source to exhaustion). - /// Callers can pass the returned string back as `continuation_token` to - /// resume pagination. const char* FL_API_T(ModelList_GetContinuationToken, _In_ const flModelList* models); /* EP detection */ @@ -877,21 +875,16 @@ struct flCatalogApi { FL_API_STATUS(GetCachedModels, _In_ const flCatalog* catalog, _Outptr_ flModelList** out_models); FL_API_STATUS(GetLoadedModels, _In_ const flCatalog* catalog, _Outptr_ flModelList** out_models); - /// Get all versions of a model, optionally narrowed to a specific variant. - /// @param model_alias Alias of the model (e.g. "phi-4-mini"). May be NULL to return - /// all versions of all models (subject to device/EP filtering). - /// @param variant_name Optional variant name (e.g. "Phi-4-generic-gpu"). NULL returns - /// every variant. - /// @param max_versions Soft upper bound on the number of variants returned. - /// Pass 0 (or any negative value) for no cap. - /// @param continuation_token Opaque cursor returned by a previous call used to resume - /// pagination from the underlying catalog source. NULL or empty starts from - /// the beginning. Implementations that do not paginate ignore this argument. + /// Get all versions of a model alias, optionally narrowed to a specific model name. + /// @param model_alias Alias of the model (e.g. "phi-4-mini"). Must be non-NULL and non-empty. + /// @param model_name Optional model name (ModelInfo.Name, e.g. "Phi-4-generic-gpu"). NULL returns + /// every model name. + /// @param max_versions Select latest X versions per model name. Pass 0 (or any + /// negative value) for no per-model-name cap. /// Returned list contains existing flModel handles owned by the catalog; releasing /// the list does not invalidate the underlying model handles. - FL_API_STATUS(GetModelVersions, _In_ const flCatalog* catalog, _In_opt_ const char* model_alias, - _In_opt_ const char* variant_name, int32_t max_versions, - _In_opt_ const char* continuation_token, _Outptr_ flModelList** out_models); + FL_API_STATUS(GetModelVersions, _In_ const flCatalog* catalog, _In_ const char* model_alias, + _In_opt_ const char* model_name, int32_t max_versions, _Outptr_ flModelList** out_models); // End V1 }; diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h index 2764852ac..6c656654e 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h @@ -710,9 +710,9 @@ class ModelList { auto begin() const noexcept { return models_.begin(); } auto end() const noexcept { return models_.end(); } - /// Continuation token for paginated queries (e.g. `Catalog::GetModelVersions`). + /// Continuation token for paginated queries. /// Empty when no further pages are available, or when this list did not come - /// from a paginated query. Pass back as `continuation_token` to resume. + /// from a paginated query. std::string_view NextContinuationToken() const noexcept { return next_continuation_token_; } private: @@ -736,17 +736,14 @@ class ICatalog { virtual std::unique_ptr GetModelVariant(const std::string& model_id) const = 0; virtual std::unique_ptr GetLatestVersion(const IModel& model) const = 0; - /// Get all versions of a model. `model_alias` may be empty to return all - /// versioned models. `variant_name` optionally narrows the result to a - /// single variant; empty returns every variant. `max_versions` caps the - /// number of variants returned (defaults to 50, matching the web service - /// contract); pass 0 or a negative value for no cap. `continuation_token` - /// is an opaque cursor returned by a previous call used to resume pagination - /// from the underlying source; empty starts from the beginning. + /// Get all versions of a model alias. `model_alias` must be non-empty. + /// `variant_name` optionally narrows the result to a single variant; empty + /// returns every variant. `max_versions` selects the latest X versions per + /// variant name (defaults to 50, matching the web service contract); pass 0 + /// or a negative value for no per-variant cap. virtual ModelList GetModelVersions(const std::string& model_alias, const std::string& variant_name = {}, - int max_versions = 50, - const std::string& continuation_token = {}) = 0; + int max_versions = 50) = 0; }; // =========================================================================== @@ -771,8 +768,7 @@ class Catalog final : public ICatalog { std::unique_ptr GetLatestVersion(const IModel& model) const override; ModelList GetModelVersions(const std::string& model_alias, const std::string& variant_name = {}, - int max_versions = 50, - const std::string& continuation_token = {}) override; + int max_versions = 50) override; private: detail::Base handle_; diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h index b3dd1b1a3..71041dfc6 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h @@ -616,15 +616,13 @@ inline std::unique_ptr Catalog::GetLatestVersion(const IModel& model) co inline ModelList Catalog::GetModelVersions(const std::string& model_alias, const std::string& variant_name, - int max_versions, - const std::string& continuation_token) { + int max_versions) { flModelList* models = nullptr; Check(detail::catalog_api()->GetModelVersions( handle_.get(), - model_alias.empty() ? nullptr : model_alias.c_str(), + model_alias.c_str(), variant_name.empty() ? nullptr : variant_name.c_str(), max_versions, - continuation_token.empty() ? nullptr : continuation_token.c_str(), &models)); return ModelList(*models); } diff --git a/sdk_v2/cpp/src/c_api.cc b/sdk_v2/cpp/src/c_api.cc index 7936c06a3..34bd52f1e 100644 --- a/sdk_v2/cpp/src/c_api.cc +++ b/sdk_v2/cpp/src/c_api.cc @@ -694,26 +694,27 @@ FL_API_STATUS_IMPL(Catalog_GetNameImpl, const flCatalog* catalog, const char** o } FL_API_STATUS_IMPL(Catalog_GetModelVersionsImpl, const flCatalog* catalog, - const char* model_alias, const char* variant_name, - int32_t max_versions, const char* continuation_token, - flModelList** out_models) { + const char* model_alias, const char* model_name, + int32_t max_versions, flModelList** out_models) { API_IMPL_BEGIN - if (!catalog || !out_models) { + if (!catalog || !model_alias || !out_models) { return MakeStatus(FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT, "null argument"); } - std::string alias = model_alias ? model_alias : std::string{}; - std::string variant = variant_name ? variant_name : std::string{}; - std::string token = continuation_token ? continuation_token : std::string{}; + if (*model_alias == '\0') { + return MakeStatus(FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT, "model_alias must not be empty"); + } + + std::string alias = model_alias; + std::string model_name_filter = model_name ? model_name : std::string{}; - auto page = catalog->impl.GetModelVersions(alias, variant, max_versions, token); + auto page = catalog->impl.GetModelVersions(alias, model_name_filter, max_versions); auto list = std::make_unique(); list->items.reserve(page.models.size()); for (auto* m : page.models) { list->items.push_back(AsHandle(m)); } - list->next_continuation_token = std::move(page.next_continuation_token); *out_models = list.release(); return nullptr; diff --git a/sdk_v2/cpp/src/catalog.h b/sdk_v2/cpp/src/catalog.h index 41564b5fa..a07681df3 100644 --- a/sdk_v2/cpp/src/catalog.h +++ b/sdk_v2/cpp/src/catalog.h @@ -9,12 +9,9 @@ namespace fl { -/// One page of model variants returned by `ICatalog::GetModelVersions`. -/// `next_continuation_token` is empty when there are no more pages; otherwise -/// callers pass it back to retrieve the next page. +/// Model variants returned by `ICatalog::GetModelVersions`. struct ModelVersionsPage { std::vector models; - std::string next_continuation_token; }; /// Abstract catalog interface for querying available models. @@ -45,22 +42,17 @@ class ICatalog { /// integrated into the catalog's storage so the returned pointers remain /// valid for the lifetime of the catalog. /// - /// `model_alias` is the alias of the model (e.g. "phi-4-mini"). When empty, - /// implementations may return all versioned models from the underlying - /// source (still subject to device/EP filtering). + /// `model_alias` is the alias of the model (e.g. "phi-4-mini") and must not + /// be empty. /// `variant_name` optionally narrows results to a specific variant (e.g. /// "Phi-4-generic-gpu"). Pass an empty string to return every variant. - /// `max_versions` caps the number of variants returned; 0 or negative means - /// no cap. - /// `continuation_token` is an opaque cursor returned by a previous call to - /// resume pagination from the underlying source. Empty starts from the - /// beginning. Implementations that do not paginate ignore it. + /// `max_versions` selects the latest X versions per variant name for the + /// alias. 0 or negative means no per-variant cap. /// /// Maps to C# `IModelCatalog.GetModelVersionsAsync`. virtual ModelVersionsPage GetModelVersions(const std::string& model_alias, const std::string& variant_name, - int max_versions = 0, - const std::string& continuation_token = {}) = 0; + int max_versions = 0) = 0; /// Lists only models that are cached locally. virtual std::vector GetCachedModels() const = 0; diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc index 0e57fd3b5..7bd00222d 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -5,7 +5,6 @@ #include "http/http_client.h" #include "utils.h" -#include #include #include @@ -187,45 +186,34 @@ std::vector ToModelInfos(const std::vector& raw_mo return infos; } -std::vector> BuildSearchFilters(const IEpDetector& ep_detector, - const std::vector& model_filter) { - std::vector> filter_sets; - - // One filter set per detected device. The catalog API matches on the - // (device, execution provider) pair, so we keep the EPs grouped by device. - for (const auto& [device, eps] : ep_detector.GetAvailableDevicesToEPs()) { - std::vector filters; - filters.push_back(MakeFilter("type", {"models"})); - filters.push_back(MakeFilter("kind", {"Versioned"})); - filters.push_back(MakeFilter("labels", {"latest"})); - filters.push_back(MakeFilter("annotations/tags/foundryLocal", model_filter)); - filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/device", {ToLower(device)})); - filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/executionProvider", eps)); - filter_sets.push_back(std::move(filters)); - } - - return filter_sets; -} - -/// Build per-device filter sets for an all-versions query. -/// Same shape as `BuildSearchFilters` minus the `labels=latest` filter -/// (so older versions are included). When `model_alias` is non-empty an -/// `annotations/tags/alias` filter scopes the result to that one alias; when -/// empty, no alias filter is added and every versioned model the local hardware -/// can run is returned across all its versions. -std::vector> BuildAllVersionsFilters(const IEpDetector& ep_detector, - const std::vector& model_filter, - const std::string& model_alias) { +/// Build per-device filter sets for catalog queries. +/// `latest_only` controls whether to include the `labels=latest` filter (default true for latest models). +/// `model_alias` scopes results to a specific alias when non-empty; when empty, no alias filter is applied. +/// `model_name` scopes results to a specific model name when non-empty for server-side filtering. +/// Each filter set queries for variants on a specific device/EP pair; the catalog API matches on the +/// (device, execution provider) pair. +std::vector> BuildSearchFilters( + const IEpDetector& ep_detector, + const std::vector& model_filter, + bool latest_only = true, + const std::string& model_alias = "", + const std::string& model_name = "") { std::vector> filter_sets; for (const auto& [device, eps] : ep_detector.GetAvailableDevicesToEPs()) { std::vector filters; filters.push_back(MakeFilter("type", {"models"})); filters.push_back(MakeFilter("kind", {"Versioned"})); + if (latest_only) { + filters.push_back(MakeFilter("labels", {"latest"})); + } filters.push_back(MakeFilter("annotations/tags/foundryLocal", model_filter)); if (!model_alias.empty()) { filters.push_back(MakeFilter("annotations/tags/alias", {model_alias})); } + if (!model_name.empty()) { + filters.push_back(MakeFilter("properties/name", {model_name})); + } filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/device", {ToLower(device)})); filters.push_back(MakeFilter("properties/variantInfo/variantMetadata/executionProvider", eps)); filter_sets.push_back(std::move(filters)); @@ -233,6 +221,8 @@ std::vector> BuildAllVersionsFilters(const IEpDetecto return filter_sets; } + + std::vector BuildModelIdFilters(const std::vector& model_filter, const std::vector& model_ids) { // Looking up specific IDs: no labels=latest (we want exact versions) and no @@ -245,77 +235,6 @@ std::vector BuildModelIdFilters(const std::vector& m return filters; } -// ---- Continuation-token codec ---- -// -// Format: base64(JSON) of: -// {"v":1,"d":,"s":,"t":"","r":""} -// `d` is the index into the per-device filter sets where pagination resumes. -// `s` and `t` are the server's `skip` and `continuationToken` for the current -// filter set; either or both may be absent. `r` is the pinned region (empty -// when the first page hasn't run region fallback yet). -struct ContinuationState { - size_t device_idx = 0; - std::optional skip; - std::optional inner_token; - std::string region; // empty = not pinned yet -}; - -std::string EncodeContinuation(const ContinuationState& state) { - nlohmann::json j; - j["v"] = 1; - j["d"] = state.device_idx; - if (state.skip) { - j["s"] = *state.skip; - } else { - j["s"] = nullptr; - } - if (state.inner_token) { - j["t"] = *state.inner_token; - } else { - j["t"] = ""; - } - j["r"] = state.region; - const std::string payload = j.dump(); - std::vector bytes(payload.begin(), payload.end()); - return Azure::Core::Convert::Base64Encode(bytes); -} - -// Returns the decoded state, or nullopt if the token is malformed. -std::optional DecodeContinuation(const std::string& token) { - if (token.empty()) { - return std::nullopt; - } - std::vector bytes; - try { - bytes = Azure::Core::Convert::Base64Decode(token); - } catch (...) { - return std::nullopt; - } - std::string payload(bytes.begin(), bytes.end()); - nlohmann::json j; - try { - j = nlohmann::json::parse(payload); - } catch (...) { - return std::nullopt; - } - ContinuationState state; - if (j.contains("d") && j["d"].is_number_unsigned()) { - state.device_idx = j["d"].get(); - } - if (j.contains("s") && j["s"].is_number_integer()) { - state.skip = j["s"].get(); - } - if (j.contains("t") && j["t"].is_string()) { - auto t = j["t"].get(); - if (!t.empty()) { - state.inner_token = std::move(t); - } - } - if (j.contains("r") && j["r"].is_string()) { - state.region = j["r"].get(); - } - return state; -} } // namespace AzureCatalogClient::AzureCatalogClient(const std::string& base_url, @@ -406,6 +325,8 @@ AzureCatalogClient::FilterSetWalk AzureCatalogClient::FetchFilterSetWithState( return result; } } else if (regional) { + // Subsequent pages are pinned to the region that served page 1 — a filter set + // never mixes regions (continuation tokens are region-specific). response = http_post_response_(BuildRegionalUrl(url_prefix_, url_suffix_, *pinned_region), body); } else { response = http_post_response_(BuildRequestUrl(base_url_, regional, region_, url_prefix_, url_suffix_), body); @@ -507,86 +428,29 @@ std::vector AzureCatalogClient::FetchModelsByIds( return ToModelInfos(result.models, result.region); } -PagedModelInfos AzureCatalogClient::FetchAllVersionsByAlias(const std::string& model_alias, - int max_versions, - const std::string& continuation_token) { - // Empty alias → list every versioned model the local hardware can run, across - // all of their versions (i.e. `FetchAllModelInfos` minus the `labels=latest` - // filter). Non-empty alias → same query, scoped to that alias. - // - // Pagination model: each call walks one logical position in the upstream - // stream and returns up to `max_versions` items. The opaque - // `continuation_token` encodes which per-device filter set we're in plus the - // server's (skip, token, region) for that filter set. When `max_versions` - // is hit mid-set we emit a cursor to resume from the same position; when a - // set finishes naturally we either continue into the next set (if budget - // allows) or emit a cursor pointing to the start of the next set. - const auto filter_sets = BuildAllVersionsFilters(ep_detector_, model_filter_, model_alias); - - ContinuationState in_state; - if (!continuation_token.empty()) { - if (auto decoded = DecodeContinuation(continuation_token)) { - in_state = std::move(*decoded); - } else { - logger_.Log(LogLevel::Warning, "catalog: ignoring malformed continuation token; restarting from the beginning."); - } - } - - size_t device_idx = in_state.device_idx; - std::optional skip = in_state.skip; - std::optional inner_token = in_state.inner_token; - std::string region_in = in_state.region; +std::vector AzureCatalogClient::FetchAllVersionsByAlias( + const std::string& model_alias, + const std::string& model_name, + int /*max_versions*/) { + // Fetch all versions of the alias across per-device filter sets. Each filter set + // queries for variants matching the alias on a specific device/EP pair; the results + // are aggregated. The caller applies per-variant version caps (latest X per variant). + const auto filter_sets = BuildSearchFilters(ep_detector_, model_filter_, /*latest_only=*/false, + model_alias, model_name); - PagedModelInfos result; - const int cap = max_versions > 0 ? max_versions : 0; // 0 = unbounded - - while (device_idx < filter_sets.size()) { - if (cap > 0 && static_cast(result.models.size()) >= cap) { - break; - } + std::vector result; - const int remaining = (cap > 0) ? cap - static_cast(result.models.size()) : 0; - auto walk = FetchFilterSetWithState(filter_sets[device_idx], skip, inner_token, region_in, remaining); + for (const auto& filters : filter_sets) { + auto walk = FetchFilterSetWithState(filters, std::nullopt, std::nullopt, std::string{}, /*max_count=*/0); if (walk.aborted) { - // Skip this filter set entirely; reset state and advance. - ++device_idx; - skip.reset(); - inner_token.reset(); - region_in.clear(); continue; } auto batch = ToModelInfos(walk.models, walk.region); - result.models.insert(result.models.end(), - std::make_move_iterator(batch.begin()), - std::make_move_iterator(batch.end())); - - if (!walk.done) { - // Cap was reached mid-filter-set; emit cursor pointing here. - ContinuationState out; - out.device_idx = device_idx; - out.skip = walk.next_skip; - out.inner_token = walk.next_inner_token; - out.region = walk.region; - result.next_continuation_token = EncodeContinuation(out); - return result; - } - - // Set complete; advance to the next. - ++device_idx; - skip.reset(); - inner_token.reset(); - region_in.clear(); - } - - // Loop exited because either (a) cap was reached on a filter-set boundary, or - // (b) we walked every filter set. If filter sets remain, encode a cursor that - // resumes at the start of the next set so the caller sees a stable page size. - if (cap > 0 && static_cast(result.models.size()) >= cap && device_idx < filter_sets.size()) { - ContinuationState out; - out.device_idx = device_idx; - result.next_continuation_token = EncodeContinuation(out); + result.insert(result.end(), + std::make_move_iterator(batch.begin()), + std::make_move_iterator(batch.end())); } return result; diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.h b/sdk_v2/cpp/src/catalog/azure_catalog_client.h index 495e6ac62..4ac1bc6e3 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.h +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.h @@ -54,16 +54,12 @@ class AzureCatalogClient : public ICatalogClient { /// Fetch every version of `model_alias` from the live catalog by issuing the /// per-device search with `labels=latest` removed and an alias filter added. - /// When `model_alias` is empty the alias filter is also omitted, so this - /// returns every versioned model the local hardware can run, across all of - /// their versions. - /// Honours `max_versions` as a soft upper bound and `continuation_token` as - /// an opaque cursor. Each call returns up to `max_versions` items from a - /// single logical position in the upstream stream; a non-empty - /// `next_continuation_token` is set when more data is available. - PagedModelInfos FetchAllVersionsByAlias(const std::string& model_alias, - int max_versions = 0, - const std::string& continuation_token = {}) override; + /// `model_alias` must be non-empty. Optionally filters by `model_name`. + /// The client fetches all matching versions, while the caller applies + /// `max_versions` semantics (latest X per variant). + std::vector FetchAllVersionsByAlias(const std::string& model_alias, + const std::string& model_name = "", + int max_versions = 0) override; private: /// Per-page result of walking one filter set with explicit pagination state. diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc index ca1ae9638..511af9ad5 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc @@ -161,8 +161,7 @@ std::vector>> EnumerateEndpoin BaseModelCatalog::FetchedModelVersions AzureModelCatalog::FetchModelVersions( const std::string& model_alias, - int max_versions, - const std::string& continuation_token) const { + const std::string& model_name) const { FetchedModelVersions out; if (cache_only_) { // In cache-only mode we have no remote source to query for older versions. @@ -176,18 +175,14 @@ BaseModelCatalog::FetchedModelVersions AzureModelCatalog::FetchModelVersions( const auto endpoints = EnumerateEndpoints(catalog_urls_, kDefaultCatalogUrl, kDefaultCatalogFilter); - // Pagination cursors are scoped to a single underlying client. When multiple - // endpoints are configured we surface only the first endpoint's token so the - // caller's resume call lands back on the same source. Endpoints past that - // are walked unbounded on each call (this is an uncommon test-only setup). for (const auto& [url, filter] : endpoints) { try { auto client = MakeCatalogClient(url, filter.value_or(""), ep_detector_, logger_, cache_dir_, catalog_region_, disable_region_fallback_); - auto page = client->FetchAllVersionsByAlias(model_alias, max_versions, continuation_token); + auto model_infos = client->FetchAllVersionsByAlias(model_alias, model_name); - out.models.reserve(out.models.size() + page.models.size()); - for (auto& info : page.models) { + out.models.reserve(out.models.size() + model_infos.size()); + for (auto& info : model_infos) { std::string local_path; auto it = local_models.find(info.model_id); if (it != local_models.end()) { @@ -196,10 +191,6 @@ BaseModelCatalog::FetchedModelVersions AzureModelCatalog::FetchModelVersions( out.models.push_back(model_factory_(std::move(info), std::move(local_path))); } - - if (out.next_continuation_token.empty() && !page.next_continuation_token.empty()) { - out.next_continuation_token = std::move(page.next_continuation_token); - } } catch (const std::exception& ex) { logger_.Log(LogLevel::Error, fmt::format("FetchModelVersions: failed to query {} — {}", url, ex.what())); @@ -207,9 +198,8 @@ BaseModelCatalog::FetchedModelVersions AzureModelCatalog::FetchModelVersions( } logger_.Log(LogLevel::Information, - fmt::format("FetchModelVersions('{}') returned {} variant(s){}.", - model_alias, out.models.size(), - out.next_continuation_token.empty() ? "" : " (more pages available)")); + fmt::format("FetchModelVersions('{}') returned {} variant(s).", + model_alias, out.models.size())); return out; } diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.h b/sdk_v2/cpp/src/catalog/azure_model_catalog.h index 32f8382ca..d47f18c56 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.h @@ -34,8 +34,7 @@ class AzureModelCatalog : public BaseModelCatalog { protected: std::vector FetchModels() const override; FetchedModelVersions FetchModelVersions(const std::string& model_alias, - int max_versions, - const std::string& continuation_token) const override; + const std::string& model_name = "") const override; std::vector FetchModelsByIds(const std::vector& model_ids) const override; private: diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index 2a9612f2c..8654c9a45 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -4,11 +4,14 @@ #include +#include "exception.h" + #include #include #include #include #include +#include #include namespace fl { @@ -495,15 +498,18 @@ std::vector BaseModelCatalog::GetLoadedModels() const { ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_alias, const std::string& variant_name, - int max_versions, - const std::string& continuation_token) { + int max_versions) { + if (model_alias.empty()) { + FL_THROW(FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT, "GetModelVersions requires a non-empty model_alias."); + } + // Make sure the regular "latest only" catalog is populated first so the // existing alias container exists to merge into. EnsurePopulated(); FetchedModelVersions fetched; try { - fetched = FetchModelVersions(model_alias, max_versions, continuation_token); + fetched = FetchModelVersions(model_alias, variant_name); // variant_name is used as model_name filter } catch (const std::exception& ex) { logger_.Log(LogLevel::Warning, fmt::format("GetModelVersions: fetch for alias '{}' failed — {}", @@ -530,13 +536,9 @@ ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_al } ModelVersionsPage result; - result.next_continuation_token = std::move(fetched.next_continuation_token); auto idx = GetIndex(); for (const auto& id : fetched_ids) { - if (max_versions > 0 && result.models.size() >= static_cast(max_versions)) { - break; - } auto id_it = idx->id_index.find(id); if (id_it == idx->id_index.end()) { continue; @@ -548,8 +550,8 @@ ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_al result.models.push_back(variant); } - if (!model_alias.empty() && fetched_ids.empty() && result.next_continuation_token.empty()) { - // Source returned nothing AND no more pages — log when the alias was unknown. + if (fetched_ids.empty()) { + // Source returned nothing — log when the alias was unknown. auto alias_it = idx->alias_index.find(model_alias); if (alias_it == idx->alias_index.end()) { logger_.Log(LogLevel::Information, @@ -557,6 +559,28 @@ ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_al } } + if (max_versions > 0 && !result.models.empty()) { + // Enforce latest X per variant name by scanning the sorted list from the + // back (highest version first within each variant group). + std::unordered_map selected_per_variant; + std::vector limited; + limited.reserve(result.models.size()); + + for (auto it = result.models.rbegin(); it != result.models.rend(); ++it) { + Model* model = *it; + const std::string& variant = model->Info().name; + int& count = selected_per_variant[variant]; + if (count >= max_versions) { + continue; + } + + ++count; + limited.push_back(model); + } + + result.models.assign(limited.rbegin(), limited.rend()); + } + std::stable_sort(result.models.begin(), result.models.end(), CompareModelPointersForVersionList); return result; diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.h b/sdk_v2/cpp/src/catalog/base_model_catalog.h index 013acc636..40934882d 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.h @@ -40,8 +40,7 @@ class BaseModelCatalog : public ICatalog { std::vector GetLoadedModels() const override; ModelVersionsPage GetModelVersions(const std::string& model_alias, const std::string& variant_name, - int max_versions = 0, - const std::string& continuation_token = {}) override; + int max_versions = 0) override; void InvalidateCache() override; protected: @@ -53,22 +52,16 @@ class BaseModelCatalog : public ICatalog { /// Derived classes implement this to fetch all versions of a model from the /// underlying catalog source, bypassing the "latest only" filter. /// Returns the variants (in any order; the base class sorts/indexes them) - /// plus a `next_continuation_token` that resumes pagination on the next call - /// (empty when the underlying source has no more data). - /// `max_versions` is a soft upper bound (0 or negative = no cap); the base - /// class also caps the final result. `continuation_token` is forwarded - /// straight from the public API and is ignored by sources that do not - /// paginate. + /// for the given alias. /// Default implementation returns `{}` (no remote source — local-only catalogs). /// Maps to C# `BaseModelCatalog.GetModelVersionsAsync` -> derived overrides. struct FetchedModelVersions { std::vector models; - std::string next_continuation_token; }; - virtual FetchedModelVersions FetchModelVersions(const std::string& /*model_alias*/, - int /*max_versions*/, - const std::string& /*continuation_token*/) const { + virtual FetchedModelVersions FetchModelVersions( + const std::string& /*model_alias*/, + const std::string& /*model_name*/ = "") const { return {}; } diff --git a/sdk_v2/cpp/src/catalog/catalog_client.h b/sdk_v2/cpp/src/catalog/catalog_client.h index de67aec9d..e3afcfe78 100644 --- a/sdk_v2/cpp/src/catalog/catalog_client.h +++ b/sdk_v2/cpp/src/catalog/catalog_client.h @@ -12,13 +12,6 @@ namespace fl { -/// One page of model infos returned by `ICatalogClient::FetchAllVersionsByAlias`. -/// `next_continuation_token` is empty when the underlying source is exhausted; -/// otherwise callers pass it back to retrieve the next page. -struct PagedModelInfos { - std::vector models; - std::string next_continuation_token; -}; /// Abstract catalog client. Implemented by the live Azure catalog client, /// which queries the Azure Foundry catalog REST API. class ICatalogClient { @@ -39,22 +32,19 @@ class ICatalogClient { /// filter that `FetchAllModelInfos` applies. Maps to C# /// `IAzureFoundryApiService.FetchAllModelVersionsAsync`. /// - /// `model_alias` is optional — when empty, implementations may return all - /// available versioned models (still subject to device/EP filtering). - /// `max_versions` is a soft upper bound on the number of variants to return - /// (0 or negative = no cap). `continuation_token` is an opaque cursor from a - /// previous call used to resume pagination; empty starts from the beginning. - /// On return, `PagedModelInfos::next_continuation_token` is set when more - /// data is available; an empty value means the underlying source has been - /// fully walked. Implementations that cannot list older versions return - /// whatever they have locally with an empty token. + /// `model_alias` must be non-empty. + /// `model_name` optionally filters by variant name (default empty = no filter). + /// `max_versions` is applied per variant name (latest X per variant; + /// 0 or negative = no cap). + /// Implementations that cannot list older versions return whatever they have + /// locally. /// /// Provided with a default `{}` body so an implementation that has not yet /// overridden it still compiles. - virtual PagedModelInfos FetchAllVersionsByAlias( + virtual std::vector FetchAllVersionsByAlias( const std::string& /*model_alias*/, - int /*max_versions*/ = 0, - const std::string& /*continuation_token*/ = {}) { + const std::string& /*model_name*/ = "", + int /*max_versions*/ = 0) { return {}; } }; diff --git a/sdk_v2/cpp/test/internal_api/c_api_test.cc b/sdk_v2/cpp/test/internal_api/c_api_test.cc index f0dba7c7b..2a80e1105 100644 --- a/sdk_v2/cpp/test/internal_api/c_api_test.cc +++ b/sdk_v2/cpp/test/internal_api/c_api_test.cc @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -308,7 +309,7 @@ TEST(CApiTest, GetModelVersionsNullCatalogFails) { const flCatalogApi* catalog_api = api->GetCatalogApi(); flModelList* models = nullptr; - flStatus* status = catalog_api->GetModelVersions(nullptr, "alias", nullptr, 0, nullptr, &models); + flStatus* status = catalog_api->GetModelVersions(nullptr, "alias", nullptr, 0, &models); ASSERT_NE(status, nullptr); EXPECT_EQ(api->Status_GetErrorCode(status), FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT); api->Status_Release(status); @@ -327,7 +328,7 @@ TEST(CApiTest, GetModelVersionsNullOutputFails) { flCatalog* cat = nullptr; ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); - flStatus* status = catalog_api->GetModelVersions(cat, "alias", nullptr, 0, nullptr, nullptr); + flStatus* status = catalog_api->GetModelVersions(cat, "alias", nullptr, 0, nullptr); ASSERT_NE(status, nullptr); EXPECT_EQ(api->Status_GetErrorCode(status), FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT); api->Status_Release(status); @@ -356,7 +357,7 @@ TEST(CApiTest, GetModelVersionsUnknownAliasReturnsEmptyList) { ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); flModelList* models = nullptr; - ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, "definitely-not-a-real-alias", nullptr, 0, nullptr, &models)); + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, "definitely-not-a-real-alias", nullptr, 0, &models)); ASSERT_NE(models, nullptr); EXPECT_EQ(api->ModelList_Size(models), 0u); api->ModelList_Release(models); @@ -365,11 +366,10 @@ TEST(CApiTest, GetModelVersionsUnknownAliasReturnsEmptyList) { api->Manager_Release(mgr); } -TEST(CApiTest, DISABLED_GetAllVersionsNoAliasWithZeroMaxReturnsExhaustedPage) { +TEST(CApiTest, GetModelVersionsEmptyAliasFails) { const flApi* api = GetApi(); ASSERT_NE(api, nullptr); const flCatalogApi* catalog_api = api->GetCatalogApi(); - const flModelApi* model_api = api->GetModelApi(); flConfiguration* config = CreateTestConfig(api); ASSERT_NE(config, nullptr); @@ -385,55 +385,12 @@ TEST(CApiTest, DISABLED_GetAllVersionsNoAliasWithZeroMaxReturnsExhaustedPage) { ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); flModelList* models = nullptr; - ASSERT_FL_OK(api, catalog_api->GetModelVersions( - cat, - /*model_alias=*/nullptr, - /*variant_name=*/nullptr, - /*max_versions=*/0, - /*continuation_token=*/nullptr, - &models)); - ASSERT_NE(models, nullptr); - - const size_t count = api->ModelList_Size(models); - if (count == 0) { - api->ModelList_Release(models); - api->GetConfigurationApi()->Configuration_Release(config); - api->Manager_Release(mgr); - GTEST_SKIP() << "Catalog returned no versions for no-alias query"; - } - - std::cout << "[ ] GetModelVersions(no alias, max_versions=0) returned " << count - << " variant(s):\n"; - - // Unbounded query (max_versions=0) should return one fully exhausted page. - const char* next = api->ModelList_GetContinuationToken(models); - EXPECT_TRUE(next == nullptr || std::strlen(next) == 0u) - << "Expected no continuation token for unbounded no-alias query"; - - // Spot-check basic model metadata on the returned set. - for (size_t i = 0; i < count; ++i) { - flModel* model = api->ModelList_GetAt(models, i); - ASSERT_NE(model, nullptr); - - const flModelInfo* info = nullptr; - ASSERT_FL_OK(api, model_api->GetInfo(model, &info)); - ASSERT_NE(info, nullptr); - - const char* model_id = model_api->Info_GetId(info); - ASSERT_NE(model_id, nullptr); - EXPECT_GT(std::strlen(model_id), 0u); + flStatus* get_versions_status = catalog_api->GetModelVersions(cat, "", nullptr, 0, &models); + ASSERT_NE(get_versions_status, nullptr); + EXPECT_EQ(api->Status_GetErrorCode(get_versions_status), FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT); + api->Status_Release(get_versions_status); + EXPECT_EQ(models, nullptr); - const char* alias = model_api->Info_GetAlias(info); - ASSERT_NE(alias, nullptr); - EXPECT_GT(std::strlen(alias), 0u); - - std::cout << "[" << i << "] alias='" << alias << "' model_id='" << model_id - << "' version=" << model_api->Info_GetVersion(info) << "\n"; - - EXPECT_GT(model_api->Info_GetVersion(info), 0); - } - - api->ModelList_Release(models); api->GetConfigurationApi()->Configuration_Release(config); api->Manager_Release(mgr); } @@ -463,7 +420,7 @@ TEST(CApiTest, GetModelVersionsForPhi3ReturnsAllVersions) { constexpr const char* kPhi3Alias = "phi-3-mini-4k"; flModelList* models = nullptr; - ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, 0, nullptr, &models)); + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, 0, &models)); ASSERT_NE(models, nullptr); const size_t count = api->ModelList_Size(models); @@ -519,11 +476,9 @@ TEST(CApiTest, GetModelVersionsForPhi3ReturnsAllVersions) { api->Manager_Release(mgr); } -// Walk phi-3 versions one variant at a time using continuation tokens and verify -// the paginated walk returns exactly the same set as a single un-paginated call: -// every page respects max_versions, tokens chain to exhaustion, and there are no -// duplicates or gaps. -TEST(CApiTest, GetModelVersionsPaginatedMatchesUnpaginated) { +// Verify max_versions is applied per variant name by comparing an unbounded +// result against max_versions=1 for the same alias. +TEST(CApiTest, GetModelVersionsMaxVersionsIsPerVariant) { const flApi* api = GetApi(); ASSERT_NE(api, nullptr); const flCatalogApi* catalog_api = api->GetCatalogApi(); @@ -544,11 +499,13 @@ TEST(CApiTest, GetModelVersionsPaginatedMatchesUnpaginated) { constexpr const char* kPhi3Alias = "phi-3-mini-4k"; - // Reference: one un-paginated call (no cap, no token). + // Reference: one unbounded call. flModelList* baseline = nullptr; - ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, 0, nullptr, &baseline)); + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, 0, &baseline)); ASSERT_NE(baseline, nullptr); const size_t baseline_count = api->ModelList_Size(baseline); + std::cout << "[ ] Baseline GetModelVersions('" << kPhi3Alias + << "', max_versions=0) returned " << baseline_count << " variant(s):\n"; if (baseline_count == 0) { api->ModelList_Release(baseline); api->GetConfigurationApi()->Configuration_Release(config); @@ -556,54 +513,59 @@ TEST(CApiTest, GetModelVersionsPaginatedMatchesUnpaginated) { GTEST_SKIP() << "Catalog returned no variants for '" << kPhi3Alias << "'"; } - std::set baseline_ids; + std::map> baseline_versions_by_variant; for (size_t i = 0; i < baseline_count; ++i) { flModel* m = api->ModelList_GetAt(baseline, i); ASSERT_NE(m, nullptr); const flModelInfo* info = nullptr; ASSERT_FL_OK(api, model_api->GetInfo(m, &info)); - baseline_ids.insert(model_api->Info_GetId(info)); + ASSERT_NE(info, nullptr); + const char* name = model_api->Info_GetName(info); + ASSERT_NE(name, nullptr); + const int version = model_api->Info_GetVersion(info); + baseline_versions_by_variant[name].insert(version); + + const char* model_id = model_api->Info_GetId(info); + std::cout << "[baseline " << i << "] model_id='" << (model_id ? model_id : "(null)") + << "' name='" << name << "' version=" << version << "\n"; } api->ModelList_Release(baseline); - // Now walk one variant per page using continuation tokens. - std::set walked_ids; - std::string token; - size_t pages = 0; - constexpr size_t kSafetyCap = 64; // hard guard against an infinite loop if the cursor never terminates - while (pages < kSafetyCap) { - ++pages; - flModelList* page_list = nullptr; - ASSERT_FL_OK(api, - catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, /*max_versions=*/1, - token.empty() ? nullptr : token.c_str(), &page_list)); - ASSERT_NE(page_list, nullptr); - const size_t page_size = api->ModelList_Size(page_list); - EXPECT_LE(page_size, 1u) << "page " << pages << " exceeded max_versions=1"; - - for (size_t i = 0; i < page_size; ++i) { - flModel* m = api->ModelList_GetAt(page_list, i); - ASSERT_NE(m, nullptr); - const flModelInfo* info = nullptr; - ASSERT_FL_OK(api, model_api->GetInfo(m, &info)); - const char* id = model_api->Info_GetId(info); - ASSERT_NE(id, nullptr); - const auto [_, inserted] = walked_ids.emplace(id); - EXPECT_TRUE(inserted) << "duplicate model_id across pages: " << id; - } - - const char* next = api->ModelList_GetContinuationToken(page_list); - token = next ? std::string(next) : std::string{}; - api->ModelList_Release(page_list); - - if (token.empty()) { - break; - } - } + flModelList* capped = nullptr; + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, /*max_versions=*/1, &capped)); + ASSERT_NE(capped, nullptr); + + std::map> capped_versions_by_variant; + const size_t capped_count = api->ModelList_Size(capped); + std::cout << "[ ] Capped GetModelVersions('" << kPhi3Alias + << "', max_versions=1) returned " << capped_count << " variant(s):\n"; + for (size_t i = 0; i < capped_count; ++i) { + flModel* m = api->ModelList_GetAt(capped, i); + ASSERT_NE(m, nullptr); + const flModelInfo* info = nullptr; + ASSERT_FL_OK(api, model_api->GetInfo(m, &info)); + ASSERT_NE(info, nullptr); + const char* name = model_api->Info_GetName(info); + ASSERT_NE(name, nullptr); + const int version = model_api->Info_GetVersion(info); + capped_versions_by_variant[name].insert(version); - EXPECT_LT(pages, kSafetyCap) << "pagination did not terminate"; - EXPECT_EQ(walked_ids, baseline_ids) - << "paginated walk produced a different set than the un-paginated call"; + const char* model_id = model_api->Info_GetId(info); + std::cout << "[capped " << i << "] model_id='" << (model_id ? model_id : "(null)") + << "' name='" << name << "' version=" << version << "\n"; + } + api->ModelList_Release(capped); + + ASSERT_FALSE(capped_versions_by_variant.empty()); + for (const auto& [variant, versions] : capped_versions_by_variant) { + ASSERT_EQ(versions.size(), 1u) << "variant='" << variant << "' should have at most one version"; + auto baseline_it = baseline_versions_by_variant.find(variant); + ASSERT_NE(baseline_it, baseline_versions_by_variant.end()) + << "variant='" << variant << "' missing from baseline"; + const int expected_latest = *baseline_it->second.rbegin(); + EXPECT_EQ(*versions.begin(), expected_latest) + << "variant='" << variant << "' did not return latest version"; + } api->GetConfigurationApi()->Configuration_Release(config); api->Manager_Release(mgr); diff --git a/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h b/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h index 9499d4c78..f1493b84b 100644 --- a/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h +++ b/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h @@ -82,8 +82,7 @@ class MockCatalog : public ICatalog { ModelVersionsPage GetModelVersions(const std::string& model_alias, const std::string& variant_name, - int max_versions = 0, - const std::string& /*continuation_token*/ = {}) override { + int max_versions = 0) override { ModelVersionsPage result; for (auto& m : models_) { if (!model_alias.empty() && m.Alias() != model_alias) { From ffb7f4668e294399051e3d0157e4b07b0dbcb5e9 Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Tue, 23 Jun 2026 00:05:37 -0700 Subject: [PATCH 13/20] put "CompareCaseInsensitive" in utils/string_utils.h --- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 25 +------------------ sdk_v2/cpp/src/util/string_utils.h | 26 ++++++++++++++++++++ 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index 8654c9a45..487e409ab 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -5,6 +5,7 @@ #include #include "exception.h" +#include "util/string_utils.h" #include #include @@ -90,30 +91,6 @@ bool CompareModelsForSort(const Model& m1, const Model& m2) { return created1 > created2; } -int CompareCaseInsensitive(const std::string& lhs, const std::string& rhs) { - const size_t common = std::min(lhs.size(), rhs.size()); - for (size_t i = 0; i < common; ++i) { - const auto l = static_cast(lhs[i]); - const auto r = static_cast(rhs[i]); - const char l_lower = static_cast(std::tolower(l)); - const char r_lower = static_cast(std::tolower(r)); - if (l_lower < r_lower) { - return -1; - } - if (l_lower > r_lower) { - return 1; - } - } - - if (lhs.size() < rhs.size()) { - return -1; - } - if (lhs.size() > rhs.size()) { - return 1; - } - return 0; -} - // Deterministic API output order: alias alpha, then name alpha, then version asc. bool CompareModelPointersForVersionList(const Model* lhs, const Model* rhs) { const auto& l = lhs->Info(); diff --git a/sdk_v2/cpp/src/util/string_utils.h b/sdk_v2/cpp/src/util/string_utils.h index 14ed30a79..627a8880a 100644 --- a/sdk_v2/cpp/src/util/string_utils.h +++ b/sdk_v2/cpp/src/util/string_utils.h @@ -48,4 +48,30 @@ inline bool EndsWithIgnoreCase(const std::string& str, const std::string& suffix }); } +/// Case-insensitive (ASCII) three-way comparison. +/// Returns: < 0 if lhs < rhs, 0 if equal, > 0 if lhs > rhs (all case-insensitive). +inline int CompareCaseInsensitive(const std::string& lhs, const std::string& rhs) { + const size_t common = std::min(lhs.size(), rhs.size()); + for (size_t i = 0; i < common; ++i) { + const auto l = static_cast(lhs[i]); + const auto r = static_cast(rhs[i]); + const char l_lower = static_cast(std::tolower(l)); + const char r_lower = static_cast(std::tolower(r)); + if (l_lower < r_lower) { + return -1; + } + if (l_lower > r_lower) { + return 1; + } + } + + if (lhs.size() < rhs.size()) { + return -1; + } + if (lhs.size() > rhs.size()) { + return 1; + } + return 0; +} + } // namespace fl From 1a31fc3157bf1defb0107972203d10bfabca5fc6 Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Thu, 25 Jun 2026 00:24:12 -0700 Subject: [PATCH 14/20] Resolved three comments --- .../include/foundry_local/foundry_local_c.h | 6 - .../include/foundry_local/foundry_local_cpp.h | 6 - .../foundry_local/foundry_local_cpp.inline.h | 3 - sdk_v2/cpp/src/c_api.cc | 15 +-- sdk_v2/cpp/src/catalog.h | 11 +- .../cpp/src/catalog/azure_catalog_client.cc | 105 +++++++----------- sdk_v2/cpp/src/catalog/azure_catalog_client.h | 26 +---- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 20 ++-- sdk_v2/cpp/src/catalog/base_model_catalog.h | 6 +- .../internal_api/web_service_test_helpers.h | 12 +- 10 files changed, 70 insertions(+), 140 deletions(-) diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h index ab4cbd077..e24fa01fd 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h @@ -669,12 +669,6 @@ typedef struct flApi { size_t FL_API_T(ModelList_Size, _In_ const flModelList* models); flModel* FL_API_T(ModelList_GetAt, _In_ const flModelList* models, size_t idx); - /// Returns the continuation token associated with this model list. The pointer - /// is owned by the list and remains valid until the list is released. NULL - /// when no continuation token was set (e.g. the list came from GetModels(), - /// or GetModelVersions has walked the underlying source to exhaustion). - const char* FL_API_T(ModelList_GetContinuationToken, _In_ const flModelList* models); - /* EP detection */ /// Get discoverable execution providers. Returns a pointer to an internal diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h index 45bcbe730..18af3e143 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h @@ -746,15 +746,9 @@ class ModelList { auto begin() const noexcept { return models_.begin(); } auto end() const noexcept { return models_.end(); } - /// Continuation token for paginated queries. - /// Empty when no further pages are available, or when this list did not come - /// from a paginated query. - std::string_view NextContinuationToken() const noexcept { return next_continuation_token_; } - private: detail::Base handle_; std::vector> models_; - std::string next_continuation_token_; }; // =========================================================================== diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h index 88f84f090..08c8f594f 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.inline.h @@ -545,9 +545,6 @@ inline ModelList::ModelList(flModelList& model_list) for (size_t i = 0; i < count; ++i) { models_.push_back(std::make_unique(*detail::api()->ModelList_GetAt(handle_.get(), i))); } - if (const char* token = detail::api()->ModelList_GetContinuationToken(handle_.get())) { - next_continuation_token_ = token; - } } inline gsl::span> ModelList::Models() const noexcept { diff --git a/sdk_v2/cpp/src/c_api.cc b/sdk_v2/cpp/src/c_api.cc index bba183a36..dbf49cc03 100644 --- a/sdk_v2/cpp/src/c_api.cc +++ b/sdk_v2/cpp/src/c_api.cc @@ -61,7 +61,6 @@ struct flStatus { // --- ModelList --- struct flModelList { std::vector items; // non-owning pointers into catalog - std::string next_continuation_token; // empty unless populated by GetModelVersions }; // --- Catalog --- @@ -470,13 +469,6 @@ static flModel* FL_API_CALL ModelList_GetAtImpl(const flModelList* models, size_ return models->items[idx]; } -static const char* FL_API_CALL ModelList_GetContinuationTokenImpl(const flModelList* models) FL_NO_EXCEPTION { - if (!models || models->next_continuation_token.empty()) { - return nullptr; - } - return models->next_continuation_token.c_str(); -} - // ======================================================================== // EP Detection API // ======================================================================== @@ -710,11 +702,11 @@ FL_API_STATUS_IMPL(Catalog_GetModelVersionsImpl, const flCatalog* catalog, std::string alias = model_alias; std::string model_name_filter = model_name ? model_name : std::string{}; - auto page = catalog->impl.GetModelVersions(alias, model_name_filter, max_versions); + auto models = catalog->impl.GetModelVersions(alias, model_name_filter, max_versions); auto list = std::make_unique(); - list->items.reserve(page.models.size()); + list->items.reserve(models.size()); - for (auto* m : page.models) { + for (auto* m : models) { list->items.push_back(AsHandle(m)); } @@ -1889,7 +1881,6 @@ static const flApi g_api_v1 = { ModelList_ReleaseImpl, ModelList_SizeImpl, ModelList_GetAtImpl, - ModelList_GetContinuationTokenImpl, /* EP detection */ Manager_GetDiscoverableEpsImpl, diff --git a/sdk_v2/cpp/src/catalog.h b/sdk_v2/cpp/src/catalog.h index a07681df3..f7a903da9 100644 --- a/sdk_v2/cpp/src/catalog.h +++ b/sdk_v2/cpp/src/catalog.h @@ -9,11 +9,6 @@ namespace fl { -/// Model variants returned by `ICatalog::GetModelVersions`. -struct ModelVersionsPage { - std::vector models; -}; - /// Abstract catalog interface for querying available models. /// Mirrors the C API's flCatalogApi surface. class ICatalog { @@ -50,9 +45,9 @@ class ICatalog { /// alias. 0 or negative means no per-variant cap. /// /// Maps to C# `IModelCatalog.GetModelVersionsAsync`. - virtual ModelVersionsPage GetModelVersions(const std::string& model_alias, - const std::string& variant_name, - int max_versions = 0) = 0; + virtual std::vector GetModelVersions(const std::string& model_alias, + const std::string& variant_name, + int max_versions = 0) = 0; /// Lists only models that are cached locally. virtual std::vector GetCachedModels() const = 0; diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc index 7bd00222d..af7a7acf5 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.cc +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.cc @@ -161,12 +161,11 @@ std::string BuildRequestUrl(const std::string& base_url, std::string BuildRequestBody(const std::vector& filters, const std::optional& skip, - const std::optional& continuation_token, - int page_size) { + const std::optional& continuation_token) { AzureCatalogRequest request; request.resource_ids.push_back({"azureml", "Registry"}); request.index_entities_request.filters = filters; - request.index_entities_request.page_size = page_size; + request.index_entities_request.page_size = kPageSize; request.index_entities_request.skip = skip; request.index_entities_request.continuation_token = continuation_token; @@ -275,40 +274,24 @@ AzureCatalogClient::AzureCatalogClient(const std::string& base_url, } } -AzureCatalogClient::FilterSetWalk AzureCatalogClient::FetchFilterSetWithState( - const std::vector& filters, - std::optional skip, - std::optional inner_token, - std::string region_in, - int max_count) { +std::optional AzureCatalogClient::FetchFilterSet( + const std::vector& filters) { const bool regional = UsesRegionalRouting(regional_template_, region_); - FilterSetWalk result; - result.region = region_in; - std::optional pinned_region; - if (!region_in.empty()) { - pinned_region = region_in; // resuming a previously-pinned filter set - } + FetchedFilterSet result; + result.region = region_; - while (true) { - int requested_page_size = kPageSize; - if (max_count > 0) { - const int still_needed = max_count - static_cast(result.models.size()); - if (still_needed <= 0) { - // Cap reached at a page boundary on a previous iteration: should not - // happen because we check after each page below, but be defensive. - result.next_skip = skip; - result.next_inner_token = inner_token; - return result; - } - requested_page_size = std::min(still_needed, kPageSize); - } + std::optional skip; + std::optional continuation_token; + std::optional pinned_region; // region that served page 1 (regional mode) - const std::string body = BuildRequestBody(filters, skip, inner_token, requested_page_size); + while (true) { + const std::string body = BuildRequestBody(filters, skip, continuation_token); http::HttpResponse response; if (regional && !pinned_region) { - // Page 1 fresh start: run region fallback starting from the sticky/active region. + // Page 1: run through region fallback starting from the sticky region (last known-good) or the active region. + // Exhaustion means every candidate had a retryable region-health failure, so fail just this filter set. const std::string start = region_fallback_.StickyRegion().value_or(region_); try { auto fallback_result = region_fallback_.Execute(start, [&](const std::string& r) { @@ -317,28 +300,30 @@ AzureCatalogClient::FilterSetWalk AzureCatalogClient::FetchFilterSetWithState( response = std::move(fallback_result.response); pinned_region = fallback_result.region; result.region = fallback_result.region; - region_ = fallback_result.region; // bias later filter sets + region_ = fallback_result.region; // active region biases later filter sets } catch (const std::exception& ex) { logger_.Log(LogLevel::Warning, std::string("catalog: filter set failed across all regions: ") + ex.what()); - result.aborted = true; - return result; + return std::nullopt; } } else if (regional) { // Subsequent pages are pinned to the region that served page 1 — a filter set // never mixes regions (continuation tokens are region-specific). response = http_post_response_(BuildRegionalUrl(url_prefix_, url_suffix_, *pinned_region), body); } else { + // Non-regional / custom URL: single verbatim attempt, no fallback. response = http_post_response_(BuildRequestUrl(base_url_, regional, region_, url_prefix_, url_suffix_), body); } if (response.status == 0 || response.status < 200 || response.status >= 300) { if (regional && IsRegionRetryableStatus(response.status)) { + // Region-health failure (including mid-pagination on the pinned region): fail this filter set only. Because + // models are committed atomically below, a later page failure cannot leak a partial filter-set result. logger_.Log(LogLevel::Warning, "catalog: filter set failed (" + http::DescribeFailure(response) + "); skipping this filter set."); - result.aborted = true; - return result; + return std::nullopt; } + const std::string url = regional && pinned_region ? BuildRegionalUrl(url_prefix_, url_suffix_, *pinned_region) : BuildRequestUrl(base_url_, regional, region_, url_prefix_, url_suffix_); @@ -348,45 +333,35 @@ AzureCatalogClient::FilterSetWalk AzureCatalogClient::FetchFilterSetWithState( const auto parsed = nlohmann::json::parse(response.body).get(); if (!parsed.index_entities_response) { - result.done = true; - return result; + break; } const auto& page = *parsed.index_entities_response; if (page.models.empty()) { - result.done = true; - return result; + break; } result.models.insert(result.models.end(), page.models.begin(), page.models.end()); // Advance pagination. A non-positive nextSkip and an empty token mean "done". skip = (page.next_skip && *page.next_skip > 0) ? page.next_skip : std::nullopt; - inner_token = (page.continuation_token && !page.continuation_token->empty()) - ? page.continuation_token - : std::nullopt; - - const bool stream_done = !skip && !inner_token; - if (stream_done) { - result.done = true; - return result; - } + continuation_token = (page.continuation_token && !page.continuation_token->empty()) + ? page.continuation_token + : std::nullopt; - if (max_count > 0 && static_cast(result.models.size()) >= max_count) { - // Cap hit and more data is available — emit cursor. - result.next_skip = skip; - result.next_inner_token = inner_token; - return result; + if (!skip && !continuation_token) { + break; } } + + return result; } -std::vector AzureCatalogClient::FetchAllFilterSets() { - std::vector results; +std::vector AzureCatalogClient::FetchAllFilterSets() { + std::vector results; for (const auto& filters : BuildSearchFilters(ep_detector_, model_filter_)) { - auto result = FetchFilterSetWithState(filters, std::nullopt, std::nullopt, std::string{}, /*max_count=*/0); - if (!result.aborted) { - results.push_back(std::move(result)); + if (auto result = FetchFilterSet(filters)) { + results.push_back(std::move(*result)); } } @@ -419,13 +394,12 @@ std::vector AzureCatalogClient::FetchModelsByIds( return {}; } - auto result = FetchFilterSetWithState(BuildModelIdFilters(model_filter_, model_ids), - std::nullopt, std::nullopt, std::string{}, /*max_count=*/0); - if (result.aborted) { + auto result = FetchFilterSet(BuildModelIdFilters(model_filter_, model_ids)); + if (!result) { return {}; } - return ToModelInfos(result.models, result.region); + return ToModelInfos(result->models, result->region); } std::vector AzureCatalogClient::FetchAllVersionsByAlias( @@ -441,13 +415,12 @@ std::vector AzureCatalogClient::FetchAllVersionsByAlias( std::vector result; for (const auto& filters : filter_sets) { - auto walk = FetchFilterSetWithState(filters, std::nullopt, std::nullopt, std::string{}, /*max_count=*/0); - - if (walk.aborted) { + auto walk = FetchFilterSet(filters); + if (!walk) { continue; } - auto batch = ToModelInfos(walk.models, walk.region); + auto batch = ToModelInfos(walk->models, walk->region); result.insert(result.end(), std::make_move_iterator(batch.begin()), std::make_move_iterator(batch.end())); diff --git a/sdk_v2/cpp/src/catalog/azure_catalog_client.h b/sdk_v2/cpp/src/catalog/azure_catalog_client.h index 4ac1bc6e3..c87c650b8 100644 --- a/sdk_v2/cpp/src/catalog/azure_catalog_client.h +++ b/sdk_v2/cpp/src/catalog/azure_catalog_client.h @@ -62,32 +62,18 @@ class AzureCatalogClient : public ICatalogClient { int max_versions = 0) override; private: - /// Per-page result of walking one filter set with explicit pagination state. - struct FilterSetWalk { + struct FetchedFilterSet { std::vector models; - std::string region; // pinned region that served the page(s) - std::optional next_skip; // server's next skip (when not done) - std::optional next_inner_token; // server's next continuation token - bool done = false; // true when the underlying stream is exhausted - bool aborted = false; // true when a retryable region failure happened + std::string region; }; - /// Walks pages of one filter set with explicit pagination state. - /// - `skip` / `inner_token`: starting cursor (nullopt for a fresh start). - /// - `region_in`: pinned region for resuming (empty triggers page-1 region fallback). - /// - `max_count`: soft cap; 0 means walk to exhaustion. - /// On success, returns `done=true` if the stream was exhausted, or `done=false` - /// with `next_skip`/`next_inner_token` populated when stopped by the cap. - /// On a retryable region failure, returns `aborted=true` (partial results discarded). - FilterSetWalk FetchFilterSetWithState(const std::vector& filters, - std::optional skip, - std::optional inner_token, - std::string region_in, - int max_count); + /// Run all pages of one filter set. In regional mode the first page goes through region fallback and later pages are + /// pinned to the serving region; a retryable region-health failure fails just this filter set (others continue). + std::optional FetchFilterSet(const std::vector& filters); /// Fetch every device filter set, dropping the ones that failed their region-health checks. /// Used for unbounded "latest only" / by-id queries. - std::vector FetchAllFilterSets(); + std::vector FetchAllFilterSets(); std::string base_url_; std::vector model_filter_; // foundryLocal tag values diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index 487e409ab..08922c402 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -473,9 +473,9 @@ std::vector BaseModelCatalog::GetLoadedModels() const { return result; } -ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_alias, - const std::string& variant_name, - int max_versions) { +std::vector BaseModelCatalog::GetModelVersions(const std::string& model_alias, + const std::string& variant_name, + int max_versions) { if (model_alias.empty()) { FL_THROW(FOUNDRY_LOCAL_ERROR_INVALID_ARGUMENT, "GetModelVersions requires a non-empty model_alias."); } @@ -512,7 +512,7 @@ ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_al IntegrateVariantsLocked(std::move(fetched.models)); } - ModelVersionsPage result; + std::vector result; auto idx = GetIndex(); for (const auto& id : fetched_ids) { @@ -524,7 +524,7 @@ ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_al if (!variant_name.empty() && variant->Info().name != variant_name) { continue; } - result.models.push_back(variant); + result.push_back(variant); } if (fetched_ids.empty()) { @@ -536,14 +536,14 @@ ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_al } } - if (max_versions > 0 && !result.models.empty()) { + if (max_versions > 0 && !result.empty()) { // Enforce latest X per variant name by scanning the sorted list from the // back (highest version first within each variant group). std::unordered_map selected_per_variant; std::vector limited; - limited.reserve(result.models.size()); + limited.reserve(result.size()); - for (auto it = result.models.rbegin(); it != result.models.rend(); ++it) { + for (auto it = result.rbegin(); it != result.rend(); ++it) { Model* model = *it; const std::string& variant = model->Info().name; int& count = selected_per_variant[variant]; @@ -555,10 +555,10 @@ ModelVersionsPage BaseModelCatalog::GetModelVersions(const std::string& model_al limited.push_back(model); } - result.models.assign(limited.rbegin(), limited.rend()); + result.assign(limited.rbegin(), limited.rend()); } - std::stable_sort(result.models.begin(), result.models.end(), CompareModelPointersForVersionList); + std::stable_sort(result.begin(), result.end(), CompareModelPointersForVersionList); return result; } diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.h b/sdk_v2/cpp/src/catalog/base_model_catalog.h index 40934882d..ff3d6e8e2 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.h @@ -38,9 +38,9 @@ class BaseModelCatalog : public ICatalog { Model* GetLatestVersion(const Model* model) const override; std::vector GetCachedModels() const override; std::vector GetLoadedModels() const override; - ModelVersionsPage GetModelVersions(const std::string& model_alias, - const std::string& variant_name, - int max_versions = 0) override; + std::vector GetModelVersions(const std::string& model_alias, + const std::string& variant_name, + int max_versions = 0) override; void InvalidateCache() override; protected: diff --git a/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h b/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h index f1493b84b..318fc604d 100644 --- a/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h +++ b/sdk_v2/cpp/test/internal_api/web_service_test_helpers.h @@ -80,20 +80,20 @@ class MockCatalog : public ICatalog { return result; } - ModelVersionsPage GetModelVersions(const std::string& model_alias, - const std::string& variant_name, - int max_versions = 0) override { - ModelVersionsPage result; + std::vector GetModelVersions(const std::string& model_alias, + const std::string& variant_name, + int max_versions = 0) override { + std::vector result; for (auto& m : models_) { if (!model_alias.empty() && m.Alias() != model_alias) { continue; } for (auto* v : m.Variants()) { - if (max_versions > 0 && result.models.size() >= static_cast(max_versions)) { + if (max_versions > 0 && result.size() >= static_cast(max_versions)) { return result; } if (variant_name.empty() || v->Info().name == variant_name) { - result.models.push_back(v); + result.push_back(v); } } } From 7164318ff9b233af8185f3f770548cfb8c35df33 Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Thu, 25 Jun 2026 16:48:47 -0700 Subject: [PATCH 15/20] Resolve two comments --- sdk_v2/cpp/src/catalog/azure_model_catalog.cc | 10 +++++----- sdk_v2/cpp/src/catalog/azure_model_catalog.h | 4 ++-- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 10 +++++----- sdk_v2/cpp/src/catalog/base_model_catalog.h | 6 +----- sdk_v2/cpp/src/manager.cc | 16 ---------------- 5 files changed, 13 insertions(+), 33 deletions(-) diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc index 511af9ad5..b481a8326 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc @@ -159,10 +159,10 @@ std::vector>> EnumerateEndpoin } // namespace -BaseModelCatalog::FetchedModelVersions AzureModelCatalog::FetchModelVersions( +std::vector AzureModelCatalog::FetchModelVersions( const std::string& model_alias, const std::string& model_name) const { - FetchedModelVersions out; + std::vector out; if (cache_only_) { // In cache-only mode we have no remote source to query for older versions. logger_.Log(LogLevel::Debug, @@ -181,7 +181,7 @@ BaseModelCatalog::FetchedModelVersions AzureModelCatalog::FetchModelVersions( catalog_region_, disable_region_fallback_); auto model_infos = client->FetchAllVersionsByAlias(model_alias, model_name); - out.models.reserve(out.models.size() + model_infos.size()); + out.reserve(out.size() + model_infos.size()); for (auto& info : model_infos) { std::string local_path; auto it = local_models.find(info.model_id); @@ -189,7 +189,7 @@ BaseModelCatalog::FetchedModelVersions AzureModelCatalog::FetchModelVersions( local_path = it->second; } - out.models.push_back(model_factory_(std::move(info), std::move(local_path))); + out.push_back(model_factory_(std::move(info), std::move(local_path))); } } catch (const std::exception& ex) { logger_.Log(LogLevel::Error, @@ -199,7 +199,7 @@ BaseModelCatalog::FetchedModelVersions AzureModelCatalog::FetchModelVersions( logger_.Log(LogLevel::Information, fmt::format("FetchModelVersions('{}') returned {} variant(s).", - model_alias, out.models.size())); + model_alias, out.size())); return out; } diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.h b/sdk_v2/cpp/src/catalog/azure_model_catalog.h index d47f18c56..5769a3ef7 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.h @@ -33,8 +33,8 @@ class AzureModelCatalog : public BaseModelCatalog { protected: std::vector FetchModels() const override; - FetchedModelVersions FetchModelVersions(const std::string& model_alias, - const std::string& model_name = "") const override; + std::vector FetchModelVersions(const std::string& model_alias, + const std::string& model_name = "") const override; std::vector FetchModelsByIds(const std::vector& model_ids) const override; private: diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index 08922c402..53445151e 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -484,7 +484,7 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ // existing alias container exists to merge into. EnsurePopulated(); - FetchedModelVersions fetched; + std::vector fetched; try { fetched = FetchModelVersions(model_alias, variant_name); // variant_name is used as model_name filter } catch (const std::exception& ex) { @@ -502,14 +502,14 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ // Capture fetch order before moving so we can return models in the order the // underlying source produced them — important for stable pagination. std::vector fetched_ids; - fetched_ids.reserve(fetched.models.size()); - for (const auto& m : fetched.models) { + fetched_ids.reserve(fetched.size()); + for (const auto& m : fetched) { fetched_ids.push_back(m.Info().model_id); } - if (!fetched.models.empty()) { + if (!fetched.empty()) { std::lock_guard lock(mutex_); - IntegrateVariantsLocked(std::move(fetched.models)); + IntegrateVariantsLocked(std::move(fetched)); } std::vector result; diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.h b/sdk_v2/cpp/src/catalog/base_model_catalog.h index ff3d6e8e2..9f7b51df6 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.h @@ -55,11 +55,7 @@ class BaseModelCatalog : public ICatalog { /// for the given alias. /// Default implementation returns `{}` (no remote source — local-only catalogs). /// Maps to C# `BaseModelCatalog.GetModelVersionsAsync` -> derived overrides. - struct FetchedModelVersions { - std::vector models; - }; - - virtual FetchedModelVersions FetchModelVersions( + virtual std::vector FetchModelVersions( const std::string& /*model_alias*/, const std::string& /*model_name*/ = "") const { return {}; diff --git a/sdk_v2/cpp/src/manager.cc b/sdk_v2/cpp/src/manager.cc index 51cee5c83..7d45dc71d 100644 --- a/sdk_v2/cpp/src/manager.cc +++ b/sdk_v2/cpp/src/manager.cc @@ -365,22 +365,6 @@ Manager& Manager::Create(const Configuration& config) { "Manager already created. Call Destroy() first."); } - // Optional Windows App SDK bootstrap. When the caller enables Bootstrap in - // additional_options we initialize the WinAppSDK framework package for this process. This - // must run before the Manager constructor so that WinML EP discovery (inside - // Manager::Manager) can resolve Microsoft.Windows.AI.MachineLearning.dll. We use a - // temporary stderr logger here because the Manager-owned logger doesn't exist yet; - // bootstrap output is low-volume (one line on success, one warning on failure). Mirrors - // the C# FoundryLocalCore IS_WINML path. Only meaningful in WinML builds; outside that - // configuration TryInitializeWindowsAppSdk is a no-op stub. -#if defined(FOUNDRY_LOCAL_USE_WINML) && FOUNDRY_LOCAL_USE_WINML - { - if (IsAdditionalOptionEnabled(config, "Bootstrap")) { - StderrLogger bootstrap_logger; - TryInitializeWindowsAppSdk(bootstrap_logger); - } - } -#endif // Construct into a local unique_ptr so a throw between construction and the post-init // telemetry/log calls cleans up the partially-initialized Manager instead of leaking it. // The constructor validates and resolves defaults; if it throws, no Manager exists. From e9aa2f4134730d5484f7a24daec484b783f77f64 Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Thu, 25 Jun 2026 23:55:45 -0700 Subject: [PATCH 16/20] Resolved `GetModelVersions` , local copy and refactor `catalog_urls_ ` --- .../include/foundry_local/foundry_local_c.h | 6 +- .../include/foundry_local/foundry_local_cpp.h | 4 +- sdk_v2/cpp/src/catalog.h | 7 +- sdk_v2/cpp/src/catalog/azure_model_catalog.cc | 59 ++-------- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 48 ++++----- sdk_v2/cpp/src/catalog/base_model_catalog.h | 13 ++- .../internal_api/base_model_catalog_test.cc | 102 ++++++++++++++++++ sdk_v2/cpp/test/internal_api/c_api_test.cc | 61 +++++++++++ 8 files changed, 215 insertions(+), 85 deletions(-) diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h index e24fa01fd..51bdae1eb 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h @@ -961,8 +961,10 @@ struct flCatalogApi { /// every model name. /// @param max_versions Select latest X versions per model name. Pass 0 (or any /// negative value) for no per-model-name cap. - /// Returned list contains existing flModel handles owned by the catalog; releasing - /// the list does not invalidate the underlying model handles. + /// Each call performs a fresh catalog query; results are not integrated into the + /// catalog's main lookup indices. Returned handles are owned by the catalog until + /// the next GetModelVersions call on that catalog or until the catalog is released. + /// Releasing the list does not invalidate the underlying model handles. FL_API_STATUS(GetModelVersions, _In_ const flCatalog* catalog, _In_ const char* model_alias, _In_opt_ const char* model_name, int32_t max_versions, _Outptr_ flModelList** out_models); diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h index 18af3e143..c9fcab43a 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h @@ -770,7 +770,9 @@ class ICatalog { /// `variant_name` optionally narrows the result to a single variant; empty /// returns every variant. `max_versions` selects the latest X versions per /// variant name (defaults to 50, matching the web service contract); pass 0 - /// or a negative value for no per-variant cap. + /// or a negative value for no per-variant cap. Each call performs a fresh + /// query and the returned model handles remain valid until the next + /// GetModelVersions call on the same catalog or until the catalog is destroyed. virtual ModelList GetModelVersions(const std::string& model_alias, const std::string& variant_name = {}, int max_versions = 50) = 0; diff --git a/sdk_v2/cpp/src/catalog.h b/sdk_v2/cpp/src/catalog.h index f7a903da9..1d1392184 100644 --- a/sdk_v2/cpp/src/catalog.h +++ b/sdk_v2/cpp/src/catalog.h @@ -33,9 +33,10 @@ class ICatalog { /// Lists all known versions of a model (by alias), optionally filtered to a /// specific variant name. Bypasses the "latest only" filter the regular - /// catalog refresh applies — new versions discovered by this call are - /// integrated into the catalog's storage so the returned pointers remain - /// valid for the lifetime of the catalog. + /// catalog refresh applies and performs a fresh source query on each call. + /// Results are not integrated into the catalog's main lookup indices. + /// Returned pointers are owned by the catalog until the next + /// GetModelVersions call on that catalog or until the catalog is destroyed. /// /// `model_alias` is the alias of the model (e.g. "phi-4-mini") and must not /// be empty. diff --git a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc index b481a8326..39afcae37 100644 --- a/sdk_v2/cpp/src/catalog/azure_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/azure_model_catalog.cc @@ -33,6 +33,10 @@ AzureModelCatalog::AzureModelCatalog(std::vector(kDefaultCatalogFilter)); + } + logger_.Log(LogLevel::Information, fmt::format("Created AzureModelCatalog. Cache directory: {}", cache_dir_)); @@ -107,23 +111,13 @@ std::vector AzureModelCatalog::FetchModels() const { } }; - if (catalog_urls_.empty()) { - // Use default Azure Foundry catalog + for (const auto& [url, filter] : catalog_urls_) { try { - fetch_from(kDefaultCatalogUrl, kDefaultCatalogFilter); + fetch_from(url, filter); } catch (const std::exception& ex) { + // One failing URL shouldn't block others — skip and continue. logger_.Log(LogLevel::Error, - fmt::format("failed to fetch catalog from default URL: {}", ex.what())); - } - } else { - for (const auto& [url, filter] : catalog_urls_) { - try { - fetch_from(url, filter); - } catch (const std::exception& ex) { - // One failing URL shouldn't block others — skip and continue. - logger_.Log(LogLevel::Error, - fmt::format("failed to fetch catalog from {}: {}", url, ex.what())); - } + fmt::format("failed to fetch catalog from {}: {}", url, ex.what())); } } @@ -141,24 +135,6 @@ std::vector AzureModelCatalog::FetchModels() const { return models; } -namespace { - -// Build a flat list of (url, filter) endpoints to query for direct-lookup -// helpers (FetchModelVersions / FetchModelsByIds). Honours the configured -// catalog_urls_; falls back to the default URL when none are configured. -std::vector>> EnumerateEndpoints( - const std::vector>>& configured, - const char* default_url, - const char* default_filter) { - if (!configured.empty()) { - return configured; - } - - return {{default_url, std::optional(default_filter)}}; -} - -} // namespace - std::vector AzureModelCatalog::FetchModelVersions( const std::string& model_alias, const std::string& model_name) const { @@ -170,12 +146,7 @@ std::vector AzureModelCatalog::FetchModelVersions( return out; } - // Scan local models so any version already on disk is reported as cached. - auto local_models = ScanLocalModels(cache_dir_, logger_); - - const auto endpoints = EnumerateEndpoints(catalog_urls_, kDefaultCatalogUrl, kDefaultCatalogFilter); - - for (const auto& [url, filter] : endpoints) { + for (const auto& [url, filter] : catalog_urls_) { try { auto client = MakeCatalogClient(url, filter.value_or(""), ep_detector_, logger_, cache_dir_, catalog_region_, disable_region_fallback_); @@ -183,13 +154,7 @@ std::vector AzureModelCatalog::FetchModelVersions( out.reserve(out.size() + model_infos.size()); for (auto& info : model_infos) { - std::string local_path; - auto it = local_models.find(info.model_id); - if (it != local_models.end()) { - local_path = it->second; - } - - out.push_back(model_factory_(std::move(info), std::move(local_path))); + out.push_back(model_factory_(std::move(info), /*local_path=*/"")); } } catch (const std::exception& ex) { logger_.Log(LogLevel::Error, @@ -218,13 +183,11 @@ std::vector AzureModelCatalog::FetchModelsByIds(const std::vector models; - const auto endpoints = EnumerateEndpoints(catalog_urls_, kDefaultCatalogUrl, kDefaultCatalogFilter); - // Track which IDs are still unresolved so we can stop calling further // endpoints once everything has been found. std::vector remaining(model_ids); - for (const auto& [url, filter] : endpoints) { + for (const auto& [url, filter] : catalog_urls_) { if (remaining.empty()) { break; } diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index 53445151e..cf431787e 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -189,7 +189,9 @@ void BaseModelCatalog::PopulateModels(std::vector variants) const { populated_ = true; } -void BaseModelCatalog::IntegrateVariantsLocked(std::vector variants) const { +void BaseModelCatalog::IntegrateVariants(std::vector variants) const { + std::lock_guard lock(mutex_); + if (variants.empty()) { return; } @@ -406,10 +408,7 @@ Model* BaseModelCatalog::GetModelVariant(const std::string& model_id) const { } if (!fetched.empty()) { - { - std::lock_guard lock(mutex_); - IntegrateVariantsLocked(std::move(fetched)); - } + IntegrateVariants(std::move(fetched)); // Look up again from the refreshed index. idx = GetIndex(); @@ -481,7 +480,7 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ } // Make sure the regular "latest only" catalog is populated first so the - // existing alias container exists to merge into. + // existing alias set is available for logging/validation. EnsurePopulated(); std::vector fetched; @@ -499,35 +498,30 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ return {}; } - // Capture fetch order before moving so we can return models in the order the - // underlying source produced them — important for stable pagination. - std::vector fetched_ids; - fetched_ids.reserve(fetched.size()); - for (const auto& m : fetched) { - fetched_ids.push_back(m.Info().model_id); - } + std::vector result; + auto idx = GetIndex(); - if (!fetched.empty()) { + { std::lock_guard lock(mutex_); - IntegrateVariantsLocked(std::move(fetched)); - } - std::vector result; + version_query_models_.clear(); + version_query_models_.reserve(fetched.size()); - auto idx = GetIndex(); - for (const auto& id : fetched_ids) { - auto id_it = idx->id_index.find(id); - if (id_it == idx->id_index.end()) { - continue; + for (auto& model : fetched) { + version_query_models_.push_back(std::make_unique(std::move(model))); } - Model* variant = id_it->second; - if (!variant_name.empty() && variant->Info().name != variant_name) { - continue; + + result.reserve(version_query_models_.size()); + for (auto& model : version_query_models_) { + if (!variant_name.empty() && model->Info().name != variant_name) { + continue; + } + + result.push_back(model.get()); } - result.push_back(variant); } - if (fetched_ids.empty()) { + if (result.empty()) { // Source returned nothing — log when the alias was unknown. auto alias_it = idx->alias_index.find(model_alias); if (alias_it == idx->alias_index.end()) { diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.h b/sdk_v2/cpp/src/catalog/base_model_catalog.h index 9f7b51df6..da001ce71 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.h @@ -21,7 +21,9 @@ namespace fl { /// Model ownership: The catalog owns all Model instances via unique_ptr in models_. /// These pointers are stable for the lifetime of the catalog — external code can hold /// raw Model* pointers safely. Indices (id_index, alias_index, name_index) are rebuilt -/// on refresh but always point into the stable models_ storage. +/// on refresh but always point into the stable models_ storage. GetModelVersions uses +/// separate transient storage because its results are query-only and not integrated into +/// the main indices. /// /// Maps to C# BaseModelCatalog. class BaseModelCatalog : public ICatalog { @@ -103,12 +105,11 @@ class BaseModelCatalog : public ICatalog { /// Populate or refresh the catalog (under lock). Groups variants, builds indices. void PopulateModels(std::vector variants) const; - /// Merge new variants into the catalog's stable storage (under lock). For an + /// Merge new variants into the catalog's stable storage. For an /// existing alias container, appends any variants whose model_id isn't already /// present. For new aliases, creates a new container. Rebuilds the lookup /// index when the model set actually changed. - /// Caller must hold `mutex_`. - void IntegrateVariantsLocked(std::vector variants) const; + void IntegrateVariants(std::vector variants) const; /// Build lookup indices from the current models_ collection. /// Builds a complete new ModelIndex locally, then atomically swaps it into index_. @@ -117,6 +118,10 @@ class BaseModelCatalog : public ICatalog { /// Thread-safe access: ensures catalog is populated, refreshes if allowed and stale. void EnsurePopulated(bool allow_refresh = false) const; + /// Transient storage for the most recent GetModelVersions query. Replaced on each call. + /// These models are intentionally not integrated into the main lookup indices. + mutable std::vector> version_query_models_; + std::string name_; ILogger& logger_; }; diff --git a/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc b/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc index 8012d014d..447a427d7 100644 --- a/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc +++ b/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc @@ -17,10 +17,15 @@ #include #include +#include #include using namespace fl; +static Model MakeModel(const std::string& model_id, const std::string& name, + int version, const std::string& alias, + const std::string& local_path); + // ======================================================================== // Concrete test catalog — returns canned models from FetchModels() // ======================================================================== @@ -42,6 +47,67 @@ class TestCatalog : public BaseModelCatalog { mutable std::vector models_; }; +class QueryingTestCatalog : public BaseModelCatalog { + public: + explicit QueryingTestCatalog(ILogger& logger) : BaseModelCatalog("querying-test-catalog", logger) {} + + void AddModel(Model model) { + models_.push_back(std::move(model)); + } + + void SetVersionFetchResults(std::vector models) { + version_fetch_results_ = std::move(models); + } + + void SetIdFetchResults(std::vector models) { + id_fetch_results_ = std::move(models); + } + + protected: + std::vector FetchModels() const override { + return std::move(models_); + } + + std::vector FetchModelVersions(const std::string& model_alias, + const std::string& model_name = "") const override { + std::vector result; + for (const auto& model : version_fetch_results_) { + const auto& info = model.Info(); + if (info.alias != model_alias) { + continue; + } + + if (!model_name.empty() && info.name != model_name) { + continue; + } + + result.push_back(MakeModel(info.model_id, info.name, info.version, info.alias, model.LocalPath())); + } + + return result; + } + + std::vector FetchModelsByIds(const std::vector& model_ids) const override { + std::unordered_set requested(model_ids.begin(), model_ids.end()); + std::vector result; + for (const auto& model : id_fetch_results_) { + const auto& info = model.Info(); + if (!requested.contains(info.model_id)) { + continue; + } + + result.push_back(MakeModel(info.model_id, info.name, info.version, info.alias, model.LocalPath())); + } + + return result; + } + + private: + mutable std::vector models_; + mutable std::vector version_fetch_results_; + mutable std::vector id_fetch_results_; +}; + // Helper: create a Model from basic fields. static Model MakeModel(const std::string& model_id, const std::string& name, int version, const std::string& alias, @@ -257,3 +323,39 @@ TEST_F(BaseModelCatalogTest, GetModelVariant_ById_ReturnsVariantNotContainer) { ASSERT_NE(container, nullptr); EXPECT_EQ(container->Variants().size(), 2u); } + +TEST_F(BaseModelCatalogTest, GetModelVersionsDoesNotIntegrateFetchedVariants) { + QueryingTestCatalog catalog(logger_); + catalog.AddModel(MakeModel("phi-3-mini:2", "phi-3-mini", 2, "phi-3")); + + std::vector version_results; + version_results.push_back(MakeModel("phi-3-mini:1", "phi-3-mini", 1, "phi-3")); + catalog.SetVersionFetchResults(std::move(version_results)); + + auto versions = catalog.GetModelVersions("phi-3", "", 0); + ASSERT_EQ(versions.size(), 1u); + EXPECT_EQ(versions[0]->Info().model_id, "phi-3-mini:1"); + + auto* container = catalog.GetModel("phi-3"); + ASSERT_NE(container, nullptr); + EXPECT_EQ(container->Variants().size(), 1u) + << "GetModelVersions should not add fetched versions to the catalog's main indices."; +} + +TEST_F(BaseModelCatalogTest, GetModelVariantIdIntegratesFetchedVariant) { + QueryingTestCatalog catalog(logger_); + catalog.AddModel(MakeModel("phi-3-mini:2", "phi-3-mini", 2, "phi-3")); + + std::vector id_results; + id_results.push_back(MakeModel("phi-3-mini:1", "phi-3-mini", 1, "phi-3")); + catalog.SetIdFetchResults(std::move(id_results)); + + auto* fetched = catalog.GetModelVariant("phi-3-mini:1"); + ASSERT_NE(fetched, nullptr); + EXPECT_EQ(fetched->Info().model_id, "phi-3-mini:1"); + + auto* container = catalog.GetModel("phi-3"); + ASSERT_NE(container, nullptr); + EXPECT_EQ(container->Variants().size(), 2u) + << "ID-based fetches should still integrate so download-specific lookups persist in the catalog."; +} diff --git a/sdk_v2/cpp/test/internal_api/c_api_test.cc b/sdk_v2/cpp/test/internal_api/c_api_test.cc index 5f742262f..993b9ac99 100644 --- a/sdk_v2/cpp/test/internal_api/c_api_test.cc +++ b/sdk_v2/cpp/test/internal_api/c_api_test.cc @@ -571,6 +571,67 @@ TEST(CApiTest, GetModelVersionsMaxVersionsIsPerVariant) { api->Manager_Release(mgr); } +TEST(CApiTest, GetModelVersionsDoesNotPersistReturnedVariantsIntoCatalogModelView) { + const flApi* api = GetApi(); + ASSERT_NE(api, nullptr); + const flCatalogApi* catalog_api = api->GetCatalogApi(); + const flModelApi* model_api = api->GetModelApi(); + + flConfiguration* config = CreateTestConfig(api); + ASSERT_NE(config, nullptr); + + flManager* mgr = nullptr; + flStatus* status = api->Manager_Create(config, &mgr); + if (!IsOk(status)) { + api->Status_Release(status); + api->GetConfigurationApi()->Configuration_Release(config); + GTEST_SKIP() << "Manager creation failed (catalog may be unreachable)"; + } + flCatalog* cat = nullptr; + ASSERT_FL_OK(api, api->Manager_GetCatalog(mgr, &cat)); + + constexpr const char* kPhi3Alias = "phi-3-mini-4k"; + + flModel* baseline_model = nullptr; + ASSERT_FL_OK(api, catalog_api->GetModel(cat, kPhi3Alias, &baseline_model)); + if (!baseline_model) { + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); + GTEST_SKIP() << "Catalog returned no grouped model for '" << kPhi3Alias + << "' (catalog may be unreachable or the alias has been retired)"; + } + + flModelList* baseline_variants = nullptr; + ASSERT_FL_OK(api, model_api->GetVariants(baseline_model, &baseline_variants)); + ASSERT_NE(baseline_variants, nullptr); + const size_t baseline_count = api->ModelList_Size(baseline_variants); + api->ModelList_Release(baseline_variants); + + flModelList* versions = nullptr; + ASSERT_FL_OK(api, catalog_api->GetModelVersions(cat, kPhi3Alias, nullptr, 0, &versions)); + ASSERT_NE(versions, nullptr); + const size_t fetched_count = api->ModelList_Size(versions); + if (fetched_count == 0) { + api->ModelList_Release(versions); + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); + GTEST_SKIP() << "Catalog returned no variants for '" << kPhi3Alias << "'"; + } + + flModelList* after_variants = nullptr; + ASSERT_FL_OK(api, model_api->GetVariants(baseline_model, &after_variants)); + ASSERT_NE(after_variants, nullptr); + const size_t after_count = api->ModelList_Size(after_variants); + api->ModelList_Release(after_variants); + + EXPECT_EQ(after_count, baseline_count) + << "GetModelVersions should not add returned versions to the catalog's grouped model view."; + + api->ModelList_Release(versions); + api->GetConfigurationApi()->Configuration_Release(config); + api->Manager_Release(mgr); +} + // Disabled by default: actually downloads a multi-GB model from Azure. Run manually with // --gtest_also_run_disabled_tests when you need to exercise the Download code path against the live // catalog. Skipped automatically in CI per the C++ test policy (no model downloads in CI). From e4401cee533213e8a35bc0d4541ad77d70182045 Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Fri, 26 Jun 2026 01:57:43 -0700 Subject: [PATCH 17/20] Addressing the comment for ordering of `CompareModelPointersForVersionList` --- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 41 ++++++++++++++++--- sdk_v2/cpp/src/model.cc | 25 +++++++++++ sdk_v2/cpp/src/model.h | 5 +++ .../internal_api/base_model_catalog_test.cc | 35 ++++++++++++++++ 4 files changed, 101 insertions(+), 5 deletions(-) diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index cf431787e..7190e23ab 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -246,6 +246,9 @@ void BaseModelCatalog::IntegrateVariants(std::vector variants) const { it->second->AddVariant(std::move(v)); ++added_variants; } + + // Keep container variant order consistent with catalog priority after append-based inserts. + it->second->SortVariants(CompareModelsForSort); } else { // New alias: build a container in priority order (best first). auto first = std::move(alias_variants.front()); @@ -531,14 +534,42 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ } if (max_versions > 0 && !result.empty()) { - // Enforce latest X per variant name by scanning the sorted list from the - // back (highest version first within each variant group). + // Normalize order first so max_versions selection is independent of + // source fetch ordering. Group by variant name and place latest versions first. + std::stable_sort(result.begin(), result.end(), [](const Model* lhs, const Model* rhs) { + const auto& l = lhs->Info(); + const auto& r = rhs->Info(); + + const int name_cmp = CompareCaseInsensitive(l.name, r.name); + if (name_cmp != 0) { + return name_cmp < 0; + } + + if (l.version != r.version) { + return l.version > r.version; + } + + const int lp = GetModelDevicePriority(l.model_id); + const int rp = GetModelDevicePriority(r.model_id); + if (lp != rp) { + return lp < rp; + } + + int64_t l_created = l.GetPropertyWithDefault(FOUNDRY_LOCAL_MODEL_PROP_CREATED_AT_UNIX_INT, int64_t{0}); + int64_t r_created = r.GetPropertyWithDefault(FOUNDRY_LOCAL_MODEL_PROP_CREATED_AT_UNIX_INT, int64_t{0}); + if (l_created != r_created) { + return l_created > r_created; + } + + return l.model_id < r.model_id; + }); + + // Enforce latest X per variant name from the normalized ordering. std::unordered_map selected_per_variant; std::vector limited; limited.reserve(result.size()); - for (auto it = result.rbegin(); it != result.rend(); ++it) { - Model* model = *it; + for (Model* model : result) { const std::string& variant = model->Info().name; int& count = selected_per_variant[variant]; if (count >= max_versions) { @@ -549,7 +580,7 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ limited.push_back(model); } - result.assign(limited.rbegin(), limited.rend()); + result = std::move(limited); } std::stable_sort(result.begin(), result.end(), CompareModelPointersForVersionList); diff --git a/sdk_v2/cpp/src/model.cc b/sdk_v2/cpp/src/model.cc index d7f2b0c7a..c60542e98 100644 --- a/sdk_v2/cpp/src/model.cc +++ b/sdk_v2/cpp/src/model.cc @@ -12,6 +12,8 @@ #include #include +#include + namespace fl { // --------------------------------------------------------------------------- @@ -106,6 +108,29 @@ void Model::AddVariant(Model variant) { } } +void Model::SortVariants(const std::function& comparator) { + if (!IsContainer()) { + return; + } + + std::lock_guard lock(state_mutex_); + + if (variants_.size() < 2) { + return; + } + + const std::string selected_id = selected_variant_->Info().model_id; + std::stable_sort(variants_.begin(), variants_.end(), comparator); + + auto selected_it = std::find_if(variants_.begin(), variants_.end(), + [&](const Model& m) { return m.Info().model_id == selected_id; }); + if (selected_it != variants_.end()) { + selected_variant_ = &(*selected_it); + } else { + selected_variant_ = &variants_.front(); + } +} + // --------------------------------------------------------------------------- // Properties (delegate to selected_variant_ when container) // --------------------------------------------------------------------------- diff --git a/sdk_v2/cpp/src/model.h b/sdk_v2/cpp/src/model.h index ee666b2f1..0dc6f8745 100644 --- a/sdk_v2/cpp/src/model.h +++ b/sdk_v2/cpp/src/model.h @@ -63,6 +63,11 @@ class Model { /// becomes the selected variant (matches C# behavior). void AddVariant(Model variant); + /// Reorder variants in this container using the provided comparator. + /// Preserves the currently selected variant by model_id when possible. + /// No-op for leaf models. + void SortVariants(const std::function& comparator); + // --- Properties --- /// Unique model identifier. For containers, delegates to the selected variant. diff --git a/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc b/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc index 447a427d7..9d7959775 100644 --- a/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc +++ b/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc @@ -342,6 +342,22 @@ TEST_F(BaseModelCatalogTest, GetModelVersionsDoesNotIntegrateFetchedVariants) { << "GetModelVersions should not add fetched versions to the catalog's main indices."; } + TEST_F(BaseModelCatalogTest, GetModelVersionsMaxVersionsSelectsLatestRegardlessOfFetchOrder) { + QueryingTestCatalog catalog(logger_); + + std::vector version_results; + // Intentionally unsorted fetch order: v2, v1, v3. + version_results.push_back(MakeModel("phi-3-mini-generic-cpu:2", "phi-3-mini", 2, "phi-3")); + version_results.push_back(MakeModel("phi-3-mini-generic-cpu:1", "phi-3-mini", 1, "phi-3")); + version_results.push_back(MakeModel("phi-3-mini-generic-cpu:3", "phi-3-mini", 3, "phi-3")); + catalog.SetVersionFetchResults(std::move(version_results)); + + auto versions = catalog.GetModelVersions("phi-3", "", /*max_versions=*/1); + ASSERT_EQ(versions.size(), 1u); + EXPECT_EQ(versions.front()->Info().version, 3) + << "max_versions=1 should pick the latest version even when fetch order is arbitrary."; + } + TEST_F(BaseModelCatalogTest, GetModelVariantIdIntegratesFetchedVariant) { QueryingTestCatalog catalog(logger_); catalog.AddModel(MakeModel("phi-3-mini:2", "phi-3-mini", 2, "phi-3")); @@ -359,3 +375,22 @@ TEST_F(BaseModelCatalogTest, GetModelVariantIdIntegratesFetchedVariant) { EXPECT_EQ(container->Variants().size(), 2u) << "ID-based fetches should still integrate so download-specific lookups persist in the catalog."; } + +TEST_F(BaseModelCatalogTest, GetModelVariantIdIntegrationPreservesPriorityOrdering) { + QueryingTestCatalog catalog(logger_); + catalog.AddModel(MakeModel("phi-3-mini-generic-cpu:1", "phi-3-mini", 1, "phi-3")); + + std::vector id_results; + id_results.push_back(MakeModel("phi-3-mini-npu:1", "phi-3-mini", 1, "phi-3")); + catalog.SetIdFetchResults(std::move(id_results)); + + auto* fetched = catalog.GetModelVariant("phi-3-mini-npu:1"); + ASSERT_NE(fetched, nullptr); + + auto* container = catalog.GetModel("phi-3"); + ASSERT_NE(container, nullptr); + auto variants = container->Variants(); + ASSERT_EQ(variants.size(), 2u); + EXPECT_EQ(variants.front()->Info().model_id, "phi-3-mini-npu:1") + << "Integrated variants should be re-sorted so higher-priority devices stay first."; +} From bbfb6b4b84a1de7b979a469ae35e1c436e1dbe16 Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Sat, 27 Jun 2026 00:24:35 -0700 Subject: [PATCH 18/20] Align with CompareModelsForSort --- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 160 ++----------------- sdk_v2/cpp/src/model.cc | 135 ++++++++++++---- sdk_v2/cpp/src/model.h | 24 ++- 3 files changed, 134 insertions(+), 185 deletions(-) diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index 7190e23ab..c6b456e49 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -5,11 +5,9 @@ #include #include "exception.h" -#include "util/string_utils.h" #include #include -#include #include #include #include @@ -17,114 +15,11 @@ namespace fl { -namespace { - -// --------------------------------------------------------------------------- -// Model priority sort — ports C# AzureFoundryService.CompareModelsForSort -// --------------------------------------------------------------------------- - -/// Case-insensitive substring search. -bool ContainsCaseInsensitive(const std::string& text, const std::string& pattern) { - auto it = std::search(text.begin(), text.end(), - pattern.begin(), pattern.end(), - [](char a, char b) { return std::tolower(static_cast(a)) == - std::tolower(static_cast(b)); }); - return it != text.end(); -} - -/// Extract device-type priority from model_id. -/// Format: -: -/// Returns: 0(NPU) < 1(vendor-GPU) < 2(CUDA-GPU) < 3(generic-GPU) -/// < 4(vendor-CPU) < 5(generic-CPU) < 6(unknown) -int GetModelDevicePriority(const std::string& model_id) { - if (ContainsCaseInsensitive(model_id, "-npu:")) { - return 0; - } - - // Check generic-gpu before -gpu: so "-generic-gpu:" isn't caught by the broader "-gpu:" check. - if (ContainsCaseInsensitive(model_id, "-generic-gpu:")) { - return 3; - } - - if (ContainsCaseInsensitive(model_id, "-cuda-gpu:")) { - return 2; - } - - if (ContainsCaseInsensitive(model_id, "-gpu:")) { - return 1; - } - - if (ContainsCaseInsensitive(model_id, "-generic-cpu:")) { - return 5; - } - - if (ContainsCaseInsensitive(model_id, "-cpu:")) { - return 4; - } - - return 6; -} - -/// Comparator for sorting variants by priority within the catalog. -/// Criteria (matching C# CompareModelsForSort): -/// 1. Device-type priority (ascending — lower number = better) -/// 2. Version number (descending — higher version first) -/// 3. CreatedAtUnix timestamp (descending — newer first) -bool CompareModelsForSort(const Model& m1, const Model& m2) { - const auto& info1 = m1.Info(); - const auto& info2 = m2.Info(); - - int p1 = GetModelDevicePriority(info1.model_id); - int p2 = GetModelDevicePriority(info2.model_id); - - if (p1 != p2) { - return p1 < p2; - } - - if (info1.version != info2.version) { - return info1.version > info2.version; - } - - int64_t created1 = info1.GetPropertyWithDefault(FOUNDRY_LOCAL_MODEL_PROP_CREATED_AT_UNIX_INT, int64_t{0}); - int64_t created2 = info2.GetPropertyWithDefault(FOUNDRY_LOCAL_MODEL_PROP_CREATED_AT_UNIX_INT, int64_t{0}); - - return created1 > created2; -} - -// Deterministic API output order: alias alpha, then name alpha, then version asc. -bool CompareModelPointersForVersionList(const Model* lhs, const Model* rhs) { - const auto& l = lhs->Info(); - const auto& r = rhs->Info(); - - const int alias_cmp = CompareCaseInsensitive(l.alias, r.alias); - if (alias_cmp != 0) { - return alias_cmp < 0; - } - - const int name_cmp = CompareCaseInsensitive(l.name, r.name); - if (name_cmp != 0) { - return name_cmp < 0; - } - - if (l.version != r.version) { - return l.version < r.version; - } - - return l.model_id < r.model_id; -} - -} // anonymous namespace - BaseModelCatalog::BaseModelCatalog(std::string name, ILogger& logger) : name_(std::move(name)), logger_(logger) {} BaseModelCatalog::~BaseModelCatalog() = default; void BaseModelCatalog::PopulateModels(std::vector variants) const { - // Sort variants by device priority (asc), version (desc), created_at (desc). - // This ensures the best variant ends up first in each alias group, matching the C# - // AzureFoundryService.SortModels() behavior. - std::stable_sort(variants.begin(), variants.end(), CompareModelsForSort); - // Group variants by alias into Model containers. // Matches C# Catalog.UpdateModels() pattern: // foreach (modelInfo) { find or create Model by alias, add variant } @@ -148,6 +43,10 @@ void BaseModelCatalog::PopulateModels(std::vector variants) const { } } + for (auto& [alias, model] : alias_to_model) { + model.SelectDefaultVariant(); + } + // On refresh: merge new models into stable storage. Existing models keep their addresses. // New aliases are appended. Existing aliases are left unchanged (their Model* stays valid). if (populated_) { @@ -196,10 +95,6 @@ void BaseModelCatalog::IntegrateVariants(std::vector variants) const { return; } - // Sort the incoming variants so newly-added ones land in priority order - // within their alias group (matches the sort applied by PopulateModels). - std::stable_sort(variants.begin(), variants.end(), CompareModelsForSort); - // Build a lookup of existing aliases -> containers so we can merge new // variants in O(1) per incoming variant. std::unordered_map alias_to_existing; @@ -246,17 +141,16 @@ void BaseModelCatalog::IntegrateVariants(std::vector variants) const { it->second->AddVariant(std::move(v)); ++added_variants; } - - // Keep container variant order consistent with catalog priority after append-based inserts. - it->second->SortVariants(CompareModelsForSort); } else { - // New alias: build a container in priority order (best first). + // New alias: build a container and choose default after all variants are added. auto first = std::move(alias_variants.front()); auto container = Model::MakeContainer(std::move(first)); for (size_t i = 1; i < alias_variants.size(); ++i) { container.AddVariant(std::move(alias_variants[i])); } + container.SelectDefaultVariant(); + models_.push_back(std::make_unique(std::move(container))); ++added_aliases; added_variants += alias_variants.size(); @@ -533,38 +427,14 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ } } - if (max_versions > 0 && !result.empty()) { - // Normalize order first so max_versions selection is independent of - // source fetch ordering. Group by variant name and place latest versions first. - std::stable_sort(result.begin(), result.end(), [](const Model* lhs, const Model* rhs) { - const auto& l = lhs->Info(); - const auto& r = rhs->Info(); - - const int name_cmp = CompareCaseInsensitive(l.name, r.name); - if (name_cmp != 0) { - return name_cmp < 0; - } + // Sort into best-first order. Within the same variant name, device priority is identical, + // so this also groups by name with latest version first — suitable for max_versions capping. + std::stable_sort(result.begin(), result.end(), [](const Model* a, const Model* b) { + return Model::CompareBestFirst(*a, *b); + }); - if (l.version != r.version) { - return l.version > r.version; - } - - const int lp = GetModelDevicePriority(l.model_id); - const int rp = GetModelDevicePriority(r.model_id); - if (lp != rp) { - return lp < rp; - } - - int64_t l_created = l.GetPropertyWithDefault(FOUNDRY_LOCAL_MODEL_PROP_CREATED_AT_UNIX_INT, int64_t{0}); - int64_t r_created = r.GetPropertyWithDefault(FOUNDRY_LOCAL_MODEL_PROP_CREATED_AT_UNIX_INT, int64_t{0}); - if (l_created != r_created) { - return l_created > r_created; - } - - return l.model_id < r.model_id; - }); - - // Enforce latest X per variant name from the normalized ordering. + if (max_versions > 0 && !result.empty()) { + // Enforce latest N per variant name from the best-first ordering. std::unordered_map selected_per_variant; std::vector limited; limited.reserve(result.size()); @@ -583,8 +453,6 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ result = std::move(limited); } - std::stable_sort(result.begin(), result.end(), CompareModelPointersForVersionList); - return result; } diff --git a/sdk_v2/cpp/src/model.cc b/sdk_v2/cpp/src/model.cc index c60542e98..1f06201ce 100644 --- a/sdk_v2/cpp/src/model.cc +++ b/sdk_v2/cpp/src/model.cc @@ -7,15 +7,97 @@ #include "inferencing/model_load_manager.h" #include "items/item.h" #include "items/text_item.h" +#include "util/string_utils.h" #include "utils.h" #include #include #include +#include namespace fl { +namespace { + +// --------------------------------------------------------------------------- +// Model priority sort — ports C# AzureFoundryService.CompareModelsForSort. +// --------------------------------------------------------------------------- + +bool ContainsCaseInsensitive(const std::string& text, const std::string& pattern) { + auto it = std::search(text.begin(), text.end(), + pattern.begin(), pattern.end(), + [](char a, char b) { return std::tolower(static_cast(a)) == + std::tolower(static_cast(b)); }); + return it != text.end(); +} + +/// Extract device-type priority from model_id. +/// Format: -: +/// Returns: 0(NPU) < 1(vendor-GPU) < 2(CUDA-GPU) < 3(generic-GPU) +/// < 4(vendor-CPU) < 5(generic-CPU) < 6(unknown) +int GetModelDevicePriority(const std::string& model_id) { + if (ContainsCaseInsensitive(model_id, "-npu:")) { + return 0; + } + + // Check generic-gpu before -gpu: so "-generic-gpu:" isn't caught by the broader "-gpu:" check. + if (ContainsCaseInsensitive(model_id, "-generic-gpu:")) { + return 3; + } + + if (ContainsCaseInsensitive(model_id, "-cuda-gpu:")) { + return 2; + } + + if (ContainsCaseInsensitive(model_id, "-gpu:")) { + return 1; + } + + if (ContainsCaseInsensitive(model_id, "-generic-cpu:")) { + return 5; + } + + if (ContainsCaseInsensitive(model_id, "-cpu:")) { + return 4; + } + + return 6; +} + +/// Comparator for sorting variants by priority within a container. +/// Criteria (matching C# CompareModelsForSort): +/// 1. Device-type priority (ascending — lower number = better) +/// 2. Version number (descending — higher version first) +/// 3. CreatedAtUnix timestamp (descending — newer first) +/// 4. model_id (ascending) as final tie-break +bool CompareModelsForSort(const Model& m1, const Model& m2) { + const auto& info1 = m1.Info(); + const auto& info2 = m2.Info(); + + int p1 = GetModelDevicePriority(info1.model_id); + int p2 = GetModelDevicePriority(info2.model_id); + + if (p1 != p2) { + return p1 < p2; + } + + if (info1.version != info2.version) { + return info1.version > info2.version; + } + + int64_t created1 = info1.GetPropertyWithDefault(FOUNDRY_LOCAL_MODEL_PROP_CREATED_AT_UNIX_INT, int64_t{0}); + int64_t created2 = info2.GetPropertyWithDefault(FOUNDRY_LOCAL_MODEL_PROP_CREATED_AT_UNIX_INT, int64_t{0}); + + if (created1 != created2) { + return created1 > created2; + } + + return info1.model_id < info2.model_id; +} + +} // namespace + // --------------------------------------------------------------------------- // Lifecycle // --------------------------------------------------------------------------- @@ -80,8 +162,8 @@ Model Model::FromModelInfo(ModelInfo info, Model Model::MakeContainer(Model first_variant) { Model container; - container.variants_.push_back(std::move(first_variant)); - container.selected_variant_ = &container.variants_.back(); + container.variants_.push_back(std::make_unique(std::move(first_variant))); + container.selected_variant_ = container.variants_.back().get(); return container; } @@ -92,43 +174,34 @@ void Model::AddVariant(Model variant) { std::lock_guard lock(state_mutex_); - // Prefer a cached variant over a non-cached selection (matches C# behavior). - bool prefer_new = variant.IsCached() && !selected_variant_->IsCached(); - - // Save selected variant's index before push_back (which may reallocate the vector, - // invalidating the old selected_variant_ pointer). - size_t selected_idx = static_cast(selected_variant_ - variants_.data()); + auto pos = std::upper_bound(variants_.begin(), variants_.end(), variant, + [](const Model& value, const std::unique_ptr& element) { + return CompareModelsForSort(value, *element); + }); - variants_.push_back(std::move(variant)); + variants_.insert(pos, std::make_unique(std::move(variant))); +} - if (prefer_new) { - selected_variant_ = &variants_.back(); - } else { - selected_variant_ = &variants_[selected_idx]; // Restore after potential reallocation - } +bool Model::CompareBestFirst(const Model& a, const Model& b) { + return CompareModelsForSort(a, b); } -void Model::SortVariants(const std::function& comparator) { +void Model::SelectDefaultVariant() { if (!IsContainer()) { - return; + FL_THROW(FOUNDRY_LOCAL_ERROR_INTERNAL, + "SelectDefaultVariant called on a non-container Model; use MakeContainer first"); } std::lock_guard lock(state_mutex_); - if (variants_.size() < 2) { - return; + for (auto& v : variants_) { + if (v->IsCached()) { + selected_variant_ = v.get(); + return; + } } - const std::string selected_id = selected_variant_->Info().model_id; - std::stable_sort(variants_.begin(), variants_.end(), comparator); - - auto selected_it = std::find_if(variants_.begin(), variants_.end(), - [&](const Model& m) { return m.Info().model_id == selected_id; }); - if (selected_it != variants_.end()) { - selected_variant_ = &(*selected_it); - } else { - selected_variant_ = &variants_.front(); - } + selected_variant_ = variants_.front().get(); } // --------------------------------------------------------------------------- @@ -168,7 +241,7 @@ std::vector Model::Variants() const { for (auto& v : variants_) { // const_cast: the *set* of variants is fixed (this method is const), but each // variant is independently mutable. See header. - result.push_back(const_cast(&v)); + result.push_back(const_cast(v.get())); } } else { result.push_back(const_cast(this)); @@ -285,8 +358,8 @@ void Model::SelectVariant(const Model& variant) { } for (auto& v : variants_) { - if (&v == &variant) { - selected_variant_ = &v; + if (v.get() == &variant) { + selected_variant_ = v.get(); return; } } diff --git a/sdk_v2/cpp/src/model.h b/sdk_v2/cpp/src/model.h index 0dc6f8745..90710768a 100644 --- a/sdk_v2/cpp/src/model.h +++ b/sdk_v2/cpp/src/model.h @@ -59,14 +59,21 @@ class Model { static Model MakeContainer(Model first_variant); /// Add a variant to this container. Requires IsContainer() to be true. - /// If the new variant is cached and the current selection is not, the new variant - /// becomes the selected variant (matches C# behavior). + /// The variant is inserted to keep the container's variant order best-first + /// (device priority asc, version desc, created-at desc). + /// + /// Does not change the current selection. Call SelectDefaultVariant once the + /// container has its full variant set. void AddVariant(Model variant); - /// Reorder variants in this container using the provided comparator. - /// Preserves the currently selected variant by model_id when possible. - /// No-op for leaf models. - void SortVariants(const std::function& comparator); + /// Choose the default selected variant from the current sorted variant list: + /// first cached variant if any, else the best variant. + /// Requires IsContainer() to be true. + void SelectDefaultVariant(); + + /// Best-first comparator: device priority asc, version desc, created-at desc, model_id asc. + /// Exposed so callers that return Model* lists can produce consistent ordering with Variants(). + static bool CompareBestFirst(const Model& a, const Model& b); // --- Properties --- @@ -159,8 +166,9 @@ class Model { DownloadManager* download_manager_ = nullptr; ModelLoadManager* model_load_manager_ = nullptr; - // Container data (empty/null for leaves). - std::vector variants_; + // Container data (empty/null for leaves). unique_ptr keeps Model addresses + // stable across vector growth/reordering. + std::vector> variants_; Model* selected_variant_ = nullptr; // non-null = this is a container // Guards variants_ across reader/writer threads (catalog refresh adding variants From 2f9d1d25a1be85adcd20611e1d0c79fa41805366 Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Sat, 27 Jun 2026 15:32:28 -0700 Subject: [PATCH 19/20] Resolved "Replacing on each call creates potential issues on the client side" --- .../include/foundry_local/foundry_local_c.h | 3 +- .../include/foundry_local/foundry_local_cpp.h | 3 +- sdk_v2/cpp/src/catalog.h | 3 +- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 11 +++---- sdk_v2/cpp/src/catalog/base_model_catalog.h | 5 ++-- .../internal_api/base_model_catalog_test.cc | 30 +++++++++++++++++++ 6 files changed, 45 insertions(+), 10 deletions(-) diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h index 51bdae1eb..045f3930c 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_c.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_c.h @@ -963,7 +963,8 @@ struct flCatalogApi { /// negative value) for no per-model-name cap. /// Each call performs a fresh catalog query; results are not integrated into the /// catalog's main lookup indices. Returned handles are owned by the catalog until - /// the next GetModelVersions call on that catalog or until the catalog is released. + /// the next GetModelVersions call for the same alias or until the catalog is released. + /// Queries for different aliases do not invalidate each other's results. /// Releasing the list does not invalidate the underlying model handles. FL_API_STATUS(GetModelVersions, _In_ const flCatalog* catalog, _In_ const char* model_alias, _In_opt_ const char* model_name, int32_t max_versions, _Outptr_ flModelList** out_models); diff --git a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h index c9fcab43a..fe6281302 100644 --- a/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h +++ b/sdk_v2/cpp/include/foundry_local/foundry_local_cpp.h @@ -772,7 +772,8 @@ class ICatalog { /// variant name (defaults to 50, matching the web service contract); pass 0 /// or a negative value for no per-variant cap. Each call performs a fresh /// query and the returned model handles remain valid until the next - /// GetModelVersions call on the same catalog or until the catalog is destroyed. + /// GetModelVersions call for the same alias or until the catalog is destroyed. + /// Queries for different aliases do not invalidate each other's results. virtual ModelList GetModelVersions(const std::string& model_alias, const std::string& variant_name = {}, int max_versions = 50) = 0; diff --git a/sdk_v2/cpp/src/catalog.h b/sdk_v2/cpp/src/catalog.h index 1d1392184..71aedbc1d 100644 --- a/sdk_v2/cpp/src/catalog.h +++ b/sdk_v2/cpp/src/catalog.h @@ -36,7 +36,8 @@ class ICatalog { /// catalog refresh applies and performs a fresh source query on each call. /// Results are not integrated into the catalog's main lookup indices. /// Returned pointers are owned by the catalog until the next - /// GetModelVersions call on that catalog or until the catalog is destroyed. + /// GetModelVersions call for the same alias or until the catalog is destroyed. + /// Queries for different aliases do not invalidate each other's results. /// /// `model_alias` is the alias of the model (e.g. "phi-4-mini") and must not /// be empty. diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index c6b456e49..2b3561499 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -401,15 +401,16 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ { std::lock_guard lock(mutex_); - version_query_models_.clear(); - version_query_models_.reserve(fetched.size()); + auto& bucket = version_query_models_[model_alias]; + bucket.clear(); + bucket.reserve(fetched.size()); for (auto& model : fetched) { - version_query_models_.push_back(std::make_unique(std::move(model))); + bucket.push_back(std::make_unique(std::move(model))); } - result.reserve(version_query_models_.size()); - for (auto& model : version_query_models_) { + result.reserve(bucket.size()); + for (auto& model : bucket) { if (!variant_name.empty() && model->Info().name != variant_name) { continue; } diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.h b/sdk_v2/cpp/src/catalog/base_model_catalog.h index da001ce71..526aad83c 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.h @@ -118,9 +118,10 @@ class BaseModelCatalog : public ICatalog { /// Thread-safe access: ensures catalog is populated, refreshes if allowed and stale. void EnsurePopulated(bool allow_refresh = false) const; - /// Transient storage for the most recent GetModelVersions query. Replaced on each call. + /// Per-alias transient storage for GetModelVersions queries. Each call replaces only the + /// entry for the queried alias, so pointers from prior queries on other aliases remain valid. /// These models are intentionally not integrated into the main lookup indices. - mutable std::vector> version_query_models_; + mutable std::unordered_map>> version_query_models_; std::string name_; ILogger& logger_; diff --git a/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc b/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc index 9d7959775..4e331d038 100644 --- a/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc +++ b/sdk_v2/cpp/test/internal_api/base_model_catalog_test.cc @@ -342,6 +342,36 @@ TEST_F(BaseModelCatalogTest, GetModelVersionsDoesNotIntegrateFetchedVariants) { << "GetModelVersions should not add fetched versions to the catalog's main indices."; } +TEST_F(BaseModelCatalogTest, GetModelVersionsCrossAliasPointersRemainValid) { + QueryingTestCatalog catalog(logger_); + catalog.AddModel(MakeModel("phi-3-mini:1", "phi-3-mini", 1, "phi-3")); + catalog.AddModel(MakeModel("llama:1", "llama", 1, "llama")); + + // Seed version results for both aliases. + std::vector phi3_versions; + phi3_versions.push_back(MakeModel("phi-3-mini:1", "phi-3-mini", 1, "phi-3")); + phi3_versions.push_back(MakeModel("phi-3-mini:2", "phi-3-mini", 2, "phi-3")); + catalog.SetVersionFetchResults(std::move(phi3_versions)); + + // First query: phi-3 + auto phi3_result = catalog.GetModelVersions("phi-3", "", 0); + ASSERT_EQ(phi3_result.size(), 2u); + Model* phi3_ptr = phi3_result[0]; + + // Second query: llama — must not invalidate phi3_ptr. + std::vector llama_versions; + llama_versions.push_back(MakeModel("llama:1", "llama", 1, "llama")); + llama_versions.push_back(MakeModel("llama:2", "llama", 2, "llama")); + catalog.SetVersionFetchResults(std::move(llama_versions)); + + auto llama_result = catalog.GetModelVersions("llama", "", 0); + ASSERT_EQ(llama_result.size(), 2u); + + // phi3_ptr must still be alive and accessible. + EXPECT_EQ(phi3_ptr->Info().alias, "phi-3") + << "Querying a different alias should not invalidate pointers from a prior GetModelVersions call."; +} + TEST_F(BaseModelCatalogTest, GetModelVersionsMaxVersionsSelectsLatestRegardlessOfFetchOrder) { QueryingTestCatalog catalog(logger_); From 3921cd304f38a5fb4d6a993a7b34596af339fe4f Mon Sep 17 00:00:00 2001 From: Selena Yang <179177246+selenayang888@users.noreply.github.com> Date: Sun, 28 Jun 2026 00:05:02 -0700 Subject: [PATCH 20/20] Fix the issue "using a different structure to the Model's returned by the default list" --- sdk_v2/cpp/src/catalog/base_model_catalog.cc | 28 +++++++++++++------- sdk_v2/cpp/src/catalog/base_model_catalog.h | 4 ++- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.cc b/sdk_v2/cpp/src/catalog/base_model_catalog.cc index 2b3561499..84463451e 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.cc +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.cc @@ -395,27 +395,35 @@ std::vector BaseModelCatalog::GetModelVersions(const std::string& model_ return {}; } + if (fetched.empty()) { + return {}; + } + std::vector result; auto idx = GetIndex(); { std::lock_guard lock(mutex_); - auto& bucket = version_query_models_[model_alias]; - bucket.clear(); - bucket.reserve(fetched.size()); - - for (auto& model : fetched) { - bucket.push_back(std::make_unique(std::move(model))); + // Build a container Model for this alias, mirroring the structure used by + // PopulateModels / IntegrateVariants. AddVariant maintains best-first order. + auto container = Model::MakeContainer(std::move(fetched.front())); + for (size_t i = 1; i < fetched.size(); ++i) { + container.AddVariant(std::move(fetched[i])); } - result.reserve(bucket.size()); - for (auto& model : bucket) { - if (!variant_name.empty() && model->Info().name != variant_name) { + container.SelectDefaultVariant(); + version_query_models_[model_alias] = std::make_unique(std::move(container)); + + // Return variant pointers from the container (like Model_GetVariantsImpl). + auto variants = version_query_models_[model_alias]->Variants(); + result.reserve(variants.size()); + for (auto* v : variants) { + if (!variant_name.empty() && v->Info().name != variant_name) { continue; } - result.push_back(model.get()); + result.push_back(v); } } diff --git a/sdk_v2/cpp/src/catalog/base_model_catalog.h b/sdk_v2/cpp/src/catalog/base_model_catalog.h index 526aad83c..36229d689 100644 --- a/sdk_v2/cpp/src/catalog/base_model_catalog.h +++ b/sdk_v2/cpp/src/catalog/base_model_catalog.h @@ -121,7 +121,9 @@ class BaseModelCatalog : public ICatalog { /// Per-alias transient storage for GetModelVersions queries. Each call replaces only the /// entry for the queried alias, so pointers from prior queries on other aliases remain valid. /// These models are intentionally not integrated into the main lookup indices. - mutable std::unordered_map>> version_query_models_; + /// Each entry is a container Model (created via MakeContainer) whose variants are the + /// individual version results — mirroring the structure used by the main models_ list. + mutable std::unordered_map> version_query_models_; std::string name_; ILogger& logger_;