// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: safebrowsing.proto
// Protobuf C++ Version: 7.35.0

#ifndef safebrowsing_2eproto_2epb_2eh
#define safebrowsing_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

// clang-format off
#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 7035000
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
#include "google/protobuf/generated_enum_util.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_safebrowsing_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_safebrowsing_2eproto {
  static const ::uint32_t offsets[];
};
namespace mozilla {
namespace safebrowsing {
enum ChromeClientInfo_SafeBrowsingReportingPopulation : int;
extern const uint32_t ChromeClientInfo_SafeBrowsingReportingPopulation_internal_data_[];
enum CompressionType : int;
extern const uint32_t CompressionType_internal_data_[];
enum FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType : int;
extern const uint32_t FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_internal_data_[];
enum PlatformType : int;
extern const uint32_t PlatformType_internal_data_[];
enum ThreatEntryType : int;
extern const uint32_t ThreatEntryType_internal_data_[];
enum ThreatHit_ThreatSourceType : int;
extern const uint32_t ThreatHit_ThreatSourceType_internal_data_[];
enum ThreatType : int;
extern const uint32_t ThreatType_internal_data_[];
class Checksum;
struct ChecksumGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ChecksumGlobalsTypeInternal Checksum_globals_;
extern const ::google::protobuf::internal::ClassDataLite Checksum_class_data_;
#else
extern const ChecksumGlobalsTypeInternal Checksum_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ChromeClientInfo;
struct ChromeClientInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ChromeClientInfoGlobalsTypeInternal ChromeClientInfo_globals_;
extern const ::google::protobuf::internal::ClassDataLite ChromeClientInfo_class_data_;
#else
extern const ChromeClientInfoGlobalsTypeInternal ChromeClientInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ClientInfo;
struct ClientInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ClientInfoGlobalsTypeInternal ClientInfo_globals_;
extern const ::google::protobuf::internal::ClassDataLite ClientInfo_class_data_;
#else
extern const ClientInfoGlobalsTypeInternal ClientInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Duration;
struct DurationGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DurationGlobalsTypeInternal Duration_globals_;
extern const ::google::protobuf::internal::ClassDataLite Duration_class_data_;
#else
extern const DurationGlobalsTypeInternal Duration_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FetchThreatListUpdatesRequest;
struct FetchThreatListUpdatesRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FetchThreatListUpdatesRequestGlobalsTypeInternal FetchThreatListUpdatesRequest_globals_;
extern const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesRequest_class_data_;
#else
extern const FetchThreatListUpdatesRequestGlobalsTypeInternal FetchThreatListUpdatesRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FetchThreatListUpdatesRequest_ListUpdateRequest;
struct FetchThreatListUpdatesRequest_ListUpdateRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FetchThreatListUpdatesRequest_ListUpdateRequestGlobalsTypeInternal FetchThreatListUpdatesRequest_ListUpdateRequest_globals_;
extern const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesRequest_ListUpdateRequest_class_data_;
#else
extern const FetchThreatListUpdatesRequest_ListUpdateRequestGlobalsTypeInternal FetchThreatListUpdatesRequest_ListUpdateRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints;
struct FetchThreatListUpdatesRequest_ListUpdateRequest_ConstraintsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FetchThreatListUpdatesRequest_ListUpdateRequest_ConstraintsGlobalsTypeInternal FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_;
extern const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_class_data_;
#else
extern const FetchThreatListUpdatesRequest_ListUpdateRequest_ConstraintsGlobalsTypeInternal FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FetchThreatListUpdatesResponse;
struct FetchThreatListUpdatesResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FetchThreatListUpdatesResponseGlobalsTypeInternal FetchThreatListUpdatesResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesResponse_class_data_;
#else
extern const FetchThreatListUpdatesResponseGlobalsTypeInternal FetchThreatListUpdatesResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FetchThreatListUpdatesResponse_ListUpdateResponse;
struct FetchThreatListUpdatesResponse_ListUpdateResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FetchThreatListUpdatesResponse_ListUpdateResponseGlobalsTypeInternal FetchThreatListUpdatesResponse_ListUpdateResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesResponse_ListUpdateResponse_class_data_;
#else
extern const FetchThreatListUpdatesResponse_ListUpdateResponseGlobalsTypeInternal FetchThreatListUpdatesResponse_ListUpdateResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FindFullHashesRequest;
struct FindFullHashesRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FindFullHashesRequestGlobalsTypeInternal FindFullHashesRequest_globals_;
extern const ::google::protobuf::internal::ClassDataLite FindFullHashesRequest_class_data_;
#else
extern const FindFullHashesRequestGlobalsTypeInternal FindFullHashesRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FindFullHashesResponse;
struct FindFullHashesResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FindFullHashesResponseGlobalsTypeInternal FindFullHashesResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite FindFullHashesResponse_class_data_;
#else
extern const FindFullHashesResponseGlobalsTypeInternal FindFullHashesResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FindThreatMatchesRequest;
struct FindThreatMatchesRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FindThreatMatchesRequestGlobalsTypeInternal FindThreatMatchesRequest_globals_;
extern const ::google::protobuf::internal::ClassDataLite FindThreatMatchesRequest_class_data_;
#else
extern const FindThreatMatchesRequestGlobalsTypeInternal FindThreatMatchesRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FindThreatMatchesResponse;
struct FindThreatMatchesResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FindThreatMatchesResponseGlobalsTypeInternal FindThreatMatchesResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite FindThreatMatchesResponse_class_data_;
#else
extern const FindThreatMatchesResponseGlobalsTypeInternal FindThreatMatchesResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListThreatListsResponse;
struct ListThreatListsResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListThreatListsResponseGlobalsTypeInternal ListThreatListsResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite ListThreatListsResponse_class_data_;
#else
extern const ListThreatListsResponseGlobalsTypeInternal ListThreatListsResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RawHashes;
struct RawHashesGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RawHashesGlobalsTypeInternal RawHashes_globals_;
extern const ::google::protobuf::internal::ClassDataLite RawHashes_class_data_;
#else
extern const RawHashesGlobalsTypeInternal RawHashes_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RawIndices;
struct RawIndicesGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RawIndicesGlobalsTypeInternal RawIndices_globals_;
extern const ::google::protobuf::internal::ClassDataLite RawIndices_class_data_;
#else
extern const RawIndicesGlobalsTypeInternal RawIndices_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RiceDeltaEncoding;
struct RiceDeltaEncodingGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RiceDeltaEncodingGlobalsTypeInternal RiceDeltaEncoding_globals_;
extern const ::google::protobuf::internal::ClassDataLite RiceDeltaEncoding_class_data_;
#else
extern const RiceDeltaEncodingGlobalsTypeInternal RiceDeltaEncoding_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatEntry;
struct ThreatEntryGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatEntryGlobalsTypeInternal ThreatEntry_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatEntry_class_data_;
#else
extern const ThreatEntryGlobalsTypeInternal ThreatEntry_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatEntryMetadata;
struct ThreatEntryMetadataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatEntryMetadataGlobalsTypeInternal ThreatEntryMetadata_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatEntryMetadata_class_data_;
#else
extern const ThreatEntryMetadataGlobalsTypeInternal ThreatEntryMetadata_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatEntryMetadata_MetadataEntry;
struct ThreatEntryMetadata_MetadataEntryGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatEntryMetadata_MetadataEntryGlobalsTypeInternal ThreatEntryMetadata_MetadataEntry_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatEntryMetadata_MetadataEntry_class_data_;
#else
extern const ThreatEntryMetadata_MetadataEntryGlobalsTypeInternal ThreatEntryMetadata_MetadataEntry_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatEntrySet;
struct ThreatEntrySetGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatEntrySetGlobalsTypeInternal ThreatEntrySet_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatEntrySet_class_data_;
#else
extern const ThreatEntrySetGlobalsTypeInternal ThreatEntrySet_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatHit;
struct ThreatHitGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatHitGlobalsTypeInternal ThreatHit_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatHit_class_data_;
#else
extern const ThreatHitGlobalsTypeInternal ThreatHit_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatHit_ThreatSource;
struct ThreatHit_ThreatSourceGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatHit_ThreatSourceGlobalsTypeInternal ThreatHit_ThreatSource_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatHit_ThreatSource_class_data_;
#else
extern const ThreatHit_ThreatSourceGlobalsTypeInternal ThreatHit_ThreatSource_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatHit_UserInfo;
struct ThreatHit_UserInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatHit_UserInfoGlobalsTypeInternal ThreatHit_UserInfo_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatHit_UserInfo_class_data_;
#else
extern const ThreatHit_UserInfoGlobalsTypeInternal ThreatHit_UserInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatInfo;
struct ThreatInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatInfoGlobalsTypeInternal ThreatInfo_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatInfo_class_data_;
#else
extern const ThreatInfoGlobalsTypeInternal ThreatInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatListDescriptor;
struct ThreatListDescriptorGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatListDescriptorGlobalsTypeInternal ThreatListDescriptor_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatListDescriptor_class_data_;
#else
extern const ThreatListDescriptorGlobalsTypeInternal ThreatListDescriptor_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ThreatMatch;
struct ThreatMatchGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ThreatMatchGlobalsTypeInternal ThreatMatch_globals_;
extern const ::google::protobuf::internal::ClassDataLite ThreatMatch_class_data_;
#else
extern const ThreatMatchGlobalsTypeInternal ThreatMatch_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace safebrowsing
}  // namespace mozilla
namespace google {
namespace protobuf {
template <>
internal::EnumTraitsT<::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation_internal_data_>
    internal::EnumTraitsImpl::value<::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation>;
template <>
internal::EnumTraitsT<::mozilla::safebrowsing::CompressionType_internal_data_>
    internal::EnumTraitsImpl::value<::mozilla::safebrowsing::CompressionType>;
template <>
internal::EnumTraitsT<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_internal_data_>
    internal::EnumTraitsImpl::value<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType>;
template <>
internal::EnumTraitsT<::mozilla::safebrowsing::PlatformType_internal_data_>
    internal::EnumTraitsImpl::value<::mozilla::safebrowsing::PlatformType>;
template <>
internal::EnumTraitsT<::mozilla::safebrowsing::ThreatEntryType_internal_data_>
    internal::EnumTraitsImpl::value<::mozilla::safebrowsing::ThreatEntryType>;
template <>
internal::EnumTraitsT<::mozilla::safebrowsing::ThreatHit_ThreatSourceType_internal_data_>
    internal::EnumTraitsImpl::value<::mozilla::safebrowsing::ThreatHit_ThreatSourceType>;
template <>
internal::EnumTraitsT<::mozilla::safebrowsing::ThreatType_internal_data_>
    internal::EnumTraitsImpl::value<::mozilla::safebrowsing::ThreatType>;
}  // namespace protobuf
}  // namespace google

namespace mozilla {
namespace safebrowsing {
enum FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType : int {
  FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_RESPONSE_TYPE_UNSPECIFIED = 0,
  FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_PARTIAL_UPDATE = 1,
  FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_FULL_UPDATE = 2,
};

extern const uint32_t FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_internal_data_[];
inline constexpr FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_ResponseType_MIN =
    static_cast<FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType>(0);
inline constexpr FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_ResponseType_MAX =
    static_cast<FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType>(2);
[[nodiscard]] inline bool FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_ResponseType_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::std::string& FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Name(FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType value);
template <typename T>
[[nodiscard]] const ::std::string& FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Name(T value) {
  static_assert(::std::is_same<T, FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to ResponseType_Name().");
  return FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Name(static_cast<FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType>(value));
}
[[nodiscard]] bool FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Parse(
    ::absl::string_view name, FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType* PROTOBUF_NONNULL value);
enum ThreatHit_ThreatSourceType : int {
  ThreatHit_ThreatSourceType_THREAT_SOURCE_TYPE_UNSPECIFIED = 0,
  ThreatHit_ThreatSourceType_MATCHING_URL = 1,
  ThreatHit_ThreatSourceType_TAB_URL = 2,
  ThreatHit_ThreatSourceType_TAB_REDIRECT = 3,
  ThreatHit_ThreatSourceType_TAB_RESOURCE = 4,
};

extern const uint32_t ThreatHit_ThreatSourceType_internal_data_[];
inline constexpr ThreatHit_ThreatSourceType ThreatHit_ThreatSourceType_ThreatSourceType_MIN =
    static_cast<ThreatHit_ThreatSourceType>(0);
inline constexpr ThreatHit_ThreatSourceType ThreatHit_ThreatSourceType_ThreatSourceType_MAX =
    static_cast<ThreatHit_ThreatSourceType>(4);
[[nodiscard]] inline bool ThreatHit_ThreatSourceType_IsValid(int value) {
  return 0 <= value && value <= 4;
}
inline constexpr int ThreatHit_ThreatSourceType_ThreatSourceType_ARRAYSIZE = 4 + 1;
[[nodiscard]] const ::std::string& ThreatHit_ThreatSourceType_Name(ThreatHit_ThreatSourceType value);
template <typename T>
[[nodiscard]] const ::std::string& ThreatHit_ThreatSourceType_Name(T value) {
  static_assert(::std::is_same<T, ThreatHit_ThreatSourceType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to ThreatSourceType_Name().");
  return ThreatHit_ThreatSourceType_Name(static_cast<ThreatHit_ThreatSourceType>(value));
}
[[nodiscard]] bool ThreatHit_ThreatSourceType_Parse(
    ::absl::string_view name, ThreatHit_ThreatSourceType* PROTOBUF_NONNULL value);
enum ChromeClientInfo_SafeBrowsingReportingPopulation : int {
  ChromeClientInfo_SafeBrowsingReportingPopulation_UNSPECIFIED = 0,
  ChromeClientInfo_SafeBrowsingReportingPopulation_OPT_OUT = 1,
  ChromeClientInfo_SafeBrowsingReportingPopulation_EXTENDED = 2,
  ChromeClientInfo_SafeBrowsingReportingPopulation_SCOUT = 3,
};

extern const uint32_t ChromeClientInfo_SafeBrowsingReportingPopulation_internal_data_[];
inline constexpr ChromeClientInfo_SafeBrowsingReportingPopulation ChromeClientInfo_SafeBrowsingReportingPopulation_SafeBrowsingReportingPopulation_MIN =
    static_cast<ChromeClientInfo_SafeBrowsingReportingPopulation>(0);
inline constexpr ChromeClientInfo_SafeBrowsingReportingPopulation ChromeClientInfo_SafeBrowsingReportingPopulation_SafeBrowsingReportingPopulation_MAX =
    static_cast<ChromeClientInfo_SafeBrowsingReportingPopulation>(3);
[[nodiscard]] inline bool ChromeClientInfo_SafeBrowsingReportingPopulation_IsValid(int value) {
  return 0 <= value && value <= 3;
}
inline constexpr int ChromeClientInfo_SafeBrowsingReportingPopulation_SafeBrowsingReportingPopulation_ARRAYSIZE = 3 + 1;
[[nodiscard]] const ::std::string& ChromeClientInfo_SafeBrowsingReportingPopulation_Name(ChromeClientInfo_SafeBrowsingReportingPopulation value);
template <typename T>
[[nodiscard]] const ::std::string& ChromeClientInfo_SafeBrowsingReportingPopulation_Name(T value) {
  static_assert(::std::is_same<T, ChromeClientInfo_SafeBrowsingReportingPopulation>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to SafeBrowsingReportingPopulation_Name().");
  return ChromeClientInfo_SafeBrowsingReportingPopulation_Name(static_cast<ChromeClientInfo_SafeBrowsingReportingPopulation>(value));
}
[[nodiscard]] bool ChromeClientInfo_SafeBrowsingReportingPopulation_Parse(
    ::absl::string_view name, ChromeClientInfo_SafeBrowsingReportingPopulation* PROTOBUF_NONNULL value);
enum ThreatType : int {
  THREAT_TYPE_UNSPECIFIED = 0,
  MALWARE_THREAT = 1,
  SOCIAL_ENGINEERING_PUBLIC = 2,
  UNWANTED_SOFTWARE = 3,
  POTENTIALLY_HARMFUL_APPLICATION = 4,
  SOCIAL_ENGINEERING = 5,
  API_ABUSE = 6,
  MALICIOUS_BINARY = 7,
  CSD_WHITELIST = 8,
  CSD_DOWNLOAD_WHITELIST = 9,
  CLIENT_INCIDENT = 10,
  SUBRESOURCE_FILTER = 13,
};

extern const uint32_t ThreatType_internal_data_[];
inline constexpr ThreatType ThreatType_MIN =
    static_cast<ThreatType>(0);
inline constexpr ThreatType ThreatType_MAX =
    static_cast<ThreatType>(13);
[[nodiscard]] inline bool ThreatType_IsValid(int value) {
  return 0 <= value && value <= 13 && ((10239u >> value) & 1) != 0;
}
inline constexpr int ThreatType_ARRAYSIZE = 13 + 1;
[[nodiscard]] const ::std::string& ThreatType_Name(ThreatType value);
template <typename T>
[[nodiscard]] const ::std::string& ThreatType_Name(T value) {
  static_assert(::std::is_same<T, ThreatType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to ThreatType_Name().");
  return ThreatType_Name(static_cast<ThreatType>(value));
}
[[nodiscard]] bool ThreatType_Parse(
    ::absl::string_view name, ThreatType* PROTOBUF_NONNULL value);
enum PlatformType : int {
  PLATFORM_TYPE_UNSPECIFIED = 0,
  WINDOWS_PLATFORM = 1,
  LINUX_PLATFORM = 2,
  ANDROID_PLATFORM = 3,
  OSX_PLATFORM = 4,
  IOS_PLATFORM = 5,
  ANY_PLATFORM = 6,
  ALL_PLATFORMS = 7,
  CHROME_PLATFORM = 8,
};

extern const uint32_t PlatformType_internal_data_[];
inline constexpr PlatformType PlatformType_MIN =
    static_cast<PlatformType>(0);
inline constexpr PlatformType PlatformType_MAX =
    static_cast<PlatformType>(8);
[[nodiscard]] inline bool PlatformType_IsValid(int value) {
  return 0 <= value && value <= 8;
}
inline constexpr int PlatformType_ARRAYSIZE = 8 + 1;
[[nodiscard]] const ::std::string& PlatformType_Name(PlatformType value);
template <typename T>
[[nodiscard]] const ::std::string& PlatformType_Name(T value) {
  static_assert(::std::is_same<T, PlatformType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to PlatformType_Name().");
  return PlatformType_Name(static_cast<PlatformType>(value));
}
[[nodiscard]] bool PlatformType_Parse(
    ::absl::string_view name, PlatformType* PROTOBUF_NONNULL value);
enum CompressionType : int {
  COMPRESSION_TYPE_UNSPECIFIED = 0,
  RAW = 1,
  RICE = 2,
};

extern const uint32_t CompressionType_internal_data_[];
inline constexpr CompressionType CompressionType_MIN =
    static_cast<CompressionType>(0);
inline constexpr CompressionType CompressionType_MAX =
    static_cast<CompressionType>(2);
[[nodiscard]] inline bool CompressionType_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int CompressionType_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::std::string& CompressionType_Name(CompressionType value);
template <typename T>
[[nodiscard]] const ::std::string& CompressionType_Name(T value) {
  static_assert(::std::is_same<T, CompressionType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to CompressionType_Name().");
  return CompressionType_Name(static_cast<CompressionType>(value));
}
[[nodiscard]] bool CompressionType_Parse(
    ::absl::string_view name, CompressionType* PROTOBUF_NONNULL value);
enum ThreatEntryType : int {
  THREAT_ENTRY_TYPE_UNSPECIFIED = 0,
  URL = 1,
  EXECUTABLE = 2,
  IP_RANGE = 3,
  CHROME_EXTENSION = 4,
  FILENAME = 5,
  CERT = 6,
};

extern const uint32_t ThreatEntryType_internal_data_[];
inline constexpr ThreatEntryType ThreatEntryType_MIN =
    static_cast<ThreatEntryType>(0);
inline constexpr ThreatEntryType ThreatEntryType_MAX =
    static_cast<ThreatEntryType>(6);
[[nodiscard]] inline bool ThreatEntryType_IsValid(int value) {
  return 0 <= value && value <= 6;
}
inline constexpr int ThreatEntryType_ARRAYSIZE = 6 + 1;
[[nodiscard]] const ::std::string& ThreatEntryType_Name(ThreatEntryType value);
template <typename T>
[[nodiscard]] const ::std::string& ThreatEntryType_Name(T value) {
  static_assert(::std::is_same<T, ThreatEntryType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to ThreatEntryType_Name().");
  return ThreatEntryType_Name(static_cast<ThreatEntryType>(value));
}
[[nodiscard]] bool ThreatEntryType_Parse(
    ::absl::string_view name, ThreatEntryType* PROTOBUF_NONNULL value);
using ::google::protobuf::internal::generated_enum::AbslParseFlag;
using ::google::protobuf::internal::generated_enum::AbslUnparseFlag;

// ===================================================================


// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatListDescriptor final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatListDescriptor) */ {
 public:
  inline ThreatListDescriptor() : ThreatListDescriptor(nullptr) {}
  ~ThreatListDescriptor() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatListDescriptor* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatListDescriptor));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatListDescriptor(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatListDescriptor(const ThreatListDescriptor& from) : ThreatListDescriptor(nullptr, from) {}
  inline ThreatListDescriptor(ThreatListDescriptor&& from) noexcept : ThreatListDescriptor(nullptr, ::std::move(from)) {}
  inline ThreatListDescriptor& operator=(const ThreatListDescriptor& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatListDescriptor& operator=(ThreatListDescriptor&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatListDescriptor& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatListDescriptor>(&ThreatListDescriptor_globals_);
  }
  static constexpr int kIndexInFileMessages = 24;
  friend void swap(ThreatListDescriptor& a, ThreatListDescriptor& b) { a.Swap(&b); }
  inline void Swap(ThreatListDescriptor* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatListDescriptor* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatListDescriptor* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatListDescriptor>(arena);
  }
  void CopyFrom(const ThreatListDescriptor& from);
  void MergeFrom(const ThreatListDescriptor& from) { ThreatListDescriptor::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatListDescriptor* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatListDescriptor"; }

  explicit ThreatListDescriptor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatListDescriptor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatListDescriptor& from);
  ThreatListDescriptor(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatListDescriptor&& from) noexcept
      : ThreatListDescriptor(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kThreatTypeFieldNumber = 1,
    kPlatformTypeFieldNumber = 2,
    kThreatEntryTypeFieldNumber = 3,
  };
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  [[nodiscard]] bool has_threat_type()
      const;
  void clear_threat_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatType threat_type() const;
  void set_threat_type(::mozilla::safebrowsing::ThreatType value);

  private:
  ::mozilla::safebrowsing::ThreatType _internal_threat_type() const;
  void _internal_set_threat_type(::mozilla::safebrowsing::ThreatType value);

  public:
  // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
  [[nodiscard]] bool has_platform_type()
      const;
  void clear_platform_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::PlatformType platform_type() const;
  void set_platform_type(::mozilla::safebrowsing::PlatformType value);

  private:
  ::mozilla::safebrowsing::PlatformType _internal_platform_type() const;
  void _internal_set_platform_type(::mozilla::safebrowsing::PlatformType value);

  public:
  // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 3;
  [[nodiscard]] bool has_threat_entry_type()
      const;
  void clear_threat_entry_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntryType threat_entry_type() const;
  void set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value);

  private:
  ::mozilla::safebrowsing::ThreatEntryType _internal_threat_entry_type() const;
  void _internal_set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatListDescriptor)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatListDescriptor& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int threat_type_;
    int platform_type_;
    int threat_entry_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatHit_UserInfo final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatHit.UserInfo) */ {
 public:
  inline ThreatHit_UserInfo() : ThreatHit_UserInfo(nullptr) {}
  ~ThreatHit_UserInfo() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatHit_UserInfo* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatHit_UserInfo));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatHit_UserInfo(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatHit_UserInfo(const ThreatHit_UserInfo& from) : ThreatHit_UserInfo(nullptr, from) {}
  inline ThreatHit_UserInfo(ThreatHit_UserInfo&& from) noexcept : ThreatHit_UserInfo(nullptr, ::std::move(from)) {}
  inline ThreatHit_UserInfo& operator=(const ThreatHit_UserInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatHit_UserInfo& operator=(ThreatHit_UserInfo&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatHit_UserInfo& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatHit_UserInfo>(&ThreatHit_UserInfo_globals_);
  }
  static constexpr int kIndexInFileMessages = 12;
  friend void swap(ThreatHit_UserInfo& a, ThreatHit_UserInfo& b) { a.Swap(&b); }
  inline void Swap(ThreatHit_UserInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatHit_UserInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatHit_UserInfo* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatHit_UserInfo>(arena);
  }
  void CopyFrom(const ThreatHit_UserInfo& from);
  void MergeFrom(const ThreatHit_UserInfo& from) { ThreatHit_UserInfo::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatHit_UserInfo* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatHit.UserInfo"; }

  explicit ThreatHit_UserInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatHit_UserInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatHit_UserInfo& from);
  ThreatHit_UserInfo(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatHit_UserInfo&& from) noexcept
      : ThreatHit_UserInfo(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kRegionCodeFieldNumber = 1,
    kUserIdFieldNumber = 2,
  };
  // optional string region_code = 1;
  [[nodiscard]] bool has_region_code()
      const;
  void clear_region_code() ;
  [[nodiscard]] const ::std::string& region_code() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_region_code(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_region_code();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_region_code();
  void set_allocated_region_code(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_region_code() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_region_code(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_region_code();

  public:
  // optional bytes user_id = 2;
  [[nodiscard]] bool has_user_id()
      const;
  void clear_user_id() ;
  [[nodiscard]] const ::std::string& user_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_user_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_user_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_user_id();
  void set_allocated_user_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_user_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_user_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_user_id();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatHit.UserInfo)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatHit_UserInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr region_code_;
    ::google::protobuf::internal::ArenaStringPtr user_id_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatHit_ThreatSource final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatHit.ThreatSource) */ {
 public:
  inline ThreatHit_ThreatSource() : ThreatHit_ThreatSource(nullptr) {}
  ~ThreatHit_ThreatSource() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatHit_ThreatSource* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatHit_ThreatSource));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatHit_ThreatSource(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatHit_ThreatSource(const ThreatHit_ThreatSource& from) : ThreatHit_ThreatSource(nullptr, from) {}
  inline ThreatHit_ThreatSource(ThreatHit_ThreatSource&& from) noexcept : ThreatHit_ThreatSource(nullptr, ::std::move(from)) {}
  inline ThreatHit_ThreatSource& operator=(const ThreatHit_ThreatSource& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatHit_ThreatSource& operator=(ThreatHit_ThreatSource&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatHit_ThreatSource& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatHit_ThreatSource>(&ThreatHit_ThreatSource_globals_);
  }
  static constexpr int kIndexInFileMessages = 11;
  friend void swap(ThreatHit_ThreatSource& a, ThreatHit_ThreatSource& b) { a.Swap(&b); }
  inline void Swap(ThreatHit_ThreatSource* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatHit_ThreatSource* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatHit_ThreatSource* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatHit_ThreatSource>(arena);
  }
  void CopyFrom(const ThreatHit_ThreatSource& from);
  void MergeFrom(const ThreatHit_ThreatSource& from) { ThreatHit_ThreatSource::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatHit_ThreatSource* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatHit.ThreatSource"; }

  explicit ThreatHit_ThreatSource(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatHit_ThreatSource(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatHit_ThreatSource& from);
  ThreatHit_ThreatSource(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatHit_ThreatSource&& from) noexcept
      : ThreatHit_ThreatSource(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kUrlFieldNumber = 1,
    kRemoteIpFieldNumber = 3,
    kReferrerFieldNumber = 4,
    kTypeFieldNumber = 2,
  };
  // optional string url = 1;
  [[nodiscard]] bool has_url()
      const;
  void clear_url() ;
  [[nodiscard]] const ::std::string& url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_url();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_url();
  void set_allocated_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_url();

  public:
  // optional string remote_ip = 3;
  [[nodiscard]] bool has_remote_ip()
      const;
  void clear_remote_ip() ;
  [[nodiscard]] const ::std::string& remote_ip() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_remote_ip(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_remote_ip();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_remote_ip();
  void set_allocated_remote_ip(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_remote_ip() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_remote_ip(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_remote_ip();

  public:
  // optional string referrer = 4;
  [[nodiscard]] bool has_referrer()
      const;
  void clear_referrer() ;
  [[nodiscard]] const ::std::string& referrer() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_referrer(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_referrer();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_referrer();
  void set_allocated_referrer(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_referrer() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_referrer(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_referrer();

  public:
  // optional .mozilla.safebrowsing.ThreatHit.ThreatSourceType type = 2;
  [[nodiscard]] bool has_type()
      const;
  void clear_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatHit_ThreatSourceType type() const;
  void set_type(::mozilla::safebrowsing::ThreatHit_ThreatSourceType value);

  private:
  ::mozilla::safebrowsing::ThreatHit_ThreatSourceType _internal_type() const;
  void _internal_set_type(::mozilla::safebrowsing::ThreatHit_ThreatSourceType value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatHit.ThreatSource)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatHit_ThreatSource& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr url_;
    ::google::protobuf::internal::ArenaStringPtr remote_ip_;
    ::google::protobuf::internal::ArenaStringPtr referrer_;
    int type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatEntryMetadata_MetadataEntry final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry) */ {
 public:
  inline ThreatEntryMetadata_MetadataEntry() : ThreatEntryMetadata_MetadataEntry(nullptr) {}
  ~ThreatEntryMetadata_MetadataEntry() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatEntryMetadata_MetadataEntry* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatEntryMetadata_MetadataEntry));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatEntryMetadata_MetadataEntry(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatEntryMetadata_MetadataEntry(const ThreatEntryMetadata_MetadataEntry& from) : ThreatEntryMetadata_MetadataEntry(nullptr, from) {}
  inline ThreatEntryMetadata_MetadataEntry(ThreatEntryMetadata_MetadataEntry&& from) noexcept : ThreatEntryMetadata_MetadataEntry(nullptr, ::std::move(from)) {}
  inline ThreatEntryMetadata_MetadataEntry& operator=(const ThreatEntryMetadata_MetadataEntry& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatEntryMetadata_MetadataEntry& operator=(ThreatEntryMetadata_MetadataEntry&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatEntryMetadata_MetadataEntry& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatEntryMetadata_MetadataEntry>(&ThreatEntryMetadata_MetadataEntry_globals_);
  }
  static constexpr int kIndexInFileMessages = 22;
  friend void swap(ThreatEntryMetadata_MetadataEntry& a, ThreatEntryMetadata_MetadataEntry& b) { a.Swap(&b); }
  inline void Swap(ThreatEntryMetadata_MetadataEntry* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatEntryMetadata_MetadataEntry* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatEntryMetadata_MetadataEntry* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatEntryMetadata_MetadataEntry>(arena);
  }
  void CopyFrom(const ThreatEntryMetadata_MetadataEntry& from);
  void MergeFrom(const ThreatEntryMetadata_MetadataEntry& from) { ThreatEntryMetadata_MetadataEntry::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatEntryMetadata_MetadataEntry* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry"; }

  explicit ThreatEntryMetadata_MetadataEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatEntryMetadata_MetadataEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatEntryMetadata_MetadataEntry& from);
  ThreatEntryMetadata_MetadataEntry(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatEntryMetadata_MetadataEntry&& from) noexcept
      : ThreatEntryMetadata_MetadataEntry(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kKeyFieldNumber = 1,
    kValueFieldNumber = 2,
  };
  // optional bytes key = 1;
  [[nodiscard]] bool has_key()
      const;
  void clear_key() ;
  [[nodiscard]] const ::std::string& key() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_key(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_key();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_key();
  void set_allocated_key(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_key() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_key(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_key();

  public:
  // optional bytes value = 2;
  [[nodiscard]] bool has_value()
      const;
  void clear_value() ;
  [[nodiscard]] const ::std::string& value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_value();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_value();
  void set_allocated_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_value();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatEntryMetadata_MetadataEntry& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr key_;
    ::google::protobuf::internal::ArenaStringPtr value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatEntry final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatEntry) */ {
 public:
  inline ThreatEntry() : ThreatEntry(nullptr) {}
  ~ThreatEntry() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatEntry* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatEntry));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatEntry(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatEntry(const ThreatEntry& from) : ThreatEntry(nullptr, from) {}
  inline ThreatEntry(ThreatEntry&& from) noexcept : ThreatEntry(nullptr, ::std::move(from)) {}
  inline ThreatEntry& operator=(const ThreatEntry& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatEntry& operator=(ThreatEntry&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatEntry& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatEntry>(&ThreatEntry_globals_);
  }
  static constexpr int kIndexInFileMessages = 17;
  friend void swap(ThreatEntry& a, ThreatEntry& b) { a.Swap(&b); }
  inline void Swap(ThreatEntry* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatEntry* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatEntry* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatEntry>(arena);
  }
  void CopyFrom(const ThreatEntry& from);
  void MergeFrom(const ThreatEntry& from) { ThreatEntry::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatEntry* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatEntry"; }

  explicit ThreatEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatEntry& from);
  ThreatEntry(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatEntry&& from) noexcept
      : ThreatEntry(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kHashFieldNumber = 1,
    kUrlFieldNumber = 2,
  };
  // optional bytes hash = 1;
  [[nodiscard]] bool has_hash()
      const;
  void clear_hash() ;
  [[nodiscard]] const ::std::string& hash() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_hash(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_hash();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_hash();
  void set_allocated_hash(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_hash() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_hash(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_hash();

  public:
  // optional string url = 2;
  [[nodiscard]] bool has_url()
      const;
  void clear_url() ;
  [[nodiscard]] const ::std::string& url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_url();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_url();
  void set_allocated_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_url();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatEntry)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatEntry& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr hash_;
    ::google::protobuf::internal::ArenaStringPtr url_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RiceDeltaEncoding final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.RiceDeltaEncoding) */ {
 public:
  inline RiceDeltaEncoding() : RiceDeltaEncoding(nullptr) {}
  ~RiceDeltaEncoding() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RiceDeltaEncoding* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RiceDeltaEncoding));
  }
#endif

  template <typename = void>
  explicit constexpr RiceDeltaEncoding(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RiceDeltaEncoding(const RiceDeltaEncoding& from) : RiceDeltaEncoding(nullptr, from) {}
  inline RiceDeltaEncoding(RiceDeltaEncoding&& from) noexcept : RiceDeltaEncoding(nullptr, ::std::move(from)) {}
  inline RiceDeltaEncoding& operator=(const RiceDeltaEncoding& from) {
    CopyFrom(from);
    return *this;
  }
  inline RiceDeltaEncoding& operator=(RiceDeltaEncoding&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const RiceDeltaEncoding& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RiceDeltaEncoding>(&RiceDeltaEncoding_globals_);
  }
  static constexpr int kIndexInFileMessages = 21;
  friend void swap(RiceDeltaEncoding& a, RiceDeltaEncoding& b) { a.Swap(&b); }
  inline void Swap(RiceDeltaEncoding* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RiceDeltaEncoding* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] RiceDeltaEncoding* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<RiceDeltaEncoding>(arena);
  }
  void CopyFrom(const RiceDeltaEncoding& from);
  void MergeFrom(const RiceDeltaEncoding& from) { RiceDeltaEncoding::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RiceDeltaEncoding* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.RiceDeltaEncoding"; }

  explicit RiceDeltaEncoding(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RiceDeltaEncoding(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RiceDeltaEncoding& from);
  RiceDeltaEncoding(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RiceDeltaEncoding&& from) noexcept
      : RiceDeltaEncoding(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEncodedDataFieldNumber = 4,
    kFirstValueFieldNumber = 1,
    kRiceParameterFieldNumber = 2,
    kNumEntriesFieldNumber = 3,
  };
  // optional bytes encoded_data = 4;
  [[nodiscard]] bool has_encoded_data()
      const;
  void clear_encoded_data() ;
  [[nodiscard]] const ::std::string& encoded_data() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_encoded_data(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_encoded_data();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_encoded_data();
  void set_allocated_encoded_data(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_encoded_data() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_encoded_data(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_encoded_data();

  public:
  // optional int64 first_value = 1;
  [[nodiscard]] bool has_first_value()
      const;
  void clear_first_value() ;
  [[nodiscard]] ::int64_t first_value() const;
  void set_first_value(::int64_t value);

  private:
  ::int64_t _internal_first_value() const;
  void _internal_set_first_value(::int64_t value);

  public:
  // optional int32 rice_parameter = 2;
  [[nodiscard]] bool has_rice_parameter()
      const;
  void clear_rice_parameter() ;
  [[nodiscard]] ::int32_t rice_parameter() const;
  void set_rice_parameter(::int32_t value);

  private:
  ::int32_t _internal_rice_parameter() const;
  void _internal_set_rice_parameter(::int32_t value);

  public:
  // optional int32 num_entries = 3;
  [[nodiscard]] bool has_num_entries()
      const;
  void clear_num_entries() ;
  [[nodiscard]] ::int32_t num_entries() const;
  void set_num_entries(::int32_t value);

  private:
  ::int32_t _internal_num_entries() const;
  void _internal_set_num_entries(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.RiceDeltaEncoding)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RiceDeltaEncoding& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr encoded_data_;
    ::int64_t first_value_;
    ::int32_t rice_parameter_;
    ::int32_t num_entries_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RawIndices final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.RawIndices) */ {
 public:
  inline RawIndices() : RawIndices(nullptr) {}
  ~RawIndices() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RawIndices* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RawIndices));
  }
#endif

  template <typename = void>
  explicit constexpr RawIndices(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RawIndices(const RawIndices& from) : RawIndices(nullptr, from) {}
  inline RawIndices(RawIndices&& from) noexcept : RawIndices(nullptr, ::std::move(from)) {}
  inline RawIndices& operator=(const RawIndices& from) {
    CopyFrom(from);
    return *this;
  }
  inline RawIndices& operator=(RawIndices&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const RawIndices& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RawIndices>(&RawIndices_globals_);
  }
  static constexpr int kIndexInFileMessages = 19;
  friend void swap(RawIndices& a, RawIndices& b) { a.Swap(&b); }
  inline void Swap(RawIndices* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RawIndices* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] RawIndices* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<RawIndices>(arena);
  }
  void CopyFrom(const RawIndices& from);
  void MergeFrom(const RawIndices& from) { RawIndices::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RawIndices* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.RawIndices"; }

  explicit RawIndices(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RawIndices(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RawIndices& from);
  RawIndices(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RawIndices&& from) noexcept
      : RawIndices(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kIndicesFieldNumber = 1,
  };
  // repeated int32 indices = 1;
  [[nodiscard]] int indices_size()
      const;
  private:
  int _internal_indices_size() const;

  public:
  void clear_indices() ;
  [[nodiscard]] ::int32_t indices(int index) const;
  void set_indices(int index, ::int32_t value);
  void add_indices(::int32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::int32_t>& indices()
      const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL mutable_indices();

  private:
  const ::google::protobuf::RepeatedField<::int32_t>& _internal_indices() const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL _internal_mutable_indices();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.RawIndices)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RawIndices& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::int32_t> indices_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RawHashes final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.RawHashes) */ {
 public:
  inline RawHashes() : RawHashes(nullptr) {}
  ~RawHashes() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RawHashes* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RawHashes));
  }
#endif

  template <typename = void>
  explicit constexpr RawHashes(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RawHashes(const RawHashes& from) : RawHashes(nullptr, from) {}
  inline RawHashes(RawHashes&& from) noexcept : RawHashes(nullptr, ::std::move(from)) {}
  inline RawHashes& operator=(const RawHashes& from) {
    CopyFrom(from);
    return *this;
  }
  inline RawHashes& operator=(RawHashes&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const RawHashes& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RawHashes>(&RawHashes_globals_);
  }
  static constexpr int kIndexInFileMessages = 20;
  friend void swap(RawHashes& a, RawHashes& b) { a.Swap(&b); }
  inline void Swap(RawHashes* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RawHashes* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] RawHashes* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<RawHashes>(arena);
  }
  void CopyFrom(const RawHashes& from);
  void MergeFrom(const RawHashes& from) { RawHashes::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RawHashes* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.RawHashes"; }

  explicit RawHashes(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RawHashes(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RawHashes& from);
  RawHashes(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RawHashes&& from) noexcept
      : RawHashes(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kRawHashesFieldNumber = 2,
    kPrefixSizeFieldNumber = 1,
  };
  // optional bytes raw_hashes = 2;
  [[nodiscard]] bool has_raw_hashes()
      const;
  void clear_raw_hashes() ;
  [[nodiscard]] const ::std::string& raw_hashes() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_raw_hashes(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_raw_hashes();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_raw_hashes();
  void set_allocated_raw_hashes(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_raw_hashes() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_raw_hashes(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_raw_hashes();

  public:
  // optional int32 prefix_size = 1;
  [[nodiscard]] bool has_prefix_size()
      const;
  void clear_prefix_size() ;
  [[nodiscard]] ::int32_t prefix_size() const;
  void set_prefix_size(::int32_t value);

  private:
  ::int32_t _internal_prefix_size() const;
  void _internal_set_prefix_size(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.RawHashes)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RawHashes& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr raw_hashes_;
    ::int32_t prefix_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints) */ {
 public:
  inline FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints() : FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(nullptr) {}
  ~FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints));
  }
#endif

  template <typename = void>
  explicit constexpr FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& from) : FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(nullptr, from) {}
  inline FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints&& from) noexcept : FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(nullptr, ::std::move(from)) {}
  inline FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& operator=(const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& from) {
    CopyFrom(from);
    return *this;
  }
  inline FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& operator=(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>(&FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& a, FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& b) { a.Swap(&b); }
  inline void Swap(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>(arena);
  }
  void CopyFrom(const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& from);
  void MergeFrom(const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& from) { FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints"; }

  explicit FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& from);
  FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints&& from) noexcept
      : FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSupportedCompressionsFieldNumber = 4,
    kRegionFieldNumber = 3,
    kMaxUpdateEntriesFieldNumber = 1,
    kMaxDatabaseEntriesFieldNumber = 2,
  };
  // repeated .mozilla.safebrowsing.CompressionType supported_compressions = 4;
  [[nodiscard]] int supported_compressions_size()
      const;
  private:
  int _internal_supported_compressions_size() const;

  public:
  void clear_supported_compressions() ;
  public:
  [[nodiscard]] ::mozilla::safebrowsing::CompressionType supported_compressions(int index) const;
  void set_supported_compressions(int index, ::mozilla::safebrowsing::CompressionType value);
  void add_supported_compressions(::mozilla::safebrowsing::CompressionType value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<int>& supported_compressions()
      const;
  [[nodiscard]] ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_supported_compressions();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_supported_compressions() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_supported_compressions();

  public:
  // optional string region = 3;
  [[nodiscard]] bool has_region()
      const;
  void clear_region() ;
  [[nodiscard]] const ::std::string& region() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_region(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_region();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_region();
  void set_allocated_region(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_region() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_region(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_region();

  public:
  // optional int32 max_update_entries = 1;
  [[nodiscard]] bool has_max_update_entries()
      const;
  void clear_max_update_entries() ;
  [[nodiscard]] ::int32_t max_update_entries() const;
  void set_max_update_entries(::int32_t value);

  private:
  ::int32_t _internal_max_update_entries() const;
  void _internal_set_max_update_entries(::int32_t value);

  public:
  // optional int32 max_database_entries = 2;
  [[nodiscard]] bool has_max_database_entries()
      const;
  void clear_max_database_entries() ;
  [[nodiscard]] ::int32_t max_database_entries() const;
  void set_max_database_entries(::int32_t value);

  private:
  ::int32_t _internal_max_database_entries() const;
  void _internal_set_max_database_entries(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<int> supported_compressions_;
    ::google::protobuf::internal::ArenaStringPtr region_;
    ::int32_t max_update_entries_;
    ::int32_t max_database_entries_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Duration final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.Duration) */ {
 public:
  inline Duration() : Duration(nullptr) {}
  ~Duration() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Duration* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Duration));
  }
#endif

  template <typename = void>
  explicit constexpr Duration(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Duration(const Duration& from) : Duration(nullptr, from) {}
  inline Duration(Duration&& from) noexcept : Duration(nullptr, ::std::move(from)) {}
  inline Duration& operator=(const Duration& from) {
    CopyFrom(from);
    return *this;
  }
  inline Duration& operator=(Duration&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const Duration& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Duration>(&Duration_globals_);
  }
  static constexpr int kIndexInFileMessages = 26;
  friend void swap(Duration& a, Duration& b) { a.Swap(&b); }
  inline void Swap(Duration* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Duration* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] Duration* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Duration>(arena);
  }
  void CopyFrom(const Duration& from);
  void MergeFrom(const Duration& from) { Duration::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Duration* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.Duration"; }

  explicit Duration(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Duration(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Duration& from);
  Duration(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Duration&& from) noexcept
      : Duration(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSecondsFieldNumber = 1,
    kNanosFieldNumber = 2,
  };
  // optional int64 seconds = 1;
  [[nodiscard]] bool has_seconds()
      const;
  void clear_seconds() ;
  [[nodiscard]] ::int64_t seconds() const;
  void set_seconds(::int64_t value);

  private:
  ::int64_t _internal_seconds() const;
  void _internal_set_seconds(::int64_t value);

  public:
  // optional int32 nanos = 2;
  [[nodiscard]] bool has_nanos()
      const;
  void clear_nanos() ;
  [[nodiscard]] ::int32_t nanos() const;
  void set_nanos(::int32_t value);

  private:
  ::int32_t _internal_nanos() const;
  void _internal_set_nanos(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.Duration)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Duration& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int64_t seconds_;
    ::int32_t nanos_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ClientInfo final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ClientInfo) */ {
 public:
  inline ClientInfo() : ClientInfo(nullptr) {}
  ~ClientInfo() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ClientInfo* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ClientInfo));
  }
#endif

  template <typename = void>
  explicit constexpr ClientInfo(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ClientInfo(const ClientInfo& from) : ClientInfo(nullptr, from) {}
  inline ClientInfo(ClientInfo&& from) noexcept : ClientInfo(nullptr, ::std::move(from)) {}
  inline ClientInfo& operator=(const ClientInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline ClientInfo& operator=(ClientInfo&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ClientInfo& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ClientInfo>(&ClientInfo_globals_);
  }
  static constexpr int kIndexInFileMessages = 14;
  friend void swap(ClientInfo& a, ClientInfo& b) { a.Swap(&b); }
  inline void Swap(ClientInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ClientInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ClientInfo* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ClientInfo>(arena);
  }
  void CopyFrom(const ClientInfo& from);
  void MergeFrom(const ClientInfo& from) { ClientInfo::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ClientInfo* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ClientInfo"; }

  explicit ClientInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ClientInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ClientInfo& from);
  ClientInfo(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ClientInfo&& from) noexcept
      : ClientInfo(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kClientIdFieldNumber = 1,
    kClientVersionFieldNumber = 2,
  };
  // optional string client_id = 1;
  [[nodiscard]] bool has_client_id()
      const;
  void clear_client_id() ;
  [[nodiscard]] const ::std::string& client_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_client_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_client_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_client_id();
  void set_allocated_client_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_client_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_client_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_client_id();

  public:
  // optional string client_version = 2;
  [[nodiscard]] bool has_client_version()
      const;
  void clear_client_version() ;
  [[nodiscard]] const ::std::string& client_version() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_client_version(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_client_version();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_client_version();
  void set_allocated_client_version(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_client_version() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_client_version(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_client_version();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ClientInfo)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ClientInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr client_id_;
    ::google::protobuf::internal::ArenaStringPtr client_version_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ChromeClientInfo final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ChromeClientInfo) */ {
 public:
  inline ChromeClientInfo() : ChromeClientInfo(nullptr) {}
  ~ChromeClientInfo() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ChromeClientInfo* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ChromeClientInfo));
  }
#endif

  template <typename = void>
  explicit constexpr ChromeClientInfo(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ChromeClientInfo(const ChromeClientInfo& from) : ChromeClientInfo(nullptr, from) {}
  inline ChromeClientInfo(ChromeClientInfo&& from) noexcept : ChromeClientInfo(nullptr, ::std::move(from)) {}
  inline ChromeClientInfo& operator=(const ChromeClientInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChromeClientInfo& operator=(ChromeClientInfo&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ChromeClientInfo& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ChromeClientInfo>(&ChromeClientInfo_globals_);
  }
  static constexpr int kIndexInFileMessages = 15;
  friend void swap(ChromeClientInfo& a, ChromeClientInfo& b) { a.Swap(&b); }
  inline void Swap(ChromeClientInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChromeClientInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ChromeClientInfo* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ChromeClientInfo>(arena);
  }
  void CopyFrom(const ChromeClientInfo& from);
  void MergeFrom(const ChromeClientInfo& from) { ChromeClientInfo::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ChromeClientInfo* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ChromeClientInfo"; }

  explicit ChromeClientInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ChromeClientInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ChromeClientInfo& from);
  ChromeClientInfo(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ChromeClientInfo&& from) noexcept
      : ChromeClientInfo(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------
  using SafeBrowsingReportingPopulation = ChromeClientInfo_SafeBrowsingReportingPopulation;
  static constexpr SafeBrowsingReportingPopulation UNSPECIFIED = ChromeClientInfo_SafeBrowsingReportingPopulation_UNSPECIFIED;
  static constexpr SafeBrowsingReportingPopulation OPT_OUT = ChromeClientInfo_SafeBrowsingReportingPopulation_OPT_OUT;
  static constexpr SafeBrowsingReportingPopulation EXTENDED = ChromeClientInfo_SafeBrowsingReportingPopulation_EXTENDED;
  static constexpr SafeBrowsingReportingPopulation SCOUT = ChromeClientInfo_SafeBrowsingReportingPopulation_SCOUT;
  [[nodiscard]] static inline bool SafeBrowsingReportingPopulation_IsValid(int value) {
    return ChromeClientInfo_SafeBrowsingReportingPopulation_IsValid(value);
  }
  static constexpr SafeBrowsingReportingPopulation SafeBrowsingReportingPopulation_MIN = ChromeClientInfo_SafeBrowsingReportingPopulation_SafeBrowsingReportingPopulation_MIN;
  static constexpr SafeBrowsingReportingPopulation SafeBrowsingReportingPopulation_MAX = ChromeClientInfo_SafeBrowsingReportingPopulation_SafeBrowsingReportingPopulation_MAX;
  static constexpr int SafeBrowsingReportingPopulation_ARRAYSIZE = ChromeClientInfo_SafeBrowsingReportingPopulation_SafeBrowsingReportingPopulation_ARRAYSIZE;
  template <typename T>
  [[nodiscard]] static inline const ::std::string& SafeBrowsingReportingPopulation_Name(T value) {
    return ChromeClientInfo_SafeBrowsingReportingPopulation_Name(value);
  }
  [[nodiscard]] static inline bool SafeBrowsingReportingPopulation_Parse(
      ::absl::string_view name, SafeBrowsingReportingPopulation* PROTOBUF_NONNULL value) {
    return ChromeClientInfo_SafeBrowsingReportingPopulation_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kReportingPopulationFieldNumber = 1,
  };
  // optional .mozilla.safebrowsing.ChromeClientInfo.SafeBrowsingReportingPopulation reporting_population = 1;
  [[nodiscard]] bool has_reporting_population()
      const;
  void clear_reporting_population() ;
  [[nodiscard]] ::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation reporting_population() const;
  void set_reporting_population(::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation value);

  private:
  ::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation _internal_reporting_population() const;
  void _internal_set_reporting_population(::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ChromeClientInfo)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ChromeClientInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int reporting_population_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Checksum final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.Checksum) */ {
 public:
  inline Checksum() : Checksum(nullptr) {}
  ~Checksum() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Checksum* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Checksum));
  }
#endif

  template <typename = void>
  explicit constexpr Checksum(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Checksum(const Checksum& from) : Checksum(nullptr, from) {}
  inline Checksum(Checksum&& from) noexcept : Checksum(nullptr, ::std::move(from)) {}
  inline Checksum& operator=(const Checksum& from) {
    CopyFrom(from);
    return *this;
  }
  inline Checksum& operator=(Checksum&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const Checksum& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Checksum>(&Checksum_globals_);
  }
  static constexpr int kIndexInFileMessages = 16;
  friend void swap(Checksum& a, Checksum& b) { a.Swap(&b); }
  inline void Swap(Checksum* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Checksum* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] Checksum* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Checksum>(arena);
  }
  void CopyFrom(const Checksum& from);
  void MergeFrom(const Checksum& from) { Checksum::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Checksum* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.Checksum"; }

  explicit Checksum(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Checksum(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Checksum& from);
  Checksum(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Checksum&& from) noexcept
      : Checksum(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSha256FieldNumber = 1,
  };
  // optional bytes sha256 = 1;
  [[nodiscard]] bool has_sha256()
      const;
  void clear_sha256() ;
  [[nodiscard]] const ::std::string& sha256() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_sha256(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_sha256();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_sha256();
  void set_allocated_sha256(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_sha256() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_sha256(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_sha256();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.Checksum)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Checksum& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr sha256_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatInfo final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatInfo) */ {
 public:
  inline ThreatInfo() : ThreatInfo(nullptr) {}
  ~ThreatInfo() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatInfo* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatInfo));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatInfo(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatInfo(const ThreatInfo& from) : ThreatInfo(nullptr, from) {}
  inline ThreatInfo(ThreatInfo&& from) noexcept : ThreatInfo(nullptr, ::std::move(from)) {}
  inline ThreatInfo& operator=(const ThreatInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatInfo& operator=(ThreatInfo&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatInfo& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatInfo>(&ThreatInfo_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(ThreatInfo& a, ThreatInfo& b) { a.Swap(&b); }
  inline void Swap(ThreatInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatInfo* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatInfo>(arena);
  }
  void CopyFrom(const ThreatInfo& from);
  void MergeFrom(const ThreatInfo& from) { ThreatInfo::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatInfo* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatInfo"; }

  explicit ThreatInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatInfo& from);
  ThreatInfo(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatInfo&& from) noexcept
      : ThreatInfo(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kThreatTypesFieldNumber = 1,
    kPlatformTypesFieldNumber = 2,
    kThreatEntriesFieldNumber = 3,
    kThreatEntryTypesFieldNumber = 4,
  };
  // repeated .mozilla.safebrowsing.ThreatType threat_types = 1;
  [[nodiscard]] int threat_types_size()
      const;
  private:
  int _internal_threat_types_size() const;

  public:
  void clear_threat_types() ;
  public:
  [[nodiscard]] ::mozilla::safebrowsing::ThreatType threat_types(int index) const;
  void set_threat_types(int index, ::mozilla::safebrowsing::ThreatType value);
  void add_threat_types(::mozilla::safebrowsing::ThreatType value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<int>& threat_types()
      const;
  [[nodiscard]] ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_threat_types();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_threat_types() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_threat_types();

  public:
  // repeated .mozilla.safebrowsing.PlatformType platform_types = 2;
  [[nodiscard]] int platform_types_size()
      const;
  private:
  int _internal_platform_types_size() const;

  public:
  void clear_platform_types() ;
  public:
  [[nodiscard]] ::mozilla::safebrowsing::PlatformType platform_types(int index) const;
  void set_platform_types(int index, ::mozilla::safebrowsing::PlatformType value);
  void add_platform_types(::mozilla::safebrowsing::PlatformType value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<int>& platform_types()
      const;
  [[nodiscard]] ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_platform_types();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_platform_types() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_platform_types();

  public:
  // repeated .mozilla.safebrowsing.ThreatEntry threat_entries = 3;
  [[nodiscard]] int threat_entries_size()
      const;
  private:
  int _internal_threat_entries_size() const;

  public:
  void clear_threat_entries() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatEntry& threat_entries(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL mutable_threat_entries(int index);
  ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL add_threat_entries();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntry>&
  threat_entries() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntry>* PROTOBUF_NONNULL
  mutable_threat_entries();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntry>& _internal_threat_entries() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntry>* PROTOBUF_NONNULL _internal_mutable_threat_entries();

  public:
  // repeated .mozilla.safebrowsing.ThreatEntryType threat_entry_types = 4;
  [[nodiscard]] int threat_entry_types_size()
      const;
  private:
  int _internal_threat_entry_types_size() const;

  public:
  void clear_threat_entry_types() ;
  public:
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntryType threat_entry_types(int index) const;
  void set_threat_entry_types(int index, ::mozilla::safebrowsing::ThreatEntryType value);
  void add_threat_entry_types(::mozilla::safebrowsing::ThreatEntryType value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<int>& threat_entry_types()
      const;
  [[nodiscard]] ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_threat_entry_types();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_threat_entry_types() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_threat_entry_types();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatInfo)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          4, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<int> threat_types_;
    ::google::protobuf::RepeatedField<int> platform_types_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::ThreatEntry > threat_entries_;
    ::google::protobuf::RepeatedField<int> threat_entry_types_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatHit final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatHit) */ {
 public:
  inline ThreatHit() : ThreatHit(nullptr) {}
  ~ThreatHit() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatHit* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatHit));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatHit(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatHit(const ThreatHit& from) : ThreatHit(nullptr, from) {}
  inline ThreatHit(ThreatHit&& from) noexcept : ThreatHit(nullptr, ::std::move(from)) {}
  inline ThreatHit& operator=(const ThreatHit& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatHit& operator=(ThreatHit&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatHit& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatHit>(&ThreatHit_globals_);
  }
  static constexpr int kIndexInFileMessages = 13;
  friend void swap(ThreatHit& a, ThreatHit& b) { a.Swap(&b); }
  inline void Swap(ThreatHit* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatHit* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatHit* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatHit>(arena);
  }
  void CopyFrom(const ThreatHit& from);
  void MergeFrom(const ThreatHit& from) { ThreatHit::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatHit* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatHit"; }

  explicit ThreatHit(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatHit(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatHit& from);
  ThreatHit(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatHit&& from) noexcept
      : ThreatHit(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------
  using ThreatSource = ThreatHit_ThreatSource;
  using UserInfo = ThreatHit_UserInfo;
  using ThreatSourceType = ThreatHit_ThreatSourceType;
  static constexpr ThreatSourceType THREAT_SOURCE_TYPE_UNSPECIFIED = ThreatHit_ThreatSourceType_THREAT_SOURCE_TYPE_UNSPECIFIED;
  static constexpr ThreatSourceType MATCHING_URL = ThreatHit_ThreatSourceType_MATCHING_URL;
  static constexpr ThreatSourceType TAB_URL = ThreatHit_ThreatSourceType_TAB_URL;
  static constexpr ThreatSourceType TAB_REDIRECT = ThreatHit_ThreatSourceType_TAB_REDIRECT;
  static constexpr ThreatSourceType TAB_RESOURCE = ThreatHit_ThreatSourceType_TAB_RESOURCE;
  [[nodiscard]] static inline bool ThreatSourceType_IsValid(int value) {
    return ThreatHit_ThreatSourceType_IsValid(value);
  }
  static constexpr ThreatSourceType ThreatSourceType_MIN = ThreatHit_ThreatSourceType_ThreatSourceType_MIN;
  static constexpr ThreatSourceType ThreatSourceType_MAX = ThreatHit_ThreatSourceType_ThreatSourceType_MAX;
  static constexpr int ThreatSourceType_ARRAYSIZE = ThreatHit_ThreatSourceType_ThreatSourceType_ARRAYSIZE;
  template <typename T>
  [[nodiscard]] static inline const ::std::string& ThreatSourceType_Name(T value) {
    return ThreatHit_ThreatSourceType_Name(value);
  }
  [[nodiscard]] static inline bool ThreatSourceType_Parse(
      ::absl::string_view name, ThreatSourceType* PROTOBUF_NONNULL value) {
    return ThreatHit_ThreatSourceType_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kResourcesFieldNumber = 4,
    kEntryFieldNumber = 3,
    kClientInfoFieldNumber = 5,
    kUserInfoFieldNumber = 6,
    kThreatTypeFieldNumber = 1,
    kPlatformTypeFieldNumber = 2,
  };
  // repeated .mozilla.safebrowsing.ThreatHit.ThreatSource resources = 4;
  [[nodiscard]] int resources_size()
      const;
  private:
  int _internal_resources_size() const;

  public:
  void clear_resources() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatHit_ThreatSource& resources(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatHit_ThreatSource* PROTOBUF_NONNULL mutable_resources(int index);
  ::mozilla::safebrowsing::ThreatHit_ThreatSource* PROTOBUF_NONNULL add_resources();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatHit_ThreatSource>&
  resources() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatHit_ThreatSource>* PROTOBUF_NONNULL
  mutable_resources();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatHit_ThreatSource>& _internal_resources() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatHit_ThreatSource>* PROTOBUF_NONNULL _internal_mutable_resources();

  public:
  // optional .mozilla.safebrowsing.ThreatEntry entry = 3;
  [[nodiscard]] bool has_entry()
      const;
  void clear_entry() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatEntry& entry() const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE release_entry();
  ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL mutable_entry();
  void set_allocated_entry(::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_entry(::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE unsafe_arena_release_entry();

  private:
  const ::mozilla::safebrowsing::ThreatEntry& _internal_entry() const;
  ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL _internal_mutable_entry();

  public:
  // optional .mozilla.safebrowsing.ClientInfo client_info = 5;
  [[nodiscard]] bool has_client_info()
      const;
  void clear_client_info() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ClientInfo& client_info() const;
  [[nodiscard]] ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE release_client_info();
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL mutable_client_info();
  void set_allocated_client_info(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_client_info(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE unsafe_arena_release_client_info();

  private:
  const ::mozilla::safebrowsing::ClientInfo& _internal_client_info() const;
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL _internal_mutable_client_info();

  public:
  // optional .mozilla.safebrowsing.ThreatHit.UserInfo user_info = 6;
  [[nodiscard]] bool has_user_info()
      const;
  void clear_user_info() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatHit_UserInfo& user_info() const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NULLABLE release_user_info();
  ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NONNULL mutable_user_info();
  void set_allocated_user_info(::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_user_info(::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NULLABLE unsafe_arena_release_user_info();

  private:
  const ::mozilla::safebrowsing::ThreatHit_UserInfo& _internal_user_info() const;
  ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NONNULL _internal_mutable_user_info();

  public:
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  [[nodiscard]] bool has_threat_type()
      const;
  void clear_threat_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatType threat_type() const;
  void set_threat_type(::mozilla::safebrowsing::ThreatType value);

  private:
  ::mozilla::safebrowsing::ThreatType _internal_threat_type() const;
  void _internal_set_threat_type(::mozilla::safebrowsing::ThreatType value);

  public:
  // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
  [[nodiscard]] bool has_platform_type()
      const;
  void clear_platform_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::PlatformType platform_type() const;
  void set_platform_type(::mozilla::safebrowsing::PlatformType value);

  private:
  ::mozilla::safebrowsing::PlatformType _internal_platform_type() const;
  void _internal_set_platform_type(::mozilla::safebrowsing::PlatformType value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatHit)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 6,
                          6, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatHit& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::ThreatHit_ThreatSource > resources_;
    ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE entry_;
    ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE client_info_;
    ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NULLABLE user_info_;
    int threat_type_;
    int platform_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatEntrySet final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatEntrySet) */ {
 public:
  inline ThreatEntrySet() : ThreatEntrySet(nullptr) {}
  ~ThreatEntrySet() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatEntrySet* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatEntrySet));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatEntrySet(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatEntrySet(const ThreatEntrySet& from) : ThreatEntrySet(nullptr, from) {}
  inline ThreatEntrySet(ThreatEntrySet&& from) noexcept : ThreatEntrySet(nullptr, ::std::move(from)) {}
  inline ThreatEntrySet& operator=(const ThreatEntrySet& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatEntrySet& operator=(ThreatEntrySet&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatEntrySet& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatEntrySet>(&ThreatEntrySet_globals_);
  }
  static constexpr int kIndexInFileMessages = 18;
  friend void swap(ThreatEntrySet& a, ThreatEntrySet& b) { a.Swap(&b); }
  inline void Swap(ThreatEntrySet* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatEntrySet* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatEntrySet* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatEntrySet>(arena);
  }
  void CopyFrom(const ThreatEntrySet& from);
  void MergeFrom(const ThreatEntrySet& from) { ThreatEntrySet::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatEntrySet* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatEntrySet"; }

  explicit ThreatEntrySet(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatEntrySet(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatEntrySet& from);
  ThreatEntrySet(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatEntrySet&& from) noexcept
      : ThreatEntrySet(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kRawHashesFieldNumber = 2,
    kRawIndicesFieldNumber = 3,
    kRiceHashesFieldNumber = 4,
    kRiceIndicesFieldNumber = 5,
    kCompressionTypeFieldNumber = 1,
  };
  // optional .mozilla.safebrowsing.RawHashes raw_hashes = 2;
  [[nodiscard]] bool has_raw_hashes()
      const;
  void clear_raw_hashes() ;
  [[nodiscard]] const ::mozilla::safebrowsing::RawHashes& raw_hashes() const;
  [[nodiscard]] ::mozilla::safebrowsing::RawHashes* PROTOBUF_NULLABLE release_raw_hashes();
  ::mozilla::safebrowsing::RawHashes* PROTOBUF_NONNULL mutable_raw_hashes();
  void set_allocated_raw_hashes(::mozilla::safebrowsing::RawHashes* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_raw_hashes(::mozilla::safebrowsing::RawHashes* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::RawHashes* PROTOBUF_NULLABLE unsafe_arena_release_raw_hashes();

  private:
  const ::mozilla::safebrowsing::RawHashes& _internal_raw_hashes() const;
  ::mozilla::safebrowsing::RawHashes* PROTOBUF_NONNULL _internal_mutable_raw_hashes();

  public:
  // optional .mozilla.safebrowsing.RawIndices raw_indices = 3;
  [[nodiscard]] bool has_raw_indices()
      const;
  void clear_raw_indices() ;
  [[nodiscard]] const ::mozilla::safebrowsing::RawIndices& raw_indices() const;
  [[nodiscard]] ::mozilla::safebrowsing::RawIndices* PROTOBUF_NULLABLE release_raw_indices();
  ::mozilla::safebrowsing::RawIndices* PROTOBUF_NONNULL mutable_raw_indices();
  void set_allocated_raw_indices(::mozilla::safebrowsing::RawIndices* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_raw_indices(::mozilla::safebrowsing::RawIndices* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::RawIndices* PROTOBUF_NULLABLE unsafe_arena_release_raw_indices();

  private:
  const ::mozilla::safebrowsing::RawIndices& _internal_raw_indices() const;
  ::mozilla::safebrowsing::RawIndices* PROTOBUF_NONNULL _internal_mutable_raw_indices();

  public:
  // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_hashes = 4;
  [[nodiscard]] bool has_rice_hashes()
      const;
  void clear_rice_hashes() ;
  [[nodiscard]] const ::mozilla::safebrowsing::RiceDeltaEncoding& rice_hashes() const;
  [[nodiscard]] ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE release_rice_hashes();
  ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NONNULL mutable_rice_hashes();
  void set_allocated_rice_hashes(::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_rice_hashes(::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE unsafe_arena_release_rice_hashes();

  private:
  const ::mozilla::safebrowsing::RiceDeltaEncoding& _internal_rice_hashes() const;
  ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NONNULL _internal_mutable_rice_hashes();

  public:
  // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_indices = 5;
  [[nodiscard]] bool has_rice_indices()
      const;
  void clear_rice_indices() ;
  [[nodiscard]] const ::mozilla::safebrowsing::RiceDeltaEncoding& rice_indices() const;
  [[nodiscard]] ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE release_rice_indices();
  ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NONNULL mutable_rice_indices();
  void set_allocated_rice_indices(::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_rice_indices(::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE unsafe_arena_release_rice_indices();

  private:
  const ::mozilla::safebrowsing::RiceDeltaEncoding& _internal_rice_indices() const;
  ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NONNULL _internal_mutable_rice_indices();

  public:
  // optional .mozilla.safebrowsing.CompressionType compression_type = 1;
  [[nodiscard]] bool has_compression_type()
      const;
  void clear_compression_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::CompressionType compression_type() const;
  void set_compression_type(::mozilla::safebrowsing::CompressionType value);

  private:
  ::mozilla::safebrowsing::CompressionType _internal_compression_type() const;
  void _internal_set_compression_type(::mozilla::safebrowsing::CompressionType value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatEntrySet)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          5, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatEntrySet& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::mozilla::safebrowsing::RawHashes* PROTOBUF_NULLABLE raw_hashes_;
    ::mozilla::safebrowsing::RawIndices* PROTOBUF_NULLABLE raw_indices_;
    ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE rice_hashes_;
    ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE rice_indices_;
    int compression_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatEntryMetadata final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatEntryMetadata) */ {
 public:
  inline ThreatEntryMetadata() : ThreatEntryMetadata(nullptr) {}
  ~ThreatEntryMetadata() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatEntryMetadata* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatEntryMetadata));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatEntryMetadata(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatEntryMetadata(const ThreatEntryMetadata& from) : ThreatEntryMetadata(nullptr, from) {}
  inline ThreatEntryMetadata(ThreatEntryMetadata&& from) noexcept : ThreatEntryMetadata(nullptr, ::std::move(from)) {}
  inline ThreatEntryMetadata& operator=(const ThreatEntryMetadata& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatEntryMetadata& operator=(ThreatEntryMetadata&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatEntryMetadata& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatEntryMetadata>(&ThreatEntryMetadata_globals_);
  }
  static constexpr int kIndexInFileMessages = 23;
  friend void swap(ThreatEntryMetadata& a, ThreatEntryMetadata& b) { a.Swap(&b); }
  inline void Swap(ThreatEntryMetadata* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatEntryMetadata* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatEntryMetadata* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatEntryMetadata>(arena);
  }
  void CopyFrom(const ThreatEntryMetadata& from);
  void MergeFrom(const ThreatEntryMetadata& from) { ThreatEntryMetadata::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatEntryMetadata* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatEntryMetadata"; }

  explicit ThreatEntryMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatEntryMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatEntryMetadata& from);
  ThreatEntryMetadata(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatEntryMetadata&& from) noexcept
      : ThreatEntryMetadata(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------
  using MetadataEntry = ThreatEntryMetadata_MetadataEntry;

  // accessors -------------------------------------------------------
  enum : int {
    kEntriesFieldNumber = 1,
  };
  // repeated .mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry entries = 1;
  [[nodiscard]] int entries_size()
      const;
  private:
  int _internal_entries_size() const;

  public:
  void clear_entries() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry& entries(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry* PROTOBUF_NONNULL mutable_entries(int index);
  ::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry* PROTOBUF_NONNULL add_entries();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>&
  entries() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>* PROTOBUF_NONNULL
  mutable_entries();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>& _internal_entries() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>* PROTOBUF_NONNULL _internal_mutable_entries();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatEntryMetadata)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatEntryMetadata& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry > entries_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListThreatListsResponse final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ListThreatListsResponse) */ {
 public:
  inline ListThreatListsResponse() : ListThreatListsResponse(nullptr) {}
  ~ListThreatListsResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListThreatListsResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListThreatListsResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListThreatListsResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListThreatListsResponse(const ListThreatListsResponse& from) : ListThreatListsResponse(nullptr, from) {}
  inline ListThreatListsResponse(ListThreatListsResponse&& from) noexcept : ListThreatListsResponse(nullptr, ::std::move(from)) {}
  inline ListThreatListsResponse& operator=(const ListThreatListsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListThreatListsResponse& operator=(ListThreatListsResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ListThreatListsResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListThreatListsResponse>(&ListThreatListsResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 25;
  friend void swap(ListThreatListsResponse& a, ListThreatListsResponse& b) { a.Swap(&b); }
  inline void Swap(ListThreatListsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListThreatListsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ListThreatListsResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ListThreatListsResponse>(arena);
  }
  void CopyFrom(const ListThreatListsResponse& from);
  void MergeFrom(const ListThreatListsResponse& from) { ListThreatListsResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListThreatListsResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ListThreatListsResponse"; }

  explicit ListThreatListsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListThreatListsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListThreatListsResponse& from);
  ListThreatListsResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListThreatListsResponse&& from) noexcept
      : ListThreatListsResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kThreatListsFieldNumber = 1,
  };
  // repeated .mozilla.safebrowsing.ThreatListDescriptor threat_lists = 1;
  [[nodiscard]] int threat_lists_size()
      const;
  private:
  int _internal_threat_lists_size() const;

  public:
  void clear_threat_lists() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatListDescriptor& threat_lists(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatListDescriptor* PROTOBUF_NONNULL mutable_threat_lists(int index);
  ::mozilla::safebrowsing::ThreatListDescriptor* PROTOBUF_NONNULL add_threat_lists();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatListDescriptor>&
  threat_lists() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatListDescriptor>* PROTOBUF_NONNULL
  mutable_threat_lists();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatListDescriptor>& _internal_threat_lists() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatListDescriptor>* PROTOBUF_NONNULL _internal_mutable_threat_lists();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ListThreatListsResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListThreatListsResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::ThreatListDescriptor > threat_lists_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FetchThreatListUpdatesRequest_ListUpdateRequest final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest) */ {
 public:
  inline FetchThreatListUpdatesRequest_ListUpdateRequest() : FetchThreatListUpdatesRequest_ListUpdateRequest(nullptr) {}
  ~FetchThreatListUpdatesRequest_ListUpdateRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FetchThreatListUpdatesRequest_ListUpdateRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FetchThreatListUpdatesRequest_ListUpdateRequest));
  }
#endif

  template <typename = void>
  explicit constexpr FetchThreatListUpdatesRequest_ListUpdateRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FetchThreatListUpdatesRequest_ListUpdateRequest(const FetchThreatListUpdatesRequest_ListUpdateRequest& from) : FetchThreatListUpdatesRequest_ListUpdateRequest(nullptr, from) {}
  inline FetchThreatListUpdatesRequest_ListUpdateRequest(FetchThreatListUpdatesRequest_ListUpdateRequest&& from) noexcept : FetchThreatListUpdatesRequest_ListUpdateRequest(nullptr, ::std::move(from)) {}
  inline FetchThreatListUpdatesRequest_ListUpdateRequest& operator=(const FetchThreatListUpdatesRequest_ListUpdateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FetchThreatListUpdatesRequest_ListUpdateRequest& operator=(FetchThreatListUpdatesRequest_ListUpdateRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const FetchThreatListUpdatesRequest_ListUpdateRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FetchThreatListUpdatesRequest_ListUpdateRequest>(&FetchThreatListUpdatesRequest_ListUpdateRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(FetchThreatListUpdatesRequest_ListUpdateRequest& a, FetchThreatListUpdatesRequest_ListUpdateRequest& b) { a.Swap(&b); }
  inline void Swap(FetchThreatListUpdatesRequest_ListUpdateRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FetchThreatListUpdatesRequest_ListUpdateRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FetchThreatListUpdatesRequest_ListUpdateRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<FetchThreatListUpdatesRequest_ListUpdateRequest>(arena);
  }
  void CopyFrom(const FetchThreatListUpdatesRequest_ListUpdateRequest& from);
  void MergeFrom(const FetchThreatListUpdatesRequest_ListUpdateRequest& from) { FetchThreatListUpdatesRequest_ListUpdateRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FetchThreatListUpdatesRequest_ListUpdateRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest"; }

  explicit FetchThreatListUpdatesRequest_ListUpdateRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FetchThreatListUpdatesRequest_ListUpdateRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FetchThreatListUpdatesRequest_ListUpdateRequest& from);
  FetchThreatListUpdatesRequest_ListUpdateRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FetchThreatListUpdatesRequest_ListUpdateRequest&& from) noexcept
      : FetchThreatListUpdatesRequest_ListUpdateRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------
  using Constraints = FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints;

  // accessors -------------------------------------------------------
  enum : int {
    kStateFieldNumber = 3,
    kConstraintsFieldNumber = 4,
    kThreatTypeFieldNumber = 1,
    kPlatformTypeFieldNumber = 2,
    kThreatEntryTypeFieldNumber = 5,
  };
  // optional bytes state = 3;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::std::string& state() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_state(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_state();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_state();
  void set_allocated_state(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_state() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_state(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // optional .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints constraints = 4;
  [[nodiscard]] bool has_constraints()
      const;
  void clear_constraints() ;
  [[nodiscard]] const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& constraints() const;
  [[nodiscard]] ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NULLABLE release_constraints();
  ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NONNULL mutable_constraints();
  void set_allocated_constraints(::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_constraints(::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NULLABLE unsafe_arena_release_constraints();

  private:
  const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& _internal_constraints() const;
  ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NONNULL _internal_mutable_constraints();

  public:
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  [[nodiscard]] bool has_threat_type()
      const;
  void clear_threat_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatType threat_type() const;
  void set_threat_type(::mozilla::safebrowsing::ThreatType value);

  private:
  ::mozilla::safebrowsing::ThreatType _internal_threat_type() const;
  void _internal_set_threat_type(::mozilla::safebrowsing::ThreatType value);

  public:
  // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
  [[nodiscard]] bool has_platform_type()
      const;
  void clear_platform_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::PlatformType platform_type() const;
  void set_platform_type(::mozilla::safebrowsing::PlatformType value);

  private:
  ::mozilla::safebrowsing::PlatformType _internal_platform_type() const;
  void _internal_set_platform_type(::mozilla::safebrowsing::PlatformType value);

  public:
  // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 5;
  [[nodiscard]] bool has_threat_entry_type()
      const;
  void clear_threat_entry_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntryType threat_entry_type() const;
  void set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value);

  private:
  ::mozilla::safebrowsing::ThreatEntryType _internal_threat_entry_type() const;
  void _internal_set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          4, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FetchThreatListUpdatesRequest_ListUpdateRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr state_;
    ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NULLABLE constraints_;
    int threat_type_;
    int platform_type_;
    int threat_entry_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ThreatMatch final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.ThreatMatch) */ {
 public:
  inline ThreatMatch() : ThreatMatch(nullptr) {}
  ~ThreatMatch() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ThreatMatch* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ThreatMatch));
  }
#endif

  template <typename = void>
  explicit constexpr ThreatMatch(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ThreatMatch(const ThreatMatch& from) : ThreatMatch(nullptr, from) {}
  inline ThreatMatch(ThreatMatch&& from) noexcept : ThreatMatch(nullptr, ::std::move(from)) {}
  inline ThreatMatch& operator=(const ThreatMatch& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThreatMatch& operator=(ThreatMatch&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const ThreatMatch& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ThreatMatch>(&ThreatMatch_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(ThreatMatch& a, ThreatMatch& b) { a.Swap(&b); }
  inline void Swap(ThreatMatch* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThreatMatch* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ThreatMatch* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ThreatMatch>(arena);
  }
  void CopyFrom(const ThreatMatch& from);
  void MergeFrom(const ThreatMatch& from) { ThreatMatch::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ThreatMatch* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.ThreatMatch"; }

  explicit ThreatMatch(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ThreatMatch(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatMatch& from);
  ThreatMatch(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ThreatMatch&& from) noexcept
      : ThreatMatch(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kThreatFieldNumber = 3,
    kThreatEntryMetadataFieldNumber = 4,
    kCacheDurationFieldNumber = 5,
    kThreatTypeFieldNumber = 1,
    kPlatformTypeFieldNumber = 2,
    kThreatEntryTypeFieldNumber = 6,
  };
  // optional .mozilla.safebrowsing.ThreatEntry threat = 3;
  [[nodiscard]] bool has_threat()
      const;
  void clear_threat() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatEntry& threat() const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE release_threat();
  ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL mutable_threat();
  void set_allocated_threat(::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_threat(::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE unsafe_arena_release_threat();

  private:
  const ::mozilla::safebrowsing::ThreatEntry& _internal_threat() const;
  ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL _internal_mutable_threat();

  public:
  // optional .mozilla.safebrowsing.ThreatEntryMetadata threat_entry_metadata = 4;
  [[nodiscard]] bool has_threat_entry_metadata()
      const;
  void clear_threat_entry_metadata() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatEntryMetadata& threat_entry_metadata() const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NULLABLE release_threat_entry_metadata();
  ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NONNULL mutable_threat_entry_metadata();
  void set_allocated_threat_entry_metadata(::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_threat_entry_metadata(::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NULLABLE unsafe_arena_release_threat_entry_metadata();

  private:
  const ::mozilla::safebrowsing::ThreatEntryMetadata& _internal_threat_entry_metadata() const;
  ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NONNULL _internal_mutable_threat_entry_metadata();

  public:
  // optional .mozilla.safebrowsing.Duration cache_duration = 5;
  [[nodiscard]] bool has_cache_duration()
      const;
  void clear_cache_duration() ;
  [[nodiscard]] const ::mozilla::safebrowsing::Duration& cache_duration() const;
  [[nodiscard]] ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE release_cache_duration();
  ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL mutable_cache_duration();
  void set_allocated_cache_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_cache_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE unsafe_arena_release_cache_duration();

  private:
  const ::mozilla::safebrowsing::Duration& _internal_cache_duration() const;
  ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL _internal_mutable_cache_duration();

  public:
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  [[nodiscard]] bool has_threat_type()
      const;
  void clear_threat_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatType threat_type() const;
  void set_threat_type(::mozilla::safebrowsing::ThreatType value);

  private:
  ::mozilla::safebrowsing::ThreatType _internal_threat_type() const;
  void _internal_set_threat_type(::mozilla::safebrowsing::ThreatType value);

  public:
  // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
  [[nodiscard]] bool has_platform_type()
      const;
  void clear_platform_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::PlatformType platform_type() const;
  void set_platform_type(::mozilla::safebrowsing::PlatformType value);

  private:
  ::mozilla::safebrowsing::PlatformType _internal_platform_type() const;
  void _internal_set_platform_type(::mozilla::safebrowsing::PlatformType value);

  public:
  // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 6;
  [[nodiscard]] bool has_threat_entry_type()
      const;
  void clear_threat_entry_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntryType threat_entry_type() const;
  void set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value);

  private:
  ::mozilla::safebrowsing::ThreatEntryType _internal_threat_entry_type() const;
  void _internal_set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.ThreatMatch)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 6,
                          6, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ThreatMatch& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE threat_;
    ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NULLABLE threat_entry_metadata_;
    ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE cache_duration_;
    int threat_type_;
    int platform_type_;
    int threat_entry_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FindThreatMatchesRequest final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.FindThreatMatchesRequest) */ {
 public:
  inline FindThreatMatchesRequest() : FindThreatMatchesRequest(nullptr) {}
  ~FindThreatMatchesRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FindThreatMatchesRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FindThreatMatchesRequest));
  }
#endif

  template <typename = void>
  explicit constexpr FindThreatMatchesRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FindThreatMatchesRequest(const FindThreatMatchesRequest& from) : FindThreatMatchesRequest(nullptr, from) {}
  inline FindThreatMatchesRequest(FindThreatMatchesRequest&& from) noexcept : FindThreatMatchesRequest(nullptr, ::std::move(from)) {}
  inline FindThreatMatchesRequest& operator=(const FindThreatMatchesRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FindThreatMatchesRequest& operator=(FindThreatMatchesRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const FindThreatMatchesRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FindThreatMatchesRequest>(&FindThreatMatchesRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(FindThreatMatchesRequest& a, FindThreatMatchesRequest& b) { a.Swap(&b); }
  inline void Swap(FindThreatMatchesRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FindThreatMatchesRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FindThreatMatchesRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<FindThreatMatchesRequest>(arena);
  }
  void CopyFrom(const FindThreatMatchesRequest& from);
  void MergeFrom(const FindThreatMatchesRequest& from) { FindThreatMatchesRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FindThreatMatchesRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.FindThreatMatchesRequest"; }

  explicit FindThreatMatchesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FindThreatMatchesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FindThreatMatchesRequest& from);
  FindThreatMatchesRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FindThreatMatchesRequest&& from) noexcept
      : FindThreatMatchesRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kClientFieldNumber = 1,
    kThreatInfoFieldNumber = 2,
  };
  // optional .mozilla.safebrowsing.ClientInfo client = 1;
  [[nodiscard]] bool has_client()
      const;
  void clear_client() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ClientInfo& client() const;
  [[nodiscard]] ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE release_client();
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL mutable_client();
  void set_allocated_client(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_client(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE unsafe_arena_release_client();

  private:
  const ::mozilla::safebrowsing::ClientInfo& _internal_client() const;
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL _internal_mutable_client();

  public:
  // optional .mozilla.safebrowsing.ThreatInfo threat_info = 2;
  [[nodiscard]] bool has_threat_info()
      const;
  void clear_threat_info() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatInfo& threat_info() const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE release_threat_info();
  ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NONNULL mutable_threat_info();
  void set_allocated_threat_info(::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_threat_info(::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE unsafe_arena_release_threat_info();

  private:
  const ::mozilla::safebrowsing::ThreatInfo& _internal_threat_info() const;
  ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NONNULL _internal_mutable_threat_info();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.FindThreatMatchesRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FindThreatMatchesRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE client_;
    ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE threat_info_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FindFullHashesRequest final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.FindFullHashesRequest) */ {
 public:
  inline FindFullHashesRequest() : FindFullHashesRequest(nullptr) {}
  ~FindFullHashesRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FindFullHashesRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FindFullHashesRequest));
  }
#endif

  template <typename = void>
  explicit constexpr FindFullHashesRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FindFullHashesRequest(const FindFullHashesRequest& from) : FindFullHashesRequest(nullptr, from) {}
  inline FindFullHashesRequest(FindFullHashesRequest&& from) noexcept : FindFullHashesRequest(nullptr, ::std::move(from)) {}
  inline FindFullHashesRequest& operator=(const FindFullHashesRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FindFullHashesRequest& operator=(FindFullHashesRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const FindFullHashesRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FindFullHashesRequest>(&FindFullHashesRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 9;
  friend void swap(FindFullHashesRequest& a, FindFullHashesRequest& b) { a.Swap(&b); }
  inline void Swap(FindFullHashesRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FindFullHashesRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FindFullHashesRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<FindFullHashesRequest>(arena);
  }
  void CopyFrom(const FindFullHashesRequest& from);
  void MergeFrom(const FindFullHashesRequest& from) { FindFullHashesRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FindFullHashesRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.FindFullHashesRequest"; }

  explicit FindFullHashesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FindFullHashesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FindFullHashesRequest& from);
  FindFullHashesRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FindFullHashesRequest&& from) noexcept
      : FindFullHashesRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kClientStatesFieldNumber = 2,
    kClientFieldNumber = 1,
    kThreatInfoFieldNumber = 3,
  };
  // repeated bytes client_states = 2;
  [[nodiscard]] int client_states_size()
      const;
  private:
  int _internal_client_states_size() const;

  public:
  void clear_client_states() ;
  [[nodiscard]] const ::std::string& client_states(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_client_states(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_client_states(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_client_states();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_client_states(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      client_states() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_client_states();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_client_states() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_client_states();

  public:
  // optional .mozilla.safebrowsing.ClientInfo client = 1;
  [[nodiscard]] bool has_client()
      const;
  void clear_client() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ClientInfo& client() const;
  [[nodiscard]] ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE release_client();
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL mutable_client();
  void set_allocated_client(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_client(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE unsafe_arena_release_client();

  private:
  const ::mozilla::safebrowsing::ClientInfo& _internal_client() const;
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL _internal_mutable_client();

  public:
  // optional .mozilla.safebrowsing.ThreatInfo threat_info = 3;
  [[nodiscard]] bool has_threat_info()
      const;
  void clear_threat_info() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatInfo& threat_info() const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE release_threat_info();
  ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NONNULL mutable_threat_info();
  void set_allocated_threat_info(::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_threat_info(::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE unsafe_arena_release_threat_info();

  private:
  const ::mozilla::safebrowsing::ThreatInfo& _internal_threat_info() const;
  ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NONNULL _internal_mutable_threat_info();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.FindFullHashesRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FindFullHashesRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> client_states_;
    ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE client_;
    ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE threat_info_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FetchThreatListUpdatesResponse_ListUpdateResponse final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse) */ {
 public:
  inline FetchThreatListUpdatesResponse_ListUpdateResponse() : FetchThreatListUpdatesResponse_ListUpdateResponse(nullptr) {}
  ~FetchThreatListUpdatesResponse_ListUpdateResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FetchThreatListUpdatesResponse_ListUpdateResponse));
  }
#endif

  template <typename = void>
  explicit constexpr FetchThreatListUpdatesResponse_ListUpdateResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FetchThreatListUpdatesResponse_ListUpdateResponse(const FetchThreatListUpdatesResponse_ListUpdateResponse& from) : FetchThreatListUpdatesResponse_ListUpdateResponse(nullptr, from) {}
  inline FetchThreatListUpdatesResponse_ListUpdateResponse(FetchThreatListUpdatesResponse_ListUpdateResponse&& from) noexcept : FetchThreatListUpdatesResponse_ListUpdateResponse(nullptr, ::std::move(from)) {}
  inline FetchThreatListUpdatesResponse_ListUpdateResponse& operator=(const FetchThreatListUpdatesResponse_ListUpdateResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FetchThreatListUpdatesResponse_ListUpdateResponse& operator=(FetchThreatListUpdatesResponse_ListUpdateResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const FetchThreatListUpdatesResponse_ListUpdateResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FetchThreatListUpdatesResponse_ListUpdateResponse>(&FetchThreatListUpdatesResponse_ListUpdateResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 7;
  friend void swap(FetchThreatListUpdatesResponse_ListUpdateResponse& a, FetchThreatListUpdatesResponse_ListUpdateResponse& b) { a.Swap(&b); }
  inline void Swap(FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<FetchThreatListUpdatesResponse_ListUpdateResponse>(arena);
  }
  void CopyFrom(const FetchThreatListUpdatesResponse_ListUpdateResponse& from);
  void MergeFrom(const FetchThreatListUpdatesResponse_ListUpdateResponse& from) { FetchThreatListUpdatesResponse_ListUpdateResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse"; }

  explicit FetchThreatListUpdatesResponse_ListUpdateResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FetchThreatListUpdatesResponse_ListUpdateResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FetchThreatListUpdatesResponse_ListUpdateResponse& from);
  FetchThreatListUpdatesResponse_ListUpdateResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FetchThreatListUpdatesResponse_ListUpdateResponse&& from) noexcept
      : FetchThreatListUpdatesResponse_ListUpdateResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------
  using ResponseType = FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType;
  static constexpr ResponseType RESPONSE_TYPE_UNSPECIFIED = FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_RESPONSE_TYPE_UNSPECIFIED;
  static constexpr ResponseType PARTIAL_UPDATE = FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_PARTIAL_UPDATE;
  static constexpr ResponseType FULL_UPDATE = FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_FULL_UPDATE;
  [[nodiscard]] static inline bool ResponseType_IsValid(int value) {
    return FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_IsValid(value);
  }
  static constexpr ResponseType ResponseType_MIN = FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_ResponseType_MIN;
  static constexpr ResponseType ResponseType_MAX = FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_ResponseType_MAX;
  static constexpr int ResponseType_ARRAYSIZE = FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_ResponseType_ARRAYSIZE;
  template <typename T>
  [[nodiscard]] static inline const ::std::string& ResponseType_Name(T value) {
    return FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Name(value);
  }
  [[nodiscard]] static inline bool ResponseType_Parse(
      ::absl::string_view name, ResponseType* PROTOBUF_NONNULL value) {
    return FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kAdditionsFieldNumber = 5,
    kRemovalsFieldNumber = 6,
    kNewClientStateFieldNumber = 7,
    kChecksumFieldNumber = 8,
    kThreatTypeFieldNumber = 1,
    kThreatEntryTypeFieldNumber = 2,
    kPlatformTypeFieldNumber = 3,
    kResponseTypeFieldNumber = 4,
  };
  // repeated .mozilla.safebrowsing.ThreatEntrySet additions = 5;
  [[nodiscard]] int additions_size()
      const;
  private:
  int _internal_additions_size() const;

  public:
  void clear_additions() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatEntrySet& additions(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntrySet* PROTOBUF_NONNULL mutable_additions(int index);
  ::mozilla::safebrowsing::ThreatEntrySet* PROTOBUF_NONNULL add_additions();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>&
  additions() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>* PROTOBUF_NONNULL
  mutable_additions();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>& _internal_additions() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>* PROTOBUF_NONNULL _internal_mutable_additions();

  public:
  // repeated .mozilla.safebrowsing.ThreatEntrySet removals = 6;
  [[nodiscard]] int removals_size()
      const;
  private:
  int _internal_removals_size() const;

  public:
  void clear_removals() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatEntrySet& removals(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntrySet* PROTOBUF_NONNULL mutable_removals(int index);
  ::mozilla::safebrowsing::ThreatEntrySet* PROTOBUF_NONNULL add_removals();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>&
  removals() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>* PROTOBUF_NONNULL
  mutable_removals();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>& _internal_removals() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>* PROTOBUF_NONNULL _internal_mutable_removals();

  public:
  // optional bytes new_client_state = 7;
  [[nodiscard]] bool has_new_client_state()
      const;
  void clear_new_client_state() ;
  [[nodiscard]] const ::std::string& new_client_state() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_new_client_state(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_new_client_state();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_new_client_state();
  void set_allocated_new_client_state(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_new_client_state() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_new_client_state(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_new_client_state();

  public:
  // optional .mozilla.safebrowsing.Checksum checksum = 8;
  [[nodiscard]] bool has_checksum()
      const;
  void clear_checksum() ;
  [[nodiscard]] const ::mozilla::safebrowsing::Checksum& checksum() const;
  [[nodiscard]] ::mozilla::safebrowsing::Checksum* PROTOBUF_NULLABLE release_checksum();
  ::mozilla::safebrowsing::Checksum* PROTOBUF_NONNULL mutable_checksum();
  void set_allocated_checksum(::mozilla::safebrowsing::Checksum* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_checksum(::mozilla::safebrowsing::Checksum* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::Checksum* PROTOBUF_NULLABLE unsafe_arena_release_checksum();

  private:
  const ::mozilla::safebrowsing::Checksum& _internal_checksum() const;
  ::mozilla::safebrowsing::Checksum* PROTOBUF_NONNULL _internal_mutable_checksum();

  public:
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  [[nodiscard]] bool has_threat_type()
      const;
  void clear_threat_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatType threat_type() const;
  void set_threat_type(::mozilla::safebrowsing::ThreatType value);

  private:
  ::mozilla::safebrowsing::ThreatType _internal_threat_type() const;
  void _internal_set_threat_type(::mozilla::safebrowsing::ThreatType value);

  public:
  // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 2;
  [[nodiscard]] bool has_threat_entry_type()
      const;
  void clear_threat_entry_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatEntryType threat_entry_type() const;
  void set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value);

  private:
  ::mozilla::safebrowsing::ThreatEntryType _internal_threat_entry_type() const;
  void _internal_set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value);

  public:
  // optional .mozilla.safebrowsing.PlatformType platform_type = 3;
  [[nodiscard]] bool has_platform_type()
      const;
  void clear_platform_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::PlatformType platform_type() const;
  void set_platform_type(::mozilla::safebrowsing::PlatformType value);

  private:
  ::mozilla::safebrowsing::PlatformType _internal_platform_type() const;
  void _internal_set_platform_type(::mozilla::safebrowsing::PlatformType value);

  public:
  // optional .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.ResponseType response_type = 4;
  [[nodiscard]] bool has_response_type()
      const;
  void clear_response_type() ;
  [[nodiscard]] ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType response_type() const;
  void set_response_type(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType value);

  private:
  ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType _internal_response_type() const;
  void _internal_set_response_type(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType value);

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 8,
                          7, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FetchThreatListUpdatesResponse_ListUpdateResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::ThreatEntrySet > additions_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::ThreatEntrySet > removals_;
    ::google::protobuf::internal::ArenaStringPtr new_client_state_;
    ::mozilla::safebrowsing::Checksum* PROTOBUF_NULLABLE checksum_;
    int threat_type_;
    int threat_entry_type_;
    int platform_type_;
    int response_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FetchThreatListUpdatesRequest final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.FetchThreatListUpdatesRequest) */ {
 public:
  inline FetchThreatListUpdatesRequest() : FetchThreatListUpdatesRequest(nullptr) {}
  ~FetchThreatListUpdatesRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FetchThreatListUpdatesRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FetchThreatListUpdatesRequest));
  }
#endif

  template <typename = void>
  explicit constexpr FetchThreatListUpdatesRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FetchThreatListUpdatesRequest(const FetchThreatListUpdatesRequest& from) : FetchThreatListUpdatesRequest(nullptr, from) {}
  inline FetchThreatListUpdatesRequest(FetchThreatListUpdatesRequest&& from) noexcept : FetchThreatListUpdatesRequest(nullptr, ::std::move(from)) {}
  inline FetchThreatListUpdatesRequest& operator=(const FetchThreatListUpdatesRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FetchThreatListUpdatesRequest& operator=(FetchThreatListUpdatesRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const FetchThreatListUpdatesRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FetchThreatListUpdatesRequest>(&FetchThreatListUpdatesRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(FetchThreatListUpdatesRequest& a, FetchThreatListUpdatesRequest& b) { a.Swap(&b); }
  inline void Swap(FetchThreatListUpdatesRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FetchThreatListUpdatesRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FetchThreatListUpdatesRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<FetchThreatListUpdatesRequest>(arena);
  }
  void CopyFrom(const FetchThreatListUpdatesRequest& from);
  void MergeFrom(const FetchThreatListUpdatesRequest& from) { FetchThreatListUpdatesRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FetchThreatListUpdatesRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.FetchThreatListUpdatesRequest"; }

  explicit FetchThreatListUpdatesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FetchThreatListUpdatesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FetchThreatListUpdatesRequest& from);
  FetchThreatListUpdatesRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FetchThreatListUpdatesRequest&& from) noexcept
      : FetchThreatListUpdatesRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------
  using ListUpdateRequest = FetchThreatListUpdatesRequest_ListUpdateRequest;

  // accessors -------------------------------------------------------
  enum : int {
    kListUpdateRequestsFieldNumber = 3,
    kClientFieldNumber = 1,
    kChromeClientInfoFieldNumber = 4,
  };
  // repeated .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest list_update_requests = 3;
  [[nodiscard]] int list_update_requests_size()
      const;
  private:
  int _internal_list_update_requests_size() const;

  public:
  void clear_list_update_requests() ;
  [[nodiscard]] const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest& list_update_requests(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest* PROTOBUF_NONNULL mutable_list_update_requests(int index);
  ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest* PROTOBUF_NONNULL add_list_update_requests();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>&
  list_update_requests() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>* PROTOBUF_NONNULL
  mutable_list_update_requests();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>& _internal_list_update_requests() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>* PROTOBUF_NONNULL _internal_mutable_list_update_requests();

  public:
  // optional .mozilla.safebrowsing.ClientInfo client = 1;
  [[nodiscard]] bool has_client()
      const;
  void clear_client() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ClientInfo& client() const;
  [[nodiscard]] ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE release_client();
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL mutable_client();
  void set_allocated_client(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_client(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE unsafe_arena_release_client();

  private:
  const ::mozilla::safebrowsing::ClientInfo& _internal_client() const;
  ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL _internal_mutable_client();

  public:
  // optional .mozilla.safebrowsing.ChromeClientInfo chrome_client_info = 4;
  [[nodiscard]] bool has_chrome_client_info()
      const;
  void clear_chrome_client_info() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ChromeClientInfo& chrome_client_info() const;
  [[nodiscard]] ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NULLABLE release_chrome_client_info();
  ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NONNULL mutable_chrome_client_info();
  void set_allocated_chrome_client_info(::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_chrome_client_info(::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NULLABLE unsafe_arena_release_chrome_client_info();

  private:
  const ::mozilla::safebrowsing::ChromeClientInfo& _internal_chrome_client_info() const;
  ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NONNULL _internal_mutable_chrome_client_info();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.FetchThreatListUpdatesRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FetchThreatListUpdatesRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest > list_update_requests_;
    ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE client_;
    ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NULLABLE chrome_client_info_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FindThreatMatchesResponse final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.FindThreatMatchesResponse) */ {
 public:
  inline FindThreatMatchesResponse() : FindThreatMatchesResponse(nullptr) {}
  ~FindThreatMatchesResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FindThreatMatchesResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FindThreatMatchesResponse));
  }
#endif

  template <typename = void>
  explicit constexpr FindThreatMatchesResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FindThreatMatchesResponse(const FindThreatMatchesResponse& from) : FindThreatMatchesResponse(nullptr, from) {}
  inline FindThreatMatchesResponse(FindThreatMatchesResponse&& from) noexcept : FindThreatMatchesResponse(nullptr, ::std::move(from)) {}
  inline FindThreatMatchesResponse& operator=(const FindThreatMatchesResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FindThreatMatchesResponse& operator=(FindThreatMatchesResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const FindThreatMatchesResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FindThreatMatchesResponse>(&FindThreatMatchesResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(FindThreatMatchesResponse& a, FindThreatMatchesResponse& b) { a.Swap(&b); }
  inline void Swap(FindThreatMatchesResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FindThreatMatchesResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FindThreatMatchesResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<FindThreatMatchesResponse>(arena);
  }
  void CopyFrom(const FindThreatMatchesResponse& from);
  void MergeFrom(const FindThreatMatchesResponse& from) { FindThreatMatchesResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FindThreatMatchesResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.FindThreatMatchesResponse"; }

  explicit FindThreatMatchesResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FindThreatMatchesResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FindThreatMatchesResponse& from);
  FindThreatMatchesResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FindThreatMatchesResponse&& from) noexcept
      : FindThreatMatchesResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMatchesFieldNumber = 1,
  };
  // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
  [[nodiscard]] int matches_size()
      const;
  private:
  int _internal_matches_size() const;

  public:
  void clear_matches() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatMatch& matches(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatMatch* PROTOBUF_NONNULL mutable_matches(int index);
  ::mozilla::safebrowsing::ThreatMatch* PROTOBUF_NONNULL add_matches();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>&
  matches() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>* PROTOBUF_NONNULL
  mutable_matches();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>& _internal_matches() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>* PROTOBUF_NONNULL _internal_mutable_matches();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.FindThreatMatchesResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FindThreatMatchesResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::ThreatMatch > matches_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FindFullHashesResponse final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.FindFullHashesResponse) */ {
 public:
  inline FindFullHashesResponse() : FindFullHashesResponse(nullptr) {}
  ~FindFullHashesResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FindFullHashesResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FindFullHashesResponse));
  }
#endif

  template <typename = void>
  explicit constexpr FindFullHashesResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FindFullHashesResponse(const FindFullHashesResponse& from) : FindFullHashesResponse(nullptr, from) {}
  inline FindFullHashesResponse(FindFullHashesResponse&& from) noexcept : FindFullHashesResponse(nullptr, ::std::move(from)) {}
  inline FindFullHashesResponse& operator=(const FindFullHashesResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FindFullHashesResponse& operator=(FindFullHashesResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const FindFullHashesResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FindFullHashesResponse>(&FindFullHashesResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 10;
  friend void swap(FindFullHashesResponse& a, FindFullHashesResponse& b) { a.Swap(&b); }
  inline void Swap(FindFullHashesResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FindFullHashesResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FindFullHashesResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<FindFullHashesResponse>(arena);
  }
  void CopyFrom(const FindFullHashesResponse& from);
  void MergeFrom(const FindFullHashesResponse& from) { FindFullHashesResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FindFullHashesResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.FindFullHashesResponse"; }

  explicit FindFullHashesResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FindFullHashesResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FindFullHashesResponse& from);
  FindFullHashesResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FindFullHashesResponse&& from) noexcept
      : FindFullHashesResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMatchesFieldNumber = 1,
    kMinimumWaitDurationFieldNumber = 2,
    kNegativeCacheDurationFieldNumber = 3,
  };
  // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
  [[nodiscard]] int matches_size()
      const;
  private:
  int _internal_matches_size() const;

  public:
  void clear_matches() ;
  [[nodiscard]] const ::mozilla::safebrowsing::ThreatMatch& matches(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::ThreatMatch* PROTOBUF_NONNULL mutable_matches(int index);
  ::mozilla::safebrowsing::ThreatMatch* PROTOBUF_NONNULL add_matches();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>&
  matches() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>* PROTOBUF_NONNULL
  mutable_matches();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>& _internal_matches() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>* PROTOBUF_NONNULL _internal_mutable_matches();

  public:
  // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
  [[nodiscard]] bool has_minimum_wait_duration()
      const;
  void clear_minimum_wait_duration() ;
  [[nodiscard]] const ::mozilla::safebrowsing::Duration& minimum_wait_duration() const;
  [[nodiscard]] ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE release_minimum_wait_duration();
  ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL mutable_minimum_wait_duration();
  void set_allocated_minimum_wait_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_minimum_wait_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE unsafe_arena_release_minimum_wait_duration();

  private:
  const ::mozilla::safebrowsing::Duration& _internal_minimum_wait_duration() const;
  ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL _internal_mutable_minimum_wait_duration();

  public:
  // optional .mozilla.safebrowsing.Duration negative_cache_duration = 3;
  [[nodiscard]] bool has_negative_cache_duration()
      const;
  void clear_negative_cache_duration() ;
  [[nodiscard]] const ::mozilla::safebrowsing::Duration& negative_cache_duration() const;
  [[nodiscard]] ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE release_negative_cache_duration();
  ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL mutable_negative_cache_duration();
  void set_allocated_negative_cache_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_negative_cache_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE unsafe_arena_release_negative_cache_duration();

  private:
  const ::mozilla::safebrowsing::Duration& _internal_negative_cache_duration() const;
  ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL _internal_mutable_negative_cache_duration();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.FindFullHashesResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FindFullHashesResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::ThreatMatch > matches_;
    ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE minimum_wait_duration_;
    ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE negative_cache_duration_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FetchThreatListUpdatesResponse final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:mozilla.safebrowsing.FetchThreatListUpdatesResponse) */ {
 public:
  inline FetchThreatListUpdatesResponse() : FetchThreatListUpdatesResponse(nullptr) {}
  ~FetchThreatListUpdatesResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FetchThreatListUpdatesResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FetchThreatListUpdatesResponse));
  }
#endif

  template <typename = void>
  explicit constexpr FetchThreatListUpdatesResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FetchThreatListUpdatesResponse(const FetchThreatListUpdatesResponse& from) : FetchThreatListUpdatesResponse(nullptr, from) {}
  inline FetchThreatListUpdatesResponse(FetchThreatListUpdatesResponse&& from) noexcept : FetchThreatListUpdatesResponse(nullptr, ::std::move(from)) {}
  inline FetchThreatListUpdatesResponse& operator=(const FetchThreatListUpdatesResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FetchThreatListUpdatesResponse& operator=(FetchThreatListUpdatesResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const FetchThreatListUpdatesResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FetchThreatListUpdatesResponse>(&FetchThreatListUpdatesResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 8;
  friend void swap(FetchThreatListUpdatesResponse& a, FetchThreatListUpdatesResponse& b) { a.Swap(&b); }
  inline void Swap(FetchThreatListUpdatesResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FetchThreatListUpdatesResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FetchThreatListUpdatesResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<FetchThreatListUpdatesResponse>(arena);
  }
  void CopyFrom(const FetchThreatListUpdatesResponse& from);
  void MergeFrom(const FetchThreatListUpdatesResponse& from) { FetchThreatListUpdatesResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FetchThreatListUpdatesResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mozilla.safebrowsing.FetchThreatListUpdatesResponse"; }

  explicit FetchThreatListUpdatesResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FetchThreatListUpdatesResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FetchThreatListUpdatesResponse& from);
  FetchThreatListUpdatesResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FetchThreatListUpdatesResponse&& from) noexcept
      : FetchThreatListUpdatesResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------
  using ListUpdateResponse = FetchThreatListUpdatesResponse_ListUpdateResponse;

  // accessors -------------------------------------------------------
  enum : int {
    kListUpdateResponsesFieldNumber = 1,
    kMinimumWaitDurationFieldNumber = 2,
  };
  // repeated .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse list_update_responses = 1;
  [[nodiscard]] int list_update_responses_size()
      const;
  private:
  int _internal_list_update_responses_size() const;

  public:
  void clear_list_update_responses() ;
  [[nodiscard]] const ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse& list_update_responses(int index) const;
  [[nodiscard]] ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_NONNULL mutable_list_update_responses(int index);
  ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_NONNULL add_list_update_responses();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>&
  list_update_responses() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>* PROTOBUF_NONNULL
  mutable_list_update_responses();

  private:
  const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>& _internal_list_update_responses() const;
  ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>* PROTOBUF_NONNULL _internal_mutable_list_update_responses();

  public:
  // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
  [[nodiscard]] bool has_minimum_wait_duration()
      const;
  void clear_minimum_wait_duration() ;
  [[nodiscard]] const ::mozilla::safebrowsing::Duration& minimum_wait_duration() const;
  [[nodiscard]] ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE release_minimum_wait_duration();
  ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL mutable_minimum_wait_duration();
  void set_allocated_minimum_wait_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_minimum_wait_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value);
  ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE unsafe_arena_release_minimum_wait_duration();

  private:
  const ::mozilla::safebrowsing::Duration& _internal_minimum_wait_duration() const;
  ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL _internal_mutable_minimum_wait_duration();

  public:
  // @@protoc_insertion_point(class_scope:mozilla.safebrowsing.FetchThreatListUpdatesResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FetchThreatListUpdatesResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse > list_update_responses_;
    ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE minimum_wait_duration_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_safebrowsing_2eproto;
};

// ===================================================================




// ===================================================================


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// -------------------------------------------------------------------

// ThreatInfo

// repeated .mozilla.safebrowsing.ThreatType threat_types = 1;
inline int ThreatInfo::_internal_threat_types_size() const {
  return _internal_threat_types().size();
}
inline int ThreatInfo::threat_types_size() const {
  return _internal_threat_types_size();
}
inline void ThreatInfo::clear_threat_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_types_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::mozilla::safebrowsing::ThreatType ThreatInfo::threat_types(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatInfo.threat_types)
  return static_cast<::mozilla::safebrowsing::ThreatType>(_internal_threat_types().Get(index));
}
inline void ThreatInfo::set_threat_types(int index, ::mozilla::safebrowsing::ThreatType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatType_internal_data_));
                                          _internal_mutable_threat_types()->Set(index, value);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatInfo.threat_types)
}
inline void ThreatInfo::add_threat_types(::mozilla::safebrowsing::ThreatType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatType_internal_data_));
                                          ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_threat_types()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.ThreatInfo.threat_types)
}
inline const ::google::protobuf::RepeatedField<int>& ThreatInfo::threat_types() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.ThreatInfo.threat_types)
  return _internal_threat_types();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL ThreatInfo::mutable_threat_types()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.ThreatInfo.threat_types)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_threat_types();
}
inline const ::google::protobuf::RepeatedField<int>& ThreatInfo::_internal_threat_types()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.threat_types_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
ThreatInfo::_internal_mutable_threat_types() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.threat_types_;
}

// repeated .mozilla.safebrowsing.PlatformType platform_types = 2;
inline int ThreatInfo::_internal_platform_types_size() const {
  return _internal_platform_types().size();
}
inline int ThreatInfo::platform_types_size() const {
  return _internal_platform_types_size();
}
inline void ThreatInfo::clear_platform_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.platform_types_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::mozilla::safebrowsing::PlatformType ThreatInfo::platform_types(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatInfo.platform_types)
  return static_cast<::mozilla::safebrowsing::PlatformType>(_internal_platform_types().Get(index));
}
inline void ThreatInfo::set_platform_types(int index, ::mozilla::safebrowsing::PlatformType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::PlatformType_internal_data_));
                                          _internal_mutable_platform_types()->Set(index, value);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatInfo.platform_types)
}
inline void ThreatInfo::add_platform_types(::mozilla::safebrowsing::PlatformType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::PlatformType_internal_data_));
                                          ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_platform_types()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.ThreatInfo.platform_types)
}
inline const ::google::protobuf::RepeatedField<int>& ThreatInfo::platform_types() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.ThreatInfo.platform_types)
  return _internal_platform_types();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL ThreatInfo::mutable_platform_types()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.ThreatInfo.platform_types)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_platform_types();
}
inline const ::google::protobuf::RepeatedField<int>& ThreatInfo::_internal_platform_types()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.platform_types_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
ThreatInfo::_internal_mutable_platform_types() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.platform_types_;
}

// repeated .mozilla.safebrowsing.ThreatEntryType threat_entry_types = 4;
inline int ThreatInfo::_internal_threat_entry_types_size() const {
  return _internal_threat_entry_types().size();
}
inline int ThreatInfo::threat_entry_types_size() const {
  return _internal_threat_entry_types_size();
}
inline void ThreatInfo::clear_threat_entry_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_entry_types_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::mozilla::safebrowsing::ThreatEntryType ThreatInfo::threat_entry_types(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatInfo.threat_entry_types)
  return static_cast<::mozilla::safebrowsing::ThreatEntryType>(_internal_threat_entry_types().Get(index));
}
inline void ThreatInfo::set_threat_entry_types(int index, ::mozilla::safebrowsing::ThreatEntryType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatEntryType_internal_data_));
                                          _internal_mutable_threat_entry_types()->Set(index, value);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatInfo.threat_entry_types)
}
inline void ThreatInfo::add_threat_entry_types(::mozilla::safebrowsing::ThreatEntryType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatEntryType_internal_data_));
                                          ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_threat_entry_types()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.ThreatInfo.threat_entry_types)
}
inline const ::google::protobuf::RepeatedField<int>& ThreatInfo::threat_entry_types() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.ThreatInfo.threat_entry_types)
  return _internal_threat_entry_types();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL ThreatInfo::mutable_threat_entry_types()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.ThreatInfo.threat_entry_types)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_threat_entry_types();
}
inline const ::google::protobuf::RepeatedField<int>& ThreatInfo::_internal_threat_entry_types()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.threat_entry_types_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
ThreatInfo::_internal_mutable_threat_entry_types() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.threat_entry_types_;
}

// repeated .mozilla.safebrowsing.ThreatEntry threat_entries = 3;
inline int ThreatInfo::_internal_threat_entries_size() const {
  return _internal_threat_entries().size();
}
inline int ThreatInfo::threat_entries_size() const {
  return _internal_threat_entries_size();
}
inline void ThreatInfo::clear_threat_entries() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_entries_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::mozilla::safebrowsing::ThreatEntry& ThreatInfo::threat_entries(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatInfo.threat_entries)
  return _internal_threat_entries().Get(index);
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL ThreatInfo::mutable_threat_entries(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatInfo.threat_entries)
  return _internal_mutable_threat_entries()->Mutable(index);
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL ThreatInfo::add_threat_entries()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::ThreatEntry* _add =
      _internal_mutable_threat_entries()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.ThreatInfo.threat_entries)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntry>& ThreatInfo::threat_entries() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.ThreatInfo.threat_entries)
  return _internal_threat_entries();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntry>* PROTOBUF_NONNULL
ThreatInfo::mutable_threat_entries() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.ThreatInfo.threat_entries)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_threat_entries();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntry>&
ThreatInfo::_internal_threat_entries() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.threat_entries_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntry>* PROTOBUF_NONNULL
ThreatInfo::_internal_mutable_threat_entries() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.threat_entries_;
}

// -------------------------------------------------------------------

// ThreatMatch

// optional .mozilla.safebrowsing.ThreatType threat_type = 1;
inline bool ThreatMatch::has_threat_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void ThreatMatch::clear_threat_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::mozilla::safebrowsing::ThreatType ThreatMatch::threat_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatMatch.threat_type)
  return _internal_threat_type();
}
inline void ThreatMatch::set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  _internal_set_threat_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatMatch.threat_type)
}
inline ::mozilla::safebrowsing::ThreatType ThreatMatch::_internal_threat_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatType>(_impl_.threat_type_);
}
inline void ThreatMatch::_internal_set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatType_internal_data_));
                                          _impl_.threat_type_ = value;
}

// optional .mozilla.safebrowsing.PlatformType platform_type = 2;
inline bool ThreatMatch::has_platform_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void ThreatMatch::clear_platform_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.platform_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::mozilla::safebrowsing::PlatformType ThreatMatch::platform_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatMatch.platform_type)
  return _internal_platform_type();
}
inline void ThreatMatch::set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  _internal_set_platform_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatMatch.platform_type)
}
inline ::mozilla::safebrowsing::PlatformType ThreatMatch::_internal_platform_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::PlatformType>(_impl_.platform_type_);
}
inline void ThreatMatch::_internal_set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::PlatformType_internal_data_));
                                          _impl_.platform_type_ = value;
}

// optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 6;
inline bool ThreatMatch::has_threat_entry_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void ThreatMatch::clear_threat_entry_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_entry_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::mozilla::safebrowsing::ThreatEntryType ThreatMatch::threat_entry_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatMatch.threat_entry_type)
  return _internal_threat_entry_type();
}
inline void ThreatMatch::set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value) {
  _internal_set_threat_entry_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatMatch.threat_entry_type)
}
inline ::mozilla::safebrowsing::ThreatEntryType ThreatMatch::_internal_threat_entry_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatEntryType>(_impl_.threat_entry_type_);
}
inline void ThreatMatch::_internal_set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatEntryType_internal_data_));
                                          _impl_.threat_entry_type_ = value;
}

// optional .mozilla.safebrowsing.ThreatEntry threat = 3;
inline bool ThreatMatch::has_threat() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.threat_ != nullptr);
  return value;
}
inline void ThreatMatch::clear_threat() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.threat_ != nullptr) _impl_.threat_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::ThreatEntry& ThreatMatch::_internal_threat() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ThreatEntry* p = _impl_.threat_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ThreatEntry>(&::mozilla::safebrowsing::ThreatEntry_globals_);
}
inline const ::mozilla::safebrowsing::ThreatEntry& ThreatMatch::threat() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatMatch.threat)
  return _internal_threat();
}
inline void ThreatMatch::unsafe_arena_set_allocated_threat(
    ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.threat_);
  }
  _impl_.threat_ = reinterpret_cast<::mozilla::safebrowsing::ThreatEntry*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatMatch.threat)
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE ThreatMatch::release_threat() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mozilla::safebrowsing::ThreatEntry* released = _impl_.threat_;
  _impl_.threat_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE ThreatMatch::unsafe_arena_release_threat() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatMatch.threat)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mozilla::safebrowsing::ThreatEntry* temp = _impl_.threat_;
  _impl_.threat_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL ThreatMatch::_internal_mutable_threat() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.threat_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ThreatEntry>(GetArena());
    _impl_.threat_ = reinterpret_cast<::mozilla::safebrowsing::ThreatEntry*>(p);
  }
  return _impl_.threat_;
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL ThreatMatch::mutable_threat()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mozilla::safebrowsing::ThreatEntry* _msg = _internal_mutable_threat();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatMatch.threat)
  return _msg;
}
inline void ThreatMatch::set_allocated_threat(::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.threat_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.threat_ = reinterpret_cast<::mozilla::safebrowsing::ThreatEntry*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatMatch.threat)
}

// optional .mozilla.safebrowsing.ThreatEntryMetadata threat_entry_metadata = 4;
inline bool ThreatMatch::has_threat_entry_metadata() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.threat_entry_metadata_ != nullptr);
  return value;
}
inline void ThreatMatch::clear_threat_entry_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.threat_entry_metadata_ != nullptr) _impl_.threat_entry_metadata_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::ThreatEntryMetadata& ThreatMatch::_internal_threat_entry_metadata() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ThreatEntryMetadata* p = _impl_.threat_entry_metadata_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ThreatEntryMetadata>(&::mozilla::safebrowsing::ThreatEntryMetadata_globals_);
}
inline const ::mozilla::safebrowsing::ThreatEntryMetadata& ThreatMatch::threat_entry_metadata() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatMatch.threat_entry_metadata)
  return _internal_threat_entry_metadata();
}
inline void ThreatMatch::unsafe_arena_set_allocated_threat_entry_metadata(
    ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.threat_entry_metadata_);
  }
  _impl_.threat_entry_metadata_ = reinterpret_cast<::mozilla::safebrowsing::ThreatEntryMetadata*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatMatch.threat_entry_metadata)
}
inline ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NULLABLE ThreatMatch::release_threat_entry_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ThreatEntryMetadata* released = _impl_.threat_entry_metadata_;
  _impl_.threat_entry_metadata_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NULLABLE ThreatMatch::unsafe_arena_release_threat_entry_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatMatch.threat_entry_metadata)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ThreatEntryMetadata* temp = _impl_.threat_entry_metadata_;
  _impl_.threat_entry_metadata_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NONNULL ThreatMatch::_internal_mutable_threat_entry_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.threat_entry_metadata_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ThreatEntryMetadata>(GetArena());
    _impl_.threat_entry_metadata_ = reinterpret_cast<::mozilla::safebrowsing::ThreatEntryMetadata*>(p);
  }
  return _impl_.threat_entry_metadata_;
}
inline ::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NONNULL ThreatMatch::mutable_threat_entry_metadata()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ThreatEntryMetadata* _msg = _internal_mutable_threat_entry_metadata();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatMatch.threat_entry_metadata)
  return _msg;
}
inline void ThreatMatch::set_allocated_threat_entry_metadata(::mozilla::safebrowsing::ThreatEntryMetadata* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.threat_entry_metadata_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.threat_entry_metadata_ = reinterpret_cast<::mozilla::safebrowsing::ThreatEntryMetadata*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatMatch.threat_entry_metadata)
}

// optional .mozilla.safebrowsing.Duration cache_duration = 5;
inline bool ThreatMatch::has_cache_duration() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.cache_duration_ != nullptr);
  return value;
}
inline void ThreatMatch::clear_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cache_duration_ != nullptr) _impl_.cache_duration_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::mozilla::safebrowsing::Duration& ThreatMatch::_internal_cache_duration() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::Duration* p = _impl_.cache_duration_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::Duration>(&::mozilla::safebrowsing::Duration_globals_);
}
inline const ::mozilla::safebrowsing::Duration& ThreatMatch::cache_duration() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatMatch.cache_duration)
  return _internal_cache_duration();
}
inline void ThreatMatch::unsafe_arena_set_allocated_cache_duration(
    ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cache_duration_);
  }
  _impl_.cache_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatMatch.cache_duration)
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE ThreatMatch::release_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::Duration* released = _impl_.cache_duration_;
  _impl_.cache_duration_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE ThreatMatch::unsafe_arena_release_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatMatch.cache_duration)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::Duration* temp = _impl_.cache_duration_;
  _impl_.cache_duration_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL ThreatMatch::_internal_mutable_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cache_duration_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::Duration>(GetArena());
    _impl_.cache_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(p);
  }
  return _impl_.cache_duration_;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL ThreatMatch::mutable_cache_duration()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::Duration* _msg = _internal_mutable_cache_duration();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatMatch.cache_duration)
  return _msg;
}
inline void ThreatMatch::set_allocated_cache_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cache_duration_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.cache_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatMatch.cache_duration)
}

// -------------------------------------------------------------------

// FindThreatMatchesRequest

// optional .mozilla.safebrowsing.ClientInfo client = 1;
inline bool FindThreatMatchesRequest::has_client() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.client_ != nullptr);
  return value;
}
inline void FindThreatMatchesRequest::clear_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_ != nullptr) _impl_.client_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::ClientInfo& FindThreatMatchesRequest::_internal_client() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ClientInfo* p = _impl_.client_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ClientInfo>(&::mozilla::safebrowsing::ClientInfo_globals_);
}
inline const ::mozilla::safebrowsing::ClientInfo& FindThreatMatchesRequest::client() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FindThreatMatchesRequest.client)
  return _internal_client();
}
inline void FindThreatMatchesRequest::unsafe_arena_set_allocated_client(
    ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_);
  }
  _impl_.client_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FindThreatMatchesRequest.client)
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE FindThreatMatchesRequest::release_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mozilla::safebrowsing::ClientInfo* released = _impl_.client_;
  _impl_.client_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE FindThreatMatchesRequest::unsafe_arena_release_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FindThreatMatchesRequest.client)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mozilla::safebrowsing::ClientInfo* temp = _impl_.client_;
  _impl_.client_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL FindThreatMatchesRequest::_internal_mutable_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ClientInfo>(GetArena());
    _impl_.client_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(p);
  }
  return _impl_.client_;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL FindThreatMatchesRequest::mutable_client()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mozilla::safebrowsing::ClientInfo* _msg = _internal_mutable_client();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FindThreatMatchesRequest.client)
  return _msg;
}
inline void FindThreatMatchesRequest::set_allocated_client(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.client_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FindThreatMatchesRequest.client)
}

// optional .mozilla.safebrowsing.ThreatInfo threat_info = 2;
inline bool FindThreatMatchesRequest::has_threat_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.threat_info_ != nullptr);
  return value;
}
inline void FindThreatMatchesRequest::clear_threat_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.threat_info_ != nullptr) _impl_.threat_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::ThreatInfo& FindThreatMatchesRequest::_internal_threat_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ThreatInfo* p = _impl_.threat_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ThreatInfo>(&::mozilla::safebrowsing::ThreatInfo_globals_);
}
inline const ::mozilla::safebrowsing::ThreatInfo& FindThreatMatchesRequest::threat_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FindThreatMatchesRequest.threat_info)
  return _internal_threat_info();
}
inline void FindThreatMatchesRequest::unsafe_arena_set_allocated_threat_info(
    ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.threat_info_);
  }
  _impl_.threat_info_ = reinterpret_cast<::mozilla::safebrowsing::ThreatInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FindThreatMatchesRequest.threat_info)
}
inline ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE FindThreatMatchesRequest::release_threat_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ThreatInfo* released = _impl_.threat_info_;
  _impl_.threat_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE FindThreatMatchesRequest::unsafe_arena_release_threat_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FindThreatMatchesRequest.threat_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ThreatInfo* temp = _impl_.threat_info_;
  _impl_.threat_info_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NONNULL FindThreatMatchesRequest::_internal_mutable_threat_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.threat_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ThreatInfo>(GetArena());
    _impl_.threat_info_ = reinterpret_cast<::mozilla::safebrowsing::ThreatInfo*>(p);
  }
  return _impl_.threat_info_;
}
inline ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NONNULL FindThreatMatchesRequest::mutable_threat_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ThreatInfo* _msg = _internal_mutable_threat_info();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FindThreatMatchesRequest.threat_info)
  return _msg;
}
inline void FindThreatMatchesRequest::set_allocated_threat_info(::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.threat_info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.threat_info_ = reinterpret_cast<::mozilla::safebrowsing::ThreatInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FindThreatMatchesRequest.threat_info)
}

// -------------------------------------------------------------------

// FindThreatMatchesResponse

// repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
inline int FindThreatMatchesResponse::_internal_matches_size() const {
  return _internal_matches().size();
}
inline int FindThreatMatchesResponse::matches_size() const {
  return _internal_matches_size();
}
inline void FindThreatMatchesResponse::clear_matches() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.matches_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::ThreatMatch& FindThreatMatchesResponse::matches(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FindThreatMatchesResponse.matches)
  return _internal_matches().Get(index);
}
inline ::mozilla::safebrowsing::ThreatMatch* PROTOBUF_NONNULL FindThreatMatchesResponse::mutable_matches(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FindThreatMatchesResponse.matches)
  return _internal_mutable_matches()->Mutable(index);
}
inline ::mozilla::safebrowsing::ThreatMatch* PROTOBUF_NONNULL FindThreatMatchesResponse::add_matches()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::ThreatMatch* _add =
      _internal_mutable_matches()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.FindThreatMatchesResponse.matches)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>& FindThreatMatchesResponse::matches() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.FindThreatMatchesResponse.matches)
  return _internal_matches();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>* PROTOBUF_NONNULL
FindThreatMatchesResponse::mutable_matches() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.FindThreatMatchesResponse.matches)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_matches();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>&
FindThreatMatchesResponse::_internal_matches() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.matches_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>* PROTOBUF_NONNULL
FindThreatMatchesResponse::_internal_mutable_matches() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.matches_;
}

// -------------------------------------------------------------------

// FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints

// optional int32 max_update_entries = 1;
inline bool FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::has_max_update_entries() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::clear_max_update_entries() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_update_entries_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::max_update_entries() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.max_update_entries)
  return _internal_max_update_entries();
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::set_max_update_entries(::int32_t value) {
  _internal_set_max_update_entries(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.max_update_entries)
}
inline ::int32_t FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_max_update_entries() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_update_entries_;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_set_max_update_entries(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_update_entries_ = value;
}

// optional int32 max_database_entries = 2;
inline bool FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::has_max_database_entries() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::clear_max_database_entries() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_database_entries_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::int32_t FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::max_database_entries() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.max_database_entries)
  return _internal_max_database_entries();
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::set_max_database_entries(::int32_t value) {
  _internal_set_max_database_entries(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.max_database_entries)
}
inline ::int32_t FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_max_database_entries() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_database_entries_;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_set_max_database_entries(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_database_entries_ = value;
}

// optional string region = 3;
inline bool FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::has_region() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::clear_region() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.region_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::region() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.region)
  return _internal_region();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::set_region(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.region_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.region)
}
inline ::std::string* PROTOBUF_NONNULL FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::mutable_region()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_region();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.region)
  return _s;
}
inline const ::std::string& FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_region() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.region_.Get();
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_set_region(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.region_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_mutable_region() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.region_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::release_region() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.region)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.region_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.region_.Set("", GetArena());
  }
  return released;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::set_allocated_region(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.region_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.region_.IsDefault()) {
    _impl_.region_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.region)
}

// repeated .mozilla.safebrowsing.CompressionType supported_compressions = 4;
inline int FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_supported_compressions_size() const {
  return _internal_supported_compressions().size();
}
inline int FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::supported_compressions_size() const {
  return _internal_supported_compressions_size();
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::clear_supported_compressions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.supported_compressions_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::mozilla::safebrowsing::CompressionType FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::supported_compressions(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.supported_compressions)
  return static_cast<::mozilla::safebrowsing::CompressionType>(_internal_supported_compressions().Get(index));
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::set_supported_compressions(int index, ::mozilla::safebrowsing::CompressionType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::CompressionType_internal_data_));
                                          _internal_mutable_supported_compressions()->Set(index, value);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.supported_compressions)
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::add_supported_compressions(::mozilla::safebrowsing::CompressionType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::CompressionType_internal_data_));
                                          ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_supported_compressions()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.supported_compressions)
}
inline const ::google::protobuf::RepeatedField<int>& FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::supported_compressions() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.supported_compressions)
  return _internal_supported_compressions();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::mutable_supported_compressions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints.supported_compressions)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_supported_compressions();
}
inline const ::google::protobuf::RepeatedField<int>& FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_supported_compressions()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.supported_compressions_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_internal_mutable_supported_compressions() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.supported_compressions_;
}

// -------------------------------------------------------------------

// FetchThreatListUpdatesRequest_ListUpdateRequest

// optional .mozilla.safebrowsing.ThreatType threat_type = 1;
inline bool FetchThreatListUpdatesRequest_ListUpdateRequest::has_threat_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::clear_threat_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::mozilla::safebrowsing::ThreatType FetchThreatListUpdatesRequest_ListUpdateRequest::threat_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.threat_type)
  return _internal_threat_type();
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  _internal_set_threat_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.threat_type)
}
inline ::mozilla::safebrowsing::ThreatType FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_threat_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatType>(_impl_.threat_type_);
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatType_internal_data_));
                                          _impl_.threat_type_ = value;
}

// optional .mozilla.safebrowsing.PlatformType platform_type = 2;
inline bool FetchThreatListUpdatesRequest_ListUpdateRequest::has_platform_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::clear_platform_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.platform_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::mozilla::safebrowsing::PlatformType FetchThreatListUpdatesRequest_ListUpdateRequest::platform_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.platform_type)
  return _internal_platform_type();
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  _internal_set_platform_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.platform_type)
}
inline ::mozilla::safebrowsing::PlatformType FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_platform_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::PlatformType>(_impl_.platform_type_);
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::PlatformType_internal_data_));
                                          _impl_.platform_type_ = value;
}

// optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 5;
inline bool FetchThreatListUpdatesRequest_ListUpdateRequest::has_threat_entry_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::clear_threat_entry_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_entry_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::mozilla::safebrowsing::ThreatEntryType FetchThreatListUpdatesRequest_ListUpdateRequest::threat_entry_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.threat_entry_type)
  return _internal_threat_entry_type();
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value) {
  _internal_set_threat_entry_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.threat_entry_type)
}
inline ::mozilla::safebrowsing::ThreatEntryType FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_threat_entry_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatEntryType>(_impl_.threat_entry_type_);
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatEntryType_internal_data_));
                                          _impl_.threat_entry_type_ = value;
}

// optional bytes state = 3;
inline bool FetchThreatListUpdatesRequest_ListUpdateRequest::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& FetchThreatListUpdatesRequest_ListUpdateRequest::state() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.state)
  return _internal_state();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void FetchThreatListUpdatesRequest_ListUpdateRequest::set_state(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.state_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.state)
}
inline ::std::string* PROTOBUF_NONNULL FetchThreatListUpdatesRequest_ListUpdateRequest::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.state)
  return _s;
}
inline const ::std::string& FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.state_.Get();
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_set_state(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.state_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE FetchThreatListUpdatesRequest_ListUpdateRequest::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.state)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.state_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.state_.Set("", GetArena());
  }
  return released;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::set_allocated_state(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.state_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.state_.IsDefault()) {
    _impl_.state_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.state)
}

// optional .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints constraints = 4;
inline bool FetchThreatListUpdatesRequest_ListUpdateRequest::has_constraints() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.constraints_ != nullptr);
  return value;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::clear_constraints() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.constraints_ != nullptr) _impl_.constraints_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_constraints() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* p = _impl_.constraints_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>(&::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_);
}
inline const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& FetchThreatListUpdatesRequest_ListUpdateRequest::constraints() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.constraints)
  return _internal_constraints();
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::unsafe_arena_set_allocated_constraints(
    ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.constraints_);
  }
  _impl_.constraints_ = reinterpret_cast<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.constraints)
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NULLABLE FetchThreatListUpdatesRequest_ListUpdateRequest::release_constraints() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* released = _impl_.constraints_;
  _impl_.constraints_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NULLABLE FetchThreatListUpdatesRequest_ListUpdateRequest::unsafe_arena_release_constraints() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.constraints)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* temp = _impl_.constraints_;
  _impl_.constraints_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NONNULL FetchThreatListUpdatesRequest_ListUpdateRequest::_internal_mutable_constraints() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.constraints_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>(GetArena());
    _impl_.constraints_ = reinterpret_cast<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints*>(p);
  }
  return _impl_.constraints_;
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NONNULL FetchThreatListUpdatesRequest_ListUpdateRequest::mutable_constraints()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* _msg = _internal_mutable_constraints();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.constraints)
  return _msg;
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::set_allocated_constraints(::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.constraints_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.constraints_ = reinterpret_cast<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.constraints)
}

// -------------------------------------------------------------------

// FetchThreatListUpdatesRequest

// optional .mozilla.safebrowsing.ClientInfo client = 1;
inline bool FetchThreatListUpdatesRequest::has_client() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.client_ != nullptr);
  return value;
}
inline void FetchThreatListUpdatesRequest::clear_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_ != nullptr) _impl_.client_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::ClientInfo& FetchThreatListUpdatesRequest::_internal_client() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ClientInfo* p = _impl_.client_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ClientInfo>(&::mozilla::safebrowsing::ClientInfo_globals_);
}
inline const ::mozilla::safebrowsing::ClientInfo& FetchThreatListUpdatesRequest::client() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.client)
  return _internal_client();
}
inline void FetchThreatListUpdatesRequest::unsafe_arena_set_allocated_client(
    ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_);
  }
  _impl_.client_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesRequest.client)
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE FetchThreatListUpdatesRequest::release_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ClientInfo* released = _impl_.client_;
  _impl_.client_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE FetchThreatListUpdatesRequest::unsafe_arena_release_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FetchThreatListUpdatesRequest.client)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ClientInfo* temp = _impl_.client_;
  _impl_.client_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL FetchThreatListUpdatesRequest::_internal_mutable_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ClientInfo>(GetArena());
    _impl_.client_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(p);
  }
  return _impl_.client_;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL FetchThreatListUpdatesRequest::mutable_client()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ClientInfo* _msg = _internal_mutable_client();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesRequest.client)
  return _msg;
}
inline void FetchThreatListUpdatesRequest::set_allocated_client(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.client_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesRequest.client)
}

// repeated .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest list_update_requests = 3;
inline int FetchThreatListUpdatesRequest::_internal_list_update_requests_size() const {
  return _internal_list_update_requests().size();
}
inline int FetchThreatListUpdatesRequest::list_update_requests_size() const {
  return _internal_list_update_requests_size();
}
inline void FetchThreatListUpdatesRequest::clear_list_update_requests() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.list_update_requests_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest& FetchThreatListUpdatesRequest::list_update_requests(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.list_update_requests)
  return _internal_list_update_requests().Get(index);
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest* PROTOBUF_NONNULL FetchThreatListUpdatesRequest::mutable_list_update_requests(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesRequest.list_update_requests)
  return _internal_mutable_list_update_requests()->Mutable(index);
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest* PROTOBUF_NONNULL FetchThreatListUpdatesRequest::add_list_update_requests()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest* _add =
      _internal_mutable_list_update_requests()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.FetchThreatListUpdatesRequest.list_update_requests)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>& FetchThreatListUpdatesRequest::list_update_requests() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.FetchThreatListUpdatesRequest.list_update_requests)
  return _internal_list_update_requests();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>* PROTOBUF_NONNULL
FetchThreatListUpdatesRequest::mutable_list_update_requests() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.FetchThreatListUpdatesRequest.list_update_requests)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_list_update_requests();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>&
FetchThreatListUpdatesRequest::_internal_list_update_requests() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.list_update_requests_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>* PROTOBUF_NONNULL
FetchThreatListUpdatesRequest::_internal_mutable_list_update_requests() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.list_update_requests_;
}

// optional .mozilla.safebrowsing.ChromeClientInfo chrome_client_info = 4;
inline bool FetchThreatListUpdatesRequest::has_chrome_client_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.chrome_client_info_ != nullptr);
  return value;
}
inline void FetchThreatListUpdatesRequest::clear_chrome_client_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.chrome_client_info_ != nullptr) _impl_.chrome_client_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::mozilla::safebrowsing::ChromeClientInfo& FetchThreatListUpdatesRequest::_internal_chrome_client_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ChromeClientInfo* p = _impl_.chrome_client_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ChromeClientInfo>(&::mozilla::safebrowsing::ChromeClientInfo_globals_);
}
inline const ::mozilla::safebrowsing::ChromeClientInfo& FetchThreatListUpdatesRequest::chrome_client_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesRequest.chrome_client_info)
  return _internal_chrome_client_info();
}
inline void FetchThreatListUpdatesRequest::unsafe_arena_set_allocated_chrome_client_info(
    ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.chrome_client_info_);
  }
  _impl_.chrome_client_info_ = reinterpret_cast<::mozilla::safebrowsing::ChromeClientInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesRequest.chrome_client_info)
}
inline ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NULLABLE FetchThreatListUpdatesRequest::release_chrome_client_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::ChromeClientInfo* released = _impl_.chrome_client_info_;
  _impl_.chrome_client_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NULLABLE FetchThreatListUpdatesRequest::unsafe_arena_release_chrome_client_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FetchThreatListUpdatesRequest.chrome_client_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::ChromeClientInfo* temp = _impl_.chrome_client_info_;
  _impl_.chrome_client_info_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NONNULL FetchThreatListUpdatesRequest::_internal_mutable_chrome_client_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.chrome_client_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ChromeClientInfo>(GetArena());
    _impl_.chrome_client_info_ = reinterpret_cast<::mozilla::safebrowsing::ChromeClientInfo*>(p);
  }
  return _impl_.chrome_client_info_;
}
inline ::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NONNULL FetchThreatListUpdatesRequest::mutable_chrome_client_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::ChromeClientInfo* _msg = _internal_mutable_chrome_client_info();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesRequest.chrome_client_info)
  return _msg;
}
inline void FetchThreatListUpdatesRequest::set_allocated_chrome_client_info(::mozilla::safebrowsing::ChromeClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.chrome_client_info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.chrome_client_info_ = reinterpret_cast<::mozilla::safebrowsing::ChromeClientInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesRequest.chrome_client_info)
}

// -------------------------------------------------------------------

// FetchThreatListUpdatesResponse_ListUpdateResponse

// optional .mozilla.safebrowsing.ThreatType threat_type = 1;
inline bool FetchThreatListUpdatesResponse_ListUpdateResponse::has_threat_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::clear_threat_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::mozilla::safebrowsing::ThreatType FetchThreatListUpdatesResponse_ListUpdateResponse::threat_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.threat_type)
  return _internal_threat_type();
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  _internal_set_threat_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.threat_type)
}
inline ::mozilla::safebrowsing::ThreatType FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_threat_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatType>(_impl_.threat_type_);
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatType_internal_data_));
                                          _impl_.threat_type_ = value;
}

// optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 2;
inline bool FetchThreatListUpdatesResponse_ListUpdateResponse::has_threat_entry_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::clear_threat_entry_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_entry_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::mozilla::safebrowsing::ThreatEntryType FetchThreatListUpdatesResponse_ListUpdateResponse::threat_entry_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.threat_entry_type)
  return _internal_threat_entry_type();
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value) {
  _internal_set_threat_entry_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.threat_entry_type)
}
inline ::mozilla::safebrowsing::ThreatEntryType FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_threat_entry_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatEntryType>(_impl_.threat_entry_type_);
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatEntryType_internal_data_));
                                          _impl_.threat_entry_type_ = value;
}

// optional .mozilla.safebrowsing.PlatformType platform_type = 3;
inline bool FetchThreatListUpdatesResponse_ListUpdateResponse::has_platform_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::clear_platform_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.platform_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::mozilla::safebrowsing::PlatformType FetchThreatListUpdatesResponse_ListUpdateResponse::platform_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.platform_type)
  return _internal_platform_type();
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  _internal_set_platform_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.platform_type)
}
inline ::mozilla::safebrowsing::PlatformType FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_platform_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::PlatformType>(_impl_.platform_type_);
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::PlatformType_internal_data_));
                                          _impl_.platform_type_ = value;
}

// optional .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.ResponseType response_type = 4;
inline bool FetchThreatListUpdatesResponse_ListUpdateResponse::has_response_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::clear_response_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.response_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType FetchThreatListUpdatesResponse_ListUpdateResponse::response_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.response_type)
  return _internal_response_type();
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::set_response_type(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType value) {
  _internal_set_response_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.response_type)
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_response_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType>(_impl_.response_type_);
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_set_response_type(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_internal_data_));
                                          _impl_.response_type_ = value;
}

// repeated .mozilla.safebrowsing.ThreatEntrySet additions = 5;
inline int FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_additions_size() const {
  return _internal_additions().size();
}
inline int FetchThreatListUpdatesResponse_ListUpdateResponse::additions_size() const {
  return _internal_additions_size();
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::clear_additions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.additions_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::ThreatEntrySet& FetchThreatListUpdatesResponse_ListUpdateResponse::additions(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.additions)
  return _internal_additions().Get(index);
}
inline ::mozilla::safebrowsing::ThreatEntrySet* PROTOBUF_NONNULL FetchThreatListUpdatesResponse_ListUpdateResponse::mutable_additions(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.additions)
  return _internal_mutable_additions()->Mutable(index);
}
inline ::mozilla::safebrowsing::ThreatEntrySet* PROTOBUF_NONNULL FetchThreatListUpdatesResponse_ListUpdateResponse::add_additions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::ThreatEntrySet* _add =
      _internal_mutable_additions()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.additions)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>& FetchThreatListUpdatesResponse_ListUpdateResponse::additions() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.additions)
  return _internal_additions();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse_ListUpdateResponse::mutable_additions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.additions)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_additions();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>&
FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_additions() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.additions_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_mutable_additions() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.additions_;
}

// repeated .mozilla.safebrowsing.ThreatEntrySet removals = 6;
inline int FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_removals_size() const {
  return _internal_removals().size();
}
inline int FetchThreatListUpdatesResponse_ListUpdateResponse::removals_size() const {
  return _internal_removals_size();
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::clear_removals() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.removals_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::ThreatEntrySet& FetchThreatListUpdatesResponse_ListUpdateResponse::removals(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.removals)
  return _internal_removals().Get(index);
}
inline ::mozilla::safebrowsing::ThreatEntrySet* PROTOBUF_NONNULL FetchThreatListUpdatesResponse_ListUpdateResponse::mutable_removals(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.removals)
  return _internal_mutable_removals()->Mutable(index);
}
inline ::mozilla::safebrowsing::ThreatEntrySet* PROTOBUF_NONNULL FetchThreatListUpdatesResponse_ListUpdateResponse::add_removals()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::ThreatEntrySet* _add =
      _internal_mutable_removals()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.removals)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>& FetchThreatListUpdatesResponse_ListUpdateResponse::removals() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.removals)
  return _internal_removals();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse_ListUpdateResponse::mutable_removals() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.removals)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_removals();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>&
FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_removals() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.removals_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntrySet>* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_mutable_removals() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.removals_;
}

// optional bytes new_client_state = 7;
inline bool FetchThreatListUpdatesResponse_ListUpdateResponse::has_new_client_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::clear_new_client_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.new_client_state_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& FetchThreatListUpdatesResponse_ListUpdateResponse::new_client_state() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.new_client_state)
  return _internal_new_client_state();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void FetchThreatListUpdatesResponse_ListUpdateResponse::set_new_client_state(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.new_client_state_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.new_client_state)
}
inline ::std::string* PROTOBUF_NONNULL FetchThreatListUpdatesResponse_ListUpdateResponse::mutable_new_client_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_new_client_state();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.new_client_state)
  return _s;
}
inline const ::std::string& FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_new_client_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.new_client_state_.Get();
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_set_new_client_state(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.new_client_state_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_mutable_new_client_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.new_client_state_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE FetchThreatListUpdatesResponse_ListUpdateResponse::release_new_client_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.new_client_state)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.new_client_state_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.new_client_state_.Set("", GetArena());
  }
  return released;
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::set_allocated_new_client_state(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.new_client_state_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.new_client_state_.IsDefault()) {
    _impl_.new_client_state_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.new_client_state)
}

// optional .mozilla.safebrowsing.Checksum checksum = 8;
inline bool FetchThreatListUpdatesResponse_ListUpdateResponse::has_checksum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.checksum_ != nullptr);
  return value;
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::clear_checksum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.checksum_ != nullptr) _impl_.checksum_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::mozilla::safebrowsing::Checksum& FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_checksum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::Checksum* p = _impl_.checksum_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::Checksum>(&::mozilla::safebrowsing::Checksum_globals_);
}
inline const ::mozilla::safebrowsing::Checksum& FetchThreatListUpdatesResponse_ListUpdateResponse::checksum() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.checksum)
  return _internal_checksum();
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::unsafe_arena_set_allocated_checksum(
    ::mozilla::safebrowsing::Checksum* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.checksum_);
  }
  _impl_.checksum_ = reinterpret_cast<::mozilla::safebrowsing::Checksum*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.checksum)
}
inline ::mozilla::safebrowsing::Checksum* PROTOBUF_NULLABLE FetchThreatListUpdatesResponse_ListUpdateResponse::release_checksum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::mozilla::safebrowsing::Checksum* released = _impl_.checksum_;
  _impl_.checksum_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::Checksum* PROTOBUF_NULLABLE FetchThreatListUpdatesResponse_ListUpdateResponse::unsafe_arena_release_checksum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.checksum)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::mozilla::safebrowsing::Checksum* temp = _impl_.checksum_;
  _impl_.checksum_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::Checksum* PROTOBUF_NONNULL FetchThreatListUpdatesResponse_ListUpdateResponse::_internal_mutable_checksum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.checksum_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::Checksum>(GetArena());
    _impl_.checksum_ = reinterpret_cast<::mozilla::safebrowsing::Checksum*>(p);
  }
  return _impl_.checksum_;
}
inline ::mozilla::safebrowsing::Checksum* PROTOBUF_NONNULL FetchThreatListUpdatesResponse_ListUpdateResponse::mutable_checksum()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::mozilla::safebrowsing::Checksum* _msg = _internal_mutable_checksum();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.checksum)
  return _msg;
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::set_allocated_checksum(::mozilla::safebrowsing::Checksum* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.checksum_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.checksum_ = reinterpret_cast<::mozilla::safebrowsing::Checksum*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.checksum)
}

// -------------------------------------------------------------------

// FetchThreatListUpdatesResponse

// repeated .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse list_update_responses = 1;
inline int FetchThreatListUpdatesResponse::_internal_list_update_responses_size() const {
  return _internal_list_update_responses().size();
}
inline int FetchThreatListUpdatesResponse::list_update_responses_size() const {
  return _internal_list_update_responses_size();
}
inline void FetchThreatListUpdatesResponse::clear_list_update_responses() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.list_update_responses_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse& FetchThreatListUpdatesResponse::list_update_responses(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.list_update_responses)
  return _internal_list_update_responses().Get(index);
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_NONNULL FetchThreatListUpdatesResponse::mutable_list_update_responses(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesResponse.list_update_responses)
  return _internal_mutable_list_update_responses()->Mutable(index);
}
inline ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_NONNULL FetchThreatListUpdatesResponse::add_list_update_responses()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse* _add =
      _internal_mutable_list_update_responses()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.FetchThreatListUpdatesResponse.list_update_responses)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>& FetchThreatListUpdatesResponse::list_update_responses() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.FetchThreatListUpdatesResponse.list_update_responses)
  return _internal_list_update_responses();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse::mutable_list_update_responses() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.FetchThreatListUpdatesResponse.list_update_responses)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_list_update_responses();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>&
FetchThreatListUpdatesResponse::_internal_list_update_responses() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.list_update_responses_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse::_internal_mutable_list_update_responses() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.list_update_responses_;
}

// optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
inline bool FetchThreatListUpdatesResponse::has_minimum_wait_duration() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.minimum_wait_duration_ != nullptr);
  return value;
}
inline void FetchThreatListUpdatesResponse::clear_minimum_wait_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.minimum_wait_duration_ != nullptr) _impl_.minimum_wait_duration_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::Duration& FetchThreatListUpdatesResponse::_internal_minimum_wait_duration() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::Duration* p = _impl_.minimum_wait_duration_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::Duration>(&::mozilla::safebrowsing::Duration_globals_);
}
inline const ::mozilla::safebrowsing::Duration& FetchThreatListUpdatesResponse::minimum_wait_duration() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FetchThreatListUpdatesResponse.minimum_wait_duration)
  return _internal_minimum_wait_duration();
}
inline void FetchThreatListUpdatesResponse::unsafe_arena_set_allocated_minimum_wait_duration(
    ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.minimum_wait_duration_);
  }
  _impl_.minimum_wait_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesResponse.minimum_wait_duration)
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE FetchThreatListUpdatesResponse::release_minimum_wait_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::Duration* released = _impl_.minimum_wait_duration_;
  _impl_.minimum_wait_duration_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE FetchThreatListUpdatesResponse::unsafe_arena_release_minimum_wait_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FetchThreatListUpdatesResponse.minimum_wait_duration)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::Duration* temp = _impl_.minimum_wait_duration_;
  _impl_.minimum_wait_duration_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL FetchThreatListUpdatesResponse::_internal_mutable_minimum_wait_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.minimum_wait_duration_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::Duration>(GetArena());
    _impl_.minimum_wait_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(p);
  }
  return _impl_.minimum_wait_duration_;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL FetchThreatListUpdatesResponse::mutable_minimum_wait_duration()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::Duration* _msg = _internal_mutable_minimum_wait_duration();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FetchThreatListUpdatesResponse.minimum_wait_duration)
  return _msg;
}
inline void FetchThreatListUpdatesResponse::set_allocated_minimum_wait_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.minimum_wait_duration_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.minimum_wait_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FetchThreatListUpdatesResponse.minimum_wait_duration)
}

// -------------------------------------------------------------------

// FindFullHashesRequest

// optional .mozilla.safebrowsing.ClientInfo client = 1;
inline bool FindFullHashesRequest::has_client() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.client_ != nullptr);
  return value;
}
inline void FindFullHashesRequest::clear_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_ != nullptr) _impl_.client_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::ClientInfo& FindFullHashesRequest::_internal_client() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ClientInfo* p = _impl_.client_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ClientInfo>(&::mozilla::safebrowsing::ClientInfo_globals_);
}
inline const ::mozilla::safebrowsing::ClientInfo& FindFullHashesRequest::client() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FindFullHashesRequest.client)
  return _internal_client();
}
inline void FindFullHashesRequest::unsafe_arena_set_allocated_client(
    ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_);
  }
  _impl_.client_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FindFullHashesRequest.client)
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE FindFullHashesRequest::release_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ClientInfo* released = _impl_.client_;
  _impl_.client_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE FindFullHashesRequest::unsafe_arena_release_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FindFullHashesRequest.client)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ClientInfo* temp = _impl_.client_;
  _impl_.client_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL FindFullHashesRequest::_internal_mutable_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ClientInfo>(GetArena());
    _impl_.client_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(p);
  }
  return _impl_.client_;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL FindFullHashesRequest::mutable_client()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ClientInfo* _msg = _internal_mutable_client();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FindFullHashesRequest.client)
  return _msg;
}
inline void FindFullHashesRequest::set_allocated_client(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.client_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FindFullHashesRequest.client)
}

// repeated bytes client_states = 2;
inline int FindFullHashesRequest::_internal_client_states_size() const {
  return _internal_client_states().size();
}
inline int FindFullHashesRequest::client_states_size() const {
  return _internal_client_states_size();
}
inline void FindFullHashesRequest::clear_client_states() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_states_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL FindFullHashesRequest::add_client_states()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_client_states()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:mozilla.safebrowsing.FindFullHashesRequest.client_states)
  return _s;
}
inline const ::std::string& FindFullHashesRequest::client_states(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FindFullHashesRequest.client_states)
  return _internal_client_states().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL FindFullHashesRequest::mutable_client_states(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FindFullHashesRequest.client_states)
  return _internal_mutable_client_states()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void FindFullHashesRequest::set_client_states(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_client_states()->Mutable(index),
      ::std::forward<Arg_>(value), args... , ::google::protobuf::internal::BytesTag{});
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.FindFullHashesRequest.client_states)
}
template <typename Arg_, typename... Args_>
inline void FindFullHashesRequest::add_client_states(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_client_states(), ::std::forward<Arg_>(value),
      args... , ::google::protobuf::internal::BytesTag{});
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.FindFullHashesRequest.client_states)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& FindFullHashesRequest::client_states()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.FindFullHashesRequest.client_states)
  return _internal_client_states();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
FindFullHashesRequest::mutable_client_states() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.FindFullHashesRequest.client_states)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_client_states();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
FindFullHashesRequest::_internal_client_states() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.client_states_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
FindFullHashesRequest::_internal_mutable_client_states() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.client_states_;
}

// optional .mozilla.safebrowsing.ThreatInfo threat_info = 3;
inline bool FindFullHashesRequest::has_threat_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.threat_info_ != nullptr);
  return value;
}
inline void FindFullHashesRequest::clear_threat_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.threat_info_ != nullptr) _impl_.threat_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::mozilla::safebrowsing::ThreatInfo& FindFullHashesRequest::_internal_threat_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ThreatInfo* p = _impl_.threat_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ThreatInfo>(&::mozilla::safebrowsing::ThreatInfo_globals_);
}
inline const ::mozilla::safebrowsing::ThreatInfo& FindFullHashesRequest::threat_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FindFullHashesRequest.threat_info)
  return _internal_threat_info();
}
inline void FindFullHashesRequest::unsafe_arena_set_allocated_threat_info(
    ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.threat_info_);
  }
  _impl_.threat_info_ = reinterpret_cast<::mozilla::safebrowsing::ThreatInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FindFullHashesRequest.threat_info)
}
inline ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE FindFullHashesRequest::release_threat_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::ThreatInfo* released = _impl_.threat_info_;
  _impl_.threat_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE FindFullHashesRequest::unsafe_arena_release_threat_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FindFullHashesRequest.threat_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::ThreatInfo* temp = _impl_.threat_info_;
  _impl_.threat_info_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NONNULL FindFullHashesRequest::_internal_mutable_threat_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.threat_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ThreatInfo>(GetArena());
    _impl_.threat_info_ = reinterpret_cast<::mozilla::safebrowsing::ThreatInfo*>(p);
  }
  return _impl_.threat_info_;
}
inline ::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NONNULL FindFullHashesRequest::mutable_threat_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::ThreatInfo* _msg = _internal_mutable_threat_info();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FindFullHashesRequest.threat_info)
  return _msg;
}
inline void FindFullHashesRequest::set_allocated_threat_info(::mozilla::safebrowsing::ThreatInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.threat_info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.threat_info_ = reinterpret_cast<::mozilla::safebrowsing::ThreatInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FindFullHashesRequest.threat_info)
}

// -------------------------------------------------------------------

// FindFullHashesResponse

// repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
inline int FindFullHashesResponse::_internal_matches_size() const {
  return _internal_matches().size();
}
inline int FindFullHashesResponse::matches_size() const {
  return _internal_matches_size();
}
inline void FindFullHashesResponse::clear_matches() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.matches_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::ThreatMatch& FindFullHashesResponse::matches(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FindFullHashesResponse.matches)
  return _internal_matches().Get(index);
}
inline ::mozilla::safebrowsing::ThreatMatch* PROTOBUF_NONNULL FindFullHashesResponse::mutable_matches(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FindFullHashesResponse.matches)
  return _internal_mutable_matches()->Mutable(index);
}
inline ::mozilla::safebrowsing::ThreatMatch* PROTOBUF_NONNULL FindFullHashesResponse::add_matches()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::ThreatMatch* _add =
      _internal_mutable_matches()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.FindFullHashesResponse.matches)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>& FindFullHashesResponse::matches() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.FindFullHashesResponse.matches)
  return _internal_matches();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>* PROTOBUF_NONNULL
FindFullHashesResponse::mutable_matches() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.FindFullHashesResponse.matches)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_matches();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>&
FindFullHashesResponse::_internal_matches() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.matches_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatMatch>* PROTOBUF_NONNULL
FindFullHashesResponse::_internal_mutable_matches() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.matches_;
}

// optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
inline bool FindFullHashesResponse::has_minimum_wait_duration() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.minimum_wait_duration_ != nullptr);
  return value;
}
inline void FindFullHashesResponse::clear_minimum_wait_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.minimum_wait_duration_ != nullptr) _impl_.minimum_wait_duration_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::Duration& FindFullHashesResponse::_internal_minimum_wait_duration() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::Duration* p = _impl_.minimum_wait_duration_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::Duration>(&::mozilla::safebrowsing::Duration_globals_);
}
inline const ::mozilla::safebrowsing::Duration& FindFullHashesResponse::minimum_wait_duration() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FindFullHashesResponse.minimum_wait_duration)
  return _internal_minimum_wait_duration();
}
inline void FindFullHashesResponse::unsafe_arena_set_allocated_minimum_wait_duration(
    ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.minimum_wait_duration_);
  }
  _impl_.minimum_wait_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FindFullHashesResponse.minimum_wait_duration)
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE FindFullHashesResponse::release_minimum_wait_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::Duration* released = _impl_.minimum_wait_duration_;
  _impl_.minimum_wait_duration_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE FindFullHashesResponse::unsafe_arena_release_minimum_wait_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FindFullHashesResponse.minimum_wait_duration)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::Duration* temp = _impl_.minimum_wait_duration_;
  _impl_.minimum_wait_duration_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL FindFullHashesResponse::_internal_mutable_minimum_wait_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.minimum_wait_duration_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::Duration>(GetArena());
    _impl_.minimum_wait_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(p);
  }
  return _impl_.minimum_wait_duration_;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL FindFullHashesResponse::mutable_minimum_wait_duration()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::Duration* _msg = _internal_mutable_minimum_wait_duration();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FindFullHashesResponse.minimum_wait_duration)
  return _msg;
}
inline void FindFullHashesResponse::set_allocated_minimum_wait_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.minimum_wait_duration_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.minimum_wait_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FindFullHashesResponse.minimum_wait_duration)
}

// optional .mozilla.safebrowsing.Duration negative_cache_duration = 3;
inline bool FindFullHashesResponse::has_negative_cache_duration() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.negative_cache_duration_ != nullptr);
  return value;
}
inline void FindFullHashesResponse::clear_negative_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.negative_cache_duration_ != nullptr) _impl_.negative_cache_duration_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::mozilla::safebrowsing::Duration& FindFullHashesResponse::_internal_negative_cache_duration() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::Duration* p = _impl_.negative_cache_duration_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::Duration>(&::mozilla::safebrowsing::Duration_globals_);
}
inline const ::mozilla::safebrowsing::Duration& FindFullHashesResponse::negative_cache_duration() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.FindFullHashesResponse.negative_cache_duration)
  return _internal_negative_cache_duration();
}
inline void FindFullHashesResponse::unsafe_arena_set_allocated_negative_cache_duration(
    ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.negative_cache_duration_);
  }
  _impl_.negative_cache_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.FindFullHashesResponse.negative_cache_duration)
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE FindFullHashesResponse::release_negative_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::Duration* released = _impl_.negative_cache_duration_;
  _impl_.negative_cache_duration_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE FindFullHashesResponse::unsafe_arena_release_negative_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.FindFullHashesResponse.negative_cache_duration)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::Duration* temp = _impl_.negative_cache_duration_;
  _impl_.negative_cache_duration_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL FindFullHashesResponse::_internal_mutable_negative_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.negative_cache_duration_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::Duration>(GetArena());
    _impl_.negative_cache_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(p);
  }
  return _impl_.negative_cache_duration_;
}
inline ::mozilla::safebrowsing::Duration* PROTOBUF_NONNULL FindFullHashesResponse::mutable_negative_cache_duration()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::Duration* _msg = _internal_mutable_negative_cache_duration();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.FindFullHashesResponse.negative_cache_duration)
  return _msg;
}
inline void FindFullHashesResponse::set_allocated_negative_cache_duration(::mozilla::safebrowsing::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.negative_cache_duration_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.negative_cache_duration_ = reinterpret_cast<::mozilla::safebrowsing::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.FindFullHashesResponse.negative_cache_duration)
}

// -------------------------------------------------------------------

// ThreatHit_ThreatSource

// optional string url = 1;
inline bool ThreatHit_ThreatSource::has_url() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ThreatHit_ThreatSource::clear_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ThreatHit_ThreatSource::url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.ThreatSource.url)
  return _internal_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ThreatHit_ThreatSource::set_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatHit.ThreatSource.url)
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_ThreatSource::mutable_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_url();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatHit.ThreatSource.url)
  return _s;
}
inline const ::std::string& ThreatHit_ThreatSource::_internal_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.url_.Get();
}
inline void ThreatHit_ThreatSource::_internal_set_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_ThreatSource::_internal_mutable_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ThreatHit_ThreatSource::release_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatHit.ThreatSource.url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.url_.Set("", GetArena());
  }
  return released;
}
inline void ThreatHit_ThreatSource::set_allocated_url(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.url_.IsDefault()) {
    _impl_.url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatHit.ThreatSource.url)
}

// optional .mozilla.safebrowsing.ThreatHit.ThreatSourceType type = 2;
inline bool ThreatHit_ThreatSource::has_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void ThreatHit_ThreatSource::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::mozilla::safebrowsing::ThreatHit_ThreatSourceType ThreatHit_ThreatSource::type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.ThreatSource.type)
  return _internal_type();
}
inline void ThreatHit_ThreatSource::set_type(::mozilla::safebrowsing::ThreatHit_ThreatSourceType value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatHit.ThreatSource.type)
}
inline ::mozilla::safebrowsing::ThreatHit_ThreatSourceType ThreatHit_ThreatSource::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatHit_ThreatSourceType>(_impl_.type_);
}
inline void ThreatHit_ThreatSource::_internal_set_type(::mozilla::safebrowsing::ThreatHit_ThreatSourceType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatHit_ThreatSourceType_internal_data_));
                                          _impl_.type_ = value;
}

// optional string remote_ip = 3;
inline bool ThreatHit_ThreatSource::has_remote_ip() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ThreatHit_ThreatSource::clear_remote_ip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_ip_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ThreatHit_ThreatSource::remote_ip() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.ThreatSource.remote_ip)
  return _internal_remote_ip();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ThreatHit_ThreatSource::set_remote_ip(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.remote_ip_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatHit.ThreatSource.remote_ip)
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_ThreatSource::mutable_remote_ip()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_remote_ip();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatHit.ThreatSource.remote_ip)
  return _s;
}
inline const ::std::string& ThreatHit_ThreatSource::_internal_remote_ip() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.remote_ip_.Get();
}
inline void ThreatHit_ThreatSource::_internal_set_remote_ip(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_ip_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_ThreatSource::_internal_mutable_remote_ip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.remote_ip_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ThreatHit_ThreatSource::release_remote_ip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatHit.ThreatSource.remote_ip)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.remote_ip_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.remote_ip_.Set("", GetArena());
  }
  return released;
}
inline void ThreatHit_ThreatSource::set_allocated_remote_ip(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.remote_ip_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.remote_ip_.IsDefault()) {
    _impl_.remote_ip_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatHit.ThreatSource.remote_ip)
}

// optional string referrer = 4;
inline bool ThreatHit_ThreatSource::has_referrer() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void ThreatHit_ThreatSource::clear_referrer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.referrer_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& ThreatHit_ThreatSource::referrer() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.ThreatSource.referrer)
  return _internal_referrer();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ThreatHit_ThreatSource::set_referrer(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.referrer_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatHit.ThreatSource.referrer)
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_ThreatSource::mutable_referrer()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_referrer();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatHit.ThreatSource.referrer)
  return _s;
}
inline const ::std::string& ThreatHit_ThreatSource::_internal_referrer() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.referrer_.Get();
}
inline void ThreatHit_ThreatSource::_internal_set_referrer(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.referrer_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_ThreatSource::_internal_mutable_referrer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.referrer_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ThreatHit_ThreatSource::release_referrer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatHit.ThreatSource.referrer)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.referrer_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.referrer_.Set("", GetArena());
  }
  return released;
}
inline void ThreatHit_ThreatSource::set_allocated_referrer(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.referrer_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.referrer_.IsDefault()) {
    _impl_.referrer_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatHit.ThreatSource.referrer)
}

// -------------------------------------------------------------------

// ThreatHit_UserInfo

// optional string region_code = 1;
inline bool ThreatHit_UserInfo::has_region_code() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ThreatHit_UserInfo::clear_region_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.region_code_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ThreatHit_UserInfo::region_code() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.UserInfo.region_code)
  return _internal_region_code();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ThreatHit_UserInfo::set_region_code(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.region_code_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatHit.UserInfo.region_code)
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_UserInfo::mutable_region_code()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_region_code();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatHit.UserInfo.region_code)
  return _s;
}
inline const ::std::string& ThreatHit_UserInfo::_internal_region_code() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.region_code_.Get();
}
inline void ThreatHit_UserInfo::_internal_set_region_code(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.region_code_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_UserInfo::_internal_mutable_region_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.region_code_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ThreatHit_UserInfo::release_region_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatHit.UserInfo.region_code)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.region_code_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.region_code_.Set("", GetArena());
  }
  return released;
}
inline void ThreatHit_UserInfo::set_allocated_region_code(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.region_code_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.region_code_.IsDefault()) {
    _impl_.region_code_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatHit.UserInfo.region_code)
}

// optional bytes user_id = 2;
inline bool ThreatHit_UserInfo::has_user_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ThreatHit_UserInfo::clear_user_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.user_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ThreatHit_UserInfo::user_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.UserInfo.user_id)
  return _internal_user_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ThreatHit_UserInfo::set_user_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.user_id_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatHit.UserInfo.user_id)
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_UserInfo::mutable_user_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_user_id();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatHit.UserInfo.user_id)
  return _s;
}
inline const ::std::string& ThreatHit_UserInfo::_internal_user_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.user_id_.Get();
}
inline void ThreatHit_UserInfo::_internal_set_user_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.user_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ThreatHit_UserInfo::_internal_mutable_user_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.user_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ThreatHit_UserInfo::release_user_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatHit.UserInfo.user_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.user_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.user_id_.Set("", GetArena());
  }
  return released;
}
inline void ThreatHit_UserInfo::set_allocated_user_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.user_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.user_id_.IsDefault()) {
    _impl_.user_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatHit.UserInfo.user_id)
}

// -------------------------------------------------------------------

// ThreatHit

// optional .mozilla.safebrowsing.ThreatType threat_type = 1;
inline bool ThreatHit::has_threat_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void ThreatHit::clear_threat_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::mozilla::safebrowsing::ThreatType ThreatHit::threat_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.threat_type)
  return _internal_threat_type();
}
inline void ThreatHit::set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  _internal_set_threat_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatHit.threat_type)
}
inline ::mozilla::safebrowsing::ThreatType ThreatHit::_internal_threat_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatType>(_impl_.threat_type_);
}
inline void ThreatHit::_internal_set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatType_internal_data_));
                                          _impl_.threat_type_ = value;
}

// optional .mozilla.safebrowsing.PlatformType platform_type = 2;
inline bool ThreatHit::has_platform_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void ThreatHit::clear_platform_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.platform_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::mozilla::safebrowsing::PlatformType ThreatHit::platform_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.platform_type)
  return _internal_platform_type();
}
inline void ThreatHit::set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  _internal_set_platform_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatHit.platform_type)
}
inline ::mozilla::safebrowsing::PlatformType ThreatHit::_internal_platform_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::PlatformType>(_impl_.platform_type_);
}
inline void ThreatHit::_internal_set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::PlatformType_internal_data_));
                                          _impl_.platform_type_ = value;
}

// optional .mozilla.safebrowsing.ThreatEntry entry = 3;
inline bool ThreatHit::has_entry() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.entry_ != nullptr);
  return value;
}
inline void ThreatHit::clear_entry() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.entry_ != nullptr) _impl_.entry_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::ThreatEntry& ThreatHit::_internal_entry() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ThreatEntry* p = _impl_.entry_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ThreatEntry>(&::mozilla::safebrowsing::ThreatEntry_globals_);
}
inline const ::mozilla::safebrowsing::ThreatEntry& ThreatHit::entry() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.entry)
  return _internal_entry();
}
inline void ThreatHit::unsafe_arena_set_allocated_entry(
    ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.entry_);
  }
  _impl_.entry_ = reinterpret_cast<::mozilla::safebrowsing::ThreatEntry*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatHit.entry)
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE ThreatHit::release_entry() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ThreatEntry* released = _impl_.entry_;
  _impl_.entry_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE ThreatHit::unsafe_arena_release_entry() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatHit.entry)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ThreatEntry* temp = _impl_.entry_;
  _impl_.entry_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL ThreatHit::_internal_mutable_entry() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.entry_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ThreatEntry>(GetArena());
    _impl_.entry_ = reinterpret_cast<::mozilla::safebrowsing::ThreatEntry*>(p);
  }
  return _impl_.entry_;
}
inline ::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NONNULL ThreatHit::mutable_entry()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::ThreatEntry* _msg = _internal_mutable_entry();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatHit.entry)
  return _msg;
}
inline void ThreatHit::set_allocated_entry(::mozilla::safebrowsing::ThreatEntry* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.entry_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.entry_ = reinterpret_cast<::mozilla::safebrowsing::ThreatEntry*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatHit.entry)
}

// repeated .mozilla.safebrowsing.ThreatHit.ThreatSource resources = 4;
inline int ThreatHit::_internal_resources_size() const {
  return _internal_resources().size();
}
inline int ThreatHit::resources_size() const {
  return _internal_resources_size();
}
inline void ThreatHit::clear_resources() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.resources_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::ThreatHit_ThreatSource& ThreatHit::resources(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.resources)
  return _internal_resources().Get(index);
}
inline ::mozilla::safebrowsing::ThreatHit_ThreatSource* PROTOBUF_NONNULL ThreatHit::mutable_resources(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatHit.resources)
  return _internal_mutable_resources()->Mutable(index);
}
inline ::mozilla::safebrowsing::ThreatHit_ThreatSource* PROTOBUF_NONNULL ThreatHit::add_resources()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::ThreatHit_ThreatSource* _add =
      _internal_mutable_resources()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.ThreatHit.resources)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatHit_ThreatSource>& ThreatHit::resources() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.ThreatHit.resources)
  return _internal_resources();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatHit_ThreatSource>* PROTOBUF_NONNULL
ThreatHit::mutable_resources() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.ThreatHit.resources)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_resources();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatHit_ThreatSource>&
ThreatHit::_internal_resources() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.resources_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatHit_ThreatSource>* PROTOBUF_NONNULL
ThreatHit::_internal_mutable_resources() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.resources_;
}

// optional .mozilla.safebrowsing.ClientInfo client_info = 5;
inline bool ThreatHit::has_client_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.client_info_ != nullptr);
  return value;
}
inline void ThreatHit::clear_client_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_info_ != nullptr) _impl_.client_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::mozilla::safebrowsing::ClientInfo& ThreatHit::_internal_client_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ClientInfo* p = _impl_.client_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ClientInfo>(&::mozilla::safebrowsing::ClientInfo_globals_);
}
inline const ::mozilla::safebrowsing::ClientInfo& ThreatHit::client_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.client_info)
  return _internal_client_info();
}
inline void ThreatHit::unsafe_arena_set_allocated_client_info(
    ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_info_);
  }
  _impl_.client_info_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatHit.client_info)
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE ThreatHit::release_client_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::ClientInfo* released = _impl_.client_info_;
  _impl_.client_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE ThreatHit::unsafe_arena_release_client_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatHit.client_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::ClientInfo* temp = _impl_.client_info_;
  _impl_.client_info_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL ThreatHit::_internal_mutable_client_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ClientInfo>(GetArena());
    _impl_.client_info_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(p);
  }
  return _impl_.client_info_;
}
inline ::mozilla::safebrowsing::ClientInfo* PROTOBUF_NONNULL ThreatHit::mutable_client_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::ClientInfo* _msg = _internal_mutable_client_info();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatHit.client_info)
  return _msg;
}
inline void ThreatHit::set_allocated_client_info(::mozilla::safebrowsing::ClientInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.client_info_ = reinterpret_cast<::mozilla::safebrowsing::ClientInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatHit.client_info)
}

// optional .mozilla.safebrowsing.ThreatHit.UserInfo user_info = 6;
inline bool ThreatHit::has_user_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.user_info_ != nullptr);
  return value;
}
inline void ThreatHit::clear_user_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.user_info_ != nullptr) _impl_.user_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::mozilla::safebrowsing::ThreatHit_UserInfo& ThreatHit::_internal_user_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::ThreatHit_UserInfo* p = _impl_.user_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::ThreatHit_UserInfo>(&::mozilla::safebrowsing::ThreatHit_UserInfo_globals_);
}
inline const ::mozilla::safebrowsing::ThreatHit_UserInfo& ThreatHit::user_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatHit.user_info)
  return _internal_user_info();
}
inline void ThreatHit::unsafe_arena_set_allocated_user_info(
    ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.user_info_);
  }
  _impl_.user_info_ = reinterpret_cast<::mozilla::safebrowsing::ThreatHit_UserInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatHit.user_info)
}
inline ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NULLABLE ThreatHit::release_user_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::mozilla::safebrowsing::ThreatHit_UserInfo* released = _impl_.user_info_;
  _impl_.user_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NULLABLE ThreatHit::unsafe_arena_release_user_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatHit.user_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::mozilla::safebrowsing::ThreatHit_UserInfo* temp = _impl_.user_info_;
  _impl_.user_info_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NONNULL ThreatHit::_internal_mutable_user_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.user_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::ThreatHit_UserInfo>(GetArena());
    _impl_.user_info_ = reinterpret_cast<::mozilla::safebrowsing::ThreatHit_UserInfo*>(p);
  }
  return _impl_.user_info_;
}
inline ::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NONNULL ThreatHit::mutable_user_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::mozilla::safebrowsing::ThreatHit_UserInfo* _msg = _internal_mutable_user_info();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatHit.user_info)
  return _msg;
}
inline void ThreatHit::set_allocated_user_info(::mozilla::safebrowsing::ThreatHit_UserInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.user_info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.user_info_ = reinterpret_cast<::mozilla::safebrowsing::ThreatHit_UserInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatHit.user_info)
}

// -------------------------------------------------------------------

// ClientInfo

// optional string client_id = 1;
inline bool ClientInfo::has_client_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ClientInfo::clear_client_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ClientInfo::client_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ClientInfo.client_id)
  return _internal_client_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ClientInfo::set_client_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.client_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ClientInfo.client_id)
}
inline ::std::string* PROTOBUF_NONNULL ClientInfo::mutable_client_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_client_id();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ClientInfo.client_id)
  return _s;
}
inline const ::std::string& ClientInfo::_internal_client_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.client_id_.Get();
}
inline void ClientInfo::_internal_set_client_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ClientInfo::_internal_mutable_client_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.client_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ClientInfo::release_client_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ClientInfo.client_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.client_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.client_id_.Set("", GetArena());
  }
  return released;
}
inline void ClientInfo::set_allocated_client_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.client_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.client_id_.IsDefault()) {
    _impl_.client_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ClientInfo.client_id)
}

// optional string client_version = 2;
inline bool ClientInfo::has_client_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ClientInfo::clear_client_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_version_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ClientInfo::client_version() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ClientInfo.client_version)
  return _internal_client_version();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ClientInfo::set_client_version(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.client_version_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ClientInfo.client_version)
}
inline ::std::string* PROTOBUF_NONNULL ClientInfo::mutable_client_version()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_client_version();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ClientInfo.client_version)
  return _s;
}
inline const ::std::string& ClientInfo::_internal_client_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.client_version_.Get();
}
inline void ClientInfo::_internal_set_client_version(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_version_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ClientInfo::_internal_mutable_client_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.client_version_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ClientInfo::release_client_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ClientInfo.client_version)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.client_version_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.client_version_.Set("", GetArena());
  }
  return released;
}
inline void ClientInfo::set_allocated_client_version(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.client_version_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.client_version_.IsDefault()) {
    _impl_.client_version_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ClientInfo.client_version)
}

// -------------------------------------------------------------------

// ChromeClientInfo

// optional .mozilla.safebrowsing.ChromeClientInfo.SafeBrowsingReportingPopulation reporting_population = 1;
inline bool ChromeClientInfo::has_reporting_population() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ChromeClientInfo::clear_reporting_population() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.reporting_population_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation ChromeClientInfo::reporting_population() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ChromeClientInfo.reporting_population)
  return _internal_reporting_population();
}
inline void ChromeClientInfo::set_reporting_population(::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation value) {
  _internal_set_reporting_population(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ChromeClientInfo.reporting_population)
}
inline ::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation ChromeClientInfo::_internal_reporting_population() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation>(_impl_.reporting_population_);
}
inline void ChromeClientInfo::_internal_set_reporting_population(::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation_internal_data_));
                                          _impl_.reporting_population_ = value;
}

// -------------------------------------------------------------------

// Checksum

// optional bytes sha256 = 1;
inline bool Checksum::has_sha256() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void Checksum::clear_sha256() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sha256_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Checksum::sha256() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.Checksum.sha256)
  return _internal_sha256();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Checksum::set_sha256(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.sha256_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.Checksum.sha256)
}
inline ::std::string* PROTOBUF_NONNULL Checksum::mutable_sha256()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_sha256();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.Checksum.sha256)
  return _s;
}
inline const ::std::string& Checksum::_internal_sha256() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sha256_.Get();
}
inline void Checksum::_internal_set_sha256(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sha256_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Checksum::_internal_mutable_sha256() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.sha256_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Checksum::release_sha256() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.Checksum.sha256)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.sha256_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.sha256_.Set("", GetArena());
  }
  return released;
}
inline void Checksum::set_allocated_sha256(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.sha256_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.sha256_.IsDefault()) {
    _impl_.sha256_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.Checksum.sha256)
}

// -------------------------------------------------------------------

// ThreatEntry

// optional bytes hash = 1;
inline bool ThreatEntry::has_hash() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ThreatEntry::clear_hash() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hash_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ThreatEntry::hash() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntry.hash)
  return _internal_hash();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ThreatEntry::set_hash(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.hash_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatEntry.hash)
}
inline ::std::string* PROTOBUF_NONNULL ThreatEntry::mutable_hash()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_hash();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatEntry.hash)
  return _s;
}
inline const ::std::string& ThreatEntry::_internal_hash() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.hash_.Get();
}
inline void ThreatEntry::_internal_set_hash(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hash_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ThreatEntry::_internal_mutable_hash() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.hash_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ThreatEntry::release_hash() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatEntry.hash)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.hash_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.hash_.Set("", GetArena());
  }
  return released;
}
inline void ThreatEntry::set_allocated_hash(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.hash_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.hash_.IsDefault()) {
    _impl_.hash_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatEntry.hash)
}

// optional string url = 2;
inline bool ThreatEntry::has_url() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ThreatEntry::clear_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ThreatEntry::url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntry.url)
  return _internal_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ThreatEntry::set_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatEntry.url)
}
inline ::std::string* PROTOBUF_NONNULL ThreatEntry::mutable_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_url();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatEntry.url)
  return _s;
}
inline const ::std::string& ThreatEntry::_internal_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.url_.Get();
}
inline void ThreatEntry::_internal_set_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ThreatEntry::_internal_mutable_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ThreatEntry::release_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatEntry.url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.url_.Set("", GetArena());
  }
  return released;
}
inline void ThreatEntry::set_allocated_url(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.url_.IsDefault()) {
    _impl_.url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatEntry.url)
}

// -------------------------------------------------------------------

// ThreatEntrySet

// optional .mozilla.safebrowsing.CompressionType compression_type = 1;
inline bool ThreatEntrySet::has_compression_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void ThreatEntrySet::clear_compression_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.compression_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::mozilla::safebrowsing::CompressionType ThreatEntrySet::compression_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntrySet.compression_type)
  return _internal_compression_type();
}
inline void ThreatEntrySet::set_compression_type(::mozilla::safebrowsing::CompressionType value) {
  _internal_set_compression_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatEntrySet.compression_type)
}
inline ::mozilla::safebrowsing::CompressionType ThreatEntrySet::_internal_compression_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::CompressionType>(_impl_.compression_type_);
}
inline void ThreatEntrySet::_internal_set_compression_type(::mozilla::safebrowsing::CompressionType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::CompressionType_internal_data_));
                                          _impl_.compression_type_ = value;
}

// optional .mozilla.safebrowsing.RawHashes raw_hashes = 2;
inline bool ThreatEntrySet::has_raw_hashes() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.raw_hashes_ != nullptr);
  return value;
}
inline void ThreatEntrySet::clear_raw_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.raw_hashes_ != nullptr) _impl_.raw_hashes_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::RawHashes& ThreatEntrySet::_internal_raw_hashes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::RawHashes* p = _impl_.raw_hashes_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::RawHashes>(&::mozilla::safebrowsing::RawHashes_globals_);
}
inline const ::mozilla::safebrowsing::RawHashes& ThreatEntrySet::raw_hashes() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntrySet.raw_hashes)
  return _internal_raw_hashes();
}
inline void ThreatEntrySet::unsafe_arena_set_allocated_raw_hashes(
    ::mozilla::safebrowsing::RawHashes* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.raw_hashes_);
  }
  _impl_.raw_hashes_ = reinterpret_cast<::mozilla::safebrowsing::RawHashes*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatEntrySet.raw_hashes)
}
inline ::mozilla::safebrowsing::RawHashes* PROTOBUF_NULLABLE ThreatEntrySet::release_raw_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mozilla::safebrowsing::RawHashes* released = _impl_.raw_hashes_;
  _impl_.raw_hashes_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::RawHashes* PROTOBUF_NULLABLE ThreatEntrySet::unsafe_arena_release_raw_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatEntrySet.raw_hashes)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mozilla::safebrowsing::RawHashes* temp = _impl_.raw_hashes_;
  _impl_.raw_hashes_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::RawHashes* PROTOBUF_NONNULL ThreatEntrySet::_internal_mutable_raw_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.raw_hashes_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::RawHashes>(GetArena());
    _impl_.raw_hashes_ = reinterpret_cast<::mozilla::safebrowsing::RawHashes*>(p);
  }
  return _impl_.raw_hashes_;
}
inline ::mozilla::safebrowsing::RawHashes* PROTOBUF_NONNULL ThreatEntrySet::mutable_raw_hashes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mozilla::safebrowsing::RawHashes* _msg = _internal_mutable_raw_hashes();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatEntrySet.raw_hashes)
  return _msg;
}
inline void ThreatEntrySet::set_allocated_raw_hashes(::mozilla::safebrowsing::RawHashes* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.raw_hashes_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.raw_hashes_ = reinterpret_cast<::mozilla::safebrowsing::RawHashes*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatEntrySet.raw_hashes)
}

// optional .mozilla.safebrowsing.RawIndices raw_indices = 3;
inline bool ThreatEntrySet::has_raw_indices() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.raw_indices_ != nullptr);
  return value;
}
inline void ThreatEntrySet::clear_raw_indices() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.raw_indices_ != nullptr) _impl_.raw_indices_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::mozilla::safebrowsing::RawIndices& ThreatEntrySet::_internal_raw_indices() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::RawIndices* p = _impl_.raw_indices_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::RawIndices>(&::mozilla::safebrowsing::RawIndices_globals_);
}
inline const ::mozilla::safebrowsing::RawIndices& ThreatEntrySet::raw_indices() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntrySet.raw_indices)
  return _internal_raw_indices();
}
inline void ThreatEntrySet::unsafe_arena_set_allocated_raw_indices(
    ::mozilla::safebrowsing::RawIndices* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.raw_indices_);
  }
  _impl_.raw_indices_ = reinterpret_cast<::mozilla::safebrowsing::RawIndices*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatEntrySet.raw_indices)
}
inline ::mozilla::safebrowsing::RawIndices* PROTOBUF_NULLABLE ThreatEntrySet::release_raw_indices() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::RawIndices* released = _impl_.raw_indices_;
  _impl_.raw_indices_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::RawIndices* PROTOBUF_NULLABLE ThreatEntrySet::unsafe_arena_release_raw_indices() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatEntrySet.raw_indices)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::RawIndices* temp = _impl_.raw_indices_;
  _impl_.raw_indices_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::RawIndices* PROTOBUF_NONNULL ThreatEntrySet::_internal_mutable_raw_indices() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.raw_indices_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::RawIndices>(GetArena());
    _impl_.raw_indices_ = reinterpret_cast<::mozilla::safebrowsing::RawIndices*>(p);
  }
  return _impl_.raw_indices_;
}
inline ::mozilla::safebrowsing::RawIndices* PROTOBUF_NONNULL ThreatEntrySet::mutable_raw_indices()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mozilla::safebrowsing::RawIndices* _msg = _internal_mutable_raw_indices();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatEntrySet.raw_indices)
  return _msg;
}
inline void ThreatEntrySet::set_allocated_raw_indices(::mozilla::safebrowsing::RawIndices* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.raw_indices_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.raw_indices_ = reinterpret_cast<::mozilla::safebrowsing::RawIndices*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatEntrySet.raw_indices)
}

// optional .mozilla.safebrowsing.RiceDeltaEncoding rice_hashes = 4;
inline bool ThreatEntrySet::has_rice_hashes() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.rice_hashes_ != nullptr);
  return value;
}
inline void ThreatEntrySet::clear_rice_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rice_hashes_ != nullptr) _impl_.rice_hashes_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::mozilla::safebrowsing::RiceDeltaEncoding& ThreatEntrySet::_internal_rice_hashes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::RiceDeltaEncoding* p = _impl_.rice_hashes_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::RiceDeltaEncoding>(&::mozilla::safebrowsing::RiceDeltaEncoding_globals_);
}
inline const ::mozilla::safebrowsing::RiceDeltaEncoding& ThreatEntrySet::rice_hashes() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntrySet.rice_hashes)
  return _internal_rice_hashes();
}
inline void ThreatEntrySet::unsafe_arena_set_allocated_rice_hashes(
    ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.rice_hashes_);
  }
  _impl_.rice_hashes_ = reinterpret_cast<::mozilla::safebrowsing::RiceDeltaEncoding*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatEntrySet.rice_hashes)
}
inline ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE ThreatEntrySet::release_rice_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::RiceDeltaEncoding* released = _impl_.rice_hashes_;
  _impl_.rice_hashes_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE ThreatEntrySet::unsafe_arena_release_rice_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatEntrySet.rice_hashes)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::RiceDeltaEncoding* temp = _impl_.rice_hashes_;
  _impl_.rice_hashes_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NONNULL ThreatEntrySet::_internal_mutable_rice_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rice_hashes_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::RiceDeltaEncoding>(GetArena());
    _impl_.rice_hashes_ = reinterpret_cast<::mozilla::safebrowsing::RiceDeltaEncoding*>(p);
  }
  return _impl_.rice_hashes_;
}
inline ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NONNULL ThreatEntrySet::mutable_rice_hashes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::mozilla::safebrowsing::RiceDeltaEncoding* _msg = _internal_mutable_rice_hashes();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatEntrySet.rice_hashes)
  return _msg;
}
inline void ThreatEntrySet::set_allocated_rice_hashes(::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.rice_hashes_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.rice_hashes_ = reinterpret_cast<::mozilla::safebrowsing::RiceDeltaEncoding*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatEntrySet.rice_hashes)
}

// optional .mozilla.safebrowsing.RiceDeltaEncoding rice_indices = 5;
inline bool ThreatEntrySet::has_rice_indices() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.rice_indices_ != nullptr);
  return value;
}
inline void ThreatEntrySet::clear_rice_indices() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rice_indices_ != nullptr) _impl_.rice_indices_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::mozilla::safebrowsing::RiceDeltaEncoding& ThreatEntrySet::_internal_rice_indices() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mozilla::safebrowsing::RiceDeltaEncoding* p = _impl_.rice_indices_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::mozilla::safebrowsing::RiceDeltaEncoding>(&::mozilla::safebrowsing::RiceDeltaEncoding_globals_);
}
inline const ::mozilla::safebrowsing::RiceDeltaEncoding& ThreatEntrySet::rice_indices() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntrySet.rice_indices)
  return _internal_rice_indices();
}
inline void ThreatEntrySet::unsafe_arena_set_allocated_rice_indices(
    ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.rice_indices_);
  }
  _impl_.rice_indices_ = reinterpret_cast<::mozilla::safebrowsing::RiceDeltaEncoding*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mozilla.safebrowsing.ThreatEntrySet.rice_indices)
}
inline ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE ThreatEntrySet::release_rice_indices() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::mozilla::safebrowsing::RiceDeltaEncoding* released = _impl_.rice_indices_;
  _impl_.rice_indices_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE ThreatEntrySet::unsafe_arena_release_rice_indices() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatEntrySet.rice_indices)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::mozilla::safebrowsing::RiceDeltaEncoding* temp = _impl_.rice_indices_;
  _impl_.rice_indices_ = nullptr;
  return temp;
}
inline ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NONNULL ThreatEntrySet::_internal_mutable_rice_indices() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rice_indices_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::mozilla::safebrowsing::RiceDeltaEncoding>(GetArena());
    _impl_.rice_indices_ = reinterpret_cast<::mozilla::safebrowsing::RiceDeltaEncoding*>(p);
  }
  return _impl_.rice_indices_;
}
inline ::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NONNULL ThreatEntrySet::mutable_rice_indices()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::mozilla::safebrowsing::RiceDeltaEncoding* _msg = _internal_mutable_rice_indices();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatEntrySet.rice_indices)
  return _msg;
}
inline void ThreatEntrySet::set_allocated_rice_indices(::mozilla::safebrowsing::RiceDeltaEncoding* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.rice_indices_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.rice_indices_ = reinterpret_cast<::mozilla::safebrowsing::RiceDeltaEncoding*>(value);
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatEntrySet.rice_indices)
}

// -------------------------------------------------------------------

// RawIndices

// repeated int32 indices = 1;
inline int RawIndices::_internal_indices_size() const {
  return _internal_indices().size();
}
inline int RawIndices::indices_size() const {
  return _internal_indices_size();
}
inline void RawIndices::clear_indices() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.indices_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int32_t RawIndices::indices(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.RawIndices.indices)
  return _internal_indices().Get(index);
}
inline void RawIndices::set_indices(int index, ::int32_t value) {
  _internal_mutable_indices()->Set(index, value);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.RawIndices.indices)
}
inline void RawIndices::add_indices(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_indices()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.RawIndices.indices)
}
inline const ::google::protobuf::RepeatedField<::int32_t>& RawIndices::indices() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.RawIndices.indices)
  return _internal_indices();
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL RawIndices::mutable_indices()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.RawIndices.indices)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_indices();
}
inline const ::google::protobuf::RepeatedField<::int32_t>&
RawIndices::_internal_indices() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.indices_;
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL
RawIndices::_internal_mutable_indices() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.indices_;
}

// -------------------------------------------------------------------

// RawHashes

// optional int32 prefix_size = 1;
inline bool RawHashes::has_prefix_size() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void RawHashes::clear_prefix_size() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_size_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int32_t RawHashes::prefix_size() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.RawHashes.prefix_size)
  return _internal_prefix_size();
}
inline void RawHashes::set_prefix_size(::int32_t value) {
  _internal_set_prefix_size(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.RawHashes.prefix_size)
}
inline ::int32_t RawHashes::_internal_prefix_size() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefix_size_;
}
inline void RawHashes::_internal_set_prefix_size(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_size_ = value;
}

// optional bytes raw_hashes = 2;
inline bool RawHashes::has_raw_hashes() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void RawHashes::clear_raw_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.raw_hashes_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& RawHashes::raw_hashes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.RawHashes.raw_hashes)
  return _internal_raw_hashes();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void RawHashes::set_raw_hashes(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.raw_hashes_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.RawHashes.raw_hashes)
}
inline ::std::string* PROTOBUF_NONNULL RawHashes::mutable_raw_hashes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_raw_hashes();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.RawHashes.raw_hashes)
  return _s;
}
inline const ::std::string& RawHashes::_internal_raw_hashes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.raw_hashes_.Get();
}
inline void RawHashes::_internal_set_raw_hashes(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.raw_hashes_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL RawHashes::_internal_mutable_raw_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.raw_hashes_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE RawHashes::release_raw_hashes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.RawHashes.raw_hashes)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.raw_hashes_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.raw_hashes_.Set("", GetArena());
  }
  return released;
}
inline void RawHashes::set_allocated_raw_hashes(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.raw_hashes_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.raw_hashes_.IsDefault()) {
    _impl_.raw_hashes_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.RawHashes.raw_hashes)
}

// -------------------------------------------------------------------

// RiceDeltaEncoding

// optional int64 first_value = 1;
inline bool RiceDeltaEncoding::has_first_value() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void RiceDeltaEncoding::clear_first_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.first_value_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int64_t RiceDeltaEncoding::first_value() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.RiceDeltaEncoding.first_value)
  return _internal_first_value();
}
inline void RiceDeltaEncoding::set_first_value(::int64_t value) {
  _internal_set_first_value(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.RiceDeltaEncoding.first_value)
}
inline ::int64_t RiceDeltaEncoding::_internal_first_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.first_value_;
}
inline void RiceDeltaEncoding::_internal_set_first_value(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.first_value_ = value;
}

// optional int32 rice_parameter = 2;
inline bool RiceDeltaEncoding::has_rice_parameter() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void RiceDeltaEncoding::clear_rice_parameter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rice_parameter_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t RiceDeltaEncoding::rice_parameter() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.RiceDeltaEncoding.rice_parameter)
  return _internal_rice_parameter();
}
inline void RiceDeltaEncoding::set_rice_parameter(::int32_t value) {
  _internal_set_rice_parameter(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.RiceDeltaEncoding.rice_parameter)
}
inline ::int32_t RiceDeltaEncoding::_internal_rice_parameter() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.rice_parameter_;
}
inline void RiceDeltaEncoding::_internal_set_rice_parameter(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rice_parameter_ = value;
}

// optional int32 num_entries = 3;
inline bool RiceDeltaEncoding::has_num_entries() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void RiceDeltaEncoding::clear_num_entries() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_entries_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::int32_t RiceDeltaEncoding::num_entries() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.RiceDeltaEncoding.num_entries)
  return _internal_num_entries();
}
inline void RiceDeltaEncoding::set_num_entries(::int32_t value) {
  _internal_set_num_entries(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.RiceDeltaEncoding.num_entries)
}
inline ::int32_t RiceDeltaEncoding::_internal_num_entries() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.num_entries_;
}
inline void RiceDeltaEncoding::_internal_set_num_entries(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_entries_ = value;
}

// optional bytes encoded_data = 4;
inline bool RiceDeltaEncoding::has_encoded_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void RiceDeltaEncoding::clear_encoded_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encoded_data_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& RiceDeltaEncoding::encoded_data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.RiceDeltaEncoding.encoded_data)
  return _internal_encoded_data();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void RiceDeltaEncoding::set_encoded_data(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.encoded_data_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.RiceDeltaEncoding.encoded_data)
}
inline ::std::string* PROTOBUF_NONNULL RiceDeltaEncoding::mutable_encoded_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_encoded_data();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.RiceDeltaEncoding.encoded_data)
  return _s;
}
inline const ::std::string& RiceDeltaEncoding::_internal_encoded_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encoded_data_.Get();
}
inline void RiceDeltaEncoding::_internal_set_encoded_data(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encoded_data_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL RiceDeltaEncoding::_internal_mutable_encoded_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.encoded_data_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE RiceDeltaEncoding::release_encoded_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.RiceDeltaEncoding.encoded_data)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.encoded_data_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.encoded_data_.Set("", GetArena());
  }
  return released;
}
inline void RiceDeltaEncoding::set_allocated_encoded_data(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.encoded_data_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.encoded_data_.IsDefault()) {
    _impl_.encoded_data_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.RiceDeltaEncoding.encoded_data)
}

// -------------------------------------------------------------------

// ThreatEntryMetadata_MetadataEntry

// optional bytes key = 1;
inline bool ThreatEntryMetadata_MetadataEntry::has_key() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ThreatEntryMetadata_MetadataEntry::clear_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ThreatEntryMetadata_MetadataEntry::key() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.key)
  return _internal_key();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ThreatEntryMetadata_MetadataEntry::set_key(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.key_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.key)
}
inline ::std::string* PROTOBUF_NONNULL ThreatEntryMetadata_MetadataEntry::mutable_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_key();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.key)
  return _s;
}
inline const ::std::string& ThreatEntryMetadata_MetadataEntry::_internal_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.key_.Get();
}
inline void ThreatEntryMetadata_MetadataEntry::_internal_set_key(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ThreatEntryMetadata_MetadataEntry::_internal_mutable_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.key_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ThreatEntryMetadata_MetadataEntry::release_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.key)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.key_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.key_.Set("", GetArena());
  }
  return released;
}
inline void ThreatEntryMetadata_MetadataEntry::set_allocated_key(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.key_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.key_.IsDefault()) {
    _impl_.key_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.key)
}

// optional bytes value = 2;
inline bool ThreatEntryMetadata_MetadataEntry::has_value() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ThreatEntryMetadata_MetadataEntry::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ThreatEntryMetadata_MetadataEntry::value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.value)
  return _internal_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ThreatEntryMetadata_MetadataEntry::set_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.value_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.value)
}
inline ::std::string* PROTOBUF_NONNULL ThreatEntryMetadata_MetadataEntry::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.value)
  return _s;
}
inline const ::std::string& ThreatEntryMetadata_MetadataEntry::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_.Get();
}
inline void ThreatEntryMetadata_MetadataEntry::_internal_set_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ThreatEntryMetadata_MetadataEntry::_internal_mutable_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ThreatEntryMetadata_MetadataEntry::release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.value_.Set("", GetArena());
  }
  return released;
}
inline void ThreatEntryMetadata_MetadataEntry::set_allocated_value(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.value_.IsDefault()) {
    _impl_.value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry.value)
}

// -------------------------------------------------------------------

// ThreatEntryMetadata

// repeated .mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry entries = 1;
inline int ThreatEntryMetadata::_internal_entries_size() const {
  return _internal_entries().size();
}
inline int ThreatEntryMetadata::entries_size() const {
  return _internal_entries_size();
}
inline void ThreatEntryMetadata::clear_entries() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.entries_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry& ThreatEntryMetadata::entries(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatEntryMetadata.entries)
  return _internal_entries().Get(index);
}
inline ::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry* PROTOBUF_NONNULL ThreatEntryMetadata::mutable_entries(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ThreatEntryMetadata.entries)
  return _internal_mutable_entries()->Mutable(index);
}
inline ::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry* PROTOBUF_NONNULL ThreatEntryMetadata::add_entries()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry* _add =
      _internal_mutable_entries()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.ThreatEntryMetadata.entries)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>& ThreatEntryMetadata::entries() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.ThreatEntryMetadata.entries)
  return _internal_entries();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>* PROTOBUF_NONNULL
ThreatEntryMetadata::mutable_entries() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.ThreatEntryMetadata.entries)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_entries();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>&
ThreatEntryMetadata::_internal_entries() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.entries_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>* PROTOBUF_NONNULL
ThreatEntryMetadata::_internal_mutable_entries() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.entries_;
}

// -------------------------------------------------------------------

// ThreatListDescriptor

// optional .mozilla.safebrowsing.ThreatType threat_type = 1;
inline bool ThreatListDescriptor::has_threat_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ThreatListDescriptor::clear_threat_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::mozilla::safebrowsing::ThreatType ThreatListDescriptor::threat_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatListDescriptor.threat_type)
  return _internal_threat_type();
}
inline void ThreatListDescriptor::set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  _internal_set_threat_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatListDescriptor.threat_type)
}
inline ::mozilla::safebrowsing::ThreatType ThreatListDescriptor::_internal_threat_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatType>(_impl_.threat_type_);
}
inline void ThreatListDescriptor::_internal_set_threat_type(::mozilla::safebrowsing::ThreatType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatType_internal_data_));
                                          _impl_.threat_type_ = value;
}

// optional .mozilla.safebrowsing.PlatformType platform_type = 2;
inline bool ThreatListDescriptor::has_platform_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ThreatListDescriptor::clear_platform_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.platform_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::mozilla::safebrowsing::PlatformType ThreatListDescriptor::platform_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatListDescriptor.platform_type)
  return _internal_platform_type();
}
inline void ThreatListDescriptor::set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  _internal_set_platform_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatListDescriptor.platform_type)
}
inline ::mozilla::safebrowsing::PlatformType ThreatListDescriptor::_internal_platform_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::PlatformType>(_impl_.platform_type_);
}
inline void ThreatListDescriptor::_internal_set_platform_type(::mozilla::safebrowsing::PlatformType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::PlatformType_internal_data_));
                                          _impl_.platform_type_ = value;
}

// optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 3;
inline bool ThreatListDescriptor::has_threat_entry_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void ThreatListDescriptor::clear_threat_entry_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_entry_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::mozilla::safebrowsing::ThreatEntryType ThreatListDescriptor::threat_entry_type() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ThreatListDescriptor.threat_entry_type)
  return _internal_threat_entry_type();
}
inline void ThreatListDescriptor::set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value) {
  _internal_set_threat_entry_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.ThreatListDescriptor.threat_entry_type)
}
inline ::mozilla::safebrowsing::ThreatEntryType ThreatListDescriptor::_internal_threat_entry_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mozilla::safebrowsing::ThreatEntryType>(_impl_.threat_entry_type_);
}
inline void ThreatListDescriptor::_internal_set_threat_entry_type(::mozilla::safebrowsing::ThreatEntryType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::mozilla::safebrowsing::ThreatEntryType_internal_data_));
                                          _impl_.threat_entry_type_ = value;
}

// -------------------------------------------------------------------

// ListThreatListsResponse

// repeated .mozilla.safebrowsing.ThreatListDescriptor threat_lists = 1;
inline int ListThreatListsResponse::_internal_threat_lists_size() const {
  return _internal_threat_lists().size();
}
inline int ListThreatListsResponse::threat_lists_size() const {
  return _internal_threat_lists_size();
}
inline void ListThreatListsResponse::clear_threat_lists() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.threat_lists_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::mozilla::safebrowsing::ThreatListDescriptor& ListThreatListsResponse::threat_lists(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.ListThreatListsResponse.threat_lists)
  return _internal_threat_lists().Get(index);
}
inline ::mozilla::safebrowsing::ThreatListDescriptor* PROTOBUF_NONNULL ListThreatListsResponse::mutable_threat_lists(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mozilla.safebrowsing.ListThreatListsResponse.threat_lists)
  return _internal_mutable_threat_lists()->Mutable(index);
}
inline ::mozilla::safebrowsing::ThreatListDescriptor* PROTOBUF_NONNULL ListThreatListsResponse::add_threat_lists()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mozilla::safebrowsing::ThreatListDescriptor* _add =
      _internal_mutable_threat_lists()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mozilla.safebrowsing.ListThreatListsResponse.threat_lists)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatListDescriptor>& ListThreatListsResponse::threat_lists() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mozilla.safebrowsing.ListThreatListsResponse.threat_lists)
  return _internal_threat_lists();
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatListDescriptor>* PROTOBUF_NONNULL
ListThreatListsResponse::mutable_threat_lists() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mozilla.safebrowsing.ListThreatListsResponse.threat_lists)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_threat_lists();
}
inline const ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatListDescriptor>&
ListThreatListsResponse::_internal_threat_lists() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.threat_lists_;
}
inline ::google::protobuf::RepeatedPtrField<::mozilla::safebrowsing::ThreatListDescriptor>* PROTOBUF_NONNULL
ListThreatListsResponse::_internal_mutable_threat_lists() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.threat_lists_;
}

// -------------------------------------------------------------------

// Duration

// optional int64 seconds = 1;
inline bool Duration::has_seconds() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void Duration::clear_seconds() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.seconds_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int64_t Duration::seconds() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.Duration.seconds)
  return _internal_seconds();
}
inline void Duration::set_seconds(::int64_t value) {
  _internal_set_seconds(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.Duration.seconds)
}
inline ::int64_t Duration::_internal_seconds() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.seconds_;
}
inline void Duration::_internal_set_seconds(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.seconds_ = value;
}

// optional int32 nanos = 2;
inline bool Duration::has_nanos() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void Duration::clear_nanos() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nanos_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int32_t Duration::nanos() const {
  // @@protoc_insertion_point(field_get:mozilla.safebrowsing.Duration.nanos)
  return _internal_nanos();
}
inline void Duration::set_nanos(::int32_t value) {
  _internal_set_nanos(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:mozilla.safebrowsing.Duration.nanos)
}
inline ::int32_t Duration::_internal_nanos() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.nanos_;
}
inline void Duration::_internal_set_nanos(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nanos_ = value;
}

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace safebrowsing
}  // namespace mozilla


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Parse;
  static constexpr auto kNameFunc = ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Name<int>;
};
template <>
struct is_proto_enum<::mozilla::safebrowsing::ThreatHit_ThreatSourceType> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::mozilla::safebrowsing::ThreatHit_ThreatSourceType> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::mozilla::safebrowsing::ThreatHit_ThreatSourceType_Parse;
  static constexpr auto kNameFunc = ::mozilla::safebrowsing::ThreatHit_ThreatSourceType_Name<int>;
};
template <>
struct is_proto_enum<::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation_Parse;
  static constexpr auto kNameFunc = ::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation_Name<int>;
};
template <>
struct is_proto_enum<::mozilla::safebrowsing::ThreatType> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::mozilla::safebrowsing::ThreatType> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::mozilla::safebrowsing::ThreatType_Parse;
  static constexpr auto kNameFunc = ::mozilla::safebrowsing::ThreatType_Name<int>;
};
template <>
struct is_proto_enum<::mozilla::safebrowsing::PlatformType> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::mozilla::safebrowsing::PlatformType> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::mozilla::safebrowsing::PlatformType_Parse;
  static constexpr auto kNameFunc = ::mozilla::safebrowsing::PlatformType_Name<int>;
};
template <>
struct is_proto_enum<::mozilla::safebrowsing::CompressionType> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::mozilla::safebrowsing::CompressionType> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::mozilla::safebrowsing::CompressionType_Parse;
  static constexpr auto kNameFunc = ::mozilla::safebrowsing::CompressionType_Name<int>;
};
template <>
struct is_proto_enum<::mozilla::safebrowsing::ThreatEntryType> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::mozilla::safebrowsing::ThreatEntryType> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::mozilla::safebrowsing::ThreatEntryType_Parse;
  static constexpr auto kNameFunc = ::mozilla::safebrowsing::ThreatEntryType_Name<int>;
};

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"
// clang-format on

#endif  // safebrowsing_2eproto_2epb_2eh
