// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: steamnetworkingsockets_messages_certs.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_steamnetworkingsockets_5fmessages_5fcerts_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_steamnetworkingsockets_5fmessages_5fcerts_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3021000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3021008 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_steamnetworkingsockets_5fmessages_5fcerts_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_steamnetworkingsockets_5fmessages_5fcerts_2eproto {
  static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_steamnetworkingsockets_5fmessages_5fcerts_2eproto;
class CMsgSteamDatagramCertificate;
struct CMsgSteamDatagramCertificateDefaultTypeInternal;
extern CMsgSteamDatagramCertificateDefaultTypeInternal _CMsgSteamDatagramCertificate_default_instance_;
class CMsgSteamDatagramCertificateRequest;
struct CMsgSteamDatagramCertificateRequestDefaultTypeInternal;
extern CMsgSteamDatagramCertificateRequestDefaultTypeInternal _CMsgSteamDatagramCertificateRequest_default_instance_;
class CMsgSteamDatagramCertificateSigned;
struct CMsgSteamDatagramCertificateSignedDefaultTypeInternal;
extern CMsgSteamDatagramCertificateSignedDefaultTypeInternal _CMsgSteamDatagramCertificateSigned_default_instance_;
class CMsgSteamNetworkingIdentityLegacyBinary;
struct CMsgSteamNetworkingIdentityLegacyBinaryDefaultTypeInternal;
extern CMsgSteamNetworkingIdentityLegacyBinaryDefaultTypeInternal _CMsgSteamNetworkingIdentityLegacyBinary_default_instance_;
PROTOBUF_NAMESPACE_OPEN
template<> ::CMsgSteamDatagramCertificate* Arena::CreateMaybeMessage<::CMsgSteamDatagramCertificate>(Arena*);
template<> ::CMsgSteamDatagramCertificateRequest* Arena::CreateMaybeMessage<::CMsgSteamDatagramCertificateRequest>(Arena*);
template<> ::CMsgSteamDatagramCertificateSigned* Arena::CreateMaybeMessage<::CMsgSteamDatagramCertificateSigned>(Arena*);
template<> ::CMsgSteamNetworkingIdentityLegacyBinary* Arena::CreateMaybeMessage<::CMsgSteamNetworkingIdentityLegacyBinary>(Arena*);
PROTOBUF_NAMESPACE_CLOSE

enum CMsgSteamDatagramCertificate_EKeyType : int {
  CMsgSteamDatagramCertificate_EKeyType_INVALID = 0,
  CMsgSteamDatagramCertificate_EKeyType_ED25519 = 1
};
bool CMsgSteamDatagramCertificate_EKeyType_IsValid(int value);
constexpr CMsgSteamDatagramCertificate_EKeyType CMsgSteamDatagramCertificate_EKeyType_EKeyType_MIN = CMsgSteamDatagramCertificate_EKeyType_INVALID;
constexpr CMsgSteamDatagramCertificate_EKeyType CMsgSteamDatagramCertificate_EKeyType_EKeyType_MAX = CMsgSteamDatagramCertificate_EKeyType_ED25519;
constexpr int CMsgSteamDatagramCertificate_EKeyType_EKeyType_ARRAYSIZE = CMsgSteamDatagramCertificate_EKeyType_EKeyType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CMsgSteamDatagramCertificate_EKeyType_descriptor();
template<typename T>
inline const std::string& CMsgSteamDatagramCertificate_EKeyType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, CMsgSteamDatagramCertificate_EKeyType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function CMsgSteamDatagramCertificate_EKeyType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    CMsgSteamDatagramCertificate_EKeyType_descriptor(), enum_t_value);
}
inline bool CMsgSteamDatagramCertificate_EKeyType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, CMsgSteamDatagramCertificate_EKeyType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CMsgSteamDatagramCertificate_EKeyType>(
    CMsgSteamDatagramCertificate_EKeyType_descriptor(), name, value);
}
// ===================================================================

class CMsgSteamNetworkingIdentityLegacyBinary final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CMsgSteamNetworkingIdentityLegacyBinary) */ {
 public:
  inline CMsgSteamNetworkingIdentityLegacyBinary() : CMsgSteamNetworkingIdentityLegacyBinary(nullptr) {}
  ~CMsgSteamNetworkingIdentityLegacyBinary() override;
  explicit PROTOBUF_CONSTEXPR CMsgSteamNetworkingIdentityLegacyBinary(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CMsgSteamNetworkingIdentityLegacyBinary(const CMsgSteamNetworkingIdentityLegacyBinary& from);
  CMsgSteamNetworkingIdentityLegacyBinary(CMsgSteamNetworkingIdentityLegacyBinary&& from) noexcept
    : CMsgSteamNetworkingIdentityLegacyBinary() {
    *this = ::std::move(from);
  }

  inline CMsgSteamNetworkingIdentityLegacyBinary& operator=(const CMsgSteamNetworkingIdentityLegacyBinary& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamNetworkingIdentityLegacyBinary& operator=(CMsgSteamNetworkingIdentityLegacyBinary&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const CMsgSteamNetworkingIdentityLegacyBinary& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamNetworkingIdentityLegacyBinary* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamNetworkingIdentityLegacyBinary*>(
               &_CMsgSteamNetworkingIdentityLegacyBinary_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(CMsgSteamNetworkingIdentityLegacyBinary& a, CMsgSteamNetworkingIdentityLegacyBinary& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamNetworkingIdentityLegacyBinary* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamNetworkingIdentityLegacyBinary* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamNetworkingIdentityLegacyBinary* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamNetworkingIdentityLegacyBinary>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamNetworkingIdentityLegacyBinary& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamNetworkingIdentityLegacyBinary& from) {
    CMsgSteamNetworkingIdentityLegacyBinary::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CMsgSteamNetworkingIdentityLegacyBinary* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamNetworkingIdentityLegacyBinary";
  }
  protected:
  explicit CMsgSteamNetworkingIdentityLegacyBinary(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kGenericBytesFieldNumber = 2,
    kGenericStringFieldNumber = 3,
    kIpv6AndPortFieldNumber = 4,
    kSteamIdFieldNumber = 16,
  };
  // optional bytes generic_bytes = 2;
  bool has_generic_bytes() const;
  private:
  bool _internal_has_generic_bytes() const;
  public:
  void clear_generic_bytes();
  const std::string& generic_bytes() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_generic_bytes(ArgT0&& arg0, ArgT... args);
  std::string* mutable_generic_bytes();
  PROTOBUF_NODISCARD std::string* release_generic_bytes();
  void set_allocated_generic_bytes(std::string* generic_bytes);
  private:
  const std::string& _internal_generic_bytes() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_generic_bytes(const std::string& value);
  std::string* _internal_mutable_generic_bytes();
  public:

  // optional string generic_string = 3;
  bool has_generic_string() const;
  private:
  bool _internal_has_generic_string() const;
  public:
  void clear_generic_string();
  const std::string& generic_string() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_generic_string(ArgT0&& arg0, ArgT... args);
  std::string* mutable_generic_string();
  PROTOBUF_NODISCARD std::string* release_generic_string();
  void set_allocated_generic_string(std::string* generic_string);
  private:
  const std::string& _internal_generic_string() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_generic_string(const std::string& value);
  std::string* _internal_mutable_generic_string();
  public:

  // optional bytes ipv6_and_port = 4;
  bool has_ipv6_and_port() const;
  private:
  bool _internal_has_ipv6_and_port() const;
  public:
  void clear_ipv6_and_port();
  const std::string& ipv6_and_port() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_ipv6_and_port(ArgT0&& arg0, ArgT... args);
  std::string* mutable_ipv6_and_port();
  PROTOBUF_NODISCARD std::string* release_ipv6_and_port();
  void set_allocated_ipv6_and_port(std::string* ipv6_and_port);
  private:
  const std::string& _internal_ipv6_and_port() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_ipv6_and_port(const std::string& value);
  std::string* _internal_mutable_ipv6_and_port();
  public:

  // optional fixed64 steam_id = 16;
  bool has_steam_id() const;
  private:
  bool _internal_has_steam_id() const;
  public:
  void clear_steam_id();
  uint64_t steam_id() const;
  void set_steam_id(uint64_t value);
  private:
  uint64_t _internal_steam_id() const;
  void _internal_set_steam_id(uint64_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamNetworkingIdentityLegacyBinary)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr generic_bytes_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr generic_string_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ipv6_and_port_;
    uint64_t steam_id_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fcerts_2eproto;
};
// -------------------------------------------------------------------

class CMsgSteamDatagramCertificate final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CMsgSteamDatagramCertificate) */ {
 public:
  inline CMsgSteamDatagramCertificate() : CMsgSteamDatagramCertificate(nullptr) {}
  ~CMsgSteamDatagramCertificate() override;
  explicit PROTOBUF_CONSTEXPR CMsgSteamDatagramCertificate(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CMsgSteamDatagramCertificate(const CMsgSteamDatagramCertificate& from);
  CMsgSteamDatagramCertificate(CMsgSteamDatagramCertificate&& from) noexcept
    : CMsgSteamDatagramCertificate() {
    *this = ::std::move(from);
  }

  inline CMsgSteamDatagramCertificate& operator=(const CMsgSteamDatagramCertificate& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamDatagramCertificate& operator=(CMsgSteamDatagramCertificate&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const CMsgSteamDatagramCertificate& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamDatagramCertificate* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamDatagramCertificate*>(
               &_CMsgSteamDatagramCertificate_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(CMsgSteamDatagramCertificate& a, CMsgSteamDatagramCertificate& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamDatagramCertificate* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamDatagramCertificate* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamDatagramCertificate* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamDatagramCertificate>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamDatagramCertificate& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamDatagramCertificate& from) {
    CMsgSteamDatagramCertificate::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CMsgSteamDatagramCertificate* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamDatagramCertificate";
  }
  protected:
  explicit CMsgSteamDatagramCertificate(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef CMsgSteamDatagramCertificate_EKeyType EKeyType;
  static constexpr EKeyType INVALID =
    CMsgSteamDatagramCertificate_EKeyType_INVALID;
  static constexpr EKeyType ED25519 =
    CMsgSteamDatagramCertificate_EKeyType_ED25519;
  static inline bool EKeyType_IsValid(int value) {
    return CMsgSteamDatagramCertificate_EKeyType_IsValid(value);
  }
  static constexpr EKeyType EKeyType_MIN =
    CMsgSteamDatagramCertificate_EKeyType_EKeyType_MIN;
  static constexpr EKeyType EKeyType_MAX =
    CMsgSteamDatagramCertificate_EKeyType_EKeyType_MAX;
  static constexpr int EKeyType_ARRAYSIZE =
    CMsgSteamDatagramCertificate_EKeyType_EKeyType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  EKeyType_descriptor() {
    return CMsgSteamDatagramCertificate_EKeyType_descriptor();
  }
  template<typename T>
  static inline const std::string& EKeyType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, EKeyType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function EKeyType_Name.");
    return CMsgSteamDatagramCertificate_EKeyType_Name(enum_t_value);
  }
  static inline bool EKeyType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      EKeyType* value) {
    return CMsgSteamDatagramCertificate_EKeyType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kGameserverDatacenterIdsFieldNumber = 5,
    kAppIdsFieldNumber = 10,
    kIpAddressesFieldNumber = 13,
    kKeyDataFieldNumber = 2,
    kIdentityStringFieldNumber = 12,
    kLegacyIdentityBinaryFieldNumber = 11,
    kLegacySteamIdFieldNumber = 4,
    kKeyTypeFieldNumber = 1,
    kTimeCreatedFieldNumber = 8,
    kTimeExpiryFieldNumber = 9,
  };
  // repeated fixed32 gameserver_datacenter_ids = 5;
  int gameserver_datacenter_ids_size() const;
  private:
  int _internal_gameserver_datacenter_ids_size() const;
  public:
  void clear_gameserver_datacenter_ids();
  private:
  uint32_t _internal_gameserver_datacenter_ids(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      _internal_gameserver_datacenter_ids() const;
  void _internal_add_gameserver_datacenter_ids(uint32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      _internal_mutable_gameserver_datacenter_ids();
  public:
  uint32_t gameserver_datacenter_ids(int index) const;
  void set_gameserver_datacenter_ids(int index, uint32_t value);
  void add_gameserver_datacenter_ids(uint32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      gameserver_datacenter_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      mutable_gameserver_datacenter_ids();

  // repeated uint32 app_ids = 10;
  int app_ids_size() const;
  private:
  int _internal_app_ids_size() const;
  public:
  void clear_app_ids();
  private:
  uint32_t _internal_app_ids(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      _internal_app_ids() const;
  void _internal_add_app_ids(uint32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      _internal_mutable_app_ids();
  public:
  uint32_t app_ids(int index) const;
  void set_app_ids(int index, uint32_t value);
  void add_app_ids(uint32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      app_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      mutable_app_ids();

  // repeated string ip_addresses = 13;
  int ip_addresses_size() const;
  private:
  int _internal_ip_addresses_size() const;
  public:
  void clear_ip_addresses();
  const std::string& ip_addresses(int index) const;
  std::string* mutable_ip_addresses(int index);
  void set_ip_addresses(int index, const std::string& value);
  void set_ip_addresses(int index, std::string&& value);
  void set_ip_addresses(int index, const char* value);
  void set_ip_addresses(int index, const char* value, size_t size);
  std::string* add_ip_addresses();
  void add_ip_addresses(const std::string& value);
  void add_ip_addresses(std::string&& value);
  void add_ip_addresses(const char* value);
  void add_ip_addresses(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& ip_addresses() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_ip_addresses();
  private:
  const std::string& _internal_ip_addresses(int index) const;
  std::string* _internal_add_ip_addresses();
  public:

  // optional bytes key_data = 2;
  bool has_key_data() const;
  private:
  bool _internal_has_key_data() const;
  public:
  void clear_key_data();
  const std::string& key_data() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_key_data(ArgT0&& arg0, ArgT... args);
  std::string* mutable_key_data();
  PROTOBUF_NODISCARD std::string* release_key_data();
  void set_allocated_key_data(std::string* key_data);
  private:
  const std::string& _internal_key_data() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_key_data(const std::string& value);
  std::string* _internal_mutable_key_data();
  public:

  // optional string identity_string = 12;
  bool has_identity_string() const;
  private:
  bool _internal_has_identity_string() const;
  public:
  void clear_identity_string();
  const std::string& identity_string() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_identity_string(ArgT0&& arg0, ArgT... args);
  std::string* mutable_identity_string();
  PROTOBUF_NODISCARD std::string* release_identity_string();
  void set_allocated_identity_string(std::string* identity_string);
  private:
  const std::string& _internal_identity_string() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_identity_string(const std::string& value);
  std::string* _internal_mutable_identity_string();
  public:

  // optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11;
  bool has_legacy_identity_binary() const;
  private:
  bool _internal_has_legacy_identity_binary() const;
  public:
  void clear_legacy_identity_binary();
  const ::CMsgSteamNetworkingIdentityLegacyBinary& legacy_identity_binary() const;
  PROTOBUF_NODISCARD ::CMsgSteamNetworkingIdentityLegacyBinary* release_legacy_identity_binary();
  ::CMsgSteamNetworkingIdentityLegacyBinary* mutable_legacy_identity_binary();
  void set_allocated_legacy_identity_binary(::CMsgSteamNetworkingIdentityLegacyBinary* legacy_identity_binary);
  private:
  const ::CMsgSteamNetworkingIdentityLegacyBinary& _internal_legacy_identity_binary() const;
  ::CMsgSteamNetworkingIdentityLegacyBinary* _internal_mutable_legacy_identity_binary();
  public:
  void unsafe_arena_set_allocated_legacy_identity_binary(
      ::CMsgSteamNetworkingIdentityLegacyBinary* legacy_identity_binary);
  ::CMsgSteamNetworkingIdentityLegacyBinary* unsafe_arena_release_legacy_identity_binary();

  // optional fixed64 legacy_steam_id = 4;
  bool has_legacy_steam_id() const;
  private:
  bool _internal_has_legacy_steam_id() const;
  public:
  void clear_legacy_steam_id();
  uint64_t legacy_steam_id() const;
  void set_legacy_steam_id(uint64_t value);
  private:
  uint64_t _internal_legacy_steam_id() const;
  void _internal_set_legacy_steam_id(uint64_t value);
  public:

  // optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID];
  bool has_key_type() const;
  private:
  bool _internal_has_key_type() const;
  public:
  void clear_key_type();
  ::CMsgSteamDatagramCertificate_EKeyType key_type() const;
  void set_key_type(::CMsgSteamDatagramCertificate_EKeyType value);
  private:
  ::CMsgSteamDatagramCertificate_EKeyType _internal_key_type() const;
  void _internal_set_key_type(::CMsgSteamDatagramCertificate_EKeyType value);
  public:

  // optional fixed32 time_created = 8;
  bool has_time_created() const;
  private:
  bool _internal_has_time_created() const;
  public:
  void clear_time_created();
  uint32_t time_created() const;
  void set_time_created(uint32_t value);
  private:
  uint32_t _internal_time_created() const;
  void _internal_set_time_created(uint32_t value);
  public:

  // optional fixed32 time_expiry = 9;
  bool has_time_expiry() const;
  private:
  bool _internal_has_time_expiry() const;
  public:
  void clear_time_expiry();
  uint32_t time_expiry() const;
  void set_time_expiry(uint32_t value);
  private:
  uint32_t _internal_time_expiry() const;
  void _internal_set_time_expiry(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamDatagramCertificate)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t > gameserver_datacenter_ids_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t > app_ids_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> ip_addresses_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr key_data_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr identity_string_;
    ::CMsgSteamNetworkingIdentityLegacyBinary* legacy_identity_binary_;
    uint64_t legacy_steam_id_;
    int key_type_;
    uint32_t time_created_;
    uint32_t time_expiry_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fcerts_2eproto;
};
// -------------------------------------------------------------------

class CMsgSteamDatagramCertificateSigned final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CMsgSteamDatagramCertificateSigned) */ {
 public:
  inline CMsgSteamDatagramCertificateSigned() : CMsgSteamDatagramCertificateSigned(nullptr) {}
  ~CMsgSteamDatagramCertificateSigned() override;
  explicit PROTOBUF_CONSTEXPR CMsgSteamDatagramCertificateSigned(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CMsgSteamDatagramCertificateSigned(const CMsgSteamDatagramCertificateSigned& from);
  CMsgSteamDatagramCertificateSigned(CMsgSteamDatagramCertificateSigned&& from) noexcept
    : CMsgSteamDatagramCertificateSigned() {
    *this = ::std::move(from);
  }

  inline CMsgSteamDatagramCertificateSigned& operator=(const CMsgSteamDatagramCertificateSigned& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamDatagramCertificateSigned& operator=(CMsgSteamDatagramCertificateSigned&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const CMsgSteamDatagramCertificateSigned& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamDatagramCertificateSigned* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamDatagramCertificateSigned*>(
               &_CMsgSteamDatagramCertificateSigned_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(CMsgSteamDatagramCertificateSigned& a, CMsgSteamDatagramCertificateSigned& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamDatagramCertificateSigned* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamDatagramCertificateSigned* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamDatagramCertificateSigned* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamDatagramCertificateSigned>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamDatagramCertificateSigned& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamDatagramCertificateSigned& from) {
    CMsgSteamDatagramCertificateSigned::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CMsgSteamDatagramCertificateSigned* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamDatagramCertificateSigned";
  }
  protected:
  explicit CMsgSteamDatagramCertificateSigned(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kPrivateKeyDataFieldNumber = 1,
    kCertFieldNumber = 4,
    kCaSignatureFieldNumber = 6,
    kCaKeyIdFieldNumber = 5,
  };
  // optional bytes private_key_data = 1;
  bool has_private_key_data() const;
  private:
  bool _internal_has_private_key_data() const;
  public:
  void clear_private_key_data();
  const std::string& private_key_data() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_private_key_data(ArgT0&& arg0, ArgT... args);
  std::string* mutable_private_key_data();
  PROTOBUF_NODISCARD std::string* release_private_key_data();
  void set_allocated_private_key_data(std::string* private_key_data);
  private:
  const std::string& _internal_private_key_data() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_private_key_data(const std::string& value);
  std::string* _internal_mutable_private_key_data();
  public:

  // optional bytes cert = 4;
  bool has_cert() const;
  private:
  bool _internal_has_cert() const;
  public:
  void clear_cert();
  const std::string& cert() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_cert(ArgT0&& arg0, ArgT... args);
  std::string* mutable_cert();
  PROTOBUF_NODISCARD std::string* release_cert();
  void set_allocated_cert(std::string* cert);
  private:
  const std::string& _internal_cert() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_cert(const std::string& value);
  std::string* _internal_mutable_cert();
  public:

  // optional bytes ca_signature = 6;
  bool has_ca_signature() const;
  private:
  bool _internal_has_ca_signature() const;
  public:
  void clear_ca_signature();
  const std::string& ca_signature() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_ca_signature(ArgT0&& arg0, ArgT... args);
  std::string* mutable_ca_signature();
  PROTOBUF_NODISCARD std::string* release_ca_signature();
  void set_allocated_ca_signature(std::string* ca_signature);
  private:
  const std::string& _internal_ca_signature() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_ca_signature(const std::string& value);
  std::string* _internal_mutable_ca_signature();
  public:

  // optional fixed64 ca_key_id = 5;
  bool has_ca_key_id() const;
  private:
  bool _internal_has_ca_key_id() const;
  public:
  void clear_ca_key_id();
  uint64_t ca_key_id() const;
  void set_ca_key_id(uint64_t value);
  private:
  uint64_t _internal_ca_key_id() const;
  void _internal_set_ca_key_id(uint64_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamDatagramCertificateSigned)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr private_key_data_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr cert_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ca_signature_;
    uint64_t ca_key_id_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fcerts_2eproto;
};
// -------------------------------------------------------------------

class CMsgSteamDatagramCertificateRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CMsgSteamDatagramCertificateRequest) */ {
 public:
  inline CMsgSteamDatagramCertificateRequest() : CMsgSteamDatagramCertificateRequest(nullptr) {}
  ~CMsgSteamDatagramCertificateRequest() override;
  explicit PROTOBUF_CONSTEXPR CMsgSteamDatagramCertificateRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CMsgSteamDatagramCertificateRequest(const CMsgSteamDatagramCertificateRequest& from);
  CMsgSteamDatagramCertificateRequest(CMsgSteamDatagramCertificateRequest&& from) noexcept
    : CMsgSteamDatagramCertificateRequest() {
    *this = ::std::move(from);
  }

  inline CMsgSteamDatagramCertificateRequest& operator=(const CMsgSteamDatagramCertificateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamDatagramCertificateRequest& operator=(CMsgSteamDatagramCertificateRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const CMsgSteamDatagramCertificateRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamDatagramCertificateRequest* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamDatagramCertificateRequest*>(
               &_CMsgSteamDatagramCertificateRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(CMsgSteamDatagramCertificateRequest& a, CMsgSteamDatagramCertificateRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamDatagramCertificateRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamDatagramCertificateRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamDatagramCertificateRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamDatagramCertificateRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamDatagramCertificateRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamDatagramCertificateRequest& from) {
    CMsgSteamDatagramCertificateRequest::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CMsgSteamDatagramCertificateRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamDatagramCertificateRequest";
  }
  protected:
  explicit CMsgSteamDatagramCertificateRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kCertFieldNumber = 1,
  };
  // optional .CMsgSteamDatagramCertificate cert = 1;
  bool has_cert() const;
  private:
  bool _internal_has_cert() const;
  public:
  void clear_cert();
  const ::CMsgSteamDatagramCertificate& cert() const;
  PROTOBUF_NODISCARD ::CMsgSteamDatagramCertificate* release_cert();
  ::CMsgSteamDatagramCertificate* mutable_cert();
  void set_allocated_cert(::CMsgSteamDatagramCertificate* cert);
  private:
  const ::CMsgSteamDatagramCertificate& _internal_cert() const;
  ::CMsgSteamDatagramCertificate* _internal_mutable_cert();
  public:
  void unsafe_arena_set_allocated_cert(
      ::CMsgSteamDatagramCertificate* cert);
  ::CMsgSteamDatagramCertificate* unsafe_arena_release_cert();

  // @@protoc_insertion_point(class_scope:CMsgSteamDatagramCertificateRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::CMsgSteamDatagramCertificate* cert_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fcerts_2eproto;
};
// ===================================================================


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

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

// optional fixed64 steam_id = 16;
inline bool CMsgSteamNetworkingIdentityLegacyBinary::_internal_has_steam_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool CMsgSteamNetworkingIdentityLegacyBinary::has_steam_id() const {
  return _internal_has_steam_id();
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::clear_steam_id() {
  _impl_.steam_id_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000008u;
}
inline uint64_t CMsgSteamNetworkingIdentityLegacyBinary::_internal_steam_id() const {
  return _impl_.steam_id_;
}
inline uint64_t CMsgSteamNetworkingIdentityLegacyBinary::steam_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingIdentityLegacyBinary.steam_id)
  return _internal_steam_id();
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::_internal_set_steam_id(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000008u;
  _impl_.steam_id_ = value;
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::set_steam_id(uint64_t value) {
  _internal_set_steam_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingIdentityLegacyBinary.steam_id)
}

// optional bytes generic_bytes = 2;
inline bool CMsgSteamNetworkingIdentityLegacyBinary::_internal_has_generic_bytes() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CMsgSteamNetworkingIdentityLegacyBinary::has_generic_bytes() const {
  return _internal_has_generic_bytes();
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::clear_generic_bytes() {
  _impl_.generic_bytes_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const std::string& CMsgSteamNetworkingIdentityLegacyBinary::generic_bytes() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingIdentityLegacyBinary.generic_bytes)
  return _internal_generic_bytes();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamNetworkingIdentityLegacyBinary::set_generic_bytes(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000001u;
 _impl_.generic_bytes_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingIdentityLegacyBinary.generic_bytes)
}
inline std::string* CMsgSteamNetworkingIdentityLegacyBinary::mutable_generic_bytes() {
  std::string* _s = _internal_mutable_generic_bytes();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingIdentityLegacyBinary.generic_bytes)
  return _s;
}
inline const std::string& CMsgSteamNetworkingIdentityLegacyBinary::_internal_generic_bytes() const {
  return _impl_.generic_bytes_.Get();
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::_internal_set_generic_bytes(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.generic_bytes_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamNetworkingIdentityLegacyBinary::_internal_mutable_generic_bytes() {
  _impl_._has_bits_[0] |= 0x00000001u;
  return _impl_.generic_bytes_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamNetworkingIdentityLegacyBinary::release_generic_bytes() {
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingIdentityLegacyBinary.generic_bytes)
  if (!_internal_has_generic_bytes()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000001u;
  auto* p = _impl_.generic_bytes_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.generic_bytes_.IsDefault()) {
    _impl_.generic_bytes_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::set_allocated_generic_bytes(std::string* generic_bytes) {
  if (generic_bytes != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.generic_bytes_.SetAllocated(generic_bytes, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.generic_bytes_.IsDefault()) {
    _impl_.generic_bytes_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingIdentityLegacyBinary.generic_bytes)
}

// optional string generic_string = 3;
inline bool CMsgSteamNetworkingIdentityLegacyBinary::_internal_has_generic_string() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool CMsgSteamNetworkingIdentityLegacyBinary::has_generic_string() const {
  return _internal_has_generic_string();
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::clear_generic_string() {
  _impl_.generic_string_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const std::string& CMsgSteamNetworkingIdentityLegacyBinary::generic_string() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingIdentityLegacyBinary.generic_string)
  return _internal_generic_string();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamNetworkingIdentityLegacyBinary::set_generic_string(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000002u;
 _impl_.generic_string_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingIdentityLegacyBinary.generic_string)
}
inline std::string* CMsgSteamNetworkingIdentityLegacyBinary::mutable_generic_string() {
  std::string* _s = _internal_mutable_generic_string();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingIdentityLegacyBinary.generic_string)
  return _s;
}
inline const std::string& CMsgSteamNetworkingIdentityLegacyBinary::_internal_generic_string() const {
  return _impl_.generic_string_.Get();
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::_internal_set_generic_string(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.generic_string_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamNetworkingIdentityLegacyBinary::_internal_mutable_generic_string() {
  _impl_._has_bits_[0] |= 0x00000002u;
  return _impl_.generic_string_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamNetworkingIdentityLegacyBinary::release_generic_string() {
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingIdentityLegacyBinary.generic_string)
  if (!_internal_has_generic_string()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000002u;
  auto* p = _impl_.generic_string_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.generic_string_.IsDefault()) {
    _impl_.generic_string_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::set_allocated_generic_string(std::string* generic_string) {
  if (generic_string != nullptr) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.generic_string_.SetAllocated(generic_string, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.generic_string_.IsDefault()) {
    _impl_.generic_string_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingIdentityLegacyBinary.generic_string)
}

// optional bytes ipv6_and_port = 4;
inline bool CMsgSteamNetworkingIdentityLegacyBinary::_internal_has_ipv6_and_port() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool CMsgSteamNetworkingIdentityLegacyBinary::has_ipv6_and_port() const {
  return _internal_has_ipv6_and_port();
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::clear_ipv6_and_port() {
  _impl_.ipv6_and_port_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
inline const std::string& CMsgSteamNetworkingIdentityLegacyBinary::ipv6_and_port() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingIdentityLegacyBinary.ipv6_and_port)
  return _internal_ipv6_and_port();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamNetworkingIdentityLegacyBinary::set_ipv6_and_port(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000004u;
 _impl_.ipv6_and_port_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingIdentityLegacyBinary.ipv6_and_port)
}
inline std::string* CMsgSteamNetworkingIdentityLegacyBinary::mutable_ipv6_and_port() {
  std::string* _s = _internal_mutable_ipv6_and_port();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingIdentityLegacyBinary.ipv6_and_port)
  return _s;
}
inline const std::string& CMsgSteamNetworkingIdentityLegacyBinary::_internal_ipv6_and_port() const {
  return _impl_.ipv6_and_port_.Get();
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::_internal_set_ipv6_and_port(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000004u;
  _impl_.ipv6_and_port_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamNetworkingIdentityLegacyBinary::_internal_mutable_ipv6_and_port() {
  _impl_._has_bits_[0] |= 0x00000004u;
  return _impl_.ipv6_and_port_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamNetworkingIdentityLegacyBinary::release_ipv6_and_port() {
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingIdentityLegacyBinary.ipv6_and_port)
  if (!_internal_has_ipv6_and_port()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000004u;
  auto* p = _impl_.ipv6_and_port_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.ipv6_and_port_.IsDefault()) {
    _impl_.ipv6_and_port_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CMsgSteamNetworkingIdentityLegacyBinary::set_allocated_ipv6_and_port(std::string* ipv6_and_port) {
  if (ipv6_and_port != nullptr) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  _impl_.ipv6_and_port_.SetAllocated(ipv6_and_port, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.ipv6_and_port_.IsDefault()) {
    _impl_.ipv6_and_port_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingIdentityLegacyBinary.ipv6_and_port)
}

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

// CMsgSteamDatagramCertificate

// optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID];
inline bool CMsgSteamDatagramCertificate::_internal_has_key_type() const {
  bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificate::has_key_type() const {
  return _internal_has_key_type();
}
inline void CMsgSteamDatagramCertificate::clear_key_type() {
  _impl_.key_type_ = 0;
  _impl_._has_bits_[0] &= ~0x00000010u;
}
inline ::CMsgSteamDatagramCertificate_EKeyType CMsgSteamDatagramCertificate::_internal_key_type() const {
  return static_cast< ::CMsgSteamDatagramCertificate_EKeyType >(_impl_.key_type_);
}
inline ::CMsgSteamDatagramCertificate_EKeyType CMsgSteamDatagramCertificate::key_type() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.key_type)
  return _internal_key_type();
}
inline void CMsgSteamDatagramCertificate::_internal_set_key_type(::CMsgSteamDatagramCertificate_EKeyType value) {
  assert(::CMsgSteamDatagramCertificate_EKeyType_IsValid(value));
  _impl_._has_bits_[0] |= 0x00000010u;
  _impl_.key_type_ = value;
}
inline void CMsgSteamDatagramCertificate::set_key_type(::CMsgSteamDatagramCertificate_EKeyType value) {
  _internal_set_key_type(value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.key_type)
}

// optional bytes key_data = 2;
inline bool CMsgSteamDatagramCertificate::_internal_has_key_data() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificate::has_key_data() const {
  return _internal_has_key_data();
}
inline void CMsgSteamDatagramCertificate::clear_key_data() {
  _impl_.key_data_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const std::string& CMsgSteamDatagramCertificate::key_data() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.key_data)
  return _internal_key_data();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamDatagramCertificate::set_key_data(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000001u;
 _impl_.key_data_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.key_data)
}
inline std::string* CMsgSteamDatagramCertificate::mutable_key_data() {
  std::string* _s = _internal_mutable_key_data();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramCertificate.key_data)
  return _s;
}
inline const std::string& CMsgSteamDatagramCertificate::_internal_key_data() const {
  return _impl_.key_data_.Get();
}
inline void CMsgSteamDatagramCertificate::_internal_set_key_data(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.key_data_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificate::_internal_mutable_key_data() {
  _impl_._has_bits_[0] |= 0x00000001u;
  return _impl_.key_data_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificate::release_key_data() {
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramCertificate.key_data)
  if (!_internal_has_key_data()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000001u;
  auto* p = _impl_.key_data_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.key_data_.IsDefault()) {
    _impl_.key_data_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CMsgSteamDatagramCertificate::set_allocated_key_data(std::string* key_data) {
  if (key_data != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.key_data_.SetAllocated(key_data, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.key_data_.IsDefault()) {
    _impl_.key_data_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramCertificate.key_data)
}

// optional fixed64 legacy_steam_id = 4;
inline bool CMsgSteamDatagramCertificate::_internal_has_legacy_steam_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificate::has_legacy_steam_id() const {
  return _internal_has_legacy_steam_id();
}
inline void CMsgSteamDatagramCertificate::clear_legacy_steam_id() {
  _impl_.legacy_steam_id_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000008u;
}
inline uint64_t CMsgSteamDatagramCertificate::_internal_legacy_steam_id() const {
  return _impl_.legacy_steam_id_;
}
inline uint64_t CMsgSteamDatagramCertificate::legacy_steam_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.legacy_steam_id)
  return _internal_legacy_steam_id();
}
inline void CMsgSteamDatagramCertificate::_internal_set_legacy_steam_id(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000008u;
  _impl_.legacy_steam_id_ = value;
}
inline void CMsgSteamDatagramCertificate::set_legacy_steam_id(uint64_t value) {
  _internal_set_legacy_steam_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.legacy_steam_id)
}

// optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11;
inline bool CMsgSteamDatagramCertificate::_internal_has_legacy_identity_binary() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.legacy_identity_binary_ != nullptr);
  return value;
}
inline bool CMsgSteamDatagramCertificate::has_legacy_identity_binary() const {
  return _internal_has_legacy_identity_binary();
}
inline void CMsgSteamDatagramCertificate::clear_legacy_identity_binary() {
  if (_impl_.legacy_identity_binary_ != nullptr) _impl_.legacy_identity_binary_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
inline const ::CMsgSteamNetworkingIdentityLegacyBinary& CMsgSteamDatagramCertificate::_internal_legacy_identity_binary() const {
  const ::CMsgSteamNetworkingIdentityLegacyBinary* p = _impl_.legacy_identity_binary_;
  return p != nullptr ? *p : reinterpret_cast<const ::CMsgSteamNetworkingIdentityLegacyBinary&>(
      ::_CMsgSteamNetworkingIdentityLegacyBinary_default_instance_);
}
inline const ::CMsgSteamNetworkingIdentityLegacyBinary& CMsgSteamDatagramCertificate::legacy_identity_binary() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.legacy_identity_binary)
  return _internal_legacy_identity_binary();
}
inline void CMsgSteamDatagramCertificate::unsafe_arena_set_allocated_legacy_identity_binary(
    ::CMsgSteamNetworkingIdentityLegacyBinary* legacy_identity_binary) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.legacy_identity_binary_);
  }
  _impl_.legacy_identity_binary_ = legacy_identity_binary;
  if (legacy_identity_binary) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamDatagramCertificate.legacy_identity_binary)
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamDatagramCertificate::release_legacy_identity_binary() {
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::CMsgSteamNetworkingIdentityLegacyBinary* temp = _impl_.legacy_identity_binary_;
  _impl_.legacy_identity_binary_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamDatagramCertificate::unsafe_arena_release_legacy_identity_binary() {
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramCertificate.legacy_identity_binary)
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::CMsgSteamNetworkingIdentityLegacyBinary* temp = _impl_.legacy_identity_binary_;
  _impl_.legacy_identity_binary_ = nullptr;
  return temp;
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamDatagramCertificate::_internal_mutable_legacy_identity_binary() {
  _impl_._has_bits_[0] |= 0x00000004u;
  if (_impl_.legacy_identity_binary_ == nullptr) {
    auto* p = CreateMaybeMessage<::CMsgSteamNetworkingIdentityLegacyBinary>(GetArenaForAllocation());
    _impl_.legacy_identity_binary_ = p;
  }
  return _impl_.legacy_identity_binary_;
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamDatagramCertificate::mutable_legacy_identity_binary() {
  ::CMsgSteamNetworkingIdentityLegacyBinary* _msg = _internal_mutable_legacy_identity_binary();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramCertificate.legacy_identity_binary)
  return _msg;
}
inline void CMsgSteamDatagramCertificate::set_allocated_legacy_identity_binary(::CMsgSteamNetworkingIdentityLegacyBinary* legacy_identity_binary) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.legacy_identity_binary_;
  }
  if (legacy_identity_binary) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(legacy_identity_binary);
    if (message_arena != submessage_arena) {
      legacy_identity_binary = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, legacy_identity_binary, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  _impl_.legacy_identity_binary_ = legacy_identity_binary;
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramCertificate.legacy_identity_binary)
}

// optional string identity_string = 12;
inline bool CMsgSteamDatagramCertificate::_internal_has_identity_string() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificate::has_identity_string() const {
  return _internal_has_identity_string();
}
inline void CMsgSteamDatagramCertificate::clear_identity_string() {
  _impl_.identity_string_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const std::string& CMsgSteamDatagramCertificate::identity_string() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.identity_string)
  return _internal_identity_string();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamDatagramCertificate::set_identity_string(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000002u;
 _impl_.identity_string_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.identity_string)
}
inline std::string* CMsgSteamDatagramCertificate::mutable_identity_string() {
  std::string* _s = _internal_mutable_identity_string();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramCertificate.identity_string)
  return _s;
}
inline const std::string& CMsgSteamDatagramCertificate::_internal_identity_string() const {
  return _impl_.identity_string_.Get();
}
inline void CMsgSteamDatagramCertificate::_internal_set_identity_string(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.identity_string_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificate::_internal_mutable_identity_string() {
  _impl_._has_bits_[0] |= 0x00000002u;
  return _impl_.identity_string_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificate::release_identity_string() {
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramCertificate.identity_string)
  if (!_internal_has_identity_string()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000002u;
  auto* p = _impl_.identity_string_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.identity_string_.IsDefault()) {
    _impl_.identity_string_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CMsgSteamDatagramCertificate::set_allocated_identity_string(std::string* identity_string) {
  if (identity_string != nullptr) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.identity_string_.SetAllocated(identity_string, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.identity_string_.IsDefault()) {
    _impl_.identity_string_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramCertificate.identity_string)
}

// repeated fixed32 gameserver_datacenter_ids = 5;
inline int CMsgSteamDatagramCertificate::_internal_gameserver_datacenter_ids_size() const {
  return _impl_.gameserver_datacenter_ids_.size();
}
inline int CMsgSteamDatagramCertificate::gameserver_datacenter_ids_size() const {
  return _internal_gameserver_datacenter_ids_size();
}
inline void CMsgSteamDatagramCertificate::clear_gameserver_datacenter_ids() {
  _impl_.gameserver_datacenter_ids_.Clear();
}
inline uint32_t CMsgSteamDatagramCertificate::_internal_gameserver_datacenter_ids(int index) const {
  return _impl_.gameserver_datacenter_ids_.Get(index);
}
inline uint32_t CMsgSteamDatagramCertificate::gameserver_datacenter_ids(int index) const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.gameserver_datacenter_ids)
  return _internal_gameserver_datacenter_ids(index);
}
inline void CMsgSteamDatagramCertificate::set_gameserver_datacenter_ids(int index, uint32_t value) {
  _impl_.gameserver_datacenter_ids_.Set(index, value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.gameserver_datacenter_ids)
}
inline void CMsgSteamDatagramCertificate::_internal_add_gameserver_datacenter_ids(uint32_t value) {
  _impl_.gameserver_datacenter_ids_.Add(value);
}
inline void CMsgSteamDatagramCertificate::add_gameserver_datacenter_ids(uint32_t value) {
  _internal_add_gameserver_datacenter_ids(value);
  // @@protoc_insertion_point(field_add:CMsgSteamDatagramCertificate.gameserver_datacenter_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
CMsgSteamDatagramCertificate::_internal_gameserver_datacenter_ids() const {
  return _impl_.gameserver_datacenter_ids_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
CMsgSteamDatagramCertificate::gameserver_datacenter_ids() const {
  // @@protoc_insertion_point(field_list:CMsgSteamDatagramCertificate.gameserver_datacenter_ids)
  return _internal_gameserver_datacenter_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
CMsgSteamDatagramCertificate::_internal_mutable_gameserver_datacenter_ids() {
  return &_impl_.gameserver_datacenter_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
CMsgSteamDatagramCertificate::mutable_gameserver_datacenter_ids() {
  // @@protoc_insertion_point(field_mutable_list:CMsgSteamDatagramCertificate.gameserver_datacenter_ids)
  return _internal_mutable_gameserver_datacenter_ids();
}

// optional fixed32 time_created = 8;
inline bool CMsgSteamDatagramCertificate::_internal_has_time_created() const {
  bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificate::has_time_created() const {
  return _internal_has_time_created();
}
inline void CMsgSteamDatagramCertificate::clear_time_created() {
  _impl_.time_created_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000020u;
}
inline uint32_t CMsgSteamDatagramCertificate::_internal_time_created() const {
  return _impl_.time_created_;
}
inline uint32_t CMsgSteamDatagramCertificate::time_created() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.time_created)
  return _internal_time_created();
}
inline void CMsgSteamDatagramCertificate::_internal_set_time_created(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000020u;
  _impl_.time_created_ = value;
}
inline void CMsgSteamDatagramCertificate::set_time_created(uint32_t value) {
  _internal_set_time_created(value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.time_created)
}

// optional fixed32 time_expiry = 9;
inline bool CMsgSteamDatagramCertificate::_internal_has_time_expiry() const {
  bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificate::has_time_expiry() const {
  return _internal_has_time_expiry();
}
inline void CMsgSteamDatagramCertificate::clear_time_expiry() {
  _impl_.time_expiry_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000040u;
}
inline uint32_t CMsgSteamDatagramCertificate::_internal_time_expiry() const {
  return _impl_.time_expiry_;
}
inline uint32_t CMsgSteamDatagramCertificate::time_expiry() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.time_expiry)
  return _internal_time_expiry();
}
inline void CMsgSteamDatagramCertificate::_internal_set_time_expiry(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000040u;
  _impl_.time_expiry_ = value;
}
inline void CMsgSteamDatagramCertificate::set_time_expiry(uint32_t value) {
  _internal_set_time_expiry(value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.time_expiry)
}

// repeated uint32 app_ids = 10;
inline int CMsgSteamDatagramCertificate::_internal_app_ids_size() const {
  return _impl_.app_ids_.size();
}
inline int CMsgSteamDatagramCertificate::app_ids_size() const {
  return _internal_app_ids_size();
}
inline void CMsgSteamDatagramCertificate::clear_app_ids() {
  _impl_.app_ids_.Clear();
}
inline uint32_t CMsgSteamDatagramCertificate::_internal_app_ids(int index) const {
  return _impl_.app_ids_.Get(index);
}
inline uint32_t CMsgSteamDatagramCertificate::app_ids(int index) const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.app_ids)
  return _internal_app_ids(index);
}
inline void CMsgSteamDatagramCertificate::set_app_ids(int index, uint32_t value) {
  _impl_.app_ids_.Set(index, value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.app_ids)
}
inline void CMsgSteamDatagramCertificate::_internal_add_app_ids(uint32_t value) {
  _impl_.app_ids_.Add(value);
}
inline void CMsgSteamDatagramCertificate::add_app_ids(uint32_t value) {
  _internal_add_app_ids(value);
  // @@protoc_insertion_point(field_add:CMsgSteamDatagramCertificate.app_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
CMsgSteamDatagramCertificate::_internal_app_ids() const {
  return _impl_.app_ids_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
CMsgSteamDatagramCertificate::app_ids() const {
  // @@protoc_insertion_point(field_list:CMsgSteamDatagramCertificate.app_ids)
  return _internal_app_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
CMsgSteamDatagramCertificate::_internal_mutable_app_ids() {
  return &_impl_.app_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
CMsgSteamDatagramCertificate::mutable_app_ids() {
  // @@protoc_insertion_point(field_mutable_list:CMsgSteamDatagramCertificate.app_ids)
  return _internal_mutable_app_ids();
}

// repeated string ip_addresses = 13;
inline int CMsgSteamDatagramCertificate::_internal_ip_addresses_size() const {
  return _impl_.ip_addresses_.size();
}
inline int CMsgSteamDatagramCertificate::ip_addresses_size() const {
  return _internal_ip_addresses_size();
}
inline void CMsgSteamDatagramCertificate::clear_ip_addresses() {
  _impl_.ip_addresses_.Clear();
}
inline std::string* CMsgSteamDatagramCertificate::add_ip_addresses() {
  std::string* _s = _internal_add_ip_addresses();
  // @@protoc_insertion_point(field_add_mutable:CMsgSteamDatagramCertificate.ip_addresses)
  return _s;
}
inline const std::string& CMsgSteamDatagramCertificate::_internal_ip_addresses(int index) const {
  return _impl_.ip_addresses_.Get(index);
}
inline const std::string& CMsgSteamDatagramCertificate::ip_addresses(int index) const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificate.ip_addresses)
  return _internal_ip_addresses(index);
}
inline std::string* CMsgSteamDatagramCertificate::mutable_ip_addresses(int index) {
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramCertificate.ip_addresses)
  return _impl_.ip_addresses_.Mutable(index);
}
inline void CMsgSteamDatagramCertificate::set_ip_addresses(int index, const std::string& value) {
  _impl_.ip_addresses_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.ip_addresses)
}
inline void CMsgSteamDatagramCertificate::set_ip_addresses(int index, std::string&& value) {
  _impl_.ip_addresses_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificate.ip_addresses)
}
inline void CMsgSteamDatagramCertificate::set_ip_addresses(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.ip_addresses_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:CMsgSteamDatagramCertificate.ip_addresses)
}
inline void CMsgSteamDatagramCertificate::set_ip_addresses(int index, const char* value, size_t size) {
  _impl_.ip_addresses_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:CMsgSteamDatagramCertificate.ip_addresses)
}
inline std::string* CMsgSteamDatagramCertificate::_internal_add_ip_addresses() {
  return _impl_.ip_addresses_.Add();
}
inline void CMsgSteamDatagramCertificate::add_ip_addresses(const std::string& value) {
  _impl_.ip_addresses_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:CMsgSteamDatagramCertificate.ip_addresses)
}
inline void CMsgSteamDatagramCertificate::add_ip_addresses(std::string&& value) {
  _impl_.ip_addresses_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:CMsgSteamDatagramCertificate.ip_addresses)
}
inline void CMsgSteamDatagramCertificate::add_ip_addresses(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.ip_addresses_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:CMsgSteamDatagramCertificate.ip_addresses)
}
inline void CMsgSteamDatagramCertificate::add_ip_addresses(const char* value, size_t size) {
  _impl_.ip_addresses_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:CMsgSteamDatagramCertificate.ip_addresses)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
CMsgSteamDatagramCertificate::ip_addresses() const {
  // @@protoc_insertion_point(field_list:CMsgSteamDatagramCertificate.ip_addresses)
  return _impl_.ip_addresses_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
CMsgSteamDatagramCertificate::mutable_ip_addresses() {
  // @@protoc_insertion_point(field_mutable_list:CMsgSteamDatagramCertificate.ip_addresses)
  return &_impl_.ip_addresses_;
}

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

// CMsgSteamDatagramCertificateSigned

// optional bytes cert = 4;
inline bool CMsgSteamDatagramCertificateSigned::_internal_has_cert() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificateSigned::has_cert() const {
  return _internal_has_cert();
}
inline void CMsgSteamDatagramCertificateSigned::clear_cert() {
  _impl_.cert_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const std::string& CMsgSteamDatagramCertificateSigned::cert() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificateSigned.cert)
  return _internal_cert();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamDatagramCertificateSigned::set_cert(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000002u;
 _impl_.cert_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificateSigned.cert)
}
inline std::string* CMsgSteamDatagramCertificateSigned::mutable_cert() {
  std::string* _s = _internal_mutable_cert();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramCertificateSigned.cert)
  return _s;
}
inline const std::string& CMsgSteamDatagramCertificateSigned::_internal_cert() const {
  return _impl_.cert_.Get();
}
inline void CMsgSteamDatagramCertificateSigned::_internal_set_cert(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.cert_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificateSigned::_internal_mutable_cert() {
  _impl_._has_bits_[0] |= 0x00000002u;
  return _impl_.cert_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificateSigned::release_cert() {
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramCertificateSigned.cert)
  if (!_internal_has_cert()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000002u;
  auto* p = _impl_.cert_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.cert_.IsDefault()) {
    _impl_.cert_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CMsgSteamDatagramCertificateSigned::set_allocated_cert(std::string* cert) {
  if (cert != nullptr) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.cert_.SetAllocated(cert, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.cert_.IsDefault()) {
    _impl_.cert_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramCertificateSigned.cert)
}

// optional fixed64 ca_key_id = 5;
inline bool CMsgSteamDatagramCertificateSigned::_internal_has_ca_key_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificateSigned::has_ca_key_id() const {
  return _internal_has_ca_key_id();
}
inline void CMsgSteamDatagramCertificateSigned::clear_ca_key_id() {
  _impl_.ca_key_id_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000008u;
}
inline uint64_t CMsgSteamDatagramCertificateSigned::_internal_ca_key_id() const {
  return _impl_.ca_key_id_;
}
inline uint64_t CMsgSteamDatagramCertificateSigned::ca_key_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificateSigned.ca_key_id)
  return _internal_ca_key_id();
}
inline void CMsgSteamDatagramCertificateSigned::_internal_set_ca_key_id(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000008u;
  _impl_.ca_key_id_ = value;
}
inline void CMsgSteamDatagramCertificateSigned::set_ca_key_id(uint64_t value) {
  _internal_set_ca_key_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificateSigned.ca_key_id)
}

// optional bytes ca_signature = 6;
inline bool CMsgSteamDatagramCertificateSigned::_internal_has_ca_signature() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificateSigned::has_ca_signature() const {
  return _internal_has_ca_signature();
}
inline void CMsgSteamDatagramCertificateSigned::clear_ca_signature() {
  _impl_.ca_signature_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
inline const std::string& CMsgSteamDatagramCertificateSigned::ca_signature() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificateSigned.ca_signature)
  return _internal_ca_signature();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamDatagramCertificateSigned::set_ca_signature(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000004u;
 _impl_.ca_signature_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificateSigned.ca_signature)
}
inline std::string* CMsgSteamDatagramCertificateSigned::mutable_ca_signature() {
  std::string* _s = _internal_mutable_ca_signature();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramCertificateSigned.ca_signature)
  return _s;
}
inline const std::string& CMsgSteamDatagramCertificateSigned::_internal_ca_signature() const {
  return _impl_.ca_signature_.Get();
}
inline void CMsgSteamDatagramCertificateSigned::_internal_set_ca_signature(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000004u;
  _impl_.ca_signature_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificateSigned::_internal_mutable_ca_signature() {
  _impl_._has_bits_[0] |= 0x00000004u;
  return _impl_.ca_signature_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificateSigned::release_ca_signature() {
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramCertificateSigned.ca_signature)
  if (!_internal_has_ca_signature()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000004u;
  auto* p = _impl_.ca_signature_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.ca_signature_.IsDefault()) {
    _impl_.ca_signature_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CMsgSteamDatagramCertificateSigned::set_allocated_ca_signature(std::string* ca_signature) {
  if (ca_signature != nullptr) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  _impl_.ca_signature_.SetAllocated(ca_signature, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.ca_signature_.IsDefault()) {
    _impl_.ca_signature_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramCertificateSigned.ca_signature)
}

// optional bytes private_key_data = 1;
inline bool CMsgSteamDatagramCertificateSigned::_internal_has_private_key_data() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CMsgSteamDatagramCertificateSigned::has_private_key_data() const {
  return _internal_has_private_key_data();
}
inline void CMsgSteamDatagramCertificateSigned::clear_private_key_data() {
  _impl_.private_key_data_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const std::string& CMsgSteamDatagramCertificateSigned::private_key_data() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificateSigned.private_key_data)
  return _internal_private_key_data();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamDatagramCertificateSigned::set_private_key_data(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000001u;
 _impl_.private_key_data_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramCertificateSigned.private_key_data)
}
inline std::string* CMsgSteamDatagramCertificateSigned::mutable_private_key_data() {
  std::string* _s = _internal_mutable_private_key_data();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramCertificateSigned.private_key_data)
  return _s;
}
inline const std::string& CMsgSteamDatagramCertificateSigned::_internal_private_key_data() const {
  return _impl_.private_key_data_.Get();
}
inline void CMsgSteamDatagramCertificateSigned::_internal_set_private_key_data(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.private_key_data_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificateSigned::_internal_mutable_private_key_data() {
  _impl_._has_bits_[0] |= 0x00000001u;
  return _impl_.private_key_data_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamDatagramCertificateSigned::release_private_key_data() {
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramCertificateSigned.private_key_data)
  if (!_internal_has_private_key_data()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000001u;
  auto* p = _impl_.private_key_data_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.private_key_data_.IsDefault()) {
    _impl_.private_key_data_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CMsgSteamDatagramCertificateSigned::set_allocated_private_key_data(std::string* private_key_data) {
  if (private_key_data != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.private_key_data_.SetAllocated(private_key_data, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.private_key_data_.IsDefault()) {
    _impl_.private_key_data_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramCertificateSigned.private_key_data)
}

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

// CMsgSteamDatagramCertificateRequest

// optional .CMsgSteamDatagramCertificate cert = 1;
inline bool CMsgSteamDatagramCertificateRequest::_internal_has_cert() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.cert_ != nullptr);
  return value;
}
inline bool CMsgSteamDatagramCertificateRequest::has_cert() const {
  return _internal_has_cert();
}
inline void CMsgSteamDatagramCertificateRequest::clear_cert() {
  if (_impl_.cert_ != nullptr) _impl_.cert_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::CMsgSteamDatagramCertificate& CMsgSteamDatagramCertificateRequest::_internal_cert() const {
  const ::CMsgSteamDatagramCertificate* p = _impl_.cert_;
  return p != nullptr ? *p : reinterpret_cast<const ::CMsgSteamDatagramCertificate&>(
      ::_CMsgSteamDatagramCertificate_default_instance_);
}
inline const ::CMsgSteamDatagramCertificate& CMsgSteamDatagramCertificateRequest::cert() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramCertificateRequest.cert)
  return _internal_cert();
}
inline void CMsgSteamDatagramCertificateRequest::unsafe_arena_set_allocated_cert(
    ::CMsgSteamDatagramCertificate* cert) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.cert_);
  }
  _impl_.cert_ = cert;
  if (cert) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamDatagramCertificateRequest.cert)
}
inline ::CMsgSteamDatagramCertificate* CMsgSteamDatagramCertificateRequest::release_cert() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::CMsgSteamDatagramCertificate* temp = _impl_.cert_;
  _impl_.cert_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::CMsgSteamDatagramCertificate* CMsgSteamDatagramCertificateRequest::unsafe_arena_release_cert() {
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramCertificateRequest.cert)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::CMsgSteamDatagramCertificate* temp = _impl_.cert_;
  _impl_.cert_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramCertificate* CMsgSteamDatagramCertificateRequest::_internal_mutable_cert() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.cert_ == nullptr) {
    auto* p = CreateMaybeMessage<::CMsgSteamDatagramCertificate>(GetArenaForAllocation());
    _impl_.cert_ = p;
  }
  return _impl_.cert_;
}
inline ::CMsgSteamDatagramCertificate* CMsgSteamDatagramCertificateRequest::mutable_cert() {
  ::CMsgSteamDatagramCertificate* _msg = _internal_mutable_cert();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramCertificateRequest.cert)
  return _msg;
}
inline void CMsgSteamDatagramCertificateRequest::set_allocated_cert(::CMsgSteamDatagramCertificate* cert) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.cert_;
  }
  if (cert) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(cert);
    if (message_arena != submessage_arena) {
      cert = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cert, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.cert_ = cert;
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramCertificateRequest.cert)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

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

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


// @@protoc_insertion_point(namespace_scope)


PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::CMsgSteamDatagramCertificate_EKeyType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::CMsgSteamDatagramCertificate_EKeyType>() {
  return ::CMsgSteamDatagramCertificate_EKeyType_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_steamnetworkingsockets_5fmessages_5fcerts_2eproto
