blob: 3788e4a9510afc554c40e621d39dc989c4f15e1f [file] [log] [blame]
// services/network/public/mojom/network_service.mojom-blink.h is auto generated by mojom_bindings_generator.py, do not edit
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_BLINK_H_
#define SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_BLINK_H_
#include <stdint.h>
#include <limits>
#include <type_traits>
#include <utility>
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "mojo/public/cpp/bindings/clone_traits.h"
#include "mojo/public/cpp/bindings/equals_traits.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/struct_ptr.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "mojo/public/cpp/bindings/union_traits.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"
#include "services/network/public/mojom/network_service.mojom-shared.h"
#include "services/network/public/mojom/network_service.mojom-blink-forward.h"
#include "mojo/public/mojom/base/byte_string.mojom-blink.h"
#include "mojo/public/mojom/base/file.mojom-blink.h"
#include "mojo/public/mojom/base/file_path.mojom-blink-forward.h"
#include "mojo/public/mojom/base/memory_pressure_level.mojom-blink-forward.h"
#include "mojo/public/mojom/base/read_only_buffer.mojom-blink.h"
#include "mojo/public/mojom/base/read_only_file.mojom-blink-forward.h"
#include "mojo/public/mojom/base/string16.mojom-blink-forward.h"
#include "mojo/public/mojom/base/time.mojom-blink.h"
#include "mojo/public/mojom/base/unguessable_token.mojom-blink-forward.h"
#include "mojo/public/mojom/base/values.mojom-blink.h"
#include "sandbox/policy/mojom/context.mojom-blink-forward.h"
#include "sandbox/policy/mojom/sandbox.mojom-blink-forward.h"
#include "services/network/public/mojom/host_resolver.mojom-blink-forward.h"
#include "services/network/public/mojom/http_raw_headers.mojom-blink-forward.h"
#include "services/network/public/mojom/key_pinning.mojom-blink-forward.h"
#include "services/network/public/mojom/mutable_network_traffic_annotation_tag.mojom-blink.h"
#include "services/network/public/mojom/net_log.mojom-blink-forward.h"
#include "services/network/public/mojom/network_change_manager.mojom-blink-forward.h"
#include "services/network/public/mojom/network_context.mojom-blink-forward.h"
#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h"
#include "services/network/public/mojom/network_interface.mojom-blink.h"
#include "services/network/public/mojom/network_param.mojom-blink-forward.h"
#include "services/network/public/mojom/network_quality_estimator_manager.mojom-blink-forward.h"
#include "services/network/public/mojom/network_service_test.mojom-blink-forward.h"
#include "services/network/public/mojom/schemeful_site.mojom-blink.h"
#include "services/network/public/mojom/trust_tokens.mojom-blink-forward.h"
#include "services/network/public/mojom/parsed_headers.mojom-blink-forward.h"
#include "services/network/public/mojom/url_loader_network_service_observer.mojom-blink-forward.h"
#include "services/network/public/mojom/url_request.mojom-blink-forward.h"
#include "services/network/public/mojom/url_response_head.mojom-blink-forward.h"
#include "services/network/public/mojom/client_security_state.mojom-blink-forward.h"
#include "url/mojom/origin.mojom-blink.h"
#include "url/mojom/url.mojom-blink.h"
#include "mojo/public/mojom/base/application_state.mojom-blink-forward.h"
#include "services/network/public/mojom/ct_log_info.mojom-blink-forward.h"
#include "mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h"
#include "mojo/public/cpp/bindings/lib/wtf_hash_util.h"
#include "third_party/blink/renderer/platform/wtf/hash_functions.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "mojo/public/cpp/bindings/lib/control_message_handler.h"
#include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h"
#include "third_party/blink/public/platform/web_common.h"
#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif
namespace network {
namespace mojom {
namespace blink {
class NetworkServiceProxy;
template <typename ImplRefTraits>
class NetworkServiceStub;
class NetworkServiceRequestValidator;
class NetworkServiceResponseValidator;
// @generated_from: network.mojom.NetworkService
class BLINK_PLATFORM_EXPORT NetworkService
: public NetworkServiceInterfaceBase {
public:
static const char Name_[];
static uint32_t MessageToStableIPCHash_(mojo::Message& message);
static const char* MessageToMethodName_(mojo::Message& message);
static constexpr auto kServiceSandbox = sandbox::mojom::Sandbox::kNetwork;
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static constexpr bool HasSyncMethods_ = false;
static constexpr bool HasUninterruptableMethods_ = false;
using Base_ = NetworkServiceInterfaceBase;
using Proxy_ = NetworkServiceProxy;
template <typename ImplRefTraits>
using Stub_ = NetworkServiceStub<ImplRefTraits>;
using RequestValidator_ = NetworkServiceRequestValidator;
using ResponseValidator_ = NetworkServiceResponseValidator;
enum MethodMinVersions : uint32_t {
kSetParamsMinVersion = 0,
kStartNetLogMinVersion = 0,
kAttachNetLogProxyMinVersion = 0,
kSetSSLKeyLogFileMinVersion = 0,
kCreateNetworkContextMinVersion = 0,
kConfigureStubHostResolverMinVersion = 0,
kDisableQuicMinVersion = 0,
kSetUpHttpAuthMinVersion = 0,
kConfigureHttpAuthPrefsMinVersion = 0,
kSetRawHeadersAccessMinVersion = 0,
kSetMaxConnectionsPerProxyMinVersion = 0,
kGetNetworkChangeManagerMinVersion = 0,
kGetNetworkQualityEstimatorManagerMinVersion = 0,
kGetDnsConfigChangeManagerMinVersion = 0,
kGetNetworkListMinVersion = 0,
kUpdateCRLSetMinVersion = 0,
kOnCertDBChangedMinVersion = 0,
kSetEncryptionKeyMinVersion = 0,
kOnMemoryPressureMinVersion = 0,
kOnPeerToPeerConnectionsCountChangeMinVersion = 0,
kOnApplicationStateChangeMinVersion = 0,
kSetEnvironmentMinVersion = 0,
kSetTrustTokenKeyCommitmentsMinVersion = 0,
kClearSCTAuditingCacheMinVersion = 0,
kConfigureSCTAuditingMinVersion = 0,
kUpdateCtLogListMinVersion = 0,
kUpdateCtKnownPopularSCTsMinVersion = 0,
kSetCtEnforcementEnabledMinVersion = 0,
kUpdateKeyPinsListMinVersion = 0,
kDumpWithoutCrashingMinVersion = 0,
kBindTestInterfaceMinVersion = 0,
kSetFirstPartySetsMinVersion = 0,
kSetExplicitlyAllowedPortsMinVersion = 0,
kParseHeadersMinVersion = 0,
};
virtual ~NetworkService() = default;
// @generated_from: network.mojom.NetworkService.SetParams
virtual void SetParams(NetworkServiceParamsPtr params) = 0;
// @generated_from: network.mojom.NetworkService.StartNetLog
virtual void StartNetLog(::base::File file, ::network::mojom::blink::NetLogCaptureMode capture_mode, ::base::Value constants) = 0;
// @generated_from: network.mojom.NetworkService.AttachNetLogProxy
virtual void AttachNetLogProxy(::mojo::PendingRemote<::network::mojom::blink::NetLogProxySource> proxy_source, ::mojo::PendingReceiver<::network::mojom::blink::NetLogProxySink> proxy_sink) = 0;
// @generated_from: network.mojom.NetworkService.SetSSLKeyLogFile
virtual void SetSSLKeyLogFile(::base::File file) = 0;
// @generated_from: network.mojom.NetworkService.CreateNetworkContext
virtual void CreateNetworkContext(::mojo::PendingReceiver<::network::mojom::blink::NetworkContext> context, ::network::mojom::blink::NetworkContextParamsPtr params) = 0;
// @generated_from: network.mojom.NetworkService.ConfigureStubHostResolver
virtual void ConfigureStubHostResolver(bool insecure_dns_client_enabled, ::network::mojom::blink::SecureDnsMode secure_dns_mode, ::network::mojom::blink::DnsOverHttpsConfigPtr dns_over_https_config, bool additional_dns_types_enabled) = 0;
// @generated_from: network.mojom.NetworkService.DisableQuic
virtual void DisableQuic() = 0;
// @generated_from: network.mojom.NetworkService.SetUpHttpAuth
virtual void SetUpHttpAuth(HttpAuthStaticParamsPtr http_auth_static_params) = 0;
// @generated_from: network.mojom.NetworkService.ConfigureHttpAuthPrefs
virtual void ConfigureHttpAuthPrefs(HttpAuthDynamicParamsPtr http_auth_dynamic_params) = 0;
// @generated_from: network.mojom.NetworkService.SetRawHeadersAccess
virtual void SetRawHeadersAccess(int32_t process_id, const WTF::Vector<::scoped_refptr<const ::blink::SecurityOrigin>>& origins) = 0;
// @generated_from: network.mojom.NetworkService.SetMaxConnectionsPerProxy
virtual void SetMaxConnectionsPerProxy(int32_t max_connections) = 0;
// @generated_from: network.mojom.NetworkService.GetNetworkChangeManager
virtual void GetNetworkChangeManager(::mojo::PendingReceiver<::network::mojom::blink::NetworkChangeManager> network_change_manager) = 0;
// @generated_from: network.mojom.NetworkService.GetNetworkQualityEstimatorManager
virtual void GetNetworkQualityEstimatorManager(::mojo::PendingReceiver<::network::mojom::blink::NetworkQualityEstimatorManager> receiver) = 0;
// @generated_from: network.mojom.NetworkService.GetDnsConfigChangeManager
virtual void GetDnsConfigChangeManager(::mojo::PendingReceiver<::network::mojom::blink::DnsConfigChangeManager> receiver) = 0;
using GetNetworkListCallback = base::OnceCallback<void(const absl::optional<WTF::Vector<::net::NetworkInterface>>&)>;
// @generated_from: network.mojom.NetworkService.GetNetworkList
virtual void GetNetworkList(uint32_t policy, GetNetworkListCallback callback) = 0;
using UpdateCRLSetCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.UpdateCRLSet
virtual void UpdateCRLSet(::base::span<const ::uint8_t> crl_set, UpdateCRLSetCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.OnCertDBChanged
virtual void OnCertDBChanged() = 0;
// @generated_from: network.mojom.NetworkService.SetEncryptionKey
virtual void SetEncryptionKey(const std::string& encryption_key) = 0;
// @generated_from: network.mojom.NetworkService.OnMemoryPressure
virtual void OnMemoryPressure(::mojo_base::mojom::blink::MemoryPressureLevel memory_pressure_level) = 0;
// @generated_from: network.mojom.NetworkService.OnPeerToPeerConnectionsCountChange
virtual void OnPeerToPeerConnectionsCountChange(uint32_t count) = 0;
// @generated_from: network.mojom.NetworkService.OnApplicationStateChange
virtual void OnApplicationStateChange(::mojo_base::mojom::blink::ApplicationState state) = 0;
// @generated_from: network.mojom.NetworkService.SetEnvironment
virtual void SetEnvironment(WTF::Vector<EnvironmentVariablePtr> environment) = 0;
using SetTrustTokenKeyCommitmentsCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.SetTrustTokenKeyCommitments
virtual void SetTrustTokenKeyCommitments(const WTF::String& raw_commitments, SetTrustTokenKeyCommitmentsCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.ClearSCTAuditingCache
virtual void ClearSCTAuditingCache() = 0;
// @generated_from: network.mojom.NetworkService.ConfigureSCTAuditing
virtual void ConfigureSCTAuditing(SCTAuditingConfigurationPtr configuration) = 0;
using UpdateCtLogListCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.UpdateCtLogList
virtual void UpdateCtLogList(WTF::Vector<::network::mojom::blink::CTLogInfoPtr> log_list, ::base::Time update_time, UpdateCtLogListCallback callback) = 0;
using UpdateCtKnownPopularSCTsCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.UpdateCtKnownPopularSCTs
virtual void UpdateCtKnownPopularSCTs(const WTF::Vector<WTF::Vector<uint8_t>>& sct_hashes, UpdateCtKnownPopularSCTsCallback callback) = 0;
using SetCtEnforcementEnabledCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.SetCtEnforcementEnabled
virtual void SetCtEnforcementEnabled(bool enabled, SetCtEnforcementEnabledCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.UpdateKeyPinsList
virtual void UpdateKeyPinsList(::network::mojom::blink::PinListPtr pin_list, ::base::Time update_time) = 0;
// @generated_from: network.mojom.NetworkService.DumpWithoutCrashing
virtual void DumpWithoutCrashing(::base::Time dump_request_time) = 0;
// @generated_from: network.mojom.NetworkService.BindTestInterface
virtual void BindTestInterface(::mojo::PendingReceiver<::network::mojom::blink::NetworkServiceTest> receiver) = 0;
// @generated_from: network.mojom.NetworkService.SetFirstPartySets
virtual void SetFirstPartySets(const WTF::HashMap<::blink::BlinkSchemefulSite, ::blink::BlinkSchemefulSite>& sets) = 0;
// @generated_from: network.mojom.NetworkService.SetExplicitlyAllowedPorts
virtual void SetExplicitlyAllowedPorts(const WTF::Vector<uint16_t>& ports) = 0;
using ParseHeadersCallback = base::OnceCallback<void(::network::mojom::blink::ParsedHeadersPtr)>;
// @generated_from: network.mojom.NetworkService.ParseHeaders
virtual void ParseHeaders(const ::blink::KURL& url, ::network::mojom::blink::HttpResponseHeadersPtr headers, ParseHeadersCallback callback) = 0;
};
// @generated_from: network.mojom.NetworkService
class BLINK_PLATFORM_EXPORT NetworkServiceProxy
: public NetworkService {
public:
using InterfaceType = NetworkService;
explicit NetworkServiceProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: network.mojom.NetworkService.SetParams
void SetParams(NetworkServiceParamsPtr params) final;
// @generated_from: network.mojom.NetworkService.StartNetLog
void StartNetLog(::base::File file, ::network::mojom::blink::NetLogCaptureMode capture_mode, ::base::Value constants) final;
// @generated_from: network.mojom.NetworkService.AttachNetLogProxy
void AttachNetLogProxy(::mojo::PendingRemote<::network::mojom::blink::NetLogProxySource> proxy_source, ::mojo::PendingReceiver<::network::mojom::blink::NetLogProxySink> proxy_sink) final;
// @generated_from: network.mojom.NetworkService.SetSSLKeyLogFile
void SetSSLKeyLogFile(::base::File file) final;
// @generated_from: network.mojom.NetworkService.CreateNetworkContext
void CreateNetworkContext(::mojo::PendingReceiver<::network::mojom::blink::NetworkContext> context, ::network::mojom::blink::NetworkContextParamsPtr params) final;
// @generated_from: network.mojom.NetworkService.ConfigureStubHostResolver
void ConfigureStubHostResolver(bool insecure_dns_client_enabled, ::network::mojom::blink::SecureDnsMode secure_dns_mode, ::network::mojom::blink::DnsOverHttpsConfigPtr dns_over_https_config, bool additional_dns_types_enabled) final;
// @generated_from: network.mojom.NetworkService.DisableQuic
void DisableQuic() final;
// @generated_from: network.mojom.NetworkService.SetUpHttpAuth
void SetUpHttpAuth(HttpAuthStaticParamsPtr http_auth_static_params) final;
// @generated_from: network.mojom.NetworkService.ConfigureHttpAuthPrefs
void ConfigureHttpAuthPrefs(HttpAuthDynamicParamsPtr http_auth_dynamic_params) final;
// @generated_from: network.mojom.NetworkService.SetRawHeadersAccess
void SetRawHeadersAccess(int32_t process_id, const WTF::Vector<::scoped_refptr<const ::blink::SecurityOrigin>>& origins) final;
// @generated_from: network.mojom.NetworkService.SetMaxConnectionsPerProxy
void SetMaxConnectionsPerProxy(int32_t max_connections) final;
// @generated_from: network.mojom.NetworkService.GetNetworkChangeManager
void GetNetworkChangeManager(::mojo::PendingReceiver<::network::mojom::blink::NetworkChangeManager> network_change_manager) final;
// @generated_from: network.mojom.NetworkService.GetNetworkQualityEstimatorManager
void GetNetworkQualityEstimatorManager(::mojo::PendingReceiver<::network::mojom::blink::NetworkQualityEstimatorManager> receiver) final;
// @generated_from: network.mojom.NetworkService.GetDnsConfigChangeManager
void GetDnsConfigChangeManager(::mojo::PendingReceiver<::network::mojom::blink::DnsConfigChangeManager> receiver) final;
// @generated_from: network.mojom.NetworkService.GetNetworkList
void GetNetworkList(uint32_t policy, GetNetworkListCallback callback) final;
// @generated_from: network.mojom.NetworkService.UpdateCRLSet
void UpdateCRLSet(::base::span<const ::uint8_t> crl_set, UpdateCRLSetCallback callback) final;
// @generated_from: network.mojom.NetworkService.OnCertDBChanged
void OnCertDBChanged() final;
// @generated_from: network.mojom.NetworkService.SetEncryptionKey
void SetEncryptionKey(const std::string& encryption_key) final;
// @generated_from: network.mojom.NetworkService.OnMemoryPressure
void OnMemoryPressure(::mojo_base::mojom::blink::MemoryPressureLevel memory_pressure_level) final;
// @generated_from: network.mojom.NetworkService.OnPeerToPeerConnectionsCountChange
void OnPeerToPeerConnectionsCountChange(uint32_t count) final;
// @generated_from: network.mojom.NetworkService.OnApplicationStateChange
void OnApplicationStateChange(::mojo_base::mojom::blink::ApplicationState state) final;
// @generated_from: network.mojom.NetworkService.SetEnvironment
void SetEnvironment(WTF::Vector<EnvironmentVariablePtr> environment) final;
// @generated_from: network.mojom.NetworkService.SetTrustTokenKeyCommitments
void SetTrustTokenKeyCommitments(const WTF::String& raw_commitments, SetTrustTokenKeyCommitmentsCallback callback) final;
// @generated_from: network.mojom.NetworkService.ClearSCTAuditingCache
void ClearSCTAuditingCache() final;
// @generated_from: network.mojom.NetworkService.ConfigureSCTAuditing
void ConfigureSCTAuditing(SCTAuditingConfigurationPtr configuration) final;
// @generated_from: network.mojom.NetworkService.UpdateCtLogList
void UpdateCtLogList(WTF::Vector<::network::mojom::blink::CTLogInfoPtr> log_list, ::base::Time update_time, UpdateCtLogListCallback callback) final;
// @generated_from: network.mojom.NetworkService.UpdateCtKnownPopularSCTs
void UpdateCtKnownPopularSCTs(const WTF::Vector<WTF::Vector<uint8_t>>& sct_hashes, UpdateCtKnownPopularSCTsCallback callback) final;
// @generated_from: network.mojom.NetworkService.SetCtEnforcementEnabled
void SetCtEnforcementEnabled(bool enabled, SetCtEnforcementEnabledCallback callback) final;
// @generated_from: network.mojom.NetworkService.UpdateKeyPinsList
void UpdateKeyPinsList(::network::mojom::blink::PinListPtr pin_list, ::base::Time update_time) final;
// @generated_from: network.mojom.NetworkService.DumpWithoutCrashing
void DumpWithoutCrashing(::base::Time dump_request_time) final;
// @generated_from: network.mojom.NetworkService.BindTestInterface
void BindTestInterface(::mojo::PendingReceiver<::network::mojom::blink::NetworkServiceTest> receiver) final;
// @generated_from: network.mojom.NetworkService.SetFirstPartySets
void SetFirstPartySets(const WTF::HashMap<::blink::BlinkSchemefulSite, ::blink::BlinkSchemefulSite>& sets) final;
// @generated_from: network.mojom.NetworkService.SetExplicitlyAllowedPorts
void SetExplicitlyAllowedPorts(const WTF::Vector<uint16_t>& ports) final;
// @generated_from: network.mojom.NetworkService.ParseHeaders
void ParseHeaders(const ::blink::KURL& url, ::network::mojom::blink::HttpResponseHeadersPtr headers, ParseHeadersCallback callback) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class BLINK_PLATFORM_EXPORT NetworkServiceStubDispatch {
public:
static bool Accept(NetworkService* impl, mojo::Message* message);
static bool AcceptWithResponder(
NetworkService* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<NetworkService>>
class NetworkServiceStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
NetworkServiceStub() = default;
~NetworkServiceStub() override = default;
void set_sink(ImplPointerType sink) { sink_ = std::move(sink); }
ImplPointerType& sink() { return sink_; }
bool Accept(mojo::Message* message) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return NetworkServiceStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return NetworkServiceStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class BLINK_PLATFORM_EXPORT NetworkServiceRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class BLINK_PLATFORM_EXPORT NetworkServiceResponseValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
// @generated_from: network.mojom.HttpAuthStaticParams
class BLINK_PLATFORM_EXPORT HttpAuthStaticParams {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<HttpAuthStaticParams, T>::value>;
using DataView = HttpAuthStaticParamsDataView;
using Data_ = internal::HttpAuthStaticParams_Data;
template <typename... Args>
static HttpAuthStaticParamsPtr New(Args&&... args) {
return HttpAuthStaticParamsPtr(
absl::in_place, std::forward<Args>(args)...);
}
template <typename U>
static HttpAuthStaticParamsPtr From(const U& u) {
return mojo::TypeConverter<HttpAuthStaticParamsPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, HttpAuthStaticParams>::Convert(*this);
}
HttpAuthStaticParams();
explicit HttpAuthStaticParams(
const WTF::String& gssapi_library_name);
~HttpAuthStaticParams();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = HttpAuthStaticParamsPtr>
HttpAuthStaticParamsPtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
size_t Hash(size_t seed) const;
template <typename UserType>
static WTF::Vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
HttpAuthStaticParams::DataView, WTF::Vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
HttpAuthStaticParams::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::HttpAuthStaticParams_UnserializedMessageContext<
UserType, HttpAuthStaticParams::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<HttpAuthStaticParams::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return HttpAuthStaticParams::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::HttpAuthStaticParams_UnserializedMessageContext<
UserType, HttpAuthStaticParams::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<HttpAuthStaticParams::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.HttpAuthStaticParams.gssapi_library_name
WTF::String gssapi_library_name;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.EnvironmentVariable
class BLINK_PLATFORM_EXPORT EnvironmentVariable {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<EnvironmentVariable, T>::value>;
using DataView = EnvironmentVariableDataView;
using Data_ = internal::EnvironmentVariable_Data;
template <typename... Args>
static EnvironmentVariablePtr New(Args&&... args) {
return EnvironmentVariablePtr(
absl::in_place, std::forward<Args>(args)...);
}
template <typename U>
static EnvironmentVariablePtr From(const U& u) {
return mojo::TypeConverter<EnvironmentVariablePtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, EnvironmentVariable>::Convert(*this);
}
EnvironmentVariable();
EnvironmentVariable(
const WTF::String& name,
const WTF::String& value);
~EnvironmentVariable();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = EnvironmentVariablePtr>
EnvironmentVariablePtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
size_t Hash(size_t seed) const;
template <typename UserType>
static WTF::Vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
EnvironmentVariable::DataView, WTF::Vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
EnvironmentVariable::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::EnvironmentVariable_UnserializedMessageContext<
UserType, EnvironmentVariable::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<EnvironmentVariable::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return EnvironmentVariable::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::EnvironmentVariable_UnserializedMessageContext<
UserType, EnvironmentVariable::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<EnvironmentVariable::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.EnvironmentVariable.name
WTF::String name;
// @generated_from: network.mojom.EnvironmentVariable.value
WTF::String value;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.HttpAuthDynamicParams
class BLINK_PLATFORM_EXPORT HttpAuthDynamicParams {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<HttpAuthDynamicParams, T>::value>;
using DataView = HttpAuthDynamicParamsDataView;
using Data_ = internal::HttpAuthDynamicParams_Data;
template <typename... Args>
static HttpAuthDynamicParamsPtr New(Args&&... args) {
return HttpAuthDynamicParamsPtr(
absl::in_place, std::forward<Args>(args)...);
}
template <typename U>
static HttpAuthDynamicParamsPtr From(const U& u) {
return mojo::TypeConverter<HttpAuthDynamicParamsPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, HttpAuthDynamicParams>::Convert(*this);
}
HttpAuthDynamicParams();
HttpAuthDynamicParams(
absl::optional<WTF::Vector<WTF::String>> allowed_schemes,
WTF::Vector<WTF::String> patterns_allowed_to_use_all_schemes,
const WTF::String& server_allowlist,
const WTF::String& delegate_allowlist,
bool delegate_by_kdc_policy,
bool negotiate_disable_cname_lookup,
bool enable_negotiate_port,
bool ntlm_v2_enabled,
const WTF::String& android_negotiate_account_type,
bool allow_gssapi_library_load,
bool basic_over_http_enabled);
~HttpAuthDynamicParams();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = HttpAuthDynamicParamsPtr>
HttpAuthDynamicParamsPtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename UserType>
static WTF::Vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
HttpAuthDynamicParams::DataView, WTF::Vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
HttpAuthDynamicParams::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::HttpAuthDynamicParams_UnserializedMessageContext<
UserType, HttpAuthDynamicParams::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<HttpAuthDynamicParams::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return HttpAuthDynamicParams::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::HttpAuthDynamicParams_UnserializedMessageContext<
UserType, HttpAuthDynamicParams::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<HttpAuthDynamicParams::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.HttpAuthDynamicParams.allowed_schemes
absl::optional<WTF::Vector<WTF::String>> allowed_schemes;
// @generated_from: network.mojom.HttpAuthDynamicParams.patterns_allowed_to_use_all_schemes
WTF::Vector<WTF::String> patterns_allowed_to_use_all_schemes;
// @generated_from: network.mojom.HttpAuthDynamicParams.server_allowlist
WTF::String server_allowlist;
// @generated_from: network.mojom.HttpAuthDynamicParams.delegate_allowlist
WTF::String delegate_allowlist;
// @generated_from: network.mojom.HttpAuthDynamicParams.delegate_by_kdc_policy
bool delegate_by_kdc_policy;
// @generated_from: network.mojom.HttpAuthDynamicParams.negotiate_disable_cname_lookup
bool negotiate_disable_cname_lookup;
// @generated_from: network.mojom.HttpAuthDynamicParams.enable_negotiate_port
bool enable_negotiate_port;
// @generated_from: network.mojom.HttpAuthDynamicParams.ntlm_v2_enabled
bool ntlm_v2_enabled;
// @generated_from: network.mojom.HttpAuthDynamicParams.android_negotiate_account_type
WTF::String android_negotiate_account_type;
// @generated_from: network.mojom.HttpAuthDynamicParams.allow_gssapi_library_load
bool allow_gssapi_library_load;
// @generated_from: network.mojom.HttpAuthDynamicParams.basic_over_http_enabled
bool basic_over_http_enabled;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.NetworkServiceParams
class BLINK_PLATFORM_EXPORT NetworkServiceParams {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<NetworkServiceParams, T>::value>;
using DataView = NetworkServiceParamsDataView;
using Data_ = internal::NetworkServiceParams_Data;
template <typename... Args>
static NetworkServiceParamsPtr New(Args&&... args) {
return NetworkServiceParamsPtr(
absl::in_place, std::forward<Args>(args)...);
}
template <typename U>
static NetworkServiceParamsPtr From(const U& u) {
return mojo::TypeConverter<NetworkServiceParamsPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, NetworkServiceParams>::Convert(*this);
}
NetworkServiceParams();
NetworkServiceParams(
::network::mojom::blink::ConnectionType initial_connection_type,
::network::mojom::blink::ConnectionSubtype initial_connection_subtype,
WTF::Vector<EnvironmentVariablePtr> environment,
::mojo::PendingRemote<::network::mojom::blink::URLLoaderNetworkServiceObserver> default_observer,
bool first_party_sets_enabled);
NetworkServiceParams(const NetworkServiceParams&) = delete;
NetworkServiceParams& operator=(const NetworkServiceParams&) = delete;
~NetworkServiceParams();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = NetworkServiceParamsPtr>
NetworkServiceParamsPtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
NetworkServiceParams::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::NetworkServiceParams_UnserializedMessageContext<
UserType, NetworkServiceParams::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<NetworkServiceParams::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return NetworkServiceParams::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::NetworkServiceParams_UnserializedMessageContext<
UserType, NetworkServiceParams::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<NetworkServiceParams::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.NetworkServiceParams.initial_connection_type
::network::mojom::blink::ConnectionType initial_connection_type;
// @generated_from: network.mojom.NetworkServiceParams.initial_connection_subtype
::network::mojom::blink::ConnectionSubtype initial_connection_subtype;
// @generated_from: network.mojom.NetworkServiceParams.environment
WTF::Vector<EnvironmentVariablePtr> environment;
// @generated_from: network.mojom.NetworkServiceParams.default_observer
::mojo::PendingRemote<::network::mojom::blink::URLLoaderNetworkServiceObserver> default_observer;
// @generated_from: network.mojom.NetworkServiceParams.first_party_sets_enabled
bool first_party_sets_enabled;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.SCTAuditingConfiguration
class BLINK_PLATFORM_EXPORT SCTAuditingConfiguration {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<SCTAuditingConfiguration, T>::value>;
using DataView = SCTAuditingConfigurationDataView;
using Data_ = internal::SCTAuditingConfiguration_Data;
template <typename... Args>
static SCTAuditingConfigurationPtr New(Args&&... args) {
return SCTAuditingConfigurationPtr(
absl::in_place, std::forward<Args>(args)...);
}
template <typename U>
static SCTAuditingConfigurationPtr From(const U& u) {
return mojo::TypeConverter<SCTAuditingConfigurationPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, SCTAuditingConfiguration>::Convert(*this);
}
SCTAuditingConfiguration();
SCTAuditingConfiguration(
double sampling_rate,
::base::TimeDelta log_expected_ingestion_delay,
::base::TimeDelta log_max_ingestion_random_delay,
const ::blink::KURL& report_uri,
const ::blink::KURL& hashdance_lookup_uri,
const ::net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
const ::net::MutableNetworkTrafficAnnotationTag& hashdance_traffic_annotation);
~SCTAuditingConfiguration();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = SCTAuditingConfigurationPtr>
SCTAuditingConfigurationPtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename UserType>
static WTF::Vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
SCTAuditingConfiguration::DataView, WTF::Vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
SCTAuditingConfiguration::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::SCTAuditingConfiguration_UnserializedMessageContext<
UserType, SCTAuditingConfiguration::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<SCTAuditingConfiguration::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return SCTAuditingConfiguration::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::SCTAuditingConfiguration_UnserializedMessageContext<
UserType, SCTAuditingConfiguration::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<SCTAuditingConfiguration::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.SCTAuditingConfiguration.sampling_rate
double sampling_rate;
// @generated_from: network.mojom.SCTAuditingConfiguration.log_expected_ingestion_delay
::base::TimeDelta log_expected_ingestion_delay;
// @generated_from: network.mojom.SCTAuditingConfiguration.log_max_ingestion_random_delay
::base::TimeDelta log_max_ingestion_random_delay;
// @generated_from: network.mojom.SCTAuditingConfiguration.report_uri
::blink::KURL report_uri;
// @generated_from: network.mojom.SCTAuditingConfiguration.hashdance_lookup_uri
::blink::KURL hashdance_lookup_uri;
// @generated_from: network.mojom.SCTAuditingConfiguration.traffic_annotation
::net::MutableNetworkTrafficAnnotationTag traffic_annotation;
// @generated_from: network.mojom.SCTAuditingConfiguration.hashdance_traffic_annotation
::net::MutableNetworkTrafficAnnotationTag hashdance_traffic_annotation;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
template <typename StructPtrType>
HttpAuthStaticParamsPtr HttpAuthStaticParams::Clone() const {
return New(
mojo::Clone(gssapi_library_name)
);
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>*>
bool HttpAuthStaticParams::Equals(const T& other_struct) const {
if (!mojo::Equals(this->gssapi_library_name, other_struct.gssapi_library_name))
return false;
return true;
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.gssapi_library_name < rhs.gssapi_library_name)
return true;
if (rhs.gssapi_library_name < lhs.gssapi_library_name)
return false;
return false;
}
template <typename StructPtrType>
HttpAuthDynamicParamsPtr HttpAuthDynamicParams::Clone() const {
return New(
mojo::Clone(allowed_schemes),
mojo::Clone(patterns_allowed_to_use_all_schemes),
mojo::Clone(server_allowlist),
mojo::Clone(delegate_allowlist),
mojo::Clone(delegate_by_kdc_policy),
mojo::Clone(negotiate_disable_cname_lookup),
mojo::Clone(enable_negotiate_port),
mojo::Clone(ntlm_v2_enabled),
mojo::Clone(android_negotiate_account_type),
mojo::Clone(allow_gssapi_library_load),
mojo::Clone(basic_over_http_enabled)
);
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>*>
bool HttpAuthDynamicParams::Equals(const T& other_struct) const {
if (!mojo::Equals(this->allowed_schemes, other_struct.allowed_schemes))
return false;
if (!mojo::Equals(this->patterns_allowed_to_use_all_schemes, other_struct.patterns_allowed_to_use_all_schemes))
return false;
if (!mojo::Equals(this->server_allowlist, other_struct.server_allowlist))
return false;
if (!mojo::Equals(this->delegate_allowlist, other_struct.delegate_allowlist))
return false;
if (!mojo::Equals(this->delegate_by_kdc_policy, other_struct.delegate_by_kdc_policy))
return false;
if (!mojo::Equals(this->negotiate_disable_cname_lookup, other_struct.negotiate_disable_cname_lookup))
return false;
if (!mojo::Equals(this->enable_negotiate_port, other_struct.enable_negotiate_port))
return false;
if (!mojo::Equals(this->ntlm_v2_enabled, other_struct.ntlm_v2_enabled))
return false;
if (!mojo::Equals(this->android_negotiate_account_type, other_struct.android_negotiate_account_type))
return false;
if (!mojo::Equals(this->allow_gssapi_library_load, other_struct.allow_gssapi_library_load))
return false;
if (!mojo::Equals(this->basic_over_http_enabled, other_struct.basic_over_http_enabled))
return false;
return true;
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.allowed_schemes < rhs.allowed_schemes)
return true;
if (rhs.allowed_schemes < lhs.allowed_schemes)
return false;
if (lhs.patterns_allowed_to_use_all_schemes < rhs.patterns_allowed_to_use_all_schemes)
return true;
if (rhs.patterns_allowed_to_use_all_schemes < lhs.patterns_allowed_to_use_all_schemes)
return false;
if (lhs.server_allowlist < rhs.server_allowlist)
return true;
if (rhs.server_allowlist < lhs.server_allowlist)
return false;
if (lhs.delegate_allowlist < rhs.delegate_allowlist)
return true;
if (rhs.delegate_allowlist < lhs.delegate_allowlist)
return false;
if (lhs.delegate_by_kdc_policy < rhs.delegate_by_kdc_policy)
return true;
if (rhs.delegate_by_kdc_policy < lhs.delegate_by_kdc_policy)
return false;
if (lhs.negotiate_disable_cname_lookup < rhs.negotiate_disable_cname_lookup)
return true;
if (rhs.negotiate_disable_cname_lookup < lhs.negotiate_disable_cname_lookup)
return false;
if (lhs.enable_negotiate_port < rhs.enable_negotiate_port)
return true;
if (rhs.enable_negotiate_port < lhs.enable_negotiate_port)
return false;
if (lhs.ntlm_v2_enabled < rhs.ntlm_v2_enabled)
return true;
if (rhs.ntlm_v2_enabled < lhs.ntlm_v2_enabled)
return false;
if (lhs.android_negotiate_account_type < rhs.android_negotiate_account_type)
return true;
if (rhs.android_negotiate_account_type < lhs.android_negotiate_account_type)
return false;
if (lhs.allow_gssapi_library_load < rhs.allow_gssapi_library_load)
return true;
if (rhs.allow_gssapi_library_load < lhs.allow_gssapi_library_load)
return false;
if (lhs.basic_over_http_enabled < rhs.basic_over_http_enabled)
return true;
if (rhs.basic_over_http_enabled < lhs.basic_over_http_enabled)
return false;
return false;
}
template <typename StructPtrType>
EnvironmentVariablePtr EnvironmentVariable::Clone() const {
return New(
mojo::Clone(name),
mojo::Clone(value)
);
}
template <typename T, EnvironmentVariable::EnableIfSame<T>*>
bool EnvironmentVariable::Equals(const T& other_struct) const {
if (!mojo::Equals(this->name, other_struct.name))
return false;
if (!mojo::Equals(this->value, other_struct.value))
return false;
return true;
}
template <typename T, EnvironmentVariable::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.name < rhs.name)
return true;
if (rhs.name < lhs.name)
return false;
if (lhs.value < rhs.value)
return true;
if (rhs.value < lhs.value)
return false;
return false;
}
template <typename StructPtrType>
NetworkServiceParamsPtr NetworkServiceParams::Clone() const {
return New(
mojo::Clone(initial_connection_type),
mojo::Clone(initial_connection_subtype),
mojo::Clone(environment),
mojo::Clone(default_observer),
mojo::Clone(first_party_sets_enabled)
);
}
template <typename T, NetworkServiceParams::EnableIfSame<T>*>
bool NetworkServiceParams::Equals(const T& other_struct) const {
if (!mojo::Equals(this->initial_connection_type, other_struct.initial_connection_type))
return false;
if (!mojo::Equals(this->initial_connection_subtype, other_struct.initial_connection_subtype))
return false;
if (!mojo::Equals(this->environment, other_struct.environment))
return false;
if (!mojo::Equals(this->default_observer, other_struct.default_observer))
return false;
if (!mojo::Equals(this->first_party_sets_enabled, other_struct.first_party_sets_enabled))
return false;
return true;
}
template <typename T, NetworkServiceParams::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.initial_connection_type < rhs.initial_connection_type)
return true;
if (rhs.initial_connection_type < lhs.initial_connection_type)
return false;
if (lhs.initial_connection_subtype < rhs.initial_connection_subtype)
return true;
if (rhs.initial_connection_subtype < lhs.initial_connection_subtype)
return false;
if (lhs.environment < rhs.environment)
return true;
if (rhs.environment < lhs.environment)
return false;
if (lhs.default_observer < rhs.default_observer)
return true;
if (rhs.default_observer < lhs.default_observer)
return false;
if (lhs.first_party_sets_enabled < rhs.first_party_sets_enabled)
return true;
if (rhs.first_party_sets_enabled < lhs.first_party_sets_enabled)
return false;
return false;
}
template <typename StructPtrType>
SCTAuditingConfigurationPtr SCTAuditingConfiguration::Clone() const {
return New(
mojo::Clone(sampling_rate),
mojo::Clone(log_expected_ingestion_delay),
mojo::Clone(log_max_ingestion_random_delay),
mojo::Clone(report_uri),
mojo::Clone(hashdance_lookup_uri),
mojo::Clone(traffic_annotation),
mojo::Clone(hashdance_traffic_annotation)
);
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>*>
bool SCTAuditingConfiguration::Equals(const T& other_struct) const {
if (!mojo::Equals(this->sampling_rate, other_struct.sampling_rate))
return false;
if (!mojo::Equals(this->log_expected_ingestion_delay, other_struct.log_expected_ingestion_delay))
return false;
if (!mojo::Equals(this->log_max_ingestion_random_delay, other_struct.log_max_ingestion_random_delay))
return false;
if (!mojo::Equals(this->report_uri, other_struct.report_uri))
return false;
if (!mojo::Equals(this->hashdance_lookup_uri, other_struct.hashdance_lookup_uri))
return false;
if (!mojo::Equals(this->traffic_annotation, other_struct.traffic_annotation))
return false;
if (!mojo::Equals(this->hashdance_traffic_annotation, other_struct.hashdance_traffic_annotation))
return false;
return true;
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.sampling_rate < rhs.sampling_rate)
return true;
if (rhs.sampling_rate < lhs.sampling_rate)
return false;
if (lhs.log_expected_ingestion_delay < rhs.log_expected_ingestion_delay)
return true;
if (rhs.log_expected_ingestion_delay < lhs.log_expected_ingestion_delay)
return false;
if (lhs.log_max_ingestion_random_delay < rhs.log_max_ingestion_random_delay)
return true;
if (rhs.log_max_ingestion_random_delay < lhs.log_max_ingestion_random_delay)
return false;
if (lhs.report_uri < rhs.report_uri)
return true;
if (rhs.report_uri < lhs.report_uri)
return false;
if (lhs.hashdance_lookup_uri < rhs.hashdance_lookup_uri)
return true;
if (rhs.hashdance_lookup_uri < lhs.hashdance_lookup_uri)
return false;
if (lhs.traffic_annotation < rhs.traffic_annotation)
return true;
if (rhs.traffic_annotation < lhs.traffic_annotation)
return false;
if (lhs.hashdance_traffic_annotation < rhs.hashdance_traffic_annotation)
return true;
if (rhs.hashdance_traffic_annotation < lhs.hashdance_traffic_annotation)
return false;
return false;
}
} // namespace blink
} // namespace mojom
} // namespace network
namespace mojo {
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::HttpAuthStaticParams::DataView,
::network::mojom::blink::HttpAuthStaticParamsPtr> {
static bool IsNull(const ::network::mojom::blink::HttpAuthStaticParamsPtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::HttpAuthStaticParamsPtr* output) { output->reset(); }
static const decltype(::network::mojom::blink::HttpAuthStaticParams::gssapi_library_name)& gssapi_library_name(
const ::network::mojom::blink::HttpAuthStaticParamsPtr& input) {
return input->gssapi_library_name;
}
static bool Read(::network::mojom::blink::HttpAuthStaticParams::DataView input, ::network::mojom::blink::HttpAuthStaticParamsPtr* output);
};
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::HttpAuthDynamicParams::DataView,
::network::mojom::blink::HttpAuthDynamicParamsPtr> {
static bool IsNull(const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::HttpAuthDynamicParamsPtr* output) { output->reset(); }
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::allowed_schemes)& allowed_schemes(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->allowed_schemes;
}
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::patterns_allowed_to_use_all_schemes)& patterns_allowed_to_use_all_schemes(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->patterns_allowed_to_use_all_schemes;
}
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::server_allowlist)& server_allowlist(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->server_allowlist;
}
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::delegate_allowlist)& delegate_allowlist(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->delegate_allowlist;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::delegate_by_kdc_policy) delegate_by_kdc_policy(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->delegate_by_kdc_policy;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::negotiate_disable_cname_lookup) negotiate_disable_cname_lookup(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->negotiate_disable_cname_lookup;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::enable_negotiate_port) enable_negotiate_port(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->enable_negotiate_port;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::ntlm_v2_enabled) ntlm_v2_enabled(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->ntlm_v2_enabled;
}
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::android_negotiate_account_type)& android_negotiate_account_type(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->android_negotiate_account_type;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::allow_gssapi_library_load) allow_gssapi_library_load(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->allow_gssapi_library_load;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::basic_over_http_enabled) basic_over_http_enabled(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->basic_over_http_enabled;
}
static bool Read(::network::mojom::blink::HttpAuthDynamicParams::DataView input, ::network::mojom::blink::HttpAuthDynamicParamsPtr* output);
};
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::EnvironmentVariable::DataView,
::network::mojom::blink::EnvironmentVariablePtr> {
static bool IsNull(const ::network::mojom::blink::EnvironmentVariablePtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::EnvironmentVariablePtr* output) { output->reset(); }
static const decltype(::network::mojom::blink::EnvironmentVariable::name)& name(
const ::network::mojom::blink::EnvironmentVariablePtr& input) {
return input->name;
}
static const decltype(::network::mojom::blink::EnvironmentVariable::value)& value(
const ::network::mojom::blink::EnvironmentVariablePtr& input) {
return input->value;
}
static bool Read(::network::mojom::blink::EnvironmentVariable::DataView input, ::network::mojom::blink::EnvironmentVariablePtr* output);
};
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::NetworkServiceParams::DataView,
::network::mojom::blink::NetworkServiceParamsPtr> {
static bool IsNull(const ::network::mojom::blink::NetworkServiceParamsPtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::NetworkServiceParamsPtr* output) { output->reset(); }
static decltype(::network::mojom::blink::NetworkServiceParams::initial_connection_type) initial_connection_type(
const ::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->initial_connection_type;
}
static decltype(::network::mojom::blink::NetworkServiceParams::initial_connection_subtype) initial_connection_subtype(
const ::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->initial_connection_subtype;
}
static const decltype(::network::mojom::blink::NetworkServiceParams::environment)& environment(
const ::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->environment;
}
static decltype(::network::mojom::blink::NetworkServiceParams::default_observer)& default_observer(
::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->default_observer;
}
static decltype(::network::mojom::blink::NetworkServiceParams::first_party_sets_enabled) first_party_sets_enabled(
const ::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->first_party_sets_enabled;
}
static bool Read(::network::mojom::blink::NetworkServiceParams::DataView input, ::network::mojom::blink::NetworkServiceParamsPtr* output);
};
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::SCTAuditingConfiguration::DataView,
::network::mojom::blink::SCTAuditingConfigurationPtr> {
static bool IsNull(const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::SCTAuditingConfigurationPtr* output) { output->reset(); }
static decltype(::network::mojom::blink::SCTAuditingConfiguration::sampling_rate) sampling_rate(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->sampling_rate;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::log_expected_ingestion_delay)& log_expected_ingestion_delay(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->log_expected_ingestion_delay;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::log_max_ingestion_random_delay)& log_max_ingestion_random_delay(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->log_max_ingestion_random_delay;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::report_uri)& report_uri(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->report_uri;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::hashdance_lookup_uri)& hashdance_lookup_uri(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->hashdance_lookup_uri;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::traffic_annotation)& traffic_annotation(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->traffic_annotation;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::hashdance_traffic_annotation)& hashdance_traffic_annotation(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->hashdance_traffic_annotation;
}
static bool Read(::network::mojom::blink::SCTAuditingConfiguration::DataView input, ::network::mojom::blink::SCTAuditingConfigurationPtr* output);
};
} // namespace mojo
#endif // SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_BLINK_H_
/* Metadata comment
eyJtZXRhIjogW3siZW5kIjogNDQ5MCwgImJlZ2luIjogNDQ3NiwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
OiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UifX0s
IHsiZW5kIjogNjgxOSwgImJlZ2luIjogNjgxMCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy
b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i
LCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0UGFyYW1zIn19
LCB7ImVuZCI6IDY5NDgsICJiZWdpbiI6IDY5MzcsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNo
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9t
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlN0YXJ0TmV0TG9n
In19LCB7ImVuZCI6IDcxNTgsICJiZWdpbiI6IDcxNDEsICJlZGdlIjogIiUva3l0aGUvZWRnZS9n
ZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjog
ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1v
am9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkF0dGFjaE5l
dExvZ1Byb3h5In19LCB7ImVuZCI6IDc0MjMsICJiZWdpbiI6IDc0MDcsICJlZGdlIjogIiUva3l0
aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1
YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNl
LlNldFNTTEtleUxvZ0ZpbGUifX0sIHsiZW5kIjogNzU1NywgImJlZ2luIjogNzUzNywgImVkZ2Ui
OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZu
YW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMi
LCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29y
a1NlcnZpY2UuQ3JlYXRlTmV0d29ya0NvbnRleHQifX0sIHsiZW5kIjogNzgxMywgImJlZ2luIjog
Nzc4OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9j
aHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uTmV0d29ya1NlcnZpY2UuQ29uZmlndXJlU3R1Ykhvc3RSZXNvbHZlciJ9fSwgeyJlbmQi
OiA4MTA1LCAiYmVnaW4iOiA4MDk0LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwg
InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5n
b29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWdu
YXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5EaXNhYmxlUXVpYyJ9fSwgeyJl
bmQiOiA4MjA4LCAiYmVnaW4iOiA4MTk1LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
IiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJz
aWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRVcEh0dHBBdXRoIn19
LCB7ImVuZCI6IDgzNzYsICJiZWdpbiI6IDgzNTQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNo
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9t
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkNvbmZpZ3VyZUh0
dHBBdXRoUHJlZnMifX0sIHsiZW5kIjogODU0MCwgImJlZ2luIjogODUyMSwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZp
Y2UuU2V0UmF3SGVhZGVyc0FjY2VzcyJ9fSwgeyJlbmQiOiA4NzYxLCAiYmVnaW4iOiA4NzM2LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVt
L3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5O
ZXR3b3JrU2VydmljZS5TZXRNYXhDb25uZWN0aW9uc1BlclByb3h5In19LCB7ImVuZCI6IDg5MDcs
ICJiZWdpbiI6IDg4ODQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6
ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkdldE5ldHdvcmtDaGFuZ2VNYW5hZ2VyIn19
LCB7ImVuZCI6IDkxNDMsICJiZWdpbiI6IDkxMTAsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNo
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9t
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkdldE5ldHdvcmtR
dWFsaXR5RXN0aW1hdG9yTWFuYWdlciJ9fSwgeyJlbmQiOiA5MzU5LCAiYmVnaW4iOiA5MzM0LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVt
L3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5O
ZXR3b3JrU2VydmljZS5HZXREbnNDb25maWdDaGFuZ2VNYW5hZ2VyIn19LCB7ImVuZCI6IDk2NjYs
ICJiZWdpbiI6IDk2NTIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6
ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkdldE5ldHdvcmtMaXN0In19LCB7ImVuZCI6
IDk4NzUsICJiZWdpbiI6IDk4NjMsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAi
dHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25h
dHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlVwZGF0ZUNSTFNldCJ9fSwgeyJl
bmQiOiAxMDA1MCwgImJlZ2luIjogMTAwMzUsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg
InNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLk9uQ2VydERCQ2hhbmdl
ZCJ9fSwgeyJlbmQiOiAxMDE1OSwgImJlZ2luIjogMTAxNDMsICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog
Im1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldEVu
Y3J5cHRpb25LZXkifX0sIHsiZW5kIjogMTAzMDEsICJiZWdpbiI6IDEwMjg1LCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUi
OiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJs
YW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2Vy
dmljZS5Pbk1lbW9yeVByZXNzdXJlIn19LCB7ImVuZCI6IDEwNTE0LCAiYmVnaW4iOiAxMDQ4MCwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
IiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1
bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20u
TmV0d29ya1NlcnZpY2UuT25QZWVyVG9QZWVyQ29ubmVjdGlvbnNDb3VudENoYW5nZSJ9fSwgeyJl
bmQiOiAxMDY1MywgImJlZ2luIjogMTA2MjksICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg
InNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLk9uQXBwbGljYXRpb25T
dGF0ZUNoYW5nZSJ9fSwgeyJlbmQiOiAxMDgwNywgImJlZ2luIjogMTA3OTMsICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6
IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxh
bmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2
aWNlLlNldEVudmlyb25tZW50In19LCB7ImVuZCI6IDExMDYwLCAiYmVnaW4iOiAxMTAzMywgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg
InZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9z
cmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0
d29ya1NlcnZpY2UuU2V0VHJ1c3RUb2tlbktleUNvbW1pdG1lbnRzIn19LCB7ImVuZCI6IDExMjU5
LCAiYmVnaW4iOiAxMTIzOCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl
IjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQ2xlYXJTQ1RBdWRpdGluZ0NhY2hlIn19
LCB7ImVuZCI6IDExMzc2LCAiYmVnaW4iOiAxMTM1NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q
b20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQ29uZmlndXJl
U0NUQXVkaXRpbmcifX0sIHsiZW5kIjogMTE1ODcsICJiZWdpbiI6IDExNTcyLCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUi
OiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJs
YW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2Vy
dmljZS5VcGRhdGVDdExvZ0xpc3QifX0sIHsiZW5kIjogMTE5MDMsICJiZWdpbiI6IDExODc5LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVt
L3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5O
ZXR3b3JrU2VydmljZS5VcGRhdGVDdEtub3duUG9wdWxhclNDVHMifX0sIHsiZW5kIjogMTIxOTEs
ICJiZWdpbiI6IDEyMTY4LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi
OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi
OiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRDdEVuZm9yY2VtZW50RW5hYmxlZCJ9
fSwgeyJlbmQiOiAxMjM1NiwgImJlZ2luIjogMTIzMzksICJlZGdlIjogIiUva3l0aGUvZWRnZS9n
ZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjog
ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1v
am9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlVwZGF0ZUtl
eVBpbnNMaXN0In19LCB7ImVuZCI6IDEyNTQxLCAiYmVnaW4iOiAxMjUyMiwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZp
Y2UuRHVtcFdpdGhvdXRDcmFzaGluZyJ9fSwgeyJlbmQiOiAxMjY4MiwgImJlZ2luIjogMTI2NjUs
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9t
Lk5ldHdvcmtTZXJ2aWNlLkJpbmRUZXN0SW50ZXJmYWNlIn19LCB7ImVuZCI6IDEyODcwLCAiYmVn
aW4iOiAxMjg1MywgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFu
Y2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5l
dHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0Rmlyc3RQYXJ0eVNldHMifX0sIHsiZW5kIjog
MTMwNzksICJiZWdpbiI6IDEzMDU0LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwg
InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5n
b29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWdu
YXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRFeHBsaWNpdGx5QWxsb3dl
ZFBvcnRzIn19LCB7ImVuZCI6IDEzMzE1LCAiYmVnaW4iOiAxMzMwMywgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJj
b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3Vh
Z2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2Uu
UGFyc2VIZWFkZXJzIn19LCB7ImVuZCI6IDEzNzc0LCAiYmVnaW4iOiAxMzc2NSwgImVkZ2UiOiAi
JS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1l
IjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAi
bGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1Nl
cnZpY2UuU2V0UGFyYW1zIn19LCB7ImVuZCI6IDEzODk2LCAiYmVnaW4iOiAxMzg4NSwgImVkZ2Ui
OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZu
YW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMi
LCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29y
a1NlcnZpY2UuU3RhcnROZXRMb2cifX0sIHsiZW5kIjogMTQwOTksICJiZWdpbiI6IDE0MDgyLCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVt
L3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5O
ZXR3b3JrU2VydmljZS5BdHRhY2hOZXRMb2dQcm94eSJ9fSwgeyJlbmQiOiAxNDM1NywgImJlZ2lu
IjogMTQzNDEsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNo
b3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3
b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldFNTTEtleUxvZ0ZpbGUifX0sIHsiZW5kIjogMTQ0
ODQsICJiZWdpbiI6IDE0NDY0LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5
cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n
bGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1
cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5DcmVhdGVOZXR3b3JrQ29udGV4dCJ9
fSwgeyJlbmQiOiAxNDczMywgImJlZ2luIjogMTQ3MDgsICJlZGdlIjogIiUva3l0aGUvZWRnZS9n
ZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjog
ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1v
am9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkNvbmZpZ3Vy
ZVN0dWJIb3N0UmVzb2x2ZXIifX0sIHsiZW5kIjogMTUwMTgsICJiZWdpbiI6IDE1MDA3LCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi
dm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3Ny
YyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3
b3JrU2VydmljZS5EaXNhYmxlUXVpYyJ9fSwgeyJlbmQiOiAxNTExNCwgImJlZ2luIjogMTUxMDEs
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9t
Lk5ldHdvcmtTZXJ2aWNlLlNldFVwSHR0cEF1dGgifX0sIHsiZW5kIjogMTUyNzUsICJiZWdpbiI6
IDE1MjUzLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29y
ay5tb2pvbS5OZXR3b3JrU2VydmljZS5Db25maWd1cmVIdHRwQXV0aFByZWZzIn19LCB7ImVuZCI6
IDE1NDMyLCAiYmVnaW4iOiAxNTQxMywgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIs
ICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2ln
bmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0UmF3SGVhZGVyc0FjY2Vz
cyJ9fSwgeyJlbmQiOiAxNTY0NiwgImJlZ2luIjogMTU2MjEsICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog
Im1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldE1h
eENvbm5lY3Rpb25zUGVyUHJveHkifX0sIHsiZW5kIjogMTU3ODUsICJiZWdpbiI6IDE1NzYyLCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVt
L3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5O
ZXR3b3JrU2VydmljZS5HZXROZXR3b3JrQ2hhbmdlTWFuYWdlciJ9fSwgeyJlbmQiOiAxNjAxNCwg
ImJlZ2luIjogMTU5ODEsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6
ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkdldE5ldHdvcmtRdWFsaXR5RXN0aW1hdG9y
TWFuYWdlciJ9fSwgeyJlbmQiOiAxNjIyMywgImJlZ2luIjogMTYxOTgsICJlZGdlIjogIiUva3l0
aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1
YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNl
LkdldERuc0NvbmZpZ0NoYW5nZU1hbmFnZXIifX0sIHsiZW5kIjogMTY0MDIsICJiZWdpbiI6IDE2
Mzg4LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2No
cm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5t
b2pvbS5OZXR3b3JrU2VydmljZS5HZXROZXR3b3JrTGlzdCJ9fSwgeyJlbmQiOiAxNjU0NCwgImJl
Z2luIjogMTY1MzIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJh
bmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj
ZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJu
ZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlVwZGF0ZUNSTFNldCJ9fSwgeyJlbmQiOiAxNjcx
MiwgImJlZ2luIjogMTY2OTcsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlw
ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2ds
ZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVy
ZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLk9uQ2VydERCQ2hhbmdlZCJ9fSwgeyJl
bmQiOiAxNjgxNCwgImJlZ2luIjogMTY3OTgsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg
InNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldEVuY3J5cHRpb25L
ZXkifX0sIHsiZW5kIjogMTY5NDksICJiZWdpbiI6IDE2OTMzLCAiZWRnZSI6ICIlL2t5dGhlL2Vk
Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6
ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5Pbk1l
bW9yeVByZXNzdXJlIn19LCB7ImVuZCI6IDE3MTU1LCAiYmVnaW4iOiAxNzEyMSwgImVkZ2UiOiAi
JS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1l
IjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAi
bGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1Nl
cnZpY2UuT25QZWVyVG9QZWVyQ29ubmVjdGlvbnNDb3VudENoYW5nZSJ9fSwgeyJlbmQiOiAxNzI4
NywgImJlZ2luIjogMTcyNjMsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlw
ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2ds
ZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVy
ZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLk9uQXBwbGljYXRpb25TdGF0ZUNoYW5n
ZSJ9fSwgeyJlbmQiOiAxNzQzNCwgImJlZ2luIjogMTc0MjAsICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog
Im1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldEVu
dmlyb25tZW50In19LCB7ImVuZCI6IDE3NjA1LCAiYmVnaW4iOiAxNzU3OCwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZp
Y2UuU2V0VHJ1c3RUb2tlbktleUNvbW1pdG1lbnRzIn19LCB7ImVuZCI6IDE3Nzk3LCAiYmVnaW4i
OiAxNzc3NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hv
cl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdv
cmsubW9qb20uTmV0d29ya1NlcnZpY2UuQ2xlYXJTQ1RBdWRpdGluZ0NhY2hlIn19LCB7ImVuZCI6
IDE3OTA3LCAiYmVnaW4iOiAxNzg4NywgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIs
ICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2ln
bmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQ29uZmlndXJlU0NUQXVkaXRp
bmcifX0sIHsiZW5kIjogMTgwNDgsICJiZWdpbiI6IDE4MDMzLCAiZWRnZSI6ICIlL2t5dGhlL2Vk
Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6
ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5VcGRh
dGVDdExvZ0xpc3QifX0sIHsiZW5kIjogMTgyODUsICJiZWdpbiI6IDE4MjYxLCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUi
OiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJs
YW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2Vy
dmljZS5VcGRhdGVDdEtub3duUG9wdWxhclNDVHMifX0sIHsiZW5kIjogMTg0OTUsICJiZWdpbiI6
IDE4NDcyLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29y
ay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRDdEVuZm9yY2VtZW50RW5hYmxlZCJ9fSwgeyJlbmQi
OiAxODY1MywgImJlZ2luIjogMTg2MzYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
LCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNp
Z25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlVwZGF0ZUtleVBpbnNMaXN0
In19LCB7ImVuZCI6IDE4ODMxLCAiYmVnaW4iOiAxODgxMiwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi
bW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuRHVtcFdp
dGhvdXRDcmFzaGluZyJ9fSwgeyJlbmQiOiAxODk2NSwgImJlZ2luIjogMTg5NDgsICJlZGdlIjog
IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFt
ZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwg
Imxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtT
ZXJ2aWNlLkJpbmRUZXN0SW50ZXJmYWNlIn19LCB7ImVuZCI6IDE5MTQ2LCAiYmVnaW4iOiAxOTEy
OSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZp
bmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJv
bWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9q
b20uTmV0d29ya1NlcnZpY2UuU2V0Rmlyc3RQYXJ0eVNldHMifX0sIHsiZW5kIjogMTkzNDgsICJi
ZWdpbiI6IDE5MzIzLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAi
bmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRFeHBsaWNpdGx5QWxsb3dlZFBvcnRzIn19
LCB7ImVuZCI6IDE5NDc2LCAiYmVnaW4iOiAxOTQ2NCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q
b20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuUGFyc2VIZWFk
ZXJzIn19LCB7ImVuZCI6IDIxMzk4LCAiYmVnaW4iOiAyMTM3OCwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
OiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uSHR0cEF1dGhTdGF0aWNQYXJh
bXMifX0sIHsiZW5kIjogMjUyODIsICJiZWdpbiI6IDI1MjYzLCAiZWRnZSI6ICIlL2t5dGhlL2Vk
Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6
ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5IdHRwQXV0aFN0YXRpY1BhcmFt
cy5nc3NhcGlfbGlicmFyeV9uYW1lIn19LCB7ImVuZCI6IDI2MzgzLCAiYmVnaW4iOiAyNjM2NCwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
IiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1
bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20u
RW52aXJvbm1lbnRWYXJpYWJsZSJ9fSwgeyJlbmQiOiAzMDIyMCwgImJlZ2luIjogMzAyMTYsICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v
c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkVu
dmlyb25tZW50VmFyaWFibGUubmFtZSJ9fSwgeyJlbmQiOiAzMDMwNCwgImJlZ2luIjogMzAyOTks
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9t
LkVudmlyb25tZW50VmFyaWFibGUudmFsdWUifX0sIHsiZW5kIjogMzE0MDksICJiZWdpbiI6IDMx
Mzg4LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2No
cm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5t
b2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMifX0sIHsiZW5kIjogMzU3NDEsICJiZWdpbiI6IDM1
NzI2LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2No
cm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5t
b2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMuYWxsb3dlZF9zY2hlbWVzIn19LCB7ImVuZCI6IDM1
OTAwLCAiYmVnaW4iOiAzNTg2NSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0
eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
Z2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0
dXJlIjogIm5ldHdvcmsubW9qb20uSHR0cEF1dGhEeW5hbWljUGFyYW1zLnBhdHRlcm5zX2FsbG93
ZWRfdG9fdXNlX2FsbF9zY2hlbWVzIn19LCB7ImVuZCI6IDM2MDA4LCAiYmVnaW4iOiAzNTk5Miwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
IiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1
bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20u
SHR0cEF1dGhEeW5hbWljUGFyYW1zLnNlcnZlcl9hbGxvd2xpc3QifX0sIHsiZW5kIjogMzYxMjAs
ICJiZWdpbiI6IDM2MTAyLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi
OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi
OiAibmV0d29yay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMuZGVsZWdhdGVfYWxsb3dsaXN0
In19LCB7ImVuZCI6IDM2MjMzLCAiYmVnaW4iOiAzNjIxMSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi
bW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uSHR0cEF1dGhEeW5hbWljUGFyYW1z
LmRlbGVnYXRlX2J5X2tkY19wb2xpY3kifX0sIHsiZW5kIjogMzYzNjIsICJiZWdpbiI6IDM2MzMy
LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmlu
ZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9t
aXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pv
bS5IdHRwQXV0aER5bmFtaWNQYXJhbXMubmVnb3RpYXRlX2Rpc2FibGVfY25hbWVfbG9va3VwIn19
LCB7ImVuZCI6IDM2NDczLCAiYmVnaW4iOiAzNjQ1MiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q
b20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uSHR0cEF1dGhEeW5hbWljUGFyYW1zLmVu
YWJsZV9uZWdvdGlhdGVfcG9ydCJ9fSwgeyJlbmQiOiAzNjU3MiwgImJlZ2luIjogMzY1NTcsICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v
c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0
dHBBdXRoRHluYW1pY1BhcmFtcy5udGxtX3YyX2VuYWJsZWQifX0sIHsiZW5kIjogMzY3MDgsICJi
ZWdpbiI6IDM2Njc4LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAi
bmV0d29yay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMuYW5kcm9pZF9uZWdvdGlhdGVfYWNj
b3VudF90eXBlIn19LCB7ImVuZCI6IDM2ODI3LCAiYmVnaW4iOiAzNjgwMiwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uSHR0cEF1dGhEeW5h
bWljUGFyYW1zLmFsbG93X2dzc2FwaV9saWJyYXJ5X2xvYWQifX0sIHsiZW5kIjogMzY5NDIsICJi
ZWdpbiI6IDM2OTE5LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAi
bmV0d29yay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMuYmFzaWNfb3Zlcl9odHRwX2VuYWJs
ZWQifX0sIHsiZW5kIjogMzgwNDksICJiZWdpbiI6IDM4MDI5LCAiZWRnZSI6ICIlL2t5dGhlL2Vk
Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6
ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZVBhcmFt
cyJ9fSwgeyJlbmQiOiA0MjE0OSwgImJlZ2luIjogNDIxMjYsICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog
Im1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlUGFyYW1z
LmluaXRpYWxfY29ubmVjdGlvbl90eXBlIn19LCB7ImVuZCI6IDQyMzA3LCAiYmVnaW4iOiA0MjI4
MSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZp
bmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJv
bWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9q
b20uTmV0d29ya1NlcnZpY2VQYXJhbXMuaW5pdGlhbF9jb25uZWN0aW9uX3N1YnR5cGUifX0sIHsi
ZW5kIjogNDI0MjgsICJiZWdpbiI6IDQyNDE3LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIs
ICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZVBhcmFtcy5lbnZpcm9u
bWVudCJ9fSwgeyJlbmQiOiA0MjYwMywgImJlZ2luIjogNDI1ODcsICJlZGdlIjogIiUva3l0aGUv
ZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdl
IjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlUGFy
YW1zLmRlZmF1bHRfb2JzZXJ2ZXIifX0sIHsiZW5kIjogNDI3MTksICJiZWdpbiI6IDQyNjk1LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVt
L3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5O
ZXR3b3JrU2VydmljZVBhcmFtcy5maXJzdF9wYXJ0eV9zZXRzX2VuYWJsZWQifX0sIHsiZW5kIjog
NDM4MjksICJiZWdpbiI6IDQzODA1LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwg
InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5n
b29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWdu
YXR1cmUiOiAibmV0d29yay5tb2pvbS5TQ1RBdWRpdGluZ0NvbmZpZ3VyYXRpb24ifX0sIHsiZW5k
IjogNDgwOTMsICJiZWdpbiI6IDQ4MDgwLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
IiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJz
aWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5TQ1RBdWRpdGluZ0NvbmZpZ3VyYXRpb24uc2FtcGxp
bmdfcmF0ZSJ9fSwgeyJlbmQiOiA0ODIzNCwgImJlZ2luIjogNDgyMDYsICJlZGdlIjogIiUva3l0
aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1
YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLlNDVEF1ZGl0aW5nQ29u
ZmlndXJhdGlvbi5sb2dfZXhwZWN0ZWRfaW5nZXN0aW9uX2RlbGF5In19LCB7ImVuZCI6IDQ4Mzc5
LCAiYmVnaW4iOiA0ODM0OSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl
IjogIm5ldHdvcmsubW9qb20uU0NUQXVkaXRpbmdDb25maWd1cmF0aW9uLmxvZ19tYXhfaW5nZXN0
aW9uX3JhbmRvbV9kZWxheSJ9fSwgeyJlbmQiOiA0ODQ4MCwgImJlZ2luIjogNDg0NzAsICJlZGdl
IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2
bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj
IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLlNDVEF1
ZGl0aW5nQ29uZmlndXJhdGlvbi5yZXBvcnRfdXJpIn19LCB7ImVuZCI6IDQ4NjAxLCAiYmVnaW4i
OiA0ODU4MSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hv
cl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm5ldHdv
cmsubW9qb20uU0NUQXVkaXRpbmdDb25maWd1cmF0aW9uLmhhc2hkYW5jZV9sb29rdXBfdXJpIn19
LCB7ImVuZCI6IDQ4NzQ2LCAiYmVnaW4iOiA0ODcyOCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q
b20iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uU0NUQXVkaXRpbmdDb25maWd1cmF0aW9u
LnRyYWZmaWNfYW5ub3RhdGlvbiJ9fSwgeyJlbmQiOiA0ODkxMSwgImJlZ2luIjogNDg4ODMsICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v
c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLlND
VEF1ZGl0aW5nQ29uZmlndXJhdGlvbi5oYXNoZGFuY2VfdHJhZmZpY19hbm5vdGF0aW9uIn19XSwg
InR5cGUiOiAia3l0aGUwIn0=
*/